<?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>217166</bug_id>
          
          <creation_ts>2020-10-01 00:52:51 -0700</creation_ts>
          <short_desc>[GPU Process][Resource caching 7/7] Draw a debugging border and badge for the 2D canvas if it&apos;s drawn through GPU process</short_desc>
          <delta_ts>2021-03-23 16:52:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217596</dependson>
          <blocked>217342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1693666</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 00:52:51 -0700</bug_when>
    <thetext>If &quot;show debug border&quot; setting is enabled, a border and badge with the text &quot;GPU&quot; will be drawn around the 2D canvas when it&apos;s drawn through the GPU process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693673</commentid>
    <comment_count>1</comment_count>
      <attachid>410204</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 01:06:46 -0700</bug_when>
    <thetext>Created attachment 410204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693681</commentid>
    <comment_count>2</comment_count>
      <attachid>410206</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 01:23:25 -0700</bug_when>
    <thetext>Created attachment 410206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693786</commentid>
    <comment_count>3</comment_count>
      <attachid>410243</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 10:26:10 -0700</bug_when>
    <thetext>Created attachment 410243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693796</commentid>
    <comment_count>4</comment_count>
      <attachid>410244</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 11:02:38 -0700</bug_when>
    <thetext>Created attachment 410244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693824</commentid>
    <comment_count>5</comment_count>
      <attachid>410256</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-01 12:07:28 -0700</bug_when>
    <thetext>Created attachment 410256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693828</commentid>
    <comment_count>6</comment_count>
      <attachid>410256</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-01 12:15:53 -0700</bug_when>
    <thetext>Comment on attachment 410256
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:28
&gt; +#include &quot;FloatRect.h&quot;

This can be forward declared instead of included.

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:35
&gt; +WEBCORE_EXPORT void drawBorderAndBadge(GraphicsContext&amp;, const FloatRect&amp; containerRect, const FloatPoint&amp; badgePosition, const Color&amp;, const String&amp; text);

Do you intend to use this in more places in the future? Seems like an oddly specific function for platform. Also not a huge fan of the use of &quot;Extras&quot; in the name here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695815</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 00:53:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/70083612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696938</commentid>
    <comment_count>8</comment_count>
      <attachid>411131</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 10:57:52 -0700</bug_when>
    <thetext>Created attachment 411131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696943</commentid>
    <comment_count>9</comment_count>
      <attachid>410256</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 11:03:15 -0700</bug_when>
    <thetext>Comment on attachment 410256
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:35
&gt;&gt; +WEBCORE_EXPORT void drawBorderAndBadge(GraphicsContext&amp;, const FloatRect&amp; containerRect, const FloatPoint&amp; badgePosition, const Color&amp;, const String&amp; text);
&gt; 
&gt; Do you intend to use this in more places in the future? Seems like an oddly specific function for platform. Also not a huge fan of the use of &quot;Extras&quot; in the name here.

Yes. I copied most of the code from PlatformCALayer::drawRepaintIndicator(). I am planning to remove the repetition. This function will be used to badge the GPU cached resources as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696951</commentid>
    <comment_count>10</comment_count>
      <attachid>411135</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 11:22:32 -0700</bug_when>
    <thetext>Created attachment 411135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696970</commentid>
    <comment_count>11</comment_count>
      <attachid>411140</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 12:13:07 -0700</bug_when>
    <thetext>Created attachment 411140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696973</commentid>
    <comment_count>12</comment_count>
      <attachid>411142</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 12:22:16 -0700</bug_when>
    <thetext>Created attachment 411142
Screenshot of the GPU badging border

In this screenshot:

1. Green &quot;GPU&quot; badge is drawn when the drawing of a 2D canvas is replayed back in the GPU Process.
2. Blue &quot;CANVAS&quot; badge is drawn when a 2D canvas is drawn into another 2D canvas and both canvases are backed by RemoteImageBuffers.
2. Red &quot;IMAGE&quot; badge is drawn when a BitmapImage frame is drawn into a 2D canvas and the canvases backed by a RemoteImageBuffer and the image frame is cached in the GPU Process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696976</commentid>
    <comment_count>13</comment_count>
      <attachid>411145</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 12:25:41 -0700</bug_when>
    <thetext>Created attachment 411145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696978</commentid>
    <comment_count>14</comment_count>
      <attachid>411146</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 12:32:25 -0700</bug_when>
    <thetext>Created attachment 411146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696979</commentid>
    <comment_count>15</comment_count>
      <attachid>411147</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 12:36:07 -0700</bug_when>
    <thetext>Created attachment 411147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696988</commentid>
    <comment_count>16</comment_count>
      <attachid>411148</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 13:09:39 -0700</bug_when>
    <thetext>Created attachment 411148
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703823</commentid>
    <comment_count>17</comment_count>
      <attachid>411148</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-11-02 23:30:03 -0800</bug_when>
    <thetext>Comment on attachment 411148
Patch for review

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

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.cpp:87
&gt; +        context.fillPath(path);

Why not fillRect, to simplify the above code?

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:37
&gt; +enum RectCorner {

I think we usually use enum classes now?

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:41
&gt; +    RectTopLeft     = 0x00,
&gt; +    RectTopRight    = 0x01,
&gt; +    RectBottomLeft  = 0x02,
&gt; +    RectBottomRight = 0x03,

Why give these explicit values?

&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:50
&gt; +WEBCORE_EXPORT void drawBadgingBorder(GraphicsContext&amp;, const FloatRect&amp; borderRect, const Color&amp;, const Vector&lt;Badge&gt;&amp;);

None of the callers seem to pass more than a single badge, so it doesn&apos;t seem like it needs to accept a vector.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:136
&gt; +    send(Messages::RemoteRenderingBackendProxy::FlushImageBufferDrawingContext(displayList, m_remoteResourceCache.shouldDrawBadgingBorder(), remoteResourceIdentifier), m_renderingBackendIdentifier);

I think a single context can be flushed multiple times (e.g. if the page is doing getImageData/putImageData) so it seems like the badge could be drawn multiple times. Is &quot;FlushDrawingContext&quot; really the right level to be doing this in? Why not do it at creation instead, so it will never be drawn more than once?

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCache.h:95
&gt; +    WebPage&amp; m_page;

This seems like a layering violation. Can&apos;t we just pull out the boolean setting ahead of time, and store a bool here instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704722</commentid>
    <comment_count>18</comment_count>
      <attachid>413248</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-04 21:11:24 -0800</bug_when>
    <thetext>Created attachment 413248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704725</commentid>
    <comment_count>19</comment_count>
      <attachid>411148</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-04 21:24:40 -0800</bug_when>
    <thetext>Comment on attachment 411148
Patch for review

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.cpp:87
&gt;&gt; +        context.fillPath(path);
&gt; 
&gt; Why not fillRect, to simplify the above code?

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:37
&gt;&gt; +enum RectCorner {
&gt; 
&gt; I think we usually use enum classes now?

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:41
&gt;&gt; +    RectBottomRight = 0x03,
&gt; 
&gt; Why give these explicit values?

Explicit values were removed.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContextExtras.h:50
&gt;&gt; +WEBCORE_EXPORT void drawBadgingBorder(GraphicsContext&amp;, const FloatRect&amp; borderRect, const Color&amp;, const Vector&lt;Badge&gt;&amp;);
&gt; 
&gt; None of the callers seem to pass more than a single badge, so it doesn&apos;t seem like it needs to accept a vector.

I replaced the code in PlatformCALayer::drawRepaintIndicator() by calling this function with three badges. Previously none indicative ways were used like changing the text color or the text drawing mode.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:136
&gt;&gt; +    send(Messages::RemoteRenderingBackendProxy::FlushImageBufferDrawingContext(displayList, m_remoteResourceCache.shouldDrawBadgingBorder(), remoteResourceIdentifier), m_renderingBackendIdentifier);
&gt; 
&gt; I think a single context can be flushed multiple times (e.g. if the page is doing getImageData/putImageData) so it seems like the badge could be drawn multiple times. Is &quot;FlushDrawingContext&quot; really the right level to be doing this in? Why not do it at creation instead, so it will never be drawn more than once?

The badge has to be on top of all the drawing so it has to be drawn every time we flush the DrawingContext. And yes it can be drawn multiple times but I think this is okay since it is just for debugging. We may use it only to confirm a certain rectangle is drawn by GPUP.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCache.h:95
&gt;&gt; +    WebPage&amp; m_page;
&gt; 
&gt; This seems like a layering violation. Can&apos;t we just pull out the boolean setting ahead of time, and store a bool here instead?

The reason for having the WebPage instead of the flag is the setting can change at run time. And if I keep the flag then I have to sync it with the setting every time it changes. I am not sure about the layering violation in WebKit, but in RemoteRenderingBackendProxy::RemoteRenderingBackendProxy() we call the WebProcess to ensureGPUProcessConnection(). And WebProcess is the owner of all the WebPages. But I will ask Tim Horton what the right approach should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704726</commentid>
    <comment_count>20</comment_count>
      <attachid>413249</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-04 21:32:45 -0800</bug_when>
    <thetext>Created attachment 413249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704730</commentid>
    <comment_count>21</comment_count>
      <attachid>413249</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-04 21:40:43 -0800</bug_when>
    <thetext>Comment on attachment 413249
Patch

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:161
&gt; +    SetForScope&lt;bool&gt; change(m_showDebugBorders, showDebugBorders);

(Note to self — it looks like I might need to create a new &quot;show debug borders&quot; display list item for my upcoming concurrent display list rendering changes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704960</commentid>
    <comment_count>22</comment_count>
      <attachid>413249</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-05 11:51:46 -0800</bug_when>
    <thetext>Comment on attachment 413249
Patch

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

&gt; Source/WebKit/ChangeLog:18
&gt; +        Pass the &apos;showDebugBorders&apos; from WebPorcess to GPUP.

&quot;Porcess&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704966</commentid>
    <comment_count>23</comment_count>
      <attachid>413338</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 12:05:53 -0800</bug_when>
    <thetext>Created attachment 413338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705082</commentid>
    <comment_count>24</comment_count>
      <attachid>413338</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-05 17:43:05 -0800</bug_when>
    <thetext>Comment on attachment 413338
Patch

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

&gt; Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp:-122
&gt; -        const float cornerChunk = 8;
&gt; -        boundsPath.addLineTo(FloatPoint(indicatorBox.x(), indicatorBox.y() + cornerChunk));
&gt; -        boundsPath.addLineTo(FloatPoint(indicatorBox.x() + cornerChunk, indicatorBox.y()));
&gt; -        boundsPath.closeSubpath();

Looks like you dropped this part in the new code? I found that useful.

&gt; Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp:116
&gt; +    if (!platformCALayer-&gt;isOpaque() &amp;&amp; platformCALayer-&gt;supportsSubpixelAntialiasedText()) {
&gt; +        badges.append({
&gt; +            DebugBadge::Corner::BottomRight,
&gt; +            Color::green,
&gt; +            platformCALayer-&gt;acceleratesDrawing() ? acceleratedTextColor : unacceleratedTextColor,
&gt; +            smallFontSize,
&gt; +            &quot;sub-pixel&quot;_s
&gt; +        });

Just remove this. It&apos;s no longer interesting.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:152
&gt; +        m_remoteRenderingBackendProxy-&gt;drawDebugBorderAndBadge(context(), { { }, m_backend-&gt;logicalSize() }, &quot;GPU&quot;_s);

how do we know what the CTM is in the display list at this point? Maybe there&apos;s some transform that will affect the badge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707077</commentid>
    <comment_count>25</comment_count>
      <attachid>413987</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-12 17:45:50 -0800</bug_when>
    <thetext>Created attachment 413987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707078</commentid>
    <comment_count>26</comment_count>
      <attachid>413338</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-12 17:50:04 -0800</bug_when>
    <thetext>Comment on attachment 413338
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp:-122
&gt;&gt; -        boundsPath.closeSubpath();
&gt; 
&gt; Looks like you dropped this part in the new code? I found that useful.

I remove all the changes in this function till we have an agreement on the badging for GPUP.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:152
&gt;&gt; +        m_remoteRenderingBackendProxy-&gt;drawDebugBorderAndBadge(context(), { { }, m_backend-&gt;logicalSize() }, &quot;GPU&quot;_s);
&gt; 
&gt; how do we know what the CTM is in the display list at this point? Maybe there&apos;s some transform that will affect the badge.

Fixed. The CTM will be set to the ImageBuffer::baseTransform() before drawing the border and badge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736425</commentid>
    <comment_count>27</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-03-05 10:47:24 -0800</bug_when>
    <thetext>Drawing borders for compositing and for the GPUP 2D canvas will be turned on by the same flag. It is a customer facing feature because this flag can be turned on from the Web inspector.

I think there is no real need for this new debugging tool now and it may cause confusion when borders for compositing and for the GPUP 2D canvas are drawn at the same time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410204</attachid>
            <date>2020-10-01 01:06:46 -0700</date>
            <delta_ts>2020-10-01 01:23:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201001010645.patch</filename>
            <type>text/plain</type>
            <size>21703</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEwLTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFz
IGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBp
bnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdy
YXBoaWNhbCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpkcmF3Qm9yZGVyQW5kQmFkZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisK
IDIwMjAtMDktMzAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWJJRExdIE1ha2UgRXhwb3NlZCBtYW5kYXRvcnkgZm9yIElETCBpbnRlcmZhY2VzCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4ODQsNiArMTg4NCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc0Nyw2
ICsxNzQ3LDcgQEAKIAkJNTUwNjQwQUYyNDA3NTgyRDAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VC
dWZmZXJCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NTA2NDBBRDI0MDc1NkRBMDBBQUUwNDUgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tl
bmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
NTA2NDBCMDI0MDc1ODdFMDBBQUUwNDUgLyogSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0FEMjNFMUU1NDUw
MDhENzQxQyAvKiBJbWFnZUJ1ZmZlckNHQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1Mzk5NzE4MjUyNUJC
ODUwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1Mzk5NzE2MjUyNUI1Q0IwMEM1ODNCMCAvKiBH
cmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1NTQ2NzU3QjFGRDIxMkE5MDAzQjEwQjAgLyogSW1hZ2VTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NDY3NTc4
MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJ
bWFnZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3Q0NDQ0IwMEE2
OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
ODg4OCw2ICs4ODg5LDggQEAKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNTUwRjY2NDUyMkNBODlCRDAwMEEzNDE3IC8qIFNWR1NoYXJl
ZFByaW1pdGl2ZVByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1NoYXJlZFByaW1pdGl2ZVBy
b3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MTM3QjJDMjAzNzlFNTUw
MDAxMDA0QiAvKiBTVkdNYXJrZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdNYXJrZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTM5
OTcxNTI1MjVCNUNCMDBDNTgzQjAgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1Mzk5NzE2MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU0NSw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0ICovLAor
CQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5jcHAg
Ki8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2Vy
LmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4ICsxNzU1OSw2
IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCAqLywKIAkJ
CQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8sCiAJCQkJ
NkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywKLQkJCQk2RkUx
OTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAotCQkJ
CTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAog
CQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRlci5jcHAgKi8s
CiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggKi8s
CiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICov
LApAQCAtMjYwNDYsNiArMjYwNDksOCBAQAogCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAv
KiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdy
YXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdy
YXBoaWNzQ29udGV4dC5oICovLAorCQkJCTU1Mzk5NzE1MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwICovLAorCQkJCTU1Mzk5NzE2MjUyNUI1Q0IwMEM1ODNCMCAv
KiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0
N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAogCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhG
QzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdDMzMwQTAxMURGOEZBQzYwMEQz
Mzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCAqLywKQEAgLTMxNDcwLDYgKzMx
NDc1LDcgQEAKIAkJCQkyRDQ4MUYwNDE0NkI1QzZCMDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1QTkwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8q
IEdyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NTM5OTcxODI1MjVCQjg1
MDBDNTgzQjAgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTNERTg3MDIzQTk2OTczMDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdDMzMwQTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAv
KiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc3Miw2ICsz
MTc3OCw3IEBACiAJCQkJQ0QwNjNGODMxRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUU1MEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJ
bmxpbmVDbGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkUxOTgxNzIxNzgzOTdD
MDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1
N0NCNTJFMTgyQTNFRkMwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOENGRjVFMzBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lRmxvd0JveC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkY3Q0EzQ0EyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzgwLDcgKzMxNzg3LDYgQEAKIAkJCQlC
Q0U3ODkxNjExMjBENjA4MDA2MEVDRTUgLyogSW5saW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTZGMENENjk1MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RkIyNDAwNTIzREZGMTI4MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIg
LyogSW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGOTE0MjExMjUxNTIx
MzgwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTZG
QzNGOTQ3MjUxNjc1NjcwMEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggaW4gSGVhZGVycyAqLywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4
dHJhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dEV4dHJhcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JvcmRlckFuZEJh
ZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjb250YWluZXJS
ZWN0LCBjb25zdCBGbG9hdFBvaW50JiBiYWRnZVBvc2l0aW9uLCBjb25zdCBDb2xvciYgY29sb3Is
IGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhmYWxz
ZSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5zdHJv
a2VSZWN0KGNvbnRhaW5lclJlY3QsIDAuNSk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6
ZSA9IDEwOworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkFyaWFsIik7CisgICAgZm9udERlc2NyaXB0
aW9uLnNldFNwZWNpZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRD
b21wdXRlZFNpemUoZm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZNb3Zl
KGZvbnREZXNjcmlwdGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisgICAg
VGV4dFJ1biB0ZXh0UnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUud2lk
dGgodGV4dFJ1bik7CisKKyAgICBGbG9hdFJlY3QgYmFkZ2VSZWN0KGJhZGdlUG9zaXRpb24sIEZs
b2F0U2l6ZSh0ZXh0V2lkdGggKyAyLCBmb250U2l6ZSArIDIpKTsKKyAgICBpZiAoYmFkZ2VQb3Np
dGlvbi54KCkgPT0gY29udGFpbmVyUmVjdC5tYXhYKCkpCisgICAgICAgIGJhZGdlUmVjdC5zZXRY
KGJhZGdlUG9zaXRpb24ueCgpIC0gYmFkZ2VSZWN0LndpZHRoKCkpOworCisgICAgaWYgKGJhZGdl
UG9zaXRpb24ueSgpID09IGNvbnRhaW5lclJlY3QubWF4WSgpKQorICAgICAgICBiYWRnZVJlY3Qu
c2V0WShiYWRnZVBvc2l0aW9uLnkoKSAtIGJhZGdlUmVjdC5oZWlnaHQoKSk7CisKKyAgICBjb250
ZXh0LmZpbGxSZWN0KGJhZGdlUmVjdCwgY29sb3IpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29s
b3IoQ29sb3I6OndoaXRlKTsKKyAgICBjYXNjYWRlLmRyYXdUZXh0KGNvbnRleHQsIHRleHRSdW4s
IEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIDEsIGJhZGdlUmVjdC55KCkgKyAxICsgZm9udFNp
emUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV0VCQ09S
RV9FWFBPUlQgdm9pZCBkcmF3Qm9yZGVyQW5kQmFkZ2UoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBjb250YWluZXJSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBiYWRnZVBvc2l0aW9u
LCBjb25zdCBDb2xvciYsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAJKHJl
dmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVjb3JkZXIuaCIKIAogI2luY2x1ZGUgIkRp
c3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjY3ODIyKQorKysg
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAor
MjAyMC0xMC0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFUgUHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRn
ZSBmb3IgdGhlIDJEIGNhbnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlBhZ2Ugd2ls
bCBwYXNzIGl0c2VsZiB0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdoZW4gaXQgaXMgY3JlYXRl
ZC4KKyAgICAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjYW4gcmVhZCB0aGUgY29yZSBwYWdl
IHNldHRpbmdzIHRocm91Z2ggdGhlIFdlYlBhZ2UuCisKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZm
ZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoKSB3aWxsIHJlY29yZCB0aGUgYm9yZGVyIGFuZCBiYWRn
ZQorICAgICAgICB0byB0aGUgSW1hZ2VCdWZmZXIgRGlzcGxheUxpc3QgYmVmb3JlIHNlbmRpbmcg
aXQgdG8gdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OnJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
c2hvdWxkRHJhd0JvcmRlckFuZEJhZGdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6ZHJhd0JvcmRlckFuZEJhZGdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgY29uc3Qp
OgorCiAyMDIwLTA5LTMwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01lZGlhIGluIEdQVSBQcm9jZXNzXSBFbmFibGUgSVBDIG1lc3NhZ2UgaGFuZGxlcnMgb2Yg
UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCShyZXZpc2lv
biAyNjc4MTYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVt
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRlci5oPgpAQCAtNDEsNiAr
NDIsNyBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlCiAgICAgdXNp
bmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1h
Z2VCdWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVm
ZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1f
ZHJhd2luZ0NvbnRleHQ7CisgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6OmNv
bnRleHQ7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdl
QnVmZmVyPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKQpAQCAtMTAzLDYgKzEwNSw5IEBAIHByb3RlY3RlZDoKIAogICAgIHZv
aWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIG92ZXJyaWRlCiAgICAgeworICAgICAgICBpZiAoYXV0
byByZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
cjo6cmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpKQorICAgICAgICAgICAgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC0+ZHJhd0JvcmRlckFuZEJhZGdlKGNvbnRleHQoKSwgV2ViQ29yZTo6RmxvYXRSZWN0
KHsgfSwgbV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpKSwgV2ViQ29yZTo6Q29sb3I6OmRhcmtHcmVl
biwgIkdQVSJfcyk7CisKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdDb250
ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkK
ICAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlMaXN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcihjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmKTsKIAorICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQqIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKSBjb25zdCB7
IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZ2V0KCk7IH0KKwogICAgIHZpcnR1YWwg
Ym9vbCBpc0JhY2tlbmRDcmVhdGVkKCkgY29uc3QgPSAwOwogICAgIGJvb2wgaXNQZW5kaW5nRmx1
c2goKSBjb25zdCB7IHJldHVybiBtX3NlbnRGbHVzaElkZW50aWZpZXIgIT0gbV9yZWNlaXZlZEZs
dXNoSWRlbnRpZmllcjsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAJ
KHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE3ICsz
NCwxOSBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPihuZXcgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCgpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHBhZ2UpKTsKIH0KIAotUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpCitSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKIHsKICAgICAvLyBSZWdpc3RlciBpdHNlbGYgYXMgYSBNZXNzYWdlUmVjZWl2
ZXIgaW4gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uLgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVy
TWFwJiBtZXNzYWdlUmVjZWl2ZXJNYXAgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1hcCgpOwpAQCAtODYsNiArODgs
MjAgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9yQ29tbQogICAgIHJldHVy
biBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQ+KG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1
cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogfQogCitib29sIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OnNob3VsZERyYXdCb3JkZXJBbmRCYWRnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNob3dEZWJ1Z0JvcmRlcnMoKTsKK30KKwor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3Qm9yZGVyQW5kQmFkZ2UoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGNvbnRhaW5lclJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlmICghc2hvdWxkRHJhd0Jv
cmRlckFuZEJhZGdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBGbG9hdFJlY3QgYm9yZGVyUmVj
dCA9IGNvbnRhaW5lclJlY3Q7CisgICAgYm9yZGVyUmVjdC5pbmZsYXRlKC0xKTsKKyAgICBXZWJD
b3JlOjpkcmF3Qm9yZGVyQW5kQmFkZ2UoY29udGV4dCwgYm9yZGVyUmVjdCwgYm9yZGVyUmVjdC5t
YXhYTWluWUNvcm5lcigpLCBjb2xvciwgdGV4dCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3VsZEFjY2VsZXJhdGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIGlmIChzaG91
bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6OlllcykgewpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MywxMiArNDMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdl
YlBhZ2U7CisKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKICAgICA6IHB1YmxpYyBJUEM6
Ok1lc3NhZ2VTZW5kZXIKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+
IGNyZWF0ZShXZWJQYWdlJik7CiAKICAgICB+UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOwogCkBA
IC02NywxNCArNjksMTkgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZCgpOwogICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0KCk7CiAKKyAgICBib29sIHNob3VsZERyYXdCb3JkZXJBbmRCYWRnZSgpIGNvbnN0OworICAg
IHZvaWQgZHJhd0JvcmRlckFuZEJhZGdlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgY29udGFpbmVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
LCBjb25zdCBTdHJpbmcmIHRleHQpOworCiBwcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQoKTsKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2UmKTsKIAogICAgIC8v
IE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
KTsKICAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwogCiAgICAgdXNpbmcgSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7
CiAgICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXA7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07
CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDI2NzgxNikKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04NzcsNyArODc3LDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gV2ViQ2hyb21lQwogUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgV2ViQ2hyb21lQ2xp
ZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkgY29uc3QKIHsKICAgICBpZiAoIW1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
ID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZShtX3BhZ2UpOwog
ICAgIHJldHVybiAqbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogfQogCg==
</data>
<flag name="commit-queue"
          id="426084"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410206</attachid>
            <date>2020-10-01 01:23:25 -0700</date>
            <delta_ts>2020-10-01 10:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201001012324.patch</filename>
            <type>text/plain</type>
            <size>22316</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFz
IGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBp
bnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdy
YXBoaWNhbCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJB
bmRCYWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1hbmRhdG9yeSBm
b3IgSURMIGludGVyZmFjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE0
Myw2ICsxMTQzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4NCw2ICsxODg0LDcgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY3ODE2KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzQ3LDYgKzE3NDcsNyBAQAogCQk1NTA2NDBBRjI0MDc1ODJEMDBBQUUwNDUg
LyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU1MDY0MEIwMjQwNzU4N0UwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlckNH
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUQyM0UxRTU0NTAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQ0dCYWNrZW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTUzOTk3MTgyNTI1QkI4NTAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUzOTk3MTYyNTI1
QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NDY3NTdCMUZEMjEyQTkwMDNCMTBC
MCAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1MENCNDIxRTk1
NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1
MTMwMDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4
IC8qIERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04ODg4LDYgKzg4ODksOCBAQAogCQk1NTBBMEJDODA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBGNjY0NTIyQ0E4OUJEMDAw
QTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1Mzk5NzE1MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTUzOTk3MTYyNTI1QjVDQjAwQzU4M0IwIC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzcxRkQxRkMxQTAw
M0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAwM0Ix
MEIwIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFn
ZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTQ1LDggQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1
QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5s
aW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFGMjE4N0NC
RDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLywKQEAg
LTE3NTU0LDggKzE3NTU5LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5l
Qm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJv
eC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxp
bmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5l
TGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5l
TGluZUdlb21ldHJ5LmggKi8sCkBAIC0yNjA0Niw2ICsyNjA0OSw4IEBACiAJCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5MzBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNTUzOTk3MTUyNTI1QjVD
QjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJNTUzOTk3MTYy
NTI1QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovLAogCQkJCTMxM0RF
ODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJMzEz
REU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0Mz
MzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oICov
LApAQCAtMzE0NzAsNiArMzE0NzUsNyBAQAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAv
KiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2
QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1Mzk5NzE4MjUyNUJCODUwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRl
eHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMx
MDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAq
LywKQEAgLTMxNzcyLDYgKzMxNzc4LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMg
LyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEw
NTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3
QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyAr
MzE3ODcsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJ
bmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4
MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4u
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9p
ZCBkcmF3Qm9yZGVyQW5kQmFkZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGNvbnRhaW5lclJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIGJhZGdlUG9zaXRpb24sIGNv
bnN0IENvbG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIGNvbnRleHQuc2V0U2hv
dWxkQW50aWFsaWFzKGZhbHNlKTsKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsK
KyAgICBjb250ZXh0LnN0cm9rZVJlY3QoY29udGFpbmVyUmVjdCwgMC41KTsKKworICAgIGNvbnN0
IHVuc2lnbmVkIGZvbnRTaXplID0gMTA7CisgICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250
RGVzY3JpcHRpb247CisgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseSgiQXJpYWwiKTsK
KyAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShmb250U2l6ZSk7CisgICAgZm9u
dERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250U2l6ZSk7CisKKyAgICBGb250Q2FzY2Fk
ZSBjYXNjYWRlKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CisgICAgY2FzY2FkZS51cGRhdGUo
bnVsbHB0cik7CisKKyAgICBUZXh0UnVuIHRleHRSdW4odGV4dCk7CisgICAgZmxvYXQgdGV4dFdp
ZHRoID0gY2FzY2FkZS53aWR0aCh0ZXh0UnVuKTsKKworICAgIEZsb2F0UmVjdCBiYWRnZVJlY3Qo
YmFkZ2VQb3NpdGlvbiwgRmxvYXRTaXplKHRleHRXaWR0aCArIDIsIGZvbnRTaXplICsgMikpOwor
ICAgIGlmIChiYWRnZVBvc2l0aW9uLngoKSA9PSBjb250YWluZXJSZWN0Lm1heFgoKSkKKyAgICAg
ICAgYmFkZ2VSZWN0LnNldFgoYmFkZ2VQb3NpdGlvbi54KCkgLSBiYWRnZVJlY3Qud2lkdGgoKSk7
CisKKyAgICBpZiAoYmFkZ2VQb3NpdGlvbi55KCkgPT0gY29udGFpbmVyUmVjdC5tYXhZKCkpCisg
ICAgICAgIGJhZGdlUmVjdC5zZXRZKGJhZGdlUG9zaXRpb24ueSgpIC0gYmFkZ2VSZWN0LmhlaWdo
dCgpKTsKKworICAgIGNvbnRleHQuZmlsbFJlY3QoYmFkZ2VSZWN0LCBjb2xvcik7CisKKyAgICBj
b250ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6d2hpdGUpOworICAgIGNhc2NhZGUuZHJhd1RleHQo
Y29udGV4dCwgdGV4dFJ1biwgRmxvYXRQb2ludChiYWRnZVJlY3QueCgpICsgMSwgYmFkZ2VSZWN0
LnkoKSArIDEgKyBmb250U2l6ZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQg
ZHJhd0JvcmRlckFuZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgY29u
dGFpbmVyUmVjdCwgY29uc3QgRmxvYXRQb2ludCYgYmFkZ2VQb3NpdGlvbiwgY29uc3QgQ29sb3Im
LCBjb25zdCBTdHJpbmcmIHRleHQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCShyZXZpc2lvbiAyNjc4MTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJEaXNwbGF5TGlzdFJlY29yZGVyLmgiCiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgor
I2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEaXNwbGF5
TGlzdEl0ZW1zLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgyNCkKKysrIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTAtMDEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BV
IFByb2Nlc3NdIEFsbG93IGRyYXdpbmcgYSBib3JkZXIgYW5kIGEgYmFkZ2UgZm9yIHRoZSAyRCBj
YW52YXMgaWYgaXQncyBkcmF3biB0aHJvdWdoIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJQYWdlIHdpbGwgcGFzcyBpdHNlbGYg
dG8gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aGVuIGl0IGlzIGNyZWF0ZWQuCisgICAgICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQgY2FuIHJlYWQgdGhlIGNvcmUgcGFnZSBzZXR0aW5ncyB0aHJv
dWdoIHRoZSBXZWJQYWdlLgorCisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyOjpmbHVzaERyYXdp
bmdDb250ZXh0KCkgd2lsbCByZWNvcmQgdGhlIGJvcmRlciBhbmQgYmFkZ2UKKyAgICAgICAgdG8g
dGhlIEltYWdlQnVmZmVyIERpc3BsYXlMaXN0IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHRoZSBHUFUg
cHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnNob3VsZERyYXdCb3Jk
ZXJBbmRCYWRnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmRyYXdCb3JkZXJBbmRCYWRnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKwogMjAyMC0wOS0z
MCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYSBpbiBH
UFUgUHJvY2Vzc10gRW5hYmxlIElQQyBtZXNzYWdlIGhhbmRsZXJzIG9mIFJlbW90ZU1lZGlhU2Vz
c2lvbkhlbHBlcgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAkocmV2aXNpb24gMjY3ODE2KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiAjaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SW1hZ2VC
dWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaD4KQEAgLTQxLDYgKzQyLDcgQEAgY2xhc3Mg
UmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZQogICAgIHVzaW5nIEJhc2VEaXNwbGF5
TGlzdEltYWdlQnVmZmVyID0gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tl
bmRUeXBlPjsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5k
OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2RyYXdpbmdDb250ZXh0
OworICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjpjb250ZXh0OwogCiBwdWJs
aWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbWFnZUJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCkKQEAgLTEwMyw2ICsxMDUsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGZsdXNoRHJhd2lu
Z0NvbnRleHQoKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKGF1dG8gcmVtb3RlUmVuZGVy
aW5nQmFja2VuZCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OnJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQoKSkKKyAgICAgICAgICAgIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmRyYXdC
b3JkZXJBbmRCYWRnZShjb250ZXh0KCksIFdlYkNvcmU6OkZsb2F0UmVjdCh7IH0sIG1fYmFja2Vu
ZC0+bG9naWNhbFNpemUoKSksIFdlYkNvcmU6OkNvbG9yOjpkYXJrR3JlZW4sICJHUFUiX3MpOwor
CiAgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlz
dCgpOwogICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpCiAgICAgICAgICAgICBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2Fp
dENvbW1pdChkaXNwbGF5TGlzdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuaAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwg
V2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJik7CiAKKyAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmdldCgpOyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaXNCYWNrZW5k
Q3JlYXRlZCgpIGNvbnN0ID0gMDsKICAgICBib29sIGlzUGVuZGluZ0ZsdXNoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZW50Rmx1c2hJZGVudGlmaWVyICE9IG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXI7
IH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCShyZXZpc2lvbiAyNjc4
MTYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxNyArMzQsMTkgQEAKICNpbmNs
dWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUoKQor
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4obmV3IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKSk7
CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPihuZXcg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZChwYWdlKSk7CiB9CiAKLVJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKQorUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZChXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7
CiAgICAgLy8gUmVnaXN0ZXIgaXRzZWxmIGFzIGEgTWVzc2FnZVJlY2VpdmVyIGluIHRoZSBHUFVQ
cm9jZXNzQ29ubmVjdGlvbi4KICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJl
Y2VpdmVyTWFwID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5tZXNzYWdlUmVjZWl2ZXJNYXAoKTsKQEAgLTg2LDYgKzg4LDIwIEBAIGJvb2wgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6d2FpdEZvckNvbW0KICAgICByZXR1cm4gY29ubmVjdGlvbi0+
d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0PihtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3lu
Y01lc3NhZ2VBcnJpdmVzKTsKIH0KIAorYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzaG91
bGREcmF3Qm9yZGVyQW5kQmFkZ2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuY29yZVBh
Z2UoKS0+c2V0dGluZ3MoKS5zaG93RGVidWdCb3JkZXJzKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZHJhd0JvcmRlckFuZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBjb250YWluZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNv
bnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAoIXNob3VsZERyYXdCb3JkZXJBbmRCYWRnZSgp
KQorICAgICAgICByZXR1cm47CisgICAgRmxvYXRSZWN0IGJvcmRlclJlY3QgPSBjb250YWluZXJS
ZWN0OworICAgIGJvcmRlclJlY3QuaW5mbGF0ZSgtMSk7CisgICAgV2ViQ29yZTo6ZHJhd0JvcmRl
ckFuZEJhZGdlKGNvbnRleHQsIGJvcmRlclJlY3QsIGJvcmRlclJlY3QubWF4WE1pbllDb3JuZXIo
KSwgY29sb3IsIHRleHQpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAoc2hvdWxkQWNjZWxlcmF0ZSA9
PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTIg
KzQzLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJQYWdlOworCiBjbGFz
cyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVy
CiAgICAgLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgLCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gewogcHVibGljOgotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKCk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoV2ViUGFn
ZSYpOwogCiAgICAgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIApAQCAtNjcsMTQgKzY5LDE5
IEBAIHB1YmxpYzoKICAgICBib29sIHdhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsK
ICAgICBib29sIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwogCisgICAg
Ym9vbCBzaG91bGREcmF3Qm9yZGVyQW5kQmFkZ2UoKSBjb25zdDsKKyAgICB2b2lkIGRyYXdCb3Jk
ZXJBbmRCYWRnZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGNvbnRhaW5lclJlY3QsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgU3RyaW5n
JiB0ZXh0KTsKKwogcHJpdmF0ZToKLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CisgICAg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZChXZWJQYWdlJik7CiAKICAgICAvLyBNZXNzYWdlcyB0byBi
ZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIEltYWdlQnVmZmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBj
b21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKIAogICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAgPSBIYXNoTWFwPEltYWdlQnVmZmVySWRlbnRpZmllciwgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlcio+OworCisgICAgV2ViUGFnZSYgbV9wYWdlOwogICAgIEltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOwogICAg
IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
eyBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9OwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODc3LDcgKzg3Nyw3IEBAIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFdlYkNo
cm9tZUMKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIFdlYkNocm9tZUNsaWVudDo6ZW5zdXJlUmVt
b3RlUmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQg
PSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUobV9wYWdlKTsKICAgICByZXR1cm4gKm1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410243</attachid>
            <date>2020-10-01 10:26:10 -0700</date>
            <delta_ts>2020-10-01 11:02:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201001102609.patch</filename>
            <type>text/plain</type>
            <size>22473</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFz
IGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBp
bnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdy
YXBoaWNhbCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJB
bmRCYWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1hbmRhdG9yeSBm
b3IgSURMIGludGVyZmFjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE0
Myw2ICsxMTQzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4NCw2ICsxODg0LDcgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY3ODE2KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzQ3LDYgKzE3NDcsNyBAQAogCQk1NTA2NDBBRjI0MDc1ODJEMDBBQUUwNDUg
LyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU1MDY0MEIwMjQwNzU4N0UwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlckNH
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUQyM0UxRTU0NTAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQ0dCYWNrZW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTUzOTk3MTgyNTI1QkI4NTAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUzOTk3MTYyNTI1
QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NDY3NTdCMUZEMjEyQTkwMDNCMTBC
MCAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1MENCNDIxRTk1
NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1
MTMwMDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4
IC8qIERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04ODg4LDYgKzg4ODksOCBAQAogCQk1NTBBMEJDODA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBGNjY0NTIyQ0E4OUJEMDAw
QTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1Mzk5NzE1MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTUzOTk3MTYyNTI1QjVDQjAwQzU4M0IwIC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzcxRkQxRkMxQTAw
M0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAwM0Ix
MEIwIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFn
ZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTQ1LDggQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1
QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5s
aW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFGMjE4N0NC
RDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLywKQEAg
LTE3NTU0LDggKzE3NTU5LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5l
Qm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJv
eC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxp
bmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5l
TGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5l
TGluZUdlb21ldHJ5LmggKi8sCkBAIC0yNjA0Niw2ICsyNjA0OSw4IEBACiAJCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5MzBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNTUzOTk3MTUyNTI1QjVD
QjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJNTUzOTk3MTYy
NTI1QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovLAogCQkJCTMxM0RF
ODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJMzEz
REU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0Mz
MzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oICov
LApAQCAtMzE0NzAsNiArMzE0NzUsNyBAQAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAv
KiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2
QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1Mzk5NzE4MjUyNUJCODUwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRl
eHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMx
MDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAq
LywKQEAgLTMxNzcyLDYgKzMxNzc4LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMg
LyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEw
NTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3
QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyAr
MzE3ODcsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJ
bmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4
MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4u
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JvcmRlckFu
ZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjb250YWlu
ZXJSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBiYWRnZVBvc2l0aW9uLCBjb25zdCBDb2xvciYgY29s
b3IsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhm
YWxzZSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
dHJva2VSZWN0KGNvbnRhaW5lclJlY3QsIDAuNSk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmb250
U2l6ZSA9IDEwOworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwor
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkFyaWFsIik7CisgICAgZm9udERlc2Ny
aXB0aW9uLnNldFNwZWNpZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRDb21wdXRlZFNpemUoZm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZN
b3ZlKGZvbnREZXNjcmlwdGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisg
ICAgVGV4dFJ1biB0ZXh0UnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUu
d2lkdGgodGV4dFJ1bik7CisKKyAgICBGbG9hdFJlY3QgYmFkZ2VSZWN0KGJhZGdlUG9zaXRpb24s
IEZsb2F0U2l6ZSh0ZXh0V2lkdGggKyAyLCBmb250U2l6ZSArIDIpKTsKKyAgICBpZiAoYmFkZ2VQ
b3NpdGlvbi54KCkgPT0gY29udGFpbmVyUmVjdC5tYXhYKCkpCisgICAgICAgIGJhZGdlUmVjdC5z
ZXRYKGJhZGdlUG9zaXRpb24ueCgpIC0gYmFkZ2VSZWN0LndpZHRoKCkpOworCisgICAgaWYgKGJh
ZGdlUG9zaXRpb24ueSgpID09IGNvbnRhaW5lclJlY3QubWF4WSgpKQorICAgICAgICBiYWRnZVJl
Y3Quc2V0WShiYWRnZVBvc2l0aW9uLnkoKSAtIGJhZGdlUmVjdC5oZWlnaHQoKSk7CisKKyAgICBj
b250ZXh0LmZpbGxSZWN0KGJhZGdlUmVjdCwgY29sb3IpOworCisgICAgY29udGV4dC5zZXRGaWxs
Q29sb3IoQ29sb3I6OndoaXRlKTsKKyAgICBjYXNjYWRlLmRyYXdUZXh0KGNvbnRleHQsIHRleHRS
dW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIDEsIGJhZGdlUmVjdC55KCkgKyAxICsgZm9u
dFNpemUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgR3JhcGhpY3NDb250ZXh0OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdCb3JkZXJBbmRC
YWRnZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNvbnRhaW5lclJlY3QsIGNv
bnN0IEZsb2F0UG9pbnQmIGJhZGdlUG9zaXRpb24sIGNvbnN0IENvbG9yJiwgY29uc3QgU3RyaW5n
JiB0ZXh0KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUxp
c3RSZWNvcmRlci5oIgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJEaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjc4MjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTAxICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxv
dyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3Mg
ZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxmIHRvIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgorICAgICAgICBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0dGluZ3MgdGhyb3VnaCB0aGUgV2ViUGFn
ZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dCgpIHdp
bGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisgICAgICAgIHRvIHRoZSBJbWFnZUJ1ZmZl
ciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgR1BVIHByb2Nlc3MuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
cjo6cmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzaG91bGREcmF3Qm9yZGVyQW5kQmFkZ2UgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3Qm9yZGVy
QW5kQmFkZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW5zdXJl
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisKIDIwMjAtMDktMzAgIFBlbmcgTGl1ICA8
cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIEVu
YWJsZSBJUEMgbWVzc2FnZSBoYW5kbGVycyBvZiBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUg
IlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5TGlzdFJlY29yZGVyLmg+CkBAIC00MSw2ICs0Miw3IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVm
ZmVyIDogcHVibGljIFdlYkNvcmUKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAg
dXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1c2luZyBC
YXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKKyAgICB1c2luZyBC
YXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGljOgogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCkBAIC0xMDMsNiAr
MTA1LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgb3Zl
cnJpZGUKICAgICB7CisgICAgICAgIGlmIChhdXRvIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkp
CisgICAgICAgICAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3Qm9yZGVyQW5kQmFkZ2Uo
Y29udGV4dCgpLCBXZWJDb3JlOjpGbG9hdFJlY3QoeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXpl
KCkpLCBXZWJDb3JlOjpDb2xvcjo6ZGFya0dyZWVuLCAiR1BVIl9zKTsKKwogICAgICAgICBhdXRv
JiBkaXNwbGF5TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKICAgICAgICAg
aWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKQogICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoZGlzcGxh
eUxpc3QpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
LmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRl
cmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZCYpOwogCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCogcmVt
b3RlUmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5nZXQoKTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzQmFja2VuZENyZWF0ZWQoKSBjb25z
dCA9IDA7CiAgICAgYm9vbCBpc1BlbmRpbmdGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VudEZs
dXNoSWRlbnRpZmllciAhPSBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTcgKzM0LDE5IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5n
QmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKCkKK3N0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUo
V2ViUGFnZSYgcGFnZSkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkpOworICAgIHJldHVybiBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4obmV3IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQocGFnZSkpOwogfQogCi1SZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKCkKK1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQogewogICAgIC8vIFJlZ2lz
dGVyIGl0c2VsZiBhcyBhIE1lc3NhZ2VSZWNlaXZlciBpbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uCiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZlck1hcCA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkubWVzc2Fn
ZVJlY2VpdmVyTWFwKCk7CkBAIC04Niw2ICs4OCwyMCBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OndhaXRGb3JDb21tCiAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNw
YXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgMV9z
LCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZl
cyk7CiB9CiAKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c2hvdWxkRHJhd0JvcmRlckFu
ZEJhZGdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuc2hvd0RlYnVnQm9yZGVycygpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmRyYXdCb3JkZXJBbmRCYWRnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgY29udGFpbmVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgaWYgKCFzaG91bGREcmF3Qm9yZGVyQW5kQmFkZ2UoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIEZsb2F0UmVjdCBib3JkZXJSZWN0ID0gY29udGFpbmVyUmVjdDsKKyAgICBib3Jk
ZXJSZWN0LmluZmxhdGUoLTEpOworICAgIFdlYkNvcmU6OmRyYXdCb3JkZXJBbmRCYWRnZShjb250
ZXh0LCBib3JkZXJSZWN0LCBib3JkZXJSZWN0Lm1heFhNaW5ZQ29ybmVyKCksIGNvbG9yLCB0ZXh0
KTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFNob3VsZEFjY2Vs
ZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCiB7CiAgICAgaWYgKHNob3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxl
cmF0ZTo6WWVzKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAkocmV2aXNpb24g
MjY3ODE2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEyICs0MywxNCBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZTsKKwogY2xhc3MgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZAogICAgIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgogICAgICwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKFdlYlBhZ2UmKTsKIAogICAgIH5S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CiAKQEAgLTY3LDE0ICs2OSwxOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7CiAgICAgYm9vbCB3YWl0
Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKIAorICAgIGJvb2wgc2hvdWxkRHJh
d0JvcmRlckFuZEJhZGdlKCkgY29uc3Q7CisgICAgdm9pZCBkcmF3Qm9yZGVyQW5kQmFkZ2UoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjb250YWlu
ZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKIHBy
aXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAgIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAg
ICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdlQnVmZmVySWRl
bnRpZmllcik7CiAKICAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFz
aE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXIqPjsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKICAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKICAgICBSZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3Nyw3ICs4
NzcsNyBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDCiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kJiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQoKSBjb25zdAogewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpj
cmVhdGUoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410244</attachid>
            <date>2020-10-01 11:02:38 -0700</date>
            <delta_ts>2020-10-01 12:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201001110237.patch</filename>
            <type>text/plain</type>
            <size>22485</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFz
IGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBp
bnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdy
YXBoaWNhbCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJB
bmRCYWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1hbmRhdG9yeSBm
b3IgSURMIGludGVyZmFjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE0
Myw2ICsxMTQzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4NCw2ICsxODg0LDcgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY3ODE2KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzQ3LDYgKzE3NDcsNyBAQAogCQk1NTA2NDBBRjI0MDc1ODJEMDBBQUUwNDUg
LyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU1MDY0MEIwMjQwNzU4N0UwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlckNH
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUQyM0UxRTU0NTAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQ0dCYWNrZW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTUzOTk3MTgyNTI1QkI4NTAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUzOTk3MTYyNTI1
QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NDY3NTdCMUZEMjEyQTkwMDNCMTBC
MCAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1MENCNDIxRTk1
NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1
MTMwMDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4
IC8qIERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04ODg4LDYgKzg4ODksOCBAQAogCQk1NTBBMEJDODA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBGNjY0NTIyQ0E4OUJEMDAw
QTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1Mzk5NzE1MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTUzOTk3MTYyNTI1QjVDQjAwQzU4M0IwIC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzcxRkQxRkMxQTAw
M0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAwM0Ix
MEIwIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFn
ZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTQ1LDggQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1
QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5s
aW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFGMjE4N0NC
RDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLywKQEAg
LTE3NTU0LDggKzE3NTU5LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5l
Qm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJv
eC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxp
bmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5l
TGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5l
TGluZUdlb21ldHJ5LmggKi8sCkBAIC0yNjA0Niw2ICsyNjA0OSw4IEBACiAJCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5MzBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNTUzOTk3MTUyNTI1QjVD
QjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJNTUzOTk3MTYy
NTI1QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovLAogCQkJCTMxM0RF
ODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJMzEz
REU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0Mz
MzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oICov
LApAQCAtMzE0NzAsNiArMzE0NzUsNyBAQAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAv
KiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2
QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1Mzk5NzE4MjUyNUJCODUwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRl
eHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMx
MDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAq
LywKQEAgLTMxNzcyLDYgKzMxNzc4LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMg
LyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEw
NTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3
QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyAr
MzE3ODcsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJ
bmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4
MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4u
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JvcmRlckFu
ZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjb250YWlu
ZXJSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBiYWRnZVBvc2l0aW9uLCBjb25zdCBDb2xvciYgY29s
b3IsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhm
YWxzZSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
dHJva2VSZWN0KGNvbnRhaW5lclJlY3QsIDAuNSk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmb250
U2l6ZSA9IDEwOworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwor
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkFyaWFsIik7CisgICAgZm9udERlc2Ny
aXB0aW9uLnNldFNwZWNpZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRDb21wdXRlZFNpemUoZm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZN
b3ZlKGZvbnREZXNjcmlwdGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisg
ICAgVGV4dFJ1biB0ZXh0UnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUu
d2lkdGgodGV4dFJ1bik7CisKKyAgICBGbG9hdFJlY3QgYmFkZ2VSZWN0KGJhZGdlUG9zaXRpb24s
IEZsb2F0U2l6ZSh0ZXh0V2lkdGggKyAyLCBmb250U2l6ZSArIDIpKTsKKyAgICBpZiAoYmFkZ2VQ
b3NpdGlvbi54KCkgPT0gY29udGFpbmVyUmVjdC5tYXhYKCkpCisgICAgICAgIGJhZGdlUmVjdC5z
ZXRYKGJhZGdlUG9zaXRpb24ueCgpIC0gYmFkZ2VSZWN0LndpZHRoKCkpOworCisgICAgaWYgKGJh
ZGdlUG9zaXRpb24ueSgpID09IGNvbnRhaW5lclJlY3QubWF4WSgpKQorICAgICAgICBiYWRnZVJl
Y3Quc2V0WShiYWRnZVBvc2l0aW9uLnkoKSAtIGJhZGdlUmVjdC5oZWlnaHQoKSk7CisKKyAgICBj
b250ZXh0LmZpbGxSZWN0KGJhZGdlUmVjdCwgY29sb3IpOworCisgICAgY29udGV4dC5zZXRGaWxs
Q29sb3IoQ29sb3I6OndoaXRlKTsKKyAgICBjYXNjYWRlLmRyYXdUZXh0KGNvbnRleHQsIHRleHRS
dW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIDEsIGJhZGdlUmVjdC55KCkgKyAxICsgZm9u
dFNpemUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENvbG9yOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIGRy
YXdCb3JkZXJBbmRCYWRnZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNvbnRh
aW5lclJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIGJhZGdlUG9zaXRpb24sIGNvbnN0IENvbG9yJiwg
Y29uc3QgU3RyaW5nJiB0ZXh0KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAkocmV2aXNpb24gMjY3ODE2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3RJdGVtcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjc4MjQpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2Fu
dmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxmIHRv
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgorICAgICAgICBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0dGluZ3MgdGhyb3Vn
aCB0aGUgV2ViUGFnZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5n
Q29udGV4dCgpIHdpbGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisgICAgICAgIHRvIHRo
ZSBJbWFnZUJ1ZmZlciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgR1BVIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcjo6cmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzaG91bGREcmF3Qm9yZGVy
QW5kQmFkZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpkcmF3Qm9yZGVyQW5kQmFkZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisKIDIwMjAtMDktMzAg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BV
IFByb2Nlc3NdIEVuYWJsZSBJUEMgbWVzc2FnZSBoYW5kbGVycyBvZiBSZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVyLmg+CkBAIC00MSw2ICs0Miw3IEBAIGNsYXNzIFJl
bW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmUKICAgICB1c2luZyBCYXNlRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT47CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsK
ICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsK
KyAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
CkBAIC0xMDMsNiArMTA1LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBmbHVzaERyYXdpbmdD
b250ZXh0KCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChhdXRvIHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQgPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKCkpCisgICAgICAgICAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3Qm9y
ZGVyQW5kQmFkZ2UoY29udGV4dCgpLCBXZWJDb3JlOjpGbG9hdFJlY3QoeyB9LCBtX2JhY2tlbmQt
PmxvZ2ljYWxTaXplKCkpLCBXZWJDb3JlOjpDb2xvcjo6ZGFya0dyZWVuLCAiR1BVIl9zKTsKKwog
ICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3Qo
KTsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKQogICAgICAgICAgICAgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRD
b21taXQoZGlzcGxheUxpc3QpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdl
YkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOwogCisgICAgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCogcmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5nZXQoKTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzQmFja2VuZENy
ZWF0ZWQoKSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1BlbmRpbmdGbHVzaCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VudEZsdXNoSWRlbnRpZmllciAhPSBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTcgKzM0LDE5IEBACiAjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKCkKK3N0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkpOwor
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4obmV3IFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQocGFnZSkpOwogfQogCi1SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkKK1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQogewog
ICAgIC8vIFJlZ2lzdGVyIGl0c2VsZiBhcyBhIE1lc3NhZ2VSZWNlaXZlciBpbiB0aGUgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uCiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNl
aXZlck1hcCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkubWVzc2FnZVJlY2VpdmVyTWFwKCk7CkBAIC04Niw2ICs4OCwyMCBAQCBib29sIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OndhaXRGb3JDb21tCiAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndh
aXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dD4obV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllciwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNN
ZXNzYWdlQXJyaXZlcyk7CiB9CiAKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c2hvdWxk
RHJhd0JvcmRlckFuZEJhZGdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdl
KCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9yZGVycygpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmRyYXdCb3JkZXJBbmRCYWRnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgY29udGFpbmVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgaWYgKCFzaG91bGREcmF3Qm9yZGVyQW5kQmFkZ2UoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEZsb2F0UmVjdCBib3JkZXJSZWN0ID0gY29udGFpbmVyUmVj
dDsKKyAgICBib3JkZXJSZWN0LmluZmxhdGUoLTEpOworICAgIFdlYkNvcmU6OmRyYXdCb3JkZXJB
bmRCYWRnZShjb250ZXh0LCBib3JkZXJSZWN0LCBib3JkZXJSZWN0Lm1heFhNaW5ZQ29ybmVyKCks
IGNvbG9yLCB0ZXh0KTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUs
IFNob3VsZEFjY2VsZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgaWYgKHNob3VsZEFjY2VsZXJhdGUgPT0g
U2hvdWxkQWNjZWxlcmF0ZTo6WWVzKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEyICs0
MywxNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZTsKKwogY2xhc3Mg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZAogICAgIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgog
ICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZSgpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKFdlYlBhZ2Um
KTsKIAogICAgIH5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CiAKQEAgLTY3LDE0ICs2OSwxOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7CiAg
ICAgYm9vbCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKIAorICAgIGJv
b2wgc2hvdWxkRHJhd0JvcmRlckFuZEJhZGdlKCkgY29uc3Q7CisgICAgdm9pZCBkcmF3Qm9yZGVy
QW5kQmFkZ2UoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBjb250YWluZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFN0cmluZyYg
dGV4dCk7CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUg
cmVjZWl2ZWQuCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgY29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIElt
YWdlQnVmZmVySWRlbnRpZmllcik7CiAKICAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwID0gSGFzaE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIqPjsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKICAgICBJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKICAgICBS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsg
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMjY3ODE2KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg3Nyw3ICs4NzcsNyBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJv
bWVDCiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQoKSBjb25zdAogewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGUoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410256</attachid>
            <date>2020-10-01 12:07:28 -0700</date>
            <delta_ts>2020-10-12 10:57:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201001120727.patch</filename>
            <type>text/plain</type>
            <size>22516</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFz
IGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBp
bnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdy
YXBoaWNhbCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJB
bmRCYWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1hbmRhdG9yeSBm
b3IgSURMIGludGVyZmFjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE0
Myw2ICsxMTQzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNjc4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4NCw2ICsxODg0LDcgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY3ODE2KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzQ3LDYgKzE3NDcsNyBAQAogCQk1NTA2NDBBRjI0MDc1ODJEMDBBQUUwNDUg
LyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU1MDY0MEIwMjQwNzU4N0UwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlckNH
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUQyM0UxRTU0NTAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQ0dCYWNrZW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTUzOTk3MTgyNTI1QkI4NTAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUzOTk3MTYyNTI1
QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NDY3NTdCMUZEMjEyQTkwMDNCMTBC
MCAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1MENCNDIxRTk1
NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1
MTMwMDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4
IC8qIERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04ODg4LDYgKzg4ODksOCBAQAogCQk1NTBBMEJDODA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBGNjY0NTIyQ0E4OUJEMDAw
QTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1Mzk5NzE1MjUyNUI1Q0IwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTUzOTk3MTYyNTI1QjVDQjAwQzU4M0IwIC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzcxRkQxRkMxQTAw
M0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAwM0Ix
MEIwIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFn
ZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTQ1LDggQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1
QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5s
aW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFGMjE4N0NC
RDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLywKQEAg
LTE3NTU0LDggKzE3NTU5LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5l
Qm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJv
eC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxp
bmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5l
TGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5l
TGluZUdlb21ldHJ5LmggKi8sCkBAIC0yNjA0Niw2ICsyNjA0OSw4IEBACiAJCQkJMkQyRkMwNTcx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5MzBBRjZD
RDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNTUzOTk3MTUyNTI1QjVD
QjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJNTUzOTk3MTYy
NTI1QjVDQjAwQzU4M0IwIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovLAogCQkJCTMxM0RF
ODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJMzEz
REU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0Mz
MzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oICov
LApAQCAtMzE0NzAsNiArMzE0NzUsNyBAQAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAv
KiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2
QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1Mzk5NzE4MjUyNUJCODUwMEM1ODNCMCAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRl
eHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMx
MDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAq
LywKQEAgLTMxNzcyLDYgKzMxNzc4LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMg
LyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEw
NTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3
QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxp
bmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyAr
MzE3ODcsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJ
bmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4
MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4u
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JvcmRlckFu
ZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjb250YWlu
ZXJSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBiYWRnZVBvc2l0aW9uLCBjb25zdCBDb2xvciYgY29s
b3IsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhm
YWxzZSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
dHJva2VSZWN0KGNvbnRhaW5lclJlY3QsIDAuNSk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmb250
U2l6ZSA9IDEwOworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwor
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkFyaWFsIik7CisgICAgZm9udERlc2Ny
aXB0aW9uLnNldFNwZWNpZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRDb21wdXRlZFNpemUoZm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZN
b3ZlKGZvbnREZXNjcmlwdGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisg
ICAgVGV4dFJ1biB0ZXh0UnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUu
d2lkdGgodGV4dFJ1bik7CisKKyAgICBGbG9hdFJlY3QgYmFkZ2VSZWN0KGJhZGdlUG9zaXRpb24s
IEZsb2F0U2l6ZSh0ZXh0V2lkdGggKyAyLCBmb250U2l6ZSArIDIpKTsKKyAgICBpZiAoYmFkZ2VQ
b3NpdGlvbi54KCkgPT0gY29udGFpbmVyUmVjdC5tYXhYKCkpCisgICAgICAgIGJhZGdlUmVjdC5z
ZXRYKGJhZGdlUG9zaXRpb24ueCgpIC0gYmFkZ2VSZWN0LndpZHRoKCkpOworCisgICAgaWYgKGJh
ZGdlUG9zaXRpb24ueSgpID09IGNvbnRhaW5lclJlY3QubWF4WSgpKQorICAgICAgICBiYWRnZVJl
Y3Quc2V0WShiYWRnZVBvc2l0aW9uLnkoKSAtIGJhZGdlUmVjdC5oZWlnaHQoKSk7CisKKyAgICBj
b250ZXh0LmZpbGxSZWN0KGJhZGdlUmVjdCwgY29sb3IpOworCisgICAgY29udGV4dC5zZXRGaWxs
Q29sb3IoQ29sb3I6OndoaXRlKTsKKyAgICBjYXNjYWRlLmRyYXdUZXh0KGNvbnRleHQsIHRleHRS
dW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIDEsIGJhZGdlUmVjdC55KCkgKyAxICsgZm9u
dFNpemUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENvbG9yOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIGRy
YXdCb3JkZXJBbmRCYWRnZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNvbnRh
aW5lclJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIGJhZGdlUG9zaXRpb24sIGNvbnN0IENvbG9yJiwg
Y29uc3QgU3RyaW5nJiB0ZXh0KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAkocmV2aXNpb24gMjY3ODE2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiRGlzcGxheUxpc3RSZWNvcmRlci5oIgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxp
c3RJdGVtcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjc4MjQpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2Fu
dmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxmIHRv
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgorICAgICAgICBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0dGluZ3MgdGhyb3Vn
aCB0aGUgV2ViUGFnZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5n
Q29udGV4dCgpIHdpbGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisgICAgICAgIHRvIHRo
ZSBJbWFnZUJ1ZmZlciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgR1BVIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcjo6cmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzaG91bGREcmF3Qm9yZGVy
QW5kQmFkZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpkcmF3Qm9yZGVyQW5kQmFkZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBjb25zdCk6CisKIDIwMjAtMDktMzAg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BV
IFByb2Nlc3NdIEVuYWJsZSBJUEMgbWVzc2FnZSBoYW5kbGVycyBvZiBSZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVyLmg+CkBAIC00MSw2ICs0Miw3IEBAIGNsYXNzIFJl
bW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmUKICAgICB1c2luZyBCYXNlRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT47CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsK
ICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsK
KyAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
CkBAIC0xMDMsNiArMTA1LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBmbHVzaERyYXdpbmdD
b250ZXh0KCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChhdXRvIHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQgPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKCkpCisgICAgICAgICAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3Qm9y
ZGVyQW5kQmFkZ2UoY29udGV4dCgpLCBXZWJDb3JlOjpGbG9hdFJlY3QoeyB9LCBtX2JhY2tlbmQt
PmxvZ2ljYWxTaXplKCkpLCBXZWJDb3JlOjpDb2xvcjo6ZGFya0dyZWVuLCAiR1BVIl9zKTsKKwog
ICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3Qo
KTsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKQogICAgICAgICAgICAgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRD
b21taXQoZGlzcGxheUxpc3QpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdl
YkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOwogCisgICAgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCogcmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5nZXQoKTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzQmFja2VuZENy
ZWF0ZWQoKSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1BlbmRpbmdGbHVzaCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VudEZsdXNoSWRlbnRpZmllciAhPSBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAkocmV2aXNpb24gMjY3ODE2
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTcgKzM0LDIwIEBACiAjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NldHRpbmdzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAotc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVy
aW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2Up
CiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPihu
ZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHBhZ2Up
KTsKIH0KIAotUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgp
CitSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2Um
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKICAgICAvLyBSZWdpc3RlciBpdHNlbGYgYXMg
YSBNZXNzYWdlUmVjZWl2ZXIgaW4gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uLgogICAgIElQQzo6
TWVzc2FnZVJlY2VpdmVyTWFwJiBtZXNzYWdlUmVjZWl2ZXJNYXAgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1hcCgp
OwpAQCAtODYsNiArODksMjAgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9y
Q29tbQogICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVs
eTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVz
aENvbnRleHQ+KG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9y
T3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogfQogCitib29s
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnNob3VsZERyYXdCb3JkZXJBbmRCYWRnZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNob3dEZWJ1Z0Jv
cmRlcnMoKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3Qm9yZGVyQW5k
QmFkZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGNvbnRhaW5l
clJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlm
ICghc2hvdWxkRHJhd0JvcmRlckFuZEJhZGdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBGbG9h
dFJlY3QgYm9yZGVyUmVjdCA9IGNvbnRhaW5lclJlY3Q7CisgICAgYm9yZGVyUmVjdC5pbmZsYXRl
KC0xKTsKKyAgICBXZWJDb3JlOjpkcmF3Qm9yZGVyQW5kQmFkZ2UoY29udGV4dCwgYm9yZGVyUmVj
dCwgYm9yZGVyUmVjdC5tYXhYTWluWUNvcm5lcigpLCBjb2xvciwgdGV4dCk7Cit9CisKIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3VsZEFj
Y2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ewogICAgIGlmIChzaG91bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6OlllcykgewpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgJKHJldmlzaW9uIDI2NzgxNikKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMiArNDMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIFdlYlBhZ2U7CisKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKICAg
ICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZShXZWJQYWdlJik7CiAKICAgICB+UmVtb3RlUmVuZGVyaW5n
QmFja2VuZCgpOwogCkBAIC02NywxNCArNjksMTkgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
ckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwogICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KCk7CiAKKyAgICBib29sIHNob3VsZERyYXdCb3JkZXJBbmRCYWRn
ZSgpIGNvbnN0OworICAgIHZvaWQgZHJhd0JvcmRlckFuZEJhZGdlKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY29udGFpbmVyUmVjdCwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImLCBjb25zdCBTdHJpbmcmIHRleHQpOworCiBwcml2YXRlOgotICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBh
Z2UmKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgSW1hZ2VC
dWZmZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwogCiAg
ICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8SW1hZ2VCdWZm
ZXJJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47CisKKyAgICBX
ZWJQYWdlJiBtX3BhZ2U7CiAgICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpIH07CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9u
IDI2NzgxNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NzcsNyArODc3LDcgQEAgUmVmUHRy
PERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQwogUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCYgV2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKCk7CisgICAg
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNy
ZWF0ZShtX3BhZ2UpOwogICAgIHJldHVybiAqbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411131</attachid>
            <date>2020-10-12 10:57:52 -0700</date>
            <delta_ts>2020-10-12 11:46:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012105752.patch</filename>
            <type>text/plain</type>
            <size>222151</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uZGU0ODM4NTIzZTQzOWU0MjJmNWY5YjExYTc2ZWU0
NGEyODRiYjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMiBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg6IEFkZGVkLgorCisy
MDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0bWFwSW1hZ2UgZnJhbWUgaW4gR1BV
IFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdpdGggaXRzIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFnZSB3aWxsIGJlIGNhY2hlZCBpbiB0
aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2YgQml0bWFwSW1hZ2UgaGF2ZSBhIHdl
bGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2Vzcy4KKyAgICAgICAgVGhlIGNv
dW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mgd2lsbCBoYXZlIGEgc2ltaWxhciBs
aWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBpcyBkcmF3biBmb3IgdGhlIGZpcnN0
IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2ViCisgICAgICAgIFByb2Nlc3Mgdmlh
IGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2VzcyBhbmQgY2FjaGVkIHVuZGVyIGEg
dW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3aGljaCB3aWxsIGJlIHVz
ZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAgICAgICAgaXRlbS4gV2hlbiB0aGUg
Qml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBkZWNvZGVkIGZyYW1lLCBhIG1lc3Nh
Z2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdlYiBQcm9jZXNzIHRvIHRoZSBHUFUg
UHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAgICBmcmFtZS4gSGVyZSBpcyB0aGUg
c2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAgVGhlIGRyYXdpbmcgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMSkgQml0bWFw
SW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpkcmF3TmF0aXZlSW1hZ2UoKS4KKyAg
ICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFn
ZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgIENhY2hlZEltYWdlIGFuZCBjYWxs
cyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpLgorICAgICAgICAzKSBSZWNvcmRl
cjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
KSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNoIGlzIFJlbW90ZUltYWdlQnVmZmVy
IGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAgNCkgUmVtb3RlSW1hZ2VCdWZmZXIg
Y2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGljaCBjYWxscyBpdHMKKyAgICAgICAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSgpLgorICAg
ICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0cyBmaW5kTmF0aXZlSW1hZ2VGb3JD
bGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhlIE5hdGl2ZUltYWdlIGluIHRoZSBj
YWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUgYXMgYSBjbGllbnQKKyAgICAgICAg
ICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUgUHJvY2VzcyB0byBjYWNoZSBpdCBh
bHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
IFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRoZSAKKyAgICAgICAgICAgRHJhd05h
dGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci4KKworICAg
ICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxv
d2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRoZSBEcmF3aW5nQ29udGV4dCBoYXBw
ZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAgICAgICAgIHJlcGxheWVkIGJhY2su
IERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxscyBhcHBseSgpIG9mIGl0cworICAg
ICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhlIGNhc2Ugb2YgMkQgY2FudmFzLCB0
aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KKyAgICAgICAg
ICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlS
ZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2
ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZlSW1hZ2UKKyAgICAgICAgICAgd2hv
c2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgb2YgdGhlIERy
YXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUgTmF0aXZlSW1hZ2UgaXMgZm91bmQs
IGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9mIHRoZQorICAgICAgICAgICBhcmd1
bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNl
IGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIEltYWdl
U291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0aGUgSW1hZ2VPYnNlcnZlciB3aGVu
IGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisg
ICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdp
bGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIENhY2hlZElt
YWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKS4K
KyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRoZSBDYWNoZWRJbWFnZUNsaWVudHMg
dG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2UgUmVtb3RlUmVzb3VyY2VDYWNoZSBy
ZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGllbnQgb2YKKyAgICAgICAgICAgdGhp
cyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0
cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgNSkgVGhlIGNhY2hl
ZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0aGUgY2FjaGUgYW5kIGEgbWVzc2Fn
ZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQVSBQcm9jZXNzIHdoZW4gbm8gcmVt
b3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAgICAgICAgIE5hdGl2ZUltYWdlLgor
CisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBHUFUgUHJvY2VzcyBpcyB0aGUg
Zm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQKKyAgICAgICAgICAgTmF0aXZlSW1h
Z2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKworICAgICAgICAqIGh0bWwvSW1h
Z2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6ZHJhd05h
dGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQ6Om5hdGl2ZUlt
YWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjphcHBseSBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJbWFnZVB0ciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aW1hZ2VTaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJ
bWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0p
OgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3Jk
aW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBOYXRpdmVJbWFnZVB0ciB0
byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAgICAgICAgIE5hdGl2ZUltYWdlUHRy
LgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdlSGFuZGxlIGFuZCBhbGxvdyBlbmNv
ZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAgICAgICAgICAgZGlyZWN0bHkuCisg
ICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGlyZWN0aXZlcyBhcm91bmQgdGhlIERp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAgICAgaXRlbSBhbmQgdGhlIG1ldGhv
ZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92ZSB0aGUgZHJhd05hdGl2ZUltYWdl
KCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBjYWxsZXJzLgorICAgICAgICA1KSBJ
biB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcgY29tbWFuZHMsIG1ha2UgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBwcm9jZXNzIGRyYXdpbmcgdGhlIGlt
YWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNvbW1hbmRzIGFyZQorICAgICAgICAg
ICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFnZSB3aWxsIHJlbmRlciBhIE5hdGl2
ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBTVkdJbWFnZSB3aWxsIHJlY29yZCBp
dHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUlt
YWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90
ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgLS0gR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERpc3BsYXlMaXN0OjpSZWNvcmRlciB0
byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFwcHJvcHJpYXRlIHRvIGNyZWF0ZSBE
cmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAgICAgLS0gRGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBkZWxlZ2F0ZSB0byB0byBjcmVhdGUK
KyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIC0tIFNpbmNl
IFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdh
dGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVy
SXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxsIGJlIGNhbGxlZCBuZXh0CisgICAg
ICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVEcmF3SW1h
Z2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFzaE1hcAorICAgICAgICAgICB1c2lu
ZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5kcyBpdCwgaXQgd2lsbCBjcmVhdGUg
dGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIFRoZSBzZXF1ZW5jZSBpbiB0aGUg
R1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAtLSBXaGVuIHJlcGxheWlu
ZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6OlJlcGxheWVyIHdpbGwgY2FsbAor
ICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYgaXQgd2FudHMgdG8gYXBwbHkgdGhl
IERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNhdXNlIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSwKKyAgICAgICAg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3aWxsIGJlIGNhbGxlZC4KKworICAg
ICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwgY2FsbCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAgICAgICAgICAgd2hpY2ggd2lsbCBw
YXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgLS0gUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNlSXRlbSgpIHdpbGwgc2VhcmNoIGZv
ciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdob3NlIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAgICAgRHJhd0ltYWdlQnVmZmVyLiBB
bmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdyYXBoaWNzQ29udGV4dC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6RHJh
d0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF4
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6T2JzZXJ2ZXI6On5PYnNl
cnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHA6
CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9k
dWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0
aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8gSW1hZ2VCdWZmZXIgd2hpY2ggdXNl
ZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxyZWFkeSBvdmVycmlkZGVuCisgICAg
ICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlzIGNhbGxlZCBieSBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkga2Vl
cHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgd2lsbCBiZSB1c2VkIGluIFdlYkNv
cmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBhIHJlbW90ZSBJbWFnZUJ1ZmZlciB0
byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1YWxseSBpdCB3aWxsCisgICAgICAg
IGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFnZSB0byBhIHJlbW90ZSBJbWFnZUJ1
ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMDkg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNwbGF5TGlzdFJlY29yZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2NmU5YTBlNjQ3OGUuLmZmM2NiMzVi
MmJmMGVkMmQwNzg2NTdhM2RlMTE1ZTczMGFhNzc5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjc0
IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBh
IGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdlIGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBh
bGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZv
ckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxp
c3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUlt
YWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRs
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRy
YXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVt
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0lt
YWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVt
b3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJl
bW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVkaW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xl
IGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAg
IHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRo
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8gaXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisK
KyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9u
IGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAgICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNl
Q2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAg
IGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAgICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFz
aE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAg
ICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAgICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAgdHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVy
ZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVzZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdo
aWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3
aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFz
aFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNv
dXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWlyIGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVp
cgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMgd2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291
cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hlCisgICAgICAgIGlzIHJlcXVlc3RlZCB0byBy
ZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBpdCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisg
ICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2YgcmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQg
bW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAgICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhlciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAg
IC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAgICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4gYW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291
cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGllbnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBS
ZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAKKyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVs
ZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdlbGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6
cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToKKyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVz
b3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xp
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90
ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwgdGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMg
YSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBo
YXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0NvbnRleHQuIEl0J3MgdGltZSB0byBib29rLQor
ICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZlcmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRo
ZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAgICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1v
dGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNl
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUg
R1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5h
Z2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAgICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFs
IGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAg
ICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBt
YW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2Ug
Y2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1
c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNz
LiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0
bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3Rl
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVkcyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZv
ciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5kIAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMg
YW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwK
KyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJl
bW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBh
ZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5nIHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRl
eHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1
YjUyNTQwMGZlLi5kYzk2M2JiZjljNjE1ZTJiMmE5ZDE2MTA2MGY3YzllMDBmY2FkOGU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMRXh0
cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTExOTQsNiArMTE5NSw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJ
bmZvLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVT
U2hpbXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmgKQEAgLTEyMDcsNiArMTIwOSw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRleHRU
cmFjay5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1w
bGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1JvdW5kZWRSZWN0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZTY3ZTdjNzQ3MzEzYjg3
ZGFmNDAwNGIzNjhhOTBlOGRhMWQ1MjA2ZC4uYjVmMGRkNjkxYzhmNjY0Y2VkYmIyNDk1MDZhZjI3
OGJkODYyZDA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OTMsNiArMTg5Myw3IEBAIHBsYXRmb3Jt
L2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0RXh0cmFzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZDYxZTA1YjM1NzczMDRjMTgzYzUwM2Y4MzFlYzg5
NDEwMTAwMDIxLi5iYWVkNTIxNmVlNjQ3NGQ1YWQwMDAwMmVhMmI5NWZkMzFlZmY2YzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDA3LDcgKzIwMDcsNiBAQAogCQk2QTcyNzk4QjFGMTZDMjlDMDAzRjM5QjggLyogSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkE3Mjc5ODgxRjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dy
YW0uaCAqLzsgfTsKIAkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIw
QTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCMUY0ODExMjI5OEEzN0Uw
MERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjFGNDgwRjIyOTg5RUM0MDBERThC
ODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0
MSAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RDQxMkQyMzk4
M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2Vk
SW5TdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2QjRFODYxMzIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCNEU4NjEyMjIxQjcx
M0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNTA3QTI0MjM0QkYzNDEwMEJFN0M2MiAvKiBO
YXZpZ2F0b3JJc0xvZ2dlZEluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QjUwN0EyMTIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJ
bi5oICovOyB9OwpAQCAtMjE1NSwxMiArMjE1NCwxNiBAQAogCQk3MjE0NDMzNDIyM0VDOTE2MDBG
MTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5
T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MjFCNDk3NDI1MTJCQTNCMDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNraW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjFCNDk3MDI1MTJBQzA0
MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNraW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIyODNGMEUyMzBCMjY4QzAwRjVEODI4IC8qIElt
YWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGluZ09wdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3
MjMxQkVCMjI1MzRDOTQ4MDA3RUJEQjIgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjMxQkVCMDI1MzRDMzlE
MDA3RUJEQjIgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8q
IEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4Lmgg
Ki87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdG
MjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rp
dml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjdBN0YzQTI0MDc4Qjg0MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MkJBQzNBQjIzRTFFNTQ0MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5
OUJDNjcyM0Q2QTUzMjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOTlCQzY0MjNENjg2QTYw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5OUJDNjgyM0Q2QTUzRTAwQ0M2ODgzIC8q
IFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI5RDA1MzAyNTMx
NDI0MzAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4
IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTNDMjUzMkVFRTMwMDQyMjA5OCAvKiBOYXRp
dmVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI5RDA1M0QyNTMyRUY5MTAwNDIy
MDk4IC8qIE5hdGl2ZUltYWdlUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjlEMDUzOTI1MzJEMkU3MDA0MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkE3
M0JFRjI0NUEzRjkwMDAxQzlEMDMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjJBODE1QzIzOEZENTA1MDBDMDA1
ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJCQUMzQUUyM0UxRjBCMDAwOEQ3NDFDIC8qIEltYWdlQnVm
ZmVyQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzJCQUMzQTUyM0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4
RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAv
KiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKQEAgLTk0ODcsNyArOTQ5MCw2IEBACiAJ
CTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmln
YXRpb25EYXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjM0ODA5MjBFRUY1
MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0
MTJCMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2dnZWRJblN0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEyQzIz
OTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9nZ2VkSW5TdGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRFODYx
MjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVnaXN0cmFibGVEb21haW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5MDEs
NiArOTkwMyw4IEBACiAJCTcyMUI0OTZGMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJh
Y2tpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCaXRtYXBCYWNraW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIxQjQ5NzAyNTEyQUMwNDAwRkU5RDNCIC8qIElt
YWdlQml0bWFwQmFja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJpdG1hcEJhY2tpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8q
IEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbmltYXRpb25GcmFtZVJhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQUYyNTM0QzM5RDAwN0VCREIy
IC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRFeHRyYXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjMxQkVC
MDI1MzRDMzlEMDA3RUJEQjIgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MjRFRDMyOTFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxlbmRNaW5NYXguY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhUQmxlbmRNaW5NYXguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRDMyQTFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxl
bmRNaW5NYXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRVhUQmxlbmRNaW5N
YXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkIxQTNBN0U1NDAwRjVG
MTNDIC8qIEVYVEJsZW5kTWluTWF4LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRCbGVu
ZE1pbk1heC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTIzLDYgKzk5Mjcs
OCBAQAogCQk3MjdBRkVEMzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyOTlCQzY0MjNENjg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzOTI1MzJEMkU3MDA0MjIwOTggLyogTmF0aXZlSW1h
Z2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQdHIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTQyM0UxNzMyNzAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFj
a2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZl
ckJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNTIzRTE3
MzI4MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3MkJBQzNBNjIzRTE3MzI4MDA4RDc0MUMgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUltYWdlQnVmZmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE0MSw2ICsyNjE0Nyw4IEBACiAJCQkJ
MkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEw
MTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEw
MTU5MzBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNzIzMUJF
QUYyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJ
NzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovLAog
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8s
CiAJCQkJMzEzREU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8s
CiAJCQkJN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcy5oICovLApAQCAtMjYyMjAsOCArMjYyMjgsOCBAQAogCQkJCTA3QjkzRkY5MjNCOTJBQUEw
MDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hlLmggKi8sCiAJCQkJMzE0QkUzQTQxQjMxMDNGQjAwMTQx
OTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCiAJCQkJMzE0QkUzQTUxQjMx
MDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oICovLAotCQkJCTZCMzQ4
MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oICovLAogCQkJCTU1QTMzNkY2MUQ4
MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovLAorCQkJCTcyOUQwNTM5MjUzMkQyRTcw
MDQyMjA5OCAvKiBOYXRpdmVJbWFnZVB0ci5oICovLAogCQkJCUIyNzUzNTUyMEIwNTM4MTQwMDJD
RTY0RiAvKiBQYXRoLmNwcCAqLywKIAkJCQlCMjc1MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0
aC5oICovLAogCQkJCUE4OERENDg4MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3Rh
dGUuY3BwICovLApAQCAtMjYyMzksNiArMjYyNDcsNyBAQAogCQkJCTA3NEU4MkI5MThBNjlGMEUw
MDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FCNDE3RjEzRTM1NkU4
MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFBRjMg
LyogUmVnaW9uLmggKi8sCisJCQkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbW90ZVJl
c291cmNlSWRlbnRpZmllci5oICovLAogCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8sCiAJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8q
IFJlbW90ZVZpZGVvU2FtcGxlLmggKi8sCiAJCQkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8q
IFJlbmRlcmluZ01vZGUuaCAqLywKQEAgLTMxNjE0LDYgKzMxNjIzLDcgQEAKIAkJCQkyRDQ4MUYw
NDE0NkI1QzZCMDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJBMDE1QTkwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3MjMxQkVCMjI1MzRDOTQ4MDA3RUJEQjIgLyogR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTNERTg3MDIzQTk2OTczMDA4RkM0
N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzMwQTAyMURG
OEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzE2OCw3ICszMzE3OCw4IEBACiAJCQkJMzE0QkUz
QTcxQjMxMDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgxODcyMjMwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVkTm9kZU1hcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgxODcyMUUwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2RlTGlz
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2
ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzQzI1MzJFRUUzMDA0MjIwOTggLyog
TmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5
OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCMkQxNzUxQjhCQ0Q2
QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5
QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzQ0NGMDI3MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMzNTQxLDYgKzMzNTUyLDcgQEAKIAkJCQk0NkI5NTE5QTIwN0Q2
MzU0MDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzMxMkU5
MjJGQ0Q3QzAwMDEyMDRFQyAvKiBSZW1vdGVQbGF5YmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDMzEyRUIyMkZDRDdDOTAwMTIwNEVDIC8qIFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3M0ExNTU0MjE3
N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
Qml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDQz
OWI2YTlkN2Q4MTIwZDkxZTFlMWFmYzU2ZDFhYWY2YmUwYjQ5ZTQuLjYyZjU5ZDY5MmI3ZjM2ZDY5
OTU3NGFkNTBjODE4Zjk5OTczZDcyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3Bw
CkBAIC02MDEsMTAgKzYwMSwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlY29kZWRTaXplQ2hh
bmdlZChjb25zdCBJbWFnZSYsIGxvbmcgbG9uZykgb3ZlcnJpZGUgeyB9CiAKKyAgICB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBJbWFnZSYsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKKyAgICB9CisKICAgICB2b2lkIGRpZERyYXcoY29uc3Qg
SW1hZ2UmKSBvdmVycmlkZSB7IH0KIAogICAgIGJvb2wgY2FuRGVzdHJveURlY29kZWREYXRhKGNv
bnN0IEltYWdlJikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgaW1hZ2VGcmFt
ZUF2YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3RhdGUsIGNvbnN0IEludFJl
Y3QqID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCkg
b3ZlcnJpZGUgeyB9CisgICAgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25zdCBJ
bWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJikgb3ZlcnJpZGUgeyB9CisKICAgICB2b2lkIGNo
YW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIG92ZXJy
aWRlIHsgfQogICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3QgSW1hZ2UmKSBv
dmVycmlkZSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAKaW5kZXggNWNjOTMzODMyNTc0ZGNiZWJlZDgyYzJjMGJjZThmMDBjMmJjYTcyZS4uODJkMjkx
OWM4M2NhN2M0MGJlYjNmOTAyZjhjNmM3OGJlZTdlYmRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC00MTEsNiArNDExLDE3IEBAIHZvaWQgQ2Fj
aGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRlY29kZWRTaXplQ2hhbmdlZChjb25zdCBJ
bWFnZSYgaW1hZ2UsIGxvCiAgICAgICAgIGNhY2hlZEltYWdlLT5kZWNvZGVkU2l6ZUNoYW5nZWQo
aW1hZ2UsIGRlbHRhKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZl
cjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIGZv
ciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKSB7CisgICAgICAgIGlmICgmaW1h
Z2UgIT0gY2FjaGVkSW1hZ2UtPmltYWdlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBk
ZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIHZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hl
ZEltYWdlT2JzZXJ2ZXI6OmRpZERyYXcoY29uc3QgSW1hZ2UmIGltYWdlKQogewogICAgIGZvciAo
YXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKQpAQCAtNDM0LDYgKzQ0NSwxMiBAQCB2
b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjppbWFnZUZyYW1lQXZhaWxhYmxl
KGNvbnN0IEltYWdlJiBpbWFnZSwgSQogICAgICAgICBjYWNoZWRJbWFnZS0+aW1hZ2VGcmFtZUF2
YWlsYWJsZShpbWFnZSwgYW5pbWF0aW5nU3RhdGUsIGNoYW5nZVJlY3QsIGRlY29kaW5nU3RhdHVz
KTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6bmF0aXZlSW1h
Z2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBjb25zdCBOYXRpdmVJbWFnZVB0
ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgZm9yIChhdXRvIGNhY2hlZEltYWdlIDogbV9jYWNoZWRJ
bWFnZXMpCisgICAgICAgIGNhY2hlZEltYWdlLT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChp
bWFnZSwgbmF0aXZlSW1hZ2UpOworfQorCiB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiBpbWFnZSwgY29uc3QgSW50UmVjdCog
cmVjdCkKIHsKICAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZEltYWdlcykKQEAg
LTY4OSw2ICs3MDYsMTYgQEAgdm9pZCBDYWNoZWRJbWFnZTo6aW1hZ2VGcmFtZUF2YWlsYWJsZShj
b25zdCBJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3RhdGUgYW4KICAgICAgICAgbV9jbGll
bnRzV2FpdGluZ0ZvckFzeW5jRGVjb2RpbmcuY2xlYXIoKTsKIH0KIAordm9pZCBDYWNoZWRJbWFn
ZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBjb25zdCBO
YXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgaWYgKCZpbWFnZSAhPSBtX2ltYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlcjxDYWNo
ZWRJbWFnZUNsaWVudD4gY2xpZW50V2Fsa2VyKG1fY2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hl
ZEltYWdlQ2xpZW50KiBjbGllbnQgPSBjbGllbnRXYWxrZXIubmV4dCgpKQorICAgICAgICBjbGll
bnQtPm5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKG5hdGl2ZUltYWdlKTsKK30KKwogdm9pZCBD
YWNoZWRJbWFnZTo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEludFJl
Y3QqIHJlY3QpCiB7CiAgICAgaWYgKCZpbWFnZSAhPSBtX2ltYWdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAppbmRleCA3MmQ1OWMxZmY0ODQ1YzIzMjc1OTIwYmM4
ZDEyZjI3MzQzMjdmNzJjLi44Njc5ODMyYTRjYzEwYmM2NGY3YTNlNTRiMjU5YmU1M2ZhNzEyOGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtMTQ5LDEw
ICsxNDksMTQgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lkIGVuY29kZWREYXRhU3RhdHVzQ2hh
bmdlZChjb25zdCBJbWFnZSYsIEVuY29kZWREYXRhU3RhdHVzKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcgZGVsdGEpIGZpbmFs
OworCisgICAgICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZERyYXco
Y29uc3QgSW1hZ2UmKSBmaW5hbDsKIAogICAgICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0
YShjb25zdCBJbWFnZSYpIGZpbmFsOwogICAgICAgICB2b2lkIGltYWdlRnJhbWVBdmFpbGFibGUo
Y29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VS
ZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCkg
ZmluYWw7CisgICAgICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1h
Z2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIGZpbmFsOworCiAgICAgICAgIHZvaWQgY2hhbmdl
ZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IEludFJlY3QqKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpIGZpbmFsOwogCkBAIC0xNjQs
NiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERyYXcoY29uc3QgSW1hZ2UmKTsKICAg
ICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpOwogICAgIHZvaWQgaW1h
Z2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3RhdGUsIGNvbnN0
IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9IERlY29kaW5n
U3RhdHVzOjpJbnZhbGlkKTsKKyAgICB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNv
bnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKICAgICB2b2lkIGNoYW5nZWRJblJl
Y3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0Kik7CiAgICAgdm9pZCBzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZUNsaWVudC5oCmluZGV4IGJhNjQ0NWI3ZWE3ZWQ5NjNkNjFiZmYzMGYy
OGE5YTRlZDdmOWMxMzYuLjIxYWFmMDdmMWJiNWQ1M2I5Mjk0MjI0YjY0NDM3MmFiZDM1MmIwMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVudC5o
CkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgog
I2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDggQEAgcHVibGljOgogICAgIC8vIENh
bGxlZCB3aGVuIGEgbmV3IGRlY29kZWQgZnJhbWUgZm9yIGEgbGFyZ2UgaW1hZ2UgaXMgYXZhaWxh
YmxlIG9yIHdoZW4gYW4gYW5pbWF0ZWQgaW1hZ2UgaXMgcmVhZHkgdG8gYWR2YW5jZSB0byB0aGUg
bmV4dCBmcmFtZS4KICAgICB2aXJ0dWFsIFZpc2libGVJblZpZXdwb3J0U3RhdGUgaW1hZ2VGcmFt
ZUF2YWlsYWJsZShDYWNoZWRJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3RhdGUsIGNvbnN0
IEludFJlY3QqIGNoYW5nZVJlY3QpIHsgaW1hZ2VDaGFuZ2VkKCZpbWFnZSwgY2hhbmdlUmVjdCk7
IHJldHVybiBWaXNpYmxlSW5WaWV3cG9ydFN0YXRlOjpObzsgfQogCisgICAgdmlydHVhbCB2b2lk
IG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IE5hdGl2ZUltYWdlUHRyJikgeyB9CisK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQ2FjaGVkSW1hZ2VDbGllbnQoQ2FjaGVkSW1hZ2Um
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvckltYWdl
KENhY2hlZEltYWdlJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oCmluZGV4IGExNDEzYzZmNjc5YjE1ZTkwN2M3YjZjZmE3NjA1ZjI3MGUyZjk1NTcuLjU3NDQ3
ZmYxYWYwNDZjNjQ4ZTg0ZDk3NmFiZjAwNjEwYmYwMDI4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCkBAIC0yNCw3ICsyNCw2IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhh
c2guaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRl
eCBiNDc2YTM1YjgyZDkzNzA4ZDNiMGYyYjRkMWE2ZDI1NDgxMmQwZTExLi4wYWY2YzNkOGIyMzE4
NTE3Nzg5YjA3MjM0NWY5Njc0M2IxZDdmNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiQml0bWFwSW1hZ2UuaCIKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdl
b21ldHJ5VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCkBAIC0yMDQsNiAr
MjA1LDI0IEBAIGJvb2wgQml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQogI2VuZGlmIC8v
IEFTU0VSVF9FTkFCTEVECiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoQml0
bWFwSW1hZ2UmIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICAvLyBTdWJzYW1wbGluZyBtYXkgaGF2ZSBnaXZl
biB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBzaXplKCkuCisgICAgSW50U2l6ZSBz
dWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKG5hdGl2ZUltYWdlKTsKKyAgICBp
ZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgICAgIHN1
YnNhbXBsZWRJbWFnZVNpemUgPSBzdWJzYW1wbGVkSW1hZ2VTaXplLnRyYW5zcG9zZWRTaXplKCk7
CisKKyAgICAvLyBzcmNSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgdW5zdWJzYW1w
bGVkIGltYWdlLCBzbyB3ZSBoYXZlIHRvIG1hcCBpdCB0byB0aGUgc3Vic2FtcGxlZCBpbWFnZS4K
KyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBpZiAoc3Vic2Ft
cGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQorICAgICAgICBhZGp1c3RlZFNyY1JlY3QgPSBtYXBS
ZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1NpemUpLCBGbG9hdFJlY3QoeyB9LCBzdWJz
YW1wbGVkSW1hZ2VTaXplKSk7CisKKyAgICBpZiAoaW1hZ2UuaW1hZ2VPYnNlcnZlcigpKQorICAg
ICAgICBpbWFnZS5pbWFnZU9ic2VydmVyKCktPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4
dCwgbmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNy
Y1JlY3QsIG9wdGlvbnMpOworICAgIGVsc2UKKyAgICAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1h
Z2UobmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNy
Y1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0VtcHR5KCkpCkBA
IC0yOTIsOSArMzExLDkgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBhdXRvIG9yaWVu
dGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbigpOwogICAgIGlmIChvcmllbnRhdGlvbiA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIHsKICAgICAgICAgb3JpZW50YXRpb24gPSBmcmFt
ZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7Ci0gICAgICAgIGRyYXdOYXRpdmVJ
bWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZShvcmll
bnRhdGlvbikpLCB7IG9wdGlvbnMsIG9yaWVudGF0aW9uIH0pOworICAgICAgICBkcmF3TmF0aXZl
SW1hZ2UoKnRoaXMsIGNvbnRleHQsIGltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShz
aXplKG9yaWVudGF0aW9uKSksIHsgb3B0aW9ucywgb3JpZW50YXRpb24gfSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIGRyYXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKKyAgICAgICAgZHJhd05h
dGl2ZUltYWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNp
emUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKIAogICAgIG1fY3VycmVudEZyYW1lRGVj
b2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7
CiAKQEAgLTM3OSw3ICszOTgsNyBAQCBTdWJzYW1wbGluZ0xldmVsIEJpdG1hcEltYWdlOjpzdWJz
YW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0b3IoR3JhcGhpY3NDb250ZXh0JiBjbwogewogI2lmIFVT
RShDRykKICAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRyYXdpbmcgaW50
byBQREYgY29udGV4dHMuCi0gICAgaWYgKENHQ29udGV4dEdldFR5cGUoY29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCisgICAgaWYgKGNvbnRleHQuaGFzUGxh
dGZvcm1Db250ZXh0KCkgJiYgQ0dDb250ZXh0R2V0VHlwZShjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpKSA9PSBrQ0dDb250ZXh0VHlwZVBERikKICAgICAgICAgcmV0dXJuIFN1YnNhbXBsaW5nTGV2
ZWw6OkRlZmF1bHQ7CiAKICAgICBmbG9hdCBzY2FsZSA9IHN0ZDo6bWluKGZsb2F0KDEpLCBzdGQ6
Om1heChzY2FsZUZhY3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAK
aW5kZXggNTU1Y2M2NjQ1NzBhMzRiZWE5OTVkZWNjZDUyYWM4NjFmNWZlMzE0NC4uNzExM2Q3ZjY0
ZTFhNzYyODk4MWZjMDk5NmZkNjhkODY4NTI2YjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03MzEsNiArNzMx
LDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3QmlkaVRleHQoY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBiaWRpUnVucy5jbGVhcigpOwogfQog
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSkKK3sKKyAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9pbXBsKSB7Cisg
ICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwbGF0Zm9ybURyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7CiAg
ICAgcmV0dXJuIGRyYXdJbWFnZShpbWFnZSwgRmxvYXRSZWN0KGRlc3RpbmF0aW9uLCBpbWFnZS5z
aXplKCkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZS5zaXplKCkpLCBpbWFnZVBhaW50
aW5nT3B0aW9ucyk7CkBAIC03NDcsNyArNzYwLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW4K
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVz
dWx0OjpEaWROb3RoaW5nOwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBpZiAobV9pbXBsICYmIGlt
YWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKQogICAgICAgICByZXR1cm4gbV9pbXBsLT5kcmF3SW1h
Z2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogCiAgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0
aGlzLCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwpAQCAtNzU5LDcgKzc3Miw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAgIGlmIChtX2lt
cGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5pc1BERkRvY3VtZW50SW1hZ2UoKSkKICAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIAogICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0
aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKQEAgLTc3Miw3ICs3ODUsNyBAQCBJbWFnZURy
YXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICBpZiAobV9pbXBsKQorICAg
IGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQREZEb2N1bWVudEltYWdlKCkpCiAgICAgICAgIHJldHVy
biBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxl
U2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucyk7CiAKICAgICBpZiAoaFJ1bGUgPT0g
SW1hZ2U6OlN0cmV0Y2hUaWxlICYmIHZSdWxlID09IEltYWdlOjpTdHJldGNoVGlsZSkgewpAQCAt
Nzk5LDYgKzgxMiw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpCiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1faW1wbCAmJiBtX2ltcGwt
PmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpCisg
ICAgICAgIHJldHVybjsKKwogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRl
cnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9u
UXVhbGl0eSgpKTsKICAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBv
cHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKaW5kZXggZGI0YzAwMmVjY2QyMmU2ZmU5NDA4N2M2OWY5MTI4ZDQyODk5
MjdiZi4uMjUxOWQ3YmVhMTgyMTk4N2Y3MWJhNzBmNDQxZjJmZmIwNWQyYmYwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAg
LTg2LDYgKzg2LDcgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiAjZW5kaWYKIAogY2xhc3MgQWZmaW5l
VHJhbnNmb3JtOworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0Owog
Y2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwpAQCAtMzM0LDEwICsz
MzUsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShESVJFQ1Qy
RCkgfHwgVVNFKENBSVJPKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwotI2VuZGlmCi0KICNpZiBVU0UoQ0cpIHx8IFVTRShE
SVJFQ1QyRCkKICAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpOwogICAgIHZvaWQgYXBwbHlG
aWxsUGF0dGVybigpOwpAQCAtMzgzLDYgKzM4MCw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lkdGgp
OwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSwgQ2FjaGVkSW1hZ2UqID0gbnVsbHB0cik7CisKICAgICBXRUJDT1JFX0VYUE9S
VCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRQb2ludCYgZGVz
dGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlIH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3
SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKICAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwpAQCAtNjUyLDYgKzY1MSw4IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3JtRmlsbFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYpOwogCisgICAgdm9pZCBwbGF0Zm9ybURyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKwogICAgIEZsb2F0UmVjdCBjb21wdXRlTGluZUJv
dW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JUZXh0KGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgcHJp
bnRpbmcsIENvbG9yJik7CiAKICAgICBmbG9hdCBkYXNoZWRMaW5lQ29ybmVyV2lkdGhGb3JTdHJv
a2VXaWR0aChmbG9hdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDg5
NmM4NjE2MGQ3MTFhMzAxZmNlNTgxYTNmY2U3YmFmZmJmNzA1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgor
I2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisj
aW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKQoreworICAgIGF1dG8gcmVjdENvcm5l
clBvaW50ID0gWyZdKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgUmVjdENvcm5lciBjb3JuZXIpIHsK
KyAgICAgICAgYXV0byBwb2ludCA9IHJlY3QubG9jYXRpb24oKTsKKyAgICAgICAgaWYgKGNvcm5l
ciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkKKyAgICAgICAg
ICAgIHBvaW50Lm1vdmUocmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNvcm5lciA9PSBS
ZWN0Qm90dG9tTGVmdCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAgICAgICAgICAg
cG9pbnQubW92ZSgwLCByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHBvaW50OworICAg
IH07CisKKyAgICBhdXRvIHJlY3RDb3JuZXJSZWN0ID0gWyZdKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSBzaXplKSB7CisgICAgICAgIGF1
dG8gcG9pbnQgPSByZWN0Q29ybmVyUG9pbnQocmVjdCwgY29ybmVyKTsKKyAgICAgICAgaWYgKGNv
cm5lciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkKKyAgICAg
ICAgICAgIHBvaW50Lm1vdmUoLXNpemUud2lkdGgoKSwgMCk7CisgICAgICAgIGlmIChjb3JuZXIg
PT0gUmVjdEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkKKyAgICAgICAg
ICAgIHBvaW50Lm1vdmUoMCwgLXNpemUuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gRmxvYXRS
ZWN0KHBvaW50LCBzaXplKTsKKyAgICB9OworCisgICAgYXV0byBvcHBvc2l0ZUhvcml6b250YWwg
PSBbXShSZWN0Q29ybmVyIGNvcm5lcikgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVj
dENvcm5lcj4oY29ybmVyIF4gMHgxKTsKKyAgICB9OworCisgICAgYXV0byBvcHBvc2l0ZVZlcnRp
Y2FsID0gW10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlY3RDb3JuZXI+KGNvcm5lciBeIDB4Mik7CisgICAgfTsKKworICAgIGF1dG8gZHJhd0JhZGdl
UmVjdCA9IFsmXShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYmFk
Z2VzUmVjdCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSYgYmFkZ2VTaXplLCBj
b25zdCBGbG9hdFNpemUmIGN1dG9mZlNpemUpIHsKKworICAgICAgICBGbG9hdFJlY3QgYmFkZ2VS
ZWN0ID0gcmVjdENvcm5lclJlY3QoYmFkZ2VzUmVjdCwgY29ybmVyLCBiYWRnZVNpemUpOworICAg
ICAgICBGbG9hdFJlY3QgY3V0b2ZmUmVjdCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdlc1JlY3QsIGNv
cm5lciwgY3V0b2ZmU2l6ZSk7CisKKyAgICAgICAgUGF0aCBwYXRoOworCisgICAgICAgIGNvcm5l
ciA9IG9wcG9zaXRlSG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBwYXRoLm1vdmVUbyhyZWN0
Q29ybmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRv
KHJlY3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworCisgICAgICAgIGNvcm5lciA9
IG9wcG9zaXRlVmVydGljYWwoY29ybmVyKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocmVjdENv
cm5lclBvaW50KGJhZGdlUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgY29ybmVyID0gb3Bwb3Np
dGVIb3Jpem9udGFsKGNvcm5lcik7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHJlY3RDb3JuZXJQ
b2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhyZWN0Q29y
bmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgcGF0aC5jbG9zZVN1YnBh
dGgoKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcik7CisgICAgICAgIGNv
bnRleHQuZmlsbFBhdGgocGF0aCk7CisgICAgICAgIHJldHVybiBiYWRnZVJlY3Q7CisgICAgfTsK
KworICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gMTsKKyAgICBjb25zdCBmbG9hdCBo
b3Jpem9udGFsTWFyZ2luID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6ZSA9IDEwOwor
ICAgIGNvbnN0IEZsb2F0U2l6ZSBjdXRvZmZTaXplKDMsIDMpOworCisgICAgRm9udENhc2NhZGVE
ZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CisgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZh
bWlseSgiSGVsdmV0aWNhIik7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUo
Zm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZm9udFNpemUp
OworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOwor
ICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihj
b2xvcik7CisgICAgY29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgIGNvbnRl
eHQuc3Ryb2tlUmVjdChib3JkZXJSZWN0LCAwLjUpOworCisgICAgRmxvYXRSZWN0IGJhZGdlc1Jl
Y3QgPSBib3JkZXJSZWN0OworICAgIGJhZGdlc1JlY3QuaW5mbGF0ZSgtMSk7CisKKyAgICBmb3Ig
KGF1dG8gYmFkZ2UgOiBiYWRnZXMpIHsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuKGJhZGdlLnRl
eHQpOworICAgICAgICBmbG9hdCB0ZXh0V2lkdGggPSBjYXNjYWRlLndpZHRoKHRleHRSdW4pOwor
ICAgICAgICBGbG9hdFNpemUgYmFkZ2VTaXplKGhvcml6b250YWxNYXJnaW4gKiAyICsgdGV4dFdp
ZHRoLCB2ZXJ0aWNhbE1hcmdpbiAqIDIgKyBmb250U2l6ZSk7CisKKyAgICAgICAgYXV0byBiYWRn
ZVJlY3QgPSBkcmF3QmFkZ2VSZWN0KGNvbnRleHQsIGJhZGdlc1JlY3QsIGJhZGdlLmNvcm5lciwg
YmFkZ2VTaXplLCBjdXRvZmZTaXplKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihi
YWRnZS5jb2xvcik7CisgICAgICAgIGNvbnRleHQuZHJhd1RleHQoY2FzY2FkZSwgdGV4dFJ1biwg
RmxvYXRQb2ludChiYWRnZVJlY3QueCgpICsgaG9yaXpvbnRhbE1hcmdpbiwgYmFkZ2VSZWN0Lnko
KSArIGZvbnRTaXplKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRF
eHRyYXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMjQ4NDk0ZjVkNjQ1ZWQ0YWQwMzM3MzcyMjUyYTA4YjEw
MTE5NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbG9yOwor
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgRmxvYXRSZWN0OworCitlbnVtIFJlY3RDb3Ju
ZXIgeworICAgIFJlY3RUb3BMZWZ0ICAgICA9IDB4MDAsCisgICAgUmVjdFRvcFJpZ2h0ICAgID0g
MHgwMSwKKyAgICBSZWN0Qm90dG9tTGVmdCAgPSAweDAyLAorICAgIFJlY3RCb3R0b21SaWdodCA9
IDB4MDMsCit9OworCitzdHJ1Y3QgQmFkZ2UgeworICAgIFJlY3RDb3JuZXIgY29ybmVyOworICAg
IENvbG9yIGNvbG9yOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGJv
cmRlclJlY3QsIGNvbnN0IENvbG9yJiwgY29uc3QgVmVjdG9yPEJhZGdlPiYpOworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXggM2Q1MDc1YmNlZGNiZjUwMjg3MWNkNTUw
OTM1ZjUxYWM4ZGIyZjU1Yy4uZjQ0ZDllNTQzYTM5NDQwMzlmZTk4ZmUzNGMwODMyOTU5MzRjMjg4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEltcGwuaApAQCAtNzIsOSArNzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJ
bWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNl
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9y
LCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSA9IDA7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVT
RShESVJFQ1QyRCkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpID0gMDsKLSNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmLCBDYWNoZWRJbWFnZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZHJh
d0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkMzlmZWFhODJmMzcxY2Y4YWFm
NzZkMjdmMzM1NzNmMzUxOThkMDg5Li5lYTRkNjNhOTRlZDZjZjAyMjNmZDllYTA1MDg4YTM3YmQ3
MTJkNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTMy
LDggKzMyLDkgQEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5
cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlUGFp
bnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW1hZ2VUeXBlcy5oIgotI2luY2x1ZGUgIk5hdGl2
ZUltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CkBAIC03Miw3ICs3Myw2IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFzcyBTaGFyZWRCdWZmZXI7Ci1zdHJ1
Y3QgSW1hZ2VQYWludGluZ09wdGlvbnM7CiBzdHJ1Y3QgTGVuZ3RoOwogCiAvLyBUaGlzIGNsYXNz
IGdldHMgbm90aWZpZWQgd2hlbiBhbiBpbWFnZSBjcmVhdGVzIG9yIGRlc3Ryb3lzIGRlY29kZWQg
ZnJhbWVzIGFuZCB3aGVuIGl0IGFkdmFuY2VzIGFuaW1hdGlvbiBmcmFtZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBkMTQ2NDkyYzRh
OGRmOTM1Y2FmOTRiOWZiOTU1OTA5YWFkMWNiYWYwLi5kYmUwMjVlZTllMWE0NDBmMDJlYTk2NjRh
MzRmOThhMGY2YzUxYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OwogY2xhc3MgRHJhd2lu
Z0NvbnRleHQ7CiB9CiAKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBE
aXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQqIGRyYXdpbmdDb250ZXh0KCkgeyByZXR1cm4gbnVs
bHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JikgeyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3Jt
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKaW5kZXggYzAxMGEwZjBjZmNkOGM1ZTdhYjZjOTRjNWMzYzM2ZjQ4Mzg2ZDAx
Zi4uNThmYzE0ODM2ZDkyYWEyMDAxOWYyMGZlZWRjNTU3MWU5YWI1ZTk1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgK
QEAgLTMxLDEzICszMSwxNCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1
ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1
ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBj
bGFzcyBJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
T2JzZXJ2ZXIuaAppbmRleCA4YjA4OWU1OTRjMWFmY2NlZTRmZmI1MDcxMTU5Nzg3NDY5NWNiMmRl
Li5iNGQ3MTBhYzY3MzBjODVkZmVlYTc1ZWFiMGYzZGI2Njc2ZjYwZjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9ic2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oCkBAIC00NSwxMCAr
NDUsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5n
ZWQoY29uc3QgSW1hZ2UmLCBFbmNvZGVkRGF0YVN0YXR1cykgeyB9OwogICAgIHZpcnR1YWwgdm9p
ZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcgZGVsdGEpID0gMDsK
IAorICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRE
cmF3KGNvbnN0IEltYWdlJikgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhbkRlc3Ryb3lEZWNv
ZGVkRGF0YShjb25zdCBJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VGcmFtZUF2
YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3RhdGUsIGNvbnN0IEludFJlY3Qq
IGNoYW5nZVJlY3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVzOjpJ
bnZhbGlkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVk
KGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSA9IDA7CisKICAgICB2aXJ0dWFs
IHZvaWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJl
Y3QgPSBudWxscHRyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKGNvbnN0IEltYWdlJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCA3NzUwMzIyMzlhNWQ1YWJhYTc2M2Y3YTI2
M2VkN2NiMjQ1OTgyNjUyLi40NTUxNWM1OWExZmYyODRjZDhkMjgwMzgzN2IwODViNTAyMmQ2YzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
Y3BwCkBAIC0xMzAsOCArMTMwLDEwIEBAIHZvaWQgSW1hZ2VTb3VyY2U6OmRlc3Ryb3lEZWNvZGVk
RGF0YShzaXplX3QgZnJhbWVDb3VudCwgc2l6ZV90IGV4Y2x1ZGVGcmFtZSkKICAgICBBU1NFUlQo
ZnJhbWVDb3VudCA8PSBtX2ZyYW1lcy5zaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgaW5kZXgg
PSAwOyBpbmRleCA8IGZyYW1lQ291bnQ7ICsraW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4ID09
IGV4Y2x1ZGVGcmFtZSkKKyAgICAgICAgaWYgKGluZGV4ID09IGV4Y2x1ZGVGcmFtZSB8fCAhbV9m
cmFtZXNbaW5kZXhdLm5hdGl2ZUltYWdlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigpKQorICAgICAgICAgICAg
bV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigpLT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCgqbV9p
bWFnZSwgbV9mcmFtZXNbaW5kZXhdLm5hdGl2ZUltYWdlKCkpOwogICAgICAgICBkZWNvZGVkU2l6
ZSArPSBtX2ZyYW1lc1tpbmRleF0uY2xlYXJJbWFnZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggNmIyZDgxZTM1YjA4
Y2Y3NGY0ZjM2MWFlYmM3NGYzMTI5YzdkOWI3Zi4uNDMzNzg3OTBiMjI5MWVhMDBiMTIwOGUwYTVj
YmM5NzI5Zjc3MWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTmF0aXZlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICogQ29weXJpZ2h0
IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KICAqCkBAIC0yNyw1MiArMjcsMTYgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgotCi0jaWYgVVNF
KENHKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLXR5cGVkZWYgc3RydWN0IENHSW1hZ2Uq
IENHSW1hZ2VSZWY7Ci0jZWxpZiBVU0UoQ0FJUk8pCi0jaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIK
LSNlbGlmIFVTRShXSU5HREkpCi0jaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgiCi0jZW5kaWYKLQot
I2lmIFVTRShESVJFQ1QyRCkKLSNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlIDxkMmQxLmg+
Ci0jaW5jbHVkZSA8d2luY29kZWMuaD4KLSNlbmRpZgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7Ci1jbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBJbnRTaXplOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotCi0jaWYgVVNFKENH
KQotdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTmF0aXZlSW1hZ2VQdHI7Ci0jZWxpZiBV
U0UoRElSRUNUMkQpCi10eXBlZGVmIENPTVB0cjxJRDJEMUJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7
Ci0jZWxpZiBVU0UoQ0FJUk8pCi10eXBlZGVmIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2
ZUltYWdlUHRyOwotI2VsaWYgVVNFKFdJTkdESSkKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1h
cD4gTmF0aXZlSW1hZ2VQdHI7Ci0jZW5kaWYKIAogV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBuYXRp
dmVJbWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIGJvb2wgbmF0aXZlSW1hZ2VIYXNB
bHBoYShjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhl
bFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKLQotdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNlKTsKLQogdm9pZCBj
bGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7Ci0KLWNsYXNz
IE5hdGl2ZUltYWdlSGFuZGxlIHsKLXB1YmxpYzoKLSAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZTsK
LX07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9OYXRpdmVJbWFnZVB0ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2VQdHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDc3YTg5OGQzOTg3MzY0MTExNzRmMTlmNzUxNDA3
MWQwN2M5NTgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmF0aXZlSW1hZ2VQdHIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKENH
KQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KK3R5cGVkZWYgc3RydWN0IENHSW1hZ2UqIENH
SW1hZ2VSZWY7CisjZWxpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNl
bGlmIFVTRShXSU5HREkpCisjaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgiCisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKENHKQordHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0UoRElSRUNUMkQpCit0eXBlZGVmIENPTVB0
cjxJRDJEMUJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0UoQ0FJUk8pCit0eXBlZGVm
IFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKFdJTkdE
SSkKK3R5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CisjZW5kaWYK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWY1NDJkZmVjODQ3YWJjMzcx
YWEyZjFlOGU0YjhkZDlmYjExMGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIFJlbW90ZVJlc291cmNlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGExMDQ2
NTZjYjVkNWRkZWEwMzIxZGFhNDRhMDQ0NjUxNzUwODhlNGYuLjJhYjljZTNiYmEyNWVhNTQ4NTQ0
OGYzNGFhNzc3YWZlMDRlNzM0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAg
LTEyMywxNiArMTIzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKICAgICBDYWlybzo6ZHJhd1Jl
Y3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBib3JkZXJUaGlja25lc3MsIHN0YXRlLmZpbGxD
b2xvciwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9rZUNvbG9yKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2lt
cGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwg
b3B0aW9ucyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBBU1NFUlQoaGFzUGxhdGZv
cm1Db250ZXh0KCkpOwogICAgIGF1dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKICAgICBDYWly
bzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RS
ZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkg
fSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dEltcGxDYWlyby5jcHAKaW5kZXggYjY1YjRkNjQ0MDZiZWI3NmM0MDlkM2U4YzY1
NDk3NWNhOWY3ZWI2My4uZmU5MDQ5NTI3YWZlY2VkYjE3YjgxZjYyYzQ2ZThmMjcxZGI4Mjc2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0yNzksMTMgKzI3OSwx
OSBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5h
dGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGlu
Z09wdGlvbnMpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFn
ZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMsIENhY2hlZEltYWdlKikKIHsKICAgICBVTlVTRURfUEFSQU0oaW1hZ2VTaXplKTsKICAg
ICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7CiAgICAgQ2Fpcm86OmRy
YXdOYXRpdmVJbWFnZShtX3BsYXRmb3JtQ29udGV4dCwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBz
cmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgfSwgc3Rh
dGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCitib29sIEdyYXBoaWNz
Q29udGV4dEltcGxDYWlybzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQor
eworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKIHsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKaW5kZXggZTVlMjA3
NDhjNmQ3NjIwZjEwY2YyMTU2NjI4ZWY3ZTBiZTYwMWM3Yi4uMmMxYzcwMTU0YzFmYTQ2NjA3MmNl
NzIyZmY2NDM2NmY1YWU5NzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgK
QEAgLTc0LDcgKzc0LDkgQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2Uo
SW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBG
bG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdl
OjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
LCBDYWNoZWRJbWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBlYTM3Yzc4NmVmNmRi
NmU1YWZlYjkxNzc5OGZhNTMxYmY5OGFjODRkLi5jMjkyZGI0MmNjMGY5ZjBmOWM0N2M3OGVkNjlj
MmQ4MzMxYzk4MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yODAsMTYgKzI4MCwxMSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIG1fZGF0YS0+
bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0lt
YWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05h
dGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZsb2F0
U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2lt
cGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAj
aWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKaW5kZXggNWNjNWMyMDdiNDRhNDgzNWJlMmUw
ODAyOGEzYTcxMDk1YTU1ZTFlMC4uNDAwZDZlZjBhNDU3N2Q1ZDdjYzViZDljYjY0NmE1YmFkZWJk
YWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0
aXZlSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
TmF0aXZlSW1hZ2VDRy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbG9yLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgiCkBAIC02OSw0MCArNjgsNiBAQCBDb2xv
ciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYg
aW1hZ2UpCiAgICAgcmV0dXJuIGNsYW1wVG9Db21wb25lbnRCeXRlczxTUkdCQT4ocGl4ZWxbMF0g
KiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMl0gKiAy
NTUgLyBwaXhlbFszXSwgcGl4ZWxbM10pOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRT
aXplJiBzcmNTaXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKLXsKLSAg
ICAvLyBTdWJzYW1wbGluZyBtYXkgaGF2ZSBnaXZlbiB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxs
ZXIgdGhhbiBzaXplKCkuCi0gICAgSW50U2l6ZSBzdWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZl
SW1hZ2VTaXplKGltYWdlKTsKLSAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0
aEFzSGVpZ2h0KCkpCi0gICAgICAgIHN1YnNhbXBsZWRJbWFnZVNpemUgPSBzdWJzYW1wbGVkSW1h
Z2VTaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0KLSAgICAvLyBzcmNSZWN0IGlzIGluIHRoZSBjb29y
ZGluYXRlcyBvZiB0aGUgdW5zdWJzYW1wbGVkIGltYWdlLCBzbyB3ZSBoYXZlIHRvIG1hcCBpdCB0
byB0aGUgc3Vic2FtcGxlZCBpbWFnZS4KLSAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0g
c3JjUmVjdDsKLSAgICBpZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQotICAgICAg
ICBhZGp1c3RlZFNyY1JlY3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1Np
emUpLCBGbG9hdFJlY3QoeyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7Ci0KLSAgICBjb250ZXh0
LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgc3Vic2FtcGxlZEltYWdlU2l6ZSwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgb3B0aW9ucyk7Ci19Ci0KLXZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBmbG9hdCBz
Y2FsZUZhY3RvciwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2UpCi17Ci0gICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwotCi0gICAgQ0dD
b250ZXh0Q2xpcFRvUmVjdChjZ0NvbnRleHQsIENHUmVjdE1ha2UoZGVzdGluYXRpb24ueCgpLCBk
ZXN0aW5hdGlvbi55KCksIHNvdXJjZS53aWR0aCgpLCBzb3VyY2UuaGVpZ2h0KCkpKTsKLSAgICBD
R0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsKLQotICAgIENHRmxvYXQgaW1hZ2VI
ZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSAvIHNjYWxlRmFjdG9yOwotICAg
IENHRmxvYXQgaW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSkgLyBzY2Fs
ZUZhY3RvcjsKLQotICAgIENHRmxvYXQgZGVzdFggPSBkZXN0aW5hdGlvbi54KCkgLSBzb3VyY2Uu
eCgpOwotICAgIENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VIZWlnaHQgLSBkZXN0aW5hdGlvbi55KCkg
KyBzb3VyY2UueSgpOwotCi0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNnQ29udGV4dCwgQ0dSZWN0
TWFrZShkZXN0WCwgZGVzdFksIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KSwgaW1hZ2UuZ2V0KCkp
OwotCi0gICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOwotfQotCiB2b2lkIGNs
ZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewog
I2lmIENBQ0hFX1NVQklNQUdFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBhNjM4MzY5MjFk
OGRmY2ExNjYzOGJkODZhYTkzM2VmYTdlMjY0ZDgxLi5iMzU4OTNjNTgyZTQxN2MyYmIzMzUyYTUx
NmUzY2I1OWZlMDI0M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtNjIsOCArNjIsOSBA
QCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgRHJhd0ltYWdlLAogICAgIERy
YXdUaWxlZEltYWdlLAogICAgIERyYXdUaWxlZFNjYWxlZEltYWdlLAotI2lmIFVTRShDRykgfHwg
VVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgRHJhd05hdGl2ZUltYWdlLAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKyAgICBEcmF3SW1hZ2VCdWZmZXIsCiAjZW5kaWYKICAgICBEcmF3
UGF0dGVybiwKICAgICBEcmF3UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmNwcAppbmRleCAyM2NjMDdlOGFlNDQyYmRjZWEwZDM2NzRhNWE4NTUx
YzY1Y2ZkYzg3Li5kNDYxN2QzNTE2ZjRmM2U1MWQ3NWQ2NDQzNGE2YTM5NDU3YTAwMDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCkBAIC0z
Myw5ICszMyw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogCi1EcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBSZWNvcmRlcjo6T2Jz
ZXJ2ZXIqIG9ic2VydmVyKQorRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwg
UmVjb3JkZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICA6IG1fY29udGV4dChbJl0oR3JhcGhp
Y3NDb250ZXh0JiBkaXNwbGF5TGlzdENvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29udGV4dCwgbV9kaXNwbGF5TGlzdCwgR3JhcGhpY3ND
b250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNLCBv
YnNlcnZlcik7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlz
dENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVj
dCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUpOwogICAgIH0pCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAppbmRleCA3
YjY3M2YzMmFkODE1YTUwMDgxYjdlN2FiMTA4MTMxNzE3ZmRlNTQzLi4yMmVkMjU2ZTgwYWQyOTNh
MDUyMDY5Yjc0MzA4OGExMzUxZjQ3Y2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKIGNsYXNzIERyYXdpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7
IH0sIFJlY29yZGVyOjpPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBE
cmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVyOjpEZWxlZ2F0ZSogPSBudWxscHRy
KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0
X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVjb3JkZXImIHJlY29yZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAppbmRleCA2ZmQ5MTJkZmI4ZmUxMWMwOThkZDYxMjZhOGM4NzhhYzZiYTdh
ZTAyLi4zMjU5OWUwNjJkN2NmNTlkMWRjMmVhZDAxZTc2MGQ2NmUzZjdlYzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUlt
YWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlY29yZGVyOjpPYnNlcnZlciB7CitjbGFz
cyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7
CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVy
PEJhY2tlbmRUeXBlPjsKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1YmxpYzoKIAog
ICAgIEltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBkYXRhQmFja2Vu
ZCwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyKFdURk1vdmUoZGF0YUJhY2tlbmQpKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQoc2l6
ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RNKHNpemUpLCB0aGlzKQorICAgICAgICAsIG1fZHJh
d2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RNKHNpemUpKQogICAgIHsK
ICAgICB9CiAKLSAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUpCi0gICAgICAg
IDogbV9kcmF3aW5nQ29udGV4dChzaXplLCBpbml0aWFsRHJhd2luZ0NvbnRleHRDVE0oc2l6ZSks
IHRoaXMpCisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZWNvcmRlcjo6
RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKKyAgICAgICAgOiBtX2RyYXdpbmdDb250ZXh0
KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgZGVsZWdhdGUpCiAgICAgewog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDE4ZDcwY2Zi
ZDI0MDk4NTg2ODQ0OWZiMzU5YTlmODVlYmRmZDM2MzYuLmYxNWM3NzBlMWRhNGQ1MWY1ZmE0NjYx
ZTdjNTBkNzQwNGYzNGFkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAK
QEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIklt
YWdlRGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiAjaWYgVVNFKENHKQpA
QCAtMTA2LDkgKzEwNSwxMSBAQCBzaXplX3QgSXRlbTo6c2l6ZUluQnl0ZXMoY29uc3QgSXRlbSYg
aXRlbSkKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3VGlsZWRJbWFnZT4oaXRl
bSkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAgICAgICBy
ZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdlPihpdGVtKSk7Ci0jaWYg
VVNFKENHKSB8fCBVU0UoQ0FJUk8pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdl
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdOYXRpdmVJbWFnZT4oaXRlbSkp
OworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VC
dWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd0ltYWdlQnVmZmVyPihp
dGVtKSk7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAgICAg
cmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3UGF0dGVybj4oaXRlbSkpOwpAQCAtNzAzLDMyICs3
MDQsMjIgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IERyYXdUaWxlZFNjYWxlZEltYWdlJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotI2lm
IFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi1EcmF3TmF0aXZlSW1hZ2U6
OkRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0
U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorRHJhd05h
dGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlKQotI2lmIFVT
RShDRykKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdG9yZSBhbiBpbWFnZSBmb3IgQ2Fpcm8uCiAg
ICAgLCBtX2ltYWdlKGltYWdlKQotI2VuZGlmCiAgICAgLCBtX2ltYWdlU2l6ZShpbWFnZVNpemUp
CiAgICAgLCBtX2Rlc3RpbmF0aW9uUmVjdChkZXN0UmVjdCkKICAgICAsIG1fc3JjUmVjdChzcmNS
ZWN0KQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7Ci0jaWYgIVVTRShDRykKLSAgICBVTlVT
RURfUEFSQU0oaW1hZ2UpOwotI2VuZGlmCiB9CiAKIERyYXdOYXRpdmVJbWFnZTo6fkRyYXdOYXRp
dmVJbWFnZSgpID0gZGVmYXVsdDsKIAogdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cpCi0gICAgY29udGV4dC5k
cmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBt
X3NyY1JlY3QsIG1fb3B0aW9ucyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsK
LSNlbmRpZgorICAgIEFTU0VSVChuYXRpdmVJbWFnZVB0cigpKTsKKyAgICBjb250ZXh0LmRyYXdO
YXRpdmVJbWFnZShuYXRpdmVJbWFnZVB0cigpLCBtX2ltYWdlU2l6ZSwgbV9kZXN0aW5hdGlvblJl
Y3QsIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKIH0KIAogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKQEAgLTcz
OSw2ICs3MzAsMzMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKICAgICB0cy5kdW1wUHJvcGVydHkoImRl
c3QtcmVjdCIsIGl0ZW0uZGVzdGluYXRpb25SZWN0KCkpOwogICAgIHJldHVybiB0czsKIH0KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK0RyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVy
KFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6
RHJhd0ltYWdlQnVmZmVyKQorICAgICwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCisg
ICAgLCBtX3NyY1JlY3Qoc3JjUmVjdCkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworfQor
CitEcmF3SW1hZ2VCdWZmZXI6On5EcmF3SW1hZ2VCdWZmZXIoKSA9IGRlZmF1bHQ7CisKK3ZvaWQg
RHJhd0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAoreworICAgIC8v
IFNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IERyYXdJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cyA8PCBzdGF0aWNfY2FzdDxj
b25zdCBEcmF3aW5nSXRlbSY+KGl0ZW0pOworICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVtb3RlLXJl
c291cmNlLWlkZW50aWZpZXIiLCBpdGVtLnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpKTsKKyAg
ICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZS1yZWN0IiwgaXRlbS5zb3VyY2UoKSk7CisgICAgdHMu
ZHVtcFByb3BlcnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKKyAgICBy
ZXR1cm4gdHM7Cit9CiAjZW5kaWYKIAogRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKQEAgLTE0NjksOCArMTQ4Nyw5IEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtVHlwZSYgdHlwZSkKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2U6IHRzIDw8ICJkcmF3LWltYWdlIjsgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkSW1hZ2U6IHRzIDw8ICJkcmF3LXRpbGVkLWltYWdlIjsg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6IHRzIDw8ICJk
cmF3LXRpbGVkLXNjYWxlZC1pbWFnZSI7IGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJP
KQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogdHMgPDwgImRyYXctbmF0aXZl
LWltYWdlIjsgYnJlYWs7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5
cGU6OkRyYXdJbWFnZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjogdHMgPDwgImRyYXctcGF0dGVy
biI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OiB0cyA8PCAiZHJhdy1yZWN0
IjsgYnJlYWs7CkBAIC0xNTcxLDEwICsxNTkwLDEzIEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IEl0ZW0mIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d1RpbGVkU2NhbGVkSW1hZ2U6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0PERyYXdUaWxlZFNjYWxl
ZEltYWdlPihpdGVtKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8p
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAgICB0cyA8PCBkb3du
Y2FzdDxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW0pOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgorICAgICAg
ICB0cyA8PCBkb3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KGl0ZW0pOworICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAgICAgICB0cyA8PCBk
b3duY2FzdDxEcmF3UGF0dGVybj4oaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
aAppbmRleCBjYjY4NGQyM2NlNzViNGZhYjllYzQxMzE2MjdhY2QzMmQ2MjRhZWRiLi4zYjY0ZDNi
YTM0MDc1NDYwMzFlZTliYjBjYWEzMjc2NTlmOTU0ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCisj
aW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNDMyLDMyICsxNDMzLDUy
IEBAIE9wdGlvbmFsPFJlZjxEcmF3VGlsZWRTY2FsZWRJbWFnZT4+IERyYXdUaWxlZFNjYWxlZElt
YWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIERyYXdUaWxlZFNjYWxlZElt
YWdlOjpjcmVhdGUoKmltYWdlSGFuZGxlLT5pbWFnZSwgKmRlc3RpbmF0aW9uLCAqc291cmNlLCAq
dGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsICppbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9
CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogY2xhc3MgRHJh
d05hdGl2ZUltYWdlIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHVzaW5nIE5hdGl2ZUltYWdlVHlwZSA9
IFZhcmlhbnQ8TmF0aXZlSW1hZ2VQdHIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcj47CisKKyAg
ICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgY29u
c3QKKyAgICB7CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXI+KG1faW1hZ2UpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIFdURjo6Z2V0PFJlbW90ZVJlc291cmNlSWRlbnRpZmllcj4obV9pbWFnZSk7Cisg
ICAgfQorCisgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VQdHIoKSBjb25zdAorICAgIHsK
KyAgICAgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE5hdGl2ZUltYWdlUHRyPihtX2lt
YWdlKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gV1RGOjpn
ZXQ8TmF0aXZlSW1hZ2VQdHI+KG1faW1hZ2UpOworICAgIH0KKyNlbHNlCisgICAgdXNpbmcgTmF0
aXZlSW1hZ2VUeXBlID0gTmF0aXZlSW1hZ2VQdHI7CisKKyAgICBOYXRpdmVJbWFnZVB0ciBuYXRp
dmVJbWFnZVB0cigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2U7IH0KKyNlbmRpZgorICAgIHN0YXRp
YyBSZWY8RHJhd05hdGl2ZUltYWdlPiBjcmVhdGUoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiBpbWFn
ZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3TmF0aXZlSW1h
Z2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKICAgICB9
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5EcmF3TmF0aXZlSW1hZ2UoKTsKIAorICAg
IEZsb2F0U2l6ZSBpbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2l6ZTsgfQogICAg
IEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1JlY3Q7IH0KICAgICBGbG9h
dFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7
IH0KKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9v
cHRpb25zOyB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PFJlZjxEcmF3TmF0aXZlSW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAg
IFdFQkNPUkVfRVhQT1JUIERyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNv
bnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiwgY29u
c3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPcHRp
b25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKLSNpZiBVU0UoQ0cpCi0g
ICAgTmF0aXZlSW1hZ2VQdHIgbV9pbWFnZTsKLSNlbmRpZgorICAgIE5hdGl2ZUltYWdlVHlwZSBt
X2ltYWdlOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKICAgICBGbG9hdFJlY3QgbV9kZXN0
aW5hdGlvblJlY3Q7CiAgICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKQEAgLTE0NjcsMTAgKzE0ODgs
NyBAQCBwcml2YXRlOgogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgRHJhd05hdGl2ZUlt
YWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSNpZiBVU0UoQ0cpCi0gICAg
TmF0aXZlSW1hZ2VIYW5kbGUgaGFuZGxlIHsgbV9pbWFnZSB9OwotICAgIGVuY29kZXIgPDwgaGFu
ZGxlOwotI2VuZGlmCisgICAgZW5jb2RlciA8PCBtX2ltYWdlOwogICAgIGVuY29kZXIgPDwgbV9p
bWFnZVNpemU7CiAgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uUmVjdDsKICAgICBlbmNvZGVy
IDw8IG1fc3JjUmVjdDsKQEAgLTE0ODAsMTIgKzE0OTgsMTAgQEAgdm9pZCBEcmF3TmF0aXZlSW1h
Z2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KIE9wdGlvbmFsPFJlZjxEcmF3TmF0aXZlSW1hZ2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotI2lmIFVTRShDRykKLSAgICBPcHRpb25hbDxOYXRpdmVJ
bWFnZUhhbmRsZT4gaGFuZGxlOwotICAgIGRlY29kZXIgPj4gaGFuZGxlOwotICAgIGlmICghaGFu
ZGxlKQorICAgIE9wdGlvbmFsPE5hdGl2ZUltYWdlVHlwZT4gaW1hZ2U7CisgICAgZGVjb2RlciA+
PiBpbWFnZTsKKyAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
I2VuZGlmCiAKICAgICBPcHRpb25hbDxGbG9hdFNpemU+IGltYWdlU2l6ZTsKICAgICBkZWNvZGVy
ID4+IGltYWdlU2l6ZTsKQEAgLTE1MDcsMTQgKzE1MjMsNzUgQEAgT3B0aW9uYWw8UmVmPERyYXdO
YXRpdmVJbWFnZT4+IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgaWYgKCFvcHRpb25zKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0jaWYgVVNF
KENHKQotICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlID0gaGFuZGxlLT5pbWFnZTsKLSNlbHNlCi0g
ICAgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UgPSBudWxscHRyOwotI2VuZGlmCi0gICAgcmV0dXJuIERy
YXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb25SZWN0
LCAqc3JjUmVjdCwgKm9wdGlvbnMpOworICAgIHJldHVybiBEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0
ZSgqaW1hZ2UsICppbWFnZVNpemUsICpkZXN0aW5hdGlvblJlY3QsICpzcmNSZWN0LCAqb3B0aW9u
cyk7CiB9Ci0jZW5kaWYKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK2NsYXNzIERyYXdJbWFn
ZUJ1ZmZlciA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxE
cmF3SW1hZ2VCdWZmZXI+IGNyZWF0ZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3SW1hZ2VCdWZmZXIocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSk7CisgICAgfQor
CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd0ltYWdlQnVmZmVyKCk7CisKKyAgICBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7IH0KKyAgICBGbG9hdFJlY3Qgc291
cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CisgICAgRmxvYXRSZWN0IGRlc3RpbmF0
aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CisgICAgSW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8RHJhd0ltYWdl
QnVmZmVyPj4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9S
VCBEcmF3SW1hZ2VCdWZmZXIoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKTsKKworICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qg
b3ZlcnJpZGU7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0
OyB9CisKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI7CisgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OworICAgIEZsb2F0UmVjdCBt
X3NyY1JlY3Q7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25zOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRHJhd0ltYWdlQnVmZmVyOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CisgICAgZW5jb2RlciA8
PCBtX3NyY1JlY3Q7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitPcHRpb25hbDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4gRHJhd0ltYWdlQnVm
ZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXI+IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0
UmVjdD4gZGVzdGluYXRpb247CisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAo
IWRlc3RpbmF0aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8RmxvYXRSZWN0PiBzb3VyY2U7CisgICAgZGVjb2RlciA+PiBzb3VyY2U7CisgICAgaWYgKCFz
b3VyY2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbWFn
ZVBhaW50aW5nT3B0aW9ucz4gb3B0aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAg
aWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IERyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCpyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsICpkZXN0
aW5hdGlvbiwgKnNvdXJjZSwgKm9wdGlvbnMpOworfQorI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAogY2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewogcHVibGlj
OgpAQCAtMjk3MywxMCArMzA1MCwxMyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAg
ICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdlPigqdGhpcyk7CiAg
ICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQp
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAgICBlbmNvZGVyIDw8
IGRvd25jYXN0PERyYXdOYXRpdmVJbWFnZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgor
ICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdJbWFnZUJ1ZmZlcj4oKnRoaXMpOworICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAg
ICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdQYXR0ZXJuPigqdGhpcyk7CkBAIC0zMTY0LDEx
ICszMjQ0LDE1IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRlbTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3VGlsZWRTY2FsZWRJbWFnZTo6ZGVj
b2RlKGRlY29kZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJ
dGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNF
KENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUlt
YWdlOgogICAgICAgICBpZiAoYXV0byBpdGVtID0gRHJhd05hdGl2ZUltYWdlOjpkZWNvZGUoZGVj
b2RlcikpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PEl0ZW0+KFdU
Rk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICAgICAgaWYgKGF1dG8gaXRl
bSA9IERyYXdJbWFnZUJ1ZmZlcjo6ZGVjb2RlKGRlY29kZXIpKQorICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CisgICAgICAgIGJy
ZWFrOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgICAgIGlm
IChhdXRvIGl0ZW0gPSBEcmF3UGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpKQpAQCAtMzMyNiw4ICsz
NDEwLDkgQEAgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdHbHlw
aHMpCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd0ltYWdlKQog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdUaWxlZEltYWdlKQog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdUaWxlZFNjYWxlZElt
YWdlKQotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19E
SVNQTEFZTElTVF9JVEVNKERyYXdOYXRpdmVJbWFnZSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd0ltYWdlQnVmZmVy
KQogI2VuZGlmCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd1Bh
dHRlcm4pCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd1JlY3Qp
CkBAIC0zMzg4LDggKzM0NzMsOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd0ltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd1RpbGVkSW1hZ2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3
VGlsZWRTY2FsZWRJbWFnZSwKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVD
VDJEKQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdl
LAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlciwKICNlbmRpZgogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6RHJhd1BhdHRlcm4sCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApp
bmRleCBkZDM1ZWYxYTI4YTkwNzFkYWVmOWEwYThkNzdkOTg0MDFlYTA4MDFkLi45NTU3NWQwZjQx
NGMyZWRlNWYxOTEwMjAwNmUzNmY1ZDg0NGE0NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIE9ic2VydmVyKiBvYnNlcnZlcikKK1JlY29y
ZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJl
Y3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERlbGVn
YXRlKiBkZWxlZ2F0ZSkKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5pdGlh
bENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5TGlz
dCkKLSAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRl
KQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNv
cmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1fc3RhdGVTdGFjay5hcHBl
bmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBAIC01MiwxNSArNTIsMTUg
QEAgUmVjb3JkZXI6On5SZWNvcmRlcigpCiAgICAgTE9HKERpc3BsYXlMaXN0cywgIlJlY29yZGVk
IGRpc3BsYXkgbGlzdDpcbiVzIiwgbV9kaXNwbGF5TGlzdC5kZXNjcmlwdGlvbigpLmRhdGEoKSk7
CiB9CiAKLXZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFnZURhdGEmIGltYWdlRGF0
YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KQordm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5w
dXRGb3JtYXQsIGNvbnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RGb3JtYXQpCiB7Ci0gICAgYXBwZW5kSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1h
Z2VEYXRhOjpjcmVhdGUoaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50
LCBkZXN0Rm9ybWF0KSk7CisgICAgYXBwZW5kSXRlbShQdXRJbWFnZURhdGE6OmNyZWF0ZShpbnB1
dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpKTsKIH0K
IAogdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYgaXRlbSkKIHsKLSAg
ICBpZiAobV9vYnNlcnZlcikKLSAgICAgICAgbV9vYnNlcnZlci0+d2lsbEFwcGVuZEl0ZW0oaXRl
bSk7CisgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdhdGUtPndpbGxBcHBlbmRJ
dGVtKGl0ZW0pOwogCiAgICAgaWYgKGl0ZW0uaXNEcmF3aW5nSXRlbSgpCiAjaWYgVVNFKENHKQpA
QCAtMTMyLDEyICsxMzIsMjkgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3VGlsZWRJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXQKICAgICByZXR1cm4g
SW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlS
TykgfHwgVVNFKERJUkVDVDJEKQotdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKQogeworICAgIGlmIChtX2RlbGVnYXRlICYmIGNhY2hlZEltYWdlKSB7CisgICAgICAgIGlm
IChhdXRvIGl0ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGltYWdl
LCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCAqY2FjaGVkSW1hZ2UpKSB7
CisgICAgICAgICAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KHN0YXRpY19yZWZlcmVuY2Vf
Y2FzdDxEcmF3aW5nSXRlbT4oaXRlbS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CiAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChE
cmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVj
dCwgb3B0aW9ucykpOwogfQotI2VuZGlmCisKK2Jvb2wgUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
K3sKKyAgICBpZiAoIW1fZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
IChhdXRvIGl0ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKGltYWdl
LCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSkgeworICAgICAgICBhcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxEcmF3aW5nSXRlbT4oaXRlbS5yZWxl
YXNlTm9uTnVsbCgpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXgg
OWVlMWQzOTM4ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4uZTE0MGJlMTFkN2Q2YTc2
NjY3OTYxNTY5ZDE0NWM0ZTMzODVjM2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCkBAIC0yOCwxMiArMjgsMTQgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBG
b3IgSW1hZ2U6OlRpbGVSdWxlLgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biA6IHVpbnQ4X3Q7CitjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFz
cyBGbG9hdFJlY3Q7CiBjbGFzcyBHbHlwaEJ1ZmZlcjsKQEAgLTUzLDggKzU1LDggQEAgY2xhc3Mg
UmVjb3JkZXIgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW1wbCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVjb3JkZXIpOwogcHVibGlj
OgotICAgIGNsYXNzIE9ic2VydmVyOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVyKEdyYXBo
aWNzQ29udGV4dCYsIERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBj
b25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBPYnNl
cnZlciogPSBudWxscHRyKTsKKyAgICBjbGFzcyBEZWxlZ2F0ZTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiwgRGVsZWdhdGUqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB+UmVjb3JkZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0SW1hZ2VEYXRh
KEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IEltYWdlRGF0YSYsIGNv
bnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCk7CkBAIC02Myw5ICs2NSwxMSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsK
IAotICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVibGlj
OgotICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQorICAgICAgICB2aXJ0dWFsIH5EZWxl
Z2F0ZSgpIHsgfQorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBjcmVhdGVEcmF3SW1hZ2VC
dWZmZXJJdGVtKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSB7IHJldHVybiBudWxscHRyOyB9CisgICAg
ICAgIHZpcnR1YWwgUmVmUHRyPEl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3Qg
TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYsIENhY2hlZEltYWdlJikg
eyByZXR1cm4gbnVsbHB0cjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbEFwcGVuZEl0ZW0o
Y29uc3QgSXRlbSYpIHsgfTsKICAgICB9OwogCkBAIC0xMDQsOSArMTA4LDkgQEAgcHJpdmF0ZToK
ICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291
cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9y
LCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykg
fHwgVVNFKERJUkVDVDJEKQotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpIG92ZXJyaWRlOwotI2VuZGlmCisKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmLCBDYWNoZWRJbWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSBvdmVycmlkZTsKQEAgLTE4OCw3ICsxOTIsNyBA
QCBwcml2YXRlOgogICAgIENvbnRleHRTdGF0ZSYgY3VycmVudFN0YXRlKCk7CiAKICAgICBEaXNw
bGF5TGlzdCYgbV9kaXNwbGF5TGlzdDsKLSAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsKKyAgICBE
ZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0
YXRlU3RhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCmluZGV4IGYzMWQzNzViMDJkYTA5NzkyODlhY2MyMDBkZDg2MmZhZTEzNDEwNGIuLjRiNWUz
ZTQzYjAzOTY0YTUxYzI3M2U1YmU3YWVkYjBkZjFhYTkxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5o
IgorI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2
YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAppbmRleCAxOGI0Zjhk
ZTk3MTcwY2U2NDRlYjY0YmUzZWFiODU3ZjNhNzQzMmY0Li42Mjk4Y2YzNjA3M2M3YWU0NGY0M2M2
YjU2NDQyMmIzN2I4NmNmMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJQaXBlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRl
ICJOaWNvc2lhQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGwuaCIKICNpbmNsdWRlICJOaWNv
c2lhUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
QnVmZmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuY3BwCmluZGV4IDMwNGZhY2JhYjE1MjE3OTFkYWE4NmRiMTUzMTc1M2UzODY3
MTA4NGQuLjdjMTRmM2U3ZWUzMzljYjNhNTE0ZjkwM2M0ODc0ZDE3MTg5ZDUyZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3Np
YUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3Bw
CkBAIC01NDksNyArNTQ5LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXQKICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgp
LCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1
bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBDYWlyb09wZXJhdGlvblJlY29y
ZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3Zv
aWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKikKIHsKICAgICBzdHJ1Y3QgRHJhd05hdGl2
ZUltYWdlIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4sIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9u
cywgZmxvYXQsIENhaXJvOjpTaGFkb3dTdGF0ZT4gewogICAgICAgICB2aXJ0dWFsIH5EcmF3TmF0
aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CkBAIC01NzAsNiArNTcwLDEyIEBAIHZvaWQgQ2Fpcm9PcGVy
YXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFn
ZSwgY29uc3QKICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KFJlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3QsIHNyY1JlY3QsIEltYWdl
UGFpbnRpbmdPcHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkp
LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOwogfQogCitib29sIENh
aXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc3RydWN0IERyYXdQYXR0ZXJuIGZpbmFsIDogUGFpbnRp
bmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIEludFNp
emUsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVUcmFuc2Zvcm0sIEZsb2F0UG9pbnQsIElt
YWdlUGFpbnRpbmdPcHRpb25zPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFD
YWlyb09wZXJhdGlvblJlY29yZGVyLmgKaW5kZXggNTcyZmYyMTY2ZjZlOTczYTc2M2I2N2NiNmJi
OTZmNDNmMjZhOGQ1MC4uMWQ0OTAxM2M4OWNmMTAxNGVjOWIyYjkyMDdkZWNlZWI5MTNjMzg1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWly
by9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXIuaApAQCAtNjcsNyArNjcsOSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGls
ZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShX
ZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkltYWdlOjpU
aWxlUnVsZSwgV2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKworICAgIGJvb2wgZHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6
OkNhY2hlZEltYWdlKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJ
bWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVj
dDJELmNwcAppbmRleCAzNzQwNzE3MTViY2I3OTFkNTg5ZDUwZDk5YjI5YzY2YjAxMGI3MDgxLi41
N2JhODU4ZmY5OWMyZGIyOWY1ZDkxNDkyZTZhYWM4ZWQ5NzRlYzk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0Nv
bnRleHREaXJlY3QyRC5jcHAKQEAgLTIwNywxNiArMjA3LDExIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCiAgICAgRGlyZWN0MkQ6OnJlc3RvcmUoKnBsYXRm
b3JtQ29udGV4dCgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFn
ZShjb25zdCBDT01QdHI8SUQyRDFCaXRtYXA+JiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UoY29uc3QgQ09NUHRyPElEMkQxQml0bWFwPiYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBh
dXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7CiAgICAgRGlyZWN0MkQ6OmRyYXdOYXRpdmVJbWFn
ZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBz
cmNSZWN0LCBvcHRpb25zLCBzdGF0ZS5hbHBoYSwgRGlyZWN0MkQ6OlNoYWRvd1N0YXRlKHN0YXRl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTI0N2E3YWQ0Y2QyOTUzOGU0ZWFmNDBiZDgw
MzY5Njg2MDA4Yjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi1SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6
OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAsIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKLXsKLX0KLQotdm9pZCBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNyZWF0ZUJhY2tlbmQoY29uc3QgRmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUg
aGFuZGxlKQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChsb2dp
Y2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92
ZShoYW5kbGUpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi12b2lkIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y29tbWl0Rmx1c2hDb250ZXh0KEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKLXsKLSAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIG1faW1hZ2VC
dWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNGQwNWVhZWY1
NDk0MTZmZGI2NDI1OTUyZTBiNGNmM2FhMjA1ZWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0x
LDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1l
bnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwotY2xhc3MgSW1hZ2VE
YXRhOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OwotCi1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkg
ewotcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eSgpID0gZGVmYXVsdDsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLiBTZWUg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluLgotICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1p
dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0
YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9y
bWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCA9IDA7Ci0KLXByb3Rl
Y3RlZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLQotICAgIC8vIE1l
c3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
LgotICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUp
OwotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
KTsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgYmFja2VuZCgpIHsgcmV0dXJu
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLSAg
ICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCmluZGV4IDc3MjFjY2U4NDU2MjY5YWVmOTAyMGI4YmQ4OTY1ZGQzNWI3
MjJkZGMuLjFkMWI1ZWU4ZmNmMDdlZmMzMjlkNzk4MWYzYjBhMWFjMmVmYmU3MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaApAQCAtMjgsMjkgKzI4LDI5IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZXBs
YXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQmFja2Vu
ZFR5cGU+Ci1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNv
bmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVy
OjpEZWxlZ2F0ZSB7CitjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNv
cmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKICAg
ICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKICAgICB1c2luZyBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOworICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVySWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oc2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBudWxscHRyLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJv
eHk+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAot
ICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYm
IGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQor
ICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYm
IGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUo
YmFja2VuZCkpCi0gICAgICAgICwgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAg
ICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSkKICAgICB7Ci0gICAgICAgIGNyZWF0ZUJhY2tlbmQobV9iYWNrZW5kLT5sb2dpY2Fs
U2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2VuZC0+cmVzb2x1dGlvblNj
YWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSgpKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkucmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUo
KSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgp
LCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUoKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB+
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSgpCkBAIC02Miw5ICs2Miw2IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmZsdXNoRHJh
d2luZ0NvbnRleHQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdl
RGF0YTsKLQogICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKSB7CkBAIC03MywxOCArNzAsNiBAQCBwcml2
YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOwotICAgICAg
ICBtX2JhY2tlbmQtPmZsdXNoQ29udGV4dCgpOwotICAgICAgICBjb21taXRGbHVzaENvbnRleHQo
Zmx1c2hJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRh
PiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3Jt
YXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRlCi0gICAg
ewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmdldEltYWdlRGF0YShv
dXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgIH0KLQogICAgIGJvb2wgYXBwbHkoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChpdGVtLnR5cGUoKSA9PSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YSkgewpAQCAtOTgsMTIgKzgzLDEyIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmFwcGx5UmVzb3VyY2VJdGVtKGl0ZW0sIGNvbnRleHQpOwogICAgIH0KIAogICAgIHZvaWQg
YXBwbHkoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlBhaW50RnJhbWVGb3JNZWRpYSYgaXRlbSwgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgYXV0byBwcm9j
ZXNzID0gYmFja2VuZCgpLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKKyAgICAgICAgYXV0
byBwcm9jZXNzID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzcygpOwogICAgICAgICBpZiAoIXByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTExNyw2ICsxMDIsOCBAQCBwcml2YXRlOgogCiAgICAgICAgIGNvbnRleHQucGFpbnRG
cmFtZUZvck1lZGlhKCpwbGF5ZXIsIGl0ZW0uZGVzdGluYXRpb24oKSk7CiAgICAgfQorCisgICAg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcAppbmRleCA3NTNhNWM4YmE5N2ZlNzIwODMxMDU4ZTg0YzVjZDgzYjRiMTc1NTc5Li5j
MWEzMWNiYzk0YjYwNmI1MGQ0MWY5OWM1MDIyNzA0ZGVhZWQ3MzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHlNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDYgKzU0LDExIEBA
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6flJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSgpCiAgICAgICAgIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1h
cCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIudG9VSW50NjQoKSk7CiB9CiAKK0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKK30KKwogSVBD
OjpDb25uZWN0aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKSkKQEAgLTY2LDY0ICs3MSw0
NiBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllci50b1VJbnQ2NCgpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK2Jv
b2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseVJlc291cmNlSXRlbShEaXNwbGF5
TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogewotICAgIGF1dG8q
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Z2V0KCk7Ci0gICAgaWYgKCFncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAobV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmNvbnRhaW5zKGlt
YWdlQnVmZmVySWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCBpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGlt
YWdlQnVmZmVySWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVu
ZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVm
ZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2Fs
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFk
ZChpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5hcHBseVJlc291cmNlSXRl
bShpdGVtLCBjb250ZXh0KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbW90ZUNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgLy8gQ3JlYXRlSW1hZ2VC
dWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJlZm9yZSB0aGlzIG9uZS4K
LSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLnJlbW92ZShp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1
ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6Oklt
YWdlRGF0YVJlZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVm
ZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50
aWZpZXIpKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gaW1hZ2VCdWZmZXItPmdldEltYWdl
RGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJ
UEM6OkltYWdlRGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0YSkpKTsKLSAgICB9CisgICAg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3JlYXRlSW1hZ2VCdWZmZXIobG9naWNhbFNpemUs
IHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZs
dXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1h
Z2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBp
bWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgbV9yZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlm
aWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKLSAgICAgICAg
aW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIGZs
dXNoSWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1c2hEcmF3
aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJbWFn
ZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi1HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Omdl
dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwg
V2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRh
UmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgYXV0byBpbWFnZURhdGEgPSBtX3JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6SW1h
Z2VEYXRhUmVmZXJlbmNlKFdURk1vdmUoaW1hZ2VEYXRhKSkpOworfQorCit2b2lkIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVOYXRpdmVJbWFnZShp
bWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aAppbmRleCBhMDk1MmJhZmIzYzE1MzJkN2RjOTkwMDZlYjQwZjMxYmY5MWQyNTNiLi5hZjk2MjYy
ZGMzMDdiMzQ3ZWIyYWRlZmQwMzc1YTVmNDdiMzI2Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oCkBAIC0yOCwyNCArMjgsMjQgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgotI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIGNsYXNzIERpc3BsYXlMaXN0OwogfQor
Y2xhc3MgRmxvYXRTaXplOworZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK2VudW0g
Y2xhc3MgUmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNTksOCArNTksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcjsgfQogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdDsKKyAgICBib29sIGFwcGx5UmVzb3VyY2VJdGVtKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CisK
KyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgorICAgIHZvaWQgcmVtb3RlQ3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKQEAgLTc0LDE0ICs3NywxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0byBi
ZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsK
LSAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAg
IHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBm
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdl
QnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlJiYpPiYmKTsKLQotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJNYXAgPSBIYXNoTWFwPEltYWdlQnVmZmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eT4+OwotICAgIEltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOworICAgIHZvaWQg
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
V2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBnZXRJbWFnZURh
dGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6
OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKKyAgICB2
b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJl
c291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeyAqdGhpcyB9Owog
ICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggNzk4YzhiNGVkYjU3ZjVhZDA4MmJhODFjMTAwOGIwZGNkZWZkZjE4
YS4uYjMxY2M2NzNlOGEzYTkzMzc4NWNiNjllMWYzMzg4MWVhMWE4NGU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMywxMSArMjMsMTIg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVy
KFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKQotICAgIHZvaWQgUmVsZWFzZUltYWdlQnVmZmVyKFdlYktpdDo6SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxh
eUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmll
cikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdlQnVmZmVy
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgR2V0SW1hZ2VEYXRhKGVudW06
dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2Vi
Q29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEp
IFN5bmNocm9ub3VzCisgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNp
emUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisg
ICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZl
ckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBo
YVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwor
ICAgIHZvaWQgQ2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpbWFnZSwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikKKyAgICB2b2lkIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MGFmNTk2OTVjNGZkOTg0OGVhNGYyZjc5YTg4ZGZhYTgyNjA4NGFkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHku
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCisgICAgOiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
Cit7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmICht
X3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5jb250YWlucyhyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBpbWFnZTsK
KworICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJh
dGVkKQorICAgICAgICBpbWFnZSA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6
Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAg
aWYgKCFpbWFnZSB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNj
ZWxlcmF0ZWQpCisgICAgICAgIGltYWdlID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
UHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworICAgIGlmIChpbWFnZSkgeworICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5h
ZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworSW1hZ2VCdWZm
ZXIqIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGltYWdlID0g
bV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikp
IHsKKyAgICAgICAgaW1hZ2UtPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAg
ICAgICByZXR1cm4gaW1hZ2U7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitJbWFn
ZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGltYWdlLT5mbHVzaENvbnRleHQoKTsKKyAgICAg
ICAgcmV0dXJuIGltYWdlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRy
PEltYWdlRGF0YT4gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpnZXRJbWFnZURhdGEoQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpIGNvbnN0Cit7
CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5nZXQocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGltYWdlLT5nZXRJbWFnZURh
dGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VQdHImIGltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVOYXRpdmVJbWFnZUhh
c2hNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgaW1hZ2UpOworICAgIEFTU0VSVF9V
TlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKK2Jvb2wgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpkcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IERpc3BsYXlMaXN0
OjpJdGVtJiBpdGVtLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgYXV0
byYgZHJhd0l0ZW0gPSBzdGF0aWNfY2FzdDxjb25zdCBEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUlt
YWdlJj4oaXRlbSk7CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBkcmF3SXRl
bS5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBpbWFnZSA9IG1fcmVt
b3RlTmF0aXZlSW1hZ2VIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAg
IGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbnRleHQuZHJhd05h
dGl2ZUltYWdlKGltYWdlLCBkcmF3SXRlbS5pbWFnZVNpemUoKSwgZHJhd0l0ZW0uZGVzdGluYXRp
b25SZWN0KCksIGRyYXdJdGVtLnNvdXJjZSgpLCBkcmF3SXRlbS5vcHRpb25zKCkpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd0ltYWdl
QnVmZmVySXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KSBjb25zdAoreworICAgIGF1dG8mIGRyYXdJdGVtID0gc3RhdGljX2Nhc3Q8Y29u
c3QgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciY+KGl0ZW0pOworICAgIGF1dG8gcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyID0gZHJhd0l0ZW0ucmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCk7
CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gaW1hZ2UgPSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5nZXQocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpbWFnZS0+ZHJhdyhjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJl
Y3QoKSwgZHJhd0l0ZW0uc291cmNlKCksIGRyYXdJdGVtLm9wdGlvbnMoKSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNl
SXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KSBjb25zdAoreworICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkRyYXdJbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUJ1ZmZlckl0ZW0o
aXRlbSwgY29udGV4dCk7CisgICAgaWYgKGl0ZW0udHlwZSgpID09IERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd05hdGl2ZUltYWdlKQorICAgICAgICByZXR1cm4gZHJhd05hdGl2ZUltYWdlSXRl
bShpdGVtLCBjb250ZXh0KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9yZW1vdGVJbWFn
ZUJ1ZmZlckhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAobV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAucmVtb3ZlKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBDYWNoaW5nIHRo
ZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGhhdmUgaGFwcGVuZWQgYmVmb3JlIHJlbGVhc2luZyBp
dC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjNlNDIyYzhhYWRjYTY1MDNkMGQ2ODNmMTA0ZWUzZWM2Y2JlYjNkOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1l
c3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJdGVtOworfQor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OworCitjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeworcHVibGljOgorICAgIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmKTsKKwor
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHRB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VE
YXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRG
b3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikgY29uc3Q7CisKKyAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29u
c3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworCisgICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAg
dm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgPSBI
YXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CisgICAgdXNpbmcgUmVtb3RlTmF0aXZlSW1hZ2VIYXNo
TWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyPjsKKworICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVySXRlbShjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpIGNv
bnN0OworICAgIGJvb2wgZHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgUmVt
b3RlSW1hZ2VCdWZmZXJIYXNoTWFwIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwOworICAgIFJl
bW90ZU5hdGl2ZUltYWdlSGFzaE1hcCBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcDsKKyAgICBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCA0MDE3YTJhOGYyMmNlY2VjYzIxNTFhMzBhMzI3OGZm
OTA2ZWFmMzJhLi42NzQ4ZDFmNWQ4MDBkOTU3NGYyMzgwNzViMTg5MGI0ZTRhY2VlOTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRX
UklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggOTc3ZjkzZmY1YzNjMmI4MTc4NDZjOWE5YTc1NTE3
ODljOGVmZTA1Yy4uNjFiODkwZGM3ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdkZGQzYjE3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggZmFjZDJmN2FmYjVhMzkyZWUyMDk2N2E3NmZkNDFlMTRkZmIxNTBi
OS4uMTU4YzRlZjk3YzJlOTliODc2Njc5MzZlYjQwYTVlMTg3OGQxOGIzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMTcsMTEgKzIxNywxMyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29y
ZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cicsCiAgICAg
ICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5M
b2FkQ2xpZW50UG9saWN5JywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAg
ICdXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVuZGVyaW5nTW9kZScsCiAgICAgICAg
ICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcicsCkBAIC0yNDAsNyArMjQyLDYgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6R2Vv
bG9jYXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXInLAot
ICAgICAgICAnV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpMZWdhY3lDdXN0b21Q
cm90b2NvbElEJywKICAgICAgICAgJ1dlYktpdDo6TGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVy
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IGUwYmJiYmM1YmEyMzE4YmZhOGU2MzE5NmQ1NGVlYmI4OTAzNjQ0NDEuLmEwNzc1MzA5NTdi
YThkNDdkNTQyOWJhZGQ2Njc1NzU1NGQwNjIxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTEwMCw3ICsxMTAwLDcgQEAgYm9vbCBB
cmd1bWVudENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEltYWdl
SGFuZGxlJiBpbWFnZUhhbmQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5j
b2RlTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCitz
dGF0aWMgdm9pZCBlbmNvZGVOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UpCiB7CiAgICAgYXV0byBpbWFnZVNpemUgPSBuYXRpdmVJbWFnZVNp
emUoaW1hZ2UpOwogICAgIGF1dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFy
ZWFibGUoaW1hZ2VTaXplLCB7IH0pOwpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZU5hdGl2ZUltYWdlKERlY29kZXImIGRlY29kZXIsIE5h
dGl2ZUltYWdlUHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlT3B0
aW9uYWxOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBOYXRpdmVJbWFnZVB0ciBpbWFnZSkK
K3N0YXRpYyB2b2lkIGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewogICAgIGJvb2wgaGFzSW1hZ2UgPSAhIWlt
YWdlOwogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2U7CkBAIC0xMTY2LDE0ICsxMTY2LDE0IEBAIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKERl
Y29kZXImIGRlY29kZXIsIE5hdGl2CiAgICAgcmV0dXJuIGRlY29kZU5hdGl2ZUltYWdlKGRlY29k
ZXIsIGltYWdlKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE5hdGl2ZUltYWdlSGFuZGxlJiBpbWFnZUhh
bmRsZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiB7Ci0gICAgZW5jb2RlT3B0
aW9uYWxOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQoKSk7CisgICAg
ZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZSk7CiB9CiAKLWJvb2wgQXJn
dW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBO
YXRpdmVJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCitib29sIEFyZ3VtZW50Q29kZXI8TmF0aXZl
SW1hZ2VQdHI+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VQdHImIGltYWdl
KQogewotICAgIHJldHVybiBkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdl
SGFuZGxlLmltYWdlKTsKKyAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShkZWNv
ZGVyLCBpbWFnZSk7CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+JiBmb250KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwNWQwMzU1NGI5
ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0NDM0Y2U2ZTIzLi45ZjNiMTA2NjkzMzNiYTMwMTUyOTc4M2M5
ZTFlOTFlYWJhNGNhYjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERC
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhU2VsZWN0aW9uT3B0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZVB0ci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KQEAgLTEwNSw3ICsxMDYsNiBAQCBjbGFzcyBLZXlmcmFtZVZhbHVlTGlz
dDsKIGNsYXNzIExheW91dFNpemU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRp
bWluZ0Z1bmN0aW9uOwotY2xhc3MgTmF0aXZlSW1hZ2VIYW5kbGU7CiBjbGFzcyBOb3RpZmljYXRp
b247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKIGNsYXNzIFBheW1lbnRJbnN0YWxsbWVu
dENvbmZpZ3VyYXRpb247CkBAIC00MTYsOSArNDE2LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdlSGFuZGxlJik7CiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
SGFuZGxlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpOYXRpdmVJbWFnZUhhbmRsZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlJik7Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciYpOworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IDczMGRhNjQ4ZjJiMmZlOWU3ODRm
ZDA0MDUyZTE5MGYwZDBiZjIxYWQuLjk1OWRhODNkNWY2OTg4YjIxMTU4OGRhN2RkYjRmZjE4M2Rj
ZTdkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1h
cENHLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5j
cHAKQEAgLTEwNiwxMiArMTA2LDI3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKIAogdm9pZCBTaGFyZWFi
bGVCaXRtYXA6OnBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SW50UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbnRSZWN0JiBzb3VyY2UpCiB7Ci0gICAgZHJh
d05hdGl2ZUltYWdlKG1ha2VDR0ltYWdlQ29weSgpLCBjb250ZXh0LCAxLCBkZXN0aW5hdGlvbiwg
c291cmNlKTsKKyAgICBwYWludChjb250ZXh0LCAxLCBkZXN0aW5hdGlvbiwgc291cmNlKTsKIH0K
IAogdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwg
Y29uc3QgSW50UmVjdCYgc291cmNlKQogewotICAgIGRyYXdOYXRpdmVJbWFnZShtYWtlQ0dJbWFn
ZUNvcHkoKSwgY29udGV4dCwgc2NhbGVGYWN0b3IsIGRlc3RpbmF0aW9uLCBzb3VyY2UpOworICAg
IENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOworICAg
IENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKKworICAgIENHQ29udGV4dENsaXBUb1Jl
Y3QoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RpbmF0aW9uLngoKSwgZGVzdGluYXRpb24ueSgp
LCBzb3VyY2Uud2lkdGgoKSwgc291cmNlLmhlaWdodCgpKSk7CisgICAgQ0dDb250ZXh0U2NhbGVD
VE0oY2dDb250ZXh0LCAxLCAtMSk7CisKKyAgICBhdXRvIGltYWdlID0gbWFrZUNHSW1hZ2VDb3B5
KCk7CisgICAgQ0dGbG9hdCBpbWFnZUhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0
KCkpIC8gc2NhbGVGYWN0b3I7CisgICAgQ0dGbG9hdCBpbWFnZVdpZHRoID0gQ0dJbWFnZUdldFdp
ZHRoKGltYWdlLmdldCgpKSAvIHNjYWxlRmFjdG9yOworCisgICAgQ0dGbG9hdCBkZXN0WCA9IGRl
c3RpbmF0aW9uLngoKSAtIHNvdXJjZS54KCk7CisgICAgQ0dGbG9hdCBkZXN0WSA9IC1pbWFnZUhl
aWdodCAtIGRlc3RpbmF0aW9uLnkoKSArIHNvdXJjZS55KCk7CisKKyAgICBDR0NvbnRleHREcmF3
SW1hZ2UoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RYLCBkZXN0WSwgaW1hZ2VXaWR0aCwgaW1h
Z2VIZWlnaHQpLCBpbWFnZS5nZXQoKSk7CisKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNn
Q29udGV4dCk7CiB9CiAKIFJldGFpblB0cjxDR0ltYWdlUmVmPiBTaGFyZWFibGVCaXRtYXA6Om1h
a2VDR0ltYWdlQ29weSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkYWY1ZmI3MzEzYmRkOTgwNjhkZWRkMzlj
YmFjNGRmYmU5Mzc3Y2E4Li44ZTNiMmFmZmNhMDAzNGIzMjZkYTliMjE5OGM4NTc5NzRlMDQ5MTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTI0LDggKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3Mv
R1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKLUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApA
QCAtNTUyLDggKzU1Miw4IEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZC5jcHAKLVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTg0MzRjYmFj
MGMyZjYxYTJkNmUyODA3MTZlY2Q3Mjg4Mjg4OTI4Mi4uMmE4YzQyYTVhYmU0MTViZjlkMTFjN2Iw
YjNlZjcxODgwMmIyMGMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zODg5LDcgKzM4ODksNiBAQAogCQk1NTA2NDBBMjI0MDcxQTYx
MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEE0MjQwNzFDMjEwMEFBRTA0
NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NTA2NDBBNTI0MDcxQ0MwMDBBQUUwNDUgLyogSW1h
Z2VCdWZmZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVySWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0MjI0MDhBMDJFMDBERTRE
MkYgLyogUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQzMjQw
OEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE3OCwxMCArNDE3Nyw3IEBACiAJ
CTcxQTY3NkE1MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1RvdWNoQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUZCODEwQTIyNjA2
MjdBMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZVNpbXVsYXRlZE1vdXNl
RXZlbnRzRGlzcGF0Y2hQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIy
NzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3MjI3ODAwQzI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgw
MEQyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTcyMjc4MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3
RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzI3QTdGMzYyNDA3ODhGMDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQx
OTEsNiArNDE4NywxMCBAQAogCQk3MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1h
Z2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9y
UGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlj
a2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMw
MDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5
OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTM1
MjUzMTczQ0MwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjlEMDUzNjI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAv
KiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmVJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA3NiwxNyArODA3Niwx
NyBAQAogCQkJCTcyN0E3RjMzMjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLywKIAkJCQk3MjdB
N0YzOTI0MDc4OEYxMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmggKi8sCiAJ
CQkJNTVBRDA5NDQyNDA4QUJCMzAwREU0RDJGIC8qIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
LmggKi8sCi0JCQkJNTUwNjQwQTUyNDA3MUNDMDAwQUFFMDQ1IC8qIEltYWdlQnVmZmVySWRlbnRp
Zmllci5oICovLAogCQkJCTcyN0E3RjM3MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0Yz
ODI0MDc4OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQu
aCAqLywKIAkJCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlci5oICovLAogCQkJCTcyN0E3RjQ5MjQwOEFFRTYwMDREMjkzMSAvKiBSZW1vdGVJbWFn
ZUJ1ZmZlci5oICovLAotCQkJCTcyMjc4MDBDMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKIAkJCQk3MjI3ODAwRDI0MDk3QTAyMDA3RDM3
NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oICovLAogCQkJCTU1MDY0MDlE
MjQwNzE2MDkwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCAqLywKIAkJCQk1
NTA2NDA5RTI0MDcxNjA5MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oICovLAog
CQkJCTU1MDY0MEEwMjQwNzE5RTEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluICovLAorCQkJCTcyOUQwNTM1MjUzMTczQ0MwMDQyMjA5OCAvKiBSZW1vdGVSZXNv
dXJjZUNhY2hlLmNwcCAqLywKKwkJCQk3MjlEMDUzNjI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oICovLAogCQkJCTU1MDY0MDlGMjQwNzE5NkEwMEFBRTA0NSAvKiBSZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBncmFwaGljczsK
QEAgLTgwOTYsMTIgKzgwOTYsMTIgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJNTVBRDA5NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oICovLAotCQkJCTcyMjc4MDExMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwICovLAotCQkJCTcyMjc4MDEyMjQwOTkw
NkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCAqLywK
IAkJCQk1NUFEMDk0MjI0MDhBMDJFMDBERTREMkYgLyogUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
ICovLAogCQkJCTU1MDY0MEEyMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwICovLAogCQkJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaCAqLywKIAkJCQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUwNDUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTcyOUQw
NTMyMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwICovLAor
CQkJCTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDlhMWJjOWFlODdkYzhkNzI0MjhhMGI4MDljYWQwZDgwYTRjZDFjYjkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlcklkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBA
IC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1lbnVtIEltYWdlQnVmZmVySWRlbnRpZmllclR5cGUgeyB9OwotdXNp
bmcgSW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUJ1ZmZlcklk
ZW50aWZpZXJUeXBlPjsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggZTg0OTE2NjQ1MTQ1OTYyODdl
ZjJjNzhmOTA3NmUxZDQzODIxOTFmMi4uZWNkNzJlZmE4NDIzMmQ3ZDMxNTQ2YzVmMmQzM2QwNDE2
MWJiNzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtMzEsMTYgKzMxLDE4IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
aXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIg
OiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwg
cHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlIHsKICAgICB1c2luZyBCYXNlRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT47CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsK
ICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsK
KyAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
CkBAIC01MywxNCArNTUsMjAgQEAgcHVibGljOgogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyKCkK
ICAgICB7CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVsZWFzZUltYWdlQnVmZmVyKCp0aGlzKTsKICAgICB9CiAK
KyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7IH0KKwog
cHJvdGVjdGVkOgogICAgIFJlbW90ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgc2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgOiBCYXNlRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlcihzaXplKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICA6IEJhc2VEaXNwbGF5TGlzdEltYWdl
QnVmZmVyKHNpemUsIHRoaXMpCisgICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKG1h
a2VXZWFrUHRyKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKQogICAgIHsKKyAgICAgICAgbV9yZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUNy
ZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSk7CiAgICAgfQogCiAgICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRT
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkgb3ZlcnJpZGUKQEAgLTY5LDIyICs3
Nyw1MSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVh
dGUobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IFdURk1vdmUoaGFuZGxlKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNCYWNrZW5kQ3JlYXRl
ZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFja2VuZC5nZXQoKTsgfQotCiAgICAgQmFj
a2VuZFR5cGUqIGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0g
ICAgICAgIGlmICghbV9iYWNrZW5kKQotICAgICAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFn
ZUJ1ZmZlciY+KCp0aGlzKS5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9y
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7CisgICAgICAgIGlmICghbV9iYWNrZW5kICYmIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC0+d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwogICAgICAgICByZXR1cm4g
bV9iYWNrZW5kLmdldCgpOwogICAgIH0KIAorICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICAgICAgbV9iYWNr
ZW5kLT5mbHVzaENvbnRleHQoKTsKKyAgICB9CisKKyAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRl
eHQoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdp
bmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CisgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRlbUNv
dW50KCkgfHwgIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3QmFkZ2luZ0JvcmRlcihjb250
ZXh0KCksIFdlYkNvcmU6OkZsb2F0UmVjdCh7IH0sIG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSks
IFdlYkNvcmU6OkNvbG9yOjpkYXJrR3JlZW4sIHsgeyBXZWJDb3JlOjpSZWN0VG9wUmlnaHQsIFdl
YkNvcmU6OkNvbG9yOjp3aGl0ZSwgIkdQVSJfcyB9IH0pOworICAgICAgICBtX3NlbnRGbHVzaElk
ZW50aWZpZXIgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUZsdXNoRHJhd2luZ0Nv
bnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZWxl
YXNlUmVtb3RlQ2xpZW50KG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgZGlz
cGxheUxpc3QuY2xlYXIoKTsKKyAgICB9CisKKyAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgfHwgIW1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlM
aXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgfQorICAgIAogICAgIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRp
cGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkg
Y29uc3Qgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICAgICAgYXV0byYgZGlzcGxh
eUxpc3QgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPm1fZHJhd2luZ0Nv
bnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZl
cio+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdD
b250ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAgYXV0byByZXN1bHQgPSBjb25zdF9jYXN0PFJl
bW90ZUltYWdlQnVmZmVyKj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6
OmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOworICAgICAgICBpZiAoZGlzcGxh
eUxpc3QuaXRlbUNvdW50KCkpIHsKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VC
dWZmZXIqPih0aGlzKS0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAg
ICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOworICAgICAgICB9CisKICAgICAgICAgLy8gZ2V0SW1h
Z2VEYXRhIGlzIHN5bmNocm9ub3VzLCB3aGljaCBtZWFucyB3ZSd2ZSBhbHJlYWR5IHJlY2VpdmVk
IHRoZSBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCBtZXNzYWdlLgotICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1v
dGVHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX3JlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CiAgICAgfQogCiAgICAgdm9pZCBwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiBp
bWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0sIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRp
b24gZGVzdEZvcm1hdCA9IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQpIG92ZXJyaWRlCkBAIC05NSwyNiArMTMyLDMyIEBAIHByb3RlY3RlZDoKICAgICAgICAg
bV9kcmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLnB1dEltYWdlRGF0YShpbnB1dEZvcm1hdCwgaW1h
Z2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogICAgIH0KIAotICAgIHZv
aWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VCdWZmZXIm
IGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgp
OwotICAgICAgICBtX2JhY2tlbmQtPmZsdXNoQ29udGV4dCgpOworICAgICAgICBpZiAoIW1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5jcmVhdGVEcmF3SW1hZ2VCdWZmZXJJ
dGVtKGltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgbV9yZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOwogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIG92ZXJy
aWRlCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3TmF0
aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiBj
YWNoZWRJbWFnZSkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0g
bV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBpZiAoZGlzcGxheUxpc3Qu
aXRlbUNvdW50KCkpCi0gICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChkaXNwbGF5TGlzdCk7CisgICAgICAg
IGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmNyZWF0ZURyYXdO
YXRpdmVJbWFnZUl0ZW0oaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlv
bnMsIGNhY2hlZEltYWdlLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQotICAg
IAorCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbSYpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBjb25zdGV4cHIgc2l6ZV90IERpc3BsYXlM
aXN0QmF0Y2hTaXplID0gNTEyOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1fZHJhd2lu
Z0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3Vu
dCgpID49IERpc3BsYXlMaXN0QmF0Y2hTaXplKQotICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAg
ICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSA8IERpc3BsYXlMaXN0QmF0Y2hTaXplIHx8
ICFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICBkaXNwbGF5TGlzdC5j
bGVhcigpOwogICAgIH0KKworICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3MTUwYzdiMDc5M2FmZTlhYzVjODNhOWFjNzQ2
YmEzMThlNTFiOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAi
SW1hZ2VEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IgotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKQotICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQpKQotewotICAgIC8vIENyZWF0ZSB0aGUgUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS4KLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVu
ZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX2ltYWdlQnVmZmVySWRl
bnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIoKSk7Ci19Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6On5SZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCkKLXsKLSAgICAvLyBSZWxlYXNlIHRoZSBSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LgotICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbGVhc2VJbWFnZUJ1ZmZlcihtX2ltYWdl
QnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLVJlZlB0cjxJbWFnZURhdGE+IFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKLXsKLSAgICBJUEM6Oklt
YWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGFSZWZlcmVuY2U7Ci0gICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX2ltYWdlQnVmZmVySWRlbnRp
ZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0
YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOwotICAgIHJldHVybiBpbWFnZURhdGFS
ZWZlcmVuY2UuYnVmZmVyKCk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlcjo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpCi17Ci0gICAgaWYgKG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZCAmJiAhaXNCYWNrZW5kQ3JlYXRlZCgpKQotICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsK
LX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9yQ29tbWl0
SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKQotewotICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgJiYgaXNQZW5kaW5nRmx1c2goKSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLT53YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKLX0KLQotdm9pZCBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCi17Ci0gICAgaWYgKCFt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX2lt
YWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKLX0KLQotdm9p
ZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5k
V2FpdENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
KQotewotICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICAgICByZXR1cm47
Ci0gICAgbV9zZW50Rmx1c2hJZGVudGlmaWVyID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXI6
OmdlbmVyYXRlKCk7Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKLSAgICB3YWl0Rm9y
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQotewotICAgIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZp
ZXIgPSBmbHVzaElkZW50aWZpZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuaAppbmRleCA2MjA0MThkNzhjMjdmMjhjNTc0OTAyYzJlMWJhOWEyMzcxNzUx
N2I5Li42MWRkNThjZTUyZmRjZWQ0ZjE4NGFmMGVhNjc5N2IyNjYyNzVhMjQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaApAQCAtMjksNTAgKzI5LDMxIEBA
CiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmll
ci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsK
IGNsYXNzIEltYWdlRGF0YTsKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVp
bnQ4X3Q7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLQogY2xhc3MgUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+UmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpOwotCi0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJJZGVu
dGlmaWVyOyB9Ci0KICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4uCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUJhY2tl
bmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKSA9IDA7CiAKLSAgICB2b2lkIGNvbW1p
dEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7Ci0KLXByb3RlY3RlZDoK
LSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOwotCi0gICAgdmlydHVh
bCBib29sIGlzQmFja2VuZENyZWF0ZWQoKSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1BlbmRpbmdG
bHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VudEZsdXNoSWRlbnRpZmllciAhPSBtX3JlY2VpdmVk
Rmx1c2hJZGVudGlmaWVyOyB9CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0OwotCi0gICAgdm9pZCB3YWl0Rm9y
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7Ci0gICAgdm9pZCB3YWl0Rm9yQ29tbWl0SW1hZ2VC
dWZmZXJGbHVzaENvbnRleHQoKTsKKyAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX3Jl
Y2VpdmVkRmx1c2hJZGVudGlmaWVyID0gZmx1c2hJZGVudGlmaWVyOworICAgIH0KIAotICAgIC8v
IE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4uCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYpOwotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRD
b21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7Ci0KLXByaXZhdGU6Ci0g
ICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ7Ci0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyIHsg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07Citwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCB+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKIAogICAg
IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRlbnRpZmllcjsKICAgICBJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggOTk1MzQxNzg3ZWRhMjBhNTU0ZTRkNjdi
YTUzZGM2OThhNTM3MGNjMC4uZWZkNGZjODZmNzFmZmEzOTMwMDYzMGIxMWI5M2Y4NGFhODhkNTFi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0zOSwxMiArMzksMTMgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIHsKLSAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kKCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZD4obmV3IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQocGFnZSkpOwogfQogCi1SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkKK1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcmVt
b3RlUmVzb3VyY2VDYWNoZSgqdGhpcywgcGFnZSkKIHsKICAgICAvLyBSZWdpc3RlciBpdHNlbGYg
YXMgYSBNZXNzYWdlUmVjZWl2ZXIgaW4gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uLgogICAgIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyTWFwJiBtZXNzYWdlUmVjZWl2ZXJNYXAgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1h
cCgpOwpAQCAtODYsNDAgKzg3LDgyIEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2Fp
dEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCkKICAgICByZXR1cm4gY29ubmVjdGlv
bi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0PihtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lm
U3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpk
cmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8QmFkZ2U+JiBi
YWRnZXMpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmRyYXdCYWRnaW5nQm9yZGVyKGNv
bnRleHQsIGJvcmRlclJlY3QsIGNvbG9yLCBiYWRnZXMpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKLSAgICBpZiAo
c2hvdWxkQWNjZWxlcmF0ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKLSAgICAgICAgaWYg
KGF1dG8gaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgKnRoaXMpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAuYWRkKGltYWdlQnVmZmVyLT5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSwgaW1hZ2VC
dWZmZXIuZ2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwotICAgICAgICB9
Ci0gICAgfQorICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3JlYXRlSW1hZ2VCdWZm
ZXIoc2l6ZSwgc2hvdWxkQWNjZWxlcmF0ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImIGltYWdlKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlSW1h
Z2VCdWZmZXIoaW1hZ2UpOworfQorCitSZWZQdHI8RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oSW1hZ2VCdWZmZXImIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9yZW1vdGVSZXNv
dXJjZUNhY2hlLmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oaW1hZ2UsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcHRpb25zLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKworUmVmUHRyPERpc3Bs
YXlMaXN0OjpJdGVtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3TmF0aXZlSW1h
Z2VJdGVtKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlJiBjYWNo
ZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIp
Cit7CisgICAgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jcmVhdGVEcmF3TmF0aXZlSW1h
Z2VJdGVtKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNo
ZWRJbWFnZSwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
cmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVs
ZWFzZVJlbW90ZUNsaWVudChyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKworUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5n
TW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyOworfQorCitSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRG
b3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgSVBDOjpJbWFnZURhdGFSZWZlcmVuY2Ug
aW1hZ2VEYXRhUmVmZXJlbmNlOworICAgIHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OkdldEltYWdlRGF0YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllciwgMV9zKTsKKyAgICByZXR1cm4gaW1hZ2VEYXRhUmVmZXJlbmNlLmJ1
ZmZlcigpOworfQogCi0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVt
b3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2Vs
ZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzKSkgewotICAgICAgICBt
X2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGltYWdlQnVmZmVyLT5pbWFnZUJ1ZmZl
cklkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOwotICAgICAgICByZXR1cm4gaW1hZ2VC
dWZmZXI7Ci0gICAgfQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERy
YXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3Qs
IFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdl
QnVmZmVyRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQogCi0gICAgcmV0dXJuIG51bGxw
dHI7CitJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCit7CisgICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgc2VudEZs
dXNoSWRlbnRpZmllciA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFn
ZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBzZW50Rmx1c2hJZGVu
dGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKKyAgICByZXR1cm4gc2VudEZsdXNoSWRlbnRpZmllcjsKK30KKworUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQoreworICAgIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpDYWNoZU5hdGl2ZUltYWdlKGltYWdlLCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVh
c2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVSZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsK
LSAgICAvLyBDcmVhdGVJbWFnZUJ1ZmZlciBtZXNzYWdlIHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2
ZWQgYmVmb3JlIHRoaXMgb25lLgotICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJNYXAucmVtb3ZlKGltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgQVNTRVJUX1VO
VVNFRChmb3VuZCwgZm91bmQpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5k
bGUsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVm
ZmVyLT5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZS5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElk
ZW50aWZpZXIsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCit2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmNvbW1pdEZsdXNoQ29udGV4dChm
bHVzaElkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jb21taXRJbWFnZUJ1
ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAppbmRleCBmNDk2MTU4ZTdkNDBlZWIwNWFjMzk0MzRhZjI0NjMzYmFiYzdmMGVmLi5jYTY3NTJl
YjcwNDI4MGE0ODBmNWVkMzY2ZGIxYzViOTNmYjI1ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaApAQCAtMjksMzEgKzI5LDM4IEBACiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2lu
Y2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZS5oIgog
I2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9Db2xvclNwYWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2Rl
Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJl
c291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsK
K2NsYXNzIEl0ZW07Cit9CitjbGFzcyBGbG9hdFNpemU7CitzdHJ1Y3QgQmFkZ2U7CitlbnVtIGNs
YXNzIENvbG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWlu
dDhfdDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlBhZ2U7CisKIGNsYXNz
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKICAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIK
ICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZShXZWJQYWdl
Jik7CiAKICAgICB+UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOwogCi0gICAgUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOyB9Ci0KICAgICAvLyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIuCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3Qgb3ZlcnJpZGU7CkBAIC02MSwyMSArNjgsMzMgQEAgcHVibGljOgogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgV2ViQ29yZTo6U2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlKTsKLSAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlcklkZW50aWZpZXIpOwotCiAgICAgYm9vbCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKCk7CiAgICAgYm9vbCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsK
IAorICAgIC8vIFJlc291Y2UgY2FjaGUuCisgICAgdm9pZCBkcmF3QmFkZ2luZ0JvcmRlcihXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvcmRlclJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkJhZGdlPiYp
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6U2hvdWxkQWNjZWxlcmF0
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKTsKKyAgICB2b2lk
IHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd05hdGl2ZUltYWdlSXRl
bShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJiwgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90ZUNsaWVudChXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KKyAgICBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6SW1hZ2VEYXRhPiByZW1vdGVHZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVGbHVzaERy
YXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIgcmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDYWNo
ZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJik7CisgICAgdm9pZCBy
ZW1vdGVSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKwogcHJpdmF0ZToKLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CisgICAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZChXZWJQYWdlJik7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSBy
ZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBjb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgSW1h
Z2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CisgICAgdm9pZCBjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
IAotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgPSBIYXNoTWFwPEltYWdl
QnVmZmVySWRlbnRpZmllciwgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcio+OwotICAg
IEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwOworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAg
IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
eyBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4IDEyYTdiZjhkYTRj
ODI1NzBiY2EzNmExMzVmZDcxYWYyNTg4YjY0ZDUuLjJjMGY3ZThhMTIwM2YyNjg2NTJhMDBmYzFm
N2IxN2RhNTk5ZDJhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KQEAgLTIzLDggKzIzLDggQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1l
c3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCB7Ci0gICAgdm9p
ZCBDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXpl
LCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpCi0gICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChXZWJLaXQ6
OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViS2l0OjpJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29y
ZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhh
bmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikKKyAgICB2b2lkIENvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KFdlYktpdDo6
SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTA5YmE4NjBlNmNjYTlkOWMzNzJjMzQ0ZWE4YWM3YTMzOWYzM2VkYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZS5jcHAKQEAgLTAsMCArMSwyMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZS5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0NhY2hlZEltYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHRFeHRyYXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZVJlc291cmNlQ2Fj
aGU6OlJlbW90ZVJlc291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCwgV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICwgbV9wYWdlKHBhZ2UpCit7Cit9CisK
K2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zaG93RGVidWdC
b3JkZXJzKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6ZHJhd0JhZGdpbmdCb3Jk
ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3Qs
IGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKQoreworICAg
IGlmICghc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEZs
b2F0UmVjdCBjb250YWluZXJSZWN0ID0gYm9yZGVyUmVjdDsKKyAgICBjb250YWluZXJSZWN0Lmlu
ZmxhdGUoLTEpOworICAgIFdlYkNvcmU6OmRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGNvbnRh
aW5lclJlY3QsIGNvbG9yLCBiYWRnZXMpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBpZiAoc2hvdWxkQWNjZWxl
cmF0ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKKyAgICAgICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVy
aW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKSkgeworICAgICAgICAgICAgbV9yZW1vdGVJbWFnZUJ1
ZmZlckhhc2hNYXAuYWRkKGltYWdlQnVmZmVyLmdldCgpLCBpbWFnZUJ1ZmZlci0+cmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVySGFzaE1hcC5hZGQoaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmll
cigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxl
cmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlJlbW90
ZVVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKSkgeworICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5hZGQo
aW1hZ2VCdWZmZXIuZ2V0KCksIGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIo
KSk7CisgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAuYWRk
KGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0
KCkpOworICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CisgICAgfQorCisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1f
cmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikpCisgICAgICAgIGltYWdlQnVmZmVyLT5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxT
aXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhh
bmRsZSkpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIGltYWdlQnVm
ZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyKTsKK30KKworUmVmUHRyPFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVEcmF3
SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgYXV0byByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgPSBmaW5kSW1hZ2VCdWZmZXJGb3JDbGllbnQoaW1hZ2UsIHJl
bW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBGbHVzaCB0aGUgRHJhd2luZ0NvbnRl
eHQgb2YgdGhlIHNvdXJjZSBJbWFnZUJ1ZmZlciBzbyB0aGlzIEltYWdlQnVmZmVyIGdldHMgYW4g
dXBkYXRlZCBpbWFnZS4KKyAgICBpbWFnZS5mbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZShyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKK30KKworUmVm
UHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVh
dGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENh
Y2hlZEltYWdlJiBjYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNs
aWVudElkZW50aWZpZXIpCit7CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBm
aW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoY2FjaGVkSW1hZ2UsIGltYWdlLCByZW1vdGVDbGllbnRJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0
aXZlSW1hZ2U6OmNyZWF0ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFn
ZSkKK3sKKyAgICAvLyBSZW1vdmUgdGhlIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgorICAgIGF1
dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAu
dGFrZSgmaW1hZ2UpOworICAgIEFTU0VSVChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisg
ICAgLy8gY3JlYXRlSW1hZ2VCdWZmZXIgc2hvdWxkIGhhdmUgYmVlbiByZXR1cm5lZCB0aGlzIElt
YWdlQnVmZmVyIGJlZm9yZS4KKyAgICBib29sIGZvdW5kID0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVySGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CisKKyAgICAvLyBUZWxsIHRoZSBHUFUgcHJv
Y2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZSB1bmxlc3MgaXQncyBwZW5kaW5nIHJlcGxheWlu
ZyBiYWNrLgorICAgIHJlbGVhc2VSZW1vdGVSZXNvdXJjZVBlbmRpbmdSZW1vdmVDbGllbnRzKHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcjsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlc291cmNlQ2FjaGU6
OnJlbGVhc2VOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYgaW1hZ2Up
Cit7CisgICAgLy8gUmVtb3ZlIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KKyAgICBhdXRv
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLnRh
a2UoaW1hZ2UpOworCisgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMg
cmVzb3VyY2UgdW5sZXNzIGl0J3MgcGVuZGluZyByZXBsYXlpbmcgYmFjay4KKyAgICBpZiAocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5k
aW5nUmVtb3ZlQ2xpZW50cyhyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHJldHVybiBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpmaW5kSW1hZ2VCdWZmZXJGb3JDbGllbnQoSW1hZ2VCdWZmZXIm
IGltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikK
K3sKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlSW1hZ2VCdWZm
ZXJIYXNoTWFwLmdldCgmaW1hZ2UpOworICAgIGFkZFJlbW90ZUNsaWVudChyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIHJldHVybiByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1vdGVS
ZXNvdXJjZUNhY2hlOjpmaW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoV2ViQ29yZTo6Q2FjaGVkSW1h
Z2UmIGNhY2hlZEltYWdlLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAuZW5zdXJlKGlt
YWdlLCBbJl0geworICAgICAgICBjYWNoZWRJbWFnZS5hZGRDbGllbnQoKnRoaXMpOworICAgICAg
ICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZUNhY2hlTmF0aXZlSW1hZ2Uo
aW1hZ2UpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGFkZFJlbW90ZUNsaWVudChy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIHJl
dHVybiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZTo6YWRkUmVtb3RlQ2xpZW50KFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVu
dGlmaWVyKQoreworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBBZGQgdGhlICJyZXNvdXJjZSAtPiBjbGllbnQiIGRlcGVuZGVuY3kg
aW4gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgorICAgIGF1dG8mIGNsaWVudHMgPSBt
X3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuZW5zdXJlKHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciwgWyZdIHsKKyAgICAgICAgcmV0dXJuIFJlbW90ZUNsaWVudHNIYXNoU2V0KCk7CisgICAg
fSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgY2xpZW50cy5hZGQocmVtb3RlQ2xpZW50SWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291
cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fcmVtb3RlUmVzb3VyY2VDbGllbnRz
UGVuZGluZ1JlbGVhc2VIYXNoTWFwLmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikp
OworCisgICAgLy8gSWYgd2UgaGF2ZSByZWNvcmRlZCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRl
cGVuZGVuY3kgYmVmb3JlIGluIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCwgbW92ZSB0
aGlzCisgICAgLy8gZGVwZW5kZW5jeSB0byBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdS
ZWxlYXNlSGFzaE1hcC4gT3RoZXJ3aXNlIHJlbW92ZSB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgY2Fj
aGUuCisgICAgaWYgKG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC5jb250YWlucyhyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1Bl
bmRpbmdSZWxlYXNlSGFzaE1hcC5hZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBtX3JlbW90
ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAudGFrZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKTsK
KyAgICBlbHNlCisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVSZWxlYXNl
UmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKworVmVjdG9yPFJl
bW90ZVJlc291cmNlSWRlbnRpZmllcj4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVtb3ZlUmVtb3Rl
Q2xpZW50KFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAmIHJlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVy
KQoreworICAgIFZlY3RvcjxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+IHJlbW90ZVJlc291cmNl
Q2xpZW50c1RvQmVSZW1vdmVkOworCisgICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4g
Y2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIHJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuCisg
ICAgZm9yIChhdXRvJiBwYWlyIDogcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCkgeworICAg
ICAgICBwYWlyLnZhbHVlLnJlbW92ZShyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAg
aWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVtb3RlUmVzb3VyY2VDbGll
bnRzVG9CZVJlbW92ZWQuYXBwZW5kKHBhaXIua2V5KTsKKyAgICB9CisKKyAgICAvLyBSZXR1cm4g
YSBsaXN0IG9mIHRoZSB1bnJlZmVyZW5jZWQgcmVzb3VyY2VzLgorICAgIHJldHVybiByZW1vdGVS
ZXNvdXJjZUNsaWVudHNUb0JlUmVtb3ZlZDsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
OjpyZWxlYXNlUmVtb3RlQ2xpZW50KFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGll
bnRJZGVudGlmaWVyKQoreworICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVu
dCBkZXBlbmRlbmNpZXMgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuCisgICAg
Zm9yIChhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA6IHJlbW92ZVJlbW90ZUNsaWVudCht
X3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGll
bnQgZGVwZW5kZW5jaWVzIGZyb20gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFz
ZUhhc2hNYXAuCisgICAgZm9yIChhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA6IHJlbW92
ZVJlbW90ZUNsaWVudChtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cCwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgLy8gUmVtb3ZlIHRoZSB1bnJl
ZmVyZW5jZWQgcmVzb3VyY2VzIGZyb20gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVs
ZWFzZUhhc2hNYXAuCisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVh
c2VIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgICAgIC8v
IFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgorICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlUmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzAzN2NmZGZjYTQzOWZhZjg4ZTk1NDE2NjYyOTk1Y2M4YTA3YjQ2NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCisjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhY2hl
ZEltYWdlQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgSXRlbTsKK30KK2VudW0gY2xhc3MgQ29s
b3JTcGFjZSA6IHVpbnQ4X3Q7CitzdHJ1Y3QgQmFkZ2U7CitjbGFzcyBDb2xvcjsKK2NsYXNzIEZs
b2F0UmVjdDsKK2NsYXNzIEZsb2F0U2l6ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI7CitjbGFzcyBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZSA6
IHB1YmxpYyBXZWJDb3JlOjpDYWNoZWRJbWFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUmVtb3Rl
UmVzb3VyY2VDYWNoZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiwgV2ViUGFnZSYpOworCisgICAg
Ym9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlcigpIGNvbnN0OworICAgIHZvaWQgZHJhd0JhZGdp
bmdCb3JkZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3JkZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpCYWRnZT4mKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6
U2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlKTsKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIFJlZlB0cjxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd05hdGl2ZUltYWdlSXRl
bShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJiwgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworCisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbGVh
c2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworICAgIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZWxlYXNlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0
aXZlSW1hZ2VQdHImKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworCitwcml2YXRl
OgorICAgIHVzaW5nIFJlbW90ZUNsaWVudHNIYXNoU2V0ID0gSGFzaFNldDxXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXI+OworICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVySGFzaE1h
cCA9IEhhc2hNYXA8V2ViQ29yZTo6SW1hZ2VCdWZmZXIqLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXI+OworICAgIHVzaW5nIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hN
YXA8V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcj47CisgICAgdXNpbmcgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCA9IEhhc2hNYXA8
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVDbGllbnRzSGFzaFNldD47
CisgICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAgPSBIYXNo
TWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcio+OworCisgICAgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChj
b25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpIG92ZXJyaWRlIHsgcmVsZWFzZU5h
dGl2ZUltYWdlKGltYWdlKTsgfQorCisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIGZpbmRJbWFnZUJ1ZmZlckZvckNsaWVudChXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIGZpbmROYXRpdmVJbWFnZUZvckNsaWVudChXZWJDb3JlOjpDYWNoZWRJbWFn
ZSYsIGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworCisgICAgdm9pZCBhZGRSZW1v
dGVDbGllbnQoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgVmVjdG9y
PFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcj4gcmVtb3ZlUmVtb3RlQ2xpZW50KFJl
bW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVz
b3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyhXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOworCisgICAgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwIG1fcmVtb3RlSW1hZ2VCdWZmZXJI
YXNoTWFwOworICAgIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcCBtX3JlbW90ZU5hdGl2ZUltYWdl
SGFzaE1hcDsKKyAgICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwIG1fcmVtb3RlUmVzb3Vy
Y2VDbGllbnRzSGFzaE1hcDsKKyAgICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwIG1fcmVt
b3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwOworICAgIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwIG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlckhhc2hNYXA7CisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKaW5kZXgg
MWFlNTE1NzI1MzYxZDIyODIxOTE0YWVkMGYyOGJiMTZlNzYzNThmZi4uMzAwNTBhYzA3ZGM5YWQ1
YzgzZjNkZTI4MzI5MDZhOTg3NDEwZDNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKICNpbmNsdWRlICJHYW1lcGFkRGF0YS5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJHYW1lcGFkLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggNzZjMGQxZmM4YWEwOTBkZGU0NjJjYjIxZTI0YTIzNGYxMDBhY2Zl
MS4uOGIxZTMwODkxMjI4NTk2Y2ZlMDdhMmY5MTcxZTc4NWQyNTIzZjczZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25p
dG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zgog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgV2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZShtX3BhZ2UpOwogICAgIHJldHVybiAqbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOwogfQogCg==
</data>
<flag name="commit-queue"
          id="427264"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411135</attachid>
            <date>2020-10-12 11:22:32 -0700</date>
            <delta_ts>2020-10-12 12:13:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012112231.patch</filename>
            <type>text/plain</type>
            <size>222149</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uZGU0ODM4NTIzZTQzOWU0MjJmNWY5YjExYTc2ZWU0
NGEyODRiYjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMiBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg6IEFkZGVkLgorCisy
MDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0bWFwSW1hZ2UgZnJhbWUgaW4gR1BV
IFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdpdGggaXRzIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFnZSB3aWxsIGJlIGNhY2hlZCBpbiB0
aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2YgQml0bWFwSW1hZ2UgaGF2ZSBhIHdl
bGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2Vzcy4KKyAgICAgICAgVGhlIGNv
dW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mgd2lsbCBoYXZlIGEgc2ltaWxhciBs
aWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBpcyBkcmF3biBmb3IgdGhlIGZpcnN0
IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2ViCisgICAgICAgIFByb2Nlc3Mgdmlh
IGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2VzcyBhbmQgY2FjaGVkIHVuZGVyIGEg
dW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3aGljaCB3aWxsIGJlIHVz
ZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAgICAgICAgaXRlbS4gV2hlbiB0aGUg
Qml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBkZWNvZGVkIGZyYW1lLCBhIG1lc3Nh
Z2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdlYiBQcm9jZXNzIHRvIHRoZSBHUFUg
UHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAgICBmcmFtZS4gSGVyZSBpcyB0aGUg
c2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAgVGhlIGRyYXdpbmcgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMSkgQml0bWFw
SW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpkcmF3TmF0aXZlSW1hZ2UoKS4KKyAg
ICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFn
ZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgIENhY2hlZEltYWdlIGFuZCBjYWxs
cyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpLgorICAgICAgICAzKSBSZWNvcmRl
cjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
KSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNoIGlzIFJlbW90ZUltYWdlQnVmZmVy
IGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAgNCkgUmVtb3RlSW1hZ2VCdWZmZXIg
Y2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGljaCBjYWxscyBpdHMKKyAgICAgICAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSgpLgorICAg
ICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0cyBmaW5kTmF0aXZlSW1hZ2VGb3JD
bGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhlIE5hdGl2ZUltYWdlIGluIHRoZSBj
YWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUgYXMgYSBjbGllbnQKKyAgICAgICAg
ICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUgUHJvY2VzcyB0byBjYWNoZSBpdCBh
bHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
IFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRoZSAKKyAgICAgICAgICAgRHJhd05h
dGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci4KKworICAg
ICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxv
d2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRoZSBEcmF3aW5nQ29udGV4dCBoYXBw
ZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAgICAgICAgIHJlcGxheWVkIGJhY2su
IERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxscyBhcHBseSgpIG9mIGl0cworICAg
ICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhlIGNhc2Ugb2YgMkQgY2FudmFzLCB0
aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KKyAgICAgICAg
ICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlS
ZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2
ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZlSW1hZ2UKKyAgICAgICAgICAgd2hv
c2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgb2YgdGhlIERy
YXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUgTmF0aXZlSW1hZ2UgaXMgZm91bmQs
IGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9mIHRoZQorICAgICAgICAgICBhcmd1
bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNl
IGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIEltYWdl
U291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0aGUgSW1hZ2VPYnNlcnZlciB3aGVu
IGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisg
ICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdp
bGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIENhY2hlZElt
YWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKS4K
KyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRoZSBDYWNoZWRJbWFnZUNsaWVudHMg
dG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2UgUmVtb3RlUmVzb3VyY2VDYWNoZSBy
ZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGllbnQgb2YKKyAgICAgICAgICAgdGhp
cyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0
cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgNSkgVGhlIGNhY2hl
ZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0aGUgY2FjaGUgYW5kIGEgbWVzc2Fn
ZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQVSBQcm9jZXNzIHdoZW4gbm8gcmVt
b3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAgICAgICAgIE5hdGl2ZUltYWdlLgor
CisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBHUFUgUHJvY2VzcyBpcyB0aGUg
Zm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQKKyAgICAgICAgICAgTmF0aXZlSW1h
Z2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKworICAgICAgICAqIGh0bWwvSW1h
Z2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6ZHJhd05h
dGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQ6Om5hdGl2ZUlt
YWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjphcHBseSBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJbWFnZVB0ciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aW1hZ2VTaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJ
bWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0p
OgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3Jk
aW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBOYXRpdmVJbWFnZVB0ciB0
byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAgICAgICAgIE5hdGl2ZUltYWdlUHRy
LgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdlSGFuZGxlIGFuZCBhbGxvdyBlbmNv
ZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAgICAgICAgICAgZGlyZWN0bHkuCisg
ICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGlyZWN0aXZlcyBhcm91bmQgdGhlIERp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAgICAgaXRlbSBhbmQgdGhlIG1ldGhv
ZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92ZSB0aGUgZHJhd05hdGl2ZUltYWdl
KCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBjYWxsZXJzLgorICAgICAgICA1KSBJ
biB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcgY29tbWFuZHMsIG1ha2UgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBwcm9jZXNzIGRyYXdpbmcgdGhlIGlt
YWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNvbW1hbmRzIGFyZQorICAgICAgICAg
ICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFnZSB3aWxsIHJlbmRlciBhIE5hdGl2
ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBTVkdJbWFnZSB3aWxsIHJlY29yZCBp
dHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUlt
YWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90
ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgLS0gR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERpc3BsYXlMaXN0OjpSZWNvcmRlciB0
byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFwcHJvcHJpYXRlIHRvIGNyZWF0ZSBE
cmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAgICAgLS0gRGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBkZWxlZ2F0ZSB0byB0byBjcmVhdGUK
KyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIC0tIFNpbmNl
IFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdh
dGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVy
SXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxsIGJlIGNhbGxlZCBuZXh0CisgICAg
ICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVEcmF3SW1h
Z2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFzaE1hcAorICAgICAgICAgICB1c2lu
ZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5kcyBpdCwgaXQgd2lsbCBjcmVhdGUg
dGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIFRoZSBzZXF1ZW5jZSBpbiB0aGUg
R1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAtLSBXaGVuIHJlcGxheWlu
ZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6OlJlcGxheWVyIHdpbGwgY2FsbAor
ICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYgaXQgd2FudHMgdG8gYXBwbHkgdGhl
IERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNhdXNlIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSwKKyAgICAgICAg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3aWxsIGJlIGNhbGxlZC4KKworICAg
ICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwgY2FsbCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAgICAgICAgICAgd2hpY2ggd2lsbCBw
YXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgLS0gUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNlSXRlbSgpIHdpbGwgc2VhcmNoIGZv
ciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdob3NlIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAgICAgRHJhd0ltYWdlQnVmZmVyLiBB
bmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdyYXBoaWNzQ29udGV4dC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6RHJh
d0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF4
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6T2JzZXJ2ZXI6On5PYnNl
cnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHA6
CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9k
dWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0
aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8gSW1hZ2VCdWZmZXIgd2hpY2ggdXNl
ZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxyZWFkeSBvdmVycmlkZGVuCisgICAg
ICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlzIGNhbGxlZCBieSBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkga2Vl
cHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgd2lsbCBiZSB1c2VkIGluIFdlYkNv
cmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBhIHJlbW90ZSBJbWFnZUJ1ZmZlciB0
byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1YWxseSBpdCB3aWxsCisgICAgICAg
IGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFnZSB0byBhIHJlbW90ZSBJbWFnZUJ1
ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMDkg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNwbGF5TGlzdFJlY29yZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2NmU5YTBlNjQ3OGUuLmZmM2NiMzVi
MmJmMGVkMmQwNzg2NTdhM2RlMTE1ZTczMGFhNzc5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjc0
IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBh
IGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdlIGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBh
bGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZv
ckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxp
c3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUlt
YWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRs
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRy
YXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVt
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0lt
YWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVt
b3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJl
bW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVkaW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xl
IGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAg
IHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRo
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8gaXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisK
KyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9u
IGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAgICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNl
Q2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAg
IGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAgICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFz
aE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAg
ICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAgICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAgdHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVy
ZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVzZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdo
aWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3
aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFz
aFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNv
dXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWlyIGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVp
cgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMgd2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291
cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hlCisgICAgICAgIGlzIHJlcXVlc3RlZCB0byBy
ZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBpdCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisg
ICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2YgcmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQg
bW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAgICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhlciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAg
IC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAgICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4gYW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291
cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGllbnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBS
ZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAKKyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVs
ZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdlbGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6
cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToKKyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVz
b3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xp
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90
ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwgdGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMg
YSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBo
YXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0NvbnRleHQuIEl0J3MgdGltZSB0byBib29rLQor
ICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZlcmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRo
ZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAgICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1v
dGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNl
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUg
R1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5h
Z2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAgICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFs
IGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAg
ICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBt
YW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2Ug
Y2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1
c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNz
LiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0
bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3Rl
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVkcyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZv
ciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5kIAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMg
YW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwK
KyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJl
bW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBh
ZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5nIHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRl
eHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1
YjUyNTQwMGZlLi40NWFmOGYxYWJhYWNkMjhkNDI0MDc4MDE0YTFiZTE0MWU2NGJjMzY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCkBAIC0xMTk0LDYgKzExOTUsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5m
by5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1No
aW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aC5oCkBAIC0xMjA3LDYgKzEyMDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJh
Y2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2Rh
ZjQwMDRiMzY4YTkwZThkYTFkNTIwNmQuLmI1ZjBkZDY5MWM4ZjY2NGNlZGJiMjQ5NTA2YWYyNzhi
ZDg2MmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODkzLDYgKzE4OTMsNyBAQCBwbGF0Zm9ybS9n
cmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEV4dHJhcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQx
MDEwMDAyMS4uYmFlZDUyMTZlZTY0NzRkNWFkMDAwMDJlYTJiOTVmZDMxZWZmNmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjAwNyw3ICsyMDA3LDYgQEAKIAkJNkE3Mjc5OEIxRjE2QzI5QzAwM0YzOUI4IC8qIEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjFGNDgxMTIyOThBMzdFMDBE
RThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIxRjQ4MEYyMjk4OUVDNDAwREU4Qjgy
IC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNG
ODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZElu
U3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNG
MDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2
aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI1MDdBMjEyMzRCRjM0MTAwQkU3QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4u
aCAqLzsgfTsKQEAgLTIxNTUsMTIgKzIxNTQsMTYgQEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEy
RkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93
bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAw
RkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIz
MUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAw
N0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICov
OyB9OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1
QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlC
QzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTMwMjUzMTQy
NDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAv
KiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3MjlEMDUzQzI1MzJFRUUzMDA0MjIwOTggLyogTmF0aXZl
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5
OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNC
RUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgz
IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CkBAIC05NDg3LDcgKzk0OTAsNiBAQAogCQk2
QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRh
VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIzNDgwOTIwRUVGNTBE
NDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEy
QjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9n
Z2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkMyMzk4
M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Z2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MTIy
MjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
Z2lzdHJhYmxlRG9tYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTAxLDYg
Kzk5MDMsOCBAQAogCQk3MjFCNDk2RjI1MTJBQzA0MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNr
aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQml0bWFwQmFja2luZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFn
ZUJpdG1hcEJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCaXRtYXBCYWNraW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBB
bmltYXRpb25GcmFtZVJhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRnJhbWVSYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAv
KiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQjAy
NTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI0RUQzMjkxQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkExQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5k
TWluTWF4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVEMzJCMUEzQTdFNTQwMEY1RjEz
QyAvKiBFWFRCbGVuZE1pbk1heC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUQmxlbmRN
aW5NYXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTkyMyw2ICs5OTI3LDgg
QEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdl
UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tl
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJC
YWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMy
ODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxNDEsNiArMjYxNDcsOCBAQAogCQkJCTJE
MkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1
OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1
OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oICovLAorCQkJCTcyMzFCRUFG
MjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcy
MzFCRUIwMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJ
CQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAog
CQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovLAog
CQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMuaCAqLywKQEAgLTI2MjIwLDggKzI2MjI4LDggQEAKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAz
NkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4
MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTMxNEJFM0E1MUIzMTAz
RkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLywKLQkJCQk2QjM0ODA5
MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLywKIAkJCQk1NUEzMzZGNjFEODIw
OUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLywKKwkJCQk3MjlEMDUzOTI1MzJEMkU3MDA0
MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCAqLywKIAkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2
NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGgu
aCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRl
LmNwcCAqLywKQEAgLTI2MjM5LDYgKzI2MjQ3LDcgQEAKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCiAJCQkJQkNBQjQxN0YxM0UzNTZFODAw
RDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8q
IFJlZ2lvbi5oICovLAorCQkJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggKi8sCkBAIC0zMTYxNCw2ICszMTYyMyw3IEBACiAJCQkJMkQ0ODFGMDQx
NDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzIzMUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdC
IC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhG
QUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjgsNyArMzMxNzgsOCBAQAogCQkJCTMxNEJFM0E3
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJ
bWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5RDA1M0MyNTMyRUVFMzAwNDIyMDk4IC8qIE5h
dGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzRDI1MzJFRjkxMDA0MjIwOTgg
LyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjJEMTc1MUI4QkNENkEw
MEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2
QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMzU0MSw2ICszMzU1Miw3IEBACiAJCQkJNDZCOTUxOUEyMDdENjM1
NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMzMTJFOTIy
RkNEN0MwMDAxMjA0RUMgLyogUmVtb3RlUGxheWJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzMxMkVCMjJGQ0Q3QzkwMDEyMDRFQyAvKiBSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzNBMTU1NDIxNzdB
NDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQw
NkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCA0Mzli
NmE5ZDdkODEyMGQ5MWUxZTFhZmM1NmQxYWFmNmJlMGI0OWU0Li42MmY1OWQ2OTJiN2YzNmQ2OTk1
NzRhZDUwYzgxOGY5OTk3M2Q3MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApA
QCAtNjAxLDEwICs2MDEsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5n
ZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcpIG92ZXJyaWRlIHsgfQogCisgICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQorCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IElt
YWdlJikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25z
dCBJbWFnZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGltYWdlRnJhbWVB
dmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0
KiA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIG92
ZXJyaWRlIHsgfQorICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1h
Z2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIG92ZXJyaWRlIHsgfQorCiAgICAgdm9pZCBjaGFu
Z2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSBvdmVycmlk
ZSB7IH0KICAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKGNvbnN0IEltYWdlJikgb3Zl
cnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3Bw
CmluZGV4IDVjYzkzMzgzMjU3NGRjYmViZWQ4MmMyYzBiY2U4ZjAwYzJiY2E3MmUuLjgyZDI5MTlj
ODNjYTdjNDBiZWIzZjkwMmY4YzZjNzhiZWU3ZWJkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNDExLDYgKzQxMSwxNyBAQCB2b2lkIENhY2hl
ZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1h
Z2UmIGltYWdlLCBsbwogICAgICAgICBjYWNoZWRJbWFnZS0+ZGVjb2RlZFNpemVDaGFuZ2VkKGlt
YWdlLCBkZWx0YSk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6
OmRyYXdOYXRpdmVJbWFnZShjb25zdCBJbWFnZSYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBmb3Ig
KGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZEltYWdlcykgeworICAgICAgICBpZiAoJmltYWdl
ICE9IGNhY2hlZEltYWdlLT5pbWFnZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQorCiB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJ
bWFnZU9ic2VydmVyOjpkaWREcmF3KGNvbnN0IEltYWdlJiBpbWFnZSkKIHsKICAgICBmb3IgKGF1
dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZEltYWdlcykKQEAgLTQzNCw2ICs0NDUsMTIgQEAgdm9p
ZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6aW1hZ2VGcmFtZUF2YWlsYWJsZShj
b25zdCBJbWFnZSYgaW1hZ2UsIEkKICAgICAgICAgY2FjaGVkSW1hZ2UtPmltYWdlRnJhbWVBdmFp
bGFibGUoaW1hZ2UsIGFuaW1hdGluZ1N0YXRlLCBjaGFuZ2VSZWN0LCBkZWNvZGluZ1N0YXR1cyk7
CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6Om5hdGl2ZUltYWdl
V2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiBpbWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IG5hdGl2ZUltYWdlKQoreworICAgIGZvciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1h
Z2VzKQorICAgICAgICBjYWNoZWRJbWFnZS0+bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoaW1h
Z2UsIG5hdGl2ZUltYWdlKTsKK30KKwogdm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNl
cnZlcjo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJl
Y3QpCiB7CiAgICAgZm9yIChhdXRvIGNhY2hlZEltYWdlIDogbV9jYWNoZWRJbWFnZXMpCkBAIC02
ODksNiArNzA2LDE2IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmltYWdlRnJhbWVBdmFpbGFibGUoY29u
c3QgSW1hZ2UmIGltYWdlLCBJbWFnZUFuaW1hdGluZ1N0YXRlIGFuCiAgICAgICAgIG1fY2xpZW50
c1dhaXRpbmdGb3JBc3luY0RlY29kaW5nLmNsZWFyKCk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6
Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiBpbWFnZSwgY29uc3QgTmF0
aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQoreworICAgIGlmICgmaW1hZ2UgIT0gbV9pbWFnZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVk
SW1hZ2VDbGllbnQ+IGNsaWVudFdhbGtlcihtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNoZWRJ
bWFnZUNsaWVudCogY2xpZW50ID0gY2xpZW50V2Fsa2VyLm5leHQoKSkKKyAgICAgICAgY2xpZW50
LT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChuYXRpdmVJbWFnZSk7Cit9CisKIHZvaWQgQ2Fj
aGVkSW1hZ2U6OmNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmIGltYWdlLCBjb25zdCBJbnRSZWN0
KiByZWN0KQogewogICAgIGlmICgmaW1hZ2UgIT0gbV9pbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggNzJkNTljMWZmNDg0NWMyMzI3NTkyMGJjOGQx
MmYyNzM0MzI3ZjcyYy4uODY3OTgzMmE0Y2MxMGJjNjRmN2EzZTU0YjI1OWJlNTNmYTcxMjhmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTE0OSwxMCAr
MTQ5LDE0IEBAIHByaXZhdGU6CiAKICAgICAgICAgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5n
ZWQoY29uc3QgSW1hZ2UmLCBFbmNvZGVkRGF0YVN0YXR1cykgZmluYWw7CiAgICAgICAgIHZvaWQg
ZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlJiwgbG9uZyBsb25nIGRlbHRhKSBmaW5hbDsK
KworICAgICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBJbWFnZSYsIEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWREcmF3KGNv
bnN0IEltYWdlJikgZmluYWw7CiAKICAgICAgICAgYm9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEo
Y29uc3QgSW1hZ2UmKSBmaW5hbDsKICAgICAgICAgdm9pZCBpbWFnZUZyYW1lQXZhaWxhYmxlKGNv
bnN0IEltYWdlJiwgSW1hZ2VBbmltYXRpbmdTdGF0ZSwgY29uc3QgSW50UmVjdCogY2hhbmdlUmVj
dCA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIGZp
bmFsOworICAgICAgICB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdl
JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSBmaW5hbDsKKwogICAgICAgICB2b2lkIGNoYW5nZWRJ
blJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0KikgZmluYWw7CiAgICAgICAgIHZvaWQg
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3QgSW1hZ2UmKSBmaW5hbDsKIApAQCAtMTY0LDYg
KzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJik7CiAgICAg
Ym9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEoY29uc3QgSW1hZ2UmKTsKICAgICB2b2lkIGltYWdl
RnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJ
bnRSZWN0KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0
YXR1czo6SW52YWxpZCk7CisgICAgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25z
dCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiAgICAgdm9pZCBjaGFuZ2VkSW5SZWN0
KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCopOwogICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoY29uc3QgSW1hZ2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2VDbGllbnQuaAppbmRleCBiYTY0NDViN2VhN2VkOTYzZDYxYmZmMzBmMjhh
OWE0ZWQ3ZjljMTM2Li4yMWFhZjA3ZjFiYjVkNTNiOTI5NDIyNGI2NDQzNzJhYmQzNTJiMDEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaApA
QCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNp
bmNsdWRlICJJbWFnZVR5cGVzLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAvLyBDYWxs
ZWQgd2hlbiBhIG5ldyBkZWNvZGVkIGZyYW1lIGZvciBhIGxhcmdlIGltYWdlIGlzIGF2YWlsYWJs
ZSBvciB3aGVuIGFuIGFuaW1hdGVkIGltYWdlIGlzIHJlYWR5IHRvIGFkdmFuY2UgdG8gdGhlIG5l
eHQgZnJhbWUuCiAgICAgdmlydHVhbCBWaXNpYmxlSW5WaWV3cG9ydFN0YXRlIGltYWdlRnJhbWVB
dmFpbGFibGUoQ2FjaGVkSW1hZ2UmIGltYWdlLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJ
bnRSZWN0KiBjaGFuZ2VSZWN0KSB7IGltYWdlQ2hhbmdlZCgmaW1hZ2UsIGNoYW5nZVJlY3QpOyBy
ZXR1cm4gVmlzaWJsZUluVmlld3BvcnRTdGF0ZTo6Tm87IH0KIAorICAgIHZpcnR1YWwgdm9pZCBu
YXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25zdCBOYXRpdmVJbWFnZVB0ciYpIHsgfQorCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUNhY2hlZEltYWdlQ2xpZW50KENhY2hlZEltYWdlJikg
eyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JJbWFnZShD
YWNoZWRJbWFnZSYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aAppbmRleCBhMTQxM2M2ZjY3OWIxNWU5MDdjN2I2Y2ZhNzYwNWYyNzBlMmY5NTU3Li41NzQ0N2Zm
MWFmMDQ2YzY0OGU4NGQ5NzZhYmYwMDYxMGJmMDAyOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjQsNyArMjQsNiBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNo
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXgg
YjQ3NmEzNWI4MmQ5MzcwOGQzYjBmMmI0ZDFhNmQyNTQ4MTJkMGUxMS4uMGFmNmMzZDhiMjMxODUx
Nzc4OWIwNzIzNDVmOTY3NDNiMWQ3ZjZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkJpdG1hcEltYWdlLmgiCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHZW9t
ZXRyeVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgpAQCAtMjA0LDYgKzIw
NSwyNCBAQCBib29sIEJpdG1hcEltYWdlOjpub3RTb2xpZENvbG9yKCkKIH0KICNlbmRpZiAvLyBB
U1NFUlRfRU5BQkxFRAogCitzdGF0aWMgaW5saW5lIHZvaWQgZHJhd05hdGl2ZUltYWdlKEJpdG1h
cEltYWdlJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4g
dXMgYW4gaW1hZ2UgdGhhdCBpcyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgorICAgIEludFNpemUgc3Vi
c2FtcGxlZEltYWdlU2l6ZSA9IG5hdGl2ZUltYWdlU2l6ZShuYXRpdmVJbWFnZSk7CisgICAgaWYg
KG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdodCgpKQorICAgICAgICBzdWJz
YW1wbGVkSW1hZ2VTaXplID0gc3Vic2FtcGxlZEltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwor
CisgICAgLy8gc3JjUmVjdCBpcyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxl
ZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBtYXAgaXQgdG8gdGhlIHN1YnNhbXBsZWQgaW1hZ2UuCisg
ICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CisgICAgaWYgKHN1YnNhbXBs
ZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKKyAgICAgICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVj
dChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBzcmNTaXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2Ft
cGxlZEltYWdlU2l6ZSkpOworCisgICAgaWYgKGltYWdlLmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAg
ICAgaW1hZ2UuaW1hZ2VPYnNlcnZlcigpLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQs
IG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNS
ZWN0LCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdl
KG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNS
ZWN0LCBvcHRpb25zKTsKK30KKwogSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgpIHx8IHNyY1JlY3QuaXNFbXB0eSgpKQpAQCAt
MjkyLDkgKzMxMSw5IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgYXV0byBvcmllbnRh
dGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24oKTsKICAgICBpZiAob3JpZW50YXRpb24gPT0gSW1h
Z2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSB7CiAgICAgICAgIG9yaWVudGF0aW9uID0gZnJhbWVP
cmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwotICAgICAgICBkcmF3TmF0aXZlSW1h
Z2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50
YXRpb24pKSwgeyBvcHRpb25zLCBvcmllbnRhdGlvbiB9KTsKKyAgICAgICAgZHJhd05hdGl2ZUlt
YWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6
ZShvcmllbnRhdGlvbikpLCB7IG9wdGlvbnMsIG9yaWVudGF0aW9uIH0pOwogICAgIH0gZWxzZQot
ICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwgb3B0aW9ucyk7CisgICAgICAgIGRyYXdOYXRp
dmVJbWFnZSgqdGhpcywgY29udGV4dCwgaW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXpl
KHNpemUob3JpZW50YXRpb24pKSwgb3B0aW9ucyk7CiAKICAgICBtX2N1cnJlbnRGcmFtZURlY29k
aW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwog
CkBAIC0zNzksNyArMzk4LDcgQEAgU3Vic2FtcGxpbmdMZXZlbCBCaXRtYXBJbWFnZTo6c3Vic2Ft
cGxpbmdMZXZlbEZvclNjYWxlRmFjdG9yKEdyYXBoaWNzQ29udGV4dCYgY28KIHsKICNpZiBVU0Uo
Q0cpCiAgICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBsZWQgaW1hZ2VzIGZvciBkcmF3aW5nIGludG8g
UERGIGNvbnRleHRzLgotICAgIGlmIChDR0NvbnRleHRHZXRUeXBlKGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCkpID09IGtDR0NvbnRleHRUeXBlUERGKQorICAgIGlmIChjb250ZXh0Lmhhc1BsYXRm
b3JtQ29udGV4dCgpICYmIENHQ29udGV4dEdldFR5cGUoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCiAgICAgICAgIHJldHVybiBTdWJzYW1wbGluZ0xldmVs
OjpEZWZhdWx0OwogCiAgICAgZmxvYXQgc2NhbGUgPSBzdGQ6Om1pbihmbG9hdCgxKSwgc3RkOjpt
YXgoc2NhbGVGYWN0b3Iud2lkdGgoKSwgc2NhbGVGYWN0b3IuaGVpZ2h0KCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmlu
ZGV4IDU1NWNjNjY0NTcwYTM0YmVhOTk1ZGVjY2Q1MmFjODYxZjVmZTMxNDQuLjcxMTNkN2Y2NGUx
YTc2Mjg5ODFmYzA5OTZmZDY4ZDg2ODUyNmIzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzMxLDYgKzczMSwx
OSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnRDYXNjYWRl
JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAgICAgYmlkaVJ1bnMuY2xlYXIoKTsKIH0KIAor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UpCit7CisgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1faW1wbCkgeworICAg
ICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3B0aW9ucywgY2FjaGVkSW1hZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgcGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQogewogICAg
IHJldHVybiBkcmF3SW1hZ2UoaW1hZ2UsIEZsb2F0UmVjdChkZXN0aW5hdGlvbiwgaW1hZ2Uuc2l6
ZSgpKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2Uuc2l6ZSgpKSwgaW1hZ2VQYWludGlu
Z09wdGlvbnMpOwpAQCAtNzQ3LDcgKzc2MCw3IEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluCiAg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3Vs
dDo6RGlkTm90aGluZzsKIAotICAgIGlmIChtX2ltcGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFn
ZS5pc1BERkRvY3VtZW50SW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdl
KGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIAogICAgIEludGVycG9sYXRp
b25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhp
cywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKQEAgLTc1OSw3ICs3NzIsNyBAQCBJ
bWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICBpZiAobV9pbXBs
KQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQREZEb2N1bWVudEltYWdlKCkpCiAgICAgICAg
IHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlv
bnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CkBAIC03NzIsNyArNzg1LDcgQEAgSW1hZ2VEcmF3
UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGQKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBp
ZiAobV9pbXBsICYmIGltYWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKQogICAgICAgICByZXR1cm4g
bV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNj
YWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlvbnMpOwogCiAgICAgaWYgKGhSdWxlID09IElt
YWdlOjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUpIHsKQEAgLTc5
OSw2ICs4MTIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aQogICAgIGlmIChwYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT5k
cmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpKQorICAg
ICAgICByZXR1cm47CisKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJw
b2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1
YWxpdHkoKSk7CiAgICAgaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0
aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IGRiNGMwMDJlY2NkMjJlNmZlOTQwODdjNjlmOTEyOGQ0Mjg5OTI3
YmYuLjI1MTlkN2JlYTE4MjE5ODdmNzFiYTcwZjQ0MWYyZmZiMDVkMmJmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC04
Niw2ICs4Niw3IEBAIGNsYXNzIEdseXBoQnVmZmVyOwogI2VuZGlmCiAKIGNsYXNzIEFmZmluZVRy
YW5zZm9ybTsKK2NsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKIGNs
YXNzIEdyYWRpZW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKQEAgLTMzNCwxMCArMzM1
LDYgQEAgcHVibGljOgogCiAgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCi0jaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQp
IHx8IFVTRShDQUlSTykKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmID0geyB9KTsKLSNlbmRpZgotCiAjaWYgVVNFKENHKSB8fCBVU0UoRElS
RUNUMkQpCiAgICAgdm9pZCBhcHBseVN0cm9rZVBhdHRlcm4oKTsKICAgICB2b2lkIGFwcGx5Rmls
bFBhdHRlcm4oKTsKQEAgLTM4Myw2ICszODAsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsK
IAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IH0sIENhY2hlZEltYWdlKiA9IG51bGxwdHIpOworCiAgICAgV0VCQ09SRV9FWFBPUlQg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3Rp
bmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSB9KTsKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0lt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAgICAgSW1h
Z2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRp
b24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
PSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKQEAgLTY1Miw2ICs2NTEsOCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBwbGF0Zm9ybUZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKTsKIAorICAgIHZvaWQgcGxhdGZvcm1EcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisKICAgICBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3Vu
ZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChjb25zdCBGbG9hdFJlY3QmLCBib29sIHByaW50
aW5nLCBDb2xvciYpOwogCiAgICAgZmxvYXQgZGFzaGVkTGluZUNvcm5lcldpZHRoRm9yU3Ryb2tl
V2lkdGgoZmxvYXQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4OTZj
ODYxNjBkNzExYTMwMWZjZTU4MWEzZmNlN2JhZmZiZjcwNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAK
QEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEV4
dHJhcy5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNp
bmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlRleHRSdW4uaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29s
b3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBhdXRvIHJlY3RDb3JuZXJQ
b2ludCA9IFsmXShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFJlY3RDb3JuZXIgY29ybmVyKSB7Cisg
ICAgICAgIGF1dG8gcG9pbnQgPSByZWN0LmxvY2F0aW9uKCk7CisgICAgICAgIGlmIChjb3JuZXIg
PT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAg
ICBwb2ludC5tb3ZlKHJlY3Qud2lkdGgoKSwgMCk7CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVj
dEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkKKyAgICAgICAgICAgIHBv
aW50Lm1vdmUoMCwgcmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBwb2ludDsKKyAgICB9
OworCisgICAgYXV0byByZWN0Q29ybmVyUmVjdCA9IFsmXShjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IFJlY3RDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9hdFNpemUgc2l6ZSkgeworICAgICAgICBhdXRv
IHBvaW50ID0gcmVjdENvcm5lclBvaW50KHJlY3QsIGNvcm5lcik7CisgICAgICAgIGlmIChjb3Ju
ZXIgPT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAg
ICAgICBwb2ludC5tb3ZlKC1zaXplLndpZHRoKCksIDApOworICAgICAgICBpZiAoY29ybmVyID09
IFJlY3RCb3R0b21MZWZ0IHx8IGNvcm5lciA9PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAg
ICBwb2ludC5tb3ZlKDAsIC1zaXplLmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVj
dChwb2ludCwgc2l6ZSk7CisgICAgfTsKKworICAgIGF1dG8gb3Bwb3NpdGVIb3Jpem9udGFsID0g
W10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlY3RD
b3JuZXI+KGNvcm5lciBeIDB4MSk7CisgICAgfTsKKworICAgIGF1dG8gb3Bwb3NpdGVWZXJ0aWNh
bCA9IFtdKFJlY3RDb3JuZXIgY29ybmVyKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZWN0Q29ybmVyPihjb3JuZXIgXiAweDIpOworICAgIH07CisKKyAgICBhdXRvIGRyYXdCYWRnZVJl
Y3QgPSBbJl0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJhZGdl
c1JlY3QsIFJlY3RDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9hdFNpemUmIGJhZGdlU2l6ZSwgY29u
c3QgRmxvYXRTaXplJiBjdXRvZmZTaXplKSB7CisKKyAgICAgICAgRmxvYXRSZWN0IGJhZGdlUmVj
dCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdlc1JlY3QsIGNvcm5lciwgYmFkZ2VTaXplKTsKKyAgICAg
ICAgRmxvYXRSZWN0IGN1dG9mZlJlY3QgPSByZWN0Q29ybmVyUmVjdChiYWRnZXNSZWN0LCBjb3Ju
ZXIsIGN1dG9mZlNpemUpOworCisgICAgICAgIFBhdGggcGF0aDsKKworICAgICAgICBjb3JuZXIg
PSBvcHBvc2l0ZUhvcml6b250YWwoY29ybmVyKTsKKyAgICAgICAgcGF0aC5tb3ZlVG8ocmVjdENv
cm5lclBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhy
ZWN0Q29ybmVyUG9pbnQoYmFkZ2VSZWN0LCBjb3JuZXIpKTsKKworICAgICAgICBjb3JuZXIgPSBv
cHBvc2l0ZVZlcnRpY2FsKGNvcm5lcik7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHJlY3RDb3Ju
ZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworCisgICAgICAgIGNvcm5lciA9IG9wcG9zaXRl
SG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9p
bnQoYmFkZ2VSZWN0LCBjb3JuZXIpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocmVjdENvcm5l
clBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikpOworCisgICAgICAgIHBhdGguY2xvc2VTdWJwYXRo
KCk7CisKKyAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IpOworICAgICAgICBjb250
ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAgICByZXR1cm4gYmFkZ2VSZWN0OworICAgIH07CisK
KyAgICBjb25zdCBmbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IDE7CisgICAgY29uc3QgZmxvYXQgaG9y
aXpvbnRhbE1hcmdpbiA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgZm9udFNpemUgPSAxMDsKKyAg
ICBjb25zdCBGbG9hdFNpemUgY3V0b2ZmU2l6ZSgzLCAzKTsKKworICAgIEZvbnRDYXNjYWRlRGVz
Y3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1p
bHkoIkhlbHZldGljYSIpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGZv
bnRTaXplKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsK
KworICAgIEZvbnRDYXNjYWRlIGNhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKKyAg
ICBjYXNjYWRlLnVwZGF0ZShudWxscHRyKTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29s
b3IpOworICAgIGNvbnRleHQuc2V0U2hvdWxkQW50aWFsaWFzKGZhbHNlKTsKKyAgICBjb250ZXh0
LnN0cm9rZVJlY3QoYm9yZGVyUmVjdCwgMC41KTsKKworICAgIEZsb2F0UmVjdCBiYWRnZXNSZWN0
ID0gYm9yZGVyUmVjdDsKKyAgICBiYWRnZXNSZWN0LmluZmxhdGUoLTEpOworCisgICAgZm9yIChh
dXRvIGJhZGdlIDogYmFkZ2VzKSB7CisgICAgICAgIFRleHRSdW4gdGV4dFJ1bihiYWRnZS50ZXh0
KTsKKyAgICAgICAgZmxvYXQgdGV4dFdpZHRoID0gY2FzY2FkZS53aWR0aCh0ZXh0UnVuKTsKKyAg
ICAgICAgRmxvYXRTaXplIGJhZGdlU2l6ZShob3Jpem9udGFsTWFyZ2luICogMiArIHRleHRXaWR0
aCwgdmVydGljYWxNYXJnaW4gKiAyICsgZm9udFNpemUpOworCisgICAgICAgIGF1dG8gYmFkZ2VS
ZWN0ID0gZHJhd0JhZGdlUmVjdChjb250ZXh0LCBiYWRnZXNSZWN0LCBiYWRnZS5jb3JuZXIsIGJh
ZGdlU2l6ZSwgY3V0b2ZmU2l6ZSk7CisKKyAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFk
Z2UuY29sb3IpOworICAgICAgICBjb250ZXh0LmRyYXdUZXh0KGNhc2NhZGUsIHRleHRSdW4sIEZs
b2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIGhvcml6b250YWxNYXJnaW4sIGJhZGdlUmVjdC55KCkg
KyBmb250U2l6ZSkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRF
eHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MDI0ODQ5NGY1ZDY0NWVkNGFkMDMzNzM3MjI1MmEwOGIxMDEx
OTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb2xvcjsKK2Ns
YXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEZsb2F0UmVjdDsKKworZW51bSBSZWN0Q29ybmVy
IHsKKyAgICBSZWN0VG9wTGVmdCAgICAgPSAweDAwLAorICAgIFJlY3RUb3BSaWdodCAgICA9IDB4
MDEsCisgICAgUmVjdEJvdHRvbUxlZnQgID0gMHgwMiwKKyAgICBSZWN0Qm90dG9tUmlnaHQgPSAw
eDAzLAorfTsKKworc3RydWN0IEJhZGdlIHsKKyAgICBSZWN0Q29ybmVyIGNvcm5lcjsKKyAgICBD
b2xvciBjb2xvcjsKKyAgICBTdHJpbmcgdGV4dDsKK307CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQg
ZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBib3Jk
ZXJSZWN0LCBjb25zdCBDb2xvciYsIGNvbnN0IFZlY3RvcjxCYWRnZT4mKTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDNkNTA3NWJjZWRjYmY1MDI4NzFjZDU1MDkz
NWY1MWFjOGRiMmY1NWMuLmY0NGQ5ZTU0M2EzOTQ0MDM5ZmU5OGZlMzRjMDgzMjk1OTM0YzI4ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRJbXBsLmgKQEAgLTcyLDkgKzcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW1h
Z2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRp
b24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
ID0gMDsKICAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwg
Y29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rvciwg
SW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgPSAwOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0Uo
RElSRUNUMkQpCi0gICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSA9IDA7Ci0jZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYs
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRyYXdSZWN0
KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggZDM5ZmVhYTgyZjM3MWNmOGFhZjc2
ZDI3ZjMzNTczZjM1MTk4ZDA4OS4uZWE0ZDYzYTk0ZWQ2Y2YwMjIzZmQ5ZWEwNTA4OGEzN2JkNzEy
ZDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0zMiw4
ICszMiw5IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBl
cy5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50
aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKLSNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpA
QCAtNzIsNyArNzMsNiBAQCBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotc3RydWN0
IEltYWdlUGFpbnRpbmdPcHRpb25zOwogc3RydWN0IExlbmd0aDsKIAogLy8gVGhpcyBjbGFzcyBn
ZXRzIG5vdGlmaWVkIHdoZW4gYW4gaW1hZ2UgY3JlYXRlcyBvciBkZXN0cm95cyBkZWNvZGVkIGZy
YW1lcyBhbmQgd2hlbiBpdCBhZHZhbmNlcyBhbmltYXRpb24gZnJhbWVzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDE0NjQ5MmM0YThk
ZjkzNWNhZjk0YjlmYjk1NTkwOWFhZDFjYmFmMC4uZGJlMDI1ZWU5ZTFhNDQwZjAyZWE5NjY0YTM0
Zjk4YTBmNmM1MWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5h
bWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNzIERyYXdpbmdD
b250ZXh0OwogfQogCkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgRGlz
cGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0KiBkcmF3aW5nQ29udGV4dCgpIHsgcmV0dXJuIG51bGxw
dHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYpIHsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFNpemUgbG9naWNhbFNpemUoKSBjb25zdCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCmluZGV4IGMwMTBhMGYwY2ZjZDhjNWU3YWI2Yzk0YzVjM2MzNmY0ODM4NmQwMWYu
LjU4ZmMxNDgzNmQ5MmFhMjAwMTlmMjBmZWVkYzU1NzFlOWFiNWU5NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBA
IC0zMSwxMyArMzEsMTQgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKICNpbmNsdWRl
ICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRl
ICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7CiBjbGFzcyBIb3N0V2luZG93OwogY2xh
c3MgSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9i
c2VydmVyLmgKaW5kZXggOGIwODllNTk0YzFhZmNjZWU0ZmZiNTA3MTE1OTc4NzQ2OTVjYjJkZS4u
YjRkNzEwYWM2NzMwYzg1ZGZlZWE3NWVhYjBmM2RiNjY3NmY2MGYyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaApAQCAtNDUsMTAgKzQ1
LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlZERhdGFTdGF0dXNDaGFuZ2Vk
KGNvbnN0IEltYWdlJiwgRW5jb2RlZERhdGFTdGF0dXMpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlJiwgbG9uZyBsb25nIGRlbHRhKSA9IDA7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJh
dyhjb25zdCBJbWFnZSYpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5EZXN0cm95RGVjb2Rl
ZERhdGEoY29uc3QgSW1hZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltYWdlRnJhbWVBdmFp
bGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBj
aGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52
YWxpZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChj
b25zdCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJikgPSAwOworCiAgICAgdmlydHVhbCB2
b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0
ID0gbnVsbHB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZShjb25zdCBJbWFnZSYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggNzc1MDMyMjM5YTVkNWFiYWE3NjNmN2EyNjNl
ZDdjYjI0NTk4MjY1Mi4uNDU1MTVjNTlhMWZmMjg0Y2Q4ZDI4MDM4MzdiMDg1YjUwMjJkNmMwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cApAQCAtMTMwLDggKzEzMCwxMCBAQCB2b2lkIEltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERh
dGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNsdWRlRnJhbWUpCiAgICAgQVNTRVJUKGZy
YW1lQ291bnQgPD0gbV9mcmFtZXMuc2l6ZSgpKTsKIAogICAgIGZvciAoc2l6ZV90IGluZGV4ID0g
MDsgaW5kZXggPCBmcmFtZUNvdW50OyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChpbmRleCA9PSBl
eGNsdWRlRnJhbWUpCisgICAgICAgIGlmIChpbmRleCA9PSBleGNsdWRlRnJhbWUgfHwgIW1fZnJh
bWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKQogICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChtX2ltYWdlICYmIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG1f
aW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKS0+bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKm1faW1h
Z2UsIG1fZnJhbWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKTsKICAgICAgICAgZGVjb2RlZFNpemUg
Kz0gbV9mcmFtZXNbaW5kZXhdLmNsZWFySW1hZ2UoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCmluZGV4IDZiMmQ4MWUzNWIwOGNm
NzRmNGYzNjFhZWJjNzRmMzEyOWM3ZDliN2YuLjQzMzc4NzkwYjIyOTFlYTAwYjEyMDhlMGE1Y2Jj
OTcyOWY3NzFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENvcHlyaWdodCAo
QykgMjAxMiBDb21wYW55IDEwMCBJbmMuCiAgKgpAQCAtMjcsNTIgKzI3LDE2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKLQotI2lmIFVTRShD
RykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBD
R0ltYWdlUmVmOwotI2VsaWYgVVNFKENBSVJPKQotI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCi0j
ZWxpZiBVU0UoV0lOR0RJKQotI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgotI2VuZGlmCi0KLSNp
ZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSA8ZDJkMS5oPgot
I2luY2x1ZGUgPHdpbmNvZGVjLmg+Ci0jZW5kaWYKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9yOwotY2xhc3MgRmxvYXRSZWN0
OwogY2xhc3MgSW50U2l6ZTsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLQotI2lmIFVTRShDRykK
LXR5cGVkZWYgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE5hdGl2ZUltYWdlUHRyOwotI2VsaWYgVVNF
KERJUkVDVDJEKQotdHlwZWRlZiBDT01QdHI8SUQyRDFCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwot
I2VsaWYgVVNFKENBSVJPKQotdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJ
bWFnZVB0cjsKLSNlbGlmIFVTRShXSU5HREkpCi10eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+
IE5hdGl2ZUltYWdlUHRyOwotI2VuZGlmCiAKIFdFQkNPUkVfRVhQT1JUIEludFNpemUgbmF0aXZl
SW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUltYWdlSGFzQWxw
aGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxT
b2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7Ci0KLXZvaWQgZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBJ
bnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEludFJlY3QmIHNvdXJjZSk7Ci0KIHZvaWQgY2xl
YXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwotCi1jbGFzcyBO
YXRpdmVJbWFnZUhhbmRsZSB7Ci1wdWJsaWM6Ci0gICAgTmF0aXZlSW1hZ2VQdHIgaW1hZ2U7Ci19
OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2VQdHIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlUHRyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q3N2E4OThkMzk4NzM2NDExMTc0ZjE5Zjc1MTQwNzFk
MDdjOTU4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hdGl2ZUltYWdlUHRyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShDRykK
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0lt
YWdlUmVmOworI2VsaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCisjZWxp
ZiBVU0UoV0lOR0RJKQorI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworI2lmIFVTRShDRykKK3R5cGVkZWYgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKERJUkVDVDJEKQordHlwZWRlZiBDT01QdHI8
SUQyRDFCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKENBSVJPKQordHlwZWRlZiBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJbWFnZVB0cjsKKyNlbGlmIFVTRShXSU5HREkp
Cit0eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOworI2VuZGlmCisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmNTQyZGZlYzg0N2FiYzM3MWFh
MmYxZThlNGI4ZGQ5ZmIxMTBlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCBhMTA0NjU2
Y2I1ZDVkZGVhMDMyMWRhYTQ0YTA0NDY1MTc1MDg4ZTRmLi4yYWI5Y2UzYmJhMjVlYTU0ODU0NDhm
MzRhYTc3N2FmZTA0ZTczNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0x
MjMsMTYgKzEyMywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCiAgICAgQ2Fpcm86OmRyYXdSZWN0
KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgYm9yZGVyVGhpY2tuZXNzLCBzdGF0ZS5maWxsQ29s
b3IsIHN0YXRlLnN0cm9rZVN0eWxlLCBzdGF0ZS5zdHJva2VDb2xvcik7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdl
LCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybURyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBs
LT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
dGlvbnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQVNTRVJUKGhhc1BsYXRmb3Jt
Q29udGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7CiAgICAgQ2Fpcm86
OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBkZXN0UmVj
dCwgc3JjUmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5IH0s
IHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IGI2NWI0ZDY0NDA2YmViNzZjNDA5ZDNlOGM2NTQ5
NzVjYTlmN2ViNjMuLmZlOTA0OTUyN2FmZWNlZGIxN2I4MWY2MmM0NmU4ZjI3MWRiODI3NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcApAQCAtMjc5LDEzICsyNzksMTkg
QEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1w
bDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRp
b24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdP
cHRpb25zKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRl
eHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2Us
IGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6ZSk7CiAgICAg
YXV0byYgc3RhdGUgPSBncmFwaGljc0NvbnRleHQoKS5zdGF0ZSgpOwogICAgIENhaXJvOjpkcmF3
TmF0aXZlSW1hZ2UobV9wbGF0Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3Jj
UmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5IH0sIHN0YXRl
LmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAorYm9vbCBHcmFwaGljc0Nv
bnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3sK
KyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdlRm9yQ3VycmVu
dEZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmluZGV4IGU1ZTIwNzQ4
YzZkNzYyMGYxMGNmMjE1NjYyOGVmN2UwYmU2MDFjN2IuLjJjMWM3MDE1NGMxZmE0NjYwNzJjZTcy
MmZmNjQzNjZmNWFlOTc5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCkBA
IC03NCw3ICs3NCw5IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmLCBJbWFnZTo6
VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYs
IGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwg
Q2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYs
IGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3Qm
LCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZWEzN2M3ODZlZjZkYjZl
NWFmZWI5MTc3OThmYTUzMWJmOThhYzg0ZC4uYzI5MmRiNDJjYzBmOWYwZjljNDdjNzhlZDY5YzJk
ODMzMWM5ODIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjgwLDE2ICsyODAsMTEgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBtX2RhdGEtPm1f
dXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybURyYXdOYXRp
dmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBp
ZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9pbXBs
KSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRl
c3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogI2lm
ICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwCmluZGV4IDVjYzVjMjA3YjQ0YTQ4MzViZTJlMDgw
MjhhM2E3MTA5NWE1NWUxZTAuLjQwMGQ2ZWYwYTQ1NzdkNWQ3Y2M1YmQ5Y2I2NDZhNWJhZGViZGFk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2
ZUltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05h
dGl2ZUltYWdlQ0cuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJDb2xvci5oIgog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5j
bHVkZSAiU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oIgpAQCAtNjksNDAgKzY4LDYgQEAgQ29sb3Ig
bmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlKQogICAgIHJldHVybiBjbGFtcFRvQ29tcG9uZW50Qnl0ZXM8U1JHQkE+KHBpeGVsWzBdICog
MjU1IC8gcGl4ZWxbM10sIHBpeGVsWzFdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzJdICogMjU1
IC8gcGl4ZWxbM10sIHBpeGVsWzNdKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6
ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCi17Ci0gICAg
Ly8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBpcyBzbWFsbGVy
IHRoYW4gc2l6ZSgpLgotICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6ZSA9IG5hdGl2ZUlt
YWdlU2l6ZShpbWFnZSk7Ci0gICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhB
c0hlaWdodCgpKQotICAgICAgICBzdWJzYW1wbGVkSW1hZ2VTaXplID0gc3Vic2FtcGxlZEltYWdl
U2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotCi0gICAgLy8gc3JjUmVjdCBpcyBpbiB0aGUgY29vcmRp
bmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxlZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBtYXAgaXQgdG8g
dGhlIHN1YnNhbXBsZWQgaW1hZ2UuCi0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNy
Y1JlY3Q7Ci0gICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKLSAgICAgICAg
YWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBzcmNTaXpl
KSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOwotCi0gICAgY29udGV4dC5k
cmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIG9wdGlvbnMpOwotfQotCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2Nh
bGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291
cmNlKQotewotICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpOwotICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKLQotICAgIENHQ29u
dGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RpbmF0aW9uLngoKSwgZGVz
dGluYXRpb24ueSgpLCBzb3VyY2Uud2lkdGgoKSwgc291cmNlLmhlaWdodCgpKSk7Ci0gICAgQ0dD
b250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7Ci0KLSAgICBDR0Zsb2F0IGltYWdlSGVp
Z2h0ID0gQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3RvcjsKLSAgICBD
R0Zsb2F0IGltYWdlV2lkdGggPSBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpIC8gc2NhbGVG
YWN0b3I7Ci0KLSAgICBDR0Zsb2F0IGRlc3RYID0gZGVzdGluYXRpb24ueCgpIC0gc291cmNlLngo
KTsKLSAgICBDR0Zsb2F0IGRlc3RZID0gLWltYWdlSGVpZ2h0IC0gZGVzdGluYXRpb24ueSgpICsg
c291cmNlLnkoKTsKLQotICAgIENHQ29udGV4dERyYXdJbWFnZShjZ0NvbnRleHQsIENHUmVjdE1h
a2UoZGVzdFgsIGRlc3RZLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCksIGltYWdlLmdldCgpKTsK
LQotICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKLX0KLQogdm9pZCBjbGVh
ck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKIHsKICNp
ZiBDQUNIRV9TVUJJTUFHRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKaW5kZXggYTYzODM2OTIxZDhk
ZmNhMTY2MzhiZDg2YWE5MzNlZmE3ZTI2NGQ4MS4uYjM1ODkzYzU4MmU0MTdjMmJiMzM1MmE1MTZl
M2NiNTlmZTAyNDNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKQEAgLTYyLDggKzYyLDkgQEAg
ZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIERyYXdJbWFnZSwKICAgICBEcmF3
VGlsZWRJbWFnZSwKICAgICBEcmF3VGlsZWRTY2FsZWRJbWFnZSwKLSNpZiBVU0UoQ0cpIHx8IFVT
RShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIERyYXdOYXRpdmVJbWFnZSwKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisgICAgRHJhd0ltYWdlQnVmZmVyLAogI2VuZGlmCiAgICAgRHJhd1Bh
dHRlcm4sCiAgICAgRHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMjNjYzA3ZThhZTQ0MmJkY2VhMGQzNjc0YTVhODU1MWM2
NWNmZGM4Ny4uZDQ2MTdkMzUxNmY0ZjNlNTFkNzVkNjQ0MzRhNmEzOTQ1N2EwMDAxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcApAQCAtMzMs
OSArMzMsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsK
IAotRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3JkZXI6Ok9ic2Vy
dmVyKiBvYnNlcnZlcikKK0RyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dChjb25zdCBGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIFJl
Y29yZGVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2NvbnRleHQoWyZdKEdyYXBoaWNz
Q29udGV4dCYgZGlzcGxheUxpc3RDb250ZXh0KSB7Ci0gICAgICAgIHJldHVybiBtYWtlVW5pcXVl
PFJlY29yZGVyPihkaXNwbGF5TGlzdENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgb2Jz
ZXJ2ZXIpOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZWNvcmRlcj4oZGlzcGxheUxpc3RD
b250ZXh0LCBtX2Rpc3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3Qo
eyB9LCBsb2dpY2FsU2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKTsKICAgICB9KQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKaW5kZXggN2I2
NzNmMzJhZDgxNWE1MDA4MWI3ZTdhYjEwODEzMTcxN2ZkZTU0My4uMjJlZDI1NmU4MGFkMjkzYTA1
MjA2OWI3NDMwODhhMTM1MWY0N2NjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3aW5nQ29udGV4dC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBEaXNwbGF5TGlz
dCB7CiBjbGFzcyBEcmF3aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgRHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNID0geyB9
LCBSZWNvcmRlcjo6T2JzZXJ2ZXIqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJh
d2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBpbml0aWFsQ1RNID0geyB9LCBSZWNvcmRlcjo6RGVsZWdhdGUqID0gbnVsbHB0cik7
CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PERyYXdpbmdDb250ZXh0Jj4oKnRoaXMpLm1fY29udGV4dDsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIFJlY29yZGVyJiByZWNvcmRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdElt
YWdlQnVmZmVyLmgKaW5kZXggNmZkOTEyZGZiOGZlMTFjMDk4ZGQ2MTI2YThjODc4YWM2YmE3YWUw
Mi4uMzI1OTllMDYyZDdjZjU5ZDFkYzJlYWQwMWU3NjBkNjZlM2Y3ZWMzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZWNvcmRlcjo6T2JzZXJ2ZXIgeworY2xhc3Mg
SW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewog
ICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxC
YWNrZW5kVHlwZT47CiAKIHB1YmxpYzoKQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJsaWM6CiAKICAg
ICBJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgZGF0YUJhY2tlbmQs
IGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZl
cihXVEZNb3ZlKGRhdGFCYWNrZW5kKSkKLSAgICAgICAgLCBtX2RyYXdpbmdDb250ZXh0KHNpemUs
IGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgdGhpcykKKyAgICAgICAgLCBtX2RyYXdp
bmdDb250ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSkKICAgICB7CiAg
ICAgfQogCi0gICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplKQotICAgICAgICA6
IG1fZHJhd2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RNKHNpemUpLCB0
aGlzKQorICAgIEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVjb3JkZXI6OkRl
bGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCisgICAgICAgIDogbV9kcmF3aW5nQ29udGV4dChz
aXplLCBpbml0aWFsRHJhd2luZ0NvbnRleHRDVE0oc2l6ZSksIGRlbGVnYXRlKQogICAgIHsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCAxOGQ3MGNmYmQy
NDA5ODU4Njg0NDlmYjM1OWE5Zjg1ZWJkZmQzNjM2Li5mMTVjNzcwZTFkYTRkNTFmNWZhNDY2MWU3
YzUwZDc0MDRmMzRhZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBA
IC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJJbWFn
ZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIFVTRShDRykKQEAg
LTEwNiw5ICsxMDUsMTEgQEAgc2l6ZV90IEl0ZW06OnNpemVJbkJ5dGVzKGNvbnN0IEl0ZW0mIGl0
ZW0pCiAgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1RpbGVkSW1hZ2U+KGl0ZW0p
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZToKICAgICAgICAgcmV0
dXJuIHNpemVvZihkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oaXRlbSkpOwotI2lmIFVT
RShDRykgfHwgVVNFKENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToK
ICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW0pKTsK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVm
ZmVyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdJbWFnZUJ1ZmZlcj4oaXRl
bSkpOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgICAgIHJl
dHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pKTsKQEAgLTcwMywzMiArNzA0
LDIyIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBEcmF3VGlsZWRTY2FsZWRJbWFnZSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLSNpZiBV
U0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotRHJhd05hdGl2ZUltYWdlOjpE
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK0RyYXdOYXRp
dmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlwZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZSkKLSNpZiBVU0Uo
Q0cpCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3RvcmUgYW4gaW1hZ2UgZm9yIENhaXJvLgogICAg
ICwgbV9pbWFnZShpbWFnZSkKLSNlbmRpZgogICAgICwgbV9pbWFnZVNpemUoaW1hZ2VTaXplKQog
ICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCiAgICAgLCBtX3NyY1JlY3Qoc3JjUmVj
dCkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewotI2lmICFVU0UoQ0cpCi0gICAgVU5VU0VE
X1BBUkFNKGltYWdlKTsKLSNlbmRpZgogfQogCiBEcmF3TmF0aXZlSW1hZ2U6On5EcmF3TmF0aXZl
SW1hZ2UoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0jaWYgVVNFKENHKQotICAgIGNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKG1faW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9z
cmNSZWN0LCBtX29wdGlvbnMpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7Ci0j
ZW5kaWYKKyAgICBBU1NFUlQobmF0aXZlSW1hZ2VQdHIoKSk7CisgICAgY29udGV4dC5kcmF3TmF0
aXZlSW1hZ2UobmF0aXZlSW1hZ2VQdHIoKSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0
LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0pCkBAIC03Mzks
NiArNzMwLDMzIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0pCiAgICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0
LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKICAgICByZXR1cm4gdHM7CiB9CisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCitEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcihS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRy
YXdJbWFnZUJ1ZmZlcikKKyAgICAsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKKyAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RSZWN0KQorICAg
ICwgbV9zcmNSZWN0KHNyY1JlY3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sKK30KKwor
RHJhd0ltYWdlQnVmZmVyOjp+RHJhd0ltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OworCit2b2lkIERy
YXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sKKyAgICAvLyBT
aG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVsZWdhdGUuCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEcmF3SW1hZ2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMgPDwgc3RhdGljX2Nhc3Q8Y29u
c3QgRHJhd2luZ0l0ZW0mPihpdGVtKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInJlbW90ZS1yZXNv
dXJjZS1pZGVudGlmaWVyIiwgaXRlbS5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKSk7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtcmVjdCIsIGl0ZW0uc291cmNlKCkpOworICAgIHRzLmR1
bXBQcm9wZXJ0eSgiZGVzdC1yZWN0IiwgaXRlbS5kZXN0aW5hdGlvblJlY3QoKSk7CisgICAgcmV0
dXJuIHRzOworfQogI2VuZGlmCiAKIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMpCkBAIC0xNDY5LDggKzE0ODcsOSBAQCBzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSXRlbVR5cGUmIHR5cGUpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd0ltYWdlOiB0cyA8PCAiZHJhdy1pbWFnZSI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOiB0cyA8PCAiZHJhdy10aWxlZC1pbWFnZSI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB0cyA8PCAiZHJh
dy10aWxlZC1zY2FsZWQtaW1hZ2UiOyBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykK
ICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHRzIDw8ICJkcmF3LW5hdGl2ZS1p
bWFnZSI7IGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3SW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWltYWdlLWJ1ZmZlciI7IGJyZWFrOwogI2Vu
ZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46IHRzIDw8ICJkcmF3LXBhdHRlcm4i
OyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDogdHMgPDwgImRyYXctcmVjdCI7
IGJyZWFrOwpAQCAtMTU3MSwxMCArMTU5MCwxMyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtJiBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdU
aWxlZFNjYWxlZEltYWdlOgogICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJ
bWFnZT4oaXRlbSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgdHMgPDwgZG93bmNh
c3Q8RHJhd05hdGl2ZUltYWdlPihpdGVtKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICAgICAg
dHMgPDwgZG93bmNhc3Q8RHJhd0ltYWdlQnVmZmVyPihpdGVtKTsKKyAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAgICAgdHMgPDwgZG93
bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
aW5kZXggY2I2ODRkMjNjZTc1YjRmYWI5ZWM0MTMxNjI3YWNkMzJkNjI0YWVkYi4uM2I2NGQzYmEz
NDA3NTQ2MDMxZWU5YmIwY2FhMzI3NjU5Zjk1NGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGF0dGVybi5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtMTQzMiwzMiArMTQzMyw1MiBA
QCBPcHRpb25hbDxSZWY8RHJhd1RpbGVkU2NhbGVkSW1hZ2U+PiBEcmF3VGlsZWRTY2FsZWRJbWFn
ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZQogICAgIHJldHVybiBEcmF3VGlsZWRTY2FsZWRJbWFn
ZTo6Y3JlYXRlKCppbWFnZUhhbmRsZS0+aW1hZ2UsICpkZXN0aW5hdGlvbiwgKnNvdXJjZSwgKnRp
bGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCAqaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQog
Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKIGNsYXNzIERyYXdO
YXRpdmVJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxEcmF3TmF0aXZlSW1hZ2U+IGNyZWF0ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBOYXRpdmVJbWFnZVR5cGUgPSBW
YXJpYW50PE5hdGl2ZUltYWdlUHRyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+OworCisgICAg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpIGNvbnN0
CisgICAgeworICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPihtX2ltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IHJldHVybiBXVEY6OmdldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+KG1faW1hZ2UpOworICAg
IH0KKworICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlUHRyKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxOYXRpdmVJbWFnZVB0cj4obV9pbWFn
ZSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0
PE5hdGl2ZUltYWdlUHRyPihtX2ltYWdlKTsKKyAgICB9CisjZWxzZQorICAgIHVzaW5nIE5hdGl2
ZUltYWdlVHlwZSA9IE5hdGl2ZUltYWdlUHRyOworCisgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZl
SW1hZ2VQdHIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlOyB9CisjZW5kaWYKKyAgICBzdGF0aWMg
UmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlVHlwZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd05hdGl2ZUltYWdl
KGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7CiAgICAgfQog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd05hdGl2ZUltYWdlKCk7CiAKKyAgICBG
bG9hdFNpemUgaW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNpemU7IH0KICAgICBG
bG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAgICAgRmxvYXRS
ZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9
CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9uczsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxS
ZWY8RHJhd05hdGl2ZUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25z
dCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgRHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlwZSYsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAKICAgICB2
b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgT3B0aW9u
YWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCi0jaWYgVVNFKENHKQotICAg
IE5hdGl2ZUltYWdlUHRyIG1faW1hZ2U7Ci0jZW5kaWYKKyAgICBOYXRpdmVJbWFnZVR5cGUgbV9p
bWFnZTsKICAgICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGlu
YXRpb25SZWN0OwogICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7CkBAIC0xNDY3LDEwICsxNDg4LDcg
QEAgcHJpdmF0ZToKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIERyYXdOYXRpdmVJbWFn
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0jaWYgVVNFKENHKQotICAgIE5h
dGl2ZUltYWdlSGFuZGxlIGhhbmRsZSB7IG1faW1hZ2UgfTsKLSAgICBlbmNvZGVyIDw8IGhhbmRs
ZTsKLSNlbmRpZgorICAgIGVuY29kZXIgPDwgbV9pbWFnZTsKICAgICBlbmNvZGVyIDw8IG1faW1h
Z2VTaXplOwogICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CiAgICAgZW5jb2RlciA8
PCBtX3NyY1JlY3Q7CkBAIC0xNDgwLDEyICsxNDk4LDEwIEBAIHZvaWQgRHJhd05hdGl2ZUltYWdl
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CiBPcHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gRHJhd05hdGl2ZUltYWdlOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKIHsKLSNpZiBVU0UoQ0cpCi0gICAgT3B0aW9uYWw8TmF0aXZlSW1h
Z2VIYW5kbGU+IGhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGhhbmRsZTsKLSAgICBpZiAoIWhhbmRs
ZSkKKyAgICBPcHRpb25hbDxOYXRpdmVJbWFnZVR5cGU+IGltYWdlOworICAgIGRlY29kZXIgPj4g
aW1hZ2U7CisgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSNl
bmRpZgogCiAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7CiAgICAgZGVjb2RlciA+
PiBpbWFnZVNpemU7CkBAIC0xNTA3LDE0ICsxNTIzLDc1IEBAIE9wdGlvbmFsPFJlZjxEcmF3TmF0
aXZlSW1hZ2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAg
IGlmICghb3B0aW9ucykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotI2lmIFVTRShD
RykKLSAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZSA9IGhhbmRsZS0+aW1hZ2U7Ci0jZWxzZQotICAg
IE5hdGl2ZUltYWdlUHRyIGltYWdlID0gbnVsbHB0cjsKLSNlbmRpZgotICAgIHJldHVybiBEcmF3
TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgKmltYWdlU2l6ZSwgKmRlc3RpbmF0aW9uUmVjdCwg
KnNyY1JlY3QsICpvcHRpb25zKTsKKyAgICByZXR1cm4gRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUo
KmltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb25SZWN0LCAqc3JjUmVjdCwgKm9wdGlvbnMp
OwogfQotI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitjbGFzcyBEcmF3SW1hZ2VC
dWZmZXIgOiBwdWJsaWMgRHJhd2luZ0l0ZW0geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RHJh
d0ltYWdlQnVmZmVyPiBjcmVhdGUoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0ltYWdlQnVmZmVyKHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpOworICAgIH0KKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdJbWFnZUJ1ZmZlcigpOworCisgICAgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisgICAgRmxvYXRSZWN0IHNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQorICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlv
blJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQorICAgIEltYWdlUGFp
bnRpbmdPcHRpb25zIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPERyYXdJbWFnZUJ1
ZmZlcj4+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQg
RHJhd0ltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJik7CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92
ZXJyaWRlOworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFw
aGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsg
fQorCisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyOworICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKKyAgICBGbG9hdFJlY3QgbV9z
cmNSZWN0OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKK307CisKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlbW90ZVJlc291cmNlSWRlbnRp
ZmllcjsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0OworICAgIGVuY29kZXIgPDwg
bV9zcmNSZWN0OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8UmVmPERyYXdJbWFnZUJ1ZmZlcj4+IERyYXdJbWFnZUJ1ZmZl
cjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFJl
Y3Q+IGRlc3RpbmF0aW9uOworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb247CisgICAgaWYgKCFk
ZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PEZsb2F0UmVjdD4gc291cmNlOworICAgIGRlY29kZXIgPj4gc291cmNlOworICAgIGlmICghc291
cmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8SW1hZ2VQ
YWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25zOworICAgIGlm
ICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBE
cmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZSgqcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCAqZGVzdGlu
YXRpb24sICpzb3VyY2UsICpvcHRpb25zKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKIGNsYXNzIERyYXdQYXR0ZXJuIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoK
QEAgLTI5NzMsMTAgKzMwNTAsMTMgQEAgdm9pZCBJdGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZToKICAgICAg
ICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oKnRoaXMpOwogICAg
ICAgICBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgZW5jb2RlciA8PCBk
b3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAg
ICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KCp0aGlzKTsKKyAgICAg
ICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAg
ICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3UGF0dGVybj4oKnRoaXMpOwpAQCAtMzE2NCwxMSAr
MzI0NCwxNSBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgICAgICBpZiAoYXV0byBpdGVtID0gRHJhd1RpbGVkU2NhbGVkSW1hZ2U6OmRlY29k
ZShkZWNvZGVyKSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRl
bT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVTRShD
QUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFn
ZToKICAgICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKGRlY29k
ZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZN
b3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAgICAgIGlmIChhdXRvIGl0ZW0g
PSBEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOworICAgICAgICBicmVh
azsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAgICAgICBpZiAo
YXV0byBpdGVtID0gRHJhd1BhdHRlcm46OmRlY29kZShkZWNvZGVyKSkKQEAgLTMzMjYsOCArMzQx
MCw5IEBAIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3R2x5cGhz
KQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJbWFnZSkKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRJbWFnZSkKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRTY2FsZWRJbWFn
ZSkKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElT
UExBWUxJU1RfSVRFTShEcmF3TmF0aXZlSW1hZ2UpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJbWFnZUJ1ZmZlcikK
ICNlbmRpZgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdQYXR0
ZXJuKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdSZWN0KQpA
QCAtMzM4OCw4ICszNDczLDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdJbWFnZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRy
YXdUaWxlZEltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1Rp
bGVkU2NhbGVkSW1hZ2UsCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1Qy
RCkKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZSwK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3SW1hZ2VCdWZmZXIsCiAjZW5kaWYKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkRyYXdQYXR0ZXJuLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5k
ZXggZGQzNWVmMWEyOGE5MDcxZGFlZjlhMGE4ZDc3ZDk4NDAxZWEwODAxZC4uOTU1NzVkMGY0MTRj
MmVkZTVmMTkxMDIwMDZlMzZmNWQ4NDRhNDc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1SZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBPYnNlcnZlciogb2JzZXJ2ZXIpCitSZWNvcmRl
cjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEZWxlZ2F0
ZSogZGVsZWdhdGUpCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQsIGluaXRpYWxD
bGlwLCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3Qp
Ci0gICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkK
IHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3Jk
aW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5k
KHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtNTIsMTUgKzUyLDE1IEBA
IFJlY29yZGVyOjp+UmVjb3JkZXIoKQogICAgIExPRyhEaXNwbGF5TGlzdHMsICJSZWNvcmRlZCBk
aXNwbGF5IGxpc3Q6XG4lcyIsIG1fZGlzcGxheUxpc3QuZGVzY3JpcHRpb24oKS5kYXRhKCkpOwog
fQogCi12b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiBpbWFnZURhdGEs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkK
K3ZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0
Rm9ybWF0LCBjb25zdCBJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3QgSW50UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0
Rm9ybWF0KQogewotICAgIGFwcGVuZEl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdl
RGF0YTo6Y3JlYXRlKGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRlc3RQb2ludCwg
ZGVzdEZvcm1hdCkpOworICAgIGFwcGVuZEl0ZW0oUHV0SW1hZ2VEYXRhOjpjcmVhdGUoaW5wdXRG
b3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KSk7CiB9CiAK
IHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mIGl0ZW0pCiB7Ci0gICAg
aWYgKG1fb2JzZXJ2ZXIpCi0gICAgICAgIG1fb2JzZXJ2ZXItPndpbGxBcHBlbmRJdGVtKGl0ZW0p
OworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT53aWxsQXBwZW5kSXRl
bShpdGVtKTsKIAogICAgIGlmIChpdGVtLmlzRHJhd2luZ0l0ZW0oKQogI2lmIFVTRShDRykKQEAg
LTEzMiwxMiArMTMyLDI5IEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAgICAgcmV0dXJuIElt
YWdlRHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwogfQogCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8p
IHx8IFVTRShESVJFQ1QyRCkKLXZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFn
ZSkKIHsKKyAgICBpZiAobV9kZWxlZ2F0ZSAmJiBjYWNoZWRJbWFnZSkgeworICAgICAgICBpZiAo
YXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbShpbWFnZSwg
aW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgKmNhY2hlZEltYWdlKSkgewor
ICAgICAgICAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChzdGF0aWNfcmVmZXJlbmNlX2Nh
c3Q8RHJhd2luZ0l0ZW0+KGl0ZW0ucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQogICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJh
d05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IG9wdGlvbnMpKTsKIH0KLSNlbmRpZgorCitib29sIFJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7
CisgICAgaWYgKCFtX2RlbGVnYXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
YXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpIHsKKyAgICAgICAgYXBwZW5kSXRlbUFuZFVw
ZGF0ZUV4dGVudChzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8RHJhd2luZ0l0ZW0+KGl0ZW0ucmVsZWFz
ZU5vbk51bGwoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDll
ZTFkMzkzOGYyMzJmM2YxOGQ5NzhhZjcxODcwMWQ4YmU0NjMwNzIuLmUxNDBiZTExZDdkNmE3NjY2
Nzk2MTU2OWQxNDVjNGUzMzg1YzNlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaApAQCAtMjgsMTIgKzI4LDE0IEBACiAjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIgLy8gRm9y
IEltYWdlOjpUaWxlUnVsZS4KKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24g
OiB1aW50OF90OworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3Mg
RmxvYXRSZWN0OwogY2xhc3MgR2x5cGhCdWZmZXI7CkBAIC01Myw4ICs1NSw4IEBAIGNsYXNzIFJl
Y29yZGVyIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEltcGwgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVyKTsKIHB1YmxpYzoK
LSAgICBjbGFzcyBPYnNlcnZlcjsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihHcmFwaGlj
c0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29u
c3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgT2JzZXJ2
ZXIqID0gbnVsbHB0cik7CisgICAgY2xhc3MgRGVsZWdhdGU7CisgICAgV0VCQ09SRV9FWFBPUlQg
UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgRGlzcGxheUxpc3QmLCBjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIERlbGVnYXRlKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgflJlY29yZGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dEltYWdlRGF0YShB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJbWFnZURhdGEmLCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11
bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwpAQCAtNjMsOSArNjUsMTEgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRlbT4mJik7CiAK
LSAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgY2xhc3MgRGVsZWdhdGUgewogICAgIHB1YmxpYzoK
LSAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KKyAgICAgICAgdmlydHVhbCB+RGVsZWdh
dGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCBSZWZQdHI8SXRlbT4gY3JlYXRlRHJhd0ltYWdlQnVm
ZmVySXRlbShJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgICAg
ICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJbWFnZSYpIHsg
cmV0dXJuIG51bGxwdHI7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxBcHBlbmRJdGVtKGNv
bnN0IEl0ZW0mKSB7IH07CiAgICAgfTsKIApAQCAtMTA0LDkgKzEwOCw5IEBAIHByaXZhdGU6CiAg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJj
ZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rvciwg
SW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8
IFVTRShESVJFQ1QyRCkKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKLSNlbmRpZgorCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0
aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgb3ZlcnJpZGU7CkBAIC0xODgsNyArMTkyLDcgQEAg
cHJpdmF0ZToKICAgICBDb250ZXh0U3RhdGUmIGN1cnJlbnRTdGF0ZSgpOwogCiAgICAgRGlzcGxh
eUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7CisgICAgRGVs
ZWdhdGUqIG1fZGVsZWdhdGU7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0
ZVN0YWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aAppbmRleCBmMzFkMzc1YjAyZGEwOTc5Mjg5YWNjMjAwZGQ4NjJmYWUxMzQxMDRiLi40YjVlM2U0
M2IwMzk2NGE1MWMyNzNlNWJlN2FlZGIwZGYxYWE5MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIK
KyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKaW5kZXggMThiNGY4ZGU5
NzE3MGNlNjQ0ZWI2NGJlM2VhYjg1N2YzYTc0MzJmNC4uNjI5OGNmMzYwNzNjN2FlNDRmNDNjNmI1
NjQ0MjJiMzdiODZjZjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAogI2luY2x1ZGUg
IkltYWdlQnVmZmVyUGlwZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAi
Tmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmgiCiAjaW5jbHVkZSAiTmljb3Np
YVBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1
ZmZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlv
blJlY29yZGVyLmNwcAppbmRleCAzMDRmYWNiYWIxNTIxNzkxZGFhODZkYjE1MzE3NTNlMzg2NzEw
ODRkLi43YzE0ZjNlN2VlMzM5Y2IzYTUxNGY5MDNjNDg3NGQxNzE4OWQ1MmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFD
YWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApA
QCAtNTQ5LDcgKzU0OSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlvblJlY29yZGVy
OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0CiAgICAgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwg
aW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxl
LCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRl
cjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lk
IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgc3RydWN0IERyYXdOYXRpdmVJ
bWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMs
IGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKICAgICAgICAgdmlydHVhbCB+RHJhd05hdGl2
ZUltYWdlKCkgPSBkZWZhdWx0OwpAQCAtNTcwLDYgKzU3MCwxMiBAQCB2b2lkIENhaXJvT3BlcmF0
aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2Us
IGNvbnN0CiAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdlPihSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBh
aW50aW5nT3B0aW9ucyhvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSwg
c3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpKTsKIH0KIAorYm9vbCBDYWly
b09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
Cit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogewogICAgIHN0cnVjdCBEcmF3UGF0dGVybiBmaW5hbCA6IFBhaW50aW5n
T3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBJbnRTaXpl
LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBGbG9hdFBvaW50LCBJbWFn
ZVBhaW50aW5nT3B0aW9ucz4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5oCmluZGV4IDU3MmZmMjE2NmY2ZTk3M2E3NjNiNjdjYjZiYjk2
ZjQzZjI2YThkNTAuLjFkNDkwMTNjODljZjEwMTRlYzliMmI5MjA3ZGVjZWViOTEzYzM4NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8v
Tmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVy
LmgKQEAgLTY3LDcgKzY3LDkgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1
bHQgZHJhd0ltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVk
SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2Vi
Q29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJbWFnZTo6VGls
ZVJ1bGUsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBX
ZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICBib29sIGRyYXdJ
bWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmLCBXZWJDb3JlOjpD
YWNoZWRJbWFnZSopIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1h
Z2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3Qy
RC5jcHAKaW5kZXggMzc0MDcxNzE1YmNiNzkxZDU4OWQ1MGQ5OWIyOWM2NmIwMTBiNzA4MS4uNTdi
YTg1OGZmOTljMmRiMjlmNWQ5MTQ5MmU2YWFjOGVkOTc0ZWM5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0RGlyZWN0MkQuY3BwCkBAIC0yMDcsMTYgKzIwNywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIERpcmVjdDJEOjpyZXN0b3JlKCpwbGF0Zm9y
bUNvbnRleHQoKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgQ09NUHRyPElEMkQxQml0bWFwPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNvbnN0IENPTVB0cjxJRDJEMUJpdG1hcD4mIGlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGlt
YWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYXV0
byYgc3RhdGUgPSB0aGlzLT5zdGF0ZSgpOwogICAgIERpcmVjdDJEOjpkcmF3TmF0aXZlSW1hZ2Uo
KnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5nZXQoKSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3Jj
UmVjdCwgb3B0aW9ucywgc3RhdGUuYWxwaGEsIERpcmVjdDJEOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UyNDdhN2FkNGNkMjk1MzhlNGVhZjQwYmQ4MDM2
OTY4NjAwOGI4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNs
dWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVySWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgLCBtX2ltYWdlQnVmZmVySWRl
bnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhh
bmRsZSkKLXsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNh
bFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUo
aGFuZGxlKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVm
ZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRkMDVlYWVmNTQ5
NDE2ZmRiNjQyNTk1MmUwYjRjZjNhYTIwNWVjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAiSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50
aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51
bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNzIEltYWdlRGF0
YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTsKLQotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+
IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwotCi1wcm90ZWN0
ZWQ6Ci0gICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0KLSAgICAvLyBNZXNz
YWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4K
LSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsK
LSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7
Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIGJhY2tlbmQoKSB7IHJldHVybiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsgfQotCi1wcml2YXRlOgotICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7Ci0gICAg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaAppbmRleCA3NzIxY2NlODQ1NjI2OWFlZjkwMjBiOGJkODk2NWRkMzViNzIy
ZGRjLi4xZDFiNWVlOGZjZjA3ZWZjMzI5ZDc5ODFmM2IwYTFhYzJlZmJlNzFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKQEAgLTI4LDI5ICsyOCwyOSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nv
bmNyZXRlSW1hZ2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRU
eXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25j
cmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eSwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6
RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3Jl
OjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAg
dXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNv
bmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKKyAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1h
Z2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KHNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gQmFzZUNv
bmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
PihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKLSAg
ICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBi
YWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAg
ICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBi
YWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJh
Y2tlbmQpKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShy
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAg
ICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkpCiAgICAgewotICAgICAgICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNp
emUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2Fs
ZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUoKSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCks
IG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwg
bV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlKCksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgflJl
bW90ZUltYWdlQnVmZmVyUHJveHkoKQpAQCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpmbHVzaERyYXdp
bmdDb250ZXh0OwotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURh
dGE7Ci0KICAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAg
IGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgewpAQCAtNzMsMTggKzcwLDYgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCi0g
ICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAg
bV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZs
dXNoSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4g
Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlkZQotICAgIHsK
LSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFnZURhdGEob3V0
cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTk4LDEyICs4MywxMiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5hcHBseVJlc291cmNlSXRlbShpdGVtLCBjb250ZXh0KTsKICAgICB9CiAKICAgICB2b2lkIGFw
cGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0ZW0sIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1dG8gcHJvY2Vz
cyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAgICAgIGF1dG8g
cHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMTcsNiArMTAyLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBjb250ZXh0LnBhaW50RnJh
bWVGb3JNZWRpYSgqcGxheWVyLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgIH0KKworICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAKaW5kZXggNzUzYTVjOGJhOTdmZTcyMDgzMTA1OGU4NGM1Y2Q4M2I0YjE3NTU3OS4uYzFh
MzFjYmM5NGI2MDZiNTBkNDFmOTljNTAyMjcwNGRlYWVkNzM5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5TWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1NCwxMSBAQCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6On5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHko
KQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2ZXJNYXAo
KS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
LnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Cit9CisKIElQQzo6
Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2NCArNzEsNDYg
QEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNy
ZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCitib29s
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0oRGlzcGxheUxp
c3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBhdXRvKiBn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdl
dCgpOwotICAgIGlmICghZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250YWlucyhpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIg
PSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRl
cmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIGltYWdlQnVmZmVySWRlbnRp
ZmllcikpIHsKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQo
aW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuYXBwbHlSZXNvdXJjZUl0ZW0o
aXRlbSwgY29udGV4dCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpy
ZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZW1vdGVDcmVhdGVJbWFn
ZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6
ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENyZWF0ZUltYWdlQnVm
ZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUgdGhpcyBvbmUuCi0g
ICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5yZW1vdmUoaW1h
Z2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIEltYWdlQnVmZmVySWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVmZmVyLT5nZXRJbWFnZURh
dGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSVBD
OjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Ci0gICAgfQorICAgIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNyZWF0ZUltYWdlQnVmZmVyKGxvZ2ljYWxTaXplLCBy
ZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVy
SWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdl
QnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiBkaXNwbGF5TGlzdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKLSAgICAgICAgaW1h
Z2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgIG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNo
SW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCi0gICAgICAgIGlt
YWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBmbHVz
aElkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VC
dWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCkgY29uc3QKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdl
YkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJl
ZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICByZXR1cm4gbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOworICAgIGF1dG8gaW1hZ2VEYXRhID0gbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuZ2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCwgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkltYWdl
RGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0YSkpKTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlTmF0aXZlSW1hZ2UoaW1h
Z2UsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
aW5kZXggYTA5NTJiYWZiM2MxNTMyZDdkYzk5MDA2ZWI0MGYzMWJmOTFkMjUzYi4uYWY5NjI2MmRj
MzA3YjM0N2ViMmFkZWZkMDM3NWE1ZjQ3YjMyNmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaApAQCAtMjgsMjQgKzI4LDI0IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAi
SW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJlbmNlLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5o
IgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFzcyBEaXNwbGF5TGlzdDsKIH0KK2Ns
YXNzIEZsb2F0U2l6ZTsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFJlbmRlcmluZ01vZGUgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTU5LDggKzU5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
LCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXI7IH0KICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Q7CisgICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOworCisg
ICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KKyAgICB2b2lkIHJlbW90ZUNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcik7CkBAIC03NCwxNCArNzcsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUg
cmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0g
ICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2
b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1
ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIElt
YWdlQnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0
YVJlZmVyZW5jZSYmKT4mJik7Ci0KLSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwID0gSGFzaE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk+PjsKLSAgICBJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKKyAgICB2b2lkIGNy
ZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdl
YkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZs
dXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZv
aWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZ2V0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJ
bnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CisgICAgdm9p
ZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNv
dXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsgKnRoaXMgfTsKICAg
ICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDc5OGM4YjRlZGI1N2Y1YWQwODJiYTgxYzEwMDhiMGRjZGVmZGYxOGEu
LmIzMWNjNjczZThhM2E5MzM3ODVjYjY5ZTFmMzM4ODFlYTFhODRlNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsMTEgKzIzLDEyIEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKLSAgICB2b2lkIFJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJLaXQ6OkltYWdlQnVmZmVySWRl
bnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgdm9pZCBGbHVzaEltYWdlQnVmZmVy
RHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlM
aXN0LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIp
Ci0gICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIEdldEltYWdlRGF0YShlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNv
cmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBT
eW5jaHJvbm91cworICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXpl
IGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAg
IHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJE
cmF3aW5nQ29udGV4dEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qg
ZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQorICAgIEdldEltYWdlRGF0YShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKKyAg
ICB2b2lkIENhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
CisgICAgdm9pZCBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBh
ZjU5Njk1YzRmZDk4NDhlYTRmMmY3OWE4OGRmYWE4MjYwODRhZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuY3BwCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgIDogbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQor
eworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9y
ZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1hZ2U7CisK
KyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRl
ZCkKKyAgICAgICAgaW1hZ2UgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNy
ZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGlm
ICghaW1hZ2UgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2Vs
ZXJhdGVkKQorICAgICAgICBpbWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisK
KyAgICBpZiAoaW1hZ2UpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuYWRk
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK0ltYWdlQnVmZmVy
KiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1f
cmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7
CisgICAgICAgIGltYWdlLT5mbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAg
ICAgcmV0dXJuIGltYWdlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSW1hZ2VC
dWZmZXIqIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChh
dXRvIGltYWdlID0gZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKSkgeworICAgICAgICBpbWFnZS0+Zmx1c2hDb250ZXh0KCk7CisgICAgICAg
IHJldHVybiBpbWFnZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxJ
bWFnZURhdGE+IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJl
bXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSBjb25zdAorewor
ICAgIGlmIChhdXRvIGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBpbWFnZS0+Z2V0SW1hZ2VEYXRh
KG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNo
TWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIGltYWdlKTsKKyAgICBBU1NFUlRfVU5V
U0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCitib29sIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6
SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIGF1dG8m
IGRyYXdJdGVtID0gc3RhdGljX2Nhc3Q8Y29uc3QgRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFn
ZSY+KGl0ZW0pOworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gZHJhd0l0ZW0u
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCk7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaW1hZ2UgPSBtX3JlbW90
ZU5hdGl2ZUltYWdlSGFzaE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBp
ZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZShpbWFnZSwgZHJhd0l0ZW0uaW1hZ2VTaXplKCksIGRyYXdJdGVtLmRlc3RpbmF0aW9u
UmVjdCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9ucygpKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdJbWFnZUJ1
ZmZlckl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkgY29uc3QKK3sKKyAgICBhdXRvJiBkcmF3SXRlbSA9IHN0YXRpY19jYXN0PGNvbnN0
IERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXImPihpdGVtKTsKKyAgICBhdXRvIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciA9IGRyYXdJdGVtLnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpOwor
ICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBhdXRvIGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaW1hZ2UtPmRyYXcoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0
KCksIGRyYXdJdGVtLnNvdXJjZSgpLCBkcmF3SXRlbS5vcHRpb25zKCkpOworICAgIHJldHVybiB0
cnVlOworfQorCitib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlSZXNvdXJjZUl0
ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKK3sKKyAgICBpZiAoaXRlbS50eXBlKCkgPT0gRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpEcmF3SW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybiBkcmF3SW1hZ2VCdWZmZXJJdGVtKGl0
ZW0sIGNvbnRleHQpOworICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkRyYXdOYXRpdmVJbWFnZSkKKyAgICAgICAgcmV0dXJuIGRyYXdOYXRpdmVJbWFnZUl0ZW0o
aXRlbSwgY29udGV4dCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fcmVtb3RlSW1hZ2VC
dWZmZXJIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLnJlbW92ZShyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisgICAgLy8gQ2FjaGluZyB0aGUg
cmVtb3RlIHJlc291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQu
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzZTQyMmM4YWFkY2E2NTAzZDBkNjgzZjEwNGVlM2VjNmNiZWIzZDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNw
YWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OworY2xhc3MgSXRlbTsKK30KK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTsKKworY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7CisKKyAg
ICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0
YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9y
bWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpIGNvbnN0OworCisgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKworICAgIGJvb2wgYXBwbHlSZXNvdXJjZUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIHZv
aWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFz
aE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+OworICAgIHVzaW5nIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1h
cCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpO
YXRpdmVJbWFnZVB0cj47CisKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZlckl0ZW0oY29uc3QgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKKyAgICBib29sIGRyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIFJlbW90
ZUltYWdlQnVmZmVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcDsKKyAgICBSZW1v
dGVOYXRpdmVJbWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXA7CisgICAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNDAxN2EyYThmMjJjZWNlY2MyMTUxYTMwYTMyNzhmZjkw
NmVhZjMyYS4uNjc0OGQxZjVkODAwZDk1NzRmMjM4MDc1YjE4OTBiNGU0YWNlZTkxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJ
VEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDk3N2Y5M2ZmNWMzYzJiODE3ODQ2YzlhOWE3NTUxNzg5
YzhlZmUwNWMuLjYxYjg5MGRjNzg2N2MzM2IwMDVmMjJlOTNiYjFhZjQ3ZGRkM2IxN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IGZhY2QyZjdhZmI1YTM5MmVlMjA5NjdhNzZmZDQxZTE0ZGZiMTUwYjku
LjE1OGM0ZWY5N2MyZTk5Yjg3NjY3OTM2ZWI0MGE1ZTE4NzhkMThiM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjE3LDExICsyMTcsMTMgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vzc2lv
bklkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHInLAogICAgICAg
ICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luTG9h
ZENsaWVudFBvbGljeScsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAn
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJlbmRlcmluZ01vZGUnLAogICAgICAgICAn
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYklkZW50aWZpZXInLApAQCAtMjQwLDcgKzI0Miw2IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Okdlb2xv
Y2F0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZScsCiAgICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyJywKLSAg
ICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TGVnYWN5Q3VzdG9tUHJv
dG9jb2xJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllcics
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBlMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZkNTRlZWJiODkwMzY0NDQxLi5hMDc3NTMwOTU3YmE4
ZDQ3ZDU0MjliYWRkNjY3NTc1NTRkMDYyMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTExMDAsNyArMTEwMCw3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbWFnZUhh
bmRsZSYgaW1hZ2VIYW5kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29k
ZU5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIsIE5hdGl2ZUltYWdlUHRyIGltYWdlKQorc3Rh
dGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTmF0aXZl
SW1hZ2VQdHImIGltYWdlKQogewogICAgIGF1dG8gaW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXpl
KGltYWdlKTsKICAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVh
YmxlKGltYWdlU2l6ZSwgeyB9KTsKQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVOYXRpdmVJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRp
dmVJbWFnZVB0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZU9wdGlv
bmFsTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCitz
dGF0aWMgdm9pZCBlbmNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKIHsKICAgICBib29sIGhhc0ltYWdlID0gISFpbWFn
ZTsKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlOwpAQCAtMTE2NiwxNCArMTE2NiwxNCBAQCBzdGF0
aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShEZWNv
ZGVyJiBkZWNvZGVyLCBOYXRpdgogICAgIHJldHVybiBkZWNvZGVOYXRpdmVJbWFnZShkZWNvZGVy
LCBpbWFnZSk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRpdmVJbWFnZUhhbmRsZSYgaW1hZ2VIYW5k
bGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewotICAgIGVuY29kZU9wdGlv
bmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOworICAgIGVu
Y29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1hZ2UpOwogfQogCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTmF0
aXZlSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQorYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUlt
YWdlUHRyPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkK
IHsKLSAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZUhh
bmRsZS5pbWFnZSk7CisgICAgcmV0dXJuIGRlY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZGVjb2Rl
ciwgaW1hZ2UpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYgZm9udCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMDVkMDM1NTRiOWVj
YTlhMDQxYzM2OGVmNDUzODgyNDQzNGNlNmUyMy4uOWYzYjEwNjY5MzMzYmEzMDE1Mjk3ODNjOWUx
ZTkxZWFiYTRjYWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVNlbGVjdGlvbk9wdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2VQdHIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+CkBAIC0xMDUsNyArMTA2LDYgQEAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7
CiBjbGFzcyBMYXlvdXRTaXplOwogY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1p
bmdGdW5jdGlvbjsKLWNsYXNzIE5hdGl2ZUltYWdlSGFuZGxlOwogY2xhc3MgTm90aWZpY2F0aW9u
OwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CiBjbGFzcyBQYXltZW50SW5zdGFsbG1lbnRD
b25maWd1cmF0aW9uOwpAQCAtNDE2LDkgKzQxNiw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwogfTsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJbWFnZUhh
bmRsZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
TmF0aXZlSW1hZ2VIYW5kbGUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZSYpOwordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cj4geworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIm
KTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAppbmRleCA3MzBkYTY0OGYyYjJmZTllNzg0ZmQw
NDA1MmUxOTBmMGQwYmYyMWFkLi45NTlkYTgzZDVmNjk4OGIyMTE1ODhkYTdkZGI0ZmYxODNkY2U3
ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBD
Ry5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3Bw
CkBAIC0xMDYsMTIgKzEwNiwyNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBT
aGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpCiAKIHZvaWQgU2hhcmVhYmxl
Qml0bWFwOjpwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNlKQogewotICAgIGRyYXdO
YXRpdmVJbWFnZShtYWtlQ0dJbWFnZUNvcHkoKSwgY29udGV4dCwgMSwgZGVzdGluYXRpb24sIHNv
dXJjZSk7CisgICAgcGFpbnQoY29udGV4dCwgMSwgZGVzdGluYXRpb24sIHNvdXJjZSk7CiB9CiAK
IHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb24sIGNv
bnN0IEludFJlY3QmIHNvdXJjZSkKIHsKLSAgICBkcmF3TmF0aXZlSW1hZ2UobWFrZUNHSW1hZ2VD
b3B5KCksIGNvbnRleHQsIHNjYWxlRmFjdG9yLCBkZXN0aW5hdGlvbiwgc291cmNlKTsKKyAgICBD
R0NvbnRleHRSZWYgY2dDb250ZXh0ID0gY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBD
R0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7CisKKyAgICBDR0NvbnRleHRDbGlwVG9SZWN0
KGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0aW5hdGlvbi54KCksIGRlc3RpbmF0aW9uLnkoKSwg
c291cmNlLndpZHRoKCksIHNvdXJjZS5oZWlnaHQoKSkpOworICAgIENHQ29udGV4dFNjYWxlQ1RN
KGNnQ29udGV4dCwgMSwgLTEpOworCisgICAgYXV0byBpbWFnZSA9IG1ha2VDR0ltYWdlQ29weSgp
OworICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgp
KSAvIHNjYWxlRmFjdG9yOworICAgIENHRmxvYXQgaW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRXaWR0
aChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3RvcjsKKworICAgIENHRmxvYXQgZGVzdFggPSBkZXN0
aW5hdGlvbi54KCkgLSBzb3VyY2UueCgpOworICAgIENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VIZWln
aHQgLSBkZXN0aW5hdGlvbi55KCkgKyBzb3VyY2UueSgpOworCisgICAgQ0dDb250ZXh0RHJhd0lt
YWdlKGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0WCwgZGVzdFksIGltYWdlV2lkdGgsIGltYWdl
SGVpZ2h0KSwgaW1hZ2UuZ2V0KCkpOworCisgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0Nv
bnRleHQpOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtl
Q0dJbWFnZUNvcHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4MDY4ZGVkZDM5Y2Jh
YzRkZmJlOTM3N2NhOC4uOGUzYjJhZmZjYTAwMzRiMzI2ZGE5YjIxOThjODU3OTc0ZTA0OTE0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yNCw4ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3Bw
CiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQ
VVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCi1HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKQEAg
LTU1Miw4ICs1NTIsOCBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKIAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQuY3BwCi1XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk4NDM0Y2JhYzBj
MmY2MWEyZDZlMjgwNzE2ZWNkNzI4ODI4ODkyODIuLjJhOGM0MmE1YWJlNDE1YmY5ZDExYzdiMGIz
ZWY3MTg4MDJiMjBjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzg4OSw3ICszODg5LDYgQEAKIAkJNTUwNjQwQTIyNDA3MUE2MTAw
QUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUwNDUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTUwNjQwQTUyNDA3MUNDMDAwQUFFMDQ1IC8qIEltYWdl
QnVmZmVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlcklkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJG
IC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0MzI0MDhB
MEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NUFEMDk0NDI0MDhBQkIzMDBERTREMkYgLyogSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxNzgsMTAgKzQxNzcsNyBAQAogCQk3
MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVj
b2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFGQjgxMEEyMjYwNjI3
QTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2
ZW50c0Rpc3BhdGNoUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4
MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNzIyNzgwMEMyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBE
MjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0Yz
NDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTkx
LDYgKzQxODcsMTAgQEAKIAkJNzI3QTdGNDkyNDA4QUVFNjAwNEQyOTMxIC8qIFJlbW90ZUltYWdl
QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBp
Y2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tl
ck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4
Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzI5RDA1MzIyNTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTgg
LyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzNTI1
MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzI5RDA1MzYyNTMxNzNDQzAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyog
V0tXZWJzaXRlRGF0YVN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwNzYsMTcgKzgwNzYsMTcg
QEAKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8sCiAJCQkJNzI3QTdG
MzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAogCQkJ
CTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
ICovLAotCQkJCTU1MDY0MEE1MjQwNzFDQzAwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlcklkZW50aWZp
ZXIuaCAqLywKIAkJCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzgy
NDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgg
Ki8sCiAJCQkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXIuaCAqLywKIAkJCQk3MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1hZ2VC
dWZmZXIuaCAqLywKLQkJCQk3MjI3ODAwQzI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8sCiAJCQkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZC
IC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk1NTA2NDA5RDI0
MDcxNjA5MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgKi8sCiAJCQkJNTUw
NjQwOUUyNDA3MTYwOTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCAqLywKIAkJ
CQk1NTA2NDBBMDI0MDcxOUUxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbiAqLywKKwkJCQk3MjlEMDUzNTI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jcHAgKi8sCisJCQkJNzI5RDA1MzYyNTMxNzNDQzAwNDIyMDk4IC8qIFJlbW90ZVJl
c291cmNlQ2FjaGUuaCAqLywKIAkJCQk1NTA2NDA5RjI0MDcxOTZBMDBBQUUwNDUgLyogUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CkBA
IC04MDk2LDEyICs4MDk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCAqLywKLQkJCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLywKLQkJCQk3MjI3ODAxMjI0MDk5MDZF
MDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8sCiAJ
CQkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAq
LywKIAkJCQk1NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcCAqLywKIAkJCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8q
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlEMDUz
MjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLywKKwkJ
CQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGdyYXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5YTFiYzlhZTg3ZGM4ZDcyNDI4YTBiODA5Y2FkMGQ4MGE0Y2QxY2I5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCi0KLSNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotZW51bSBJbWFnZUJ1ZmZlcklkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5n
IEltYWdlQnVmZmVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VCdWZmZXJJZGVu
dGlmaWVyVHlwZT47Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGU4NDkxNjY0NTE0NTk2Mjg3ZWYy
Yzc4ZjkwNzZlMWQ0MzgyMTkxZjIuLmVjZDcyZWZhODQyMzJkN2QzMTU0NmM1ZjJkMzNkMDQxNjFi
YjcyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTMxLDE2ICszMSwxOCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBCYWNrZW5kVHlwZT4KLWNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIHsKK2NsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDog
cHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1
YmxpYyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLCBwdWJsaWMgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2VuZFR5
cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAg
ICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7Cisg
ICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAKIHB1YmxpYzoK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdlQnVmZmVyPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xv
clNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQpA
QCAtNTMsMTQgKzU1LDIwIEBAIHB1YmxpYzoKIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCiAg
ICAgeworICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VJbWFnZUJ1ZmZlcigqdGhpcyk7CiAgICAgfQogCisg
ICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisKIHBy
b3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIDogQmFzZURpc3BsYXlM
aXN0SW1hZ2VCdWZmZXIoc2l6ZSkKLSAgICAgICAgLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgOiBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlcihzaXplLCB0aGlzKQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChtYWtl
V2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKSkKICAgICB7CisgICAgICAgIG1fcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVDcmVh
dGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UpOwogICAgIH0KIAogICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpIG92ZXJyaWRlCkBAIC02OSwyMiArNzcs
NTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRl
KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBX
VEZNb3ZlKGhhbmRsZSkpOwogICAgIH0KICAgICAKLSAgICBib29sIGlzQmFja2VuZENyZWF0ZWQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2JhY2tlbmQuZ2V0KCk7IH0KLQogICAgIEJhY2tl
bmRUeXBlKiBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAg
ICAgICBpZiAoIW1fYmFja2VuZCkKLSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VC
dWZmZXImPigqdGhpcykuUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOworICAgICAgICBpZiAoIW1fYmFja2VuZCAmJiBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKICAgICAgICAgcmV0dXJuIG1f
YmFja2VuZC5nZXQoKTsKICAgICB9CiAKKyAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRl
CisgICAgeworICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgICAgIG1fYmFja2Vu
ZC0+Zmx1c2hDb250ZXh0KCk7CisgICAgfQorCisgICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0
KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5n
Q29udGV4dC5kaXNwbGF5TGlzdCgpOworICAgICAgICBpZiAoIWRpc3BsYXlMaXN0Lml0ZW1Db3Vu
dCgpIHx8ICFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+ZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4
dCgpLCBXZWJDb3JlOjpGbG9hdFJlY3QoeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCkpLCBX
ZWJDb3JlOjpDb2xvcjo6ZGFya0dyZWVuLCB7IHsgV2ViQ29yZTo6UmVjdFRvcFJpZ2h0LCBXZWJD
b3JlOjpDb2xvcjo6d2hpdGUsICJHUFUiX3MgfSB9KTsKKyAgICAgICAgbV9zZW50Rmx1c2hJZGVu
dGlmaWVyID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVGbHVzaERyYXdpbmdDb250
ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cisg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVsZWFz
ZVJlbW90ZUNsaWVudChtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGRpc3Bs
YXlMaXN0LmNsZWFyKCk7CisgICAgfQorCisgICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBpZiAoIWRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpIHx8ICFtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlz
dCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0KKyAgICAKICAgICBSZWZQdHI8
V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNv
bnN0IG92ZXJyaWRlCiAgICAgeworICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgICAgIGF1dG8mIGRpc3BsYXlM
aXN0ID0gY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5tX2RyYXdpbmdDb250
ZXh0LmRpc3BsYXlMaXN0KCk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXIq
Pih0aGlzKS0+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29u
dGV4dChkaXNwbGF5TGlzdCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gY29uc3RfY2FzdDxSZW1v
dGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpn
ZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKKyAgICAgICAgaWYgKGRpc3BsYXlM
aXN0Lml0ZW1Db3VudCgpKSB7CisgICAgICAgICAgICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVm
ZmVyKj4odGhpcyktPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICAg
ICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIGdldEltYWdl
RGF0YSBpcyBzeW5jaHJvbm91cywgd2hpY2ggbWVhbnMgd2UndmUgYWxyZWFkeSByZWNlaXZlZCB0
aGUgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQgbWVzc2FnZS4KLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVtb3Rl
R2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIHZvaWQgcHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdlRGF0YSYgaW1h
Z2VEYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RGb3JtYXQgPSBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkKSBvdmVycmlkZQpAQCAtOTUsMjYgKzEzMiwzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1f
ZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRJbWFnZURhdGEoaW5wdXRGb3JtYXQsIGltYWdl
RGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKICAgICB9CiAKLSAgICB2b2lk
IGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtPiBjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBp
bWFnZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsK
LSAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKKyAgICAgICAgaWYgKCFtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRl
bShpbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIG1fcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB9CiAKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoKSBvdmVycmlk
ZQorICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd05hdGl2
ZUltYWdlSXRlbShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBXZWJDb3JlOjpDYWNoZWRJbWFnZSYgY2Fj
aGVkSW1hZ2UpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1f
ZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0
ZW1Db3VudCgpKQotICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6
Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoZGlzcGxheUxpc3QpOworICAgICAgICBp
ZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5jcmVhdGVEcmF3TmF0
aXZlSW1hZ2VJdGVtKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
LCBjYWNoZWRJbWFnZSwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KLSAgICAK
KwogICAgIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW0mKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgY29uc3RleHByIHNpemVfdCBEaXNwbGF5TGlz
dEJhdGNoU2l6ZSA9IDUxMjsKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdD
b250ZXh0LmRpc3BsYXlMaXN0KCk7Ci0gICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQo
KSA+PSBEaXNwbGF5TGlzdEJhdGNoU2l6ZSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAg
ICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPCBEaXNwbGF5TGlzdEJhdGNoU2l6ZSB8fCAh
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgZGlzcGxheUxpc3QuY2xl
YXIoKTsKICAgICB9CisKKyAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZDsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzE1MGM3YjA3OTNhZmU5YWM1YzgzYTlhYzc0NmJh
MzE4ZTUxYjhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuaCIKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgIklt
YWdlRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCIK
LSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZCkKLSAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChtYWtlV2Vha1B0cihyZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKSkKLXsKLSAgICAvLyBDcmVhdGUgdGhlIFJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuCi0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRl
cmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9pbWFnZUJ1ZmZlcklkZW50
aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKCkpOwotfQotCi1SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp+UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpCi17Ci0gICAgLy8gUmVsZWFzZSB0aGUgUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS4KLSAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAg
ICAgcmV0dXJuOwotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZWxlYXNlSW1hZ2VCdWZmZXIobV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKCkpOwotfQotCi1SZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRw
dXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0Ci17Ci0gICAgSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhUmVmZXJlbmNlOwotICAgIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC0+c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
R2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCwgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpLCBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpHZXRJbWFnZURhdGE6
OlJlcGx5KGltYWdlRGF0YVJlZmVyZW5jZSksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwgMV9zKTsKLSAgICByZXR1cm4gaW1hZ2VEYXRhUmVm
ZXJlbmNlLmJ1ZmZlcigpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXI6OndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKQotewotICAgIGlmIChtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQgJiYgIWlzQmFja2VuZENyZWF0ZWQoKSkKLSAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7Ci19
Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNvbW1pdElt
YWdlQnVmZmVyRmx1c2hDb250ZXh0KCkKLXsKLSAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kICYmIGlzUGVuZGluZ0ZsdXNoKCkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC0+d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7Ci19Ci0KLXZvaWQgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KQotewotICAgIGlmICghbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgbV9pbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKCkpOwotICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7Ci19Ci0KLXZvaWQg
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdh
aXRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkK
LXsKLSAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpOwotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRl
eHRBbmRDb21taXQoZGlzcGxheUxpc3QsIG1fc2VudEZsdXNoSWRlbnRpZmllciwgbV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKCkpOwotICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7Ci0gICAgd2FpdEZvckNv
bW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlcjo6Y29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllcikKLXsKLSAgICBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVy
ID0gZmx1c2hJZGVudGlmaWVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyLmgKaW5kZXggNjIwNDE4ZDc4YzI3ZjI4YzU3NDkwMmMyZTFiYTlhMjM3MTc1MTdi
OS4uNjFkZDU4Y2U1MmZkY2VkNGYxODRhZjBlYTY3OTdiMjY2Mjc1YTI0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTI5LDUwICsyOSwzMSBAQAog
CiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rp
c3BsYXlMaXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJlc291cmNl
SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGbG9hdFNpemU7CiBj
bGFzcyBJbWFnZURhdGE7CiBlbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50
OF90OworZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7Ci0KIGNsYXNzIFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoKTsKLQotICAgIEltYWdlQnVmZmVySWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRp
ZmllcjsgfQotCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuIFNlZSBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluLgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVCYWNrZW5k
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSkgPSAwOwogCi0gICAgdm9pZCBjb21taXRG
bHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIpOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmKTsKLQotICAgIHZpcnR1YWwg
Ym9vbCBpc0JhY2tlbmRDcmVhdGVkKCkgY29uc3QgPSAwOwogICAgIGJvb2wgaXNQZW5kaW5nRmx1
c2goKSBjb25zdCB7IHJldHVybiBtX3NlbnRGbHVzaElkZW50aWZpZXIgIT0gbV9yZWNlaXZlZEZs
dXNoSWRlbnRpZmllcjsgfQogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1h
Z2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdDsKLQotICAgIHZvaWQgd2FpdEZvckNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwotICAgIHZvaWQgd2FpdEZvckNvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0KCk7CisgICAgdm9pZCBjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbV9yZWNl
aXZlZEZsdXNoSWRlbnRpZmllciA9IGZsdXNoSWRlbnRpZmllcjsKKyAgICB9CiAKLSAgICAvLyBN
ZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluLgotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmKTsKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29t
bWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOwotCi1wcml2YXRlOgotICAg
IFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OwotICAgIEltYWdlQnVmZmVySWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllciB7IElt
YWdlQnVmZmVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9OworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBtX3NlbnRGbHVzaElkZW50aWZpZXI7CiAgICAgSW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDk5NTM0MTc4N2VkYTIwYTU1NGU0ZDY3YmE1
M2RjNjk4YTUzNzBjYzAuLmVmZDRmYzg2ZjcxZmZhMzkzMDA2MzBiMTFiOTNmODRhYTg4ZDUxYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMzksMTIgKzM5LDEzIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNy
ZWF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPihuZXcgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCgpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHBhZ2UpKTsKIH0KIAotUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpCitSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3JlbW90
ZVJlc291cmNlQ2FjaGUoKnRoaXMsIHBhZ2UpCiB7CiAgICAgLy8gUmVnaXN0ZXIgaXRzZWxmIGFz
IGEgTWVzc2FnZVJlY2VpdmVyIGluIHRoZSBHUFVQcm9jZXNzQ29ubmVjdGlvbi4KICAgICBJUEM6
Ok1lc3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJlY2VpdmVyTWFwID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZXNzYWdlUmVjZWl2ZXJNYXAo
KTsKQEAgLTg2LDQwICs4Nyw4MiBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndhaXRG
b3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCiAgICAgcmV0dXJuIGNvbm5lY3Rpb24t
PndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dD4obV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllciwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5
bmNNZXNzYWdlQXJyaXZlcyk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJh
d0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFk
Z2VzKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5kcmF3QmFkZ2luZ0JvcmRlcihjb250
ZXh0LCBib3JkZXJSZWN0LCBjb2xvciwgYmFkZ2VzKTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpemUmIHNpemUsIFNob3VsZEFjY2VsZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7Ci0gICAgaWYgKHNo
b3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVzKSB7Ci0gICAgICAgIGlmIChh
dXRvIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNp
emUsIFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsICp0aGlzKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwLmFkZChpbWFnZUJ1ZmZlci0+aW1hZ2VCdWZmZXJJZGVudGlmaWVyKCksIGltYWdlQnVm
ZmVyLmdldCgpKTsKLSAgICAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKLSAgICAgICAgfQot
ICAgIH0KKyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNyZWF0ZUltYWdlQnVmZmVy
KHNpemUsIHNob3VsZEFjY2VsZXJhdGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiBpbWFnZSkKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVsZWFzZUltYWdl
QnVmZmVyKGltYWdlKTsKK30KKworUmVmUHRyPERpc3BsYXlMaXN0OjpJdGVtPiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKEltYWdlQnVmZmVyJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKGltYWdlLCBkZXN0UmVjdCwgc3JjUmVj
dCwgb3B0aW9ucywgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Cit9CisKK1JlZlB0cjxEaXNwbGF5
TGlzdDo6SXRlbT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlRHJhd05hdGl2ZUltYWdl
SXRlbShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSYgY2FjaGVk
SW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQor
eworICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3JlYXRlRHJhd05hdGl2ZUltYWdl
SXRlbShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgY2FjaGVk
SW1hZ2UsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVDbGllbnQoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVh
c2VSZW1vdGVDbGllbnQocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJlc291
cmNlSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVDcmVhdGVJbWFnZUJ1
ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit7CisgICAgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IFJlbW90ZVJl
c291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01v
ZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcjsKK30KKworUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlR2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9y
bWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGlt
YWdlRGF0YVJlZmVyZW5jZTsKKyAgICBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpLCBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpHZXRJbWFnZURhdGE6OlJlcGx5KGltYWdlRGF0YVJlZmVyZW5jZSksIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIsIDFfcyk7CisgICAgcmV0dXJuIGltYWdlRGF0YVJlZmVyZW5jZS5idWZm
ZXIoKTsKK30KIAotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90
ZUltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVy
YXRlZCwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcykpIHsKLSAgICAgICAgbV9p
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChpbWFnZUJ1ZmZlci0+aW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKCksIGltYWdlQnVmZmVyLmdldCgpKTsKLSAgICAgICAgcmV0dXJuIGltYWdlQnVm
ZmVyOwotICAgIH0KK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3
aW5nQ29udGV4dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1
ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKK30KIAotICAgIHJldHVybiBudWxscHRy
OworSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVt
b3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQoreworICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHNlbnRGbHVz
aElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgc2VudEZsdXNoSWRlbnRp
ZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7CisgICAgcmV0dXJuIHNlbnRGbHVzaElkZW50aWZpZXI7Cit9CisKK1JlbW90ZVJlc291
cmNlSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVDYWNoZU5hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKK3sKKyAgICBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Q2FjaGVOYXRpdmVJbWFnZShpbWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlUmVsZWFzZVJlbW90ZVJlc291cmNl
KFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0g
ICAgLy8gQ3JlYXRlSW1hZ2VCdWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVk
IGJlZm9yZSB0aGlzIG9uZS4KLSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwLnJlbW92ZShpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVT
RUQoZm91bmQsIGZvdW5kKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZl
ci0+Y3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2Fj
aGUuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0SW1h
Z2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVy
SWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1
c2hJZGVudGlmaWVyKTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
aW5kZXggZjQ5NjE1OGU3ZDQwZWViMDVhYzM5NDM0YWYyNDYzM2JhYmM3ZjBlZi4uY2E2NzUyZWI3
MDQyODBhNDgwZjVlZDM2NmRiMWM1YjkzZmIyNTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmgKQEAgLTI5LDMxICsyOSwzOCBAQAogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNp
bmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
Q29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5o
PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxheUxpc3Q7Citj
bGFzcyBJdGVtOworfQorY2xhc3MgRmxvYXRTaXplOworc3RydWN0IEJhZGdlOworZW51bSBjbGFz
cyBDb2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IHVpbnQ4
X3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJQYWdlOworCiBjbGFzcyBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyCiAg
ICAgLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKCk7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoV2ViUGFnZSYp
OwogCiAgICAgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsgfQotCiAgICAgLy8gSVBDOjpNZXNzYWdlU2Vu
ZGVyLgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBvdmVycmlkZTsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNv
bnN0IG92ZXJyaWRlOwpAQCAtNjEsMjEgKzY4LDMzIEBAIHB1YmxpYzoKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSk7Ci0gICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKTsKLQogICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZCgpOwogICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CiAK
KyAgICAvLyBSZXNvdWNlIGNhY2hlLgorICAgIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJSZWN0
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpCYWRnZT4mKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgdm9pZCBy
ZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
Y29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKTsKKworICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCisgICAgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgUmVmUHRyPFdlYkNvcmU6
OkltYWdlRGF0YT4gcmVtb3RlR2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlRmx1c2hEcmF3
aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIHJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2FjaGVO
YXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOworICAgIHZvaWQgcmVt
b3RlUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAgIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVj
ZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgY29tbWl0
SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdl
QnVmZmVySWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAK
LSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxJbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIqPjsKLSAgICBJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1h
cDsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsg
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCAxMmE3YmY4ZGE0Yzgy
NTcwYmNhMzZhMTM1ZmQ3MWFmMjU4OGI2NGQ1Li4yYzBmN2U4YTEyMDNmMjY4NjUyYTAwZmMxZjdi
MTdkYTU5OWQyYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluCkBAIC0yMyw4ICsyMyw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQg
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwg
V2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlIGhhbmRsZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKQotICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoV2ViS2l0OjpJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6SW1hZ2VC
dWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6
OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5k
bGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCisgICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChXZWJLaXQ6Oklt
YWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEwOWJhODYwZTZjY2E5ZDljMzcyYzM0NGVhOGFjN2EzMzlmMzNlZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGUuY3BwCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9DYWNoZWRJbWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0RXh0cmFzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVSZXNvdXJjZUNhY2hl
OjpSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQsIFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcGFnZShwYWdlKQoreworfQorCiti
b29sIFJlbW90ZVJlc291cmNlQ2FjaGU6OnNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9y
ZGVycygpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmRyYXdCYWRnaW5nQm9yZGVy
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBj
b25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBp
ZiAoIXNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBGbG9h
dFJlY3QgY29udGFpbmVyUmVjdCA9IGJvcmRlclJlY3Q7CisgICAgY29udGFpbmVyUmVjdC5pbmZs
YXRlKC0xKTsKKyAgICBXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBjb250YWlu
ZXJSZWN0LCBjb2xvciwgYmFkZ2VzKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
PiBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUm
IHNpemUsIFNob3VsZEFjY2VsZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit7CisgICAgaWYgKHNob3VsZEFjY2VsZXJh
dGUgPT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVzKSB7CisgICAgICAgIGlmIChhdXRvIGltYWdlQnVm
ZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmlu
Z01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZm
ZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZlci5nZXQoKSwgaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291
cmNlSWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlckhhc2hNYXAuYWRkKGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIo
KSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJh
dGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVV
bmFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZCkpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuYWRkKGlt
YWdlQnVmZmVyLmdldCgpLCBpbWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkp
OworICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmFkZChp
bWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVmZmVyLmdldCgp
KTsKKyAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOworICAgIH0KKworICAgIHJldHVybiBudWxs
cHRyOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3Jl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpKQorICAgICAgICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChsb2dpY2FsU2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5k
bGUpKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjb21taXRJbWFnZUJ1ZmZlckZs
dXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAg
aWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJI
YXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFnZUJ1ZmZl
ci0+Y29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7Cit9CisKK1JlZlB0cjxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0lt
YWdlQnVmZmVySXRlbShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyID0gZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KGltYWdlLCByZW1v
dGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgLy8gRmx1c2ggdGhlIERyYXdpbmdDb250ZXh0
IG9mIHRoZSBzb3VyY2UgSW1hZ2VCdWZmZXIgc28gdGhpcyBJbWFnZUJ1ZmZlciBnZXRzIGFuIHVw
ZGF0ZWQgaW1hZ2UuCisgICAgaW1hZ2UuZmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgIHJldHVy
biBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpjcmVhdGUocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK1JlZlB0
cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNo
ZWRJbWFnZSYgY2FjaGVkSW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGll
bnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gZmlu
ZE5hdGl2ZUltYWdlRm9yQ2xpZW50KGNhY2hlZEltYWdlLCBpbWFnZSwgcmVtb3RlQ2xpZW50SWRl
bnRpZmllcik7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2
ZUltYWdlOjpjcmVhdGUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJl
bW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2Up
Cit7CisgICAgLy8gUmVtb3ZlIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KKyAgICBhdXRv
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLnRh
a2UoJmltYWdlKTsKKyAgICBBU1NFUlQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAg
IC8vIGNyZWF0ZUltYWdlQnVmZmVyIHNob3VsZCBoYXZlIGJlZW4gcmV0dXJuZWQgdGhpcyBJbWFn
ZUJ1ZmZlciBiZWZvcmUuCisgICAgYm9vbCBmb3VuZCA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlckhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAg
QVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOworCisgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nl
c3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UgdW5sZXNzIGl0J3MgcGVuZGluZyByZXBsYXlpbmcg
YmFjay4KKyAgICByZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyhyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXI7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1vdGVSZXNvdXJjZUNhY2hlOjpy
ZWxlYXNlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGltYWdlKQor
eworICAgIC8vIFJlbW92ZSB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgY2FjaGUuCisgICAgYXV0byBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcC50YWtl
KGltYWdlKTsKKworICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJl
c291cmNlIHVubGVzcyBpdCdzIHBlbmRpbmcgcmVwbGF5aW5nIGJhY2suCisgICAgaWYgKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmVsZWFzZVJlbW90ZVJlc291cmNlUGVuZGlu
Z1JlbW92ZUNsaWVudHMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVt
b3RlUmVzb3VyY2VDYWNoZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KEltYWdlQnVmZmVyJiBp
bWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7
CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVy
SGFzaE1hcC5nZXQoJmltYWdlKTsKKyAgICBhZGRSZW1vdGVDbGllbnQocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVz
b3VyY2VDYWNoZTo6ZmluZE5hdGl2ZUltYWdlRm9yQ2xpZW50KFdlYkNvcmU6OkNhY2hlZEltYWdl
JiBjYWNoZWRJbWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLmVuc3VyZShpbWFn
ZSwgWyZdIHsKKyAgICAgICAgY2FjaGVkSW1hZ2UuYWRkQ2xpZW50KCp0aGlzKTsKKyAgICAgICAg
cmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVDYWNoZU5hdGl2ZUltYWdlKGlt
YWdlKTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICBhZGRSZW1vdGVDbGllbnQocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICByZXR1
cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGU6OmFkZFJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRp
ZmllcikKK3sKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gQWRkIHRoZSAicmVzb3VyY2UgLT4gY2xpZW50IiBkZXBlbmRlbmN5IGlu
IG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBhdXRvJiBjbGllbnRzID0gbV9y
ZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLmVuc3VyZShyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIsIFsmXSB7CisgICAgICAgIHJldHVybiBSZW1vdGVDbGllbnRzSGFzaFNldCgpOworICAgIH0p
Lml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGNsaWVudHMuYWRkKHJlbW90ZUNsaWVudElkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZVBlbmRpbmdSZW1vdmVDbGllbnRzKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3JlbW90ZVJlc291cmNlQ2xpZW50c1Bl
bmRpbmdSZWxlYXNlSGFzaE1hcC5jb250YWlucyhyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKTsK
KworICAgIC8vIElmIHdlIGhhdmUgcmVjb3JkZWQgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBl
bmRlbmN5IGJlZm9yZSBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAsIG1vdmUgdGhp
cworICAgIC8vIGRlcGVuZGVuY3kgdG8gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVs
ZWFzZUhhc2hNYXAuIE90aGVyd2lzZSByZW1vdmUgdGhlIHJlc291cmNlIGZyb20gdGhlIGNhY2hl
LgorICAgIGlmIChtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuY29udGFpbnMocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5k
aW5nUmVsZWFzZUhhc2hNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgbV9yZW1vdGVS
ZXNvdXJjZUNsaWVudHNIYXNoTWFwLnRha2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSk7Cisg
ICAgZWxzZQorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlUmVsZWFzZVJl
bW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK1ZlY3RvcjxSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXI+IFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90ZUNs
aWVudChSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiByZW1vdGVSZXNvdXJjZUNsaWVudHNI
YXNoTWFwLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikK
K3sKKyAgICBWZWN0b3I8UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUNs
aWVudHNUb0JlUmVtb3ZlZDsKKworICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNs
aWVudCBkZXBlbmRlbmNpZXMgZnJvbSByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgorICAg
IGZvciAoYXV0byYgcGFpciA6IHJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXApIHsKKyAgICAg
ICAgcGFpci52YWx1ZS5yZW1vdmUocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIGlm
IChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlbW90ZVJlc291cmNlQ2xpZW50
c1RvQmVSZW1vdmVkLmFwcGVuZChwYWlyLmtleSk7CisgICAgfQorCisgICAgLy8gUmV0dXJuIGEg
bGlzdCBvZiB0aGUgdW5yZWZlcmVuY2VkIHJlc291cmNlcy4KKyAgICByZXR1cm4gcmVtb3RlUmVz
b3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
cmVsZWFzZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQg
ZGVwZW5kZW5jaWVzIGZyb20gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgorICAgIGZv
ciAoYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9y
ZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKSkKKyAg
ICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworCisgICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50
IGRlcGVuZGVuY2llcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VI
YXNoTWFwLgorICAgIGZvciAoYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVS
ZW1vdGVDbGllbnQobV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAs
IHJlbW90ZUNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIFJlbW92ZSB0aGUgdW5yZWZl
cmVuY2VkIHJlc291cmNlcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVh
c2VIYXNoTWFwLgorICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNl
SGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgICAgICAvLyBU
ZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4KKyAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMwMzdjZmRmY2E0MzlmYWY4OGU5NTQxNjY2Mjk5NWNjOGEwN2I0NjYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGUuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2luY2x1ZGUg
IkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRJ
bWFnZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
bmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIEl0ZW07Cit9CitlbnVtIGNsYXNzIENvbG9y
U3BhY2UgOiB1aW50OF90Oworc3RydWN0IEJhZGdlOworY2xhc3MgQ29sb3I7CitjbGFzcyBGbG9h
dFJlY3Q7CitjbGFzcyBGbG9hdFNpemU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOworY2xhc3MgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDsKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGUgOiBw
dWJsaWMgV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGljOgorICAgIFJlbW90ZVJl
c291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYsIFdlYlBhZ2UmKTsKKworICAgIGJv
b2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSBjb25zdDsKKyAgICB2b2lkIGRyYXdCYWRnaW5n
Qm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6QmFkZ2U+Jik7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+
IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNo
b3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSk7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZv
aWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
Y29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZWxlYXNl
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVsZWFzZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2
ZUltYWdlUHRyJik7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKworcHJpdmF0ZToK
KyAgICB1c2luZyBSZW1vdGVDbGllbnRzSGFzaFNldCA9IEhhc2hTZXQ8V2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyPjsKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAg
PSBIYXNoTWFwPFdlYkNvcmU6OkltYWdlQnVmZmVyKiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyPjsKKyAgICB1c2luZyBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFw
PFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXI+OworICAgIHVzaW5nIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgPSBIYXNoTWFwPFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlQ2xpZW50c0hhc2hTZXQ+Owor
ICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwID0gSGFzaE1h
cDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIqPjsKKworICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29u
c3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGltYWdlKSBvdmVycmlkZSB7IHJlbGVhc2VOYXRp
dmVJbWFnZShpbWFnZSk7IH0KKworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciBmaW5kSW1hZ2VCdWZmZXJGb3JDbGllbnQoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciBmaW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoV2ViQ29yZTo6Q2FjaGVkSW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKworICAgIHZvaWQgYWRkUmVtb3Rl
Q2xpZW50KFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIFZlY3RvcjxX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+IHJlbW92ZVJlbW90ZUNsaWVudChSZW1v
dGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291
cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKworICAgIFJlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVySGFz
aE1hcDsKKyAgICBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRpdmVJbWFnZUhh
c2hNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3JlbW90ZVJlc291cmNl
Q2xpZW50c0hhc2hNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3JlbW90
ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcDsKKyAgICBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJIYXNoTWFwOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDFh
ZTUxNTcyNTM2MWQyMjgyMTkxNGFlZDBmMjhiYjE2ZTc2MzU4ZmYuLjMwMDUwYWMwN2RjOWFkNWM4
M2YzZGUyODMyOTA2YTk4NzQxMGQzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViR2FtZXBhZC5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDc2YzBkMWZjOGFhMDkwZGRlNDYyY2IyMWUyNGEyMzRmMTAwYWNmZTEu
LjhiMWUzMDg5MTIyODU5NmNmZTA3YTJmOTE3MWU3ODVkMjUyM2Y3M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRv
cj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGYKIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQmIFdlYkNocm9tZUNsaWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUobV9wYWdlKTsKICAgICByZXR1cm4gKm1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411140</attachid>
            <date>2020-10-12 12:13:07 -0700</date>
            <delta_ts>2020-10-12 12:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012121306.patch</filename>
            <type>text/plain</type>
            <size>224663</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uZGU0ODM4NTIzZTQzOWU0MjJmNWY5YjExYTc2ZWU0
NGEyODRiYjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMiBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg6IEFkZGVkLgorCisy
MDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0bWFwSW1hZ2UgZnJhbWUgaW4gR1BV
IFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdpdGggaXRzIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFnZSB3aWxsIGJlIGNhY2hlZCBpbiB0
aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2YgQml0bWFwSW1hZ2UgaGF2ZSBhIHdl
bGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2Vzcy4KKyAgICAgICAgVGhlIGNv
dW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mgd2lsbCBoYXZlIGEgc2ltaWxhciBs
aWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBpcyBkcmF3biBmb3IgdGhlIGZpcnN0
IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2ViCisgICAgICAgIFByb2Nlc3Mgdmlh
IGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2VzcyBhbmQgY2FjaGVkIHVuZGVyIGEg
dW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3aGljaCB3aWxsIGJlIHVz
ZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAgICAgICAgaXRlbS4gV2hlbiB0aGUg
Qml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBkZWNvZGVkIGZyYW1lLCBhIG1lc3Nh
Z2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdlYiBQcm9jZXNzIHRvIHRoZSBHUFUg
UHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAgICBmcmFtZS4gSGVyZSBpcyB0aGUg
c2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAgVGhlIGRyYXdpbmcgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMSkgQml0bWFw
SW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpkcmF3TmF0aXZlSW1hZ2UoKS4KKyAg
ICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFn
ZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgIENhY2hlZEltYWdlIGFuZCBjYWxs
cyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpLgorICAgICAgICAzKSBSZWNvcmRl
cjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
KSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNoIGlzIFJlbW90ZUltYWdlQnVmZmVy
IGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAgNCkgUmVtb3RlSW1hZ2VCdWZmZXIg
Y2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGljaCBjYWxscyBpdHMKKyAgICAgICAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSgpLgorICAg
ICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0cyBmaW5kTmF0aXZlSW1hZ2VGb3JD
bGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhlIE5hdGl2ZUltYWdlIGluIHRoZSBj
YWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUgYXMgYSBjbGllbnQKKyAgICAgICAg
ICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUgUHJvY2VzcyB0byBjYWNoZSBpdCBh
bHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
IFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRoZSAKKyAgICAgICAgICAgRHJhd05h
dGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci4KKworICAg
ICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxv
d2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRoZSBEcmF3aW5nQ29udGV4dCBoYXBw
ZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAgICAgICAgIHJlcGxheWVkIGJhY2su
IERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxscyBhcHBseSgpIG9mIGl0cworICAg
ICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhlIGNhc2Ugb2YgMkQgY2FudmFzLCB0
aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KKyAgICAgICAg
ICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlS
ZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2
ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZlSW1hZ2UKKyAgICAgICAgICAgd2hv
c2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgb2YgdGhlIERy
YXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUgTmF0aXZlSW1hZ2UgaXMgZm91bmQs
IGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9mIHRoZQorICAgICAgICAgICBhcmd1
bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNl
IGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIEltYWdl
U291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0aGUgSW1hZ2VPYnNlcnZlciB3aGVu
IGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisg
ICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdp
bGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIENhY2hlZElt
YWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKS4K
KyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRoZSBDYWNoZWRJbWFnZUNsaWVudHMg
dG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2UgUmVtb3RlUmVzb3VyY2VDYWNoZSBy
ZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGllbnQgb2YKKyAgICAgICAgICAgdGhp
cyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0
cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgNSkgVGhlIGNhY2hl
ZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0aGUgY2FjaGUgYW5kIGEgbWVzc2Fn
ZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQVSBQcm9jZXNzIHdoZW4gbm8gcmVt
b3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAgICAgICAgIE5hdGl2ZUltYWdlLgor
CisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBHUFUgUHJvY2VzcyBpcyB0aGUg
Zm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQKKyAgICAgICAgICAgTmF0aXZlSW1h
Z2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKworICAgICAgICAqIGh0bWwvSW1h
Z2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6ZHJhd05h
dGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQ6Om5hdGl2ZUlt
YWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjphcHBseSBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJbWFnZVB0ciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aW1hZ2VTaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJ
bWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0p
OgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3Jk
aW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBOYXRpdmVJbWFnZVB0ciB0
byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAgICAgICAgIE5hdGl2ZUltYWdlUHRy
LgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdlSGFuZGxlIGFuZCBhbGxvdyBlbmNv
ZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAgICAgICAgICAgZGlyZWN0bHkuCisg
ICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGlyZWN0aXZlcyBhcm91bmQgdGhlIERp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAgICAgaXRlbSBhbmQgdGhlIG1ldGhv
ZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92ZSB0aGUgZHJhd05hdGl2ZUltYWdl
KCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBjYWxsZXJzLgorICAgICAgICA1KSBJ
biB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcgY29tbWFuZHMsIG1ha2UgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBwcm9jZXNzIGRyYXdpbmcgdGhlIGlt
YWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNvbW1hbmRzIGFyZQorICAgICAgICAg
ICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFnZSB3aWxsIHJlbmRlciBhIE5hdGl2
ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBTVkdJbWFnZSB3aWxsIHJlY29yZCBp
dHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUlt
YWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90
ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgLS0gR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERpc3BsYXlMaXN0OjpSZWNvcmRlciB0
byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFwcHJvcHJpYXRlIHRvIGNyZWF0ZSBE
cmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAgICAgLS0gRGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBkZWxlZ2F0ZSB0byB0byBjcmVhdGUK
KyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIC0tIFNpbmNl
IFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdh
dGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVy
SXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxsIGJlIGNhbGxlZCBuZXh0CisgICAg
ICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVEcmF3SW1h
Z2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFzaE1hcAorICAgICAgICAgICB1c2lu
ZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5kcyBpdCwgaXQgd2lsbCBjcmVhdGUg
dGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIFRoZSBzZXF1ZW5jZSBpbiB0aGUg
R1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAtLSBXaGVuIHJlcGxheWlu
ZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6OlJlcGxheWVyIHdpbGwgY2FsbAor
ICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYgaXQgd2FudHMgdG8gYXBwbHkgdGhl
IERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNhdXNlIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSwKKyAgICAgICAg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3aWxsIGJlIGNhbGxlZC4KKworICAg
ICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwgY2FsbCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAgICAgICAgICAgd2hpY2ggd2lsbCBw
YXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgLS0gUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNlSXRlbSgpIHdpbGwgc2VhcmNoIGZv
ciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdob3NlIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAgICAgRHJhd0ltYWdlQnVmZmVyLiBB
bmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdyYXBoaWNzQ29udGV4dC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6RHJh
d0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF4
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6T2JzZXJ2ZXI6On5PYnNl
cnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHA6
CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9k
dWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0
aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8gSW1hZ2VCdWZmZXIgd2hpY2ggdXNl
ZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxyZWFkeSBvdmVycmlkZGVuCisgICAg
ICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlzIGNhbGxlZCBieSBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkga2Vl
cHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgd2lsbCBiZSB1c2VkIGluIFdlYkNv
cmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBhIHJlbW90ZSBJbWFnZUJ1ZmZlciB0
byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1YWxseSBpdCB3aWxsCisgICAgICAg
IGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFnZSB0byBhIHJlbW90ZSBJbWFnZUJ1
ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMDkg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNwbGF5TGlzdFJlY29yZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2NmU5YTBlNjQ3OGUuLmZmM2NiMzVi
MmJmMGVkMmQwNzg2NTdhM2RlMTE1ZTczMGFhNzc5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjc0
IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBh
IGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdlIGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBh
bGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZv
ckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxp
c3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUlt
YWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRs
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRy
YXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVt
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0lt
YWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVt
b3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJl
bW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVkaW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xl
IGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAg
IHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRo
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8gaXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisK
KyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9u
IGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAgICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNl
Q2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAg
IGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAgICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFz
aE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAg
ICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAgICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAgdHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVy
ZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVzZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdo
aWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3
aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFz
aFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNv
dXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWlyIGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVp
cgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMgd2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291
cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hlCisgICAgICAgIGlzIHJlcXVlc3RlZCB0byBy
ZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBpdCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisg
ICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2YgcmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQg
bW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAgICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhlciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAg
IC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAgICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4gYW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291
cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGllbnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBS
ZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAKKyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVs
ZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdlbGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6
cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToKKyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVz
b3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xp
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90
ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwgdGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMg
YSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBo
YXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0NvbnRleHQuIEl0J3MgdGltZSB0byBib29rLQor
ICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZlcmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRo
ZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAgICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1v
dGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNl
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUg
R1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5h
Z2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAgICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFs
IGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAg
ICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBt
YW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2Ug
Y2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1
c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNz
LiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0
bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3Rl
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVkcyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZv
ciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5kIAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMg
YW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwK
KyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJl
bW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBh
ZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5nIHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRl
eHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1
YjUyNTQwMGZlLi40NWFmOGYxYWJhYWNkMjhkNDI0MDc4MDE0YTFiZTE0MWU2NGJjMzY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCkBAIC0xMTk0LDYgKzExOTUsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5m
by5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1No
aW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aC5oCkBAIC0xMjA3LDYgKzEyMDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJh
Y2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2Rh
ZjQwMDRiMzY4YTkwZThkYTFkNTIwNmQuLmI1ZjBkZDY5MWM4ZjY2NGNlZGJiMjQ5NTA2YWYyNzhi
ZDg2MmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODkzLDYgKzE4OTMsNyBAQCBwbGF0Zm9ybS9n
cmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEV4dHJhcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQx
MDEwMDAyMS4uYmFlZDUyMTZlZTY0NzRkNWFkMDAwMDJlYTJiOTVmZDMxZWZmNmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjAwNyw3ICsyMDA3LDYgQEAKIAkJNkE3Mjc5OEIxRjE2QzI5QzAwM0YzOUI4IC8qIEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjFGNDgxMTIyOThBMzdFMDBE
RThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIxRjQ4MEYyMjk4OUVDNDAwREU4Qjgy
IC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNG
ODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZElu
U3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNG
MDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2
aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI1MDdBMjEyMzRCRjM0MTAwQkU3QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4u
aCAqLzsgfTsKQEAgLTIxNTUsMTIgKzIxNTQsMTYgQEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEy
RkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93
bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAw
RkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIz
MUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAw
N0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICov
OyB9OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1
QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlC
QzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTMwMjUzMTQy
NDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAv
KiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3MjlEMDUzQzI1MzJFRUUzMDA0MjIwOTggLyogTmF0aXZl
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5
OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNC
RUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgz
IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CkBAIC05NDg3LDcgKzk0OTAsNiBAQAogCQk2
QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRh
VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIzNDgwOTIwRUVGNTBE
NDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEy
QjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9n
Z2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkMyMzk4
M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Z2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MTIy
MjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
Z2lzdHJhYmxlRG9tYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTAxLDYg
Kzk5MDMsOCBAQAogCQk3MjFCNDk2RjI1MTJBQzA0MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNr
aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQml0bWFwQmFja2luZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFn
ZUJpdG1hcEJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCaXRtYXBCYWNraW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBB
bmltYXRpb25GcmFtZVJhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRnJhbWVSYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAv
KiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQjAy
NTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI0RUQzMjkxQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkExQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5k
TWluTWF4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVEMzJCMUEzQTdFNTQwMEY1RjEz
QyAvKiBFWFRCbGVuZE1pbk1heC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUQmxlbmRN
aW5NYXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTkyMyw2ICs5OTI3LDgg
QEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdl
UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tl
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJC
YWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMy
ODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxNDEsNiArMjYxNDcsOCBAQAogCQkJCTJE
MkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1
OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1
OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oICovLAorCQkJCTcyMzFCRUFG
MjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcy
MzFCRUIwMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJ
CQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAog
CQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovLAog
CQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMuaCAqLywKQEAgLTI2MjIwLDggKzI2MjI4LDggQEAKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAz
NkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4
MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTMxNEJFM0E1MUIzMTAz
RkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLywKLQkJCQk2QjM0ODA5
MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLywKIAkJCQk1NUEzMzZGNjFEODIw
OUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLywKKwkJCQk3MjlEMDUzOTI1MzJEMkU3MDA0
MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCAqLywKIAkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2
NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGgu
aCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRl
LmNwcCAqLywKQEAgLTI2MjM5LDYgKzI2MjQ3LDcgQEAKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCiAJCQkJQkNBQjQxN0YxM0UzNTZFODAw
RDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8q
IFJlZ2lvbi5oICovLAorCQkJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggKi8sCkBAIC0zMTYxNCw2ICszMTYyMyw3IEBACiAJCQkJMkQ0ODFGMDQx
NDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzIzMUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdC
IC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhG
QUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjgsNyArMzMxNzgsOCBAQAogCQkJCTMxNEJFM0E3
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJ
bWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5RDA1M0MyNTMyRUVFMzAwNDIyMDk4IC8qIE5h
dGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzRDI1MzJFRjkxMDA0MjIwOTgg
LyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjJEMTc1MUI4QkNENkEw
MEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2
QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMzU0MSw2ICszMzU1Miw3IEBACiAJCQkJNDZCOTUxOUEyMDdENjM1
NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMzMTJFOTIy
RkNEN0MwMDAxMjA0RUMgLyogUmVtb3RlUGxheWJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzMxMkVCMjJGQ0Q3QzkwMDEyMDRFQyAvKiBSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzNBMTU1NDIxNzdB
NDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQw
NkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCA0Mzli
NmE5ZDdkODEyMGQ5MWUxZTFhZmM1NmQxYWFmNmJlMGI0OWU0Li42MmY1OWQ2OTJiN2YzNmQ2OTk1
NzRhZDUwYzgxOGY5OTk3M2Q3MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApA
QCAtNjAxLDEwICs2MDEsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5n
ZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcpIG92ZXJyaWRlIHsgfQogCisgICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQorCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IElt
YWdlJikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25z
dCBJbWFnZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGltYWdlRnJhbWVB
dmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0
KiA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIG92
ZXJyaWRlIHsgfQorICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1h
Z2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIG92ZXJyaWRlIHsgfQorCiAgICAgdm9pZCBjaGFu
Z2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSBvdmVycmlk
ZSB7IH0KICAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKGNvbnN0IEltYWdlJikgb3Zl
cnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNzFhNDcwNjA2NDRiZjgxOTAx
MzliYTVlNDUxNjljM2JkODUyNTIxYi4uNjMzZWZjOTU1MWZmMDdiNTkzNDdjNjViNDJhOGZiN2Nh
MWQ4MGVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTE1MzAsOSArMTUzMCw5IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShE
b2N1bWVudCYgZG9jdW1lbnQsIENhCiAgICAgfQogCiAgICAgaWYgKGltYWdlLT5pc0JpdG1hcElt
YWdlKCkpIHsKLSAgICAgICAgLy8gRHJhd2luZyBhbiBhbmltYXRlZCBpbWFnZSB0byBhIGNhbnZh
cyBzaG91bGQgZHJhdyB0aGUgZmlyc3QgZnJhbWUgKGV4Y2VwdCBmb3IgYSBmZXcgbGF5b3V0IHRl
c3RzKQotICAgICAgICBpZiAoaW1hZ2UtPmlzQW5pbWF0ZWQoKSAmJiAhZG9jdW1lbnQuc2V0dGlu
Z3MoKS5hbmltYXRlZEltYWdlRGVidWdDYW52YXNEcmF3aW5nRW5hYmxlZCgpKQotICAgICAgICAg
ICAgaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLT5uYXRpdmVJbWFnZSgpKTsKKy8v
ICAgICAgICAvLyBEcmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNob3VsZCBk
cmF3IHRoZSBmaXJzdCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMpCisvLyAg
ICAgICAgaWYgKGltYWdlLT5pc0FuaW1hdGVkKCkgJiYgIWRvY3VtZW50LnNldHRpbmdzKCkuYW5p
bWF0ZWRJbWFnZURlYnVnQ2FudmFzRHJhd2luZ0VuYWJsZWQoKSkKKy8vICAgICAgICAgICAgaW1h
Z2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLT5uYXRpdmVJbWFnZSgpKTsKICAgICAgICAg
ZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50
LnNldHRpbmdzKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKaW5kZXggNWNjOTMzODMyNTc0ZGNiZWJlZDgyYzJjMGJjZThmMDBjMmJjYTcy
ZS4uODJkMjkxOWM4M2NhN2M0MGJlYjNmOTAyZjhjNmM3OGJlZTdlYmRjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC00MTEsNiArNDExLDE3IEBA
IHZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRlY29kZWRTaXplQ2hhbmdl
ZChjb25zdCBJbWFnZSYgaW1hZ2UsIGxvCiAgICAgICAgIGNhY2hlZEltYWdlLT5kZWNvZGVkU2l6
ZUNoYW5nZWQoaW1hZ2UsIGRlbHRhKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1h
Z2VPYnNlcnZlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiBpbWFnZSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
eworICAgIGZvciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKSB7CisgICAgICAg
IGlmICgmaW1hZ2UgIT0gY2FjaGVkSW1hZ2UtPmltYWdlKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIGltYWdlU2l6
ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1h
Z2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIHZvaWQgQ2FjaGVkSW1h
Z2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRpZERyYXcoY29uc3QgSW1hZ2UmIGltYWdlKQogewog
ICAgIGZvciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKQpAQCAtNDM0LDYgKzQ0
NSwxMiBAQCB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjppbWFnZUZyYW1l
QXZhaWxhYmxlKGNvbnN0IEltYWdlJiBpbWFnZSwgSQogICAgICAgICBjYWNoZWRJbWFnZS0+aW1h
Z2VGcmFtZUF2YWlsYWJsZShpbWFnZSwgYW5pbWF0aW5nU3RhdGUsIGNoYW5nZVJlY3QsIGRlY29k
aW5nU3RhdHVzKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6
bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBjb25zdCBOYXRp
dmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgZm9yIChhdXRvIGNhY2hlZEltYWdlIDog
bV9jYWNoZWRJbWFnZXMpCisgICAgICAgIGNhY2hlZEltYWdlLT5uYXRpdmVJbWFnZVdpbGxCZURl
c3Ryb3llZChpbWFnZSwgbmF0aXZlSW1hZ2UpOworfQorCiB2b2lkIENhY2hlZEltYWdlOjpDYWNo
ZWRJbWFnZU9ic2VydmVyOjpjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiBpbWFnZSwgY29uc3Qg
SW50UmVjdCogcmVjdCkKIHsKICAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZElt
YWdlcykKQEAgLTY4OSw2ICs3MDYsMTYgQEAgdm9pZCBDYWNoZWRJbWFnZTo6aW1hZ2VGcmFtZUF2
YWlsYWJsZShjb25zdCBJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3RhdGUgYW4KICAgICAg
ICAgbV9jbGllbnRzV2FpdGluZ0ZvckFzeW5jRGVjb2RpbmcuY2xlYXIoKTsKIH0KIAordm9pZCBD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdl
LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgaWYgKCZpbWFnZSAh
PSBtX2ltYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdh
bGtlcjxDYWNoZWRJbWFnZUNsaWVudD4gY2xpZW50V2Fsa2VyKG1fY2xpZW50cyk7CisgICAgd2hp
bGUgKENhY2hlZEltYWdlQ2xpZW50KiBjbGllbnQgPSBjbGllbnRXYWxrZXIubmV4dCgpKQorICAg
ICAgICBjbGllbnQtPm5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKG5hdGl2ZUltYWdlKTsKK30K
Kwogdm9pZCBDYWNoZWRJbWFnZTo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYgaW1hZ2UsIGNv
bnN0IEludFJlY3QqIHJlY3QpCiB7CiAgICAgaWYgKCZpbWFnZSAhPSBtX2ltYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAppbmRleCA3MmQ1OWMxZmY0ODQ1YzIz
Mjc1OTIwYmM4ZDEyZjI3MzQzMjdmNzJjLi44Njc5ODMyYTRjYzEwYmM2NGY3YTNlNTRiMjU5YmU1
M2ZhNzEyOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApA
QCAtMTQ5LDEwICsxNDksMTQgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lkIGVuY29kZWREYXRh
U3RhdHVzQ2hhbmdlZChjb25zdCBJbWFnZSYsIEVuY29kZWREYXRhU3RhdHVzKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcgZGVs
dGEpIGZpbmFsOworCisgICAgICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgICAgICB2b2lk
IGRpZERyYXcoY29uc3QgSW1hZ2UmKSBmaW5hbDsKIAogICAgICAgICBib29sIGNhbkRlc3Ryb3lE
ZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpIGZpbmFsOwogICAgICAgICB2b2lkIGltYWdlRnJhbWVB
dmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0
KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6
SW52YWxpZCkgZmluYWw7CisgICAgICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQo
Y29uc3QgSW1hZ2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIGZpbmFsOworCiAgICAgICAgIHZv
aWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IEludFJlY3QqKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpIGZpbmFsOwog
CkBAIC0xNjQsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERyYXcoY29uc3QgSW1h
Z2UmKTsKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpOwogICAg
IHZvaWQgaW1hZ2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3Rh
dGUsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9
IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKTsKKyAgICB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVz
dHJveWVkKGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKICAgICB2b2lkIGNo
YW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0Kik7CiAgICAgdm9pZCBzY2hl
ZHVsZVJlbmRlcmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVudC5oCmluZGV4IGJhNjQ0NWI3ZWE3ZWQ5NjNk
NjFiZmYzMGYyOGE5YTRlZDdmOWMxMzYuLjIxYWFmMDdmMWJiNWQ1M2I5Mjk0MjI0YjY0NDM3MmFi
ZDM1MmIwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNs
aWVudC5oIgogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVB0
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDggQEAgcHVibGljOgog
ICAgIC8vIENhbGxlZCB3aGVuIGEgbmV3IGRlY29kZWQgZnJhbWUgZm9yIGEgbGFyZ2UgaW1hZ2Ug
aXMgYXZhaWxhYmxlIG9yIHdoZW4gYW4gYW5pbWF0ZWQgaW1hZ2UgaXMgcmVhZHkgdG8gYWR2YW5j
ZSB0byB0aGUgbmV4dCBmcmFtZS4KICAgICB2aXJ0dWFsIFZpc2libGVJblZpZXdwb3J0U3RhdGUg
aW1hZ2VGcmFtZUF2YWlsYWJsZShDYWNoZWRJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3Rh
dGUsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QpIHsgaW1hZ2VDaGFuZ2VkKCZpbWFnZSwgY2hh
bmdlUmVjdCk7IHJldHVybiBWaXNpYmxlSW5WaWV3cG9ydFN0YXRlOjpObzsgfQogCisgICAgdmly
dHVhbCB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IE5hdGl2ZUltYWdlUHRy
JikgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQ2FjaGVkSW1hZ2VDbGllbnQoQ2Fj
aGVkSW1hZ2UmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZUZvckltYWdlKENhY2hlZEltYWdlJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5oCmluZGV4IGExNDEzYzZmNjc5YjE1ZTkwN2M3YjZjZmE3NjA1ZjI3MGUyZjk1
NTcuLjU3NDQ3ZmYxYWYwNDZjNjQ4ZTg0ZDk3NmFiZjAwNjEwYmYwMDI4ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCkBAIC0yNCw3ICsyNCw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAppbmRleCBiNDc2YTM1YjgyZDkzNzA4ZDNiMGYyYjRkMWE2ZDI1NDgxMmQwZTExLi4wYWY2
YzNkOGIyMzE4NTE3Nzg5YjA3MjM0NWY5Njc0M2IxZDdmNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2lu
Y2x1ZGUgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCkBA
IC0yMDQsNiArMjA1LDI0IEBAIGJvb2wgQml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQog
I2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoQml0bWFwSW1hZ2UmIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICAvLyBTdWJzYW1wbGluZyBtYXkg
aGF2ZSBnaXZlbiB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBzaXplKCkuCisgICAg
SW50U2l6ZSBzdWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKG5hdGl2ZUltYWdl
KTsKKyAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisg
ICAgICAgIHN1YnNhbXBsZWRJbWFnZVNpemUgPSBzdWJzYW1wbGVkSW1hZ2VTaXplLnRyYW5zcG9z
ZWRTaXplKCk7CisKKyAgICAvLyBzcmNSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUg
dW5zdWJzYW1wbGVkIGltYWdlLCBzbyB3ZSBoYXZlIHRvIG1hcCBpdCB0byB0aGUgc3Vic2FtcGxl
ZCBpbWFnZS4KKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBp
ZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQorICAgICAgICBhZGp1c3RlZFNyY1Jl
Y3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1NpemUpLCBGbG9hdFJlY3Qo
eyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7CisKKyAgICBpZiAoaW1hZ2UuaW1hZ2VPYnNlcnZl
cigpKQorICAgICAgICBpbWFnZS5pbWFnZU9ic2VydmVyKCktPmRyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgY29udGV4dCwgbmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBh
ZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOworICAgIGVsc2UKKyAgICAgICAgY29udGV4dC5kcmF3
TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBh
ZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0Vt
cHR5KCkpCkBAIC0yOTIsOSArMzExLDkgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBh
dXRvIG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbigpOwogICAgIGlmIChvcmllbnRh
dGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIHsKICAgICAgICAgb3JpZW50YXRp
b24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7Ci0gICAgICAgIGRy
YXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUo
c2l6ZShvcmllbnRhdGlvbikpLCB7IG9wdGlvbnMsIG9yaWVudGF0aW9uIH0pOworICAgICAgICBk
cmF3TmF0aXZlSW1hZ2UoKnRoaXMsIGNvbnRleHQsIGltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwg
SW50U2l6ZShzaXplKG9yaWVudGF0aW9uKSksIHsgb3B0aW9ucywgb3JpZW50YXRpb24gfSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGRyYXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJl
Y3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKKyAgICAg
ICAgZHJhd05hdGl2ZUltYWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKIAogICAgIG1fY3VycmVu
dEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJl
bnRGcmFtZSk7CiAKQEAgLTM3OSw3ICszOTgsNyBAQCBTdWJzYW1wbGluZ0xldmVsIEJpdG1hcElt
YWdlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0b3IoR3JhcGhpY3NDb250ZXh0JiBjbwog
ewogI2lmIFVTRShDRykKICAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRy
YXdpbmcgaW50byBQREYgY29udGV4dHMuCi0gICAgaWYgKENHQ29udGV4dEdldFR5cGUoY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCisgICAgaWYgKGNvbnRl
eHQuaGFzUGxhdGZvcm1Db250ZXh0KCkgJiYgQ0dDb250ZXh0R2V0VHlwZShjb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpKSA9PSBrQ0dDb250ZXh0VHlwZVBERikKICAgICAgICAgcmV0dXJuIFN1YnNh
bXBsaW5nTGV2ZWw6OkRlZmF1bHQ7CiAKICAgICBmbG9hdCBzY2FsZSA9IHN0ZDo6bWluKGZsb2F0
KDEpLCBzdGQ6Om1heChzY2FsZUZhY3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggNTU1Y2M2NjQ1NzBhMzRiZWE5OTVkZWNjZDUyYWM4NjFmNWZlMzE0NC4u
NzExM2Q3ZjY0ZTFhNzYyODk4MWZjMDk5NmZkNjhkODY4NTI2YjNkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03
MzEsNiArNzMxLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3QmlkaVRleHQoY29uc3Qg
Rm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBiaWRpUnVucy5jbGVh
cigpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSkKK3sKKyAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9p
bXBsKSB7CisgICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFnZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBwbGF0Zm9ybURyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIEltYWdlRHJhd1Jlc3VsdCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRl
c3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlv
bnMpCiB7CiAgICAgcmV0dXJuIGRyYXdJbWFnZShpbWFnZSwgRmxvYXRSZWN0KGRlc3RpbmF0aW9u
LCBpbWFnZS5zaXplKCkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZS5zaXplKCkpLCBp
bWFnZVBhaW50aW5nT3B0aW9ucyk7CkBAIC03NDcsNyArNzYwLDcgQEAgSW1hZ2VEcmF3UmVzdWx0
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW4KICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gSW1h
Z2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBpZiAobV9p
bXBsICYmIGltYWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKQogICAgICAgICByZXR1cm4gbV9pbXBs
LT5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogCiAgICAg
SW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhp
c1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwpAQCAtNzU5LDcg
Kzc3Miw3IEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdl
KEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkCiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAg
IGlmIChtX2ltcGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5pc1BERkRvY3VtZW50SW1hZ2Uo
KSkKICAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIAogICAgIEludGVycG9s
YXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgq
dGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKQEAgLTc3Miw3ICs3ODUsNyBA
QCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAg
ICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICBpZiAobV9p
bXBsKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQREZEb2N1bWVudEltYWdlKCkpCiAgICAg
ICAgIHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucyk7CiAKICAgICBpZiAo
aFJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlICYmIHZSdWxlID09IEltYWdlOjpTdHJldGNoVGls
ZSkgewpAQCAtNzk5LDYgKzgxMiw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpCiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1faW1wbCAm
JiBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0
aW9ucykpCisgICAgICAgIHJldHVybjsKKwogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRh
aW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRl
cnBvbGF0aW9uUXVhbGl0eSgpKTsKICAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwg
c291cmNlLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZGI0YzAwMmVjY2QyMmU2ZmU5NDA4N2M2OWY5
MTI4ZDQyODk5MjdiZi4uMjUxOWQ3YmVhMTgyMTk4N2Y3MWJhNzBmNDQxZjJmZmIwNWQyYmYwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKQEAgLTg2LDYgKzg2LDcgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiAjZW5kaWYKIAogY2xh
c3MgQWZmaW5lVHJhbnNmb3JtOworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFJvdW5k
ZWRSZWN0OwogY2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwpAQCAt
MzM0LDEwICszMzUsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVT
RShESVJFQ1QyRCkgfHwgVVNFKENBSVJPKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwotI2VuZGlmCi0KICNpZiBVU0UoQ0cp
IHx8IFVTRShESVJFQ1QyRCkKICAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpOwogICAgIHZv
aWQgYXBwbHlGaWxsUGF0dGVybigpOwpAQCAtMzgzLDYgKzM4MCw4IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBs
aW5lV2lkdGgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IHsgfSwgQ2FjaGVkSW1hZ2UqID0gbnVsbHB0cik7CisKICAgICBXRUJD
T1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRQ
b2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9
KTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwpAQCAtNjUyLDYg
KzY1MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3JtRmlsbFJvdW5kZWRSZWN0KGNv
bnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYpOwogCisgICAgdm9pZCBwbGF0Zm9y
bURyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYg
c2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKwogICAgIEZsb2F0UmVjdCBjb21w
dXRlTGluZUJvdW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JUZXh0KGNvbnN0IEZsb2F0UmVjdCYs
IGJvb2wgcHJpbnRpbmcsIENvbG9yJik7CiAKICAgICBmbG9hdCBkYXNoZWRMaW5lQ29ybmVyV2lk
dGhGb3JTdHJva2VXaWR0aChmbG9hdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NDg5NmM4NjE2MGQ3MTFhMzAxZmNlNTgxYTNmY2U3YmFmZmJmNzA1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmNwcApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0
IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKQoreworICAgIGF1dG8g
cmVjdENvcm5lclBvaW50ID0gWyZdKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgUmVjdENvcm5lciBj
b3JuZXIpIHsKKyAgICAgICAgYXV0byBwb2ludCA9IHJlY3QubG9jYXRpb24oKTsKKyAgICAgICAg
aWYgKGNvcm5lciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkK
KyAgICAgICAgICAgIHBvaW50Lm1vdmUocmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNv
cm5lciA9PSBSZWN0Qm90dG9tTGVmdCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAg
ICAgICAgICAgcG9pbnQubW92ZSgwLCByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHBv
aW50OworICAgIH07CisKKyAgICBhdXRvIHJlY3RDb3JuZXJSZWN0ID0gWyZdKGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSBzaXplKSB7Cisg
ICAgICAgIGF1dG8gcG9pbnQgPSByZWN0Q29ybmVyUG9pbnQocmVjdCwgY29ybmVyKTsKKyAgICAg
ICAgaWYgKGNvcm5lciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdo
dCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoLXNpemUud2lkdGgoKSwgMCk7CisgICAgICAgIGlm
IChjb3JuZXIgPT0gUmVjdEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkK
KyAgICAgICAgICAgIHBvaW50Lm1vdmUoMCwgLXNpemUuaGVpZ2h0KCkpOworICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KHBvaW50LCBzaXplKTsKKyAgICB9OworCisgICAgYXV0byBvcHBvc2l0ZUhv
cml6b250YWwgPSBbXShSZWN0Q29ybmVyIGNvcm5lcikgeworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVjdENvcm5lcj4oY29ybmVyIF4gMHgxKTsKKyAgICB9OworCisgICAgYXV0byBvcHBv
c2l0ZVZlcnRpY2FsID0gW10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlY3RDb3JuZXI+KGNvcm5lciBeIDB4Mik7CisgICAgfTsKKworICAgIGF1dG8g
ZHJhd0JhZGdlUmVjdCA9IFsmXShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgYmFkZ2VzUmVjdCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSYgYmFk
Z2VTaXplLCBjb25zdCBGbG9hdFNpemUmIGN1dG9mZlNpemUpIHsKKworICAgICAgICBGbG9hdFJl
Y3QgYmFkZ2VSZWN0ID0gcmVjdENvcm5lclJlY3QoYmFkZ2VzUmVjdCwgY29ybmVyLCBiYWRnZVNp
emUpOworICAgICAgICBGbG9hdFJlY3QgY3V0b2ZmUmVjdCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdl
c1JlY3QsIGNvcm5lciwgY3V0b2ZmU2l6ZSk7CisKKyAgICAgICAgUGF0aCBwYXRoOworCisgICAg
ICAgIGNvcm5lciA9IG9wcG9zaXRlSG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBwYXRoLm1v
dmVUbyhyZWN0Q29ybmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisgICAgICAgIHBhdGgu
YWRkTGluZVRvKHJlY3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworCisgICAgICAg
IGNvcm5lciA9IG9wcG9zaXRlVmVydGljYWwoY29ybmVyKTsKKyAgICAgICAgcGF0aC5hZGRMaW5l
VG8ocmVjdENvcm5lclBvaW50KGJhZGdlUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgY29ybmVy
ID0gb3Bwb3NpdGVIb3Jpem9udGFsKGNvcm5lcik7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHJl
Y3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworICAgICAgICBwYXRoLmFkZExpbmVU
byhyZWN0Q29ybmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgcGF0aC5j
bG9zZVN1YnBhdGgoKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcik7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisgICAgICAgIHJldHVybiBiYWRnZVJlY3Q7
CisgICAgfTsKKworICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gMTsKKyAgICBjb25z
dCBmbG9hdCBob3Jpem9udGFsTWFyZ2luID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6
ZSA9IDEwOworICAgIGNvbnN0IEZsb2F0U2l6ZSBjdXRvZmZTaXplKDMsIDMpOworCisgICAgRm9u
dENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CisgICAgZm9udERlc2NyaXB0aW9u
LnNldE9uZUZhbWlseSgiSGVsdmV0aWNhIik7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNp
ZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUo
Zm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZNb3ZlKGZvbnREZXNjcmlw
dGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgY29udGV4dC5zZXRTdHJv
a2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOwor
ICAgIGNvbnRleHQuc3Ryb2tlUmVjdChib3JkZXJSZWN0LCAwLjUpOworCisgICAgRmxvYXRSZWN0
IGJhZGdlc1JlY3QgPSBib3JkZXJSZWN0OworICAgIGJhZGdlc1JlY3QuaW5mbGF0ZSgtMSk7CisK
KyAgICBmb3IgKGF1dG8gYmFkZ2UgOiBiYWRnZXMpIHsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVu
KGJhZGdlLnRleHQpOworICAgICAgICBmbG9hdCB0ZXh0V2lkdGggPSBjYXNjYWRlLndpZHRoKHRl
eHRSdW4pOworICAgICAgICBGbG9hdFNpemUgYmFkZ2VTaXplKGhvcml6b250YWxNYXJnaW4gKiAy
ICsgdGV4dFdpZHRoLCB2ZXJ0aWNhbE1hcmdpbiAqIDIgKyBmb250U2l6ZSk7CisKKyAgICAgICAg
YXV0byBiYWRnZVJlY3QgPSBkcmF3QmFkZ2VSZWN0KGNvbnRleHQsIGJhZGdlc1JlY3QsIGJhZGdl
LmNvcm5lciwgYmFkZ2VTaXplLCBjdXRvZmZTaXplKTsKKworICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihiYWRnZS5jb2xvcik7CisgICAgICAgIGNvbnRleHQuZHJhd1RleHQoY2FzY2FkZSwg
dGV4dFJ1biwgRmxvYXRQb2ludChiYWRnZVJlY3QueCgpICsgaG9yaXpvbnRhbE1hcmdpbiwgYmFk
Z2VSZWN0LnkoKSArIGZvbnRTaXplKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNmQ2MmZkMmI4ZWQxZWMyOWI2NmYwNzZl
ODQ1NDFiNDkzNTIzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgRmxvYXRSZWN0Owor
CitlbnVtIFJlY3RDb3JuZXIgeworICAgIFJlY3RUb3BMZWZ0ICAgICA9IDB4MDAsCisgICAgUmVj
dFRvcFJpZ2h0ICAgID0gMHgwMSwKKyAgICBSZWN0Qm90dG9tTGVmdCAgPSAweDAyLAorICAgIFJl
Y3RCb3R0b21SaWdodCA9IDB4MDMsCit9OworCitzdHJ1Y3QgQmFkZ2UgeworICAgIFJlY3RDb3Ju
ZXIgY29ybmVyOworICAgIENvbG9yIGNvbG9yOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VC
Q09SRV9FWFBPUlQgdm9pZCBkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiwgY29uc3QgVmVjdG9yPEJhZGdl
PiYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXggM2Q1MDc1YmNl
ZGNiZjUwMjg3MWNkNTUwOTM1ZjUxYWM4ZGIyZjU1Yy4uZjQ0ZDllNTQzYTM5NDQwMzlmZTk4ZmUz
NGMwODMyOTU5MzRjMjg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaApAQCAtNzIsOSArNzIsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1
YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYg
dGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2
UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7Ci0jaWYgVVNFKENHKSB8fCBV
U0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKLSNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2Vs
ZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJbWFnZSopID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNz
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkMzlm
ZWFhODJmMzcxY2Y4YWFmNzZkMjdmMzM1NzNmMzUxOThkMDg5Li5lYTRkNjNhOTRlZDZjZjAyMjNm
ZDllYTA1MDg4YTM3YmQ3MTJkNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmgKQEAgLTMyLDggKzMyLDkgQEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNs
dWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2lu
Y2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW1hZ2VUeXBlcy5oIgot
I2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CkBAIC03Miw3ICs3Myw2IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNz
IEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFzcyBTaGFy
ZWRCdWZmZXI7Ci1zdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnM7CiBzdHJ1Y3QgTGVuZ3RoOwog
CiAvLyBUaGlzIGNsYXNzIGdldHMgbm90aWZpZWQgd2hlbiBhbiBpbWFnZSBjcmVhdGVzIG9yIGRl
c3Ryb3lzIGRlY29kZWQgZnJhbWVzIGFuZCB3aGVuIGl0IGFkdmFuY2VzIGFuaW1hdGlvbiBmcmFt
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApp
bmRleCBkMTQ2NDkyYzRhOGRmOTM1Y2FmOTRiOWZiOTU1OTA5YWFkMWNiYWYwLi5kYmUwMjVlZTll
MWE0NDBmMDJlYTk2NjRhMzRmOThhMGY2YzUxYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0
OwogY2xhc3MgRHJhd2luZ0NvbnRleHQ7CiB9CiAKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQqIGRyYXdpbmdDb250ZXh0
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250
ZXh0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgeyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dpY2Fs
U2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggYzAxMGEwZjBjZmNkOGM1ZTdhYjZjOTRj
NWMzYzM2ZjQ4Mzg2ZDAxZi4uNThmYzE0ODM2ZDkyYWEyMDAxOWYyMGZlZWRjNTU3MWU5YWI1ZTk1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJCYWNrZW5kLmgKQEAgLTMxLDEzICszMSwxNCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXNHTC5oIgogI2luY2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW50
UmVjdC5oIgotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQ
dHIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKIGNsYXNz
IEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaAppbmRleCA4YjA4OWU1OTRjMWFmY2NlZTRmZmI1MDcx
MTU5Nzg3NDY5NWNiMmRlLi5iNGQ3MTBhYzY3MzBjODVkZmVlYTc1ZWFiMGYzZGI2Njc2ZjYwZjJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9ic2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZl
ci5oCkBAIC00NSwxMCArNDUsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVk
RGF0YVN0YXR1c0NoYW5nZWQoY29uc3QgSW1hZ2UmLCBFbmNvZGVkRGF0YVN0YXR1cykgeyB9Owog
ICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxv
bmcgZGVsdGEpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
SW1hZ2UmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJikgPSAwOwogCiAgICAgdmlydHVhbCBib29s
IGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgaW1hZ2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3RhdGUs
IGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9IERl
Y29kaW5nU3RhdHVzOjpJbnZhbGlkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5hdGl2ZUltYWdl
V2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSA9IDA7
CisKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IElu
dFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKGNvbnN0IEltYWdlJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCA3NzUwMzIyMzlh
NWQ1YWJhYTc2M2Y3YTI2M2VkN2NiMjQ1OTgyNjUyLi40NTUxNWM1OWExZmYyODRjZDhkMjgwMzgz
N2IwODViNTAyMmQ2YzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xMzAsOCArMTMwLDEwIEBAIHZvaWQgSW1hZ2VTb3VyY2U6
OmRlc3Ryb3lEZWNvZGVkRGF0YShzaXplX3QgZnJhbWVDb3VudCwgc2l6ZV90IGV4Y2x1ZGVGcmFt
ZSkKICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBtX2ZyYW1lcy5zaXplKCkpOwogCiAgICAgZm9y
IChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGZyYW1lQ291bnQ7ICsraW5kZXgpIHsKLSAgICAg
ICAgaWYgKGluZGV4ID09IGV4Y2x1ZGVGcmFtZSkKKyAgICAgICAgaWYgKGluZGV4ID09IGV4Y2x1
ZGVGcmFtZSB8fCAhbV9mcmFtZXNbaW5kZXhdLm5hdGl2ZUltYWdlKCkpCiAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigp
KQorICAgICAgICAgICAgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigpLT5uYXRpdmVJbWFnZVdpbGxC
ZURlc3Ryb3llZCgqbV9pbWFnZSwgbV9mcmFtZXNbaW5kZXhdLm5hdGl2ZUltYWdlKCkpOwogICAg
ICAgICBkZWNvZGVkU2l6ZSArPSBtX2ZyYW1lc1tpbmRleF0uY2xlYXJJbWFnZSgpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5k
ZXggNmIyZDgxZTM1YjA4Y2Y3NGY0ZjM2MWFlYmM3NGYzMTI5YzdkOWI3Zi4uNDMzNzg3OTBiMjI5
MWVhMDBiMTIwOGUwYTVjYmM5NzI5Zjc3MWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5j
LgogICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KICAqCkBAIC0yNyw1MiAr
MjcsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9u
cy5oIgotCi0jaWYgVVNFKENHKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLXR5cGVkZWYg
c3RydWN0IENHSW1hZ2UqIENHSW1hZ2VSZWY7Ci0jZWxpZiBVU0UoQ0FJUk8pCi0jaW5jbHVkZSAi
UmVmUHRyQ2Fpcm8uaCIKLSNlbGlmIFVTRShXSU5HREkpCi0jaW5jbHVkZSAiU2hhcmVkQml0bWFw
LmgiCi0jZW5kaWYKLQotI2lmIFVTRShESVJFQ1QyRCkKLSNpbmNsdWRlICJDT01QdHIuaCIKLSNp
bmNsdWRlIDxkMmQxLmg+Ci0jaW5jbHVkZSA8d2luY29kZWMuaD4KLSNlbmRpZgorI2luY2x1ZGUg
Ik5hdGl2ZUltYWdlUHRyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7
Ci1jbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBJbnRTaXplOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwotCi0jaWYgVVNFKENHKQotdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTmF0aXZlSW1h
Z2VQdHI7Ci0jZWxpZiBVU0UoRElSRUNUMkQpCi10eXBlZGVmIENPTVB0cjxJRDJEMUJpdG1hcD4g
TmF0aXZlSW1hZ2VQdHI7Ci0jZWxpZiBVU0UoQ0FJUk8pCi10eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOwotI2VsaWYgVVNFKFdJTkdESSkKLXR5cGVkZWYgUmVm
UHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7Ci0jZW5kaWYKIAogV0VCQ09SRV9FWFBP
UlQgSW50U2l6ZSBuYXRpdmVJbWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIGJvb2wg
bmF0aXZlSW1hZ2VIYXNBbHBoYShjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogQ29sb3IgbmF0aXZl
SW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKLQotdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgZmxvYXQgc2Nh
bGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291
cmNlKTsKLQogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJik7Ci0KLWNsYXNzIE5hdGl2ZUltYWdlSGFuZGxlIHsKLXB1YmxpYzoKLSAgICBOYXRpdmVJ
bWFnZVB0ciBpbWFnZTsKLX07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZVB0ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDc3YTg5OGQzOTg3MzY0
MTExNzRmMTlmNzUxNDA3MWQwN2M5NTgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgVVNFKENHKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KK3R5cGVkZWYgc3Ry
dWN0IENHSW1hZ2UqIENHSW1hZ2VSZWY7CisjZWxpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSAiUmVm
UHRyQ2Fpcm8uaCIKKyNlbGlmIFVTRShXSU5HREkpCisjaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKENHKQordHlwZWRlZiBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0UoRElSRUNUMkQp
Cit0eXBlZGVmIENPTVB0cjxJRDJEMUJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0Uo
Q0FJUk8pCit0eXBlZGVmIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOwor
I2VsaWYgVVNFKFdJTkdESSkKK3R5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1h
Z2VQdHI7CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWY1
NDJkZmVjODQ3YWJjMzcxYWEyZjFlOGU0YjhkZDlmYjExMGU1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlbW90ZVJlc291cmNlSWRlbnRpZmllclR5cGUg
eyB9OwordXNpbmcgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCmluZGV4IGExMDQ2NTZjYjVkNWRkZWEwMzIxZGFhNDRhMDQ0NjUxNzUwODhlNGYuLjJhYjlj
ZTNiYmEyNWVhNTQ4NTQ0OGYzNGFhNzc3YWZlMDRlNzM0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAKQEAgLTEyMywxNiArMTIzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKICAg
ICBDYWlybzo6ZHJhd1JlY3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBib3JkZXJUaGlja25l
c3MsIHN0YXRlLmZpbGxDb2xvciwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9rZUNvbG9y
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCkg
ewotICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBB
U1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1dG8mIHN0YXRlID0gdGhpcy0+c3Rh
dGUoKTsKICAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1h
Z2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkgfSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKaW5kZXggYjY1YjRkNjQ0MDZi
ZWI3NmM0MDlkM2U4YzY1NDk3NWNhOWY3ZWI2My4uZmU5MDQ5NTI3YWZlY2VkYjE3YjgxZjYyYzQ2
ZThmMjcxZGI4Mjc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBA
IC0yNzksMTMgKzI3OSwxOSBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENh
aXJvOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCks
IGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVs
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxD
YWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2
b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKikKIHsKICAgICBVTlVTRURfUEFSQU0o
aW1hZ2VTaXplKTsKICAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7
CiAgICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShtX3BsYXRmb3JtQ29udGV4dCwgaW1hZ2UuZ2V0
KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkgfSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwogfQog
Citib29sIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRl
cm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
LmgKaW5kZXggZTVlMjA3NDhjNmQ3NjIwZjEwY2YyMTU2NjI4ZWY3ZTBiZTYwMWM3Yi4uMmMxYzcw
MTU0YzFmYTQ2NjA3MmNlNzIyZmY2NDM2NmY1YWU5NzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvLmgKQEAgLTc0LDcgKzc0LDkgQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0U2l6ZSYsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmLCBDYWNoZWRJbWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgZHJhd0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQ
YXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0
KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRl
eCBlYTM3Yzc4NmVmNmRiNmU1YWZlYjkxNzc5OGZhNTMxYmY5OGFjODRkLi5jMjkyZGI0MmNjMGY5
ZjBmOWM0N2M3OGVkNjljMmQ4MzMxYzk4MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yODAs
MTYgKzI4MCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUo
KQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9
IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0
IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6
OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1h
Z2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRU
aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKaW5kZXggNWNjNWMy
MDdiNDRhNDgzNWJlMmUwODAyOGEzYTcxMDk1YTU1ZTFlMC4uNDAwZDZlZjBhNDU3N2Q1ZDdjYzVi
ZDljYjY0NmE1YmFkZWJkYWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2lu
Y2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUg
IkludFNpemUuaCIKICNpbmNsdWRlICJTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgiCkBAIC02OSw0
MCArNjgsNiBAQCBDb2xvciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAgcmV0dXJuIGNsYW1wVG9Db21wb25lbnRCeXRlczxT
UkdCQT4ocGl4ZWxbMF0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFsz
XSwgcGl4ZWxbMl0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbM10pOwogfQogCi12b2lkIGRyYXdO
YXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKLXsKLSAgICAvLyBTdWJzYW1wbGluZyBtYXkgaGF2ZSBnaXZlbiB1cyBhbiBpbWFn
ZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBzaXplKCkuCi0gICAgSW50U2l6ZSBzdWJzYW1wbGVkSW1h
Z2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKGltYWdlKTsKLSAgICBpZiAob3B0aW9ucy5vcmllbnRh
dGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0gICAgICAgIHN1YnNhbXBsZWRJbWFnZVNpemUg
PSBzdWJzYW1wbGVkSW1hZ2VTaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0KLSAgICAvLyBzcmNSZWN0
IGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgdW5zdWJzYW1wbGVkIGltYWdlLCBzbyB3ZSBo
YXZlIHRvIG1hcCBpdCB0byB0aGUgc3Vic2FtcGxlZCBpbWFnZS4KLSAgICBGbG9hdFJlY3QgYWRq
dXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKLSAgICBpZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBz
cmNTaXplKQotICAgICAgICBhZGp1c3RlZFNyY1JlY3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0
UmVjdCh7IH0sIHNyY1NpemUpLCBGbG9hdFJlY3QoeyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7
Ci0KLSAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgc3Vic2FtcGxlZEltYWdlU2l6
ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgb3B0aW9ucyk7Ci19Ci0KLXZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2UpCi17Ci0gICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGNv
bnRleHQucGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRl
eHQpOwotCi0gICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjZ0NvbnRleHQsIENHUmVjdE1ha2UoZGVz
dGluYXRpb24ueCgpLCBkZXN0aW5hdGlvbi55KCksIHNvdXJjZS53aWR0aCgpLCBzb3VyY2UuaGVp
Z2h0KCkpKTsKLSAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsKLQotICAg
IENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSAvIHNj
YWxlRmFjdG9yOwotICAgIENHRmxvYXQgaW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFn
ZS5nZXQoKSkgLyBzY2FsZUZhY3RvcjsKLQotICAgIENHRmxvYXQgZGVzdFggPSBkZXN0aW5hdGlv
bi54KCkgLSBzb3VyY2UueCgpOwotICAgIENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VIZWlnaHQgLSBk
ZXN0aW5hdGlvbi55KCkgKyBzb3VyY2UueSgpOwotCi0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNn
Q29udGV4dCwgQ0dSZWN0TWFrZShkZXN0WCwgZGVzdFksIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0
KSwgaW1hZ2UuZ2V0KCkpOwotCi0gICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQp
OwotfQotCiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImIGltYWdlKQogewogI2lmIENBQ0hFX1NVQklNQUdFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApp
bmRleCBhNjM4MzY5MjFkOGRmY2ExNjYzOGJkODZhYTkzM2VmYTdlMjY0ZDgxLi5iMzU4OTNjNTgy
ZTQxN2MyYmIzMzUyYTUxNmUzY2I1OWZlMDI0M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApA
QCAtNjIsOCArNjIsOSBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgRHJh
d0ltYWdlLAogICAgIERyYXdUaWxlZEltYWdlLAogICAgIERyYXdUaWxlZFNjYWxlZEltYWdlLAot
I2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgRHJhd05hdGl2
ZUltYWdlLAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBEcmF3SW1hZ2VCdWZmZXIsCiAj
ZW5kaWYKICAgICBEcmF3UGF0dGVybiwKICAgICBEcmF3UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAppbmRleCAyM2NjMDdlOGFlNDQyYmRj
ZWEwZDM2NzRhNWE4NTUxYzY1Y2ZkYzg3Li5kNDYxN2QzNTE2ZjRmM2U1MWQ3NWQ2NDQzNGE2YTM5
NDU3YTAwMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuY3BwCkBAIC0zMyw5ICszMyw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgRGlzcGxheUxpc3QgewogCi1EcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RN
LCBSZWNvcmRlcjo6T2JzZXJ2ZXIqIG9ic2VydmVyKQorRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdD
b250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgaW5pdGlhbENUTSwgUmVjb3JkZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICA6IG1fY29u
dGV4dChbJl0oR3JhcGhpY3NDb250ZXh0JiBkaXNwbGF5TGlzdENvbnRleHQpIHsKLSAgICAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29udGV4dCwgbV9kaXNwbGF5
TGlzdCwgR3JhcGhpY3NDb250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUp
LCBpbml0aWFsQ1RNLCBvYnNlcnZlcik7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJlY29y
ZGVyPihkaXNwbGF5TGlzdENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0
YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUp
OwogICAgIH0pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaAppbmRleCA3YjY3M2YzMmFkODE1YTUwMDgxYjdlN2FiMTA4MTMxNzE3ZmRlNTQzLi4y
MmVkMjU2ZTgwYWQyOTNhMDUyMDY5Yjc0MzA4OGExMzUxZjQ3Y2MwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFt
ZXNwYWNlIERpc3BsYXlMaXN0IHsKIGNsYXNzIERyYXdpbmdDb250ZXh0IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29u
dGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVyOjpPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVyOjpEZWxl
Z2F0ZSogPSBudWxscHRyKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXImIHJlY29yZGVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA2ZmQ5MTJkZmI4ZmUxMWMwOThkZDYx
MjZhOGM4NzhhYzZiYTdhZTAyLi4zMjU5OWUwNjJkN2NmNTlkMWRjMmVhZDAxZTc2MGQ2NmUzZjdl
YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTMy
LDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBJbWFnZUJ1ZmZlciA6IHB1
YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlY29yZGVyOjpP
YnNlcnZlciB7CitjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVy
PEJhY2tlbmRUeXBlPiB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25j
cmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ4LDEy
IEBAIHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlw
ZT4mJiBkYXRhQmFja2VuZCwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgICAgICA6IEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoZGF0YUJhY2tlbmQpKQotICAgICAgICAsIG1fZHJh
d2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RNKHNpemUpLCB0aGlzKQor
ICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RN
KHNpemUpKQogICAgIHsKICAgICB9CiAKLSAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUm
IHNpemUpCi0gICAgICAgIDogbV9kcmF3aW5nQ29udGV4dChzaXplLCBpbml0aWFsRHJhd2luZ0Nv
bnRleHRDVE0oc2l6ZSksIHRoaXMpCisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBSZWNvcmRlcjo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKKyAgICAgICAgOiBt
X2RyYXdpbmdDb250ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgZGVs
ZWdhdGUpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
CmluZGV4IDE4ZDcwY2ZiZDI0MDk4NTg2ODQ0OWZiMzU5YTlmODVlYmRmZDM2MzYuLmYxNWM3NzBl
MWRhNGQ1MWY1ZmE0NjYxZTdjNTBkNzQwNGYzNGFkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZS5o
IgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CiAjaWYgVVNFKENHKQpAQCAtMTA2LDkgKzEwNSwxMSBAQCBzaXplX3QgSXRlbTo6c2l6ZUluQnl0
ZXMoY29uc3QgSXRlbSYgaXRlbSkKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3
VGlsZWRJbWFnZT4oaXRlbSkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZElt
YWdlOgogICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdl
PihpdGVtKSk7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pCiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd05hdGl2ZUltYWdlOgogICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdOYXRp
dmVJbWFnZT4oaXRlbSkpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJh
d0ltYWdlQnVmZmVyPihpdGVtKSk7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0
dGVybjoKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3UGF0dGVybj4oaXRlbSkp
OwpAQCAtNzAzLDMyICs3MDQsMjIgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdUaWxlZFNjYWxlZEltYWdlJiBpdGVtKQogICAgIHJldHVy
biB0czsKIH0KIAotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi1E
cmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQorRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1h
Z2VUeXBlJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd05hdGl2
ZUltYWdlKQotI2lmIFVTRShDRykKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdG9yZSBhbiBpbWFn
ZSBmb3IgQ2Fpcm8uCiAgICAgLCBtX2ltYWdlKGltYWdlKQotI2VuZGlmCiAgICAgLCBtX2ltYWdl
U2l6ZShpbWFnZVNpemUpCiAgICAgLCBtX2Rlc3RpbmF0aW9uUmVjdChkZXN0UmVjdCkKICAgICAs
IG1fc3JjUmVjdChzcmNSZWN0KQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7Ci0jaWYgIVVT
RShDRykKLSAgICBVTlVTRURfUEFSQU0oaW1hZ2UpOwotI2VuZGlmCiB9CiAKIERyYXdOYXRpdmVJ
bWFnZTo6fkRyYXdOYXRpdmVJbWFnZSgpID0gZGVmYXVsdDsKIAogdm9pZCBEcmF3TmF0aXZlSW1h
Z2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cp
Ci0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVz
dGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0KTsKLSNlbmRpZgorICAgIEFTU0VSVChuYXRpdmVJbWFnZVB0cigpKTsKKyAg
ICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZVB0cigpLCBtX2ltYWdlU2l6ZSwg
bV9kZXN0aW5hdGlvblJlY3QsIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKIH0KIAogc3RhdGljIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFn
ZSYgaXRlbSkKQEAgLTczOSw2ICs3MzAsMzMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKICAgICB0cy5k
dW1wUHJvcGVydHkoImRlc3QtcmVjdCIsIGl0ZW0uZGVzdGluYXRpb25SZWN0KCkpOwogICAgIHJl
dHVybiB0czsKIH0KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK0RyYXdJbWFnZUJ1ZmZlcjo6
RHJhd0ltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBEcmF3aW5n
SXRlbShJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyKQorICAgICwgbV9yZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9kZXN0aW5hdGlvblJl
Y3QoZGVzdFJlY3QpCisgICAgLCBtX3NyY1JlY3Qoc3JjUmVjdCkKKyAgICAsIG1fb3B0aW9ucyhv
cHRpb25zKQoreworfQorCitEcmF3SW1hZ2VCdWZmZXI6On5EcmF3SW1hZ2VCdWZmZXIoKSA9IGRl
ZmF1bHQ7CisKK3ZvaWQgRHJhd0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBj
b25zdAoreworICAgIC8vIFNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cyA8
PCBzdGF0aWNfY2FzdDxjb25zdCBEcmF3aW5nSXRlbSY+KGl0ZW0pOworICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVtb3RlLXJlc291cmNlLWlkZW50aWZpZXIiLCBpdGVtLnJlbW90ZVJlc291cmNlSWRl
bnRpZmllcigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZS1yZWN0IiwgaXRlbS5zb3Vy
Y2UoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9u
UmVjdCgpKTsKKyAgICByZXR1cm4gdHM7Cit9CiAjZW5kaWYKIAogRHJhd1BhdHRlcm46OkRyYXdQ
YXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKQEAgLTE0NjksOCArMTQ4Nyw5IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtVHlw
ZSYgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2U6IHRzIDw8ICJkcmF3LWltYWdl
IjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkSW1hZ2U6IHRzIDw8ICJkcmF3
LXRpbGVkLWltYWdlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVk
SW1hZ2U6IHRzIDw8ICJkcmF3LXRpbGVkLXNjYWxlZC1pbWFnZSI7IGJyZWFrOwotI2lmIFVTRShD
RykgfHwgVVNFKENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogdHMg
PDwgImRyYXctbmF0aXZlLWltYWdlIjsgYnJlYWs7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1hZ2UtYnVm
ZmVyIjsgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjogdHMg
PDwgImRyYXctcGF0dGVybiI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OiB0
cyA8PCAiZHJhdy1yZWN0IjsgYnJlYWs7CkBAIC0xNTcxLDEwICsxNTkwLDEzIEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEl0ZW0mIGl0ZW0pCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0
PERyYXdUaWxlZFNjYWxlZEltYWdlPihpdGVtKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKENH
KSB8fCBVU0UoQ0FJUk8pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAg
ICAgICB0cyA8PCBkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW0pOwogICAgICAgICBicmVh
azsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdl
QnVmZmVyOgorICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KGl0ZW0pOwor
ICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgog
ICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3UGF0dGVybj4oaXRlbSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAppbmRleCBjYjY4NGQyM2NlNzViNGZhYjllYzQxMzE2MjdhY2QzMmQ2
MjRhZWRiLi4zYjY0ZDNiYTM0MDc1NDYwMzFlZTliYjBjYWEzMjc2NTlmOTU0ZDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJQYXR0ZXJuLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0x
NDMyLDMyICsxNDMzLDUyIEBAIE9wdGlvbmFsPFJlZjxEcmF3VGlsZWRTY2FsZWRJbWFnZT4+IERy
YXdUaWxlZFNjYWxlZEltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIERy
YXdUaWxlZFNjYWxlZEltYWdlOjpjcmVhdGUoKmltYWdlSGFuZGxlLT5pbWFnZSwgKmRlc3RpbmF0
aW9uLCAqc291cmNlLCAqdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsICppbWFnZVBhaW50
aW5nT3B0aW9ucyk7CiB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVD
VDJEKQogY2xhc3MgRHJhd05hdGl2ZUltYWdlIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHVzaW5nIE5h
dGl2ZUltYWdlVHlwZSA9IFZhcmlhbnQ8TmF0aXZlSW1hZ2VQdHIsIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllcj47CisKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+KG1faW1hZ2UpKQorICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFJlbW90ZVJlc291cmNlSWRlbnRpZmll
cj4obV9pbWFnZSk7CisgICAgfQorCisgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VQdHIo
KSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE5hdGl2
ZUltYWdlUHRyPihtX2ltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gV1RGOjpnZXQ8TmF0aXZlSW1hZ2VQdHI+KG1faW1hZ2UpOworICAgIH0KKyNlbHNl
CisgICAgdXNpbmcgTmF0aXZlSW1hZ2VUeXBlID0gTmF0aXZlSW1hZ2VQdHI7CisKKyAgICBOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZVB0cigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2U7IH0KKyNl
bmRpZgorICAgIHN0YXRpYyBSZWY8RHJhd05hdGl2ZUltYWdlPiBjcmVhdGUoY29uc3QgTmF0aXZl
SW1hZ2VUeXBlJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
dGlvbnMpKTsKICAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5EcmF3TmF0aXZl
SW1hZ2UoKTsKIAorICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlU2l6ZTsgfQogICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1Jl
Y3Q7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvblJlY3Q7IH0KKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFJlZjxEcmF3TmF0aXZlSW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwog
CiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIERyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VUeXBlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKTsKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAK
LSNpZiBVU0UoQ0cpCi0gICAgTmF0aXZlSW1hZ2VQdHIgbV9pbWFnZTsKLSNlbmRpZgorICAgIE5h
dGl2ZUltYWdlVHlwZSBtX2ltYWdlOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKICAgICBG
bG9hdFJlY3QgbV9kZXN0aW5hdGlvblJlY3Q7CiAgICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKQEAg
LTE0NjcsMTAgKzE0ODgsNyBAQCBwcml2YXRlOgogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZv
aWQgRHJhd05hdGl2ZUltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSNp
ZiBVU0UoQ0cpCi0gICAgTmF0aXZlSW1hZ2VIYW5kbGUgaGFuZGxlIHsgbV9pbWFnZSB9OwotICAg
IGVuY29kZXIgPDwgaGFuZGxlOwotI2VuZGlmCisgICAgZW5jb2RlciA8PCBtX2ltYWdlOwogICAg
IGVuY29kZXIgPDwgbV9pbWFnZVNpemU7CiAgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uUmVj
dDsKICAgICBlbmNvZGVyIDw8IG1fc3JjUmVjdDsKQEAgLTE0ODAsMTIgKzE0OTgsMTAgQEAgdm9p
ZCBEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxEcmF3TmF0aXZlSW1hZ2U+PiBEcmF3TmF0
aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotI2lmIFVTRShDRykKLSAgICBP
cHRpb25hbDxOYXRpdmVJbWFnZUhhbmRsZT4gaGFuZGxlOwotICAgIGRlY29kZXIgPj4gaGFuZGxl
OwotICAgIGlmICghaGFuZGxlKQorICAgIE9wdGlvbmFsPE5hdGl2ZUltYWdlVHlwZT4gaW1hZ2U7
CisgICAgZGVjb2RlciA+PiBpbWFnZTsKKyAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotI2VuZGlmCiAKICAgICBPcHRpb25hbDxGbG9hdFNpemU+IGltYWdlU2l6
ZTsKICAgICBkZWNvZGVyID4+IGltYWdlU2l6ZTsKQEAgLTE1MDcsMTQgKzE1MjMsNzUgQEAgT3B0
aW9uYWw8UmVmPERyYXdOYXRpdmVJbWFnZT4+IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgaWYgKCFvcHRpb25zKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0jaWYgVVNFKENHKQotICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlID0gaGFuZGxlLT5p
bWFnZTsKLSNlbHNlCi0gICAgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UgPSBudWxscHRyOwotI2VuZGlm
Ci0gICAgcmV0dXJuIERyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGltYWdlLCAqaW1hZ2VTaXplLCAq
ZGVzdGluYXRpb25SZWN0LCAqc3JjUmVjdCwgKm9wdGlvbnMpOworICAgIHJldHVybiBEcmF3TmF0
aXZlSW1hZ2U6OmNyZWF0ZSgqaW1hZ2UsICppbWFnZVNpemUsICpkZXN0aW5hdGlvblJlY3QsICpz
cmNSZWN0LCAqb3B0aW9ucyk7CiB9Ci0jZW5kaWYKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
K2NsYXNzIERyYXdJbWFnZUJ1ZmZlciA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEcmF3SW1hZ2VCdWZmZXI+IGNyZWF0ZShSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3SW1hZ2VC
dWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRp
b25zKSk7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd0ltYWdlQnVm
ZmVyKCk7CisKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7IH0KKyAg
ICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CisgICAgRmxv
YXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0
OyB9CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
b3B0aW9uczsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAg
ICBXRUJDT1JFX0VYUE9SVCBEcmF3SW1hZ2VCdWZmZXIoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKworICAgIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2Fs
Qm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZGVzdGluYXRpb25SZWN0OyB9CisKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0Owor
ICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRp
b25zOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRHJhd0ltYWdlQnVmZmVy
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7
CisgICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxSZWY8RHJhd0ltYWdlQnVmZmVy
Pj4gRHJhd0ltYWdlQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRp
b25hbDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsK
KyAgICBkZWNvZGVyID4+IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKKyAgICBpZiAoIXJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb247CisgICAgZGVjb2RlciA+PiBkZXN0aW5h
dGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBzb3VyY2U7CisgICAgZGVjb2RlciA+PiBzb3Vy
Y2U7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gb3B0aW9uczsKKyAgICBkZWNvZGVyID4+
IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIERyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCpyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIsICpkZXN0aW5hdGlvbiwgKnNvdXJjZSwgKm9wdGlvbnMpOworfQorI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAogY2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJsaWMgRHJhd2lu
Z0l0ZW0gewogcHVibGljOgpAQCAtMjk3MywxMCArMzA1MCwxMyBAQCB2b2lkIEl0ZW06OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNj
YWxlZEltYWdlOgogICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZElt
YWdlPigqdGhpcyk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8
fCBVU0UoRElSRUNUMkQpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAg
ICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdOYXRpdmVJbWFnZT4oKnRoaXMpOwogICAgICAg
ICBicmVhazsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ltYWdlQnVmZmVyOgorICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdJbWFnZUJ1ZmZl
cj4oKnRoaXMpOworICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdQYXR0ZXJuOgogICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdQYXR0ZXJuPigqdGhp
cyk7CkBAIC0zMTY0LDExICszMjQ0LDE1IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRlbTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3VGlsZWRT
Y2FsZWRJbWFnZTo6ZGVjb2RlKGRlY29kZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19y
ZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwotI2lm
IFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAgICBpZiAoYXV0byBpdGVtID0gRHJhd05hdGl2ZUlt
YWdlOjpkZWNvZGUoZGVjb2RlcikpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5j
ZV9jYXN0PEl0ZW0+KFdURk1vdmUoKml0ZW0pKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICAg
ICAgaWYgKGF1dG8gaXRlbSA9IERyYXdJbWFnZUJ1ZmZlcjo6ZGVjb2RlKGRlY29kZXIpKQorICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVt
KSk7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRl
cm46CiAgICAgICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3UGF0dGVybjo6ZGVjb2RlKGRlY29kZXIp
KQpAQCAtMzMyNiw4ICszNDEwLDkgQEAgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElT
VF9JVEVNKERyYXdHbHlwaHMpCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lU
RU0oRHJhd0ltYWdlKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERy
YXdUaWxlZEltYWdlKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERy
YXdUaWxlZFNjYWxlZEltYWdlKQotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdOYXRpdmVJbWFnZSkKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0o
RHJhd0ltYWdlQnVmZmVyKQogI2VuZGlmCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlM
SVNUX0lURU0oRHJhd1BhdHRlcm4pCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNU
X0lURU0oRHJhd1JlY3QpCkBAIC0zMzg4LDggKzM0NzMsOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd1RpbGVkSW1hZ2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZSwKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlS
TykgfHwgVVNFKERJUkVDVDJEKQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd05hdGl2ZUltYWdlLAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlciwKICNlbmRpZgogICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1BhdHRlcm4sCiAgICAgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAppbmRleCBkZDM1ZWYxYTI4YTkwNzFkYWVmOWEwYThkNzdkOTg0MDFlYTA4
MDFkLi45NTU3NWQwZjQxNGMyZWRlNWYxOTEwMjAwNmUzNmY1ZDg0NGE0NzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlY29yZGVyOjpS
ZWNvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIE9ic2VydmVyKiBv
YnNlcnZlcikKK1JlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIERlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwo
Y29udGV4dCwgaW5pdGlhbENsaXAsIEFmZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCkKLSAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2Rl
bGVnYXRlKGRlbGVnYXRlKQogewogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0
cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1f
c3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBA
IC01MiwxNSArNTIsMTUgQEAgUmVjb3JkZXI6On5SZWNvcmRlcigpCiAgICAgTE9HKERpc3BsYXlM
aXN0cywgIlJlY29yZGVkIGRpc3BsYXkgbGlzdDpcbiVzIiwgbV9kaXNwbGF5TGlzdC5kZXNjcmlw
dGlvbigpLmRhdGEoKSk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFn
ZURhdGEmIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KQordm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVs
dGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11
bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpCiB7Ci0gICAgYXBwZW5kSXRlbShXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UHV0SW1hZ2VEYXRhOjpjcmVhdGUoaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3Jj
UmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KSk7CisgICAgYXBwZW5kSXRlbShQdXRJbWFnZURh
dGE6OmNyZWF0ZShpbnB1dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRl
c3RGb3JtYXQpKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRl
bSYgaXRlbSkKIHsKLSAgICBpZiAobV9vYnNlcnZlcikKLSAgICAgICAgbV9vYnNlcnZlci0+d2ls
bEFwcGVuZEl0ZW0oaXRlbSk7CisgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdh
dGUtPndpbGxBcHBlbmRJdGVtKGl0ZW0pOwogCiAgICAgaWYgKGl0ZW0uaXNEcmF3aW5nSXRlbSgp
CiAjaWYgVVNFKENHKQpAQCAtMTMyLDEyICsxMzIsMjkgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29y
ZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXQKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKLSNpZiBVU0Uo
Q0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotdm9pZCBSZWNvcmRlcjo6ZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVy
OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVk
SW1hZ2UqIGNhY2hlZEltYWdlKQogeworICAgIGlmIChtX2RlbGVnYXRlICYmIGNhY2hlZEltYWdl
KSB7CisgICAgICAgIGlmIChhdXRvIGl0ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3TmF0aXZl
SW1hZ2VJdGVtKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCAq
Y2FjaGVkSW1hZ2UpKSB7CisgICAgICAgICAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KHN0
YXRpY19yZWZlcmVuY2VfY2FzdDxEcmF3aW5nSXRlbT4oaXRlbS5yZWxlYXNlTm9uTnVsbCgpKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CiAgICAgYXBwZW5kSXRlbUFu
ZFVwZGF0ZUV4dGVudChEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VTaXplLCBk
ZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwogfQotI2VuZGlmCisKK2Jvb2wgUmVjb3JkZXI6
OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBpZiAoIW1fZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmIChhdXRvIGl0ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3SW1hZ2VC
dWZmZXJJdGVtKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSkgeworICAgICAg
ICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxEcmF3aW5n
SXRlbT4oaXRlbS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKaW5kZXggOWVlMWQzOTM4ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4u
ZTE0MGJlMTFkN2Q2YTc2NjY3OTYxNTY5ZDE0NWM0ZTMzODVjM2VkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0yOCwxMiArMjgsMTQgQEAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6OlRpbGVSdWxlLgorI2luY2x1ZGUgIlJlbW90ZVJlc291
cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3Q7CitjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHbHlwaEJ1ZmZlcjsKQEAgLTUzLDgg
KzU1LDggQEAgY2xhc3MgUmVjb3JkZXIgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW1wbCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVj
b3JkZXIpOwogcHVibGljOgotICAgIGNsYXNzIE9ic2VydmVyOwotICAgIFdFQkNPUkVfRVhQT1JU
IFJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYsIERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mLCBPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBjbGFzcyBEZWxlZ2F0ZTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYs
IGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xp
cCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgRGVsZWdhdGUqID0gbnVsbHB0cik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0
IEltYWdlRGF0YSYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0
UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCk7CkBAIC02Myw5ICs2NSwx
MSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERy
YXdpbmdJdGVtPiYmKTsKIAotICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBjbGFzcyBEZWxlZ2F0
ZSB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQorICAgICAg
ICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsgfQorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBj
cmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgICAgIHZpcnR1YWwgUmVmUHRyPEl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJ
bWFnZUl0ZW0oY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYs
IENhY2hlZEltYWdlJikgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpIHsgfTsKICAgICB9OwogCkBAIC0xMDQsOSArMTA4
LDkgQEAgcHJpdmF0ZToKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYg
dGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2
UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSNpZiBVU0UoQ0cp
IHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotI2VuZGlmCisKKyAgICB2b2lkIGRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJbWFnZSopIG92ZXJyaWRlOworICAgIGJv
b2wgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSBvdmVycmlkZTsKQEAg
LTE4OCw3ICsxOTIsNyBAQCBwcml2YXRlOgogICAgIENvbnRleHRTdGF0ZSYgY3VycmVudFN0YXRl
KCk7CiAKICAgICBEaXNwbGF5TGlzdCYgbV9kaXNwbGF5TGlzdDsKLSAgICBPYnNlcnZlciogbV9v
YnNlcnZlcjsKKyAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxDb250ZXh0
U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGYzMWQzNzViMDJkYTA5NzkyODlhY2MyMDBkZDg2MmZh
ZTEzNDEwNGIuLjRiNWUzZTQzYjAzOTY0YTUxYzI3M2U1YmU3YWVkYjBkZjFhYTkxZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1l
ckVNRVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNw
cAppbmRleCAxOGI0ZjhkZTk3MTcwY2U2NDRlYjY0YmUzZWFiODU3ZjNhNzQzMmY0Li42Mjk4Y2Yz
NjA3M2M3YWU0NGY0M2M2YjU2NDQyMmIzN2I4NmNmMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUlt
YWdlQnVmZmVyUGlwZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJQaXBlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1h
Z2UuaCIKICNpbmNsdWRlICJOaWNvc2lhQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGwuaCIK
ICNpbmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmlj
b3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCmluZGV4IDMwNGZhY2JhYjE1MjE3OTFkYWE4
NmRiMTUzMTc1M2UzODY3MTA4NGQuLjdjMTRmM2U3ZWUzMzljYjNhNTE0ZjkwM2M0ODc0ZDE3MTg5
ZDUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuY3BwCkBAIC01NDksNyArNTQ5LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IENhaXJv
T3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxv
YXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdy
YXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFj
dG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBDYWly
b09wZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKK3ZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKikKIHsKICAgICBz
dHJ1Y3QgRHJhd05hdGl2ZUltYWdlIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlv
bkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBJbWFn
ZVBhaW50aW5nT3B0aW9ucywgZmxvYXQsIENhaXJvOjpTaGFkb3dTdGF0ZT4gewogICAgICAgICB2
aXJ0dWFsIH5EcmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CkBAIC01NzAsNiArNTcwLDEyIEBA
IHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QKICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0
aXZlSW1hZ2U+KFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkpLCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkp
OwogfQogCitib29sIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAg
IHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0
dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc3RydWN0IERyYXdQYXR0ZXJu
IGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4sIEludFNpemUsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVUcmFuc2Zvcm0s
IEZsb2F0UG9pbnQsIEltYWdlUGFpbnRpbmdPcHRpb25zPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJh
dGlvblJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKaW5kZXggNTcyZmYyMTY2ZjZl
OTczYTc2M2I2N2NiNmJiOTZmNDNmMjZhOGQ1MC4uMWQ0OTAxM2M4OWNmMTAxNGVjOWIyYjkyMDdk
ZWNlZWI5MTNjMzg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJv
T3BlcmF0aW9uUmVjb3JkZXIuaApAQCAtNjcsNyArNjcsOSBAQCBwcml2YXRlOgogICAgIFdlYkNv
cmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkltYWdlRHJh
d1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBk
cmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdl
YkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgV2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsK
KworICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYsIFdlYkNvcmU6OkNhY2hlZEltYWdlKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0
dGVybihXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dERpcmVjdDJELmNwcAppbmRleCAzNzQwNzE3MTViY2I3OTFkNTg5ZDUwZDk5YjI5
YzY2YjAxMGI3MDgxLi41N2JhODU4ZmY5OWMyZGIyOWY1ZDkxNDkyZTZhYWM4ZWQ5NzRlYzk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0RGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKQEAgLTIwNywxNiArMjA3LDExIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCiAgICAgRGlyZWN0MkQ6
OnJlc3RvcmUoKnBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdOYXRpdmVJbWFnZShjb25zdCBDT01QdHI8SUQyRDFCaXRtYXA+JiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UoY29uc3QgQ09NUHRy
PElEMkQxQml0bWFwPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5k
cmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlv
bnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29u
dGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7CiAgICAgRGlyZWN0MkQ6
OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBzdGF0ZS5hbHBoYSwgRGlyZWN0MkQ6OlNo
YWRvd1N0YXRlKHN0YXRlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTI0N2E3YWQ0Y2Qy
OTUzOGU0ZWFmNDBiZDgwMzY5Njg2MDA4Yjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKLQotI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKLQotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgSW1h
Z2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICA6IG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAs
IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKLXsKLX0KLQot
dm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNyZWF0ZUJhY2tlbmQo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgaGFuZGxlKQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwot
fQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y29tbWl0Rmx1
c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKLXsK
LSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50
aWZpZXIsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkucmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhNGQwNWVhZWY1NDk0MTZmZGI2NDI1OTUyZTBiNGNmM2FhMjA1ZWMyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
Ci0KLSNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNpbmNsdWRlICJJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmll
ci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1lbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90
OwotY2xhc3MgSW1hZ2VEYXRhOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwotCi1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHkgewotcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eSgpID0gZGVmYXVsdDsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJl
IHJlY2VpdmVkLiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluLgot
ICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5n
Q29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qm
LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFdl
YkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25z
dCA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
KTsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluLgotICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUpOwotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVy
Rmx1c2hJZGVudGlmaWVyKTsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgYmFj
a2VuZCgpIHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OyB9Ci0KLXByaXZh
dGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTsKLSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50
aWZpZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDc3MjFjY2U4NDU2MjY5YWVmOTAy
MGI4YmQ4OTY1ZGQzNWI3MjJkZGMuLjFkMWI1ZWU4ZmNmMDdlZmMzMjlkNzk4MWYzYjBhMWFjMmVm
YmU3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjgsMjkgKzI4LDI5IEBACiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3RSZXBsYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVi
bGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CitjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
IDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJs
aWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcg
QmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJh
Y2tlbmRUeXBlPjsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dDsK
ICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOworICAgIHVzaW5n
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVm
ZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgc3RhdGljIGF1dG8gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eT4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBudWxscHRyLCBy
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAg
ICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90
ZUltYWdlQnVmZmVyUHJveHk+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVs
bHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOwogICAgIH0KIAotICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRy
PEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKQorICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRy
PEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyKFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICB7Ci0gICAgICAgIGNyZWF0ZUJhY2tlbmQobV9i
YWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2Vu
ZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQt
PmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpKTsKKyAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkucmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2Vu
ZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJl
c29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
ICAgICB9CiAKICAgICB+UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSgpCkBAIC02Miw5ICs2Miw2IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VC
dWZmZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VC
dWZmZXI6OnB1dEltYWdlRGF0YTsKLQogICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKSB7CkBAIC03Mywx
OCArNzAsNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
Zmllcikgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxh
eUxpc3QpOwotICAgICAgICBtX2JhY2tlbmQtPmZsdXNoQ29udGV4dCgpOwotICAgICAgICBjb21t
aXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2Vi
Q29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0
IG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6
OmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgIH0KLQogICAgIGJvb2wg
YXBwbHkoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChpdGVtLnR5cGUo
KSA9PSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YSkgewpAQCAt
OTgsMTIgKzgzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmFwcGx5UmVzb3VyY2VJdGVtKGl0ZW0sIGNvbnRleHQpOwogICAg
IH0KIAogICAgIHZvaWQgYXBwbHkoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlBhaW50RnJhbWVGb3JN
ZWRpYSYgaXRlbSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHsKLSAg
ICAgICAgYXV0byBwcm9jZXNzID0gYmFja2VuZCgpLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KTsKKyAgICAgICAgYXV0byBwcm9jZXNzID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwogICAgICAgICBpZiAoIXByb2Nlc3MpCiAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTExNyw2ICsxMDIsOCBAQCBwcml2YXRlOgogCiAgICAgICAg
IGNvbnRleHQucGFpbnRGcmFtZUZvck1lZGlhKCpwbGF5ZXIsIGl0ZW0uZGVzdGluYXRpb24oKSk7
CiAgICAgfQorCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA3NTNhNWM4YmE5N2ZlNzIwODMxMDU4ZTg0YzVj
ZDgzYjRiMTc1NTc5Li5kNGRiYmFkMGQxOTI5MzU2NTI2NWRlMDNjMzExMWMzYWUzMmUzNTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMjksNyArMjksNyBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCIKKyNpbmNs
dWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTU0LDYgKzU0LDExIEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6flJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSgpCiAgICAgICAgIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1l
c3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKK0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5n
ZXQoKTsKK30KKwogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKSkK
QEAgLTY2LDY0ICs3MSw0NiBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllci50b1VJbnQ2NCgpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVy
SWRlbnRpZmllcikKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseVJlc291
cmNlSXRlbShEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogewotICAgIGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuZ2V0KCk7Ci0gICAgaWYgKCFncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwLmNvbnRhaW5zKGltYWdlQnVmZmVySWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyaW5n
TW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAo
YXV0byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3Jl
YXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAuYWRkKGltYWdlQnVmZmVySWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbmRl
cmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5n
TW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIGlm
IChhdXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6
OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwLmFkZChpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZm
ZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5h
cHBseVJlc291cmNlSXRlbShpdGVtLCBjb250ZXh0KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAg
Ly8gQ3JlYXRlSW1hZ2VCdWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJl
Zm9yZSB0aGlzIG9uZS4KLSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwLnJlbW92ZShpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQo
Zm91bmQsIGZvdW5kKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgSW1h
Z2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlm
IChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gaW1hZ2VC
dWZmZXItPmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihJUEM6OkltYWdlRGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0YSkp
KTsKLSAgICB9CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3JlYXRlSW1hZ2VCdWZm
ZXIobG9naWNhbFNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+
Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgc2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBib29sIHNob3Vs
ZERyYXdCYWRnaW5nQm9yZGVyLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50
aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
CiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5m
bHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBmbHVzaElkZW50aWZpZXIp
OworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZsdXNoRHJhd2luZ0NvbnRleHRBbmRD
b21taXQoZGlzcGxheUxpc3QsIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLUdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBD
OjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcmV0
dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKKyAgICBhdXRvIGltYWdlRGF0
YSA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQs
IHNyY1JlY3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZU5h
dGl2ZUltYWdlKGltYWdlLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV9yZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oCmluZGV4IGEwOTUyYmFmYjNjMTUzMmQ3ZGM5OTAwNmViNDBmMzFiZjkxZDI1
M2IuLjAzYjlkYjM1OWE0NDNjMjA1Y2YzYzU3YTg5ODc5NmIzMDM1NzdlNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTI4LDI0ICsyOCwyNCBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
IgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCIKICNpbmNsdWRl
ICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JT
cGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogY2xhc3MgRGlzcGxh
eUxpc3Q7CiB9CitjbGFzcyBGbG9hdFNpemU7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50
OF90OworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC01OSw4ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwg
flJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpOwogCi0gICAgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOyB9CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0OworICAgIGJvb2wgYXBwbHlSZXNv
dXJjZUl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmKTsKKworICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCisgICAgdm9pZCByZW1vdGVD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOwpAQCAtNzQsMTQgKzc3LDE0IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIE1l
c3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVySWRlbnRp
Zmllcik7Ci0gICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsK
LSAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIGdldEltYWdlRGF0YShXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVj
dCBzcmNSZWN0LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYpOwotCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Pj47Ci0gICAgSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7
CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmLCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2Um
Jik+JiYpOworICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJ
bWFnZVB0ciYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eSB7ICp0aGlzIH07CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3OThjOGI0ZWRiNTdmNWFkMDgyYmE4MWMx
MDA4YjBkY2RlZmRmMThhLi4wMTU2NjhmODIzNzcwMmI4ZDcwNWNiMGQ3Y2E1NDk2NmFiZjcxOTU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAg
LTIzLDExICsyMywxMiBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgQ3Jl
YXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgdm9pZCBSZWxlYXNlSW1hZ2VCdWZmZXIoV2ViS2l0
OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQg
Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwg
V2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktp
dDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICBHZXRJ
bWFnZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJl
bmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdl
YkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29s
b3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJh
d0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRl
eHRBbmRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0
LCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50
OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3Jl
OjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURh
dGEpIFN5bmNocm9ub3VzCisgICAgdm9pZCBDYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5hdGl2
ZUltYWdlUHRyIGltYWdlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgzMDllZWFmOGRkNmZlOWVjZGU2YmFjZDlmNDlmMDUyOGYwOWE4NmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMCwwICsxLDE1NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0
cmFzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAg
IDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KQoreworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd0JhZGdpbmdC
b3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJl
Y3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKSBjb25z
dAoreworICAgIGlmICghbV9zaG91bGREcmF3QmFkZ2luZ0JvcmRlcikKKyAgICAgICAgcmV0dXJu
OworICAgIFdlYkNvcmU6OmRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJlY3QsIGNv
bG9yLCBiYWRnZXMpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sK
KyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4gaW1hZ2U7CisKKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1v
dGVBY2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2UgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKworICAgIGlmICghaW1hZ2UgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpS
ZW1vdGVVbmFjY2VsZXJhdGVkKQorICAgICAgICBpbWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CisKKyAgICBpZiAoaW1hZ2UpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZl
ckhhc2hNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K0ltYWdlQnVmZmVyKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRl
eHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91
bGREcmF3QmFkZ2luZ0JvcmRlciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKK3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9zaG91bGRE
cmF3QmFkZ2luZ0JvcmRlciwgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIpOworICAgIGlmIChhdXRv
IGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikpIHsKKyAgICAgICAgaW1hZ2UtPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxp
c3QpOworICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOwor
fQorCitJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBmbHVz
aERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBpbWFnZS0+Zmx1c2hDb250ZXh0KCk7
CisgICAgICAgIHJldHVybiBpbWFnZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxJbWFnZURhdGE+IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRh
KEFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSBj
b25zdAoreworICAgIGlmIChhdXRvIGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAu
Z2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBpbWFnZS0+Z2V0
SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlTmF0aXZl
SW1hZ2VIYXNoTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIGltYWdlKTsKKyAgICBB
U1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCitib29s
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBEaXNw
bGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorewor
ICAgIGF1dG8mIGRyYXdJdGVtID0gc3RhdGljX2Nhc3Q8Y29uc3QgRGlzcGxheUxpc3Q6OkRyYXdO
YXRpdmVJbWFnZSY+KGl0ZW0pOworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0g
ZHJhd0l0ZW0ucmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCk7CisgICAgaWYgKCFyZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaW1hZ2Ug
PSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb250ZXh0
LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgZHJhd0l0ZW0uaW1hZ2VTaXplKCksIGRyYXdJdGVtLmRl
c3RpbmF0aW9uUmVjdCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9ucygpKTsK
KyAgICBkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3Qo
KSwgV2ViQ29yZTo6Q29sb3I6OnJlZCwgeyB7IFJlY3RCb3R0b21SaWdodCwgQ29sb3I6OndoaXRl
LCAiSU1BR0UiX3MgfSB9KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmRyYXdJbWFnZUJ1ZmZlckl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0
ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBhdXRvJiBk
cmF3SXRlbSA9IHN0YXRpY19jYXN0PGNvbnN0IERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXIm
PihpdGVtKTsKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IGRyYXdJdGVtLnJl
bW90ZVJlc291cmNlSWRlbnRpZmllcigpOworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGltYWdlID0gbV9yZW1vdGVJ
bWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgaWYg
KCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW1hZ2UtPmRyYXcoY29udGV4
dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0KCksIGRyYXdJdGVtLnNvdXJjZSgpLCBkcmF3SXRl
bS5vcHRpb25zKCkpOworICAgIGRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGRyYXdJdGVtLmRl
c3RpbmF0aW9uUmVjdCgpLCBXZWJDb3JlOjpDb2xvcjo6Ymx1ZSwgeyB7IFJlY3RCb3R0b21SaWdo
dCwgQ29sb3I6OndoaXRlLCAiQ0FOVkFTIl9zIH0gfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNlSXRlbShjb25zdCBE
aXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAor
eworICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFn
ZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUJ1ZmZlckl0ZW0oaXRlbSwgY29udGV4
dCk7CisgICAgaWYgKGl0ZW0udHlwZSgpID09IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05h
dGl2ZUltYWdlKQorICAgICAgICByZXR1cm4gZHJhd05hdGl2ZUltYWdlSXRlbShpdGVtLCBjb250
ZXh0KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAobV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBDYWNoaW5nIHRoZSByZW1vdGUgcmVz
b3VyY2Ugc2hvdWxkIGhhdmUgaGFwcGVuZWQgYmVmb3JlIHJlbGVhc2luZyBpdC4KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTY3NTg5ZDczZjkwZTU0YTZkMGJmOTFkMjhlYmFiYWMyMzUyOWJlNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxh
eUxpc3QgeworY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJdGVtOworfQorc3RydWN0IEJhZGdl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OworCitjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeworcHVibGljOgorICAg
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmKTsK
KworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdC
b3JkZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6
SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllcikgY29uc3Q7CisKKyAgICB2b2lkIGNhY2hlTmF0aXZlSW1h
Z2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworCisgICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Owor
CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CisgICAgdXNpbmcgUmVtb3RlTmF0aXZlSW1h
Z2VIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6Ok5hdGl2ZUltYWdlUHRyPjsKKworICAgIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJS
ZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpCYWRnZT4m
KSBjb25zdDsKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZlckl0ZW0oY29uc3QgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAgICBi
b29sIGRyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0m
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIFJlbW90ZUltYWdlQnVm
ZmVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcDsKKyAgICBSZW1vdGVOYXRpdmVJ
bWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXA7CisgICAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKKyAgICBib29s
IG1fc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApp
bmRleCA0MDE3YTJhOGYyMmNlY2VjYzIxNTFhMzBhMzI3OGZmOTA2ZWFmMzJhLi42NzQ4ZDFmNWQ4
MDBkOTU3NGYyMzgwNzViMTg5MGI0ZTRhY2VlOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NBUmluZ0J1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAK
aW5kZXggOTc3ZjkzZmY1YzNjMmI4MTc4NDZjOWE5YTc1NTE3ODljOGVmZTA1Yy4uNjFiODkwZGM3
ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdkZGQzYjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRl
ICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNz
YWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZmFj
ZDJmN2FmYjVhMzkyZWUyMDk2N2E3NmZkNDFlMTRkZmIxNTBiOS4uMTU4YzRlZjk3YzJlOTliODc2
Njc5MzZlYjQwYTVlMTg3OGQxOGIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CkBAIC0yMTcsMTEgKzIxNywxMyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcicsCisgICAg
ICAgICdXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5JywKICAg
ICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cicsCisgICAgICAgICdXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAg
ICAnV2ViQ29yZTo6UmVuZGVyaW5nTW9kZScsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllcicsCkBAIC0yNDAsNyArMjQyLDYgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKICAgICAgICAgJ1dl
YktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXInLAotICAgICAgICAnV2ViS2l0OjpJbWFn
ZUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0
SUQnLAogICAgICAgICAnV2ViS2l0OjpMZWdhY3lDdXN0b21Qcm90b2NvbElEJywKICAgICAgICAg
J1dlYktpdDo6TGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGUwYmJiYmM1YmEyMzE4YmZh
OGU2MzE5NmQ1NGVlYmI4OTAzNjQ0NDEuLmEwNzc1MzA5NTdiYThkNDdkNTQyOWJhZGQ2Njc1NzU1
NGQwNjIxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcApAQCAtMTEwMCw3ICsxMTAwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEltYWdlSGFu
ZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEltYWdlSGFuZGxlJiBpbWFnZUhhbmQKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2UoRW5jb2Rl
ciYgZW5jb2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCitzdGF0aWMgdm9pZCBlbmNvZGVOYXRp
dmVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiB7
CiAgICAgYXV0byBpbWFnZVNpemUgPSBuYXRpdmVJbWFnZVNpemUoaW1hZ2UpOwogICAgIGF1dG8g
Yml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCB7IH0p
OwpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZU5hdGl2ZUltYWdlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlUHQKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShFbmNv
ZGVyJiBlbmNvZGVyLCBOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3N0YXRpYyB2b2lkIGVuY29kZU9w
dGlvbmFsTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlKQogewogICAgIGJvb2wgaGFzSW1hZ2UgPSAhIWltYWdlOwogICAgIGVuY29kZXIgPDwg
aGFzSW1hZ2U7CkBAIC0xMTY2LDE0ICsxMTY2LDE0IEBAIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKERlY29kZXImIGRlY29kZXIsIE5hdGl2
CiAgICAgcmV0dXJuIGRlY29kZU5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlKTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IE5hdGl2ZUltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3ZvaWQgQXJndW1lbnRD
b2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UpCiB7Ci0gICAgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShlbmNv
ZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQoKSk7CisgICAgZW5jb2RlT3B0aW9uYWxOYXRpdmVJ
bWFnZShlbmNvZGVyLCBpbWFnZSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFn
ZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRpdmVJbWFnZUhhbmRsZSYgaW1h
Z2VIYW5kbGUpCitib29sIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewotICAgIHJldHVybiBkZWNv
ZGVPcHRpb25hbE5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlSGFuZGxlLmltYWdlKTsKKyAgICBy
ZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZSk7CiB9CiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgUmVmPFdlYkNvcmU6OkZvbnQ+JiBmb250KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwNWQwMzU1NGI5ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0
NDM0Y2U2ZTIzLi45ZjNiMTA2NjkzMzNiYTMwMTUyOTc4M2M5ZTFlOTFlYWJhNGNhYjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnB1dE1vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZVB0ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJl
Y3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KQEAgLTEw
NSw3ICsxMDYsNiBAQCBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKIGNsYXNzIExheW91dFNpemU7
CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwotY2xhc3Mg
TmF0aXZlSW1hZ2VIYW5kbGU7CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTsKIGNsYXNzIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb247CkBAIC00
MTYsOSArNDE2LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJ
bWFnZUhhbmRsZT4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkltYWdlSGFuZGxlJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZSYp
OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOworICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdl
UHRyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hh
cmVhYmxlQml0bWFwQ0cuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0
bWFwQ0cuY3BwCmluZGV4IDczMGRhNjQ4ZjJiMmZlOWU3ODRmZDA0MDUyZTE5MGYwZDBiZjIxYWQu
Ljk1OWRhODNkNWY2OTg4YjIxMTU4OGRhN2RkYjRmZjE4M2RjZTdkNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKQEAgLTEwNiwxMiArMTA2LDI3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IFNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0KCkKIAogdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2UpCiB7Ci0gICAgZHJhd05hdGl2ZUltYWdlKG1ha2VDR0lt
YWdlQ29weSgpLCBjb250ZXh0LCAxLCBkZXN0aW5hdGlvbiwgc291cmNlKTsKKyAgICBwYWludChj
b250ZXh0LCAxLCBkZXN0aW5hdGlvbiwgc291cmNlKTsKIH0KIAogdm9pZCBTaGFyZWFibGVCaXRt
YXA6OnBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2NhbGVG
YWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNl
KQogewotICAgIGRyYXdOYXRpdmVJbWFnZShtYWtlQ0dJbWFnZUNvcHkoKSwgY29udGV4dCwgc2Nh
bGVGYWN0b3IsIGRlc3RpbmF0aW9uLCBzb3VyY2UpOworICAgIENHQ29udGV4dFJlZiBjZ0NvbnRl
eHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOworICAgIENHQ29udGV4dFNhdmVHU3RhdGUo
Y2dDb250ZXh0KTsKKworICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCBDR1JlY3RN
YWtlKGRlc3RpbmF0aW9uLngoKSwgZGVzdGluYXRpb24ueSgpLCBzb3VyY2Uud2lkdGgoKSwgc291
cmNlLmhlaWdodCgpKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7
CisKKyAgICBhdXRvIGltYWdlID0gbWFrZUNHSW1hZ2VDb3B5KCk7CisgICAgQ0dGbG9hdCBpbWFn
ZUhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpIC8gc2NhbGVGYWN0b3I7Cisg
ICAgQ0dGbG9hdCBpbWFnZVdpZHRoID0gQ0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSAvIHNj
YWxlRmFjdG9yOworCisgICAgQ0dGbG9hdCBkZXN0WCA9IGRlc3RpbmF0aW9uLngoKSAtIHNvdXJj
ZS54KCk7CisgICAgQ0dGbG9hdCBkZXN0WSA9IC1pbWFnZUhlaWdodCAtIGRlc3RpbmF0aW9uLnko
KSArIHNvdXJjZS55KCk7CisKKyAgICBDR0NvbnRleHREcmF3SW1hZ2UoY2dDb250ZXh0LCBDR1Jl
Y3RNYWtlKGRlc3RYLCBkZXN0WSwgaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpLCBpbWFnZS5nZXQo
KSk7CisKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNnQ29udGV4dCk7CiB9CiAKIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0ltYWdlQ29weSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCBkYWY1ZmI3MzEzYmRkOTgwNjhkZWRkMzljYmFjNGRmYmU5Mzc3Y2E4Li44ZTNi
MmFmZmNhMDAzNGIzMjZkYTliMjE5OGM4NTc5NzRlMDQ5MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0
LDggKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKLUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNTUyLDggKzU1Miw4IEBAIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cAogCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKLVdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKIFdlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTg0MzRjYmFjMGMyZjYxYTJkNmUyODA3MTZlY2Q3
Mjg4Mjg4OTI4Mi4uMmE4YzQyYTVhYmU0MTViZjlkMTFjN2IwYjNlZjcxODgwMmIyMGMwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
ODg5LDcgKzM4ODksNiBAQAogCQk1NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEEz
MjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1MDY0MEE0MjQwNzFDMjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1NTA2NDBBNTI0MDcxQ0MwMDBBQUUwNDUgLyogSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NUFEMDk0MjI0MDhBMDJFMDBERTREMkYgLyogUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0
Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQw
OTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDE3OCwxMCArNDE3Nyw3IEBACiAJCTcxQTY3NkE1MjJDNjIzMTgwMDdE
NjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIu
bW07IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MUZCODEwQTIyNjA2MjdBMDAzMjM2NzcgLyogV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZC
IC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAw
QzI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZCIC8q
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyMjc4MDEy
MjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzUyNDA3ODU3RjAw
NEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzYyNDA3ODhGMDAw
NEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxOTEsNiArNDE4NywxMCBAQAogCQk3
MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBp
Y2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMjI1
MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTM1MjUzMTczQ0MwMDQyMjA5OCAvKiBS
ZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNl
Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzNjI1MzE3M0ND
MDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVS
ZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM0MTg3
Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYnNpdGVEYXRh
U3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkQ0MTg3RDFDMDEw
MEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODA3NiwxNyArODA3NiwxNyBAQAogCQkJCTcyN0E3RjMzMjQw
Nzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLywKIAkJCQk3MjdBN0YzOTI0MDc4OEYxMDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmggKi8sCiAJCQkJNTVBRDA5NDQyNDA4QUJCMzAw
REU0RDJGIC8qIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmggKi8sCi0JCQkJNTUwNjQwQTUy
NDA3MUNDMDAwQUFFMDQ1IC8qIEltYWdlQnVmZmVySWRlbnRpZmllci5oICovLAogCQkJCTcyN0E3
RjM3MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQu
Y3BwICovLAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzODI0MDc4OEYwMDA0RDI5MzEgLyog
UGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCAqLywKIAkJCQk3MjI3ODAwQjI0
MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTcy
N0E3RjQ5MjQwOEFFRTYwMDREMjkzMSAvKiBSZW1vdGVJbWFnZUJ1ZmZlci5oICovLAotCQkJCTcy
Mjc4MDBDMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
LmNwcCAqLywKIAkJCQk3MjI3ODAwRDI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5oICovLAogCQkJCTU1MDY0MDlEMjQwNzE2MDkwMEFBRTA0NSAvKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCAqLywKIAkJCQk1NTA2NDA5RTI0MDcxNjA5MDBBQUUw
NDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oICovLAogCQkJCTU1MDY0MEEwMjQwNzE5RTEw
MEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluICovLAorCQkJCTcy
OUQwNTM1MjUzMTczQ0MwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLywKKwkJ
CQk3MjlEMDUzNjI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovLAog
CQkJCTU1MDY0MDlGMjQwNzE5NkEwMEFBRTA0NSAvKiBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBncmFwaGljczsKQEAgLTgwOTYsMTIgKzgwOTYsMTIg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBRDA5NDMyNDA4
QTBFNjAwREU0RDJGIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovLAotCQkJ
CTcyMjc4MDExMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyUHJveHkuY3BwICovLAotCQkJCTcyMjc4MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCAqLywKIAkJCQk1NUFEMDk0MjI0MDhBMDJF
MDBERTREMkYgLyogUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovLAogCQkJCTU1MDY0MEEyMjQw
NzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwICovLAogCQkJ
CTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aCAqLywKIAkJCQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTcyOUQwNTMyMjUzMTRGRUYwMDQyMjA5OCAv
KiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwICovLAorCQkJCTcyOUQwNTMzMjUzMTRGRUYw
MDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlcklkZW50aWZpZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVu
dGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMWJjOWFlODdkYzhkNzI0
MjhhMGI4MDljYWQwZDgwYTRjZDFjYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlcklkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVt
IEltYWdlQnVmZmVySWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUJ1ZmZlcklkZW50aWZpZXJUeXBlPjsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyLmgKaW5kZXggZTg0OTE2NjQ1MTQ1OTYyODdlZjJjNzhmOTA3NmUxZDQzODIxOTFm
Mi4uMGM3MzgwZmQ1ZDdmMTcyYzk3MTZmMmYzNzg5MTZlODYwODI3NzhiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaApAQCAtMzEsMTYgKzMxLDE4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlz
dEltYWdlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBl
PgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OkRlbGVnYXRlIHsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlciA9IFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFz
ZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1c2luZyBCYXNlRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKKyAgICB1c2luZyBCYXNlRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCkBAIC01MywxNCArNTUsMjAgQEAg
cHVibGljOgogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyKCkKICAgICB7CisgICAgICAgIGlmICgh
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
cmVsZWFzZUltYWdlQnVmZmVyKCp0aGlzKTsKICAgICB9CiAKKyAgICBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIFJlbW90
ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgV2ViQ29yZTo6UmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6
OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCkKLSAgICAgICAgOiBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcihzaXpl
KQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKQorICAgICAgICA6IEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyKHNpemUsIHRoaXMpCisg
ICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpKQogICAgIHsKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
PSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyKHNpemUs
IHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CiAgICAgfQogCiAg
ICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkgb3ZlcnJpZGUKQEAgLTY5LDIyICs3Nyw1MSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIG1fYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CiAg
ICAgfQogICAgIAotICAgIGJvb2wgaXNCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fYmFja2VuZC5nZXQoKTsgfQotCiAgICAgQmFja2VuZFR5cGUqIGVuc3VyZUJhY2tl
bmRDcmVhdGVkKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmICghbV9iYWNrZW5k
KQotICAgICAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlciY+KCp0aGlzKS5SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKCk7CisgICAgICAgIGlmICghbV9iYWNrZW5kICYmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCkKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZCgpOwogICAgICAgICByZXR1cm4gbV9iYWNrZW5kLmdldCgpOwogICAg
IH0KIAorICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGZs
dXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsK
KyAgICB9CisKKyAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0
KCk7CisgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgfHwgIW1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLT5kcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0KCksIHsgeyB9LCBtX2JhY2tl
bmQtPmxvZ2ljYWxTaXplKCkgfSwgV2ViQ29yZTo6Q29sb3I6OmRhcmtHcmVlbiwgeyB7IFdlYkNv
cmU6OlJlY3RUb3BSaWdodCwgV2ViQ29yZTo6Q29sb3I6OndoaXRlLCAiR1BVIl9zIH0gfSk7Cisg
ICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9yZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPndh
aXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOworICAgICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VSZW1vdGVDbGllbnQobV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOworICAgIH0KKworICAgIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFkaXNwbGF5TGlz
dC5pdGVtQ291bnQoKSB8fCAhbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUZsdXNoRHJh
d2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB9CisgICAgCiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKCFt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwog
ICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXIq
Pih0aGlzKS0+bV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBjb25zdF9j
YXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOwotICAgICAgICBhdXRvIHJl
c3VsdCA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXIqPih0aGlzKS0+UmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7
CisgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgeworICAgICAgICAgICAgY29u
c3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5mbHVzaERyYXdpbmdDb250ZXh0KGRp
c3BsYXlMaXN0KTsKKyAgICAgICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CisgICAgICAgIH0K
KwogICAgICAgICAvLyBnZXRJbWFnZURhdGEgaXMgc3luY2hyb25vdXMsIHdoaWNoIG1lYW5zIHdl
J3ZlIGFscmVhZHkgcmVjZWl2ZWQgdGhlIENvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0IG1l
c3NhZ2UuCi0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQtPnJlbW90ZUdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3Qs
IG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB2b2lkIHB1dEltYWdl
RGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBX
ZWJDb3JlOjpJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3Jj
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCA9IHsgfSwgV2ViQ29yZTo6
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0ID0gV2ViQ29yZTo6QWxwaGFQcmVtdWx0
aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkgb3ZlcnJpZGUKQEAgLTk1LDI2ICsxMzIsMzIgQEAg
cHJvdGVjdGVkOgogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LnJlY29yZGVyKCkucHV0SW1hZ2VE
YXRhKGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1h
dCk7CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaENvbnRleHQoKSBvdmVycmlkZQorICAgIFJlZlB0
cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KCk7Ci0gICAgICAgIG1fYmFja2VuZC0+Zmx1c2hDb250ZXh0KCk7
CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmNy
ZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oaW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERy
YXdpbmdDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1h
Z2VQdHImIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgV2Vi
Q29yZTo6Q2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAg
YXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7Ci0gICAg
ICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KGRp
c3BsYXlMaXN0KTsKKyAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC0+Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgY2FjaGVkSW1hZ2UsIG1fcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNvbnN0
ZXhwciBzaXplX3QgRGlzcGxheUxpc3RCYXRjaFNpemUgPSA1MTI7CiAgICAgICAgIGF1dG8mIGRp
c3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBpZiAo
ZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPj0gRGlzcGxheUxpc3RCYXRjaFNpemUpCi0gICAgICAg
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0
KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpIDwgRGlz
cGxheUxpc3RCYXRjaFNpemUgfHwgIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7Cisg
ICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAgICAgfQorCisgICAgV2Vha1B0cjxSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CisgICAgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcxNTBjN2Iw
NzkzYWZlOWFjNWM4M2E5YWM3NDZiYTMxOGU1MWI4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCi0KLSNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcihj
b25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQobWFrZVdlYWtQdHIocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkpCi17Ci0gICAgLy8gQ3Jl
YXRlIHRoZSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5LgotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpDcmVhdGVJ
bWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlcjo6flJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoKQotewotICAgIC8v
IFJlbGVhc2UgdGhlIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuCi0gICAgaWYgKCFtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6UmVsZWFz
ZUltYWdlQnVmZmVyKG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotUmVmUHRyPEltYWdl
RGF0YT4gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Z2V0SW1hZ2VEYXRhKEFscGhh
UHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBj
b25zdAotewotICAgIElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YVJlZmVyZW5jZTsK
LSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3Qs
IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6R2V0SW1hZ2VEYXRhOjpSZXBseShpbWFnZURhdGFSZWZlcmVuY2UpLCBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7Ci0g
ICAgcmV0dXJuIGltYWdlRGF0YVJlZmVyZW5jZS5idWZmZXIoKTsKLX0KLQotdm9pZCBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
KCkKLXsKLSAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kICYmICFpc0JhY2tlbmRDcmVh
dGVkKCkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZCgpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCi17Ci0gICAgaWYg
KG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCAmJiBpc1BlbmRpbmdGbHVzaCgpKQotICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29u
dGV4dCgpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCkKLXsKLSAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRl
eHQoZGlzcGxheUxpc3QsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLSAgICBkaXNwbGF5TGlz
dC5jbGVhcigpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZs
dXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QpCi17Ci0gICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJ
bWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVz
aElkZW50aWZpZXIsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLSAgICBkaXNwbGF5TGlzdC5j
bGVhcigpOwotICAgIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwotfQot
Ci12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmNvbW1pdEZsdXNoQ29udGV4
dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9y
ZWNlaXZlZEZsdXNoSWRlbnRpZmllciA9IGZsdXNoSWRlbnRpZmllcjsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCmluZGV4IDYyMDQxOGQ3OGMyN2YyOGM1
NzQ5MDJjMmUxYmE5YTIzNzE3NTE3YjkuLjYxZGQ1OGNlNTJmZGNlZDRmMTg0YWYwZWE2Nzk3YjI2
NjI3NWEyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
CkBAIC0yOSw1MCArMjksMzEgQEAKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAi
SW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgSW1hZ2VEYXRhOwogZW51bSBjbGFzcyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4
X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOwotCiBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIHsKIHB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCk7Ci0KLSAgICBJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7IH0KLQogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJl
Y2VpdmVkLiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4KICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpID0g
MDsKIAotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlm
aWVyKTsKLQotcHJvdGVjdGVkOgotICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJik7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0ID0gMDsK
ICAgICBib29sIGlzUGVuZGluZ0ZsdXNoKCkgY29uc3QgeyByZXR1cm4gbV9zZW50Rmx1c2hJZGVu
dGlmaWVyICE9IG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXI7IH0KIAotICAgIFJlZlB0cjxXZWJD
b3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Q7
Ci0KLSAgICB2b2lkIHdhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKLSAgICB2b2lk
IHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOworICAgIHZvaWQgY29tbWl0
Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikK
KyAgICB7CisgICAgICAgIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXIgPSBmbHVzaElkZW50aWZp
ZXI7CisgICAgfQogCi0gICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4gU2VlIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRl
eHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7Ci0gICAgdm9pZCBmbHVzaERy
YXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmKTsKLQotcHJpdmF0ZToKLSAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgbV9pbWFn
ZUJ1ZmZlcklkZW50aWZpZXIgeyBJbWFnZUJ1ZmZlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsK
K3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
KCkgPSBkZWZhdWx0OwogCiAgICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgbV9zZW50Rmx1
c2hJZGVudGlmaWVyOwogICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fcmVjZWl2ZWRG
bHVzaElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA5OTUz
NDE3ODdlZGEyMGE1NTRlNGQ2N2JhNTNkYzY5OGE1MzcwY2MwLi4wNGI1Mjk2ODZlYzQzYTMzZjVk
MDQ2MDczYWJiNzg3MGMwODRiMWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAK
QEAgLTM5LDEyICszOSwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUoKQorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZShXZWJQYWdlJiBwYWdl
KQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4o
bmV3IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZChwYWdl
KSk7CiB9CiAKLVJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQo
KQorUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChXZWJQYWdl
JiBwYWdlKQorICAgIDogbV9yZW1vdGVSZXNvdXJjZUNhY2hlKCp0aGlzLCBwYWdlKQogewogICAg
IC8vIFJlZ2lzdGVyIGl0c2VsZiBhcyBhIE1lc3NhZ2VSZWNlaXZlciBpbiB0aGUgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uCiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZl
ck1hcCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkubWVzc2FnZVJlY2VpdmVyTWFwKCk7CkBAIC04Niw0MCArODcsODIgQEAgYm9vbCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKQog
ICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQ+KG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9u
OjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogfQogCit2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmRyYXdCYWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNv
bnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUu
ZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCwgYm9yZGVyUmVjdCwgY29sb3IsIGJhZGdlcyk7Cit9
CisKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRl
IHNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlKQogewotICAgIGlmIChzaG91bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6
OlllcykgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3Rl
SW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRl
ZCwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcykpIHsKLSAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXItPmltYWdlQnVmZmVy
SWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gaW1h
Z2VCdWZmZXI7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCBzaG91bGRBY2NlbGVyYXRlLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJl
bGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UpCit7CisgICAgbV9yZW1vdGVSZXNv
dXJjZUNhY2hlLnJlbGVhc2VJbWFnZUJ1ZmZlcihpbWFnZSk7Cit9CisKK1JlZlB0cjxEaXNwbGF5
TGlzdDo6SXRlbT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVy
SXRlbShJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMs
IFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAg
IHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShp
bWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIHJlbW90ZUNsaWVudElkZW50aWZpZXIp
OworfQorCitSZWZQdHI8RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cywgQ2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hl
LmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdlLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30K
Kwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlQ2xpZW50KFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIG1fcmVt
b3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlUmVtb3RlQ2xpZW50KHJlbW90ZUNsaWVudElkZW50aWZp
ZXIpOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlKQoreworICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgPSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpDcmVhdGVJbWFnZUJ1
ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwor
ICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKK1JlZlB0cjxJbWFnZURh
dGE+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUdldEltYWdlRGF0YShBbHBoYVByZW11
bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBJUEM6
OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGFSZWZlcmVuY2U7CisgICAgc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6R2V0SW1hZ2VEYXRhKG91dHB1dEZv
cm1hdCwgc3JjUmVjdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6R2V0SW1hZ2VEYXRhOjpSZXBseShpbWFnZURhdGFSZWZl
cmVuY2UpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MpOworICAgIHJldHVybiBp
bWFnZURhdGFSZWZlcmVuY2UuYnVmZmVyKCk7Cit9CiAKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmlu
Z01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
KnRoaXMpKSB7Ci0gICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1h
Z2VCdWZmZXItPmltYWdlQnVmZmVySWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7Ci0g
ICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKLSAgICB9Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlLnNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCksIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQogCi0gICAg
cmV0dXJuIG51bGxwdHI7CitJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50
aWZpZXIgc2VudEZsdXNoSWRlbnRpZmllciA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBt
X3JlbW90ZVJlc291cmNlQ2FjaGUuc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSwgc2VudEZsdXNo
SWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CisgICAgcmV0dXJuIHNlbnRGbHVzaElkZW50aWZpZXI7Cit9CisKK1JlbW90
ZVJlc291cmNlSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVDYWNoZU5h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKK3sKKyAgICBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Q2FjaGVOYXRpdmVJbWFnZShpbWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlUmVsZWFzZVJlbW90ZVJl
c291cmNlKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
CiB7Ci0gICAgLy8gQ3JlYXRlSW1hZ2VCdWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJl
Y2VpdmVkIGJlZm9yZSB0aGlzIG9uZS4KLSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyTWFwLnJlbW92ZShpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIEFTU0VS
VF9VTlVTRUQoZm91bmQsIGZvdW5kKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUg
aGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFn
ZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICBtX3JlbW90ZVJlc291
cmNlQ2FjaGUuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1
c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29u
dGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1
dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdl
QnVmZmVySWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRl
eHQoZmx1c2hJZGVudGlmaWVyKTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY29tbWl0SW1h
Z2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmgKaW5kZXggZjQ5NjE1OGU3ZDQwZWViMDVhYzM5NDM0YWYyNDYzM2JhYmM3ZjBlZi4uY2E2
NzUyZWI3MDQyODBhNDgwZjVlZDM2NmRiMWM1YjkzZmIyNTg2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKQEAgLTI5LDMxICsyOSwzOCBAQAogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUu
aCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5n
TW9kZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxheUxp
c3Q7CitjbGFzcyBJdGVtOworfQorY2xhc3MgRmxvYXRTaXplOworc3RydWN0IEJhZGdlOworZW51
bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6
IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJQYWdlOworCiBj
bGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2Vu
ZGVyCiAgICAgLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gewogcHVibGljOgotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKCk7CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoV2Vi
UGFnZSYpOwogCiAgICAgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIAotICAgIFJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsgfQotCiAgICAgLy8gSVBDOjpNZXNz
YWdlU2VuZGVyLgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNjEsMjEgKzY4LDMzIEBAIHB1YmxpYzoKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7Ci0gICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXJJZGVudGlmaWVyKTsKLQogICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZCgpOwogICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KCk7CiAKKyAgICAvLyBSZXNvdWNlIGNhY2hlLgorICAgIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3Jk
ZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpCYWRn
ZT4mKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2Vs
ZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAg
dm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0o
V2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdl
UGFpbnRpbmdPcHRpb25zJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFn
ZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCisg
ICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgUmVmUHRyPFdl
YkNvcmU6OkltYWdlRGF0YT4gcmVtb3RlR2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlRmx1
c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qm
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyIHJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
Q2FjaGVOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOworICAgIHZv
aWQgcmVtb3RlUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8g
YmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFj
a2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQg
Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIs
IEltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CiAKLSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIqPjsK
LSAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcDsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsK
ICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCAxMmE3YmY4
ZGE0YzgyNTcwYmNhMzZhMTM1ZmQ3MWFmMjU4OGI2NGQ1Li4yYzBmN2U4YTEyMDNmMjY4NjUyYTAw
ZmMxZjdiMTdkYTU5OWQyYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCkBAIC0yMyw4ICsyMyw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgewotICAg
IHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2Fs
U2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIGhhbmRsZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKQotICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoV2Vi
S2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6
SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICB2b2lkIENy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdl
YkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChXZWJL
aXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEwOWJhODYwZTZjY2E5ZDljMzcyYzM0NGVhOGFjN2EzMzlmMzNlZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgiCisjaW5jbHVkZSAiUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRJbWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcGFnZShwYWdlKQorewor
fQorCitib29sIFJlbW90ZVJlc291cmNlQ2FjaGU6OnNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0Rl
YnVnQm9yZGVycygpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmRyYXdCYWRnaW5n
Qm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJS
ZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykKK3sK
KyAgICBpZiAoIXNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBGbG9hdFJlY3QgY29udGFpbmVyUmVjdCA9IGJvcmRlclJlY3Q7CisgICAgY29udGFpbmVyUmVj
dC5pbmZsYXRlKC0xKTsKKyAgICBXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBj
b250YWluZXJSZWN0LCBjb2xvciwgYmFkZ2VzKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9h
dFNpemUmIHNpemUsIFNob3VsZEFjY2VsZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit7CisgICAgaWYgKHNob3VsZEFj
Y2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVzKSB7CisgICAgICAgIGlmIChhdXRvIGlt
YWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJl
bmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgICAgIG1fcmVtb3RlSW1h
Z2VCdWZmZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZlci5nZXQoKSwgaW1hZ2VCdWZmZXItPnJlbW90
ZVJlc291cmNlSWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlckhhc2hNYXAuYWRkKGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVm
ZmVyOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpS
ZW1vdGVVbmFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAu
YWRkKGltYWdlQnVmZmVyLmdldCgpLCBpbWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKCkpOworICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFw
LmFkZChpbWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVmZmVy
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOworICAgIH0KKworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBi
YWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIg
PSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmdldChyZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChsb2dp
Y2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92
ZShoYW5kbGUpKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjb21taXRJbWFnZUJ1
ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZp
ZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFn
ZUJ1ZmZlci0+Y29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7Cit9CisKK1JlZlB0
cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd0ltYWdlQnVmZmVySXRlbShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8g
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KGltYWdl
LCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgLy8gRmx1c2ggdGhlIERyYXdpbmdD
b250ZXh0IG9mIHRoZSBzb3VyY2UgSW1hZ2VCdWZmZXIgc28gdGhpcyBJbWFnZUJ1ZmZlciBnZXRz
IGFuIHVwZGF0ZWQgaW1hZ2UuCisgICAgaW1hZ2UuZmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAg
IHJldHVybiBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpjcmVhdGUocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisK
K1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6
Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
LCBDYWNoZWRJbWFnZSYgY2FjaGVkSW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
ID0gZmluZE5hdGl2ZUltYWdlRm9yQ2xpZW50KGNhY2hlZEltYWdlLCBpbWFnZSwgcmVtb3RlQ2xp
ZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d05hdGl2ZUltYWdlOjpjcmVhdGUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYg
aW1hZ2UpCit7CisgICAgLy8gUmVtb3ZlIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KKyAg
ICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNo
TWFwLnRha2UoJmltYWdlKTsKKyAgICBBU1NFUlQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworICAgIC8vIGNyZWF0ZUltYWdlQnVmZmVyIHNob3VsZCBoYXZlIGJlZW4gcmV0dXJuZWQgdGhp
cyBJbWFnZUJ1ZmZlciBiZWZvcmUuCisgICAgYm9vbCBmb3VuZCA9IG1fcmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOworCisgICAgLy8gVGVsbCB0aGUgR1BV
IHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UgdW5sZXNzIGl0J3MgcGVuZGluZyByZXBs
YXlpbmcgYmFjay4KKyAgICByZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50
cyhyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXI7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1vdGVSZXNvdXJjZUNh
Y2hlOjpyZWxlYXNlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGlt
YWdlKQoreworICAgIC8vIFJlbW92ZSB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgY2FjaGUuCisgICAg
YXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1h
cC50YWtlKGltYWdlKTsKKworICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0
aGlzIHJlc291cmNlIHVubGVzcyBpdCdzIHBlbmRpbmcgcmVwbGF5aW5nIGJhY2suCisgICAgaWYg
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmVsZWFzZVJlbW90ZVJlc291cmNl
UGVuZGluZ1JlbW92ZUNsaWVudHMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICByZXR1
cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgUmVtb3RlUmVzb3VyY2VDYWNoZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KEltYWdlQnVm
ZmVyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZUltYWdl
QnVmZmVySGFzaE1hcC5nZXQoJmltYWdlKTsKKyAgICBhZGRSZW1vdGVDbGllbnQocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVt
b3RlUmVzb3VyY2VDYWNoZTo6ZmluZE5hdGl2ZUltYWdlRm9yQ2xpZW50KFdlYkNvcmU6OkNhY2hl
ZEltYWdlJiBjYWNoZWRJbWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciA9IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLmVuc3Vy
ZShpbWFnZSwgWyZdIHsKKyAgICAgICAgY2FjaGVkSW1hZ2UuYWRkQ2xpZW50KCp0aGlzKTsKKyAg
ICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVDYWNoZU5hdGl2ZUlt
YWdlKGltYWdlKTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICBhZGRSZW1vdGVDbGll
bnQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAg
ICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCit2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGU6OmFkZFJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gQWRkIHRoZSAicmVzb3VyY2UgLT4gY2xpZW50IiBkZXBlbmRl
bmN5IGluIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBhdXRvJiBjbGllbnRz
ID0gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLmVuc3VyZShyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIsIFsmXSB7CisgICAgICAgIHJldHVybiBSZW1vdGVDbGllbnRzSGFzaFNldCgpOwor
ICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGNsaWVudHMuYWRkKHJlbW90ZUNsaWVudElk
ZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVS
ZXNvdXJjZVBlbmRpbmdSZW1vdmVDbGllbnRzKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3JlbW90ZVJlc291cmNlQ2xp
ZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcC5jb250YWlucyhyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpKTsKKworICAgIC8vIElmIHdlIGhhdmUgcmVjb3JkZWQgdGhlIHJlc291cmNlIC0+IGNsaWVu
dCBkZXBlbmRlbmN5IGJlZm9yZSBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAsIG1v
dmUgdGhpcworICAgIC8vIGRlcGVuZGVuY3kgdG8gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5k
aW5nUmVsZWFzZUhhc2hNYXAuIE90aGVyd2lzZSByZW1vdmUgdGhlIHJlc291cmNlIGZyb20gdGhl
IGNhY2hlLgorICAgIGlmIChtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuY29udGFpbnMo
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVu
dHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgbV9y
ZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLnRha2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSk7CisgICAgZWxzZQorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlUmVs
ZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK1ZlY3Rv
cjxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+IFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJl
bW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiByZW1vdGVSZXNvdXJjZUNs
aWVudHNIYXNoTWFwLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRp
ZmllcikKK3sKKyAgICBWZWN0b3I8UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNv
dXJjZUNsaWVudHNUb0JlUmVtb3ZlZDsKKworICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNl
IC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFw
LgorICAgIGZvciAoYXV0byYgcGFpciA6IHJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXApIHsK
KyAgICAgICAgcGFpci52YWx1ZS5yZW1vdmUocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAg
ICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlbW90ZVJlc291cmNl
Q2xpZW50c1RvQmVSZW1vdmVkLmFwcGVuZChwYWlyLmtleSk7CisgICAgfQorCisgICAgLy8gUmV0
dXJuIGEgbGlzdCBvZiB0aGUgdW5yZWZlcmVuY2VkIHJlc291cmNlcy4KKyAgICByZXR1cm4gcmVt
b3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
Q2xpZW50SWRlbnRpZmllcikKK3sKKyAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBj
bGllbnQgZGVwZW5kZW5jaWVzIGZyb20gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgor
ICAgIGZvciAoYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGll
bnQobV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLCByZW1vdGVDbGllbnRJZGVudGlmaWVy
KSkKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLnJlbW92ZShyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4g
Y2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1Jl
bGVhc2VIYXNoTWFwLgorICAgIGZvciAoYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgOiBy
ZW1vdmVSZW1vdGVDbGllbnQobV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhh
c2hNYXAsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIFJlbW92ZSB0aGUg
dW5yZWZlcmVuY2VkIHJlc291cmNlcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGlu
Z1JlbGVhc2VIYXNoTWFwLgorICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdS
ZWxlYXNlSGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgICAg
ICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4KKyAgICAg
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMwMzdjZmRmY2E0MzlmYWY4OGU5NTQxNjY2Mjk5NWNjOGEwN2I0NjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGUuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9D
YWNoZWRJbWFnZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIEl0ZW07Cit9CitlbnVtIGNsYXNz
IENvbG9yU3BhY2UgOiB1aW50OF90Oworc3RydWN0IEJhZGdlOworY2xhc3MgQ29sb3I7CitjbGFz
cyBGbG9hdFJlY3Q7CitjbGFzcyBGbG9hdFNpemU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOworY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2Fj
aGUgOiBwdWJsaWMgV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGljOgorICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYsIFdlYlBhZ2UmKTsKKwor
ICAgIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSBjb25zdDsKKyAgICB2b2lkIGRyYXdC
YWRnaW5nQm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6QmFkZ2U+Jik7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VC
dWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNv
cmU6OlNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSk7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0o
V2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdl
UGFpbnRpbmdPcHRpb25zJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFn
ZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVsZWFzZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyJik7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlQ2xpZW50KFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKworcHJp
dmF0ZToKKyAgICB1c2luZyBSZW1vdGVDbGllbnRzSGFzaFNldCA9IEhhc2hTZXQ8V2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPjsKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhh
c2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OkltYWdlQnVmZmVyKiwgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyPjsKKyAgICB1c2luZyBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgPSBI
YXNoTWFwPFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXI+OworICAgIHVzaW5nIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgPSBIYXNo
TWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlQ2xpZW50c0hhc2hT
ZXQ+OworICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwID0g
SGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIqPjsKKworICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95
ZWQoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGltYWdlKSBvdmVycmlkZSB7IHJlbGVh
c2VOYXRpdmVJbWFnZShpbWFnZSk7IH0KKworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllciBmaW5kSW1hZ2VCdWZmZXJGb3JDbGllbnQoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciBmaW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKworICAgIHZvaWQgYWRk
UmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIFZl
Y3RvcjxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+IHJlbW92ZVJlbW90ZUNsaWVu
dChSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90
ZVJlc291cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIFJlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVm
ZmVySGFzaE1hcDsKKyAgICBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRpdmVJ
bWFnZUhhc2hNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBt
X3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcDsKKyAgICBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJIYXNoTWFwOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCmlu
ZGV4IDFhZTUxNTcyNTM2MWQyMjgyMTkxNGFlZDBmMjhiYjE2ZTc2MzU4ZmYuLjMwMDUwYWMwN2Rj
OWFkNWM4M2YzZGUyODMyOTA2YTk4NzQxMGQzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViR2FtZXBhZC5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDc2YzBkMWZjOGFhMDkwZGRlNDYyY2IyMWUyNGEyMzRmMTAw
YWNmZTEuLjhiMWUzMDg5MTIyODU5NmNmZTA3YTJmOTE3MWU3ODVkMjUyM2Y3M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxh
dGYKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIFdlYkNocm9tZUNsaWVudDo6ZW5zdXJlUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNyZWF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUobV9wYWdlKTsKICAgICByZXR1cm4gKm1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZDsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="427272"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411142</attachid>
            <date>2020-10-12 12:22:16 -0700</date>
            <delta_ts>2020-10-12 12:22:16 -0700</delta_ts>
            <desc>Screenshot of the GPU badging border</desc>
            <filename>Screen Shot 2020-10-12 at 12.14.43 PM.png</filename>
            <type>image/png</type>
            <size>286809</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">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
Z+X4p0mynJ0mYpERZYn5JJe/0wcA1wnAN7FcPrZVLv+2Eyn2HgBdBROaXmFYRMu3GOr/0Sa6Wfw7
+LtN6P2/9Pj3GSgqcAF/n/8BMSIaaZYfMYYAAACKZVhJZk1NACoAAAAIAAQBGgAFAAAAAQAAAD4B
GwAFAAAAAQAAAEYBKAADAAAAAQACAACHaQAEAAAAAQAAAE4AAAAAAAAAkAAAAAEAAACQAAAAAQAD
koYABwAAABIAAAB4oAIABAAAAAEAAALeoAMABAAAAAEAAAIuAAAAAEFTQ0lJAAAAU2NyZWVuc2hv
dKXiJtkAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHWaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8
eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAu
MCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAg
ICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAg
ICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU1ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAg
ICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj43MzQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAg
ICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAg
ICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Ku4SBqAAAABxp
RE9UAAAAAgAAAAAAAAEXAAAAKAAAARcAAAEXAAGFeMSLx0QAAEAASURBVHgB7L35l2XXdd936r16
NU89Nxo9ARwAkAAogBQJKpITO7ZjxZHkWFKSpUReibL8Q+Tl5UTiX6CfKSlcseN4CB1ZcZZtmXai
yEtLsWVJjCQCFElwFAGCABpoDA30WPPwpnw/+5x9675XrxpNRkWhu/apfu/ee4Z99tn3gvyc/fY5
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411145</attachid>
            <date>2020-10-12 12:25:41 -0700</date>
            <delta_ts>2020-10-12 12:35:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012122540.patch</filename>
            <type>text/plain</type>
            <size>224696</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uZGU0ODM4NTIzZTQzOWU0MjJmNWY5YjExYTc2ZWU0
NGEyODRiYjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMiBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg6IEFkZGVkLgorCisy
MDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0bWFwSW1hZ2UgZnJhbWUgaW4gR1BV
IFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdpdGggaXRzIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFnZSB3aWxsIGJlIGNhY2hlZCBpbiB0
aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2YgQml0bWFwSW1hZ2UgaGF2ZSBhIHdl
bGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2Vzcy4KKyAgICAgICAgVGhlIGNv
dW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mgd2lsbCBoYXZlIGEgc2ltaWxhciBs
aWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBpcyBkcmF3biBmb3IgdGhlIGZpcnN0
IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2ViCisgICAgICAgIFByb2Nlc3Mgdmlh
IGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2VzcyBhbmQgY2FjaGVkIHVuZGVyIGEg
dW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3aGljaCB3aWxsIGJlIHVz
ZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAgICAgICAgaXRlbS4gV2hlbiB0aGUg
Qml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBkZWNvZGVkIGZyYW1lLCBhIG1lc3Nh
Z2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdlYiBQcm9jZXNzIHRvIHRoZSBHUFUg
UHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAgICBmcmFtZS4gSGVyZSBpcyB0aGUg
c2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAgVGhlIGRyYXdpbmcgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMSkgQml0bWFw
SW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpkcmF3TmF0aXZlSW1hZ2UoKS4KKyAg
ICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFn
ZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgIENhY2hlZEltYWdlIGFuZCBjYWxs
cyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpLgorICAgICAgICAzKSBSZWNvcmRl
cjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
KSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNoIGlzIFJlbW90ZUltYWdlQnVmZmVy
IGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAgNCkgUmVtb3RlSW1hZ2VCdWZmZXIg
Y2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGljaCBjYWxscyBpdHMKKyAgICAgICAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSgpLgorICAg
ICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0cyBmaW5kTmF0aXZlSW1hZ2VGb3JD
bGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhlIE5hdGl2ZUltYWdlIGluIHRoZSBj
YWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUgYXMgYSBjbGllbnQKKyAgICAgICAg
ICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUgUHJvY2VzcyB0byBjYWNoZSBpdCBh
bHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
IFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRoZSAKKyAgICAgICAgICAgRHJhd05h
dGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci4KKworICAg
ICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxv
d2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRoZSBEcmF3aW5nQ29udGV4dCBoYXBw
ZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAgICAgICAgIHJlcGxheWVkIGJhY2su
IERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxscyBhcHBseSgpIG9mIGl0cworICAg
ICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhlIGNhc2Ugb2YgMkQgY2FudmFzLCB0
aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KKyAgICAgICAg
ICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlS
ZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd05hdGl2
ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZlSW1hZ2UKKyAgICAgICAgICAgd2hv
c2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgb2YgdGhlIERy
YXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUgTmF0aXZlSW1hZ2UgaXMgZm91bmQs
IGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9mIHRoZQorICAgICAgICAgICBhcmd1
bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNl
IGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIEltYWdl
U291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0aGUgSW1hZ2VPYnNlcnZlciB3aGVu
IGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisg
ICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdp
bGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIENhY2hlZElt
YWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKS4K
KyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRoZSBDYWNoZWRJbWFnZUNsaWVudHMg
dG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2UgUmVtb3RlUmVzb3VyY2VDYWNoZSBy
ZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGllbnQgb2YKKyAgICAgICAgICAgdGhp
cyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0
cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgNSkgVGhlIGNhY2hl
ZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0aGUgY2FjaGUgYW5kIGEgbWVzc2Fn
ZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQVSBQcm9jZXNzIHdoZW4gbm8gcmVt
b3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAgICAgICAgIE5hdGl2ZUltYWdlLgor
CisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBHUFUgUHJvY2VzcyBpcyB0aGUg
Zm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQKKyAgICAgICAgICAgTmF0aXZlSW1h
Z2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKworICAgICAgICAqIGh0bWwvSW1h
Z2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6ZHJhd05h
dGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2VDbGllbnQ6Om5hdGl2ZUlt
YWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjphcHBseSBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJbWFnZVB0ciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aW1hZ2VTaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJ
bWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0p
OgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3Jk
aW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBOYXRpdmVJbWFnZVB0ciB0
byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAgICAgICAgIE5hdGl2ZUltYWdlUHRy
LgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdlSGFuZGxlIGFuZCBhbGxvdyBlbmNv
ZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAgICAgICAgICAgZGlyZWN0bHkuCisg
ICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGlyZWN0aXZlcyBhcm91bmQgdGhlIERp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAgICAgaXRlbSBhbmQgdGhlIG1ldGhv
ZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92ZSB0aGUgZHJhd05hdGl2ZUltYWdl
KCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBjYWxsZXJzLgorICAgICAgICA1KSBJ
biB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcgY29tbWFuZHMsIG1ha2UgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBwcm9jZXNzIGRyYXdpbmcgdGhlIGlt
YWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNvbW1hbmRzIGFyZQorICAgICAgICAg
ICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFnZSB3aWxsIHJlbmRlciBhIE5hdGl2
ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBTVkdJbWFnZSB3aWxsIHJlY29yZCBp
dHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUlt
YWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90
ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2VxdWVuY2Ug
aW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgLS0gR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERpc3BsYXlMaXN0OjpSZWNvcmRlciB0
byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFwcHJvcHJpYXRlIHRvIGNyZWF0ZSBE
cmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAgICAgLS0gRGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBkZWxlZ2F0ZSB0byB0byBjcmVhdGUK
KyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIC0tIFNpbmNl
IFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdh
dGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVy
SXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxsIGJlIGNhbGxlZCBuZXh0CisgICAg
ICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVEcmF3SW1h
Z2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
RHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFzaE1hcAorICAgICAgICAgICB1c2lu
ZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5kcyBpdCwgaXQgd2lsbCBjcmVhdGUg
dGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAgIFRoZSBzZXF1ZW5jZSBpbiB0aGUg
R1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAtLSBXaGVuIHJlcGxheWlu
ZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6OlJlcGxheWVyIHdpbGwgY2FsbAor
ICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYgaXQgd2FudHMgdG8gYXBwbHkgdGhl
IERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNhdXNlIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSwKKyAgICAgICAg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3aWxsIGJlIGNhbGxlZC4KKworICAg
ICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwgY2FsbCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAgICAgICAgICAgd2hpY2ggd2lsbCBw
YXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgLS0gUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNlSXRlbSgpIHdpbGwgc2VhcmNoIGZv
ciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdob3NlIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAgICAgRHJhd0ltYWdlQnVmZmVyLiBB
bmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdyYXBoaWNzQ29udGV4dC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdD
b250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6RHJh
d0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRpb25SZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9w
dGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1
ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF4
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6T2JzZXJ2ZXI6On5PYnNl
cnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHA6
CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9k
dWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0
aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8gSW1hZ2VCdWZmZXIgd2hpY2ggdXNl
ZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxyZWFkeSBvdmVycmlkZGVuCisgICAg
ICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlzIGNhbGxlZCBieSBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkga2Vl
cHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgd2lsbCBiZSB1c2VkIGluIFdlYkNv
cmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBhIHJlbW90ZSBJbWFnZUJ1ZmZlciB0
byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1YWxseSBpdCB3aWxsCisgICAgICAg
IGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFnZSB0byBhIHJlbW90ZSBJbWFnZUJ1
ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMDkg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNwbGF5TGlzdFJlY29yZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2NmU5YTBlNjQ3OGUuLmZmM2NiMzVi
MmJmMGVkMmQwNzg2NTdhM2RlMTE1ZTczMGFhNzc5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjc0
IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBh
IGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdlIGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBh
bGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZv
ckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxp
c3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUlt
YWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRs
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRy
YXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVt
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0lt
YWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVt
b3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJl
bW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVkaW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xl
IGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAg
IHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRo
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4KKyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8gaXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisK
KyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9u
IGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAgICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNl
Q2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAg
IGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAgICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFz
aE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAg
ICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAgICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAgdHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVy
ZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVzZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdo
aWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3
aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFz
aFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNv
dXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWlyIGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVp
cgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMgd2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291
cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hlCisgICAgICAgIGlzIHJlcXVlc3RlZCB0byBy
ZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBpdCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisg
ICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2YgcmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQg
bW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAgICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhlciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAg
IC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAgICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4gYW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291
cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGllbnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBS
ZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAKKyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVs
ZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdlbGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6
cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToKKyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVz
b3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xp
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90
ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwgdGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMg
YSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBo
YXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0NvbnRleHQuIEl0J3MgdGltZSB0byBib29rLQor
ICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZlcmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRo
ZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAgICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1v
dGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNl
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUg
R1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5h
Z2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAgICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFs
IGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAg
ICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBt
YW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2Ug
Y2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1
c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNz
LiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0
bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3Rl
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVkcyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZv
ciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5kIAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMg
YW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwK
KyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJl
bW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBh
ZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5nIHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRl
eHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1
YjUyNTQwMGZlLi40NWFmOGYxYWJhYWNkMjhkNDI0MDc4MDE0YTFiZTE0MWU2NGJjMzY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJh
cy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCkBAIC0xMTk0LDYgKzExOTUsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5m
by5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1No
aW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aC5oCkBAIC0xMjA3LDYgKzEyMDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJh
Y2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2Rh
ZjQwMDRiMzY4YTkwZThkYTFkNTIwNmQuLmI1ZjBkZDY5MWM4ZjY2NGNlZGJiMjQ5NTA2YWYyNzhi
ZDg2MmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODkzLDYgKzE4OTMsNyBAQCBwbGF0Zm9ybS9n
cmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEV4dHJhcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQx
MDEwMDAyMS4uYmFlZDUyMTZlZTY0NzRkNWFkMDAwMDJlYTJiOTVmZDMxZWZmNmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjAwNyw3ICsyMDA3LDYgQEAKIAkJNkE3Mjc5OEIxRjE2QzI5QzAwM0YzOUI4IC8qIEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjFGNDgxMTIyOThBMzdFMDBE
RThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIxRjQ4MEYyMjk4OUVDNDAwREU4Qjgy
IC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNG
ODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZElu
U3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNG
MDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2
aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI1MDdBMjEyMzRCRjM0MTAwQkU3QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4u
aCAqLzsgfTsKQEAgLTIxNTUsMTIgKzIxNTQsMTYgQEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEy
RkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93
bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAw
RkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIz
MUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAw
N0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICov
OyB9OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1
QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlC
QzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTMwMjUzMTQy
NDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAv
KiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3MjlEMDUzQzI1MzJFRUUzMDA0MjIwOTggLyogTmF0aXZl
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5
OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNC
RUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgz
IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CkBAIC05NDg3LDcgKzk0OTAsNiBAQAogCQk2
QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRh
VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIzNDgwOTIwRUVGNTBE
NDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEy
QjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9n
Z2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkMyMzk4
M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Z2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MTIy
MjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
Z2lzdHJhYmxlRG9tYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTAxLDYg
Kzk5MDMsOCBAQAogCQk3MjFCNDk2RjI1MTJBQzA0MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNr
aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQml0bWFwQmFja2luZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFn
ZUJpdG1hcEJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCaXRtYXBCYWNraW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBB
bmltYXRpb25GcmFtZVJhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRnJhbWVSYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAv
KiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQjAy
NTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI0RUQzMjkxQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkExQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5k
TWluTWF4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVEMzJCMUEzQTdFNTQwMEY1RjEz
QyAvKiBFWFRCbGVuZE1pbk1heC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUQmxlbmRN
aW5NYXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTkyMyw2ICs5OTI3LDgg
QEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzkyNTMyRDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdl
UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tl
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJC
YWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMy
ODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxNDEsNiArMjYxNDcsOCBAQAogCQkJCTJE
MkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1
OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1
OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oICovLAorCQkJCTcyMzFCRUFG
MjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcy
MzFCRUIwMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJ
CQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAog
CQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovLAog
CQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMuaCAqLywKQEAgLTI2MjIwLDggKzI2MjI4LDggQEAKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAz
NkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4
MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTMxNEJFM0E1MUIzMTAz
RkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLywKLQkJCQk2QjM0ODA5
MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLywKIAkJCQk1NUEzMzZGNjFEODIw
OUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLywKKwkJCQk3MjlEMDUzOTI1MzJEMkU3MDA0
MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCAqLywKIAkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2
NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGgu
aCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRl
LmNwcCAqLywKQEAgLTI2MjM5LDYgKzI2MjQ3LDcgQEAKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCiAJCQkJQkNBQjQxN0YxM0UzNTZFODAw
RDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8q
IFJlZ2lvbi5oICovLAorCQkJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggKi8sCkBAIC0zMTYxNCw2ICszMTYyMyw3IEBACiAJCQkJMkQ0ODFGMDQx
NDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzIzMUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdC
IC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhG
QUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjgsNyArMzMxNzgsOCBAQAogCQkJCTMxNEJFM0E3
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJ
bWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5RDA1M0MyNTMyRUVFMzAwNDIyMDk4IC8qIE5h
dGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzRDI1MzJFRjkxMDA0MjIwOTgg
LyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjJEMTc1MUI4QkNENkEw
MEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2
QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMzU0MSw2ICszMzU1Miw3IEBACiAJCQkJNDZCOTUxOUEyMDdENjM1
NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMzMTJFOTIy
RkNEN0MwMDAxMjA0RUMgLyogUmVtb3RlUGxheWJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzMxMkVCMjJGQ0Q3QzkwMDEyMDRFQyAvKiBSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzNBMTU1NDIxNzdB
NDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQw
NkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCA0Mzli
NmE5ZDdkODEyMGQ5MWUxZTFhZmM1NmQxYWFmNmJlMGI0OWU0Li42MmY1OWQ2OTJiN2YzNmQ2OTk1
NzRhZDUwYzgxOGY5OTk3M2Q3MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApA
QCAtNjAxLDEwICs2MDEsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5n
ZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcpIG92ZXJyaWRlIHsgfQogCisgICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQorCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IElt
YWdlJikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25z
dCBJbWFnZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGltYWdlRnJhbWVB
dmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0
KiA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIG92
ZXJyaWRlIHsgfQorICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1h
Z2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIG92ZXJyaWRlIHsgfQorCiAgICAgdm9pZCBjaGFu
Z2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSBvdmVycmlk
ZSB7IH0KICAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKGNvbnN0IEltYWdlJikgb3Zl
cnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNzFhNDcwNjA2NDRiZjgxOTAx
MzliYTVlNDUxNjljM2JkODUyNTIxYi4uNjMzZWZjOTU1MWZmMDdiNTkzNDdjNjViNDJhOGZiN2Nh
MWQ4MGVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTE1MzAsOSArMTUzMCw5IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShE
b2N1bWVudCYgZG9jdW1lbnQsIENhCiAgICAgfQogCiAgICAgaWYgKGltYWdlLT5pc0JpdG1hcElt
YWdlKCkpIHsKLSAgICAgICAgLy8gRHJhd2luZyBhbiBhbmltYXRlZCBpbWFnZSB0byBhIGNhbnZh
cyBzaG91bGQgZHJhdyB0aGUgZmlyc3QgZnJhbWUgKGV4Y2VwdCBmb3IgYSBmZXcgbGF5b3V0IHRl
c3RzKQotICAgICAgICBpZiAoaW1hZ2UtPmlzQW5pbWF0ZWQoKSAmJiAhZG9jdW1lbnQuc2V0dGlu
Z3MoKS5hbmltYXRlZEltYWdlRGVidWdDYW52YXNEcmF3aW5nRW5hYmxlZCgpKQotICAgICAgICAg
ICAgaW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLT5uYXRpdmVJbWFnZSgpKTsKKy8v
ICAgICAgICAvLyBEcmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNob3VsZCBk
cmF3IHRoZSBmaXJzdCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMpCisvLyAg
ICAgICAgaWYgKGltYWdlLT5pc0FuaW1hdGVkKCkgJiYgIWRvY3VtZW50LnNldHRpbmdzKCkuYW5p
bWF0ZWRJbWFnZURlYnVnQ2FudmFzRHJhd2luZ0VuYWJsZWQoKSkKKy8vICAgICAgICAgICAgaW1h
Z2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLT5uYXRpdmVJbWFnZSgpKTsKICAgICAgICAg
ZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50
LnNldHRpbmdzKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKaW5kZXggNWNjOTMzODMyNTc0ZGNiZWJlZDgyYzJjMGJjZThmMDBjMmJjYTcy
ZS4uODJkMjkxOWM4M2NhN2M0MGJlYjNmOTAyZjhjNmM3OGJlZTdlYmRjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC00MTEsNiArNDExLDE3IEBA
IHZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRlY29kZWRTaXplQ2hhbmdl
ZChjb25zdCBJbWFnZSYgaW1hZ2UsIGxvCiAgICAgICAgIGNhY2hlZEltYWdlLT5kZWNvZGVkU2l6
ZUNoYW5nZWQoaW1hZ2UsIGRlbHRhKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1h
Z2VPYnNlcnZlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiBpbWFnZSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
eworICAgIGZvciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKSB7CisgICAgICAg
IGlmICgmaW1hZ2UgIT0gY2FjaGVkSW1hZ2UtPmltYWdlKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIGltYWdlU2l6
ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgaW1h
Z2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIHZvaWQgQ2FjaGVkSW1h
Z2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRpZERyYXcoY29uc3QgSW1hZ2UmIGltYWdlKQogewog
ICAgIGZvciAoYXV0byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKQpAQCAtNDM0LDYgKzQ0
NSwxMiBAQCB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjppbWFnZUZyYW1l
QXZhaWxhYmxlKGNvbnN0IEltYWdlJiBpbWFnZSwgSQogICAgICAgICBjYWNoZWRJbWFnZS0+aW1h
Z2VGcmFtZUF2YWlsYWJsZShpbWFnZSwgYW5pbWF0aW5nU3RhdGUsIGNoYW5nZVJlY3QsIGRlY29k
aW5nU3RhdHVzKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6
bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBjb25zdCBOYXRp
dmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgZm9yIChhdXRvIGNhY2hlZEltYWdlIDog
bV9jYWNoZWRJbWFnZXMpCisgICAgICAgIGNhY2hlZEltYWdlLT5uYXRpdmVJbWFnZVdpbGxCZURl
c3Ryb3llZChpbWFnZSwgbmF0aXZlSW1hZ2UpOworfQorCiB2b2lkIENhY2hlZEltYWdlOjpDYWNo
ZWRJbWFnZU9ic2VydmVyOjpjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiBpbWFnZSwgY29uc3Qg
SW50UmVjdCogcmVjdCkKIHsKICAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZElt
YWdlcykKQEAgLTY4OSw2ICs3MDYsMTYgQEAgdm9pZCBDYWNoZWRJbWFnZTo6aW1hZ2VGcmFtZUF2
YWlsYWJsZShjb25zdCBJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3RhdGUgYW4KICAgICAg
ICAgbV9jbGllbnRzV2FpdGluZ0ZvckFzeW5jRGVjb2RpbmcuY2xlYXIoKTsKIH0KIAordm9pZCBD
YWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmIGltYWdl
LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgaWYgKCZpbWFnZSAh
PSBtX2ltYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdh
bGtlcjxDYWNoZWRJbWFnZUNsaWVudD4gY2xpZW50V2Fsa2VyKG1fY2xpZW50cyk7CisgICAgd2hp
bGUgKENhY2hlZEltYWdlQ2xpZW50KiBjbGllbnQgPSBjbGllbnRXYWxrZXIubmV4dCgpKQorICAg
ICAgICBjbGllbnQtPm5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKG5hdGl2ZUltYWdlKTsKK30K
Kwogdm9pZCBDYWNoZWRJbWFnZTo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYgaW1hZ2UsIGNv
bnN0IEludFJlY3QqIHJlY3QpCiB7CiAgICAgaWYgKCZpbWFnZSAhPSBtX2ltYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAppbmRleCA3MmQ1OWMxZmY0ODQ1YzIz
Mjc1OTIwYmM4ZDEyZjI3MzQzMjdmNzJjLi44Njc5ODMyYTRjYzEwYmM2NGY3YTNlNTRiMjU5YmU1
M2ZhNzEyOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApA
QCAtMTQ5LDEwICsxNDksMTQgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lkIGVuY29kZWREYXRh
U3RhdHVzQ2hhbmdlZChjb25zdCBJbWFnZSYsIEVuY29kZWREYXRhU3RhdHVzKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcgZGVs
dGEpIGZpbmFsOworCisgICAgICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgICAgICB2b2lk
IGRpZERyYXcoY29uc3QgSW1hZ2UmKSBmaW5hbDsKIAogICAgICAgICBib29sIGNhbkRlc3Ryb3lE
ZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpIGZpbmFsOwogICAgICAgICB2b2lkIGltYWdlRnJhbWVB
dmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0
KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6
SW52YWxpZCkgZmluYWw7CisgICAgICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQo
Y29uc3QgSW1hZ2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIGZpbmFsOworCiAgICAgICAgIHZv
aWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IEludFJlY3QqKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpIGZpbmFsOwog
CkBAIC0xNjQsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERyYXcoY29uc3QgSW1h
Z2UmKTsKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpOwogICAg
IHZvaWQgaW1hZ2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3Rh
dGUsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9
IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKTsKKyAgICB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVz
dHJveWVkKGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKICAgICB2b2lkIGNo
YW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0Kik7CiAgICAgdm9pZCBzY2hl
ZHVsZVJlbmRlcmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVudC5oCmluZGV4IGJhNjQ0NWI3ZWE3ZWQ5NjNk
NjFiZmYzMGYyOGE5YTRlZDdmOWMxMzYuLjIxYWFmMDdmMWJiNWQ1M2I5Mjk0MjI0YjY0NDM3MmFi
ZDM1MmIwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZUNsaWVudC5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNs
aWVudC5oIgogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVB0
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDggQEAgcHVibGljOgog
ICAgIC8vIENhbGxlZCB3aGVuIGEgbmV3IGRlY29kZWQgZnJhbWUgZm9yIGEgbGFyZ2UgaW1hZ2Ug
aXMgYXZhaWxhYmxlIG9yIHdoZW4gYW4gYW5pbWF0ZWQgaW1hZ2UgaXMgcmVhZHkgdG8gYWR2YW5j
ZSB0byB0aGUgbmV4dCBmcmFtZS4KICAgICB2aXJ0dWFsIFZpc2libGVJblZpZXdwb3J0U3RhdGUg
aW1hZ2VGcmFtZUF2YWlsYWJsZShDYWNoZWRJbWFnZSYgaW1hZ2UsIEltYWdlQW5pbWF0aW5nU3Rh
dGUsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QpIHsgaW1hZ2VDaGFuZ2VkKCZpbWFnZSwgY2hh
bmdlUmVjdCk7IHJldHVybiBWaXNpYmxlSW5WaWV3cG9ydFN0YXRlOjpObzsgfQogCisgICAgdmly
dHVhbCB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IE5hdGl2ZUltYWdlUHRy
JikgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQ2FjaGVkSW1hZ2VDbGllbnQoQ2Fj
aGVkSW1hZ2UmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZUZvckltYWdlKENhY2hlZEltYWdlJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5oCmluZGV4IGExNDEzYzZmNjc5YjE1ZTkwN2M3YjZjZmE3NjA1ZjI3MGUyZjk1
NTcuLjU3NDQ3ZmYxYWYwNDZjNjQ4ZTg0ZDk3NmFiZjAwNjEwYmYwMDI4ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCkBAIC0yNCw3ICsyNCw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAppbmRleCBiNDc2YTM1YjgyZDkzNzA4ZDNiMGYyYjRkMWE2ZDI1NDgxMmQwZTExLi4wYWY2
YzNkOGIyMzE4NTE3Nzg5YjA3MjM0NWY5Njc0M2IxZDdmNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2lu
Y2x1ZGUgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCkBA
IC0yMDQsNiArMjA1LDI0IEBAIGJvb2wgQml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQog
I2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoQml0bWFwSW1hZ2UmIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICAvLyBTdWJzYW1wbGluZyBtYXkg
aGF2ZSBnaXZlbiB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBzaXplKCkuCisgICAg
SW50U2l6ZSBzdWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKG5hdGl2ZUltYWdl
KTsKKyAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisg
ICAgICAgIHN1YnNhbXBsZWRJbWFnZVNpemUgPSBzdWJzYW1wbGVkSW1hZ2VTaXplLnRyYW5zcG9z
ZWRTaXplKCk7CisKKyAgICAvLyBzcmNSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUg
dW5zdWJzYW1wbGVkIGltYWdlLCBzbyB3ZSBoYXZlIHRvIG1hcCBpdCB0byB0aGUgc3Vic2FtcGxl
ZCBpbWFnZS4KKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBp
ZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQorICAgICAgICBhZGp1c3RlZFNyY1Jl
Y3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1NpemUpLCBGbG9hdFJlY3Qo
eyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7CisKKyAgICBpZiAoaW1hZ2UuaW1hZ2VPYnNlcnZl
cigpKQorICAgICAgICBpbWFnZS5pbWFnZU9ic2VydmVyKCktPmRyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgY29udGV4dCwgbmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBh
ZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOworICAgIGVsc2UKKyAgICAgICAgY29udGV4dC5kcmF3
TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBh
ZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0Vt
cHR5KCkpCkBAIC0yOTIsOSArMzExLDkgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBh
dXRvIG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbigpOwogICAgIGlmIChvcmllbnRh
dGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIHsKICAgICAgICAgb3JpZW50YXRp
b24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7Ci0gICAgICAgIGRy
YXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUo
c2l6ZShvcmllbnRhdGlvbikpLCB7IG9wdGlvbnMsIG9yaWVudGF0aW9uIH0pOworICAgICAgICBk
cmF3TmF0aXZlSW1hZ2UoKnRoaXMsIGNvbnRleHQsIGltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwg
SW50U2l6ZShzaXplKG9yaWVudGF0aW9uKSksIHsgb3B0aW9ucywgb3JpZW50YXRpb24gfSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGRyYXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJl
Y3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKKyAgICAg
ICAgZHJhd05hdGl2ZUltYWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCBvcHRpb25zKTsKIAogICAgIG1fY3VycmVu
dEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJl
bnRGcmFtZSk7CiAKQEAgLTM3OSw3ICszOTgsNyBAQCBTdWJzYW1wbGluZ0xldmVsIEJpdG1hcElt
YWdlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0b3IoR3JhcGhpY3NDb250ZXh0JiBjbwog
ewogI2lmIFVTRShDRykKICAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRy
YXdpbmcgaW50byBQREYgY29udGV4dHMuCi0gICAgaWYgKENHQ29udGV4dEdldFR5cGUoY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCisgICAgaWYgKGNvbnRl
eHQuaGFzUGxhdGZvcm1Db250ZXh0KCkgJiYgQ0dDb250ZXh0R2V0VHlwZShjb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpKSA9PSBrQ0dDb250ZXh0VHlwZVBERikKICAgICAgICAgcmV0dXJuIFN1YnNh
bXBsaW5nTGV2ZWw6OkRlZmF1bHQ7CiAKICAgICBmbG9hdCBzY2FsZSA9IHN0ZDo6bWluKGZsb2F0
KDEpLCBzdGQ6Om1heChzY2FsZUZhY3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggNTU1Y2M2NjQ1NzBhMzRiZWE5OTVkZWNjZDUyYWM4NjFmNWZlMzE0NC4u
NzExM2Q3ZjY0ZTFhNzYyODk4MWZjMDk5NmZkNjhkODY4NTI2YjNkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03
MzEsNiArNzMxLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3QmlkaVRleHQoY29uc3Qg
Rm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBiaWRpUnVucy5jbGVh
cigpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSkKK3sKKyAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9p
bXBsKSB7CisgICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFnZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBwbGF0Zm9ybURyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKIEltYWdlRHJhd1Jlc3VsdCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRl
c3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlv
bnMpCiB7CiAgICAgcmV0dXJuIGRyYXdJbWFnZShpbWFnZSwgRmxvYXRSZWN0KGRlc3RpbmF0aW9u
LCBpbWFnZS5zaXplKCkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZS5zaXplKCkpLCBp
bWFnZVBhaW50aW5nT3B0aW9ucyk7CkBAIC03NDcsNyArNzYwLDcgQEAgSW1hZ2VEcmF3UmVzdWx0
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW4KICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gSW1h
Z2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBpZiAobV9p
bXBsICYmIGltYWdlLmlzUERGRG9jdW1lbnRJbWFnZSgpKQogICAgICAgICByZXR1cm4gbV9pbXBs
LT5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogCiAgICAg
SW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhp
c1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwpAQCAtNzU5LDcg
Kzc3Miw3IEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdl
KEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkCiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAg
IGlmIChtX2ltcGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5pc1BERkRvY3VtZW50SW1hZ2Uo
KSkKICAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIAogICAgIEludGVycG9s
YXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgq
dGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKQEAgLTc3Miw3ICs3ODUsNyBA
QCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAg
ICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICBpZiAobV9p
bXBsKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQREZEb2N1bWVudEltYWdlKCkpCiAgICAg
ICAgIHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucyk7CiAKICAgICBpZiAo
aFJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlICYmIHZSdWxlID09IEltYWdlOjpTdHJldGNoVGls
ZSkgewpAQCAtNzk5LDYgKzgxMiw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpCiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1faW1wbCAm
JiBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0
aW9ucykpCisgICAgICAgIHJldHVybjsKKwogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRh
aW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRl
cnBvbGF0aW9uUXVhbGl0eSgpKTsKICAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwg
c291cmNlLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZGI0YzAwMmVjY2QyMmU2ZmU5NDA4N2M2OWY5
MTI4ZDQyODk5MjdiZi4uMjUxOWQ3YmVhMTgyMTk4N2Y3MWJhNzBmNDQxZjJmZmIwNWQyYmYwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKQEAgLTg2LDYgKzg2LDcgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiAjZW5kaWYKIAogY2xh
c3MgQWZmaW5lVHJhbnNmb3JtOworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFJvdW5k
ZWRSZWN0OwogY2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwpAQCAt
MzM0LDEwICszMzUsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVT
RShESVJFQ1QyRCkgfHwgVVNFKENBSVJPKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwotI2VuZGlmCi0KICNpZiBVU0UoQ0cp
IHx8IFVTRShESVJFQ1QyRCkKICAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpOwogICAgIHZv
aWQgYXBwbHlGaWxsUGF0dGVybigpOwpAQCAtMzgzLDYgKzM4MCw4IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBs
aW5lV2lkdGgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IHsgfSwgQ2FjaGVkSW1hZ2UqID0gbnVsbHB0cik7CisKICAgICBXRUJD
T1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRQ
b2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9
KTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwpAQCAtNjUyLDYg
KzY1MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3JtRmlsbFJvdW5kZWRSZWN0KGNv
bnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYpOwogCisgICAgdm9pZCBwbGF0Zm9y
bURyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYg
c2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKwogICAgIEZsb2F0UmVjdCBjb21w
dXRlTGluZUJvdW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JUZXh0KGNvbnN0IEZsb2F0UmVjdCYs
IGJvb2wgcHJpbnRpbmcsIENvbG9yJik7CiAKICAgICBmbG9hdCBkYXNoZWRMaW5lQ29ybmVyV2lk
dGhGb3JTdHJva2VXaWR0aChmbG9hdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NDg5NmM4NjE2MGQ3MTFhMzAxZmNlNTgxYTNmY2U3YmFmZmJmNzA1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmNwcApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0
IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKQoreworICAgIGF1dG8g
cmVjdENvcm5lclBvaW50ID0gWyZdKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgUmVjdENvcm5lciBj
b3JuZXIpIHsKKyAgICAgICAgYXV0byBwb2ludCA9IHJlY3QubG9jYXRpb24oKTsKKyAgICAgICAg
aWYgKGNvcm5lciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkK
KyAgICAgICAgICAgIHBvaW50Lm1vdmUocmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNv
cm5lciA9PSBSZWN0Qm90dG9tTGVmdCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAg
ICAgICAgICAgcG9pbnQubW92ZSgwLCByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHBv
aW50OworICAgIH07CisKKyAgICBhdXRvIHJlY3RDb3JuZXJSZWN0ID0gWyZdKGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSBzaXplKSB7Cisg
ICAgICAgIGF1dG8gcG9pbnQgPSByZWN0Q29ybmVyUG9pbnQocmVjdCwgY29ybmVyKTsKKyAgICAg
ICAgaWYgKGNvcm5lciA9PSBSZWN0VG9wUmlnaHQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdo
dCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoLXNpemUud2lkdGgoKSwgMCk7CisgICAgICAgIGlm
IChjb3JuZXIgPT0gUmVjdEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RCb3R0b21SaWdodCkK
KyAgICAgICAgICAgIHBvaW50Lm1vdmUoMCwgLXNpemUuaGVpZ2h0KCkpOworICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KHBvaW50LCBzaXplKTsKKyAgICB9OworCisgICAgYXV0byBvcHBvc2l0ZUhv
cml6b250YWwgPSBbXShSZWN0Q29ybmVyIGNvcm5lcikgeworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVjdENvcm5lcj4oY29ybmVyIF4gMHgxKTsKKyAgICB9OworCisgICAgYXV0byBvcHBv
c2l0ZVZlcnRpY2FsID0gW10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlY3RDb3JuZXI+KGNvcm5lciBeIDB4Mik7CisgICAgfTsKKworICAgIGF1dG8g
ZHJhd0JhZGdlUmVjdCA9IFsmXShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgYmFkZ2VzUmVjdCwgUmVjdENvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSYgYmFk
Z2VTaXplLCBjb25zdCBGbG9hdFNpemUmIGN1dG9mZlNpemUpIHsKKworICAgICAgICBGbG9hdFJl
Y3QgYmFkZ2VSZWN0ID0gcmVjdENvcm5lclJlY3QoYmFkZ2VzUmVjdCwgY29ybmVyLCBiYWRnZVNp
emUpOworICAgICAgICBGbG9hdFJlY3QgY3V0b2ZmUmVjdCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdl
c1JlY3QsIGNvcm5lciwgY3V0b2ZmU2l6ZSk7CisKKyAgICAgICAgUGF0aCBwYXRoOworCisgICAg
ICAgIGNvcm5lciA9IG9wcG9zaXRlSG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBwYXRoLm1v
dmVUbyhyZWN0Q29ybmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisgICAgICAgIHBhdGgu
YWRkTGluZVRvKHJlY3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworCisgICAgICAg
IGNvcm5lciA9IG9wcG9zaXRlVmVydGljYWwoY29ybmVyKTsKKyAgICAgICAgcGF0aC5hZGRMaW5l
VG8ocmVjdENvcm5lclBvaW50KGJhZGdlUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgY29ybmVy
ID0gb3Bwb3NpdGVIb3Jpem9udGFsKGNvcm5lcik7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHJl
Y3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOworICAgICAgICBwYXRoLmFkZExpbmVU
byhyZWN0Q29ybmVyUG9pbnQoY3V0b2ZmUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgcGF0aC5j
bG9zZVN1YnBhdGgoKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcik7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisgICAgICAgIHJldHVybiBiYWRnZVJlY3Q7
CisgICAgfTsKKworICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gMTsKKyAgICBjb25z
dCBmbG9hdCBob3Jpem9udGFsTWFyZ2luID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6
ZSA9IDEwOworICAgIGNvbnN0IEZsb2F0U2l6ZSBjdXRvZmZTaXplKDMsIDMpOworCisgICAgRm9u
dENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CisgICAgZm9udERlc2NyaXB0aW9u
LnNldE9uZUZhbWlseSgiSGVsdmV0aWNhIik7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNp
ZmllZFNpemUoZm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUo
Zm9udFNpemUpOworCisgICAgRm9udENhc2NhZGUgY2FzY2FkZShXVEZNb3ZlKGZvbnREZXNjcmlw
dGlvbikpOworICAgIGNhc2NhZGUudXBkYXRlKG51bGxwdHIpOworCisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgY29udGV4dC5zZXRTdHJv
a2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOwor
ICAgIGNvbnRleHQuc3Ryb2tlUmVjdChib3JkZXJSZWN0LCAwLjUpOworCisgICAgRmxvYXRSZWN0
IGJhZGdlc1JlY3QgPSBib3JkZXJSZWN0OworICAgIGJhZGdlc1JlY3QuaW5mbGF0ZSgtMSk7CisK
KyAgICBmb3IgKGF1dG8gYmFkZ2UgOiBiYWRnZXMpIHsKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVu
KGJhZGdlLnRleHQpOworICAgICAgICBmbG9hdCB0ZXh0V2lkdGggPSBjYXNjYWRlLndpZHRoKHRl
eHRSdW4pOworICAgICAgICBGbG9hdFNpemUgYmFkZ2VTaXplKGhvcml6b250YWxNYXJnaW4gKiAy
ICsgdGV4dFdpZHRoLCB2ZXJ0aWNhbE1hcmdpbiAqIDIgKyBmb250U2l6ZSk7CisKKyAgICAgICAg
YXV0byBiYWRnZVJlY3QgPSBkcmF3QmFkZ2VSZWN0KGNvbnRleHQsIGJhZGdlc1JlY3QsIGJhZGdl
LmNvcm5lciwgYmFkZ2VTaXplLCBjdXRvZmZTaXplKTsKKworICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihiYWRnZS5jb2xvcik7CisgICAgICAgIGNvbnRleHQuZHJhd1RleHQoY2FzY2FkZSwg
dGV4dFJ1biwgRmxvYXRQb2ludChiYWRnZVJlY3QueCgpICsgaG9yaXpvbnRhbE1hcmdpbiwgYmFk
Z2VSZWN0LnkoKSArIGZvbnRTaXplKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNjUxNTQ4OGE1ZTg0MGEyMzFmYmFlOThh
MjZlNzAwMGIxMzk0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OworY2xhc3MgRmxvYXRSZWN0OworCitlbnVtIFJlY3RDb3JuZXIgeworICAg
IFJlY3RUb3BMZWZ0ICAgICA9IDB4MDAsCisgICAgUmVjdFRvcFJpZ2h0ICAgID0gMHgwMSwKKyAg
ICBSZWN0Qm90dG9tTGVmdCAgPSAweDAyLAorICAgIFJlY3RCb3R0b21SaWdodCA9IDB4MDMsCit9
OworCitzdHJ1Y3QgQmFkZ2UgeworICAgIFJlY3RDb3JuZXIgY29ybmVyOworICAgIENvbG9yIGNv
bG9yOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3QmFk
Z2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3Qs
IGNvbnN0IENvbG9yJiwgY29uc3QgVmVjdG9yPEJhZGdlPiYpOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRJbXBsLmgKaW5kZXggM2Q1MDc1YmNlZGNiZjUwMjg3MWNkNTUwOTM1ZjUxYWM4
ZGIyZjU1Yy4uZjQ0ZDllNTQzYTM5NDQwMzlmZTk4ZmUzNGMwODMyOTU5MzRjMjg4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEltcGwuaApAQCAtNzIsOSArNzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbWFnZURyYXdS
ZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwog
ICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBG
bG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6
VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1Qy
RCkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0g
MDsKLSNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmLCBDYWNoZWRJbWFnZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkMzlmZWFhODJmMzcxY2Y4YWFmNzZkMjdmMzM1
NzNmMzUxOThkMDg5Li5lYTRkNjNhOTRlZDZjZjAyMjNmZDllYTA1MDg4YTM3YmQ3MTJkNmM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTMyLDggKzMyLDkg
QEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAj
aW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRp
b25zLmgiCiAjaW5jbHVkZSAiSW1hZ2VUeXBlcy5oIgotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgi
CisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC03Miw3
ICs3Myw2IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNz
IEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFzcyBTaGFyZWRCdWZmZXI7Ci1zdHJ1Y3QgSW1hZ2VQ
YWludGluZ09wdGlvbnM7CiBzdHJ1Y3QgTGVuZ3RoOwogCiAvLyBUaGlzIGNsYXNzIGdldHMgbm90
aWZpZWQgd2hlbiBhbiBpbWFnZSBjcmVhdGVzIG9yIGRlc3Ryb3lzIGRlY29kZWQgZnJhbWVzIGFu
ZCB3aGVuIGl0IGFkdmFuY2VzIGFuaW1hdGlvbiBmcmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBkMTQ2NDkyYzRhOGRmOTM1Y2Fm
OTRiOWZiOTU1OTA5YWFkMWNiYWYwLi5kYmUwMjVlZTllMWE0NDBmMDJlYTk2NjRhMzRmOThhMGY2
YzUxYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OwogY2xhc3MgRHJhd2luZ0NvbnRleHQ7
CiB9CiAKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBEaXNwbGF5TGlz
dDo6RHJhd2luZ0NvbnRleHQqIGRyYXdpbmdDb250ZXh0KCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jikg
eyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2Vu
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5k
LmgKaW5kZXggYzAxMGEwZjBjZmNkOGM1ZTdhYjZjOTRjNWMzYzM2ZjQ4Mzg2ZDAxZi4uNThmYzE0
ODM2ZDkyYWEyMDAxOWYyMGZlZWRjNTU3MWU5YWI1ZTk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTMxLDEz
ICszMSwxNCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkltYWdl
UGFpbnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIk5hdGl2
ZUltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFn
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIu
aAppbmRleCA4YjA4OWU1OTRjMWFmY2NlZTRmZmI1MDcxMTU5Nzg3NDY5NWNiMmRlLi5iNGQ3MTBh
YzY3MzBjODVkZmVlYTc1ZWFiMGYzZGI2Njc2ZjYwZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oCkBAIC00NSwxMCArNDUsMTMgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoY29uc3Qg
SW1hZ2UmLCBFbmNvZGVkRGF0YVN0YXR1cykgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVk
U2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcgZGVsdGEpID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3KGNvbnN0
IEltYWdlJikgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShj
b25zdCBJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VGcmFtZUF2YWlsYWJsZShj
b25zdCBJbWFnZSYsIEltYWdlQW5pbWF0aW5nU3RhdGUsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJl
Y3QgPSBudWxscHRyLCBEZWNvZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IElt
YWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgY2hh
bmdlZEluUmVjdChjb25zdCBJbWFnZSYsIGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxs
cHRyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKGNvbnN0
IEltYWdlJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcAppbmRleCA3NzUwMzIyMzlhNWQ1YWJhYTc2M2Y3YTI2M2VkN2NiMjQ1
OTgyNjUyLi40NTUxNWM1OWExZmYyODRjZDhkMjgwMzgzN2IwODViNTAyMmQ2YzA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0x
MzAsOCArMTMwLDEwIEBAIHZvaWQgSW1hZ2VTb3VyY2U6OmRlc3Ryb3lEZWNvZGVkRGF0YShzaXpl
X3QgZnJhbWVDb3VudCwgc2l6ZV90IGV4Y2x1ZGVGcmFtZSkKICAgICBBU1NFUlQoZnJhbWVDb3Vu
dCA8PSBtX2ZyYW1lcy5zaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRl
eCA8IGZyYW1lQ291bnQ7ICsraW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4ID09IGV4Y2x1ZGVG
cmFtZSkKKyAgICAgICAgaWYgKGluZGV4ID09IGV4Y2x1ZGVGcmFtZSB8fCAhbV9mcmFtZXNbaW5k
ZXhdLm5hdGl2ZUltYWdlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKG1f
aW1hZ2UgJiYgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigpKQorICAgICAgICAgICAgbV9pbWFnZS0+
aW1hZ2VPYnNlcnZlcigpLT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCgqbV9pbWFnZSwgbV9m
cmFtZXNbaW5kZXhdLm5hdGl2ZUltYWdlKCkpOwogICAgICAgICBkZWNvZGVkU2l6ZSArPSBtX2Zy
YW1lc1tpbmRleF0uY2xlYXJJbWFnZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggNmIyZDgxZTM1YjA4Y2Y3NGY0ZjM2
MWFlYmM3NGYzMTI5YzdkOWI3Zi4uNDMzNzg3OTBiMjI5MWVhMDBiMTIwOGUwYTVjYmM5NzI5Zjc3
MWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZl
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFn
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDEy
IENvbXBhbnkgMTAwIEluYy4KICAqCkBAIC0yNyw1MiArMjcsMTYgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgotCi0jaWYgVVNFKENHKQotI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLXR5cGVkZWYgc3RydWN0IENHSW1hZ2UqIENHSW1hZ2VS
ZWY7Ci0jZWxpZiBVU0UoQ0FJUk8pCi0jaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNlbGlmIFVT
RShXSU5HREkpCi0jaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgiCi0jZW5kaWYKLQotI2lmIFVTRShE
SVJFQ1QyRCkKLSNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlIDxkMmQxLmg+Ci0jaW5jbHVk
ZSA8d2luY29kZWMuaD4KLSNlbmRpZgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7Ci1jbGFzcyBGbG9hdFJlY3Q7CiBjbGFz
cyBJbnRTaXplOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotCi0jaWYgVVNFKENHKQotdHlwZWRl
ZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTmF0aXZlSW1hZ2VQdHI7Ci0jZWxpZiBVU0UoRElSRUNU
MkQpCi10eXBlZGVmIENPTVB0cjxJRDJEMUJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7Ci0jZWxpZiBV
U0UoQ0FJUk8pCi10eXBlZGVmIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRy
OwotI2VsaWYgVVNFKFdJTkdESSkKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZl
SW1hZ2VQdHI7Ci0jZW5kaWYKIAogV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBuYXRpdmVJbWFnZVNp
emUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIGJvb2wgbmF0aXZlSW1hZ2VIYXNBbHBoYShjb25z
dCBOYXRpdmVJbWFnZVB0ciYpOwogQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29s
b3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKLQotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEludFBvaW50
JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNlKTsKLQogdm9pZCBjbGVhck5hdGl2
ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7Ci0KLWNsYXNzIE5hdGl2ZUlt
YWdlSGFuZGxlIHsKLXB1YmxpYzoKLSAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZTsKLX07CiAgICAg
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJ
bWFnZVB0ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQ
dHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZDc3YTg5OGQzOTg3MzY0MTExNzRmMTlmNzUxNDA3MWQwN2M5NTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2VQdHIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKENHKQorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KK3R5cGVkZWYgc3RydWN0IENHSW1hZ2UqIENHSW1hZ2VSZWY7
CisjZWxpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNlbGlmIFVTRShX
SU5HREkpCisjaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisjaWYgVVNFKENHKQordHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTmF0
aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0UoRElSRUNUMkQpCit0eXBlZGVmIENPTVB0cjxJRDJEMUJp
dG1hcD4gTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBVU0UoQ0FJUk8pCit0eXBlZGVmIFJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKFdJTkdESSkKK3R5cGVk
ZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CisjZW5kaWYKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWY1NDJkZmVjODQ3YWJjMzcxYWEyZjFlOGU0
YjhkZDlmYjExMGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIFJlbW90ZVJlc291cmNlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJU
eXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGExMDQ2NTZjYjVkNWRk
ZWEwMzIxZGFhNDRhMDQ0NjUxNzUwODhlNGYuLjJhYjljZTNiYmEyNWVhNTQ4NTQ0OGYzNGFhNzc3
YWZlMDRlNzM0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEyMywxNiAr
MTIzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKICAgICBDYWlybzo6ZHJhd1JlY3QoKnBsYXRm
b3JtQ29udGV4dCgpLCByZWN0LCBib3JkZXJUaGlja25lc3MsIHN0YXRlLmZpbGxDb2xvciwgc3Rh
dGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9rZUNvbG9yKTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdO
YXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0
KCkpOwogICAgIGF1dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKICAgICBDYWlybzo6ZHJhd05h
dGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNS
ZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgfSwgc3RhdGUu
YWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dEltcGxDYWlyby5jcHAKaW5kZXggYjY1YjRkNjQ0MDZiZWI3NmM0MDlkM2U4YzY1NDk3NWNhOWY3
ZWI2My4uZmU5MDQ5NTI3YWZlY2VkYjE3YjgxZjYyYzQ2ZThmMjcxZGI4Mjc2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0yNzksMTMgKzI3OSwxOSBAQCBJbWFn
ZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJbWFnZShJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3
VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxD
YWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENh
Y2hlZEltYWdlKikKIHsKICAgICBVTlVTRURfUEFSQU0oaW1hZ2VTaXplKTsKICAgICBhdXRvJiBz
dGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7CiAgICAgQ2Fpcm86OmRyYXdOYXRpdmVJ
bWFnZShtX3BsYXRmb3JtQ29udGV4dCwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7
IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgfSwgc3RhdGUuYWxwaGEs
IENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dElt
cGxDYWlybzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKaW5kZXggZTVlMjA3NDhjNmQ3NjIw
ZjEwY2YyMTU2NjI4ZWY3ZTBiZTYwMWM3Yi4uMmMxYzcwMTU0YzFmYTQ2NjA3MmNlNzIyZmY2NDM2
NmY1YWU5NzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKQEAgLTc0LDcg
Kzc0LDkgQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpUaWxlUnVs
ZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3Qg
RmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdl
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJ
bWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBlYTM3Yzc4NmVmNmRiNmU1YWZlYjkx
Nzc5OGZhNTMxYmY5OGFjODRkLi5jMjkyZGI0MmNjMGY5ZjBmOWM0N2M3OGVkNjljMmQ4MzMxYzk4
MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yODAsMTYgKzI4MCwxMSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIG1fZGF0YS0+bV91c2VyVG9E
ZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdl
KGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAg
ICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAjaWYgIUxPR19E
SVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL05hdGl2ZUltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvTmF0aXZlSW1hZ2VDRy5jcHAKaW5kZXggNWNjNWMyMDdiNDRhNDgzNWJlMmUwODAyOGEzYTcx
MDk1YTU1ZTFlMC4uNDAwZDZlZjBhNDU3N2Q1ZDdjYzViZDljYjY0NmE1YmFkZWJkYWRjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VD
Ry5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1h
Z2VDRy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJT
dWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgiCkBAIC02OSw0MCArNjgsNiBAQCBDb2xvciBuYXRpdmVJ
bWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAg
ICAgcmV0dXJuIGNsYW1wVG9Db21wb25lbnRCeXRlczxTUkdCQT4ocGl4ZWxbMF0gKiAyNTUgLyBw
aXhlbFszXSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMl0gKiAyNTUgLyBwaXhl
bFszXSwgcGl4ZWxbM10pOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNT
aXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKLXsKLSAgICAvLyBTdWJz
YW1wbGluZyBtYXkgaGF2ZSBnaXZlbiB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBz
aXplKCkuCi0gICAgSW50U2l6ZSBzdWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXpl
KGltYWdlKTsKLSAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0
KCkpCi0gICAgICAgIHN1YnNhbXBsZWRJbWFnZVNpemUgPSBzdWJzYW1wbGVkSW1hZ2VTaXplLnRy
YW5zcG9zZWRTaXplKCk7Ci0KLSAgICAvLyBzcmNSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlcyBv
ZiB0aGUgdW5zdWJzYW1wbGVkIGltYWdlLCBzbyB3ZSBoYXZlIHRvIG1hcCBpdCB0byB0aGUgc3Vi
c2FtcGxlZCBpbWFnZS4KLSAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsK
LSAgICBpZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQotICAgICAgICBhZGp1c3Rl
ZFNyY1JlY3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1NpemUpLCBGbG9h
dFJlY3QoeyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7Ci0KLSAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZShpbWFnZSwgc3Vic2FtcGxlZEltYWdlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3Jj
UmVjdCwgb3B0aW9ucyk7Ci19Ci0KLXZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBmbG9hdCBzY2FsZUZhY3Rv
ciwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbnRSZWN0JiBzb3VyY2UpCi17
Ci0gICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7
Ci0gICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwotCi0gICAgQ0dDb250ZXh0Q2xp
cFRvUmVjdChjZ0NvbnRleHQsIENHUmVjdE1ha2UoZGVzdGluYXRpb24ueCgpLCBkZXN0aW5hdGlv
bi55KCksIHNvdXJjZS53aWR0aCgpLCBzb3VyY2UuaGVpZ2h0KCkpKTsKLSAgICBDR0NvbnRleHRT
Y2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsKLQotICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBD
R0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSAvIHNjYWxlRmFjdG9yOwotICAgIENHRmxvYXQg
aW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3RvcjsK
LQotICAgIENHRmxvYXQgZGVzdFggPSBkZXN0aW5hdGlvbi54KCkgLSBzb3VyY2UueCgpOwotICAg
IENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VIZWlnaHQgLSBkZXN0aW5hdGlvbi55KCkgKyBzb3VyY2Uu
eSgpOwotCi0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0
WCwgZGVzdFksIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KSwgaW1hZ2UuZ2V0KCkpOwotCi0gICAg
Q0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOwotfQotCiB2b2lkIGNsZWFyTmF0aXZl
SW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewogI2lmIENBQ0hF
X1NVQklNQUdFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBhNjM4MzY5MjFkOGRmY2ExNjYz
OGJkODZhYTkzM2VmYTdlMjY0ZDgxLi5iMzU4OTNjNTgyZTQxN2MyYmIzMzUyYTUxNmUzY2I1OWZl
MDI0M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtNjIsOCArNjIsOSBAQCBlbnVtIGNs
YXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgRHJhd0ltYWdlLAogICAgIERyYXdUaWxlZElt
YWdlLAogICAgIERyYXdUaWxlZFNjYWxlZEltYWdlLAotI2lmIFVTRShDRykgfHwgVVNFKENBSVJP
KSB8fCBVU0UoRElSRUNUMkQpCiAgICAgRHJhd05hdGl2ZUltYWdlLAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyAgICBEcmF3SW1hZ2VCdWZmZXIsCiAjZW5kaWYKICAgICBEcmF3UGF0dGVybiwK
ICAgICBEcmF3UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdD
b250ZXh0LmNwcAppbmRleCAyM2NjMDdlOGFlNDQyYmRjZWEwZDM2NzRhNWE4NTUxYzY1Y2ZkYzg3
Li5kNDYxN2QzNTE2ZjRmM2U1MWQ3NWQ2NDQzNGE2YTM5NDU3YTAwMDFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCkBAIC0zMyw5ICszMyw5
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1EcmF3
aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBSZWNvcmRlcjo6T2JzZXJ2ZXIqIG9i
c2VydmVyKQorRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3JkZXI6
OkRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICA6IG1fY29udGV4dChbJl0oR3JhcGhpY3NDb250ZXh0
JiBkaXNwbGF5TGlzdENvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVjb3Jk
ZXI+KGRpc3BsYXlMaXN0Q29udGV4dCwgbV9kaXNwbGF5TGlzdCwgR3JhcGhpY3NDb250ZXh0U3Rh
dGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNLCBvYnNlcnZlcik7
CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlzdENvbnRleHQs
IG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxv
Z2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUpOwogICAgIH0pCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAppbmRleCA3YjY3M2YzMmFk
ODE1YTUwMDgxYjdlN2FiMTA4MTMxNzE3ZmRlNTQzLi4yMmVkMjU2ZTgwYWQyOTNhMDUyMDY5Yjc0
MzA4OGExMzUxZjQ3Y2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIGNs
YXNzIERyYXdpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJlY29y
ZGVyOjpPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29u
dGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVyOjpEZWxlZ2F0ZSogPSBudWxscHRyKTsKIAogICAg
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8RHJh
d2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVj
b3JkZXImIHJlY29yZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXIuaAppbmRleCA2ZmQ5MTJkZmI4ZmUxMWMwOThkZDYxMjZhOGM4NzhhYzZiYTdhZTAyLi4zMjU5
OWUwNjJkN2NmNTlkMWRjMmVhZDAxZTc2MGQ2NmUzZjdlYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQmFj
a2VuZFR5cGU+Ci1jbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVy
PEJhY2tlbmRUeXBlPiwgcHVibGljIFJlY29yZGVyOjpPYnNlcnZlciB7CitjbGFzcyBJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CiAgICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRU
eXBlPjsKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1YmxpYzoKIAogICAgIEltYWdl
QnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBkYXRhQmFja2VuZCwgY29uc3Qg
RmxvYXRTaXplJiBzaXplKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1v
dmUoZGF0YUJhY2tlbmQpKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlh
bERyYXdpbmdDb250ZXh0Q1RNKHNpemUpLCB0aGlzKQorICAgICAgICAsIG1fZHJhd2luZ0NvbnRl
eHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RNKHNpemUpKQogICAgIHsKICAgICB9CiAK
LSAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUpCi0gICAgICAgIDogbV9kcmF3
aW5nQ29udGV4dChzaXplLCBpbml0aWFsRHJhd2luZ0NvbnRleHRDVE0oc2l6ZSksIHRoaXMpCisg
ICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZWNvcmRlcjo6RGVsZWdhdGUq
IGRlbGVnYXRlID0gbnVsbHB0cikKKyAgICAgICAgOiBtX2RyYXdpbmdDb250ZXh0KHNpemUsIGlu
aXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgZGVsZWdhdGUpCiAgICAgewogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDE4ZDcwY2ZiZDI0MDk4NTg2
ODQ0OWZiMzU5YTlmODVlYmRmZDM2MzYuLmYxNWM3NzBlMWRhNGQ1MWY1ZmE0NjYxZTdjNTBkNzQw
NGYzNGFkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTMwLDcg
KzMwLDYgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiAjaWYgVVNFKENHKQpAQCAtMTA2LDkg
KzEwNSwxMSBAQCBzaXplX3QgSXRlbTo6c2l6ZUluQnl0ZXMoY29uc3QgSXRlbSYgaXRlbSkKICAg
ICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3VGlsZWRJbWFnZT4oaXRlbSkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAgICAgICByZXR1cm4gc2l6
ZW9mKGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdlPihpdGVtKSk7Ci0jaWYgVVNFKENHKSB8
fCBVU0UoQ0FJUk8pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAg
ICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdOYXRpdmVJbWFnZT4oaXRlbSkpOworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6Cisg
ICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd0ltYWdlQnVmZmVyPihpdGVtKSk7CiAj
ZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAgICAgcmV0dXJuIHNp
emVvZihkb3duY2FzdDxEcmF3UGF0dGVybj4oaXRlbSkpOwpAQCAtNzAzLDMyICs3MDQsMjIgQEAg
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdU
aWxlZFNjYWxlZEltYWdlJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotI2lmIFVTRShDRykg
fHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi1EcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorRHJhd05hdGl2ZUltYWdl
OjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAg
OiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlKQotI2lmIFVTRShDRykKLSAg
ICAvLyBGSVhNRTogTmVlZCB0byBzdG9yZSBhbiBpbWFnZSBmb3IgQ2Fpcm8uCiAgICAgLCBtX2lt
YWdlKGltYWdlKQotI2VuZGlmCiAgICAgLCBtX2ltYWdlU2l6ZShpbWFnZVNpemUpCiAgICAgLCBt
X2Rlc3RpbmF0aW9uUmVjdChkZXN0UmVjdCkKICAgICAsIG1fc3JjUmVjdChzcmNSZWN0KQogICAg
ICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7Ci0jaWYgIVVTRShDRykKLSAgICBVTlVTRURfUEFSQU0o
aW1hZ2UpOwotI2VuZGlmCiB9CiAKIERyYXdOYXRpdmVJbWFnZTo6fkRyYXdOYXRpdmVJbWFnZSgp
ID0gZGVmYXVsdDsKIAogdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cpCi0gICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3NyY1JlY3Qs
IG1fb3B0aW9ucyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKLSNlbmRpZgor
ICAgIEFTU0VSVChuYXRpdmVJbWFnZVB0cigpKTsKKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFn
ZShuYXRpdmVJbWFnZVB0cigpLCBtX2ltYWdlU2l6ZSwgbV9kZXN0aW5hdGlvblJlY3QsIG1fc3Jj
UmVjdCwgbV9vcHRpb25zKTsKIH0KIAogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKQEAgLTczOSw2ICs3MzAs
MzMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKICAgICB0cy5kdW1wUHJvcGVydHkoImRlc3QtcmVjdCIs
IGl0ZW0uZGVzdGluYXRpb25SZWN0KCkpOwogICAgIHJldHVybiB0czsKIH0KKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKK0RyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd0ltYWdl
QnVmZmVyKQorICAgICwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQorICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCisgICAgLCBtX3Ny
Y1JlY3Qoc3JjUmVjdCkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworfQorCitEcmF3SW1h
Z2VCdWZmZXI6On5EcmF3SW1hZ2VCdWZmZXIoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgRHJhd0ltYWdl
QnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAoreworICAgIC8vIFNob3VsZCBi
ZSBoYW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERy
YXdJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cyA8PCBzdGF0aWNfY2FzdDxjb25zdCBEcmF3
aW5nSXRlbSY+KGl0ZW0pOworICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVtb3RlLXJlc291cmNlLWlk
ZW50aWZpZXIiLCBpdGVtLnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpKTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoInNvdXJjZS1yZWN0IiwgaXRlbS5zb3VyY2UoKSk7CisgICAgdHMuZHVtcFByb3Bl
cnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKKyAgICByZXR1cm4gdHM7
Cit9CiAjZW5kaWYKIAogRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKQEAgLTE0NjksOCArMTQ4Nyw5IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtVHlwZSYgdHlwZSkKICAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3SW1hZ2U6IHRzIDw8ICJkcmF3LWltYWdlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd1RpbGVkSW1hZ2U6IHRzIDw8ICJkcmF3LXRpbGVkLWltYWdlIjsgYnJlYWs7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2U6IHRzIDw8ICJkcmF3LXRpbGVk
LXNjYWxlZC1pbWFnZSI7IGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogdHMgPDwgImRyYXctbmF0aXZlLWltYWdlIjsg
YnJlYWs7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJ
bWFnZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAjZW5kaWYKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjogdHMgPDwgImRyYXctcGF0dGVybiI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OiB0cyA8PCAiZHJhdy1yZWN0IjsgYnJlYWs7
CkBAIC0xNTcxLDEwICsxNTkwLDEzIEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEl0ZW0mIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1RpbGVkU2Nh
bGVkSW1hZ2U6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdlPihp
dGVtKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3
TmF0aXZlSW1hZ2U+KGl0ZW0pOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgorICAgICAgICB0cyA8PCBk
b3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KGl0ZW0pOworICAgICAgICBicmVhazsKICNlbmRpZgog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAgICAgICB0cyA8PCBkb3duY2FzdDxE
cmF3UGF0dGVybj4oaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBj
YjY4NGQyM2NlNzViNGZhYjllYzQxMzE2MjdhY2QzMmQ2MjRhZWRiLi4zYjY0ZDNiYTM0MDc1NDYw
MzFlZTliYjBjYWEzMjc2NTlmOTU0ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCisjaW5jbHVkZSAi
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNDMyLDMyICsxNDMzLDUyIEBAIE9wdGlv
bmFsPFJlZjxEcmF3VGlsZWRTY2FsZWRJbWFnZT4+IERyYXdUaWxlZFNjYWxlZEltYWdlOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIERyYXdUaWxlZFNjYWxlZEltYWdlOjpjcmVh
dGUoKmltYWdlSGFuZGxlLT5pbWFnZSwgKmRlc3RpbmF0aW9uLCAqc291cmNlLCAqdGlsZVNjYWxl
RmFjdG9yLCBoUnVsZSwgdlJ1bGUsICppbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLSNpZiBV
U0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogY2xhc3MgRHJhd05hdGl2ZUlt
YWdlIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERyYXdO
YXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHVzaW5nIE5hdGl2ZUltYWdlVHlwZSA9IFZhcmlhbnQ8
TmF0aXZlSW1hZ2VQdHIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcj47CisKKyAgICBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QKKyAgICB7
CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI+KG1faW1hZ2UpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJu
IFdURjo6Z2V0PFJlbW90ZVJlc291cmNlSWRlbnRpZmllcj4obV9pbWFnZSk7CisgICAgfQorCisg
ICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VQdHIoKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE5hdGl2ZUltYWdlUHRyPihtX2ltYWdlKSkKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8TmF0aXZl
SW1hZ2VQdHI+KG1faW1hZ2UpOworICAgIH0KKyNlbHNlCisgICAgdXNpbmcgTmF0aXZlSW1hZ2VU
eXBlID0gTmF0aXZlSW1hZ2VQdHI7CisKKyAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZVB0
cigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2U7IH0KKyNlbmRpZgorICAgIHN0YXRpYyBSZWY8RHJh
d05hdGl2ZUltYWdlPiBjcmVhdGUoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3TmF0aXZlSW1hZ2UoaW1hZ2Us
IGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKICAgICB9CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5EcmF3TmF0aXZlSW1hZ2UoKTsKIAorICAgIEZsb2F0U2l6
ZSBpbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2l6ZTsgfQogICAgIEZsb2F0UmVj
dCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1JlY3Q7IH0KICAgICBGbG9hdFJlY3QgZGVz
dGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KKyAgICBJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxEcmF3
TmF0aXZlSW1hZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVf
RVhQT1JUIERyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0
U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VUeXBlJiwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAgIHZvaWQgYXBw
bHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPcHRpb25hbDxGbG9h
dFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKLSNpZiBVU0UoQ0cpCi0gICAgTmF0aXZl
SW1hZ2VQdHIgbV9pbWFnZTsKLSNlbmRpZgorICAgIE5hdGl2ZUltYWdlVHlwZSBtX2ltYWdlOwog
ICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvblJl
Y3Q7CiAgICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKQEAgLTE0NjcsMTAgKzE0ODgsNyBAQCBwcml2
YXRlOgogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSNpZiBVU0UoQ0cpCi0gICAgTmF0aXZlSW1h
Z2VIYW5kbGUgaGFuZGxlIHsgbV9pbWFnZSB9OwotICAgIGVuY29kZXIgPDwgaGFuZGxlOwotI2Vu
ZGlmCisgICAgZW5jb2RlciA8PCBtX2ltYWdlOwogICAgIGVuY29kZXIgPDwgbV9pbWFnZVNpemU7
CiAgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uUmVjdDsKICAgICBlbmNvZGVyIDw8IG1fc3Jj
UmVjdDsKQEAgLTE0ODAsMTIgKzE0OTgsMTAgQEAgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlv
bmFsPFJlZjxEcmF3TmF0aXZlSW1hZ2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogewotI2lmIFVTRShDRykKLSAgICBPcHRpb25hbDxOYXRpdmVJbWFnZUhhbmRs
ZT4gaGFuZGxlOwotICAgIGRlY29kZXIgPj4gaGFuZGxlOwotICAgIGlmICghaGFuZGxlKQorICAg
IE9wdGlvbmFsPE5hdGl2ZUltYWdlVHlwZT4gaW1hZ2U7CisgICAgZGVjb2RlciA+PiBpbWFnZTsK
KyAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotI2VuZGlmCiAK
ICAgICBPcHRpb25hbDxGbG9hdFNpemU+IGltYWdlU2l6ZTsKICAgICBkZWNvZGVyID4+IGltYWdl
U2l6ZTsKQEAgLTE1MDcsMTQgKzE1MjMsNzUgQEAgT3B0aW9uYWw8UmVmPERyYXdOYXRpdmVJbWFn
ZT4+IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFv
cHRpb25zKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0jaWYgVVNFKENHKQotICAg
IE5hdGl2ZUltYWdlUHRyIGltYWdlID0gaGFuZGxlLT5pbWFnZTsKLSNlbHNlCi0gICAgTmF0aXZl
SW1hZ2VQdHIgaW1hZ2UgPSBudWxscHRyOwotI2VuZGlmCi0gICAgcmV0dXJuIERyYXdOYXRpdmVJ
bWFnZTo6Y3JlYXRlKGltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb25SZWN0LCAqc3JjUmVj
dCwgKm9wdGlvbnMpOworICAgIHJldHVybiBEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZSgqaW1hZ2Us
ICppbWFnZVNpemUsICpkZXN0aW5hdGlvblJlY3QsICpzcmNSZWN0LCAqb3B0aW9ucyk7CiB9Ci0j
ZW5kaWYKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK2NsYXNzIERyYXdJbWFnZUJ1ZmZlciA6
IHB1YmxpYyBEcmF3aW5nSXRlbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEcmF3SW1hZ2VC
dWZmZXI+IGNyZWF0ZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3SW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSk7CisgICAgfQorCisgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd0ltYWdlQnVmZmVyKCk7CisKKyAgICBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7IH0KKyAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CisgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CisgICAgSW1hZ2VQYWludGluZ09w
dGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4g
ZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3SW1h
Z2VCdWZmZXIoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKTsKKworICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7
CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CisKKyAg
ICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7Cisg
ICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OworICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7
CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25zOworfTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRHJhd0ltYWdlQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOwor
ICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3NyY1Jl
Y3Q7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4gRHJhd0ltYWdlQnVmZmVyOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI+IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcjsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZGVz
dGluYXRpb247CisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0
aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRS
ZWN0PiBzb3VyY2U7CisgICAgZGVjb2RlciA+PiBzb3VyY2U7CisgICAgaWYgKCFzb3VyY2UpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbWFnZVBhaW50aW5n
T3B0aW9ucz4gb3B0aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRp
b25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIERyYXdJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKCpyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsICpkZXN0aW5hdGlvbiwg
KnNvdXJjZSwgKm9wdGlvbnMpOworfQorI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
Y2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewogcHVibGljOgpAQCAtMjk3
MywxMCArMzA1MCwxMyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAgICAgICBlbmNv
ZGVyIDw8IGRvd25jYXN0PERyYXdUaWxlZFNjYWxlZEltYWdlPigqdGhpcyk7CiAgICAgICAgIGJy
ZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0
PERyYXdOYXRpdmVJbWFnZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgorICAgICAgICBl
bmNvZGVyIDw8IGRvd25jYXN0PERyYXdJbWFnZUJ1ZmZlcj4oKnRoaXMpOworICAgICAgICBicmVh
azsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAgICAgICBlbmNv
ZGVyIDw8IGRvd25jYXN0PERyYXdQYXR0ZXJuPigqdGhpcyk7CkBAIC0zMTY0LDExICszMjQ0LDE1
IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgICAgIGlmIChhdXRvIGl0ZW0gPSBEcmF3VGlsZWRTY2FsZWRJbWFnZTo6ZGVjb2RlKGRlY29k
ZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZN
b3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8
fCBVU0UoRElSRUNUMkQpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAg
ICAgICBpZiAoYXV0byBpdGVtID0gRHJhd05hdGl2ZUltYWdlOjpkZWNvZGUoZGVjb2RlcikpCiAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PEl0ZW0+KFdURk1vdmUoKml0
ZW0pKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdJ
bWFnZUJ1ZmZlcjo6ZGVjb2RlKGRlY29kZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19y
ZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CisgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgICAgIGlmIChhdXRvIGl0
ZW0gPSBEcmF3UGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpKQpAQCAtMzMyNiw4ICszNDEwLDkgQEAg
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdHbHlwaHMpCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd0ltYWdlKQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdUaWxlZEltYWdlKQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdUaWxlZFNjYWxlZEltYWdlKQotI2lm
IFVTRShDRykgfHwgVVNFKENBSVJPKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElT
VF9JVEVNKERyYXdOYXRpdmVJbWFnZSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd0ltYWdlQnVmZmVyKQogI2VuZGlm
CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd1BhdHRlcm4pCiBT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd1JlY3QpCkBAIC0zMzg4
LDggKzM0NzMsOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd0ltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1RpbGVk
SW1hZ2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3VGlsZWRTY2Fs
ZWRJbWFnZSwKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlLAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRy
YXdJbWFnZUJ1ZmZlciwKICNlbmRpZgogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd1BhdHRlcm4sCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3
UmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBkZDM1
ZWYxYTI4YTkwNzFkYWVmOWEwYThkNzdkOTg0MDFlYTA4MDFkLi45NTU3NWQwZjQxNGMyZWRlNWYx
OTEwMjAwNmUzNmY1ZDg0NGE0NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGluaXRpYWxDVE0sIE9ic2VydmVyKiBvYnNlcnZlcikKK1JlY29yZGVyOjpSZWNv
cmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
Y29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRp
YWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERlbGVnYXRlKiBkZWxl
Z2F0ZSkKICAgICA6IEdyYXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIEFm
ZmluZVRyYW5zZm9ybSgpKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKLSAgICAs
IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZWNvcmRpbmcgd2l0
aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoeyBzdGF0
ZSwgaW5pdGlhbENUTSwgaW5pdGlhbENsaXAgfSk7CkBAIC01MiwxNSArNTIsMTUgQEAgUmVjb3Jk
ZXI6On5SZWNvcmRlcigpCiAgICAgTE9HKERpc3BsYXlMaXN0cywgIlJlY29yZGVkIGRpc3BsYXkg
bGlzdDpcbiVzIiwgbV9kaXNwbGF5TGlzdC5kZXNjcmlwdGlvbigpLmRhdGEoKSk7CiB9CiAKLXZv
aWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQ
b2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQordm9pZCBS
ZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQs
IGNvbnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQp
CiB7Ci0gICAgYXBwZW5kSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VEYXRhOjpj
cmVhdGUoaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9y
bWF0KSk7CisgICAgYXBwZW5kSXRlbShQdXRJbWFnZURhdGE6OmNyZWF0ZShpbnB1dEZvcm1hdCwg
aW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpKTsKIH0KIAogdm9pZCBS
ZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYgaXRlbSkKIHsKLSAgICBpZiAobV9v
YnNlcnZlcikKLSAgICAgICAgbV9vYnNlcnZlci0+d2lsbEFwcGVuZEl0ZW0oaXRlbSk7CisgICAg
aWYgKG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdhdGUtPndpbGxBcHBlbmRJdGVtKGl0ZW0p
OwogCiAgICAgaWYgKGl0ZW0uaXNEcmF3aW5nSXRlbSgpCiAjaWYgVVNFKENHKQpAQCAtMTMyLDEy
ICsxMzIsMjkgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXQKICAgICByZXR1cm4gSW1hZ2VEcmF3
UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNF
KERJUkVDVDJEKQotdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKQogewor
ICAgIGlmIChtX2RlbGVnYXRlICYmIGNhY2hlZEltYWdlKSB7CisgICAgICAgIGlmIChhdXRvIGl0
ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGltYWdlLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCAqY2FjaGVkSW1hZ2UpKSB7CisgICAgICAg
ICAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxEcmF3
aW5nSXRlbT4oaXRlbS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CiAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3TmF0aXZl
SW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9u
cykpOwogfQotI2VuZGlmCisKK2Jvb2wgUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBp
ZiAoIW1fZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChhdXRvIGl0
ZW0gPSBtX2RlbGVnYXRlLT5jcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKGltYWdlLCBkZXN0aW5h
dGlvbiwgc291cmNlLCBvcHRpb25zKSkgeworICAgICAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0
ZW50KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxEcmF3aW5nSXRlbT4oaXRlbS5yZWxlYXNlTm9uTnVs
bCgpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsK
K30KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggOWVlMWQzOTM4
ZjIzMmYzZjE4ZDk3OGFmNzE4NzAxZDhiZTQ2MzA3Mi4uZTE0MGJlMTFkN2Q2YTc2NjY3OTYxNTY5
ZDE0NWM0ZTMzODVjM2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
CkBAIC0yOCwxMiArMjgsMTQgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJJbWFnZS5oIiAvLyBGb3IgSW1hZ2U6
OlRpbGVSdWxlLgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4
X3Q7CitjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBHbHlwaEJ1ZmZlcjsKQEAgLTUzLDggKzU1LDggQEAgY2xhc3MgUmVjb3JkZXIg
OiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW1wbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVjb3JkZXIpOwogcHVibGljOgotICAgIGNs
YXNzIE9ic2VydmVyOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVyKEdyYXBoaWNzQ29udGV4
dCYsIERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9h
dFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBPYnNlcnZlciogPSBu
dWxscHRyKTsKKyAgICBjbGFzcyBEZWxlZ2F0ZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRl
cihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgRGVsZWdhdGUqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVj
b3JkZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0SW1hZ2VEYXRhKEFscGhhUHJl
bXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IEltYWdlRGF0YSYsIGNvbnN0IEludFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gZGVzdEZvcm1hdCk7CkBAIC02Myw5ICs2NSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoUmVmPERyYXdpbmdJdGVtPiYmKTsKIAotICAgIGNs
YXNzIE9ic2VydmVyIHsKKyAgICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVibGljOgotICAgICAg
ICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQorICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsg
fQorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVt
KEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgICAgIHZpcnR1
YWwgUmVmUHRyPEl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgTmF0aXZlSW1h
Z2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYsIENhY2hlZEltYWdlJikgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRl
bSYpIHsgfTsKICAgICB9OwogCkBAIC0xMDQsOSArMTA4LDkgQEAgcHJpdmF0ZToKICAgICBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6
VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJ
UkVDVDJEKQotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwg
Y29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwotI2VuZGlmCisKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
LCBDYWNoZWRJbWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
cmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxv
YXQgYm9yZGVyVGhpY2tuZXNzKSBvdmVycmlkZTsKQEAgLTE4OCw3ICsxOTIsNyBAQCBwcml2YXRl
OgogICAgIENvbnRleHRTdGF0ZSYgY3VycmVudFN0YXRlKCk7CiAKICAgICBEaXNwbGF5TGlzdCYg
bV9kaXNwbGF5TGlzdDsKLSAgICBPYnNlcnZlciogbV9vYnNlcnZlcjsKKyAgICBEZWxlZ2F0ZSog
bV9kZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxDb250ZXh0U3RhdGUsIDMyPiBtX3N0YXRlU3RhY2s7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IGYzMWQzNzViMDJkYTA5NzkyODlhY2MyMDBkZDg2MmZhZTEzNDEwNGIuLjRiNWUzZTQzYjAzOTY0
YTUxYzI3M2U1YmU3YWVkYjBkZjFhYTkxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkdTdHJl
YW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5oIgorI2luY2x1
ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAppbmRleCAxOGI0ZjhkZTk3MTcwY2U2
NDRlYjY0YmUzZWFiODU3ZjNhNzQzMmY0Li42Mjk4Y2YzNjA3M2M3YWU0NGY0M2M2YjU2NDQyMmIz
N2I4NmNmMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogCiAjaW5jbHVkZSAiSW1hZ2VC
dWZmZXJQaXBlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJOaWNvc2lh
Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGwuaCIKICNpbmNsdWRlICJOaWNvc2lhUGxhdGZv
cm1MYXllci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2Nh
aXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXIuY3BwCmluZGV4IDMwNGZhY2JhYjE1MjE3OTFkYWE4NmRiMTUzMTc1M2UzODY3MTA4NGQuLjdj
MTRmM2U3ZWUzMzljYjNhNTE0ZjkwM2M0ODc0ZDE3MTg5ZDUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3Bl
cmF0aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCkBAIC01NDks
NyArNTQ5LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdU
aWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdl
UGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBp
bWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMsIENhY2hlZEltYWdlKikKIHsKICAgICBzdHJ1Y3QgRHJhd05hdGl2ZUltYWdlIGZp
bmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4sIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucywgZmxvYXQs
IENhaXJvOjpTaGFkb3dTdGF0ZT4gewogICAgICAgICB2aXJ0dWFsIH5EcmF3TmF0aXZlSW1hZ2Uo
KSA9IGRlZmF1bHQ7CkBAIC01NzAsNiArNTcwLDEyIEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QK
ICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdP
cHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpLCBzdGF0ZS5h
bHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOwogfQogCitib29sIENhaXJvT3BlcmF0
aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3sKKyAg
ICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCiB7CiAgICAgc3RydWN0IERyYXdQYXR0ZXJuIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRp
b24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIEludFNpemUsIEZsb2F0
UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVUcmFuc2Zvcm0sIEZsb2F0UG9pbnQsIEltYWdlUGFpbnRp
bmdPcHRpb25zPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJh
dGlvblJlY29yZGVyLmgKaW5kZXggNTcyZmYyMTY2ZjZlOTczYTc2M2I2N2NiNmJiOTZmNDNmMjZh
OGQ1MC4uMWQ0OTAxM2M4OWNmMTAxNGVjOWIyYjkyMDdkZWNlZWI5MTNjMzg1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lh
Q2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaApAQCAt
NjcsNyArNjcsOSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3
SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShX
ZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJ
bWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwg
V2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKworICAgIGJvb2wgZHJhd0ltYWdlQnVm
ZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OkNhY2hlZElt
YWdlKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJbWFnZSYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcApp
bmRleCAzNzQwNzE3MTViY2I3OTFkNTg5ZDUwZDk5YjI5YzY2YjAxMGI3MDgxLi41N2JhODU4ZmY5
OWMyZGIyOWY1ZDkxNDkyZTZhYWM4ZWQ5NzRlYzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJl
Y3QyRC5jcHAKQEAgLTIwNywxNiArMjA3LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZXN0
b3JlUGxhdGZvcm1TdGF0ZSgpCiAgICAgRGlyZWN0MkQ6OnJlc3RvcmUoKnBsYXRmb3JtQ29udGV4
dCgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBD
T01QdHI8SUQyRDFCaXRtYXA+JiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxh
dGZvcm1EcmF3TmF0aXZlSW1hZ2UoY29uc3QgQ09NUHRyPElEMkQxQml0bWFwPiYgaW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGlt
YWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRvJiBzdGF0
ZSA9IHRoaXMtPnN0YXRlKCk7CiAgICAgRGlyZWN0MkQ6OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZv
cm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBv
cHRpb25zLCBzdGF0ZS5hbHBoYSwgRGlyZWN0MkQ6OlNoYWRvd1N0YXRlKHN0YXRlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzZTI0N2E3YWQ0Y2QyOTUzOGU0ZWFmNDBiZDgwMzY5Njg2MDA4
Yjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHkuaCIKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgIlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OlJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkm
IHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllcikKLSAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVy
KGltYWdlQnVmZmVySWRlbnRpZmllcikKLXsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHk6OmNyZWF0ZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQot
ewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUp
LCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKLXsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIG1faW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNGQwNWVhZWY1NDk0MTZmZGI2
NDI1OTUyZTBiNGNmM2FhMjA1ZWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
IgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
Q29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1lbnVtIGNsYXNz
IEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwotY2xhc3MgSW1hZ2VEYXRhOwotfQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OwotCi1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkgewotcHVibGlj
OgotICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSgpID0g
ZGVmYXVsdDsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLiBTZWUgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluLgotICAgIHZpcnR1YWwgdm9pZCBmbHVzaERy
YXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllcikgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1h
Z2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCA9IDA7Ci0KLXByb3RlY3RlZDoKLSAg
ICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5JiwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLQotICAgIC8vIE1lc3NhZ2VzIHRv
IGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluLgotICAgIHZv
aWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwotICAgIHZv
aWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyKTsKLQotICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgYmFja2VuZCgpIHsgcmV0dXJuIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLSAgICBJbWFnZUJ1
ZmZlcklkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCmluZGV4IDc3MjFjY2U4NDU2MjY5YWVmOTAyMGI4YmQ4OTY1ZGQzNWI3MjJkZGMuLjFk
MWI1ZWU4ZmNmMDdlZmMzMjlkNzk4MWYzYjBhMWFjMmVmYmU3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtMjgsMjkgKzI4LDI5IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci1j
bGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1h
Z2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0
ZSB7CitjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNvbmNy
ZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIg
PSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKICAgICB1c2luZyBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOworICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVy
OjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6
OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZl
cklkZW50aWZpZXIpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBudWxscHRyLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHksIGltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KHNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAotICAgIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQs
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQs
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoYmFja2VuZCkp
Ci0gICAgICAgICwgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSwgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICAgICAsIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkK
ICAgICB7Ci0gICAgICAgIGNyZWF0ZUJhY2tlbmQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBt
X2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1f
YmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSgpKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVtb3Rl
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNr
ZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tl
bmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUoKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB+UmVtb3RlSW1h
Z2VCdWZmZXJQcm94eSgpCkBAIC02Miw5ICs2Miw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmZsdXNoRHJhd2luZ0NvbnRl
eHQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0YTsKLQog
ICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGRp
c3BsYXlMaXN0Lml0ZW1Db3VudCgpKSB7CkBAIC03MywxOCArNzAsNiBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikgb3ZlcnJpZGUKLSAgICB7Ci0g
ICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOwotICAgICAgICBtX2JhY2tl
bmQtPmZsdXNoQ29udGV4dCgpOwotICAgICAgICBjb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVu
dGlmaWVyKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFn
ZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRlCi0gICAgewotICAgICAg
ICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmdldEltYWdlRGF0YShvdXRwdXRGb3Jt
YXQsIHNyY1JlY3QpOwotICAgIH0KLQogICAgIGJvb2wgYXBwbHkoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW0mIGl0ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGlmIChpdGVtLnR5cGUoKSA9PSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YSkgewpAQCAtOTgsMTIgKzgzLDEyIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmFwcGx5
UmVzb3VyY2VJdGVtKGl0ZW0sIGNvbnRleHQpOwogICAgIH0KIAogICAgIHZvaWQgYXBwbHkoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlBhaW50RnJhbWVGb3JNZWRpYSYgaXRlbSwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgYXV0byBwcm9jZXNzID0gYmFj
a2VuZCgpLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKKyAgICAgICAgYXV0byBwcm9jZXNz
ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cygpOwogICAgICAgICBpZiAoIXByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEx
Nyw2ICsxMDIsOCBAQCBwcml2YXRlOgogCiAgICAgICAgIGNvbnRleHQucGFpbnRGcmFtZUZvck1l
ZGlhKCpwbGF5ZXIsIGl0ZW0uZGVzdGluYXRpb24oKSk7CiAgICAgfQorCisgICAgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApp
bmRleCA3NTNhNWM4YmE5N2ZlNzIwODMxMDU4ZTg0YzVjZDgzYjRiMTc1NTc5Li5kNGRiYmFkMGQx
OTI5MzU2NTI2NWRlMDNjMzExMWMzYWUzMmUzNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNz
YWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDYgKzU0LDExIEBAIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6flJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpCiAgICAg
ICAgIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50
NjQoKSk7CiB9CiAKK0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKK30KKwogSVBDOjpDb25uZWN0
aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKSkKQEAgLTY2LDY0ICs3MSw0NiBAQCB1aW50
NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50b1VJ
bnQ2NCgpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK2Jvb2wgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseVJlc291cmNlSXRlbShEaXNwbGF5TGlzdDo6SXRl
bSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogewotICAgIGF1dG8qIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Ci0g
ICAgaWYgKCFncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAobV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmNvbnRhaW5zKGltYWdlQnVmZmVy
SWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpS
ZW1vdGVBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0g
ICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGltYWdlQnVmZmVy
SWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6UmVtb3RlQWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpS
ZW1vdGVVbmFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gVW5h
Y2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkg
ewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5hcHBseVJlc291cmNlSXRlbShpdGVtLCBj
b250ZXh0KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgLy8gQ3JlYXRlSW1hZ2VCdWZmZXIgbWVz
c2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJlZm9yZSB0aGlzIG9uZS4KLSAgICBib29s
IGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLnJlbW92ZShpbWFnZUJ1ZmZl
cklkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IFdURk1vdmUoaGFuZGxlKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3Jt
YXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJl
ZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9p
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7
Ci0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gaW1hZ2VCdWZmZXItPmdldEltYWdlRGF0YShvdXRw
dXRGb3JtYXQsIHNyY1JlY3QpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkltYWdl
RGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0YSkpKTsKLSAgICB9CisgICAgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY3JlYXRlSW1hZ2VCdWZmZXIobG9naWNhbFNpemUsIHJlbmRlcmlu
Z01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJE
cmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdl
QnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNw
bGF5TGlzdCk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1c2hEcmF3aW5nQ29u
dGV4dChkaXNwbGF5TGlzdCwgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3QmIGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRl
bnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29t
bWl0KGRpc3BsYXlMaXN0LCBmbHVzaElkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5LmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIHNob3Vs
ZERyYXdCYWRnaW5nQm9yZGVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hD
b250ZXh0KGZsdXNoSWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mq
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
IGNvbnN0Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRS
ZWN0IHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5nZXQoKTsKKyAgICBhdXRvIGltYWdlRGF0YSA9IG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVu
Y2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZU5hdGl2ZUltYWdlKGltYWdlLCByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkucmVs
ZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGEwOTUy
YmFmYjNjMTUzMmQ3ZGM5OTAwNmViNDBmMzFiZjkxZDI1M2IuLjAzYjlkYjM1OWE0NDNjMjA1Y2Yz
YzU3YTg5ODc5NmIzMDM1NzdlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAg
LTI4LDI0ICsyOCwyNCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVy
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRl
ICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKKyNpbmNsdWRlICJSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGlzcGxheUxpc3RJdGVtcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1l
c3BhY2UgRGlzcGxheUxpc3QgewogY2xhc3MgRGlzcGxheUxpc3Q7CiB9CitjbGFzcyBGbG9hdFNp
emU7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBSZW5kZXJp
bmdNb2RlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OSw4ICs1OSwx
MSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSgpOwogCi0gICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
OyB9CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzcygpIGNvbnN0OworICAgIGJvb2wgYXBwbHlSZXNvdXJjZUl0ZW0oV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKKworICAgIC8vIE1lc3Nh
Z2VzIHRvIGJlIHNlbnQuCisgICAgdm9pZCByZW1vdGVDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwpA
QCAtNzQsMTQgKzc3LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgot
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVs
ZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyKTsKLSAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2Um
Jik+JiYpOwotCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hN
YXA8SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5Pj47Ci0gICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1h
cCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaEltYWdlQnVm
ZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBib29sIHNob3Vs
ZERyYXdCYWRnaW5nQm9yZGVyLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBz
cmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYpOworICAgIHZvaWQgY2FjaGVO
YXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB7ICp0aGlzIH07CiAgICAgV2Vha1B0
cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3OThjOGI0ZWRiNTdmNWFkMDgyYmE4MWMxMDA4YjBkY2RlZmRmMThhLi4wMTU2Njhm
ODIzNzcwMmI4ZDcwNWNiMGQ3Y2E1NDk2NmFiZjcxOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDExICsyMywxMiBAQAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6
RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNl
LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0g
ICAgdm9pZCBSZWxlYXNlSW1hZ2VCdWZmZXIoV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2Vi
S2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZv
aWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90IFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRS
ZWN0IHNyY1JlY3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllcikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25v
dXMKKyAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2Fs
U2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZs
dXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QgZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
dm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyLCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKKyAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpIC0+
IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5bmNocm9ub3VzCisgICAgdm9p
ZCBDYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIGltYWdlLCBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAg
IHZvaWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMDllZWFm
OGRkNmZlOWVjZGU2YmFjZDlmNDlmMDUyOGYwOWE4NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cApAQCAtMCwwICsxLDE1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYg
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQoreworfQorCit2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwg
Y29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKSBjb25zdAoreworICAgIGlmICghbV9zaG91bGRE
cmF3QmFkZ2luZ0JvcmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIFdlYkNvcmU6OmRyYXdCYWRn
aW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJlY3QsIGNvbG9yLCBiYWRnZXMpOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1
ZmZlckhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1hZ2U7CisKKyAgICBpZiAocmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkKKyAgICAgICAg
aW1hZ2UgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2Fs
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGlmICghaW1hZ2UgfHwg
cmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKQorICAg
ICAgICBpbWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBpZiAoaW1h
Z2UpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuYWRkKHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK0ltYWdlQnVmZmVyKiBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBT
ZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9zaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgc2hvdWxk
RHJhd0JhZGdpbmdCb3JkZXIpOworICAgIGlmIChhdXRvIGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1
ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAgaW1h
Z2UtPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICByZXR1cm4gaW1h
Z2U7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitJbWFnZUJ1ZmZlciogUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IERp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlM
aXN0LCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkg
eworICAgICAgICBpbWFnZS0+Zmx1c2hDb250ZXh0KCk7CisgICAgICAgIHJldHVybiBpbWFnZTsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxJbWFnZURhdGE+IFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24g
b3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSBjb25zdAoreworICAgIGlmIChhdXRvIGlt
YWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikpCisgICAgICAgIHJldHVybiBpbWFnZS0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwg
c3JjUmVjdCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLmFkZChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIsIGltYWdlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwg
YWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCitib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6ZHJhd05hdGl2ZUltYWdlSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIGF1dG8mIGRyYXdJdGVtID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZSY+KGl0ZW0pOworICAg
IGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gZHJhd0l0ZW0ucmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKCk7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaW1hZ2UgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFz
aE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWltYWdlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwg
ZHJhd0l0ZW0uaW1hZ2VTaXplKCksIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBkcmF3SXRl
bS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9ucygpKTsKKyAgICBkcmF3QmFkZ2luZ0JvcmRlcihj
b250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgV2ViQ29yZTo6Q29sb3I6OnJlZCwg
eyB7IFJlY3RCb3R0b21SaWdodCwgQ29sb3I6OndoaXRlLCAiSU1BR0UiX3MgfSB9KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdJbWFn
ZUJ1ZmZlckl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBhdXRvJiBkcmF3SXRlbSA9IHN0YXRpY19jYXN0PGNv
bnN0IERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXImPihpdGVtKTsKKyAgICBhdXRvIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciA9IGRyYXdJdGVtLnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigp
OworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBhdXRvIGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaW1hZ2UtPmRyYXcoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25S
ZWN0KCksIGRyYXdJdGVtLnNvdXJjZSgpLCBkcmF3SXRlbS5vcHRpb25zKCkpOworICAgIGRyYXdC
YWRnaW5nQm9yZGVyKGNvbnRleHQsIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBXZWJDb3Jl
OjpDb2xvcjo6Ymx1ZSwgeyB7IFJlY3RCb3R0b21SaWdodCwgQ29sb3I6OndoaXRlLCAiQ0FOVkFT
Il9zIH0gfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5OjphcHBseVJlc291cmNlSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIGlmIChpdGVtLnR5cGUoKSA9
PSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJu
IGRyYXdJbWFnZUJ1ZmZlckl0ZW0oaXRlbSwgY29udGV4dCk7CisgICAgaWYgKGl0ZW0udHlwZSgp
ID09IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlKQorICAgICAgICByZXR1
cm4gZHJhd05hdGl2ZUltYWdlSXRlbShpdGVtLCBjb250ZXh0KTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sK
KyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9yZW1vdGVOYXRpdmVJbWFn
ZUhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVy
bjsKKyAgICAvLyBDYWNoaW5nIHRoZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGhhdmUgaGFwcGVu
ZWQgYmVmb3JlIHJlbGVhc2luZyBpdC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY3NTg5ZDczZjkwZTU0YTZkMGJmOTFk
MjhlYmFiYWMyMzUyOWJlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApAQCAtMCwwICsxLDc2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxheUxp
c3Q7CitjbGFzcyBJdGVtOworfQorc3RydWN0IEJhZGdlOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OworCitjbGFzcyBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkgeworcHVibGljOgorICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmKTsKKworICAgIHZvaWQgY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OkltYWdlQnVm
ZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEo
V2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcikg
Y29uc3Q7CisKKyAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZl
SW1hZ2VQdHImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgYm9v
bCBhcHBseVJlc291cmNlSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgdm9pZCByZWxlYXNlUmVtb3Rl
UmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworcHJpdmF0ZToK
KyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVm
ZmVyPj47CisgICAgdXNpbmcgUmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyPjsK
KworICAgIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpCYWRnZT4mKSBjb25zdDsKKyAgICBib29sIGRyYXdJ
bWFnZUJ1ZmZlckl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAgICBib29sIGRyYXdOYXRpdmVJbWFnZUl0ZW0o
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmKSBjb25zdDsKKworICAgIFJlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtX3JlbW90ZUltYWdl
QnVmZmVySGFzaE1hcDsKKyAgICBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRp
dmVJbWFnZUhhc2hNYXA7CisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKKyAgICBib29sIG1fc2hvdWxkRHJhd0JhZGdpbmdCb3Jk
ZXIgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCA0MDE3YTJhOGYyMmNlY2VjYzIx
NTFhMzBhMzI3OGZmOTA2ZWFmMzJhLi42NzQ4ZDFmNWQ4MDBkOTU3NGYyMzgwNzViMTg5MGI0ZTRh
Y2VlOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBI
QVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggOTc3ZjkzZmY1YzNjMmI4MTc4
NDZjOWE5YTc1NTE3ODljOGVmZTA1Yy4uNjFiODkwZGM3ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdk
ZGQzYjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAi
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3MuaCIKICNp
bmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZmFjZDJmN2FmYjVhMzkyZWUyMDk2N2E3NmZk
NDFlMTRkZmIxNTBiOS4uMTU4YzRlZjk3YzJlOTliODc2Njc5MzZlYjQwYTVlMTg3OGQxOGIzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMTcsMTEgKzIx
NywxMyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAg
ICAgICAnV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpOYXRpdmVJbWFn
ZVB0cicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5JywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJ
RCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVuZGVyaW5nTW9k
ZScsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcicsCkBAIC0yNDAsNyArMjQyLDYg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXInLAotICAgICAgICAnV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpM
ZWdhY3lDdXN0b21Qcm90b2NvbElEJywKICAgICAgICAgJ1dlYktpdDo6TGliV2ViUlRDUmVzb2x2
ZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IGUwYmJiYmM1YmEyMzE4YmZhOGU2MzE5NmQ1NGVlYmI4OTAzNjQ0NDEu
LmEwNzc1MzA5NTdiYThkNDdkNTQyOWJhZGQ2Njc1NzU1NGQwNjIxMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTEwMCw3ICsxMTAw
LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEltYWdlSGFuZGxlJiBpbWFnZUhhbmQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3Rh
dGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgTmF0aXZlSW1hZ2VQ
dHIgaW1hZ2UpCitzdGF0aWMgdm9pZCBlbmNvZGVOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiB7CiAgICAgYXV0byBpbWFnZVNpemUgPSBu
YXRpdmVJbWFnZVNpemUoaW1hZ2UpOwogICAgIGF1dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFw
OjpjcmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCB7IH0pOwpAQCAtMTE0Myw3ICsxMTQzLDcgQEAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZU5hdGl2ZUltYWdlKERlY29kZXIm
IGRlY29kZXIsIE5hdGl2ZUltYWdlUHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZv
aWQgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBOYXRpdmVJbWFn
ZVB0ciBpbWFnZSkKK3N0YXRpYyB2b2lkIGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewogICAgIGJvb2wgaGFz
SW1hZ2UgPSAhIWltYWdlOwogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2U7CkBAIC0xMTY2LDE0ICsx
MTY2LDE0IEBAIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVPcHRpb25hbE5h
dGl2ZUltYWdlKERlY29kZXImIGRlY29kZXIsIE5hdGl2CiAgICAgcmV0dXJuIGRlY29kZU5hdGl2
ZUltYWdlKGRlY29kZXIsIGltYWdlKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPE5hdGl2ZUlt
YWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE5hdGl2ZUltYWdlSGFu
ZGxlJiBpbWFnZUhhbmRsZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZVB0cj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiB7Ci0g
ICAgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5n
ZXQoKSk7CisgICAgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZSk7CiB9
CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBOYXRpdmVJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCitib29sIEFyZ3VtZW50
Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1h
Z2VQdHImIGltYWdlKQogewotICAgIHJldHVybiBkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKGRl
Y29kZXIsIGltYWdlSGFuZGxlLmltYWdlKTsKKyAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRp
dmVJbWFnZShkZWNvZGVyLCBpbWFnZSk7CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxSZWY8Rm9u
dD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+JiBm
b250KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCAwNWQwMzU1NGI5ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0NDM0Y2U2ZTIzLi45ZjNiMTA2NjkzMzNi
YTMwMTUyOTc4M2M5ZTFlOTFlYWJhNGNhYjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXRp
dmVJbWFnZVB0ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KQEAgLTEwNSw3ICsxMDYsNiBAQCBjbGFzcyBLZXlm
cmFtZVZhbHVlTGlzdDsKIGNsYXNzIExheW91dFNpemU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNs
YXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwotY2xhc3MgTmF0aXZlSW1hZ2VIYW5kbGU7CiBjbGFz
cyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKIGNsYXNzIFBheW1l
bnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb247CkBAIC00MTYsOSArNDE2LDkgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdl
SGFuZGxlJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
Ok5hdGl2ZUltYWdlSGFuZGxlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxl
Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
UHRyPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpO
YXRpdmVJbWFnZVB0ciYpOworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IDczMGRhNjQ4
ZjJiMmZlOWU3ODRmZDA0MDUyZTE5MGYwZDBiZjIxYWQuLjk1OWRhODNkNWY2OTg4YjIxMTU4OGRh
N2RkYjRmZjE4M2RjZTdkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1No
YXJlYWJsZUJpdG1hcENHLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFi
bGVCaXRtYXBDRy5jcHAKQEAgLTEwNiwxMiArMTA2LDI3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0NvbnRleHQ+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKIAog
dm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbnRSZWN0JiBzb3VyY2Up
CiB7Ci0gICAgZHJhd05hdGl2ZUltYWdlKG1ha2VDR0ltYWdlQ29weSgpLCBjb250ZXh0LCAxLCBk
ZXN0aW5hdGlvbiwgc291cmNlKTsKKyAgICBwYWludChjb250ZXh0LCAxLCBkZXN0aW5hdGlvbiwg
c291cmNlKTsKIH0KIAogdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBk
ZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNlKQogewotICAgIGRyYXdOYXRpdmVJbWFn
ZShtYWtlQ0dJbWFnZUNvcHkoKSwgY29udGV4dCwgc2NhbGVGYWN0b3IsIGRlc3RpbmF0aW9uLCBz
b3VyY2UpOworICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpOworICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKKworICAgIENHQ29u
dGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RpbmF0aW9uLngoKSwgZGVz
dGluYXRpb24ueSgpLCBzb3VyY2Uud2lkdGgoKSwgc291cmNlLmhlaWdodCgpKSk7CisgICAgQ0dD
b250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7CisKKyAgICBhdXRvIGltYWdlID0gbWFr
ZUNHSW1hZ2VDb3B5KCk7CisgICAgQ0dGbG9hdCBpbWFnZUhlaWdodCA9IENHSW1hZ2VHZXRIZWln
aHQoaW1hZ2UuZ2V0KCkpIC8gc2NhbGVGYWN0b3I7CisgICAgQ0dGbG9hdCBpbWFnZVdpZHRoID0g
Q0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSAvIHNjYWxlRmFjdG9yOworCisgICAgQ0dGbG9h
dCBkZXN0WCA9IGRlc3RpbmF0aW9uLngoKSAtIHNvdXJjZS54KCk7CisgICAgQ0dGbG9hdCBkZXN0
WSA9IC1pbWFnZUhlaWdodCAtIGRlc3RpbmF0aW9uLnkoKSArIHNvdXJjZS55KCk7CisKKyAgICBD
R0NvbnRleHREcmF3SW1hZ2UoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RYLCBkZXN0WSwgaW1h
Z2VXaWR0aCwgaW1hZ2VIZWlnaHQpLCBpbWFnZS5nZXQoKSk7CisKKyAgICBDR0NvbnRleHRSZXN0
b3JlR1N0YXRlKGNnQ29udGV4dCk7CiB9CiAKIFJldGFpblB0cjxDR0ltYWdlUmVmPiBTaGFyZWFi
bGVCaXRtYXA6Om1ha2VDR0ltYWdlQ29weSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkYWY1ZmI3MzEzYmRk
OTgwNjhkZWRkMzljYmFjNGRmYmU5Mzc3Y2E4Li44ZTNiMmFmZmNhMDAzNGIzMjZkYTliMjE5OGM4
NTc5NzRlMDQ5MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDggKzI0LDggQEAKIEdQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
IEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKLUdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCitHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcApAQCAtNTUyLDggKzU1Miw4IEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogCiBXZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVy
U2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKLVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOTg0MzRjYmFjMGMyZjYxYTJkNmUyODA3MTZlY2Q3Mjg4Mjg4OTI4Mi4uMmE4YzQyYTVhYmU0
MTViZjlkMTFjN2IwYjNlZjcxODgwMmIyMGMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODg5LDcgKzM4ODksNiBAQAogCQk1NTA2
NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEE0MjQw
NzFDMjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NTA2NDBBNTI0MDcxQ0MwMDBB
QUUwNDUgLyogSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVm
ZmVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0MjI0
MDhBMDJFMDBERTREMkYgLyogUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE3OCwxMCAr
NDE3Nyw3IEBACiAJCTcxQTY3NkE1MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tUb3VjaEFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MUZCODEwQTIyNjA2MjdBMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlz
cGF0Y2hQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZVNp
bXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAwQzI0MDk3QTAyMDA3RDM3NkIgLyogUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3
NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyMjc4MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzYyNDA3ODhGMDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQxOTEsNiArNDE4NywxMCBAQAogCQk3MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEg
LyogUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlF
IC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4
NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTMzMjUz
MTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTcyOUQwNTM1MjUzMTczQ0MwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3MjlEMDUzNjI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNp
dGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRl
RGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM1MTg3Q0NG
OUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNp
dGVEYXRhU3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA3
NiwxNyArODA3NiwxNyBAQAogCQkJCTcyN0E3RjMzMjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAq
LywKIAkJCQk3MjdBN0YzOTI0MDc4OEYxMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlLmggKi8sCiAJCQkJNTVBRDA5NDQyNDA4QUJCMzAwREU0RDJGIC8qIEltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyLmggKi8sCi0JCQkJNTUwNjQwQTUyNDA3MUNDMDAwQUFFMDQ1IC8qIEltYWdl
QnVmZmVySWRlbnRpZmllci5oICovLAogCQkJCTcyN0E3RjM3MjQwNzg4RjAwMDREMjkzMSAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM2MjQw
Nzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLywK
IAkJCQk3MjdBN0YzODI0MDc4OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJhY2tlbmQuaCAqLywKIAkJCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZv
cm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTcyN0E3RjQ5MjQwOEFFRTYwMDREMjkzMSAv
KiBSZW1vdGVJbWFnZUJ1ZmZlci5oICovLAotCQkJCTcyMjc4MDBDMjQwOTdBMDIwMDdEMzc2QiAv
KiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKIAkJCQk3MjI3ODAwRDI0
MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oICovLAog
CQkJCTU1MDY0MDlEMjQwNzE2MDkwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cCAqLywKIAkJCQk1NTA2NDA5RTI0MDcxNjA5MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oICovLAogCQkJCTU1MDY0MEEwMjQwNzE5RTEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLm1lc3NhZ2VzLmluICovLAorCQkJCTcyOUQwNTM1MjUzMTczQ0MwMDQyMjA5OCAv
KiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLywKKwkJCQk3MjlEMDUzNjI1MzE3M0NDMDA0MjIw
OTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovLAogCQkJCTU1MDY0MDlGMjQwNzE5NkEwMEFB
RTA0NSAvKiBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBncmFwaGljczsKQEAgLTgwOTYsMTIgKzgwOTYsMTIgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJNTVBRDA5NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3Jt
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovLAotCQkJCTcyMjc4MDExMjQwOTkwNkUwMDdEMzc2
QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwICovLAotCQkJCTcy
Mjc4MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuaCAqLywKIAkJCQk1NUFEMDk0MjI0MDhBMDJFMDBERTREMkYgLyogUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oICovLAogCQkJCTU1MDY0MEEyMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwICovLAogCQkJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0
NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCAqLywKIAkJCQk1NTA2NDBBNDI0MDcx
QzIxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluICov
LAorCQkJCTcyOUQwNTMyMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuY3BwICovLAorCQkJCTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlhMWJjOWFlODdkYzhkNzI0MjhhMGI4MDljYWQwZDgwYTRjZDFjYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlcklkZW50aWZpZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIEltYWdlQnVmZmVySWRlbnRpZmllclR5
cGUgeyB9OwotdXNpbmcgSW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJ
bWFnZUJ1ZmZlcklkZW50aWZpZXJUeXBlPjsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggZTg0OTE2
NjQ1MTQ1OTYyODdlZjJjNzhmOTA3NmUxZDQzODIxOTFmMi4uMGM3MzgwZmQ1ZDdmMTcyYzk3MTZm
MmYzNzg5MTZlODYwODI3NzhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtMzEsMTYgKzMxLDE4
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5
TGlzdFJlY29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZm
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBl
PiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIgeworY2xhc3MgUmVtb3Rl
SW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJh
Y2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIsIHB1Ymxp
YyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlIHsKICAgICB1c2luZyBC
YXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1
ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6
Om1fYmFja2VuZDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3
aW5nQ29udGV4dDsKKyAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4
dDsKIAogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZm
ZXI+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpCkBAIC01MywxNCArNTUsMjAgQEAgcHVibGljOgogCiAgICAgflJlbW90ZUlt
YWdlQnVmZmVyKCkKICAgICB7CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7Cisg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVsZWFzZUltYWdlQnVmZmVyKCp0aGlz
KTsKICAgICB9CiAKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIFJlbW90ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgc2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAg
OiBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcihzaXplKQotICAgICAgICAsIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICA6IEJhc2VEaXNw
bGF5TGlzdEltYWdlQnVmZmVyKHNpemUsIHRoaXMpCisgICAgICAgICwgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKQogICAgIHsKKyAg
ICAgICAgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQtPnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSk7CiAgICAgfQogCiAgICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkgb3ZlcnJpZGUK
QEAgLTY5LDIyICs3Nyw1MSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fYmFja2VuZCA9IEJhY2tl
bmRUeXBlOjpjcmVhdGUobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNC
YWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFja2VuZC5nZXQoKTsg
fQotCiAgICAgQmFja2VuZFR5cGUqIGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7Ci0gICAgICAgIGlmICghbV9iYWNrZW5kKQotICAgICAgICAgICAgY29uc3RfY2Fz
dDxSZW1vdGVJbWFnZUJ1ZmZlciY+KCp0aGlzKS5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyOjp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7CisgICAgICAgIGlmICghbV9i
YWNrZW5kICYmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwogICAg
ICAgICByZXR1cm4gbV9iYWNrZW5kLmdldCgpOwogICAgIH0KIAorICAgIHZvaWQgZmx1c2hDb250
ZXh0KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAg
ICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKKyAgICB9CisKKyAgICB2b2lkIGZsdXNo
RHJhd2luZ0NvbnRleHQoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byYgZGlzcGxheUxp
c3QgPSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CisgICAgICAgIGlmICghZGlzcGxh
eUxpc3QuaXRlbUNvdW50KCkgfHwgIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3QmFkZ2lu
Z0JvcmRlcihjb250ZXh0KCksIHsgeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCkgfSwgV2Vi
Q29yZTo6Q29sb3I6OmRhcmtHcmVlbiwgeyB7IFdlYkNvcmU6OlJlY3RUb3BSaWdodCwgV2ViQ29y
ZTo6Q29sb3I6OndoaXRlLCAiR1BVIl9zIH0gfSk7CisgICAgICAgIG1fc2VudEZsdXNoSWRlbnRp
ZmllciA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4
dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZs
dXNoQ29udGV4dCgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VS
ZW1vdGVDbGllbnQobV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBkaXNwbGF5
TGlzdC5jbGVhcigpOworICAgIH0KKworICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgaWYgKCFkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSB8fCAhbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3Qs
IG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB9CisgICAgCiAgICAgUmVmUHRyPFdl
YkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25z
dCBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlz
dCA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXIqPih0aGlzKS0+bV9kcmF3aW5nQ29udGV4
dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4o
dGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRl
eHQoZGlzcGxheUxpc3QpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbnN0X2Nhc3Q8UmVtb3Rl
SW1hZ2VCdWZmZXIqPih0aGlzKS0+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Z2V0
SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7CisgICAgICAgIGlmIChkaXNwbGF5TGlz
dC5pdGVtQ291bnQoKSkgeworICAgICAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZl
cio+KHRoaXMpLT5mbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgICAg
IGRpc3BsYXlMaXN0LmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBnZXRJbWFnZURh
dGEgaXMgc3luY2hyb25vdXMsIHdoaWNoIG1lYW5zIHdlJ3ZlIGFscmVhZHkgcmVjZWl2ZWQgdGhl
IENvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0IG1lc3NhZ2UuCi0gICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUdl
dEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKICAgICB9CiAKICAgICB2b2lkIHB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11
bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFnZURhdGEmIGltYWdl
RGF0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGRlc3RQb2ludCA9IHsgfSwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBk
ZXN0Rm9ybWF0ID0gV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGll
ZCkgb3ZlcnJpZGUKQEAgLTk1LDI2ICsxMzIsMzIgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Ry
YXdpbmdDb250ZXh0LnJlY29yZGVyKCkucHV0SW1hZ2VEYXRhKGlucHV0Rm9ybWF0LCBpbWFnZURh
dGEsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiAgICAgfQogCi0gICAgdm9pZCBm
bHVzaENvbnRleHQoKSBvdmVycmlkZQorICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbT4gY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1h
Z2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7Ci0g
ICAgICAgIG1fYmFja2VuZC0+Zmx1c2hDb250ZXh0KCk7CisgICAgICAgIGlmICghbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJl
dHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0o
aW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBtX3JlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgb3ZlcnJpZGUK
KyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJ
bWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmIGNhY2hl
ZEltYWdlKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2Ry
YXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7Ci0gICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVt
Q291bnQoKSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZs
dXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgaWYg
KCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+Y3JlYXRlRHJhd05hdGl2
ZUltYWdlSXRlbShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywg
Y2FjaGVkSW1hZ2UsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9Ci0gICAgCisK
ICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
Jikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgRGlzcGxheUxpc3RC
YXRjaFNpemUgPSA1MTI7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29u
dGV4dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkg
Pj0gRGlzcGxheUxpc3RCYXRjaFNpemUpCi0gICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAg
aWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpIDwgRGlzcGxheUxpc3RCYXRjaFNpemUgfHwgIW1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZmx1
c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAgIGRpc3BsYXlMaXN0LmNsZWFy
KCk7CiAgICAgfQorCisgICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcxNTBjN2IwNzkzYWZlOWFjNWM4M2E5YWM3NDZiYTMx
OGU1MWI4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyLmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJJbWFn
ZURhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgiCi0j
aW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQobWFrZVdlYWtQdHIocmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCkpCi17Ci0gICAgLy8gQ3JlYXRlIHRoZSBSZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LgotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpDcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJp
bmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1faW1hZ2VCdWZmZXJJZGVudGlm
aWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpKTsKLX0KLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6flJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIoKQotewotICAgIC8vIFJlbGVhc2UgdGhlIFJlbW90ZUltYWdl
QnVmZmVyUHJveHkuCi0gICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6UmVsZWFzZUltYWdlQnVmZmVyKG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpKTsKLX0KLQotUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcjo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0
Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdAotewotICAgIElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlIGltYWdlRGF0YVJlZmVyZW5jZTsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Okdl
dEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVy
KSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6R2V0SW1hZ2VEYXRhOjpS
ZXBseShpbWFnZURhdGFSZWZlcmVuY2UpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7Ci0gICAgcmV0dXJuIGltYWdlRGF0YVJlZmVy
ZW5jZS5idWZmZXIoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
Ojp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCkKLXsKLSAgICBpZiAobV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kICYmICFpc0JhY2tlbmRDcmVhdGVkKCkpCi0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwotfQot
Ci12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OndhaXRGb3JDb21taXRJbWFn
ZUJ1ZmZlckZsdXNoQ29udGV4dCgpCi17Ci0gICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCAmJiBpc1BlbmRpbmdGbHVzaCgpKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQt
PndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwotfQotCi12b2lkIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkKLXsKLSAgICBpZiAoIW1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIG1faW1hZ2VC
dWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcigpKTsKLSAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwotfQotCi12b2lkIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0
Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCi17
Ci0gICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKTsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVzaElkZW50aWZpZXIsIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpKTsKLSAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwotICAgIHdhaXRGb3JDb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllciA9
IGZsdXNoSWRlbnRpZmllcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5oCmluZGV4IDYyMDQxOGQ3OGMyN2YyOGM1NzQ5MDJjMmUxYmE5YTIzNzE3NTE3Yjku
LjYxZGQ1OGNlNTJmZGNlZDRmMTg0YWYwZWE2Nzk3YjI2NjI3NWEyNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCkBAIC0yOSw1MCArMjksMzEgQEAKIAog
I2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SZW5kZXJpbmdNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgSW1hZ2VEYXRhOwogZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhf
dDsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1jbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCiBjbGFzcyBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCk7Ci0KLSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1h
Z2VCdWZmZXJJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXI7IH0KLQogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLiBTZWUgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbi4KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQmFja2VuZChj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpID0gMDsKIAotICAgIHZvaWQgY29tbWl0Rmx1
c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyKTsKLQotcHJvdGVjdGVkOgotICAg
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJik7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0ID0gMDsKICAgICBib29sIGlzUGVuZGluZ0ZsdXNo
KCkgY29uc3QgeyByZXR1cm4gbV9zZW50Rmx1c2hJZGVudGlmaWVyICE9IG1fcmVjZWl2ZWRGbHVz
aElkZW50aWZpZXI7IH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdl
RGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Q7Ci0KLSAgICB2b2lkIHdhaXRGb3JDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKLSAgICB2b2lkIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZl
ckZsdXNoQ29udGV4dCgpOworICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVy
Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIG1fcmVjZWl2
ZWRGbHVzaElkZW50aWZpZXIgPSBmbHVzaElkZW50aWZpZXI7CisgICAgfQogCi0gICAgLy8gTWVz
c2FnZXMgdG8gYmUgc2VudC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdl
cy5pbi4KLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0Jik7Ci0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1p
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKLQotcHJpdmF0ZToKLSAgICBX
ZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsK
LSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIgeyBJbWFn
ZUJ1ZmZlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFs
IH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OwogCiAgICAgSW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIgbV9zZW50Rmx1c2hJZGVudGlmaWVyOwogICAgIEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA5OTUzNDE3ODdlZGEyMGE1NTRlNGQ2N2JhNTNk
YzY5OGE1MzcwY2MwLi4wNGI1Mjk2ODZlYzQzYTMzZjVkMDQ2MDczYWJiNzg3MGMwODRiMWEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTM5LDEyICszOSwxMyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVh
dGUoKQorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQogewotICAgIHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4obmV3IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQoKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
PihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZChwYWdlKSk7CiB9CiAKLVJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKQorUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChXZWJQYWdlJiBwYWdlKQorICAgIDogbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlKCp0aGlzLCBwYWdlKQogewogICAgIC8vIFJlZ2lzdGVyIGl0c2VsZiBhcyBh
IE1lc3NhZ2VSZWNlaXZlciBpbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uCiAgICAgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZlck1hcCA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkubWVzc2FnZVJlY2VpdmVyTWFwKCk7
CkBAIC04Niw0MCArODcsODIgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9y
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKQogICAgIHJldHVybiBjb25uZWN0aW9uLT53
YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQ+KG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5j
TWVzc2FnZUFycml2ZXMpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRyYXdC
YWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBi
b3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdl
cykKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4
dCwgYm9yZGVyUmVjdCwgY29sb3IsIGJhZGdlcyk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3VsZEFjY2VsZXJhdGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewotICAgIGlmIChzaG91
bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6OlllcykgewotICAgICAgICBpZiAoYXV0
byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXpl
LCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCAqdGhpcykpIHsKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ck1hcC5hZGQoaW1hZ2VCdWZmZXItPmltYWdlQnVmZmVySWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZl
ci5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jcmVhdGVJbWFnZUJ1ZmZlcihz
aXplLCBzaG91bGRBY2NlbGVyYXRlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYgaW1hZ2UpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VJbWFnZUJ1
ZmZlcihpbWFnZSk7Cit9CisKK1JlZlB0cjxEaXNwbGF5TGlzdDo6SXRlbT4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShJbWFnZUJ1ZmZlciYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNl
Q2FjaGUuY3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShpbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IG9wdGlvbnMsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworfQorCitSZWZQdHI8RGlzcGxheUxp
c3Q6Okl0ZW0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0
ZW0oY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVkSW1hZ2UmIGNhY2hlZElt
YWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sK
KyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0
ZW0oaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGNhY2hlZElt
YWdlLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpyZWxlYXNlUmVtb3RlQ2xpZW50KFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNl
UmVtb3RlQ2xpZW50KHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworfQorCitSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQoreworICAgIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpDcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2Rl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXI7Cit9CisKK1JlZlB0cjxJbWFnZURhdGE+IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OnJlbW90ZUdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFn
ZURhdGFSZWZlcmVuY2U7CisgICAgc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6R2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCwgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
R2V0SW1hZ2VEYXRhOjpSZXBseShpbWFnZURhdGFSZWZlcmVuY2UpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLCAxX3MpOworICAgIHJldHVybiBpbWFnZURhdGFSZWZlcmVuY2UuYnVmZmVy
KCk7Cit9CiAKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0
ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMpKSB7Ci0gICAgICAgIG1faW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXItPmltYWdlQnVmZmVySWRl
bnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBpbWFnZUJ1ZmZl
cjsKLSAgICB9Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUZsdXNoRHJhd2lu
Z0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnNob3Vs
ZERyYXdCYWRnaW5nQm9yZGVyKCksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOworfQogCi0gICAgcmV0dXJuIG51bGxwdHI7CitJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCit7CisgICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgc2VudEZsdXNoSWRlbnRpZmll
ciA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdp
bmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlQ2FjaGUuc2hv
dWxkRHJhd0JhZGdpbmdCb3JkZXIoKSwgc2VudEZsdXNoSWRlbnRpZmllciwgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgcmV0dXJu
IHNlbnRGbHVzaElkZW50aWZpZXI7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVDYWNoZU5hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSkKK3sKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyID0gUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q2FjaGVOYXRp
dmVJbWFnZShpbWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKIH0K
IAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6cmVtb3RlUmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgLy8gQ3JlYXRlSW1hZ2VC
dWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJlZm9yZSB0aGlzIG9uZS4K
LSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLnJlbW92ZShp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50
U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChh
dXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChs
b2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RG
TW92ZShoYW5kbGUpKTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCi0gICAg
ICAgIGltYWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyKTsKKyAg
ICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1
c2hJZGVudGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggZjQ5NjE1OGU3ZDQw
ZWViMDVhYzM5NDM0YWYyNDYzM2JhYmM3ZjBlZi4uY2E2NzUyZWI3MDQyODBhNDgwZjVlZDM2NmRi
MWM1YjkzZmIyNTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTI5LDMxICsy
OSwzOCBAQAogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
IgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3Bh
Y2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJdGVtOworfQorY2xh
c3MgRmxvYXRTaXplOworc3RydWN0IEJhZGdlOworZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBXZWJQYWdlOworCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kCiAgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgLCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlUmVuZGVy
aW5nQmFja2VuZD4gewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoV2ViUGFnZSYpOwogCiAgICAgflJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcjsgfQotCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgogICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB1
aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAt
NjEsMjEgKzY4LDMzIEBAIHB1YmxpYzoKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNy
ZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3Vs
ZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7
Ci0gICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLQog
ICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwogICAgIGJvb2wgd2Fp
dEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CiAKKyAgICAvLyBSZXNvdWNlIGNh
Y2hlLgorICAgIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBXZWJDb3JlOjpD
b2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpCYWRnZT4mKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIo
V2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0
aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OkNh
Y2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHJlbGVhc2VSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gcmVtb3Rl
R2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHJlbW90ZUZsdXNo
RHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2FjaGVOYXRpdmVJbWFnZShjb25zdCBX
ZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOworICAgIHZvaWQgcmVtb3RlUmVsZWFzZVJlbW90ZVJl
c291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKIHByaXZhdGU6Ci0g
ICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQo
V2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBj
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENv
bnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdlQnVmZmVySWRlbnRpZmllcik7
CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICB1c2luZyBJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIqPjsKLSAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKKyAgICBSZW1vdGVSZXNv
dXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCAxMmE3YmY4ZGE0YzgyNTcwYmNhMzZhMTM1ZmQ3MWFm
MjU4OGI2NGQ1Li4yYzBmN2U4YTEyMDNmMjY4NjUyYTAwZmMxZjdiMTdkYTU5OWQyYWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0yMyw4ICsy
Myw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBi
YWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViS2l0
OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQg
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllcikKKyAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChX
ZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNl
LCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBD
b21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwOWJhODYwZTZjY2E5
ZDljMzcyYzM0NGVhOGFjN2EzMzlmMzNlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0w
LDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRJ
bWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVSZXNvdXJjZUNhY2hlOjpSZW1vdGVSZXNvdXJjZUNh
Y2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYlBh
Z2UmIHBhZ2UpCisgICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5n
QmFja2VuZCkKKyAgICAsIG1fcGFnZShwYWdlKQoreworfQorCitib29sIFJlbW90ZVJlc291cmNl
Q2FjaGU6OnNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
YWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9yZGVycygpOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGU6OmRyYXdCYWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3Is
IGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBpZiAoIXNob3VsZERyYXdCYWRn
aW5nQm9yZGVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBGbG9hdFJlY3QgY29udGFpbmVyUmVj
dCA9IGJvcmRlclJlY3Q7CisgICAgY29udGFpbmVyUmVjdC5pbmZsYXRlKC0xKTsKKyAgICBXZWJD
b3JlOjpkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBjb250YWluZXJSZWN0LCBjb2xvciwgYmFk
Z2VzKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZXNvdXJjZUNh
Y2hlOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFNob3VsZEFjY2Vs
ZXJhdGUgc2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCit7CisgICAgaWYgKHNob3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxl
cmF0ZTo6WWVzKSB7CisgICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2Vs
ZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCkpIHsKKyAgICAgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmFkZChpbWFn
ZUJ1ZmZlci5nZXQoKSwgaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpKTsK
KyAgICAgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAuYWRk
KGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0
KCkpOworICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkpIHsKKyAg
ICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuYWRkKGltYWdlQnVmZmVyLmdldCgpLCBp
bWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCkpOworICAgICAgICBtX3JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZlci0+cmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgcmV0dXJu
IGltYWdlQnVmZmVyOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIFJl
bW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAg
ICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKK30KKwordm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZm
ZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmdldChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFnZUJ1ZmZlci0+Y29tbWl0Rmx1c2hDb250
ZXh0KGZsdXNoSWRlbnRpZmllcik7Cit9CisKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbShXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
ID0gZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KGltYWdlLCByZW1vdGVDbGllbnRJZGVudGlmaWVy
KTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgLy8gRmx1c2ggdGhlIERyYXdpbmdDb250ZXh0IG9mIHRoZSBzb3VyY2UgSW1h
Z2VCdWZmZXIgc28gdGhpcyBJbWFnZUJ1ZmZlciBnZXRzIGFuIHVwZGF0ZWQgaW1hZ2UuCisgICAg
aW1hZ2UuZmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgIHJldHVybiBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpjcmVhdGUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBk
ZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbT4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRl
bShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSYgY2FjaGVkSW1h
Z2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQorewor
ICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gZmluZE5hdGl2ZUltYWdlRm9yQ2xp
ZW50KGNhY2hlZEltYWdlLCBpbWFnZSwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgaWYg
KCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpjcmVhdGUocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRp
b25zKTsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlc291cmNlQ2FjaGU6
OnJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UpCit7CisgICAgLy8gUmVtb3Zl
IHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllciA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLnRha2UoJmltYWdlKTsKKyAgICBB
U1NFUlQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIC8vIGNyZWF0ZUltYWdlQnVm
ZmVyIHNob3VsZCBoYXZlIGJlZW4gcmV0dXJuZWQgdGhpcyBJbWFnZUJ1ZmZlciBiZWZvcmUuCisg
ICAgYm9vbCBmb3VuZCA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAu
cmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgQVNTRVJUX1VOVVNFRChmb3Vu
ZCwgZm91bmQpOworCisgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMg
cmVzb3VyY2UgdW5sZXNzIGl0J3MgcGVuZGluZyByZXBsYXlpbmcgYmFjay4KKyAgICByZWxlYXNl
UmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyhyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKK1JlbW90ZVJl
c291cmNlSWRlbnRpZmllciBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlTmF0aXZlSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImIGltYWdlKQoreworICAgIC8vIFJlbW92ZSB0
aGUgcmVzb3VyY2UgZnJvbSB0aGUgY2FjaGUuCisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcC50YWtlKGltYWdlKTsKKworICAgIC8v
IFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlIHVubGVzcyBpdCdz
IHBlbmRpbmcgcmVwbGF5aW5nIGJhY2suCisgICAgaWYgKHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikKKyAgICAgICAgcmVsZWFzZVJlbW90ZVJlc291cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KEltYWdlQnVmZmVyJiBpbWFnZSwgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgYXV0byByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5nZXQoJmltYWdl
KTsKKyAgICBhZGRSZW1vdGVDbGllbnQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCByZW1vdGVD
bGllbnRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOwor
fQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVzb3VyY2VDYWNoZTo6ZmluZE5h
dGl2ZUltYWdlRm9yQ2xpZW50KFdlYkNvcmU6OkNhY2hlZEltYWdlJiBjYWNoZWRJbWFnZSwgY29u
c3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
Q2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9
IG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLmVuc3VyZShpbWFnZSwgWyZdIHsKKyAgICAgICAg
Y2FjaGVkSW1hZ2UuYWRkQ2xpZW50KCp0aGlzKTsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5yZW1vdGVDYWNoZU5hdGl2ZUltYWdlKGltYWdlKTsKKyAgICB9KS5pdGVy
YXRvci0+dmFsdWU7CisKKyAgICBhZGRSZW1vdGVDbGllbnQocmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmFkZFJlbW90ZUNsaWVu
dChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAo
IXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQWRk
IHRoZSAicmVzb3VyY2UgLT4gY2xpZW50IiBkZXBlbmRlbmN5IGluIG1fcmVtb3RlUmVzb3VyY2VD
bGllbnRzSGFzaE1hcC4KKyAgICBhdXRvJiBjbGllbnRzID0gbV9yZW1vdGVSZXNvdXJjZUNsaWVu
dHNIYXNoTWFwLmVuc3VyZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFsmXSB7CisgICAgICAg
IHJldHVybiBSZW1vdGVDbGllbnRzSGFzaFNldCgpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
KworICAgIGNsaWVudHMuYWRkKHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFJl
bW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZVBlbmRpbmdSZW1vdmVDbGll
bnRzKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7
CisgICAgQVNTRVJUKCFtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1h
cC5jb250YWlucyhyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKTsKKworICAgIC8vIElmIHdlIGhh
dmUgcmVjb3JkZWQgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmN5IGJlZm9yZSBpbiBt
X3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAsIG1vdmUgdGhpcworICAgIC8vIGRlcGVuZGVu
Y3kgdG8gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAuIE90aGVy
d2lzZSByZW1vdmUgdGhlIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgorICAgIGlmIChtX3JlbW90
ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSkKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAu
YWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNo
TWFwLnRha2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSk7CisgICAgZWxzZQorICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlUmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK1ZlY3RvcjxSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXI+IFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJj
ZUNsaWVudHNIYXNoTWFwJiByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBWZWN0b3I8UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUNsaWVudHNUb0JlUmVtb3ZlZDsK
KworICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmNpZXMg
ZnJvbSByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgorICAgIGZvciAoYXV0byYgcGFpciA6
IHJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXApIHsKKyAgICAgICAgcGFpci52YWx1ZS5yZW1v
dmUocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1vdmVkLmFwcGVu
ZChwYWlyLmtleSk7CisgICAgfQorCisgICAgLy8gUmV0dXJuIGEgbGlzdCBvZiB0aGUgdW5yZWZl
cmVuY2VkIHJlc291cmNlcy4KKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJl
bW92ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVu
dChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAg
ICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5jaWVzIGZyb20g
bV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgorICAgIGZvciAoYXV0byByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9yZW1vdGVSZXNvdXJjZUNsaWVu
dHNIYXNoTWFwLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgbV9yZW1vdGVSZXNv
dXJjZUNsaWVudHNIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisg
ICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9t
IG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLgorICAgIGZvciAo
YXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9yZW1v
dGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAsIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpKSB7CisgICAgICAgIC8vIFJlbW92ZSB0aGUgdW5yZWZlcmVuY2VkIHJlc291cmNlcyBm
cm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLgorICAgICAg
ICBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcC5yZW1vdmUocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgICAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2Vz
cyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4KKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMzdjZmRmY2E0
MzlmYWY4OGU5NTQxNjY2Mjk5NWNjOGEwN2I0NjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaApAQCAt
MCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRJbWFnZUNsaWVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJl
c291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKK2NsYXNzIEl0ZW07Cit9CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90Owor
c3RydWN0IEJhZGdlOworY2xhc3MgQ29sb3I7CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBGbG9h
dFNpemU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGUgOiBwdWJsaWMgV2ViQ29yZTo6Q2Fj
aGVkSW1hZ2VDbGllbnQgeworcHVibGljOgorICAgIFJlbW90ZVJlc291cmNlQ2FjaGUoUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCYsIFdlYlBhZ2UmKTsKKworICAgIGJvb2wgc2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIoKSBjb25zdDsKKyAgICB2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+Jik7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgdm9pZCBjcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgV2ViQ29yZTo6TmF0
aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OkNh
Y2hlZEltYWdlJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImKTsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
cmVsZWFzZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJik7CisgICAg
dm9pZCByZWxlYXNlUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBSZW1vdGVD
bGllbnRzSGFzaFNldCA9IEhhc2hTZXQ8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
PjsKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6
OkltYWdlQnVmZmVyKiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPjsKKyAgICB1
c2luZyBSZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6Ok5hdGl2ZUlt
YWdlUHRyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+OworICAgIHVzaW5nIFJl
bW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgUmVtb3RlQ2xpZW50c0hhc2hTZXQ+OworICAgIHVzaW5nIFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIqPjsKKwor
ICAgIHZvaWQgbmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgV2ViQ29yZTo6TmF0aXZl
SW1hZ2VQdHImIGltYWdlKSBvdmVycmlkZSB7IHJlbGVhc2VOYXRpdmVJbWFnZShpbWFnZSk7IH0K
KworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBmaW5kSW1hZ2VCdWZmZXJG
b3JDbGllbnQoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBmaW5kTmF0
aXZlSW1hZ2VGb3JDbGllbnQoV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpO
YXRpdmVJbWFnZVB0ciYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVD
bGllbnRJZGVudGlmaWVyKTsKKworICAgIHZvaWQgYWRkUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXI+IHJlbW92ZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUNsaWVudHNI
YXNoTWFwJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElk
ZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlUGVuZGluZ1JlbW92ZUNs
aWVudHMoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIFJlbW90ZUlt
YWdlQnVmZmVySGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcDsKKyAgICBSZW1vdGVO
YXRpdmVJbWFnZUhhc2hNYXAgbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXA7CisgICAgUmVtb3Rl
UmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXA7Cisg
ICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1Bl
bmRpbmdSZWxlYXNlSGFzaE1hcDsKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
SGFzaE1hcCBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwOworICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKKyAgICBXZWJQ
YWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
YW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDFhZTUxNTcyNTM2MWQyMjgyMTkx
NGFlZDBmMjhiYjE2ZTc2MzU4ZmYuLjMwMDUwYWMwN2RjOWFkNWM4M2YzZGUyODMyOTA2YTk4NzQx
MGQzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdh
bWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQv
V2ViR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHQU1F
UEFEKQogCiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiV2ViR2FtZXBhZC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDc2
YzBkMWZjOGFhMDkwZGRlNDYyY2IyMWUyNGEyMzRmMTAwYWNmZTEuLjhiMWUzMDg5MTIyODU5NmNm
ZTA3YTJmOTE3MWU3ODVkMjUyM2Y3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04OTcs
NyArODk3LDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGYKIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIFdlYkNocm9tZUNsaWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSgpOworICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpj
cmVhdGUobV9wYWdlKTsKICAgICByZXR1cm4gKm1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKIH0K
IAo=
</data>
<flag name="commit-queue"
          id="427274"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411146</attachid>
            <date>2020-10-12 12:32:25 -0700</date>
            <delta_ts>2020-10-12 12:37:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012123224.patch</filename>
            <type>text/plain</type>
            <size>223971</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uMWNmNTMzNzE2YzcyNTU5NDk5ZWJmZmVhMmU3Yjdj
ZTE1MDIxYjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwNSBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAg
aXMgaW50cm9kdWNlZCB0byBiZSB0aGUgcGxhY2Ugd2hlcmUgb3RoZXIgY29tcGxleAorICAgICAg
ICBncmFwaGljYWwgY29tbWFuZHMgY2FuIGJlIGFkZGVkIGxhdGVyLgorCisgICAgICAgICogSGVh
ZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFk
Z2luZ0JvcmRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmg6IEFkZGVkLgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0
bWFwSW1hZ2UgZnJhbWUgaW4gR1BVIFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdp
dGggaXRzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFn
ZSB3aWxsIGJlIGNhY2hlZCBpbiB0aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2Yg
Qml0bWFwSW1hZ2UgaGF2ZSBhIHdlbGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJv
Y2Vzcy4KKyAgICAgICAgVGhlIGNvdW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mg
d2lsbCBoYXZlIGEgc2ltaWxhciBsaWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBp
cyBkcmF3biBmb3IgdGhlIGZpcnN0IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2Vi
CisgICAgICAgIFByb2Nlc3MgdmlhIGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2Vz
cyBhbmQgY2FjaGVkIHVuZGVyIGEgdW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAg
ICAgICAgaXRlbS4gV2hlbiB0aGUgQml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBk
ZWNvZGVkIGZyYW1lLCBhIG1lc3NhZ2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdl
YiBQcm9jZXNzIHRvIHRoZSBHUFUgUHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAg
ICBmcmFtZS4gSGVyZSBpcyB0aGUgc2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAg
VGhlIGRyYXdpbmcgc2VxdWVuY2UgaW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6
CisKKyAgICAgICAgMSkgQml0bWFwSW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpk
cmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2Jz
ZXJ2ZXI6OmRyYXdOYXRpdmVJbWFnZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAg
IENhY2hlZEltYWdlIGFuZCBjYWxscyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgp
LgorICAgICAgICAzKSBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0
ZURyYXdOYXRpdmVJbWFnZUl0ZW0oKSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNo
IGlzIFJlbW90ZUltYWdlQnVmZmVyIGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAg
NCkgUmVtb3RlSW1hZ2VCdWZmZXIgY2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGlj
aCBjYWxscyBpdHMKKyAgICAgICAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05h
dGl2ZUltYWdlSXRlbSgpLgorICAgICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0
cyBmaW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhl
IE5hdGl2ZUltYWdlIGluIHRoZSBjYWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUg
YXMgYSBjbGllbnQKKyAgICAgICAgICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUg
UHJvY2VzcyB0byBjYWNoZSBpdCBhbHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIuIFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRo
ZSAKKyAgICAgICAgICAgRHJhd05hdGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllci4KKworICAgICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BV
IFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRo
ZSBEcmF3aW5nQ29udGV4dCBoYXBwZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAg
ICAgICAgIHJlcGxheWVkIGJhY2suIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxs
cyBhcHBseSgpIG9mIGl0cworICAgICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhl
IGNhc2Ugb2YgMkQgY2FudmFzLCB0aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS4KKyAgICAgICAgICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRo
ZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6ZHJhd05hdGl2ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZl
SW1hZ2UKKyAgICAgICAgICAgd2hvc2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKCkgb2YgdGhlIERyYXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUg
TmF0aXZlSW1hZ2UgaXMgZm91bmQsIGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9m
IHRoZQorICAgICAgICAgICBhcmd1bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAg
IFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5n
OgorCisgICAgICAgIDEpIEltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0
aGUgSW1hZ2VPYnNlcnZlciB3aGVuIGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91
dCB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRo
ZSBhc3NvY2lhdGVkIENhY2hlZEltYWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1h
Z2VXaWxsQmVEZXN0cm95ZWQoKS4KKyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRo
ZSBDYWNoZWRJbWFnZUNsaWVudHMgdG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2Ug
UmVtb3RlUmVzb3VyY2VDYWNoZSByZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGll
bnQgb2YKKyAgICAgICAgICAgdGhpcyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4K
KyAgICAgICAgNSkgVGhlIGNhY2hlZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0
aGUgY2FjaGUgYW5kIGEgbWVzc2FnZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQ
VSBQcm9jZXNzIHdoZW4gbm8gcmVtb3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAg
ICAgICAgIE5hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRo
ZSBHUFUgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQK
KyAgICAgICAgICAgTmF0aXZlSW1hZ2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4K
KworICAgICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVk
SW1hZ2VPYnNlcnZlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2VDbGllbnQ6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0
aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VPYnNlcnZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OkRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d05hdGl2ZUltYWdlOjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJ
bWFnZVB0ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2
ZUltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZTo6aW1hZ2VTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3TmF0aXZlSW1hZ2U6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0
ZURyYXdOYXRpdmVJbWFnZUl0ZW0pOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0
aGUgRGlzcGxheUxpc3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlv
biBvZiBOYXRpdmVJbWFnZVB0ciB0byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAg
ICAgICAgIE5hdGl2ZUltYWdlUHRyLgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdl
SGFuZGxlIGFuZCBhbGxvdyBlbmNvZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAg
ICAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGly
ZWN0aXZlcyBhcm91bmQgdGhlIERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAg
ICAgaXRlbSBhbmQgdGhlIG1ldGhvZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92
ZSB0aGUgZHJhd05hdGl2ZUltYWdlKCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBj
YWxsZXJzLgorICAgICAgICA1KSBJbiB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcg
Y29tbWFuZHMsIG1ha2UgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBw
cm9jZXNzIGRyYXdpbmcgdGhlIGltYWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNv
bW1hbmRzIGFyZQorICAgICAgICAgICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFn
ZSB3aWxsIHJlbmRlciBhIE5hdGl2ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBT
VkdJbWFnZSB3aWxsIHJlY29yZCBpdHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZHJhd05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRy
YXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdl
QnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3Bl
cmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZl
SW1hZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d05hdGl2ZUltYWdlOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3SW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRp
b25SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3Bl
cmF0aW9uUmVjb3JkZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNv
cmRlcjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVk
LgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJ
bWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgc2VxdWVuY2UgaW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6
CisKKyAgICAgICAgLS0gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERp
c3BsYXlMaXN0OjpSZWNvcmRlciB0byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFw
cHJvcHJpYXRlIHRvIGNyZWF0ZSBEcmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAg
ICAgLS0gRGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBk
ZWxlZ2F0ZSB0byB0byBjcmVhdGUKKyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVt
LgorCisgICAgICAgIC0tIFNpbmNlIFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6RGVsZWdhdGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6
Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0t
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxs
IGJlIGNhbGxlZCBuZXh0CisgICAgICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3Rl
UmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFz
aE1hcAorICAgICAgICAgICB1c2luZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJl
c3BvbmRpbmcgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5k
cyBpdCwgaXQgd2lsbCBjcmVhdGUgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAg
IFRoZSBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAg
ICAgICAtLSBXaGVuIHJlcGxheWluZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6
OlJlcGxheWVyIHdpbGwgY2FsbAorICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYg
aXQgd2FudHMgdG8gYXBwbHkgdGhlIERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNh
dXNlIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVy
OjpEZWxlZ2F0ZSwKKyAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3
aWxsIGJlIGNhbGxlZC4KKworICAgICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwg
Y2FsbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAg
ICAgICAgICAgd2hpY2ggd2lsbCBwYXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNl
SXRlbSgpIHdpbGwgc2VhcmNoIGZvciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdo
b3NlIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAg
ICAgRHJhd0ltYWdlQnVmZmVyLiBBbmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdy
YXBoaWNzQ29udGV4dC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRy
YXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2lu
Z0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1h
Z2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3Vy
Y2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZl
cjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF4TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjpwdXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVE
cmF3SW1hZ2VCdWZmZXJJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNv
cmRlcjo6T2JzZXJ2ZXI6On5PYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0w
OSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5h
Z2UgdGhlIHJlc291cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8g
SW1hZ2VCdWZmZXIgd2hpY2ggdXNlZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9m
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxy
ZWFkeSBvdmVycmlkZGVuCisgICAgICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlz
IGNhbGxlZCBieSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkga2VlcHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVu
dGlmaWVyIG5hbWVkICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
d2lsbCBiZSB1c2VkIGluIFdlYkNvcmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBh
IHJlbW90ZSBJbWFnZUJ1ZmZlciB0byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1
YWxseSBpdCB3aWxsCisgICAgICAgIGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFn
ZSB0byBhIHJlbW90ZSBJbWFnZUJ1ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDog
QWRkZWQuCisKIDIwMjAtMTAtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNw
bGF5TGlzdFJlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2
NmU5YTBlNjQ3OGUuLmY0MjA4MDhiN2ZjYTg1MjhjMjIyZmFiMjAzM2VjN2E1NzU3MzdmNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjc4IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBk
cmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJh
d24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxm
IHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgorICAgICAgICBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0dGluZ3MgdGhy
b3VnaCB0aGUgV2ViUGFnZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3
aW5nQ29udGV4dCgpIHdpbGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisgICAgICAgIHRv
IHRoZSBJbWFnZUJ1ZmZlciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgR1BV
IHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
IGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdl
IGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0
ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFw
cGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZl
SW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3Jl
YXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291
cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZvckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFn
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAo
SVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9T
aGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6
cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6
OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5
UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVt
IGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEw
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhl
IHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNw
b25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJlbW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVk
aW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAgIHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3Ig
dGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4K
KyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBhbGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8g
aXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisKKyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1
ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAg
ICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNlQ2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0
byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAgIGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAg
ICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAgICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAg
ICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAg
dHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVyZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVz
ZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdoaWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ug
d2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAg
ICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFzaFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+
CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNvdXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWly
IGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVpcgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMg
d2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hl
CisgICAgICAgIGlzIHJlcXVlc3RlZCB0byByZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBp
dCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisgICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2Yg
cmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQgbW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAg
ICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhl
ciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAgIC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVu
ZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAg
ICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4g
YW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNl
Q2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGll
bnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAK
KyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVsZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdl
bGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJl
bW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJl
bW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyOjpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFn
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVG
bHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNv
bW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJl
bW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToK
KyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNs
aWVudC4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVt
b3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwg
dGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMgYSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6
CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBoYXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0Nv
bnRleHQuIEl0J3MgdGltZSB0byBib29rLQorICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZl
cmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRoZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAg
ICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1vdGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0x
MC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAg
ICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBt
YW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3
aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAg
ICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFsIGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21t
dW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAg
ZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2UgY2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2Vu
ZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNzLiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRo
ZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0
aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1v
dGVSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAt
MDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2Vu
ZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVk
cyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZvciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5k
IAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMgYW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwKKyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0
IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0
QW5kV2FpdENvbW1pdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdElt
YWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoK
KwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5n
IHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3
YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1YjUyNTQwMGZlLi40NWFmOGYxYWJhYWNkMjhkNDI0
MDc4MDE0YTFiZTE0MWU2NGJjMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0
Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0wuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5o
CkBAIC0xMTk0LDYgKzExOTUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC0xMjA3LDYgKzEy
MDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5k
ZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2RhZjQwMDRiMzY4YTkwZThkYTFkNTIwNmQuLmI1ZjBk
ZDY5MWM4ZjY2NGNlZGJiMjQ5NTA2YWYyNzhiZDg2MmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
ODkzLDYgKzE4OTMsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKK3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
SW1wbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUw
NWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQxMDEwMDAyMS4uYmFlZDUyMTZlZTY0NzRkNWFkMDAw
MDJlYTJiOTVmZDMxZWZmNmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNyw3ICsyMDA3LDYgQEAKIAkJNkE3Mjc5OEIx
RjE2QzI5QzAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlC
OCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMw
MEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNr
QXR0cmlidXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk2QjFGNDgxMTIyOThBMzdFMDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0
MSAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RDQxMkIy
Mzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJGMzg5IC8q
IFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjUw
N0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI1MDdBMjEyMzRCRjM0MTAwQkU3
QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4uaCAqLzsgfTsKQEAgLTIxNTUsMTIgKzIxNTQsMTYg
QEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJB
MjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIElt
YWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgz
RjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0
N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIzMUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBo
aWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
NEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYx
M0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFG
RkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1
MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQy
OTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
OTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMg
LyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjlEMDUz
QzI1MzJFRUUzMDA0MjIwOTggLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRp
dmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1MzkyNTMyRDJFNzAw
NDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlv
bkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNF
MUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJ
bWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07
CkBAIC05NDg3LDcgKzk0OTAsNiBAQAogCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRD
bGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyog
QWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQw
MERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5T
dGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkMyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MTIyMjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxl
RG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdHJhYmxlRG9tYWluLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05OTAxLDYgKzk5MDMsOCBAQAogCQk3MjFCNDk2RjI1MTJBQzA0
MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNraW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElt
YWdlQml0bWFwQmFja2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMUI0
OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VCaXRtYXBCYWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
MkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRpb25GcmFtZVJhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQW5pbWF0aW9uRnJhbWVSYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMjkxQTNBN0U1NDAwRjVGMTNDIC8qIEVY
VEJsZW5kTWluTWF4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVY
VEJsZW5kTWluTWF4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkEx
QTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyNEVEMzJCMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRVhUQmxlbmRNaW5NYXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTkyMyw2ICs5OTI3LDggQEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4
IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMEND
Njg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8q
IFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzkyNTMy
RDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUlt
YWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcw
MDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2Vu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFD
IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjYxNDEsNiArMjYxNDcsOCBAQAogCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFk
aWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5oICovLAorCQkJCTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0Nv
bnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcyMzFCRUIwMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFw
aGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyog
R3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAogCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAv
KiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCAqLywKQEAgLTI2MjIwLDggKzI2MjI4LDgg
QEAKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovLAog
CQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2Uu
Y3BwICovLAogCQkJCTMxNEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJh
dGVkSW1hZ2UuaCAqLywKLQkJCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1h
Z2UuaCAqLywKIAkJCQk1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAq
LywKKwkJCQk3MjlEMDUzOTI1MzJEMkU3MDA0MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCAqLywK
IAkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1
NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBD
MDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLywKQEAgLTI2MjM5LDYgKzI2MjQ3LDcg
QEAKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmgg
Ki8sCiAJCQkJQkNBQjQxN0YxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJ
QkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5oICovLAorCQkJCTcyOUQwNTJFMjUz
MTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQkwNzNB
MTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3
M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcy
OTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCkBAIC0zMTYxNCw2
ICszMTYyMyw3IEBACiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1h
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFw
aGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNB
MCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzIzMUJFQjIyNTM0
Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0
NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjgs
NyArMzMxNzgsOCBAQAogCQkJCTMxNEJFM0E3MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdl
R2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0Qz
QzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTZCMzQ4MDk0
MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5
RDA1M0MyNTMyRUVFMzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3MjlEMDUzRDI1MzJFRjkxMDA0MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThF
ODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzU0MSw2ICszMzU1
Miw3IEBACiAJCQkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREMzMTJFOTIyRkNEN0MwMDAxMjA0RUMgLyogUmVtb3RlUGxheWJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzMxMkVCMjJGQ0Q3QzkwMDEyMDRFQyAvKiBSZW1v
dGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlE
MDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1w
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1v
dmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1
NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCA0MzliNmE5ZDdkODEyMGQ5MWUxZTFhZmM1NmQxYWFmNmJl
MGI0OWU0Li42MmY1OWQ2OTJiN2YzNmQ2OTk1NzRhZDUwYzgxOGY5OTk3M2Q3MjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtNjAxLDEwICs2MDEsMTcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcpIG92
ZXJyaWRlIHsgfQogCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpIG92ZXJyaWRlCisgICAgeworICAgICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRp
dmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQor
CiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29s
IGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2b2lkIGltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFu
aW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0g
RGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbmF0aXZlSW1h
Z2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIG92
ZXJyaWRlIHsgfQorCiAgICAgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3Qg
SW50UmVjdCogPSBudWxscHRyKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKGNvbnN0IEltYWdlJikgb3ZlcnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDVjYzkzMzgzMjU3NGRjYmViZWQ4MmMy
YzBiY2U4ZjAwYzJiY2E3MmUuLjgyZDI5MTljODNjYTdjNDBiZWIzZjkwMmY4YzZjNzhiZWU3ZWJk
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAt
NDExLDYgKzQxMSwxNyBAQCB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpk
ZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBsbwogICAgICAgICBjYWNoZWRJ
bWFnZS0+ZGVjb2RlZFNpemVDaGFuZ2VkKGltYWdlLCBkZWx0YSk7CiB9CiAKK3ZvaWQgQ2FjaGVk
SW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBJbWFnZSYg
aW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5h
dGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZElt
YWdlcykgeworICAgICAgICBpZiAoJmltYWdlICE9IGNhY2hlZEltYWdlLT5pbWFnZSgpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2
ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFn
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
bmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQor
CiB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpkaWREcmF3KGNvbnN0IElt
YWdlJiBpbWFnZSkKIHsKICAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZEltYWdl
cykKQEAgLTQzNCw2ICs0NDUsMTIgQEAgdm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNl
cnZlcjo6aW1hZ2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYgaW1hZ2UsIEkKICAgICAgICAg
Y2FjaGVkSW1hZ2UtPmltYWdlRnJhbWVBdmFpbGFibGUoaW1hZ2UsIGFuaW1hdGluZ1N0YXRlLCBj
aGFuZ2VSZWN0LCBkZWNvZGluZ1N0YXR1cyk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hl
ZEltYWdlT2JzZXJ2ZXI6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiBp
bWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQoreworICAgIGZvciAoYXV0
byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKQorICAgICAgICBjYWNoZWRJbWFnZS0+bmF0
aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoaW1hZ2UsIG5hdGl2ZUltYWdlKTsKK30KKwogdm9pZCBD
YWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCiB7CiAgICAgZm9yIChhdXRvIGNhY2hlZElt
YWdlIDogbV9jYWNoZWRJbWFnZXMpCkBAIC02ODksNiArNzA2LDE2IEBAIHZvaWQgQ2FjaGVkSW1h
Z2U6OmltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmIGltYWdlLCBJbWFnZUFuaW1hdGlu
Z1N0YXRlIGFuCiAgICAgICAgIG1fY2xpZW50c1dhaXRpbmdGb3JBc3luY0RlY29kaW5nLmNsZWFy
KCk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNv
bnN0IEltYWdlJiBpbWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQorewor
ICAgIGlmICgmaW1hZ2UgIT0gbV9pbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVk
UmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkSW1hZ2VDbGllbnQ+IGNsaWVudFdhbGtlcihtX2Ns
aWVudHMpOworICAgIHdoaWxlIChDYWNoZWRJbWFnZUNsaWVudCogY2xpZW50ID0gY2xpZW50V2Fs
a2VyLm5leHQoKSkKKyAgICAgICAgY2xpZW50LT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChu
YXRpdmVJbWFnZSk7Cit9CisKIHZvaWQgQ2FjaGVkSW1hZ2U6OmNoYW5nZWRJblJlY3QoY29uc3Qg
SW1hZ2UmIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogewogICAgIGlmICgmaW1hZ2UgIT0g
bV9pbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXgg
NzJkNTljMWZmNDg0NWMyMzI3NTkyMGJjOGQxMmYyNzM0MzI3ZjcyYy4uODY3OTgzMmE0Y2MxMGJj
NjRmN2EzZTU0YjI1OWJlNTNmYTcxMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKQEAgLTE0OSwxMCArMTQ5LDE0IEBAIHByaXZhdGU6CiAKICAgICAgICAg
dm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoY29uc3QgSW1hZ2UmLCBFbmNvZGVkRGF0YVN0
YXR1cykgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdl
JiwgbG9uZyBsb25nIGRlbHRhKSBmaW5hbDsKKworICAgICAgICB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBJbWFnZSYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5h
bDsKICAgICAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJikgZmluYWw7CiAKICAgICAgICAg
Ym9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEoY29uc3QgSW1hZ2UmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBpbWFnZUZyYW1lQXZhaWxhYmxlKGNvbnN0IEltYWdlJiwgSW1hZ2VBbmltYXRpbmdTdGF0
ZSwgY29uc3QgSW50UmVjdCogY2hhbmdlUmVjdCA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0g
RGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIGZpbmFsOworICAgICAgICB2b2lkIG5hdGl2ZUltYWdl
V2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSBmaW5h
bDsKKwogICAgICAgICB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRS
ZWN0KikgZmluYWw7CiAgICAgICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3Qg
SW1hZ2UmKSBmaW5hbDsKIApAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWREcmF3KGNvbnN0IEltYWdlJik7CiAgICAgYm9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEoY29u
c3QgSW1hZ2UmKTsKICAgICB2b2lkIGltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJ
bWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwg
RGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCk7CisgICAgdm9pZCBuYXRp
dmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25zdCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRy
Jik7CiAgICAgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCop
OwogICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3QgSW1hZ2UmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaAppbmRleCBi
YTY0NDViN2VhN2VkOTYzZDYxYmZmMzBmMjhhOWE0ZWQ3ZjljMTM2Li4yMWFhZjA3ZjFiYjVkNTNi
OTI5NDIyNGI2NDQzNzJhYmQzNTJiMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJJbWFnZVR5cGVzLmgiCisjaW5jbHVk
ZSAiTmF0aXZlSW1hZ2VQdHIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0
OCw4IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hlbiBhIG5ldyBkZWNvZGVkIGZyYW1lIGZv
ciBhIGxhcmdlIGltYWdlIGlzIGF2YWlsYWJsZSBvciB3aGVuIGFuIGFuaW1hdGVkIGltYWdlIGlz
IHJlYWR5IHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgZnJhbWUuCiAgICAgdmlydHVhbCBWaXNpYmxl
SW5WaWV3cG9ydFN0YXRlIGltYWdlRnJhbWVBdmFpbGFibGUoQ2FjaGVkSW1hZ2UmIGltYWdlLCBJ
bWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0KSB7IGltYWdlQ2hh
bmdlZCgmaW1hZ2UsIGNoYW5nZVJlY3QpOyByZXR1cm4gVmlzaWJsZUluVmlld3BvcnRTdGF0ZTo6
Tm87IH0KIAorICAgIHZpcnR1YWwgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25z
dCBOYXRpdmVJbWFnZVB0ciYpIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUNhY2hl
ZEltYWdlQ2xpZW50KENhY2hlZEltYWdlJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGVGb3JJbWFnZShDYWNoZWRJbWFnZSYpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBhMTQxM2M2ZjY3OWIxNWU5MDdjN2I2
Y2ZhNzYwNWYyNzBlMmY5NTU3Li41NzQ0N2ZmMWFmMDQ2YzY0OGU4NGQ5NzZhYmYwMDYxMGJmMDAy
OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjQs
NyArMjQsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggYjQ3NmEzNWI4MmQ5MzcwOGQzYjBmMmI0ZDFhNmQy
NTQ4MTJkMGUxMS4uMGFmNmMzZDhiMjMxODUxNzc4OWIwNzIzNDVmOTY3NDNiMWQ3ZjZlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1h
Z2VPYnNlcnZlci5oIgpAQCAtMjA0LDYgKzIwNSwyNCBAQCBib29sIEJpdG1hcEltYWdlOjpub3RT
b2xpZENvbG9yKCkKIH0KICNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAogCitzdGF0aWMgaW5saW5l
IHZvaWQgZHJhd05hdGl2ZUltYWdlKEJpdG1hcEltYWdlJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYg
c3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgLy8g
U3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBpcyBzbWFsbGVyIHRo
YW4gc2l6ZSgpLgorICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6ZSA9IG5hdGl2ZUltYWdl
U2l6ZShuYXRpdmVJbWFnZSk7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lk
dGhBc0hlaWdodCgpKQorICAgICAgICBzdWJzYW1wbGVkSW1hZ2VTaXplID0gc3Vic2FtcGxlZElt
YWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgLy8gc3JjUmVjdCBpcyBpbiB0aGUgY29v
cmRpbmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxlZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBtYXAgaXQg
dG8gdGhlIHN1YnNhbXBsZWQgaW1hZ2UuCisgICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9
IHNyY1JlY3Q7CisgICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKKyAgICAg
ICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBzcmNT
aXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOworCisgICAgaWYgKGlt
YWdlLmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2UuaW1hZ2VPYnNlcnZlcigpLT5kcmF3
TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VT
aXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VT
aXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKK30KKwogSW1hZ2VEcmF3
UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgp
IHx8IHNyY1JlY3QuaXNFbXB0eSgpKQpAQCAtMjkyLDkgKzMxMSw5IEBAIEltYWdlRHJhd1Jlc3Vs
dCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzCiAgICAgYXV0byBvcmllbnRhdGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24oKTsK
ICAgICBpZiAob3JpZW50YXRpb24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSB7CiAg
ICAgICAgIG9yaWVudGF0aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJh
bWUpOwotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBz
cmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwgeyBvcHRpb25zLCBvcmllbnRhdGlv
biB9KTsKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCB7IG9wdGlvbnMsIG9y
aWVudGF0aW9uIH0pOwogICAgIH0gZWxzZQotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2Us
IGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwg
b3B0aW9ucyk7CisgICAgICAgIGRyYXdOYXRpdmVJbWFnZSgqdGhpcywgY29udGV4dCwgaW1hZ2Us
IGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwgb3B0aW9ucyk7
CiAKICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1
c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogCkBAIC0zNzksNyArMzk4LDcgQEAgU3Vic2FtcGxp
bmdMZXZlbCBCaXRtYXBJbWFnZTo6c3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlRmFjdG9yKEdyYXBo
aWNzQ29udGV4dCYgY28KIHsKICNpZiBVU0UoQ0cpCiAgICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBs
ZWQgaW1hZ2VzIGZvciBkcmF3aW5nIGludG8gUERGIGNvbnRleHRzLgotICAgIGlmIChDR0NvbnRl
eHRHZXRUeXBlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpID09IGtDR0NvbnRleHRUeXBlUERG
KQorICAgIGlmIChjb250ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpICYmIENHQ29udGV4dEdldFR5
cGUoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCiAgICAg
ICAgIHJldHVybiBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OwogCiAgICAgZmxvYXQgc2NhbGUg
PSBzdGQ6Om1pbihmbG9hdCgxKSwgc3RkOjptYXgoc2NhbGVGYWN0b3Iud2lkdGgoKSwgc2NhbGVG
YWN0b3IuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDU1NWNjNjY0NTcwYTM0YmVhOTk1ZGVjY2Q1
MmFjODYxZjVmZTMxNDQuLjcxMTNkN2Y2NGUxYTc2Mjg5ODFmYzA5OTZmZDY4ZDg2ODUyNmIzZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcApAQCAtNzMxLDYgKzczMSwxOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0JpZGlUZXh0KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAg
ICAgYmlkaVJ1bnMuY2xlYXIoKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSogY2Fj
aGVkSW1hZ2UpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShp
bWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgY2FjaGVkSW1hZ2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFn
ZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGlt
YWdlUGFpbnRpbmdPcHRpb25zKQogewogICAgIHJldHVybiBkcmF3SW1hZ2UoaW1hZ2UsIEZsb2F0
UmVjdChkZXN0aW5hdGlvbiwgaW1hZ2Uuc2l6ZSgpKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwg
aW1hZ2Uuc2l6ZSgpKSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwpAQCAtNzQ3LDcgKzc2MCw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAgIGlmIChtX2lt
cGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5pc1BERkRvY3VtZW50SW1hZ2UoKSkKICAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBv
cHRpb25zKTsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0
aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0
eSgpKTsKQEAgLTc1OSw3ICs3NzIsNyBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZAogICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CiAKLSAgICBpZiAobV9pbXBsKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQ
REZEb2N1bWVudEltYWdlKCkpCiAgICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdl
KGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7
CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxp
dHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CkBA
IC03NzIsNyArNzg1LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1Rp
bGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGQKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5n
OwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBpZiAobV9pbXBsICYmIGltYWdlLmlzUERGRG9jdW1l
bnRJbWFnZSgpKQogICAgICAgICByZXR1cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlv
bnMpOwogCiAgICAgaWYgKGhSdWxlID09IEltYWdlOjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJ
bWFnZTo6U3RyZXRjaFRpbGUpIHsKQEAgLTc5OSw2ICs4MTIsOSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aQogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIG9wdGlvbnMpKQorICAgICAgICByZXR1cm47CisKICAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRo
aXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CiAgICAgaW1hZ2UuZHJhdygqdGhp
cywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGRiNGMwMDJlY2Nk
MjJlNmZlOTQwODdjNjlmOTEyOGQ0Mjg5OTI3YmYuLjI1MTlkN2JlYTE4MjE5ODdmNzFiYTcwZjQ0
MWYyZmZiMDVkMmJmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEdseXBoQnVmZmVy
OwogI2VuZGlmCiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKK2NsYXNzIENhY2hlZEltYWdlOwog
Y2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKIGNsYXNzIEdyYWRpZW50OwogY2xhc3MgR3JhcGhpY3ND
b250ZXh0SW1wbDsKQEAgLTMzNCwxMCArMzM1LDYgQEAgcHVibGljOgogCiAgICAgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCi0j
aWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpIHx8IFVTRShDQUlSTykKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZs
b2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSNlbmRp
ZgotCiAjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgdm9pZCBhcHBseVN0cm9rZVBh
dHRlcm4oKTsKICAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKTsKQEAgLTM4Myw2ICszODAsOCBA
QCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxm
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0sIENhY2hlZEltYWdlKiA9IG51bGxw
dHIpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UgfSk7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFn
ZSB9KTsKQEAgLTY1Miw2ICs2NTEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwbGF0Zm9ybUZp
bGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKTsKIAor
ICAgIHZvaWQgcGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBj
b25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisKICAg
ICBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChj
b25zdCBGbG9hdFJlY3QmLCBib29sIHByaW50aW5nLCBDb2xvciYpOwogCiAgICAgZmxvYXQgZGFz
aGVkTGluZUNvcm5lcldpZHRoRm9yU3Ryb2tlV2lkdGgoZmxvYXQpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4
dHJhcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4OTZjODYxNjBkNzExYTMwMWZjZTU4MWEzZmNlN2JhZmZi
ZjcwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlRleHRSdW4uaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGRyYXdC
YWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBi
b3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdl
cykKK3sKKyAgICBhdXRvIHJlY3RDb3JuZXJQb2ludCA9IFsmXShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIFJlY3RDb3JuZXIgY29ybmVyKSB7CisgICAgICAgIGF1dG8gcG9pbnQgPSByZWN0LmxvY2F0
aW9uKCk7CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9PSBS
ZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKHJlY3Qud2lkdGgoKSwgMCk7
CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RC
b3R0b21SaWdodCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoMCwgcmVjdC5oZWlnaHQoKSk7Cisg
ICAgICAgIHJldHVybiBwb2ludDsKKyAgICB9OworCisgICAgYXV0byByZWN0Q29ybmVyUmVjdCA9
IFsmXShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFJlY3RDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9h
dFNpemUgc2l6ZSkgeworICAgICAgICBhdXRvIHBvaW50ID0gcmVjdENvcm5lclBvaW50KHJlY3Qs
IGNvcm5lcik7CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9
PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKC1zaXplLndpZHRoKCks
IDApOworICAgICAgICBpZiAoY29ybmVyID09IFJlY3RCb3R0b21MZWZ0IHx8IGNvcm5lciA9PSBS
ZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKDAsIC1zaXplLmhlaWdodCgp
KTsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChwb2ludCwgc2l6ZSk7CisgICAgfTsKKworICAg
IGF1dG8gb3Bwb3NpdGVIb3Jpem9udGFsID0gW10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlY3RDb3JuZXI+KGNvcm5lciBeIDB4MSk7CisgICAgfTsK
KworICAgIGF1dG8gb3Bwb3NpdGVWZXJ0aWNhbCA9IFtdKFJlY3RDb3JuZXIgY29ybmVyKSB7Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWN0Q29ybmVyPihjb3JuZXIgXiAweDIpOworICAg
IH07CisKKyAgICBhdXRvIGRyYXdCYWRnZVJlY3QgPSBbJl0oR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJhZGdlc1JlY3QsIFJlY3RDb3JuZXIgY29ybmVyLCBjb25z
dCBGbG9hdFNpemUmIGJhZGdlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjdXRvZmZTaXplKSB7CisK
KyAgICAgICAgRmxvYXRSZWN0IGJhZGdlUmVjdCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdlc1JlY3Qs
IGNvcm5lciwgYmFkZ2VTaXplKTsKKyAgICAgICAgRmxvYXRSZWN0IGN1dG9mZlJlY3QgPSByZWN0
Q29ybmVyUmVjdChiYWRnZXNSZWN0LCBjb3JuZXIsIGN1dG9mZlNpemUpOworCisgICAgICAgIFBh
dGggcGF0aDsKKworICAgICAgICBjb3JuZXIgPSBvcHBvc2l0ZUhvcml6b250YWwoY29ybmVyKTsK
KyAgICAgICAgcGF0aC5tb3ZlVG8ocmVjdENvcm5lclBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikp
OworICAgICAgICBwYXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9pbnQoYmFkZ2VSZWN0LCBjb3Ju
ZXIpKTsKKworICAgICAgICBjb3JuZXIgPSBvcHBvc2l0ZVZlcnRpY2FsKGNvcm5lcik7CisgICAg
ICAgIHBhdGguYWRkTGluZVRvKHJlY3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOwor
CisgICAgICAgIGNvcm5lciA9IG9wcG9zaXRlSG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBw
YXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9pbnQoYmFkZ2VSZWN0LCBjb3JuZXIpKTsKKyAgICAg
ICAgcGF0aC5hZGRMaW5lVG8ocmVjdENvcm5lclBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikpOwor
CisgICAgICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CisKKyAgICAgICAgY29udGV4dC5zZXRGaWxs
Q29sb3IoY29sb3IpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAgICBy
ZXR1cm4gYmFkZ2VSZWN0OworICAgIH07CisKKyAgICBjb25zdCBmbG9hdCB2ZXJ0aWNhbE1hcmdp
biA9IDE7CisgICAgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdpbiA9IDI7CisgICAgY29uc3Qg
dW5zaWduZWQgZm9udFNpemUgPSAxMDsKKyAgICBjb25zdCBGbG9hdFNpemUgY3V0b2ZmU2l6ZSgz
LCAzKTsKKworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkhlbHZldGljYSIpOworICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGZvbnRTaXplKTsKKyAgICBmb250RGVzY3JpcHRpb24u
c2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKKworICAgIEZvbnRDYXNjYWRlIGNhc2NhZGUoV1RG
TW92ZShmb250RGVzY3JpcHRpb24pKTsKKyAgICBjYXNjYWRlLnVwZGF0ZShudWxscHRyKTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAg
IGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IpOworICAgIGNvbnRleHQuc2V0U2hvdWxkQW50
aWFsaWFzKGZhbHNlKTsKKyAgICBjb250ZXh0LnN0cm9rZVJlY3QoYm9yZGVyUmVjdCwgMC41KTsK
KworICAgIEZsb2F0UmVjdCBiYWRnZXNSZWN0ID0gYm9yZGVyUmVjdDsKKyAgICBiYWRnZXNSZWN0
LmluZmxhdGUoLTEpOworCisgICAgZm9yIChhdXRvIGJhZGdlIDogYmFkZ2VzKSB7CisgICAgICAg
IFRleHRSdW4gdGV4dFJ1bihiYWRnZS50ZXh0KTsKKyAgICAgICAgZmxvYXQgdGV4dFdpZHRoID0g
Y2FzY2FkZS53aWR0aCh0ZXh0UnVuKTsKKyAgICAgICAgRmxvYXRTaXplIGJhZGdlU2l6ZShob3Jp
em9udGFsTWFyZ2luICogMiArIHRleHRXaWR0aCwgdmVydGljYWxNYXJnaW4gKiAyICsgZm9udFNp
emUpOworCisgICAgICAgIGF1dG8gYmFkZ2VSZWN0ID0gZHJhd0JhZGdlUmVjdChjb250ZXh0LCBi
YWRnZXNSZWN0LCBiYWRnZS5jb3JuZXIsIGJhZGdlU2l6ZSwgY3V0b2ZmU2l6ZSk7CisKKyAgICAg
ICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFkZ2UuY29sb3IpOworICAgICAgICBjb250ZXh0LmRy
YXdUZXh0KGNhc2NhZGUsIHRleHRSdW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIGhvcml6
b250YWxNYXJnaW4sIGJhZGdlUmVjdC55KCkgKyBmb250U2l6ZSkpOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjY1MTU0ODhh
NWU4NDBhMjMxZmJhZTk4YTI2ZTcwMDBiMTM5NGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEZsb2F0UmVjdDsKKworZW51bSBS
ZWN0Q29ybmVyIHsKKyAgICBSZWN0VG9wTGVmdCAgICAgPSAweDAwLAorICAgIFJlY3RUb3BSaWdo
dCAgICA9IDB4MDEsCisgICAgUmVjdEJvdHRvbUxlZnQgID0gMHgwMiwKKyAgICBSZWN0Qm90dG9t
UmlnaHQgPSAweDAzLAorfTsKKworc3RydWN0IEJhZGdlIHsKKyAgICBSZWN0Q29ybmVyIGNvcm5l
cjsKKyAgICBDb2xvciBjb2xvcjsKKyAgICBTdHJpbmcgdGV4dDsKK307CisKK1dFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYsIGNvbnN0IFZlY3RvcjxCYWRnZT4mKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDNkNTA3NWJjZWRjYmY1MDI4
NzFjZDU1MDkzNWY1MWFjOGRiMmY1NWMuLmY0NGQ5ZTU0M2EzOTQ0MDM5ZmU5OGZlMzRjMDgzMjk1
OTM0YzI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTcyLDkgKzcyLDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdl
RHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2Fs
ZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJP
KSB8fCBVU0UoRElSRUNUMkQpCi0gICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSA9IDA7Ci0jZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggZDM5ZmVhYTgyZjM3
MWNmOGFhZjc2ZDI3ZjMzNTczZjM1MTk4ZDA4OS4uZWE0ZDYzYTk0ZWQ2Y2YwMjIzZmQ5ZWEwNTA4
OGEzN2JkNzEyZDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CkBAIC0zMiw4ICszMiw5IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJ
bWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKLSNpbmNsdWRl
ICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgpAQCAtNzIsNyArNzMsNiBAQCBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwogY2xhc3MgU2hhcmVkQnVmZmVy
Owotc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zOwogc3RydWN0IExlbmd0aDsKIAogLy8gVGhp
cyBjbGFzcyBnZXRzIG5vdGlmaWVkIHdoZW4gYW4gaW1hZ2UgY3JlYXRlcyBvciBkZXN0cm95cyBk
ZWNvZGVkIGZyYW1lcyBhbmQgd2hlbiBpdCBhZHZhbmNlcyBhbmltYXRpb24gZnJhbWVzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDE0
NjQ5MmM0YThkZjkzNWNhZjk0YjlmYjk1NTkwOWFhZDFjYmFmMC4uZGJlMDI1ZWU5ZTFhNDQwZjAy
ZWE5NjY0YTM0Zjk4YTBmNmM1MWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNz
IERyYXdpbmdDb250ZXh0OwogfQogCkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgRGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0KiBkcmF3aW5nQ29udGV4dCgpIHsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYpIHsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRy
YW5zZm9ybSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFNpemUgbG9naWNhbFNpemUoKSBj
b25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGMwMTBhMGYwY2ZjZDhjNWU3YWI2Yzk0YzVjM2MzNmY0
ODM4NmQwMWYuLjU4ZmMxNDgzNmQ5MmFhMjAwMTlmMjBmZWVkYzU1NzFlOWFiNWU5NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5oCkBAIC0zMSwxMyArMzEsMTQgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIK
ICNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7CiBjbGFzcyBIb3N0V2lu
ZG93OwogY2xhc3MgSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9ic2VydmVyLmgKaW5kZXggOGIwODllNTk0YzFhZmNjZWU0ZmZiNTA3MTE1OTc4NzQ2
OTVjYjJkZS4uYjRkNzEwYWM2NzMwYzg1ZGZlZWE3NWVhYjBmM2RiNjY3NmY2MGYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaApAQCAt
NDUsMTAgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlZERhdGFTdGF0
dXNDaGFuZ2VkKGNvbnN0IEltYWdlJiwgRW5jb2RlZERhdGFTdGF0dXMpIHsgfTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlJiwgbG9uZyBsb25nIGRlbHRh
KSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRHJhdyhjb25zdCBJbWFnZSYpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5EZXN0
cm95RGVjb2RlZERhdGEoY29uc3QgSW1hZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltYWdl
RnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJ
bnRSZWN0KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0
YXR1czo6SW52YWxpZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURl
c3Ryb3llZChjb25zdCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJikgPSAwOworCiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0KiBj
aGFuZ2VSZWN0ID0gbnVsbHB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggNzc1MDMyMjM5YTVkNWFiYWE3
NjNmN2EyNjNlZDdjYjI0NTk4MjY1Mi4uNDU1MTVjNTlhMWZmMjg0Y2Q4ZDI4MDM4MzdiMDg1YjUw
MjJkNmMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcApAQCAtMTMwLDggKzEzMCwxMCBAQCB2b2lkIEltYWdlU291cmNlOjpkZXN0cm95
RGVjb2RlZERhdGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNsdWRlRnJhbWUpCiAgICAg
QVNTRVJUKGZyYW1lQ291bnQgPD0gbV9mcmFtZXMuc2l6ZSgpKTsKIAogICAgIGZvciAoc2l6ZV90
IGluZGV4ID0gMDsgaW5kZXggPCBmcmFtZUNvdW50OyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChp
bmRleCA9PSBleGNsdWRlRnJhbWUpCisgICAgICAgIGlmIChpbmRleCA9PSBleGNsdWRlRnJhbWUg
fHwgIW1fZnJhbWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKQogICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGlmIChtX2ltYWdlICYmIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKS0+bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95
ZWQoKm1faW1hZ2UsIG1fZnJhbWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKTsKICAgICAgICAgZGVj
b2RlZFNpemUgKz0gbV9mcmFtZXNbaW5kZXhdLmNsZWFySW1hZ2UoKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCmluZGV4IDZiMmQ4
MWUzNWIwOGNmNzRmNGYzNjFhZWJjNzRmMzEyOWM3ZDliN2YuLjQzMzc4NzkwYjIyOTFlYTAwYjEy
MDhlMGE1Y2JjOTcyOWY3NzFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuCiAgKgpAQCAtMjcsNTIgKzI3LDE2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKLQot
I2lmIFVTRShDRykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBD
R0ltYWdlKiBDR0ltYWdlUmVmOwotI2VsaWYgVVNFKENBSVJPKQotI2luY2x1ZGUgIlJlZlB0ckNh
aXJvLmgiCi0jZWxpZiBVU0UoV0lOR0RJKQotI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgotI2Vu
ZGlmCi0KLSNpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSA8
ZDJkMS5oPgotI2luY2x1ZGUgPHdpbmNvZGVjLmg+Ci0jZW5kaWYKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZVB0ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9yOwotY2xhc3Mg
RmxvYXRSZWN0OwogY2xhc3MgSW50U2l6ZTsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLQotI2lm
IFVTRShDRykKLXR5cGVkZWYgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE5hdGl2ZUltYWdlUHRyOwot
I2VsaWYgVVNFKERJUkVDVDJEKQotdHlwZWRlZiBDT01QdHI8SUQyRDFCaXRtYXA+IE5hdGl2ZUlt
YWdlUHRyOwotI2VsaWYgVVNFKENBSVJPKQotdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBOYXRpdmVJbWFnZVB0cjsKLSNlbGlmIFVTRShXSU5HREkpCi10eXBlZGVmIFJlZlB0cjxTaGFy
ZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwotI2VuZGlmCiAKIFdFQkNPUkVfRVhQT1JUIEludFNp
emUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUlt
YWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7Ci0KLXZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9y
LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEludFJlY3QmIHNvdXJjZSk7Ci0K
IHZvaWQgY2xlYXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwot
Ci1jbGFzcyBOYXRpdmVJbWFnZUhhbmRsZSB7Ci1wdWJsaWM6Ci0gICAgTmF0aXZlSW1hZ2VQdHIg
aW1hZ2U7Ci19OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hdGl2ZUltYWdlUHRyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q3N2E4OThkMzk4NzM2NDExMTc0ZjE5
Zjc1MTQwNzFkMDdjOTU4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFVTRShDRykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Cit0eXBlZGVmIHN0cnVjdCBDR0lt
YWdlKiBDR0ltYWdlUmVmOworI2VsaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgIlJlZlB0ckNhaXJv
LmgiCisjZWxpZiBVU0UoV0lOR0RJKQorI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFVTRShDRykKK3R5cGVkZWYgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKERJUkVDVDJEKQordHlwZWRl
ZiBDT01QdHI8SUQyRDFCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKENBSVJPKQor
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJbWFnZVB0cjsKKyNlbGlmIFVT
RShXSU5HREkpCit0eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmNTQyZGZlYzg0
N2FiYzM3MWFhMmYxZThlNGI4ZGQ5ZmIxMTBlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3Vz
aW5nIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRl
eCBhMTA0NjU2Y2I1ZDVkZGVhMDMyMWRhYTQ0YTA0NDY1MTc1MDg4ZTRmLi4yYWI5Y2UzYmJhMjVl
YTU0ODU0NDhmMzRhYTc3N2FmZTA0ZTczNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCkBAIC0xMjMsMTYgKzEyMywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCiAgICAgQ2Fpcm86
OmRyYXdSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgYm9yZGVyVGhpY2tuZXNzLCBzdGF0
ZS5maWxsQ29sb3IsIHN0YXRlLnN0cm9rZVN0eWxlLCBzdGF0ZS5zdHJva2VDb2xvcik7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybURyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAg
ICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQVNTRVJUKGhh
c1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7CiAg
ICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgp
LCBkZXN0UmVjdCwgc3JjUmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5IH0sIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IGI2NWI0ZDY0NDA2YmViNzZjNDA5
ZDNlOGM2NTQ5NzVjYTlmN2ViNjMuLmZlOTA0OTUyN2FmZWNlZGIxN2I4MWY2MmM0NmU4ZjI3MWRi
ODI3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcApAQCAtMjc5LDEz
ICsyNzksMTkgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdl
UGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6
ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBncmFwaGljc0NvbnRleHQoKS5zdGF0ZSgpOwogICAgIENh
aXJvOjpkcmF3TmF0aXZlSW1hZ2UobV9wbGF0Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0
UmVjdCwgc3JjUmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5
IH0sIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAorYm9vbCBH
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmluZGV4
IGU1ZTIwNzQ4YzZkNzYyMGYxMGNmMjE1NjYyOGVmN2UwYmU2MDFjN2IuLjJjMWM3MDE1NGMxZmE0
NjYwNzJjZTcyMmZmNjQzNjZmNWFlOTc5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5oCkBAIC03NCw3ICs3NCw5IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
d0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUm
LCBJbWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBG
bG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZWEzN2M3
ODZlZjZkYjZlNWFmZWI5MTc3OThmYTUzMWJmOThhYzg0ZC4uYzI5MmRiNDJjYzBmOWYwZjljNDdj
NzhlZDY5YzJkODMzMWM5ODIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjgwLDE2ICsyODAs
MTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBt
X2RhdGEtPm1fdXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9y
bURyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFn
ZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogI2lmICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1v
bm90b25pY1RpbWU6Om5vdygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwCmluZGV4IDVjYzVjMjA3YjQ0YTQ4
MzViZTJlMDgwMjhhM2E3MTA5NWE1NWUxZTAuLjQwMGQ2ZWYwYTQ1NzdkNWQ3Y2M1YmQ5Y2I2NDZh
NWJhZGViZGFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL05hdGl2ZUltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCiAjaW5jbHVkZSAiU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oIgpAQCAtNjksNDAgKzY4LDYg
QEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1h
Z2VQdHImIGltYWdlKQogICAgIHJldHVybiBjbGFtcFRvQ29tcG9uZW50Qnl0ZXM8U1JHQkE+KHBp
eGVsWzBdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzFdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVs
WzJdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzNdKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
Ci17Ci0gICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBp
cyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgotICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6ZSA9
IG5hdGl2ZUltYWdlU2l6ZShpbWFnZSk7Ci0gICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51
c2VzV2lkdGhBc0hlaWdodCgpKQotICAgICAgICBzdWJzYW1wbGVkSW1hZ2VTaXplID0gc3Vic2Ft
cGxlZEltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotCi0gICAgLy8gc3JjUmVjdCBpcyBpbiB0
aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxlZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBt
YXAgaXQgdG8gdGhlIHN1YnNhbXBsZWQgaW1hZ2UuCi0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3Jj
UmVjdCA9IHNyY1JlY3Q7Ci0gICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkK
LSAgICAgICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9
LCBzcmNTaXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOwotCi0gICAg
Y29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RS
ZWN0LCBhZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOwotfQotCi12b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50
UmVjdCYgc291cmNlKQotewotICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpOwotICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKLQot
ICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RpbmF0aW9u
LngoKSwgZGVzdGluYXRpb24ueSgpLCBzb3VyY2Uud2lkdGgoKSwgc291cmNlLmhlaWdodCgpKSk7
Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7Ci0KLSAgICBDR0Zsb2F0
IGltYWdlSGVpZ2h0ID0gQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3Rv
cjsKLSAgICBDR0Zsb2F0IGltYWdlV2lkdGggPSBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkp
IC8gc2NhbGVGYWN0b3I7Ci0KLSAgICBDR0Zsb2F0IGRlc3RYID0gZGVzdGluYXRpb24ueCgpIC0g
c291cmNlLngoKTsKLSAgICBDR0Zsb2F0IGRlc3RZID0gLWltYWdlSGVpZ2h0IC0gZGVzdGluYXRp
b24ueSgpICsgc291cmNlLnkoKTsKLQotICAgIENHQ29udGV4dERyYXdJbWFnZShjZ0NvbnRleHQs
IENHUmVjdE1ha2UoZGVzdFgsIGRlc3RZLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCksIGltYWdl
LmdldCgpKTsKLQotICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKLX0KLQog
dm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFn
ZSkKIHsKICNpZiBDQUNIRV9TVUJJTUFHRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKaW5kZXggYTYz
ODM2OTIxZDhkZmNhMTY2MzhiZDg2YWE5MzNlZmE3ZTI2NGQ4MS4uYjM1ODkzYzU4MmU0MTdjMmJi
MzM1MmE1MTZlM2NiNTlmZTAyNDNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKQEAgLTYyLDgg
KzYyLDkgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIERyYXdJbWFnZSwK
ICAgICBEcmF3VGlsZWRJbWFnZSwKICAgICBEcmF3VGlsZWRTY2FsZWRJbWFnZSwKLSNpZiBVU0Uo
Q0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIERyYXdOYXRpdmVJbWFnZSwK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgRHJhd0ltYWdlQnVmZmVyLAogI2VuZGlmCiAg
ICAgRHJhd1BhdHRlcm4sCiAgICAgRHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMjNjYzA3ZThhZTQ0MmJkY2VhMGQzNjc0
YTVhODU1MWM2NWNmZGM4Ny4uZDQ2MTdkMzUxNmY0ZjNlNTFkNzVkNjQ0MzRhNmEzOTQ1N2EwMDAx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNw
cApAQCAtMzMsOSArMzMsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKIAotRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3Jk
ZXI6Ok9ic2VydmVyKiBvYnNlcnZlcikKK0RyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRp
YWxDVE0sIFJlY29yZGVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2NvbnRleHQoWyZd
KEdyYXBoaWNzQ29udGV4dCYgZGlzcGxheUxpc3RDb250ZXh0KSB7Ci0gICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlzdENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdy
YXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlh
bENUTSwgb2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZWNvcmRlcj4oZGlz
cGxheUxpc3RDb250ZXh0LCBtX2Rpc3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBG
bG9hdFJlY3QoeyB9LCBsb2dpY2FsU2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKTsKICAgICB9
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgK
aW5kZXggN2I2NzNmMzJhZDgxNWE1MDA4MWI3ZTdhYjEwODEzMTcxN2ZkZTU0My4uMjJlZDI1NmU4
MGFkMjkzYTA1MjA2OWI3NDMwODhhMTM1MWY0N2NjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBE
aXNwbGF5TGlzdCB7CiBjbGFzcyBEcmF3aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgRHJhd2luZ0NvbnRleHQoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFs
Q1RNID0geyB9LCBSZWNvcmRlcjo6T2JzZXJ2ZXIqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9F
WFBPUlQgRHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNID0geyB9LCBSZWNvcmRlcjo6RGVsZWdhdGUqID0g
bnVsbHB0cik7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBjb25zdF9jYXN0PERyYXdpbmdDb250ZXh0Jj4oKnRoaXMpLm1fY29udGV4dDsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIFJlY29yZGVyJiByZWNvcmRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmgKaW5kZXggNmZkOTEyZGZiOGZlMTFjMDk4ZGQ2MTI2YThjODc4
YWM2YmE3YWUwMi4uMzI1OTllMDYyZDdjZjU5ZDFkYzJlYWQwMWU3NjBkNjZlM2Y3ZWMzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29u
Y3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZWNvcmRlcjo6T2JzZXJ2ZXIg
eworY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT4gewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAKIHB1YmxpYzoKQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJs
aWM6CiAKICAgICBJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgZGF0
YUJhY2tlbmQsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAgICAgICAgOiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcihXVEZNb3ZlKGRhdGFCYWNrZW5kKSkKLSAgICAgICAgLCBtX2RyYXdpbmdDb250
ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgdGhpcykKKyAgICAgICAg
LCBtX2RyYXdpbmdDb250ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSkK
ICAgICB7CiAgICAgfQogCi0gICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplKQot
ICAgICAgICA6IG1fZHJhd2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RN
KHNpemUpLCB0aGlzKQorICAgIEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVj
b3JkZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCisgICAgICAgIDogbV9kcmF3aW5n
Q29udGV4dChzaXplLCBpbml0aWFsRHJhd2luZ0NvbnRleHRDVE0oc2l6ZSksIGRlbGVnYXRlKQog
ICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCAx
OGQ3MGNmYmQyNDA5ODU4Njg0NDlmYjM1OWE5Zjg1ZWJkZmQzNjM2Li5mMTVjNzcwZTFkYTRkNTFm
NWZhNDY2MWU3YzUwZDc0MDRmMzRhZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNs
dWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIFVT
RShDRykKQEAgLTEwNiw5ICsxMDUsMTEgQEAgc2l6ZV90IEl0ZW06OnNpemVJbkJ5dGVzKGNvbnN0
IEl0ZW0mIGl0ZW0pCiAgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1RpbGVkSW1h
Z2U+KGl0ZW0pKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZToKICAg
ICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oaXRlbSkp
OwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRp
dmVJbWFnZToKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+
KGl0ZW0pKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdJbWFnZUJ1
ZmZlcj4oaXRlbSkpOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAg
ICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pKTsKQEAgLTcw
MywzMiArNzA0LDIyIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBEcmF3VGlsZWRTY2FsZWRJbWFnZSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9
CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotRHJhd05hdGl2
ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
K0RyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlwZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZSkK
LSNpZiBVU0UoQ0cpCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3RvcmUgYW4gaW1hZ2UgZm9yIENh
aXJvLgogICAgICwgbV9pbWFnZShpbWFnZSkKLSNlbmRpZgogICAgICwgbV9pbWFnZVNpemUoaW1h
Z2VTaXplKQogICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCiAgICAgLCBtX3NyY1Jl
Y3Qoc3JjUmVjdCkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewotI2lmICFVU0UoQ0cpCi0g
ICAgVU5VU0VEX1BBUkFNKGltYWdlKTsKLSNlbmRpZgogfQogCiBEcmF3TmF0aXZlSW1hZ2U6On5E
cmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBs
eShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0jaWYgVVNFKENHKQotICAgIGNv
bnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9u
UmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7Ci0jZW5kaWYKKyAgICBBU1NFUlQobmF0aXZlSW1hZ2VQdHIoKSk7CisgICAgY29udGV4
dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2VQdHIoKSwgbV9pbWFnZVNpemUsIG1fZGVzdGlu
YXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0p
CkBAIC03MzksNiArNzMwLDMzIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0pCiAgICAgdHMuZHVtcFByb3Bl
cnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKICAgICByZXR1cm4gdHM7
CiB9CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFn
ZUJ1ZmZlcihSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorICAgIDogRHJhd2luZ0l0ZW0oSXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcikKKyAgICAsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RS
ZWN0KQorICAgICwgbV9zcmNSZWN0KHNyY1JlY3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykK
K3sKK30KKworRHJhd0ltYWdlQnVmZmVyOjp+RHJhd0ltYWdlQnVmZmVyKCkgPSBkZWZhdWx0Owor
Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sK
KyAgICAvLyBTaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVsZWdhdGUuCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBEcmF3SW1hZ2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMgPDwgc3RhdGlj
X2Nhc3Q8Y29uc3QgRHJhd2luZ0l0ZW0mPihpdGVtKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInJl
bW90ZS1yZXNvdXJjZS1pZGVudGlmaWVyIiwgaXRlbS5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIo
KSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtcmVjdCIsIGl0ZW0uc291cmNlKCkpOwor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiZGVzdC1yZWN0IiwgaXRlbS5kZXN0aW5hdGlvblJlY3QoKSk7
CisgICAgcmV0dXJuIHRzOworfQogI2VuZGlmCiAKIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJ
bWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCkBAIC0xNDY5LDggKzE0ODcsOSBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSXRlbVR5cGUmIHR5cGUp
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOiB0cyA8PCAiZHJhdy1pbWFnZSI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOiB0cyA8PCAiZHJhdy10aWxlZC1p
bWFnZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB0
cyA8PCAiZHJhdy10aWxlZC1zY2FsZWQtaW1hZ2UiOyBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVT
RShDQUlSTykKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHRzIDw8ICJkcmF3
LW5hdGl2ZS1pbWFnZSI7IGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWltYWdlLWJ1ZmZlciI7IGJy
ZWFrOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46IHRzIDw8ICJkcmF3
LXBhdHRlcm4iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDogdHMgPDwgImRy
YXctcmVjdCI7IGJyZWFrOwpAQCAtMTU3MSwxMCArMTU5MCwxMyBAQCBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtJiBpdGVtKQogICAgIGNhc2UgSXRlbVR5
cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3VGls
ZWRTY2FsZWRJbWFnZT4oaXRlbSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNF
KENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgdHMg
PDwgZG93bmNhc3Q8RHJhd05hdGl2ZUltYWdlPihpdGVtKTsKICAgICAgICAgYnJlYWs7CisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoK
KyAgICAgICAgdHMgPDwgZG93bmNhc3Q8RHJhd0ltYWdlQnVmZmVyPihpdGVtKTsKKyAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAgICAg
dHMgPDwgZG93bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKaW5kZXggY2I2ODRkMjNjZTc1YjRmYWI5ZWM0MTMxNjI3YWNkMzJkNjI0YWVkYi4u
M2I2NGQzYmEzNDA3NTQ2MDMxZWU5YmIwY2FhMzI3NjU5Zjk1NGQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEYXRh
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGF0dGVy
bi5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtMTQzMiwzMiAr
MTQzMyw1MiBAQCBPcHRpb25hbDxSZWY8RHJhd1RpbGVkU2NhbGVkSW1hZ2U+PiBEcmF3VGlsZWRT
Y2FsZWRJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZQogICAgIHJldHVybiBEcmF3VGlsZWRT
Y2FsZWRJbWFnZTo6Y3JlYXRlKCppbWFnZUhhbmRsZS0+aW1hZ2UsICpkZXN0aW5hdGlvbiwgKnNv
dXJjZSwgKnRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCAqaW1hZ2VQYWludGluZ09wdGlv
bnMpOwogfQogCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKIGNs
YXNzIERyYXdOYXRpdmVJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxEcmF3TmF0aXZlSW1hZ2U+IGNyZWF0ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBOYXRpdmVJbWFn
ZVR5cGUgPSBWYXJpYW50PE5hdGl2ZUltYWdlUHRyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+
OworCisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyPihtX2ltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIHJldHVybiBXVEY6OmdldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+KG1faW1h
Z2UpOworICAgIH0KKworICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlUHRyKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxOYXRpdmVJbWFnZVB0
cj4obV9pbWFnZSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IFdURjo6Z2V0PE5hdGl2ZUltYWdlUHRyPihtX2ltYWdlKTsKKyAgICB9CisjZWxzZQorICAgIHVz
aW5nIE5hdGl2ZUltYWdlVHlwZSA9IE5hdGl2ZUltYWdlUHRyOworCisgICAgTmF0aXZlSW1hZ2VQ
dHIgbmF0aXZlSW1hZ2VQdHIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlOyB9CisjZW5kaWYKKyAg
ICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlVHlw
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd05h
dGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7
CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd05hdGl2ZUltYWdlKCk7
CiAKKyAgICBGbG9hdFNpemUgaW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNpemU7
IH0KICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAg
ICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRp
b25SZWN0OyB9CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0
ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlw
ZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7
CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQm
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCi0jaWYgVVNF
KENHKQotICAgIE5hdGl2ZUltYWdlUHRyIG1faW1hZ2U7Ci0jZW5kaWYKKyAgICBOYXRpdmVJbWFn
ZVR5cGUgbV9pbWFnZTsKICAgICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0
IG1fZGVzdGluYXRpb25SZWN0OwogICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7CkBAIC0xNDY3LDEw
ICsxNDg4LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIERyYXdO
YXRpdmVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0jaWYgVVNFKENH
KQotICAgIE5hdGl2ZUltYWdlSGFuZGxlIGhhbmRsZSB7IG1faW1hZ2UgfTsKLSAgICBlbmNvZGVy
IDw8IGhhbmRsZTsKLSNlbmRpZgorICAgIGVuY29kZXIgPDwgbV9pbWFnZTsKICAgICBlbmNvZGVy
IDw8IG1faW1hZ2VTaXplOwogICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CiAgICAg
ZW5jb2RlciA8PCBtX3NyY1JlY3Q7CkBAIC0xNDgwLDEyICsxNDk4LDEwIEBAIHZvaWQgRHJhd05h
dGl2ZUltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+CiBPcHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gRHJhd05hdGl2ZUltYWdl
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSNpZiBVU0UoQ0cpCi0gICAgT3B0aW9uYWw8
TmF0aXZlSW1hZ2VIYW5kbGU+IGhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGhhbmRsZTsKLSAgICBp
ZiAoIWhhbmRsZSkKKyAgICBPcHRpb25hbDxOYXRpdmVJbWFnZVR5cGU+IGltYWdlOworICAgIGRl
Y29kZXIgPj4gaW1hZ2U7CisgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSNlbmRpZgogCiAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7CiAgICAg
ZGVjb2RlciA+PiBpbWFnZVNpemU7CkBAIC0xNTA3LDE0ICsxNTIzLDc1IEBAIE9wdGlvbmFsPFJl
ZjxEcmF3TmF0aXZlSW1hZ2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmICghb3B0aW9ucykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
I2lmIFVTRShDRykKLSAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZSA9IGhhbmRsZS0+aW1hZ2U7Ci0j
ZWxzZQotICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlID0gbnVsbHB0cjsKLSNlbmRpZgotICAgIHJl
dHVybiBEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgKmltYWdlU2l6ZSwgKmRlc3RpbmF0
aW9uUmVjdCwgKnNyY1JlY3QsICpvcHRpb25zKTsKKyAgICByZXR1cm4gRHJhd05hdGl2ZUltYWdl
OjpjcmVhdGUoKmltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb25SZWN0LCAqc3JjUmVjdCwg
Km9wdGlvbnMpOwogfQotI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitjbGFzcyBE
cmF3SW1hZ2VCdWZmZXIgOiBwdWJsaWMgRHJhd2luZ0l0ZW0geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RHJhd0ltYWdlQnVmZmVyPiBjcmVhdGUoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0ltYWdlQnVmZmVyKHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpOwor
ICAgIH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdJbWFnZUJ1ZmZlcigpOwor
CisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisgICAgRmxvYXRS
ZWN0IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQorICAgIEZsb2F0UmVjdCBk
ZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQorICAg
IEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPERy
YXdJbWFnZUJ1ZmZlcj4+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgV0VCQ09S
RV9FWFBPUlQgRHJhd0ltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJik7CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0IG92ZXJyaWRlOworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhj
b25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0
aW9uUmVjdDsgfQorCisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyOworICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKKyAgICBGbG9h
dFJlY3QgbV9zcmNSZWN0OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKK307
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlbW90ZVJlc291
cmNlSWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0OworICAgIGVu
Y29kZXIgPDwgbV9zcmNSZWN0OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UmVmPERyYXdJbWFnZUJ1ZmZlcj4+IERyYXdJ
bWFnZUJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgZGVj
b2RlciA+PiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxGbG9hdFJlY3Q+IGRlc3RpbmF0aW9uOworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb247Cisg
ICAgaWYgKCFkZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gc291cmNlOworICAgIGRlY29kZXIgPj4gc291cmNlOworICAg
IGlmICghc291cmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25z
OworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHJldHVybiBEcmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZSgqcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCAqZGVzdGluYXRpb24sICpzb3VyY2UsICpvcHRpb25zKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKIGNsYXNzIERyYXdQYXR0ZXJuIDogcHVibGljIERyYXdpbmdJdGVtIHsK
IHB1YmxpYzoKQEAgLTI5NzMsMTAgKzMwNTAsMTMgQEAgdm9pZCBJdGVtOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFn
ZToKICAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oKnRo
aXMpOwogICAgICAgICBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJ
UkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgZW5j
b2RlciA8PCBkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1
ZmZlcjoKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KCp0aGlz
KTsKKyAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVy
bjoKICAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3UGF0dGVybj4oKnRoaXMpOwpAQCAt
MzE2NCwxMSArMzI0NCwxNSBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0ZW06OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogICAgICAgICBpZiAoYXV0byBpdGVtID0gRHJhd1RpbGVkU2NhbGVkSW1h
Z2U6OmRlY29kZShkZWNvZGVyKSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNl
X2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBicmVhazsKLSNpZiBVU0UoQ0cp
IHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdO
YXRpdmVJbWFnZToKICAgICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdOYXRpdmVJbWFnZTo6ZGVj
b2RlKGRlY29kZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJ
dGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAgICAgIGlmIChh
dXRvIGl0ZW0gPSBEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOworICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAg
ICAgICBpZiAoYXV0byBpdGVtID0gRHJhd1BhdHRlcm46OmRlY29kZShkZWNvZGVyKSkKQEAgLTMz
MjYsOCArMzQxMCw5IEBAIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShE
cmF3R2x5cGhzKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJ
bWFnZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRJ
bWFnZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRT
Y2FsZWRJbWFnZSkKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykKIFNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3TmF0aXZlSW1hZ2UpCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJbWFn
ZUJ1ZmZlcikKICNlbmRpZgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVN
KERyYXdQYXR0ZXJuKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERy
YXdSZWN0KQpAQCAtMzM4OCw4ICszNDczLDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdUaWxlZEltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2UsCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVT
RShESVJFQ1QyRCkKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRp
dmVJbWFnZSwKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIsCiAjZW5kaWYKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXR0ZXJuLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6RHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKaW5kZXggZGQzNWVmMWEyOGE5MDcxZGFlZjlhMGE4ZDc3ZDk4NDAxZWEwODAxZC4uOTU1
NzVkMGY0MTRjMmVkZTVmMTkxMDIwMDZlMzZmNWQ4NDRhNDc3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1SZWNvcmRlcjo6UmVjb3JkZXIo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xp
cCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBPYnNlcnZlciogb2JzZXJ2ZXIp
CitSZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlz
dCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3Qg
RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RN
LCBEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQs
IGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlz
cGxheUxpc3QpCi0gICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9kZWxlZ2F0ZShk
ZWxlZ2F0ZSkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwg
IlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRlU3Rh
Y2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtNTIsMTUg
KzUyLDE1IEBAIFJlY29yZGVyOjp+UmVjb3JkZXIoKQogICAgIExPRyhEaXNwbGF5TGlzdHMsICJS
ZWNvcmRlZCBkaXNwbGF5IGxpc3Q6XG4lcyIsIG1fZGlzcGxheUxpc3QuZGVzY3JpcHRpb24oKS5k
YXRhKCkpOwogfQogCi12b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiBp
bWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkKK3ZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KQogewotICAgIGFwcGVuZEl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlB1dEltYWdlRGF0YTo6Y3JlYXRlKGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRl
c3RQb2ludCwgZGVzdEZvcm1hdCkpOworICAgIGFwcGVuZEl0ZW0oUHV0SW1hZ2VEYXRhOjpjcmVh
dGUoaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0
KSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mIGl0ZW0p
CiB7Ci0gICAgaWYgKG1fb2JzZXJ2ZXIpCi0gICAgICAgIG1fb2JzZXJ2ZXItPndpbGxBcHBlbmRJ
dGVtKGl0ZW0pOworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT53aWxs
QXBwZW5kSXRlbShpdGVtKTsKIAogICAgIGlmIChpdGVtLmlzRHJhd2luZ0l0ZW0oKQogI2lmIFVT
RShDRykKQEAgLTEzMiwxMiArMTMyLDI5IEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAgICAg
cmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwogfQogCi0jaWYgVVNFKENHKSB8fCBV
U0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLXZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBj
YWNoZWRJbWFnZSkKIHsKKyAgICBpZiAobV9kZWxlZ2F0ZSAmJiBjYWNoZWRJbWFnZSkgeworICAg
ICAgICBpZiAoYXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRl
bShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgKmNhY2hlZElt
YWdlKSkgeworICAgICAgICAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChzdGF0aWNfcmVm
ZXJlbmNlX2Nhc3Q8RHJhd2luZ0l0ZW0+KGl0ZW0ucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVF
eHRlbnQoRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpKTsKIH0KLSNlbmRpZgorCitib29sIFJlY29yZGVyOjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCit7CisgICAgaWYgKCFtX2RlbGVnYXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoYXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRl
bShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpIHsKKyAgICAgICAgYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8RHJhd2luZ0l0ZW0+KGl0
ZW0ucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
CmluZGV4IDllZTFkMzkzOGYyMzJmM2YxOGQ5NzhhZjcxODcwMWQ4YmU0NjMwNzIuLmUxNDBiZTEx
ZDdkNmE3NjY2Nzk2MTU2OWQxNDVjNGUzMzg1YzNlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaApAQCAtMjgsMTIgKzI4LDE0IEBACiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1hZ2Uu
aCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlw
bGljYXRpb24gOiB1aW50OF90OworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFBvaW50
OwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR2x5cGhCdWZmZXI7CkBAIC01Myw4ICs1NSw4IEBA
IGNsYXNzIFJlY29yZGVyIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEltcGwgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVyKTsK
IHB1YmxpYzoKLSAgICBjbGFzcyBPYnNlcnZlcjsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRl
cihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgT2JzZXJ2ZXIqID0gbnVsbHB0cik7CisgICAgY2xhc3MgRGVsZWdhdGU7CisgICAgV0VCQ09S
RV9FWFBPUlQgUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgRGlzcGxheUxpc3QmLCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIERlbGVnYXRlKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgflJlY29yZGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dElt
YWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJbWFnZURh
dGEmLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwpAQCAtNjMsOSArNjUsMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRl
bT4mJik7CiAKLSAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgY2xhc3MgRGVsZWdhdGUgewogICAg
IHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KKyAgICAgICAgdmlydHVh
bCB+RGVsZWdhdGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCBSZWZQdHI8SXRlbT4gY3JlYXRlRHJh
d0ltYWdlQnVmZmVySXRlbShJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVt
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJ
bWFnZSYpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxBcHBl
bmRJdGVtKGNvbnN0IEl0ZW0mKSB7IH07CiAgICAgfTsKIApAQCAtMTA0LDkgKzEwOCw5IEBAIHBy
aXZhdGU6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9p
bnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdl
RHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2Fs
ZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0jaWYgVVNFKENHKSB8fCBVU0Uo
Q0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKLSNlbmRpZgorCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0
IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgb3ZlcnJpZGU7CkBAIC0xODgsNyAr
MTkyLDcgQEAgcHJpdmF0ZToKICAgICBDb250ZXh0U3RhdGUmIGN1cnJlbnRTdGF0ZSgpOwogCiAg
ICAgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7
CisgICAgRGVsZWdhdGUqIG1fZGVsZWdhdGU7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAz
Mj4gbV9zdGF0ZVN0YWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAppbmRleCBmMzFkMzc1YjAyZGEwOTc5Mjg5YWNjMjAwZGQ4NjJmYWUxMzQxMDRi
Li40YjVlM2U0M2IwMzk2NGE1MWMyNzNlNWJlN2FlZGIwZGYxYWE5MWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKaW5kZXgg
MThiNGY4ZGU5NzE3MGNlNjQ0ZWI2NGJlM2VhYjg1N2YzYTc0MzJmNC4uNjI5OGNmMzYwNzNjN2Fl
NDRmNDNjNmI1NjQ0MjJiMzdiODZjZjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZl
clBpcGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAog
I2luY2x1ZGUgIkltYWdlQnVmZmVyUGlwZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiTmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmgiCiAjaW5jbHVk
ZSAiTmljb3NpYVBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmNwcAppbmRleCAzMDRmYWNiYWIxNTIxNzkxZGFhODZkYjE1MzE3
NTNlMzg2NzEwODRkLi43YzE0ZjNlN2VlMzM5Y2IzYTUxNGY5MDNjNDg3NGQxNzE4OWQ1MmYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29y
ZGVyLmNwcApAQCAtNTQ5LDcgKzU0OSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlv
blJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0CiAgICAg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0Nv
bnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1
bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRp
b25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgc3RydWN0IERy
YXdOYXRpdmVJbWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgSW1hZ2VQYWludGlu
Z09wdGlvbnMsIGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKICAgICAgICAgdmlydHVhbCB+
RHJhd05hdGl2ZUltYWdlKCkgPSBkZWZhdWx0OwpAQCAtNTcwLDYgKzU3MCwxMiBAQCB2b2lkIENh
aXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIGNvbnN0CiAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdl
PihSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5KSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpKTsKIH0KIAor
Ym9vbCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIHN0cnVjdCBEcmF3UGF0dGVybiBmaW5hbCA6
IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+
LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBGbG9hdFBv
aW50LCBJbWFnZVBhaW50aW5nT3B0aW9ucz4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9O
aWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCmluZGV4IDU3MmZmMjE2NmY2ZTk3M2E3NjNi
NjdjYjZiYjk2ZjQzZjI2YThkNTAuLjFkNDkwMTNjODljZjEwMTRlYzliMmI5MjA3ZGVjZWViOTEz
YzM4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlv
blJlY29yZGVyLmgKQEAgLTY3LDcgKzY3LDkgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVk
SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJ
bWFnZTo6VGlsZVJ1bGUsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICBi
b29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmLCBX
ZWJDb3JlOjpDYWNoZWRJbWFnZSopIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2Vi
Q29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHREaXJlY3QyRC5jcHAKaW5kZXggMzc0MDcxNzE1YmNiNzkxZDU4OWQ1MGQ5OWIyOWM2NmIwMTBi
NzA4MS4uNTdiYTg1OGZmOTljMmRiMjlmNWQ5MTQ5MmU2YWFjOGVkOTc0ZWM5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERp
cmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC0yMDcsMTYgKzIwNywxMSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIERpcmVjdDJEOjpyZXN0b3Jl
KCpwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0
aXZlSW1hZ2UoY29uc3QgQ09NUHRyPElEMkQxQml0bWFwPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFw
aGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNvbnN0IENPTVB0cjxJRDJEMUJp
dG1hcD4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2
ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7
CiAgICAgYXV0byYgc3RhdGUgPSB0aGlzLT5zdGF0ZSgpOwogICAgIERpcmVjdDJEOjpkcmF3TmF0
aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5nZXQoKSwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgc3RhdGUuYWxwaGEsIERpcmVjdDJEOjpTaGFkb3dTdGF0
ZShzdGF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UyNDdhN2FkNGNkMjk1MzhlNGVh
ZjQwYmQ4MDM2OTY4NjAwOGI4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
Ci0KLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVy
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgLCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkKLXsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IFdURk1vdmUoaGFuZGxlKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9p
ZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4
dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBt
X2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRk
MDVlYWVmNTQ5NDE2ZmRiNjQyNTk1MmUwYjRjZjNhYTIwNWVjMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5j
bHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJG
bHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNz
IEltYWdlRGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKLQotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZl
ZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwot
Ci1wcm90ZWN0ZWQ6Ci0gICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0KLSAg
ICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbi4KLSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKLSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllcik7Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIGJhY2tlbmQoKSB7
IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsgfQotCi1wcml2YXRlOgotICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk7Ci0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA3NzIxY2NlODQ1NjI2OWFlZjkwMjBiOGJkODk2
NWRkMzViNzIyZGRjLi4xZDFiNWVlOGZjZjA3ZWZjMzI5ZDc5ODFmM2IwYTFhYzJlZmJlNzFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTI4LDI5ICsyOCwyOSBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJD
b3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1Ymxp
YyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgewogICAgIHVzaW5nIEJhc2VDb25j
cmV0ZUltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlw
ZT47CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKKyAgICB1c2luZyBCYXNlQ29u
Y3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1
dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJv
eHk+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgICAgICByZXR1
cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5PihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB9CiAKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5k
VHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5k
VHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihX
VEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmll
cikKKyAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkpCiAgICAgewotICAgICAgICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+
bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29s
dXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2lj
YWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9u
U2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQog
CiAgICAgflJlbW90ZUltYWdlQnVmZmVyUHJveHkoKQpAQCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpm
bHVzaERyYXdpbmdDb250ZXh0OwotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpw
dXRJbWFnZURhdGE7Ci0KICAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgewpAQCAtNzMsMTggKzcwLDYg
QEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92
ZXJyaWRlCi0gICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsK
LSAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hD
b250ZXh0KGZsdXNoSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlk
ZQotICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFn
ZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTk4LDEyICs4
MywxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAot
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5hcHBseVJlc291cmNlSXRlbShpdGVtLCBjb250ZXh0KTsKICAgICB9CiAKICAg
ICB2b2lkIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0
ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1
dG8gcHJvY2VzcyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAg
ICAgIGF1dG8gcHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMTcsNiArMTAyLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBjb250ZXh0
LnBhaW50RnJhbWVGb3JNZWRpYSgqcGxheWVyLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgIH0K
KworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAKaW5kZXggNzUzYTVjOGJhOTdmZTcyMDgzMTA1OGU4NGM1Y2Q4M2I0YjE3
NTU3OS4uZDRkYmJhZDBkMTkyOTM1NjUyNjVkZTAzYzMxMTFjM2FlMzJlMzUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5TWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1
NCwxMSBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6On5SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBj
b25zdAoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Cit9
CisKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2
NCArNzEsNDYgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpCitib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0o
RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKLSAg
ICBhdXRvKiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmdldCgpOwotICAgIGlmICghZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250
YWlucyhpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dp
Y2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFw
LmFkZChpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChyZW5kZXJpbmdNb2Rl
ID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIGltYWdlQnVm
ZmVySWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ck1hcC5hZGQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuYXBwbHlSZXNv
dXJjZUl0ZW0oaXRlbSwgY29udGV4dCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVm
ZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZW1vdGVD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENyZWF0
ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUgdGhp
cyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5y
ZW1vdmUoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBm
b3VuZCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIEltYWdlQnVmZmVy
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVmZmVyLT5n
ZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Ci0gICAg
fQorICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNyZWF0ZUltYWdlQnVmZmVyKGxvZ2lj
YWxTaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpm
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5n
ZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJh
d2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIHNob3VsZERyYXdCYWRnaW5nQm9yZGVy
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFk
Z2luZ0JvcmRlciwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdl
dChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3
aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgZmx1c2hJZGVudGlmaWVyKTsKKyAgICBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRp
c3BsYXlMaXN0LCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi1HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgYXV0byBpbWFnZURhdGEgPSBtX3Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6
SW1hZ2VEYXRhUmVmZXJlbmNlKFdURk1vdmUoaW1hZ2VEYXRhKSkpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVOYXRpdmVJbWFn
ZShpbWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaAppbmRleCBhMDk1MmJhZmIzYzE1MzJkN2RjOTkwMDZlYjQwZjMxYmY5MWQyNTNiLi4wM2I5
ZGIzNTlhNDQzYzIwNWNmM2M1N2E4OTg3OTZiMzAzNTc3ZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oCkBAIC0yOCwyNCArMjgsMjQgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmgi
CisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIGNsYXNzIERpc3BsYXlMaXN0Owog
fQorY2xhc3MgRmxvYXRTaXplOworZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK2Vu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNTksOCArNTksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
IHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcjsgfQogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdDsKKyAgICBib29sIGFwcGx5UmVzb3VyY2VJdGVt
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7
CisKKyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgorICAgIHZvaWQgcmVtb3RlQ3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKQEAgLTc0LDE0ICs3NywxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0
byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
KTsKLSAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwot
ICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9p
ZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIElt
YWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVj
dCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1h
Z2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKLQotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAgPSBIYXNoTWFwPEltYWdlQnVmZmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eT4+OwotICAgIEltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOworICAgIHZv
aWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZv
aWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJh
d2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgSW1hZ2VCdWZmZXJGbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdl
YkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsK
KyAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIm
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJl
bW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeyAqdGhp
cyB9OwogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzk4YzhiNGVkYjU3ZjVhZDA4MmJhODFjMTAwOGIwZGNk
ZWZkZjE4YS4uMDE1NjY4ZjgyMzc3MDJiOGQ3MDVjYjBkN2NhNTQ5NjZhYmY3MTk1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMywxMSAr
MjMsMTIgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdl
QnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKQotICAgIHZvaWQgUmVsZWFzZUltYWdlQnVmZmVyKFdlYktpdDo6SW1hZ2VC
dWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1h
Z2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qg
ZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1p
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktpdDo6
SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdl
QnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgR2V0SW1hZ2VEYXRh
KGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFn
ZURhdGEpIFN5bmNocm9ub3VzCisgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpG
bG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCisgICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29t
bWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgYm9vbCBz
aG91bGREcmF3QmFkZ2luZ0JvcmRlciwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVj
dCBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5j
aHJvbm91cworICAgIHZvaWQgQ2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciBpbWFnZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKKyAgICB2b2lkIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MzA5ZWVhZjhkZDZmZTllY2RlNmJhY2Q5ZjQ5ZjA1MjhmMDlhODZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKKyAgICA6IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKK3sK
K30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdCYWRnaW5nQm9yZGVyKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25z
dCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdlcykgY29uc3QKK3sKKyAg
ICBpZiAoIW1fc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIpCisgICAgICAgIHJldHVybjsKKyAgICBX
ZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBib3JkZXJSZWN0LCBjb2xvciwgYmFk
Z2VzKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYg
KG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGltYWdl
OworCisgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxl
cmF0ZWQpCisgICAgICAgIGltYWdlID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAg
ICBpZiAoIWltYWdlIHx8IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5h
Y2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2UgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OworCisgICAgaWYgKGltYWdlKSB7CisgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFw
LmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitJbWFnZUJ1
ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0
IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fc2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIsIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyKTsKKyAgICBpZiAoYXV0byBpbWFnZSA9
IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KSB7CisgICAgICAgIGltYWdlLT5mbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAg
ICAgICAgcmV0dXJuIGltYWdlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSW1h
Z2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFu
ZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBib29s
IHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGltYWdlID0gZmx1c2hEcmF3aW5n
Q29udGV4dChkaXNwbGF5TGlzdCwgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAgaW1hZ2UtPmZsdXNoQ29udGV4dCgpOworICAgICAg
ICByZXR1cm4gaW1hZ2U7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
SW1hZ2VEYXRhPiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmdldEltYWdlRGF0YShBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikgY29uc3QKK3sK
KyAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmdldChyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gaW1hZ2UtPmdldEltYWdlRGF0
YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYgaW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFz
aE1hcC5hZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBpbWFnZSk7CisgICAgQVNTRVJUX1VO
VVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKK30KKworYm9vbCBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6
Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBhdXRv
JiBkcmF3SXRlbSA9IHN0YXRpY19jYXN0PGNvbnN0IERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2UmPihpdGVtKTsKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IGRyYXdJdGVt
LnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpOworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGltYWdlID0gbV9yZW1v
dGVOYXRpdmVJbWFnZUhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAg
aWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29udGV4dC5kcmF3TmF0
aXZlSW1hZ2UoaW1hZ2UsIGRyYXdJdGVtLmltYWdlU2l6ZSgpLCBkcmF3SXRlbS5kZXN0aW5hdGlv
blJlY3QoKSwgZHJhd0l0ZW0uc291cmNlKCksIGRyYXdJdGVtLm9wdGlvbnMoKSk7CisgICAgZHJh
d0JhZGdpbmdCb3JkZXIoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0KCksIFdlYkNv
cmU6OkNvbG9yOjpyZWQsIHsgeyBSZWN0Qm90dG9tUmlnaHQsIENvbG9yOjp3aGl0ZSwgIklNQUdF
Il9zIH0gfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5OjpkcmF3SW1hZ2VCdWZmZXJJdGVtKGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtJiBpdGVt
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgYXV0byYgZHJhd0l0ZW0g
PSBzdGF0aWNfY2FzdDxjb25zdCBEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyJj4oaXRlbSk7
CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBkcmF3SXRlbS5yZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoIXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VCdWZm
ZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIGlmICghaW1hZ2Up
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGltYWdlLT5kcmF3KGNvbnRleHQsIGRyYXdJ
dGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9u
cygpKTsKKyAgICBkcmF3QmFkZ2luZ0JvcmRlcihjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlv
blJlY3QoKSwgV2ViQ29yZTo6Q29sb3I6OmJsdWUsIHsgeyBSZWN0Qm90dG9tUmlnaHQsIENvbG9y
Ojp3aGl0ZSwgIkNBTlZBUyJfcyB9IH0pOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0oY29uc3QgRGlzcGxheUxp
c3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBp
ZiAoaXRlbS50eXBlKCkgPT0gRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIp
CisgICAgICAgIHJldHVybiBkcmF3SW1hZ2VCdWZmZXJJdGVtKGl0ZW0sIGNvbnRleHQpOworICAg
IGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFn
ZSkKKyAgICAgICAgcmV0dXJuIGRyYXdOYXRpdmVJbWFnZUl0ZW0oaXRlbSwgY29udGV4dCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVs
ZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLnJlbW92
ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1f
cmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KQorICAgICAgICByZXR1cm47CisgICAgLy8gQ2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNo
b3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NzU4OWQ3
M2Y5MGU1NGE2ZDBiZjkxZDI4ZWJhYmFjMjM1MjliZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
QEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsK
K2NsYXNzIERpc3BsYXlMaXN0OworY2xhc3MgSXRlbTsKK30KK3N0cnVjdCBCYWRnZTsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsK
KworY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7CisKKyAgICB2
b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OkltYWdlQnVm
ZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0
YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9y
bWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpIGNvbnN0OworCisgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKworICAgIGJvb2wgYXBwbHlSZXNvdXJjZUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIHZv
aWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFz
aE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+OworICAgIHVzaW5nIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1h
cCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpO
YXRpdmVJbWFnZVB0cj47CisKKyAgICB2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+JikgY29uc3Q7
CisgICAgYm9vbCBkcmF3SW1hZ2VCdWZmZXJJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgYm9vbCBkcmF3
TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXA7CisgICAgUmVtb3RlTmF0aXZlSW1hZ2VIYXNo
TWFwIG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CisgICAgYm9vbCBtX3Nob3Vs
ZERyYXdCYWRnaW5nQm9yZGVyIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNDAx
N2EyYThmMjJjZWNlY2MyMTUxYTMwYTMyNzhmZjkwNmVhZjMyYS4uNjc0OGQxZjVkODAwZDk1NzRm
MjM4MDc1YjE4OTBiNGU0YWNlZTkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJp
bmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDk3
N2Y5M2ZmNWMzYzJiODE3ODQ2YzlhOWE3NTUxNzg5YzhlZmUwNWMuLjYxYjg5MGRjNzg2N2MzM2Iw
MDVmMjJlOTNiYjFhZjQ3ZGRkM2IxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rl
ci5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJH
UFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgi
CiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZhY2QyZjdhZmI1
YTM5MmVlMjA5NjdhNzZmZDQxZTE0ZGZiMTUwYjkuLjE1OGM0ZWY5N2MyZTk5Yjg3NjY3OTM2ZWI0
MGE1ZTE4NzhkMThiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMjE3LDExICsyMTcsMTMgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRf
ZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXInLAorICAgICAgICAnV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VQdHInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeScsCiAgICAgICAgICdX
ZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXInLAorICAg
ICAgICAnV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OlJlbmRlcmluZ01vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInLApA
QCAtMjQwLDcgKzI0Miw2IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xh
cmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Okdlb2xvY2F0aW9uSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZScsCiAgICAgICAgICdXZWJLaXQ6Oklt
YWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAg
ICAgICAgJ1dlYktpdDo6TGVnYWN5Q3VzdG9tUHJvdG9jb2xJRCcsCiAgICAgICAgICdXZWJLaXQ6
OkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZk
NTRlZWJiODkwMzY0NDQxLi5hMDc3NTMwOTU3YmE4ZDQ3ZDU0MjliYWRkNjY3NTc1NTRkMDYyMTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
QEAgLTExMDAsNyArMTEwMCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZU5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29k
ZXIsIE5hdGl2ZUltYWdlUHRyIGltYWdlKQorc3RhdGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2Uo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewogICAgIGF1
dG8gaW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKGltYWdlKTsKICAgICBhdXRvIGJpdG1hcCA9
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGltYWdlU2l6ZSwgeyB9KTsKQEAgLTEx
NDMsNyArMTE0Myw3IEBAIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVOYXRp
dmVJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRpdmVJbWFnZVB0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5j
b2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCitzdGF0aWMgdm9pZCBlbmNvZGVPcHRpb25hbE5h
dGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkK
IHsKICAgICBib29sIGhhc0ltYWdlID0gISFpbWFnZTsKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdl
OwpAQCAtMTE2NiwxNCArMTE2NiwxNCBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRpdgogICAgIHJl
dHVybiBkZWNvZGVOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZSk7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBOYXRpdmVJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8TmF0
aXZlSW1hZ2VQdHI+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQ
dHImIGltYWdlKQogewotICAgIGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1h
Z2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOworICAgIGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZW5j
b2RlciwgaW1hZ2UpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxl
KQorYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlUHRyPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKIHsKLSAgICByZXR1cm4gZGVjb2RlT3B0aW9u
YWxOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZSk7CisgICAgcmV0dXJuIGRl
Y29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOwogfQogCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxX
ZWJDb3JlOjpGb250PiYgZm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggMDVkMDM1NTRiOWVjYTlhMDQxYzM2OGVmNDUzODgyNDQzNGNlNmUy
My4uOWYzYjEwNjY5MzMzYmEzMDE1Mjk3ODNjOWUxZTkxZWFiYTRjYWI4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRN
b2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2VQdHIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtM
b2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CkBAIC0xMDUsNyArMTA2
LDYgQEAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiBjbGFzcyBMYXlvdXRTaXplOwogY2xhc3Mg
TGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1pbmdGdW5jdGlvbjsKLWNsYXNzIE5hdGl2ZUlt
YWdlSGFuZGxlOwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURh
dGE7CiBjbGFzcyBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwpAQCAtNDE2LDkgKzQx
Niw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5k
bGU+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VIYW5kbGUmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpO
YXRpdmVJbWFnZUhhbmRsZSYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpOYXRpdmVJbWFnZVB0cj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJp
dG1hcENHLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNw
cAppbmRleCA3MzBkYTY0OGYyYjJmZTllNzg0ZmQwNDA1MmUxOTBmMGQwYmYyMWFkLi45NTlkYTgz
ZDVmNjk4OGIyMTE1ODhkYTdkZGI0ZmYxODNkY2U3ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCkBAIC0xMDYsMTIgKzEwNiwyNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dCgpCiAKIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3Qg
SW50UmVjdCYgc291cmNlKQogewotICAgIGRyYXdOYXRpdmVJbWFnZShtYWtlQ0dJbWFnZUNvcHko
KSwgY29udGV4dCwgMSwgZGVzdGluYXRpb24sIHNvdXJjZSk7CisgICAgcGFpbnQoY29udGV4dCwg
MSwgZGVzdGluYXRpb24sIHNvdXJjZSk7CiB9CiAKIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWlu
dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNjYWxlRmFjdG9yLCBj
b25zdCBJbnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEludFJlY3QmIHNvdXJjZSkKIHsKLSAg
ICBkcmF3TmF0aXZlSW1hZ2UobWFrZUNHSW1hZ2VDb3B5KCksIGNvbnRleHQsIHNjYWxlRmFjdG9y
LCBkZXN0aW5hdGlvbiwgc291cmNlKTsKKyAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gY29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4
dCk7CisKKyAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0
aW5hdGlvbi54KCksIGRlc3RpbmF0aW9uLnkoKSwgc291cmNlLndpZHRoKCksIHNvdXJjZS5oZWln
aHQoKSkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEpOworCisgICAg
YXV0byBpbWFnZSA9IG1ha2VDR0ltYWdlQ29weSgpOworICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQg
PSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSAvIHNjYWxlRmFjdG9yOworICAgIENHRmxv
YXQgaW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3Rv
cjsKKworICAgIENHRmxvYXQgZGVzdFggPSBkZXN0aW5hdGlvbi54KCkgLSBzb3VyY2UueCgpOwor
ICAgIENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VIZWlnaHQgLSBkZXN0aW5hdGlvbi55KCkgKyBzb3Vy
Y2UueSgpOworCisgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNnQ29udGV4dCwgQ0dSZWN0TWFrZShk
ZXN0WCwgZGVzdFksIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KSwgaW1hZ2UuZ2V0KCkpOworCisg
ICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOwogfQogCiBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJbWFnZUNvcHkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggZGFmNWZiNzMxM2JkZDk4MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uOGUzYjJhZmZjYTAw
MzRiMzI2ZGE5YjIxOThjODU3OTc0ZTA0OTE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw4ICsyNCw4
IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCi1HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKQEAgLTU1Miw4ICs1NTIsOCBAQCBXZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIAogV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCi1XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9B
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDk4NDM0Y2JhYzBjMmY2MWEyZDZlMjgwNzE2ZWNkNzI4ODI4ODky
ODIuLjJhOGM0MmE1YWJlNDE1YmY5ZDExYzdiMGIzZWY3MTg4MDJiMjBjMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzg4OSw3ICsz
ODg5LDYgQEAKIAkJNTUwNjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTA2NDBBMzI0MDcxQTYx
MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTUw
NjQwQTUyNDA3MUNDMDAwQUFFMDQ1IC8qIEltYWdlQnVmZmVySWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0NDI0MDhB
QkIzMDBERTREMkYgLyogSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQxNzgsMTAgKzQxNzcsNyBAQAogCQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyog
V0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRo
ID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzFGQjgxMEEyMjYwNjI3QTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0
ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0
Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1h
Z2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMEMyNDA5N0Ew
MjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBEMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgw
MTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMjI0MDk5MDZF
MDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTkxLDYgKzQxODcsMTAgQEAKIAkJNzI3QTdGNDky
NDA4QUVFNjAwNEQyOTMxIC8qIFJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkVG
MTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb2xvclBpY2tl
ck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzIyNTMxNEZFRjAw
NDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzNTI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVz
b3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzYyNTMxNzNDQzAwNDIyMDk4
IC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VD
YWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJDNDE4N0NDRjlGMDBD
MzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUg
LyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTgwNzYsMTcgKzgwNzYsMTcgQEAKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0
RDI5MzEgLyogY29jb2EgKi8sCiAJCQkJNzI3QTdGMzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAogCQkJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAv
KiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovLAotCQkJCTU1MDY0MEE1MjQwNzFDQzAw
MEFBRTA0NSAvKiBJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCAqLywKIAkJCQk3MjdBN0YzNzI0MDc4
OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLywK
IAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3Jt
SW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggKi8sCiAJCQkJNzIyNzgwMEIyNDA4QkQ3RDAw
N0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQk3MjdBN0Y0OTI0
MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKLQkJCQk3MjI3ODAwQzI0
MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8s
CiAJCQkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuaCAqLywKIAkJCQk1NTA2NDA5RDI0MDcxNjA5MDBBQUUwNDUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAgKi8sCiAJCQkJNTUwNjQwOUUyNDA3MTYwOTAwQUFFMDQ1IC8qIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaCAqLywKIAkJCQk1NTA2NDBBMDI0MDcxOUUxMDBBQUUwNDUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlEMDUzNTI1
MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8sCisJCQkJNzI5RDA1
MzYyNTMxNzNDQzAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLywKIAkJCQk1NTA2
NDA5RjI0MDcxOTZBMDBBQUUwNDUgLyogUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CkBAIC04MDk2LDEyICs4MDk2LDEyIEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERF
NEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLywKLQkJCQk3MjI3ODAx
MTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
LmNwcCAqLywKLQkJCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8sCiAJCQkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJG
IC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLywKIAkJCQk1NTA2NDBBMjI0MDcxQTYxMDBB
QUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCAqLywKIAkJCQk1NTA2NDBB
MzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggKi8sCiAJ
CQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLywKKwkJCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTgg
LyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGdyYXBo
aWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTFiYzlhZTg3ZGM4ZDcyNDI4YTBiODA5
Y2FkMGQ4MGE0Y2QxY2I5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlIDx3dGYv
T2JqZWN0SWRlbnRpZmllci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBJbWFnZUJ1
ZmZlcklkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5nIEltYWdlQnVmZmVySWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8SW1hZ2VCdWZmZXJJZGVudGlmaWVyVHlwZT47Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCmluZGV4IGU4NDkxNjY0NTE0NTk2Mjg3ZWYyYzc4ZjkwNzZlMWQ0MzgyMTkxZjIuLjBjNzM4
MGZkNWQ3ZjE3MmM5NzE2ZjJmMzc4OTE2ZTg2MDgyNzc4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgK
QEAgLTMxLDE2ICszMSwxOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCYWNrZW5kVHlwZT4KLWNsYXNz
IFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1
ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
IHsKK2NsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyLCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0
ZSB7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5
TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1h
Z2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7CisgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1h
Z2VCdWZmZXI6OmNvbnRleHQ7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXpl
LCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQpAQCAtNTMsMTQgKzU1LDIwIEBAIHB1YmxpYzoK
IAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCiAgICAgeworICAgICAgICBpZiAoIW1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3
aW5nQ29udGV4dCgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VJ
bWFnZUJ1ZmZlcigqdGhpcyk7CiAgICAgfQogCisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisKIHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpCi0gICAgICAgIDogQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXIoc2l6ZSkKLSAgICAg
ICAgLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKHNpemUsIHJlbmRlcmluZ01vZGUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAg
ICAgICAgOiBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcihzaXplLCB0aGlzKQorICAgICAgICAs
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKSkKICAgICB7CisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVDcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJp
bmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOwogICAgIH0KIAogICAgIHZvaWQg
Y3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBo
YW5kbGUpIG92ZXJyaWRlCkBAIC02OSwyMiArNzcsNTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBt
X2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOwogICAgIH0KICAg
ICAKLSAgICBib29sIGlzQmFja2VuZENyZWF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2JhY2tlbmQuZ2V0KCk7IH0KLQogICAgIEJhY2tlbmRUeXBlKiBlbnN1cmVCYWNrZW5kQ3JlYXRl
ZCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAoIW1fYmFja2VuZCkKLSAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXImPigqdGhpcykuUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwor
ICAgICAgICBpZiAoIW1fYmFja2VuZCAmJiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAg
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmQoKTsKICAgICAgICAgcmV0dXJuIG1fYmFja2VuZC5nZXQoKTsKICAgICB9CiAKKyAg
ICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBmbHVzaERyYXdp
bmdDb250ZXh0KCk7CisgICAgICAgIG1fYmFja2VuZC0+Zmx1c2hDb250ZXh0KCk7CisgICAgfQor
CisgICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOworICAg
ICAgICBpZiAoIWRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpIHx8ICFtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC0+ZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCgpLCB7IHsgfSwgbV9iYWNrZW5kLT5sb2dp
Y2FsU2l6ZSgpIH0sIFdlYkNvcmU6OkNvbG9yOjpkYXJrR3JlZW4sIHsgeyBXZWJDb3JlOjpSZWN0
VG9wUmlnaHQsIFdlYkNvcmU6OkNvbG9yOjp3aGl0ZSwgIkdQVSJfcyB9IH0pOworICAgICAgICBt
X3NlbnRGbHVzaElkZW50aWZpZXIgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUZs
dXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5yZWxlYXNlUmVtb3RlQ2xpZW50KG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKKyAgICB9CisKKyAgICB2b2lkIGZsdXNoRHJh
d2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRlbUNv
dW50KCkgfHwgIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVGbHVzaERyYXdpbmdDb250
ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgfQorICAg
IAogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpB
bHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc3JjUmVjdCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmICghbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICAgICAg
YXV0byYgZGlzcGxheUxpc3QgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcykt
Pm1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxSZW1v
dGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpm
bHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAgYXV0byByZXN1bHQgPSBj
b25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOworICAgICAg
ICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpIHsKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8
UmVtb3RlSW1hZ2VCdWZmZXIqPih0aGlzKS0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlz
dCk7CisgICAgICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOworICAgICAgICB9CisKICAgICAg
ICAgLy8gZ2V0SW1hZ2VEYXRhIGlzIHN5bmNocm9ub3VzLCB3aGljaCBtZWFucyB3ZSd2ZSBhbHJl
YWR5IHJlY2VpdmVkIHRoZSBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCBtZXNzYWdlLgot
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5yZW1vdGVHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX3JlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgdm9pZCBwdXRJbWFnZURhdGEoV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VEYXRhJiBpbWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0sIFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRp
b246OlByZW11bHRpcGxpZWQpIG92ZXJyaWRlCkBAIC05NSwyNiArMTMyLDMyIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLnB1dEltYWdlRGF0YShpbnB1
dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogICAg
IH0KIAotICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6
SW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgZmx1c2hEcmF3
aW5nQ29udGV4dCgpOwotICAgICAgICBtX2JhY2tlbmQtPmZsdXNoQ29udGV4dCgpOworICAgICAg
ICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5jcmVhdGVEcmF3
SW1hZ2VCdWZmZXJJdGVtKGltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgbV9yZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dCgpIG92ZXJyaWRlCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBj
cmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBp
bWFnZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIFdlYkNvcmU6OkNh
Y2hlZEltYWdlJiBjYWNoZWRJbWFnZSkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGF1dG8mIGRp
c3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBpZiAo
ZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpCi0gICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChkaXNwbGF5TGlz
dCk7CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQt
PmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdlLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CiAgICAgfQotICAgIAorCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbSYpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBjb25zdGV4cHIgc2l6
ZV90IERpc3BsYXlMaXN0QmF0Y2hTaXplID0gNTEyOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlz
dCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgaWYgKGRpc3BsYXlM
aXN0Lml0ZW1Db3VudCgpID49IERpc3BsYXlMaXN0QmF0Y2hTaXplKQotICAgICAgICAgICAgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5
TGlzdCk7CisgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSA8IERpc3BsYXlMaXN0
QmF0Y2hTaXplIHx8ICFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICBk
aXNwbGF5TGlzdC5jbGVhcigpOwogICAgIH0KKworICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5n
QmFja2VuZD4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOworICAgIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3MTUwYzdiMDc5M2FmZTlh
YzVjODNhOWFjNzQ2YmEzMThlNTFiOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQot
Ci0jaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oIgotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBy
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKG1h
a2VXZWFrUHRyKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKQotewotICAgIC8vIENyZWF0ZSB0aGUg
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZm
ZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX2lt
YWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXI6On5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCkKLXsKLSAgICAvLyBSZWxlYXNl
IHRoZSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5LgotICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kKQotICAgICAgICByZXR1cm47Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbGVhc2VJbWFnZUJ1
ZmZlcihtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLVJlZlB0cjxJbWFnZURhdGE+IFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRp
cGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKLXsK
LSAgICBJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGFSZWZlcmVuY2U7Ci0gICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OkdldEltYWdlRGF0YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOwotICAgIHJldHVy
biBpbWFnZURhdGFSZWZlcmVuY2UuYnVmZmVyKCk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpCi17Ci0g
ICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCAmJiAhaXNCYWNrZW5kQ3JlYXRlZCgpKQot
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmQoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3
YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKQotewotICAgIGlmIChtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQgJiYgaXNQZW5kaW5nRmx1c2goKSkKLSAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsK
LX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdD
b250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCi17
Ci0gICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3Bs
YXlMaXN0LCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIo
KTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdp
bmdDb250ZXh0QW5kV2FpdENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qm
IGRpc3BsYXlMaXN0KQotewotICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9zZW50Rmx1c2hJZGVudGlmaWVyID0gSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlm
aWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIoKTsK
LSAgICB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKLX0KLQotdm9pZCBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQotewotICAgIG1fcmVjZWl2ZWRG
bHVzaElkZW50aWZpZXIgPSBmbHVzaElkZW50aWZpZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaAppbmRleCA2MjA0MThkNzhjMjdmMjhjNTc0OTAyYzJl
MWJhOWEyMzcxNzUxN2I5Li42MWRkNThjZTUyZmRjZWQ0ZjE4NGFmMGVhNjc5N2IyNjYyNzVhMjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaApAQCAtMjks
NTAgKzI5LDMxIEBACiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVm
ZmVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEZsb2F0U2l6ZTsKIGNsYXNzIEltYWdlRGF0YTsKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLQog
Y2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCB+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpOwotCi0gICAgSW1hZ2VCdWZm
ZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1h
Z2VCdWZmZXJJZGVudGlmaWVyOyB9Ci0KICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4g
U2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4uCiAgICAgdmlydHVhbCB2b2lk
IGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKSA9IDA7CiAKLSAg
ICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7Ci0K
LXByb3RlY3RlZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOwot
Ci0gICAgdmlydHVhbCBib29sIGlzQmFja2VuZENyZWF0ZWQoKSBjb25zdCA9IDA7CiAgICAgYm9v
bCBpc1BlbmRpbmdGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VudEZsdXNoSWRlbnRpZmllciAh
PSBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOyB9CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1h
Z2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRw
dXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0OwotCi0gICAg
dm9pZCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7Ci0gICAgdm9pZCB3YWl0Rm9y
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKKyAgICB2b2lkIGNvbW1pdEZsdXNoQ29u
dGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCisgICAgewor
ICAgICAgICBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyID0gZmx1c2hJZGVudGlmaWVyOworICAg
IH0KIAotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkubWVzc2FnZXMuaW4uCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOwotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dEFuZFdhaXRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7Ci0K
LXByaXZhdGU6Ci0gICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ7Ci0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyIHsgSW1hZ2VCdWZmZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07Citwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpID0gZGVm
YXVsdDsKIAogICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRlbnRp
ZmllcjsKICAgICBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggOTk1MzQxNzg3ZWRh
MjBhNTU0ZTRkNjdiYTUzZGM2OThhNTM3MGNjMC4uMDRiNTI5Njg2ZWM0M2EzM2Y1ZDA0NjA3M2Fi
Yjc4NzBjMDg0YjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0zOSwx
MiArMzksMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y3JlYXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIHsKLSAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZD4obmV3IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQocGFnZSkpOwogfQog
Ci1SZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkKK1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYgcGFnZSkK
KyAgICA6IG1fcmVtb3RlUmVzb3VyY2VDYWNoZSgqdGhpcywgcGFnZSkKIHsKICAgICAvLyBSZWdp
c3RlciBpdHNlbGYgYXMgYSBNZXNzYWdlUmVjZWl2ZXIgaW4gdGhlIEdQVVByb2Nlc3NDb25uZWN0
aW9uLgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwJiBtZXNzYWdlUmVjZWl2ZXJNYXAgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3Nh
Z2VSZWNlaXZlck1hcCgpOwpAQCAtODYsNDAgKzg3LDgyIEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCkKICAgICByZXR1
cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0PihtX3Jl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJy
dXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBWZWN0
b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmRyYXdCYWRn
aW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJlY3QsIGNvbG9yLCBiYWRnZXMpOworfQorCiBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRB
Y2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkK
IHsKLSAgICBpZiAoc2hvdWxkQWNjZWxlcmF0ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsK
LSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGltYWdlQnVmZmVyLT5pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVy
OwotICAgICAgICB9Ci0gICAgfQorICAgIHJldHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3Jl
YXRlSW1hZ2VCdWZmZXIoc2l6ZSwgc2hvdWxkQWNjZWxlcmF0ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZS5yZWxlYXNlSW1hZ2VCdWZmZXIoaW1hZ2UpOworfQorCitSZWZQdHI8RGlzcGxheUxpc3Q6Okl0
ZW0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oSW1h
Z2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4g
bV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oaW1hZ2UsIGRl
c3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKwor
UmVmUHRyPERpc3BsYXlMaXN0OjpJdGVtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVE
cmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hl
ZEltYWdlJiBjYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jcmVhdGVE
cmF3TmF0aXZlSW1hZ2VJdGVtKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBv
cHRpb25zLCBjYWNoZWRJbWFnZSwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZVJlc291
cmNlQ2FjaGUucmVsZWFzZVJlbW90ZUNsaWVudChyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30K
KworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90
ZUNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSkKK3sKKyAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyID0gUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6
ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICByZXR1
cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCitSZWZQdHI8SW1hZ2VEYXRhPiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgSVBDOjpJbWFnZURh
dGFSZWZlcmVuY2UgaW1hZ2VEYXRhUmVmZXJlbmNlOworICAgIHNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNy
Y1JlY3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgMV9zKTsKKyAgICByZXR1cm4gaW1hZ2VEYXRh
UmVmZXJlbmNlLmJ1ZmZlcigpOworfQogCi0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpS
ZW1vdGVVbmFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzKSkg
ewotICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGltYWdlQnVmZmVy
LT5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOwotICAgICAgICBy
ZXR1cm4gaW1hZ2VCdWZmZXI7Ci0gICAgfQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZS5zaG91bGREcmF3QmFkZ2luZ0JvcmRlcigpLCByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKK30KIAotICAgIHJldHVybiBu
dWxscHRyOworSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHNl
bnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNo
SW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLnNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCksIHNlbnRGbHVzaElkZW50aWZp
ZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOworICAgIHJldHVybiBzZW50Rmx1c2hJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlQ2FjaGVOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCit7CisgICAgUmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IFJlbW90ZVJlc291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OkNhY2hlTmF0aXZlSW1hZ2UoaW1hZ2UsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXI7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUlt
YWdlQnVmZmVyKEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCit2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IC8vIENyZWF0ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBi
ZWZvcmUgdGhpcyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5yZW1vdmUoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VE
KGZvdW5kLCBmb3VuZCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwg
SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXIt
PmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hl
LmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpLCByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
ZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdl
QnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Y29tbWl0Rmx1c2hDb250ZXh0KGZsdXNo
SWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmlu
ZGV4IGY0OTYxNThlN2Q0MGVlYjA1YWMzOTQzNGFmMjQ2MzNiYWJjN2YwZWYuLmNhNjc1MmViNzA0
MjgwYTQ4MGY1ZWQzNjZkYjFjNWI5M2ZiMjU4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCkBAIC0yOSwzMSArMjksMzggQEAKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OworY2xh
c3MgSXRlbTsKK30KK2NsYXNzIEZsb2F0U2l6ZTsKK3N0cnVjdCBCYWRnZTsKK2VudW0gY2xhc3Mg
Q29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiB1aW50OF90
OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZTsKKwogY2xhc3MgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZAogICAgIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgogICAg
ICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgICwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gY3JlYXRlKFdlYlBhZ2UmKTsK
IAogICAgIH5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7IH0KLQogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
ci4KICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBvdmVycmlkZTsKQEAgLTYxLDIxICs2OCwzMyBAQCBwdWJsaWM6CiAgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
LCBXZWJDb3JlOjpTaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UpOwotICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVy
SWRlbnRpZmllcik7Ci0KICAgICBib29sIHdhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQo
KTsKICAgICBib29sIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwogCisg
ICAgLy8gUmVzb3VjZSBjYWNoZS4KKyAgICB2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+Jik7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpTaG91bGRBY2NlbGVyYXRlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpOworICAgIHZvaWQgcmVs
ZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJik7CisgICAgUmVmUHRyPFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNv
bnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMmLCBXZWJDb3JlOjpDYWNoZWRJbWFnZSYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgorICAgIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZURhdGE+IHJlbW90ZUdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZUZsdXNoRHJhd2lu
Z0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciByZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNhY2hlTmF0
aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImKTsKKyAgICB2b2lkIHJlbW90
ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OworCiBwcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKKyAgICBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2UmKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2Vp
dmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIGNvbW1pdElt
YWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1
ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVy
Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0g
ICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8SW1hZ2VCdWZm
ZXJJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47Ci0gICAgSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7
CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciB7IFJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggMTJhN2JmOGRhNGM4MjU3
MGJjYTM2YTEzNWZkNzFhZjI1ODhiNjRkNS4uMmMwZjdlOGExMjAzZjI2ODY1MmEwMGZjMWY3YjE3
ZGE1OTlkMmFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgpAQCAtMjMsOCArMjMsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdl
YkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKLSAgICB2b2lkIENvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KFdlYktpdDo6SW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdlQnVm
ZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVJbWFn
ZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJ
bnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoV2ViS2l0OjpJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMDliYTg2MGU2Y2NhOWQ5YzM3MmMzNDRlYThhYzdhMzM5ZjMzZWRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcApAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dEV4dHJhcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlUmVzb3VyY2VDYWNoZTo6
UmVtb3RlUmVzb3VyY2VDYWNoZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLCBXZWJQYWdlJiBwYWdlKQorICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9v
bCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpzaG91bGREcmF3QmFkZ2luZ0JvcmRlcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNob3dEZWJ1Z0JvcmRl
cnMoKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpkcmF3QmFkZ2luZ0JvcmRlcihH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAgaWYg
KCFzaG91bGREcmF3QmFkZ2luZ0JvcmRlcigpKQorICAgICAgICByZXR1cm47CisgICAgRmxvYXRS
ZWN0IGNvbnRhaW5lclJlY3QgPSBib3JkZXJSZWN0OworICAgIGNvbnRhaW5lclJlY3QuaW5mbGF0
ZSgtMSk7CisgICAgV2ViQ29yZTo6ZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCwgY29udGFpbmVy
UmVjdCwgY29sb3IsIGJhZGdlcyk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQoreworICAgIGlmIChzaG91bGRBY2NlbGVyYXRl
ID09IFNob3VsZEFjY2VsZXJhdGU6OlllcykgeworICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdN
b2RlOjpSZW1vdGVBY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQpKSB7CisgICAgICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVy
SGFzaE1hcC5hZGQoaW1hZ2VCdWZmZXIuZ2V0KCksIGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCks
IGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5h
Y2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpKSB7CisgICAgICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmFkZChpbWFn
ZUJ1ZmZlci5nZXQoKSwgaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpKTsK
KyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcC5hZGQoaW1h
Z2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7
CisgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxl
KSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVz
aENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlm
IChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFz
aE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgaW1hZ2VCdWZmZXIt
PmNvbW1pdEZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIpOworfQorCitSZWZQdHI8V2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZURyYXdJbWFn
ZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciA9IGZpbmRJbWFnZUJ1ZmZlckZvckNsaWVudChpbWFnZSwgcmVtb3Rl
Q2xpZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZsdXNoIHRoZSBEcmF3aW5nQ29udGV4dCBv
ZiB0aGUgc291cmNlIEltYWdlQnVmZmVyIHNvIHRoaXMgSW1hZ2VCdWZmZXIgZ2V0cyBhbiB1cGRh
dGVkIGltYWdlLgorICAgIGltYWdlLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQorCitSZWZQdHI8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZURy
YXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVk
SW1hZ2UmIGNhY2hlZEltYWdlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IGZpbmRO
YXRpdmVJbWFnZUZvckNsaWVudChjYWNoZWRJbWFnZSwgaW1hZ2UsIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpOworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJ
bWFnZTo6Y3JlYXRlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1v
dGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlKQor
eworICAgIC8vIFJlbW92ZSB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgY2FjaGUuCisgICAgYXV0byBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC50YWtl
KCZpbWFnZSk7CisgICAgQVNTRVJUKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAv
LyBjcmVhdGVJbWFnZUJ1ZmZlciBzaG91bGQgaGF2ZSBiZWVuIHJldHVybmVkIHRoaXMgSW1hZ2VC
dWZmZXIgYmVmb3JlLgorICAgIGJvb2wgZm91bmQgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEFT
U0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsKKworICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNz
IHRvIHJlbW92ZSB0aGlzIHJlc291cmNlIHVubGVzcyBpdCdzIHBlbmRpbmcgcmVwbGF5aW5nIGJh
Y2suCisgICAgcmVsZWFzZVJlbW90ZVJlc291cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
OworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVs
ZWFzZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKK3sK
KyAgICAvLyBSZW1vdmUgdGhlIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgorICAgIGF1dG8gcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAudGFrZShp
bWFnZSk7CisKKyAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNv
dXJjZSB1bmxlc3MgaXQncyBwZW5kaW5nIHJlcGxheWluZyBiYWNrLgorICAgIGlmIChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJlbGVhc2VSZW1vdGVSZXNvdXJjZVBlbmRpbmdS
ZW1vdmVDbGllbnRzKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcjsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90
ZVJlc291cmNlQ2FjaGU6OmZpbmRJbWFnZUJ1ZmZlckZvckNsaWVudChJbWFnZUJ1ZmZlciYgaW1h
Z2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQorewor
ICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhh
c2hNYXAuZ2V0KCZpbWFnZSk7CisgICAgYWRkUmVtb3RlQ2xpZW50KHJlbW90ZVJlc291cmNlSWRl
bnRpZmllciwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcjsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlc291
cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZvckNsaWVudChXZWJDb3JlOjpDYWNoZWRJbWFnZSYg
Y2FjaGVkSW1hZ2UsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgYXV0byByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcC5lbnN1cmUoaW1hZ2Us
IFsmXSB7CisgICAgICAgIGNhY2hlZEltYWdlLmFkZENsaWVudCgqdGhpcyk7CisgICAgICAgIHJl
dHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlQ2FjaGVOYXRpdmVJbWFnZShpbWFn
ZSk7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgYWRkUmVtb3RlQ2xpZW50KHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgcmV0dXJu
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
OjphZGRSZW1vdGVDbGllbnQoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEFkZCB0aGUgInJlc291cmNlIC0+IGNsaWVudCIgZGVwZW5kZW5jeSBpbiBt
X3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuCisgICAgYXV0byYgY2xpZW50cyA9IG1fcmVt
b3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC5lbnN1cmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBbJl0geworICAgICAgICByZXR1cm4gUmVtb3RlQ2xpZW50c0hhc2hTZXQoKTsKKyAgICB9KS5p
dGVyYXRvci0+dmFsdWU7CisKKyAgICBjbGllbnRzLmFkZChyZW1vdGVDbGllbnRJZGVudGlmaWVy
KTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQ
ZW5kaW5nUmVtb3ZlQ2xpZW50cyhSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5k
aW5nUmVsZWFzZUhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSk7CisK
KyAgICAvLyBJZiB3ZSBoYXZlIHJlY29yZGVkIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5k
ZW5jeSBiZWZvcmUgaW4gbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLCBtb3ZlIHRoaXMK
KyAgICAvLyBkZXBlbmRlbmN5IHRvIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVh
c2VIYXNoTWFwLiBPdGhlcndpc2UgcmVtb3ZlIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4K
KyAgICBpZiAobV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLmNvbnRhaW5zKHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikpCisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGlu
Z1JlbGVhc2VIYXNoTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIG1fcmVtb3RlUmVz
b3VyY2VDbGllbnRzSGFzaE1hcC50YWtlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpOworICAg
IGVsc2UKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlbGVhc2VSZW1v
dGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCitWZWN0b3I8UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyPiBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZW1vdmVSZW1vdGVDbGll
bnQoUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCYgcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFz
aE1hcCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7
CisgICAgVmVjdG9yPFJlbW90ZVJlc291cmNlSWRlbnRpZmllcj4gcmVtb3RlUmVzb3VyY2VDbGll
bnRzVG9CZVJlbW92ZWQ7CisKKyAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGll
bnQgZGVwZW5kZW5jaWVzIGZyb20gcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBm
b3IgKGF1dG8mIHBhaXIgOiByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwKSB7CisgICAgICAg
IHBhaXIudmFsdWUucmVtb3ZlKHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgICAgICBpZiAo
cGFpci52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZW1vdGVSZXNvdXJjZUNsaWVudHNU
b0JlUmVtb3ZlZC5hcHBlbmQocGFpci5rZXkpOworICAgIH0KKworICAgIC8vIFJldHVybiBhIGxp
c3Qgb2YgdGhlIHVucmVmZXJlbmNlZCByZXNvdXJjZXMuCisgICAgcmV0dXJuIHJlbW90ZVJlc291
cmNlQ2xpZW50c1RvQmVSZW1vdmVkOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJl
bGVhc2VSZW1vdGVDbGllbnQoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElk
ZW50aWZpZXIpCit7CisgICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRl
cGVuZGVuY2llcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBmb3Ig
KGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIDogcmVtb3ZlUmVtb3RlQ2xpZW50KG1fcmVt
b3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKworICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBk
ZXBlbmRlbmNpZXMgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFz
aE1hcC4KKyAgICBmb3IgKGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIDogcmVtb3ZlUmVt
b3RlQ2xpZW50KG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLCBy
ZW1vdGVDbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICAvLyBSZW1vdmUgdGhlIHVucmVmZXJl
bmNlZCByZXNvdXJjZXMgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNl
SGFzaE1hcC4KKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhh
c2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAgICAgLy8gVGVs
bCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UuCisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMDM3Y2ZkZmNhNDM5ZmFmODhlOTU0MTY2NjI5OTVjYzhhMDdiNDY2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkSW1h
Z2VDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBJdGVtOworfQorZW51bSBjbGFzcyBDb2xvclNw
YWNlIDogdWludDhfdDsKK3N0cnVjdCBCYWRnZTsKK2NsYXNzIENvbG9yOworY2xhc3MgRmxvYXRS
ZWN0OworY2xhc3MgRmxvYXRTaXplOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjsKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlIDogcHVi
bGljIFdlYkNvcmU6OkNhY2hlZEltYWdlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVSZXNv
dXJjZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLCBXZWJQYWdlJik7CisKKyAgICBib29s
IHNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkgY29uc3Q7CisgICAgdm9pZCBkcmF3QmFkZ2luZ0Jv
cmRlcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvcmRlclJlY3QsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkJhZGdlPiYpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpTaG91
bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Up
OworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgUmVmUHRyPFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNv
bnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMmLCBXZWJDb3JlOjpDYWNoZWRJbWFnZSYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CisKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVsZWFzZUlt
YWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJik7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbGVhc2VOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJ
bWFnZVB0ciYpOworICAgIHZvaWQgcmVsZWFzZVJlbW90ZUNsaWVudChXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6Cisg
ICAgdXNpbmcgUmVtb3RlQ2xpZW50c0hhc2hTZXQgPSBIYXNoU2V0PFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcj47CisgICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0g
SGFzaE1hcDxXZWJDb3JlOjpJbWFnZUJ1ZmZlciosIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllcj47CisgICAgdXNpbmcgUmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxX
ZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
PjsKKyAgICB1c2luZyBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwID0gSGFzaE1hcDxXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUNsaWVudHNIYXNoU2V0PjsKKyAg
ICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcCA9IEhhc2hNYXA8
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKj47CisKKyAgICB2b2lkIG5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBpbWFnZSkgb3ZlcnJpZGUgeyByZWxlYXNlTmF0aXZl
SW1hZ2UoaW1hZ2UpOyB9CisKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgZmluZE5hdGl2ZUltYWdlRm9yQ2xpZW50KFdlYkNvcmU6OkNhY2hlZEltYWdlJiwg
Y29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisKKyAgICB2b2lkIGFkZFJlbW90ZUNs
aWVudChXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdmVSZW1vdGVDbGllbnQoUmVtb3Rl
UmVzb3VyY2VDbGllbnRzSGFzaE1hcCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJj
ZVBlbmRpbmdSZW1vdmVDbGllbnRzKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXA7CisgICAgUmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwIG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNo
TWFwOworICAgIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbV9yZW1vdGVSZXNvdXJjZUNs
aWVudHNIYXNoTWFwOworICAgIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbV9yZW1vdGVS
ZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXA7CisgICAgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAgbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
SGFzaE1hcDsKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7CisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCAxYWU1
MTU3MjUzNjFkMjI4MjE5MTRhZWQwZjI4YmIxNmU3NjM1OGZmLi4zMDA1MGFjMDdkYzlhZDVjODNm
M2RlMjgzMjkwNmE5ODc0MTBkM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIldlYkdhbWVwYWQuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCA3NmMwZDFmYzhhYTA5MGRkZTQ2MmNiMjFlMjRhMjM0ZjEwMGFjZmUxLi44
YjFlMzA4OTEyMjg1OTZjZmUwN2EyZjkxNzFlNzg1ZDI1MjNmNzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBAIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmCiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQoKSBjb25zdAogewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQot
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGUoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ7CiB9CiAK
</data>
<flag name="commit-queue"
          id="427275"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411147</attachid>
            <date>2020-10-12 12:36:07 -0700</date>
            <delta_ts>2020-11-04 21:11:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201012123606.patch</filename>
            <type>text/plain</type>
            <size>224001</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uMWNmNTMzNzE2YzcyNTU5NDk5ZWJmZmVhMmU3Yjdj
ZTE1MDIxYjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwNSBAQAorMjAyMC0xMC0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWxsb3cgZHJhd2luZyBhIGJvcmRlciBhbmQgYSBiYWRnZSBmb3IgdGhlIDJEIGNh
bnZhcyBpZiBpdCdzIGRyYXduIHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAg
aXMgaW50cm9kdWNlZCB0byBiZSB0aGUgcGxhY2Ugd2hlcmUgb3RoZXIgY29tcGxleAorICAgICAg
ICBncmFwaGljYWwgY29tbWFuZHMgY2FuIGJlIGFkZGVkIGxhdGVyLgorCisgICAgICAgICogSGVh
ZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3QmFk
Z2luZ0JvcmRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmg6IEFkZGVkLgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSB0aGUgQml0
bWFwSW1hZ2UgZnJhbWUgaW4gR1BVIFByb2Nlc3MgYW5kIGFsbG93IHJlZmVyZW5jaW5nIGl0IHdp
dGggaXRzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSB0aGUgZnJhbWVzIG9mIHRoZSBCaXRtYXBJbWFn
ZSB3aWxsIGJlIGNhY2hlZCBpbiB0aGUgR1BVIHNpZGUuIFRoZQorICAgICAgICBmcmFtZXMgb2Yg
Qml0bWFwSW1hZ2UgaGF2ZSBhIHdlbGwgZGVmaW5lZCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJv
Y2Vzcy4KKyAgICAgICAgVGhlIGNvdW50ZXJwYXJ0IGZyYW1lcyBpbiB0aGUgR1BVIFByb2Nlc3Mg
d2lsbCBoYXZlIGEgc2ltaWxhciBsaWZlIGN5Y2xlLgorICAgICAgICBXaGVuIHRoZSBmcmFtZSBp
cyBkcmF3biBmb3IgdGhlIGZpcnN0IHRpbWUgaXQgd2lsbCBiZSB0cmFuc2ZlcmVkIGZyb20gV2Vi
CisgICAgICAgIFByb2Nlc3MgdmlhIGEgU2hhcmVhYmxlQml0bWFwIHRvIHRoZSBHUFUgUHJvY2Vz
cyBhbmQgY2FjaGVkIHVuZGVyIGEgdW5pcXVlCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcmVjb3JkIHRoZSBOYXRpdmVEcmF3SW1hZ2UKKyAg
ICAgICAgaXRlbS4gV2hlbiB0aGUgQml0bWFwSW1hZ2UgZGVjaWRlcyB0byBkZXN0cm95IGl0cyBk
ZWNvZGVkIGZyYW1lLCBhIG1lc3NhZ2UKKyAgICAgICAgd2lsbCBiZSBzZW50IGZyb20gdGhlIFdl
YiBQcm9jZXNzIHRvIHRoZSBHUFUgUHJvY2VzcyB0byByZW1vdmUgdGhlIGNhY2hlZAorICAgICAg
ICBmcmFtZS4gSGVyZSBpcyB0aGUgc2VxdWVuY2UgaW4gbW9yZSBkZXRhaWw6CisKKyAgICAgICAg
VGhlIGRyYXdpbmcgc2VxdWVuY2UgaW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6
CisKKyAgICAgICAgMSkgQml0bWFwSW1hZ2U6OmRyYXcoKSBjYWxscyBJbWFnZU9ic2VydmVyOjpk
cmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgMikgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlT2Jz
ZXJ2ZXI6OmRyYXdOYXRpdmVJbWFnZSgpIGZpbmRzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAg
IENhY2hlZEltYWdlIGFuZCBjYWxscyBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgp
LgorICAgICAgICAzKSBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKCkgY2FsbHMgdGhlIGNyZWF0
ZURyYXdOYXRpdmVJbWFnZUl0ZW0oKSBvZiAKKyAgICAgICAgICAgaXRzIGRlbGVnYXRlIHdoaWNo
IGlzIFJlbW90ZUltYWdlQnVmZmVyIGluIHRoZSBjYXNlIG9mIDJEIGNhbnZhcy4KKyAgICAgICAg
NCkgUmVtb3RlSW1hZ2VCdWZmZXIgY2FsbHMgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlZCB3aGlj
aCBjYWxscyBpdHMKKyAgICAgICAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd05h
dGl2ZUltYWdlSXRlbSgpLgorICAgICAgICA1KSBSZW1vdGVSZXNvdXJjZUNhY2hlIGNhbGxzIGl0
cyBmaW5kTmF0aXZlSW1hZ2VGb3JDbGllbnQoKSB3aGljaCBjYWNoZXMKKyAgICAgICAgICAgdGhl
IE5hdGl2ZUltYWdlIGluIHRoZSBjYWNoZSwgcmVzaXN0ZXJzIFJlbW90ZVJlc291cmNlQ2FjaGUg
YXMgYSBjbGllbnQKKyAgICAgICAgICAgb2YgdGhlIENhY2hlZEltYWdlLCBhc2tzIHRoZSBHUFUg
UHJvY2VzcyB0byBjYWNoZSBpdCBhbHNvIGFuZCByZXR1cm5zCisgICAgICAgICAgIHRoZSBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIuIFJlbW90ZVJlc291cmNlQ2FjaGUgdGhlbiBjcmVhdGVzIHRo
ZSAKKyAgICAgICAgICAgRHJhd05hdGl2ZUltYWdlIGl0ZW0gd2l0aCB0aGlzIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllci4KKworICAgICAgICBUaGUgZHJhd2luZyBzZXF1ZW5jZSBpbiB0aGUgR1BV
IFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAxKSBXaGVuIGZsdXNoaW5nIHRo
ZSBEcmF3aW5nQ29udGV4dCBoYXBwZW5zLCB0aGUgRGlzcGxheUxpc3QgaXRlbXMgYXJlCisgICAg
ICAgICAgIHJlcGxheWVkIGJhY2suIERpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbHkoKSBjYWxs
cyBhcHBseSgpIG9mIGl0cworICAgICAgICAgICBkZWxlZ2F0ZS4KKyAgICAgICAgMikgSW4gdGhl
IGNhc2Ugb2YgMkQgY2FudmFzLCB0aGUgcmVwbGF5ZXIgZGVsZWdhdGUgaXMgUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS4KKyAgICAgICAgICAgSXRzIGFwcGx5KCkgd2lsbCBjYWxsIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0oKSB0aHJvdWdoCisgICAgICAgICAgIHRo
ZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisgICAgICAgIDMpIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6ZHJhd05hdGl2ZUltYWdlSXRlbSgpIHNlYXJjaGVzIGZvciB0aGUgTmF0aXZl
SW1hZ2UKKyAgICAgICAgICAgd2hvc2UgaWRlbnRpZmllciBpcyB0aGUgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKCkgb2YgdGhlIERyYXdOYXRpdmVJbWFnZS4KKyAgICAgICAgNCkgT25jZSB0aGUg
TmF0aXZlSW1hZ2UgaXMgZm91bmQsIGl0IHdpbGwgYmUgZHJhd24gdXNpbmcgdGhlIHJlc2V0IG9m
IHRoZQorICAgICAgICAgICBhcmd1bWVudHMgb2YgRHJhd05hdGl2ZUltYWdlLgorCisgICAgICAg
IFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRoZSBXZWIgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5n
OgorCisgICAgICAgIDEpIEltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoKSBjYWxscyB0
aGUgSW1hZ2VPYnNlcnZlciB3aGVuIGEgZGVjb2RlZAorICAgICAgICAgICBmcmFtZSBpcyBhYm91
dCB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIDIpIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9i
c2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCgpIGZpbmRzCisgICAgICAgICAgIHRo
ZSBhc3NvY2lhdGVkIENhY2hlZEltYWdlIGFuZCBjYWxscyBDYWNoZWRJbWFnZTo6bmF0aXZlSW1h
Z2VXaWxsQmVEZXN0cm95ZWQoKS4KKyAgICAgICAgMykgQ2FjaGVkSW1hZ2UgY2FsbHMgYWxsIHRo
ZSBDYWNoZWRJbWFnZUNsaWVudHMgdG8gbm90aWZ5IHRoZW0uCisgICAgICAgIDQpIEJlY2F1c2Ug
UmVtb3RlUmVzb3VyY2VDYWNoZSByZWdpc3RlcnMgaXRzZWxmIGFzIGEgQ2FjaGVkSW1hZ2VDbGll
bnQgb2YKKyAgICAgICAgICAgdGhpcyBDYWNoZWRJbWFnZSwgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoKQorICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4K
KyAgICAgICAgNSkgVGhlIGNhY2hlZCBOYXRpdmVJbWFnZSB3aWxsIGJlIHJlbW92ZXMgZnJvbSB0
aGUgY2FjaGUgYW5kIGEgbWVzc2FnZSB3aWxsCisgICAgICAgICAgIGJlIHNlbnQgdG8gdGhlIEdQ
VSBQcm9jZXNzIHdoZW4gbm8gcmVtb3RlIGNsaWVudCBpcyByZWZlcmVuY2luZyB0aGlzCisgICAg
ICAgICAgIE5hdGl2ZUltYWdlLgorCisgICAgICAgIFRoZSByZWxlYXNlIHNlcXVlbmNlIGluIHRo
ZSBHUFUgUHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEpIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlIHJlbGVhc2VzIHRoZSBjYWNoZWQK
KyAgICAgICAgICAgTmF0aXZlSW1hZ2UgdmlhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4K
KworICAgICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVk
SW1hZ2VPYnNlcnZlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2VDbGllbnQ6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0
aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VPYnNlcnZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OkRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d05hdGl2ZUltYWdlOjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpuYXRpdmVJ
bWFnZVB0ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2
ZUltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZTo6aW1hZ2VTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3TmF0aXZlSW1hZ2U6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNyZWF0
ZURyYXdOYXRpdmVJbWFnZUl0ZW0pOgorCisyMDIwLTEwLTExICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0
aGUgRGlzcGxheUxpc3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTczCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgTW92ZSB0aGUgZGVmaW5pdGlv
biBvZiBOYXRpdmVJbWFnZVB0ciB0byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlIG5hbWVkCisgICAg
ICAgICAgIE5hdGl2ZUltYWdlUHRyLgorICAgICAgICAyKSBSZW1vdmUgdGhlIGNsYXNzIEltYWdl
SGFuZGxlIGFuZCBhbGxvdyBlbmNvZGluZyBhbmQgZGVjb2RpbmcgTmF0aXZlSW1hZ2VQdHIKKyAg
ICAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIDMpIFJlbW92ZSB0aGUgY29tcGlsYXRpb24gZGly
ZWN0aXZlcyBhcm91bmQgdGhlIERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAgICAgICAg
ICAgaXRlbSBhbmQgdGhlIG1ldGhvZCBkcmF3TmF0aXZlSW1hZ2UoKS4KKyAgICAgICAgNCkgTW92
ZSB0aGUgZHJhd05hdGl2ZUltYWdlKCkgbWV0aG9kcyB0byB0aGUgc291cmNlcyBvZiB0aGVpciBj
YWxsZXJzLgorICAgICAgICA1KSBJbiB0aGUgY2FzZSBvZiByZWNvcmRpbmcgdGhlIGRyYXdpbmcg
Y29tbWFuZHMsIG1ha2UgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICBw
cm9jZXNzIGRyYXdpbmcgdGhlIGltYWdlcyBzdWNoIHRoYXQgcHJpbWl0aXZlcyBkcmF3aW5nIGNv
bW1hbmRzIGFyZQorICAgICAgICAgICByZWNvcmRlZC4gRm9yIGV4YW1wbGUgYSBCaXRtYXBJbWFn
ZSB3aWxsIHJlbmRlciBhIE5hdGl2ZUltYWdlIGV2ZW50dWFsbHkuCisgICAgICAgICAgIEFuZCBT
VkdJbWFnZSB3aWxsIHJlY29yZCBpdHMgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZHJhd05hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRy
YXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdl
QnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3Bl
cmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZl
SW1hZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d05hdGl2ZUltYWdlOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3SW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3VyY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVzdGluYXRp
b25SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VC
dWZmZXI6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3Bl
cmF0aW9uUmVjb3JkZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNv
cmRlcjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOiBEZWxldGVk
LgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6OkRyYXdJ
bWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgc2VxdWVuY2UgaW4gdGhlIFdlYiBQcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmc6
CisKKyAgICAgICAgLS0gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIERp
c3BsYXlMaXN0OjpSZWNvcmRlciB0byBjaGVjaworICAgICAgICAgICB3aGV0aGVyIGl0IGlzIGFw
cHJvcHJpYXRlIHRvIGNyZWF0ZSBEcmF3SW1hZ2VCdWZmZXIgaXRlbSBvciBub3QuCisKKyAgICAg
ICAgLS0gRGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoKSB1c2VzIHRoZSBk
ZWxlZ2F0ZSB0byB0byBjcmVhdGUKKyAgICAgICAgICAgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVt
LgorCisgICAgICAgIC0tIFNpbmNlIFJlbW90ZUltYWdlQnVmZmVyIGluaGVyaXRzIERpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6RGVsZWdhdGUsIAorICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6
Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSgpIHdpbGwgYmUgY2FsbGVkLgorCisgICAgICAgIC0t
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oKSB3aWxs
IGJlIGNhbGxlZCBuZXh0CisgICAgICAgICAgIHdoaWNoIHdpbGwgY2FsbCBSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKCkuCisKKyAgICAgICAgLS0gUmVtb3Rl
UmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSgpIGNoZWNrcyBpdHMgSGFz
aE1hcAorICAgICAgICAgICB1c2luZyB0aGUgSW1hZ2VCdWZmZXIqIHRvIGZpbmQgdGhlIGNvcnJl
c3BvbmRpbmcgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLgorICAgICAgICAgICBJZiBpdCBmaW5k
cyBpdCwgaXQgd2lsbCBjcmVhdGUgdGhlIERyYXdJbWFnZUJ1ZmZlciBpdGVtLgorCisgICAgICAg
IFRoZSBzZXF1ZW5jZSBpbiB0aGUgR1BVIFByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZzoKKworICAg
ICAgICAtLSBXaGVuIHJlcGxheWluZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCwgRGlzcGxheUxpc3Q6
OlJlcGxheWVyIHdpbGwgY2FsbAorICAgICAgICAgICBpdHMgZGVsZWdhdGUgdG8gY2hlY2sgaWYg
aXQgd2FudHMgdG8gYXBwbHkgdGhlIERyYXdJbWFnZUJ1ZmZlci4KKworICAgICAgICAtLSBCZWNh
dXNlIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgaW5oZXJpdHMgRGlzcGxheUxpc3Q6OlJlcGxheWVy
OjpEZWxlZ2F0ZSwKKyAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6YXBwbHkoKSB3
aWxsIGJlIGNhbGxlZC4KKworICAgICAgICAtLSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IHdpbGwg
Y2FsbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVtKCkKKyAg
ICAgICAgICAgd2hpY2ggd2lsbCBwYXNzIGl0IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseVJlc291cmNl
SXRlbSgpIHdpbGwgc2VhcmNoIGZvciBhCisgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyIHdo
b3NlIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtYXRjaGVzIHRoZSBvbmUgaW4KKyAgICAgICAg
ICAgRHJhd0ltYWdlQnVmZmVyLiBBbmQgdGhlcmUgaXMgb25lLCBpdCB3aWxsIGRyYXdzIHRvIEdy
YXBoaWNzQ29udGV4dC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRy
YXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2lu
Z0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1h
Z2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbW90ZVJlc291cmNlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpzb3Vy
Y2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZl
cjo6ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF4TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjpwdXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpjcmVhdGVE
cmF3SW1hZ2VCdWZmZXJJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNv
cmRlcjo6T2JzZXJ2ZXI6On5PYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6Ok9ic2VydmVyOjp3aWxsQXBwZW5kSXRlbSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJl
Y29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKworMjAyMC0xMC0w
OSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5h
Z2UgdGhlIHJlc291cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZHMgdG8g
SW1hZ2VCdWZmZXIgd2hpY2ggdXNlZCB0byBiZSBhIHZpcnR1YWwgbWV0aG9kCisgICAgICAgIG9m
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS4gVGhpcyBtZXRob2QgaXMgYWxy
ZWFkeSBvdmVycmlkZGVuCisgICAgICAgIGJ5IFJlbW90ZUltYWdlQnVmZmVyUHJveHkgYW5kIGlz
IGNhbGxlZCBieSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuIEJ1dAorICAgICAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkga2VlcHMgYSBIYXNoTWFwIG9mIEltYWdlQnVmZmVycy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dCk6CisKKzIwMjAtMTAtMDkgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVu
dGlmaWVyIG5hbWVkICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
d2lsbCBiZSB1c2VkIGluIFdlYkNvcmUgd2hlbiByZWNvcmRpbmcgZHJhd2luZworICAgICAgICBh
IHJlbW90ZSBJbWFnZUJ1ZmZlciB0byBhbm90aGVyIHJlbW90ZSBJbWFnZUJ1ZmZlci4gRXZlbnR1
YWxseSBpdCB3aWxsCisgICAgICAgIGJlIHVzZWQgZHJhd2luZyBhIHJlbW90ZSBOYXRpdmVJbWFn
ZSB0byBhIHJlbW90ZSBJbWFnZUJ1ZmZlciBvciBET00gbGF5ZXIuCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaDog
QWRkZWQuCisKIDIwMjAtMTAtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNw
bGF5TGlzdFJlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1YmEzNDdiMWExZmZmMjkxZGVhODQxMjNjMDQ2
NmU5YTBlNjQ3OGUuLmY0MjA4MDhiN2ZjYTg1MjhjMjIyZmFiMjAzM2VjN2E1NzU3MzdmNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjc4IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBk
cmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJh
d24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxm
IHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgorICAgICAgICBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0dGluZ3MgdGhy
b3VnaCB0aGUgV2ViUGFnZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3
aW5nQ29udGV4dCgpIHdpbGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisgICAgICAgIHRv
IHRoZSBJbWFnZUJ1ZmZlciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgR1BV
IHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpkcmF3QmFkZ2luZ0JvcmRlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
IGNvbnN0KToKKworMjAyMC0xMC0xMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2FjaGUgdGhlIEJpdG1hcEltYWdl
IGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzU5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJbWFnZUl0
ZW0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFw
cGx5UmVzb3VyY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUNhY2hlTmF0aXZl
SW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3Jl
YXRlRHJhd05hdGl2ZUltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGU6OnJlbGVhc2VOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291
cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZvckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxpc3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFn
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAo
SVBDOjplbmNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxOYXRpdmVJbWFnZVB0cj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TmF0aXZlSW1hZ2VQdHI+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZy9T
aGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6
cGFpbnQpOgorCisyMDIwLTEwLTEwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgRGlzcGxheUxpc3Q6
OkRyYXdJbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmFwcGx5
UmVzb3VyY2VJdGVtKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdJbWFnZUJ1ZmZlckl0ZW0gY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmFwcGx5UmVzb3VyY2VJdGVt
IGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRlbSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorCisyMDIwLTEwLTEw
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhl
IHJlbW90ZSByZXNvdXJjZXMgaW4gV2ViIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNw
b25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJlbW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVk
aW5nIHRoZWlyIGFjdHVhbCBsaWZlIGN5Y2xlIGluIHRoZSBXZWIgUHJvY2VzcyBzaWRlLiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kCisgICAgICAgIHdpbGwgYmUgcmVzcG9uc2libGUgb25seSBmb3Ig
dGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS4K
KyAgICAgICAgSXQgd2lsbCBkZWxlZ2F0ZSBhbGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8g
aXRzIFJlbW90ZVJlc291cmNlQ2FjaGUuCisKKyAgICAgICAgQmVjYXVzZSBSZW1vdGVJbWFnZUJ1
ZmZlciBkb2VzIHRoZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gV2ViQ29yZSBhbmQgR1BVCisgICAg
ICAgIFByb2Nlc3MsIFJlbW90ZVJlc291cmNlQ2FjaGUgd2lsbCBrZWVwIHR3byBIYXNoTWFwcyB0
byBlYXNlIHRoZSBtYXBwaW5nCisgICAgICAgIGluIGJvdGggZGlyZWN0aW9uczoKKworICAgICAg
ICAtLSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtYXBzIEltYWdlQnVmZmVyKiAtPiBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIKKyAgICAgICAgLS0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVySGFzaE1hcCBtYXBzIFJlbW90ZVJlc291cmNlSWRlbnRpZmllcgorICAgICAgICAg
ICAtPiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKgorCisgICAgICAgIFRvIGtlZXAg
dHJhY2sgb2YgdGhlIHJlc291cmNlIHJlZmVyZW5jaW5nLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHVz
ZXMgYW5vdGhlciAKKyAgICAgICAgbWFwIHdoaWNoIHJlbGF0ZXMgYSByZW1vdGUgcmVzb3VyY2Ug
d2l0aCB0aGUgc2V0IG9mIHJlbW90ZSBkcmF3aW5nIGNsaWVudHMuCisgICAgICAgIAorICAgICAg
ICAtLSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbWFwcyBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgLT4KKyAgICAgICAgICAgSGFzaFNldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+
CisKKyAgICAgICAgVGhlIHJlbW90ZSByZXNvdXJjZSBoYXMgc3RheSBhbGl2ZSB0aWxsIHRoZWly
IGNsaWVudHMgcmVwbGF5ZWQgYmFjayB0aGVpcgorICAgICAgICBEaXNwbGF5TGlzdDo6SXRlbXMg
d2hpY2ggcmVmZXJlbmNlIHRoZXNlIHJlc291cmNlcy4gT25jZSBSZW1vdGVSZXNvdXJjZUNhY2hl
CisgICAgICAgIGlzIHJlcXVlc3RlZCB0byByZWxlYXNlIGEgcmVtb3RlIHJlc291cmNlIGJ1dCBp
dCBmaW5kcyB0aGlzIHJlc291cmNlIGlzCisgICAgICAgIHJlZmVyZW5jZWQgYnkgYSBzZXQgb2Yg
cmVtb3RlIGRyYXdpbmcgY2xpZW50cywgaXQgbW92ZXMgdGhlIGVudHJ5IG9mIHRoaXMKKyAgICAg
ICAgcmVzb3VyY2UgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgdG8gYW5vdGhl
ciBIYXNoTWFwIG5hbWVkOgorCisgICAgICAgIC0tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVu
ZGluZ1JlbGVhc2VIYXNoTWFwIG1hcHMgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCisgICAgICAg
ICAgIC0+IEhhc2hTZXQ8UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPgorCisgICAgICAgIFdoZW4g
YW4gZW50cnkgZm9yIGEgcmVtb3RlIHJlc291cmNlIGV4aXN0cyBpbiBtX3JlbW90ZVJlc291cmNl
Q2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcCAKKyAgICAgICAgYW5kIG5vIHJlbW90ZSBjbGll
bnQgcmVmZXJlbmNlcyBpdCBhbnltb3JlLCBSZW1vdGVSZXNvdXJjZUNhY2hlIHdpbGwgdGVsbCAK
KyAgICAgICAgR1BVIFByb2Nlc3MgdG8gcmVsZWFzZSBpdHMgcmVtb3RlIHJlc291cmNlIGFzIHdl
bGwuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6flJl
bW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnJl
bW90ZVJlc291cmNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyOjpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFn
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVG
bHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNv
bW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJl
bW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGU6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGU6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6ZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6YWRkUmVtb3RlQ2xpZW50KToK
KyAgICAgICAgTGlua3MgYSByZW1vdGUgcmVzb3VyY2Ugd2l0aCBhIGRyYXdpbmcgcmVtb3RlIGNs
aWVudC4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVt
b3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlc291cmNlQ2FjaGU6OnJlbW92ZVJlbW90ZUNsaWVudCk6CisgICAgICAgIFJlbW92ZSBhbGwg
dGhlIGVudHJpZXMgd2hpY2ggaW5jbHVkZXMgYSBjZXJ0YWluIHJlbW90ZSBjbGllbnQuCisKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZUNsaWVudCk6
CisgICAgICAgIEEgcmVtb3RlIGNsaWVudCBoYXMgZG9uZSBmbHVzaGluZyBpdHMgRHJhd2luZ0Nv
bnRleHQuIEl0J3MgdGltZSB0byBib29rLQorICAgICAgICBrZWVwIHRoZSByZXNvdXJjZSByZWZl
cmVuY2luZyBhbmQgc3luYyB1cCB3aXRoIHRoZSBHUFUgc2lkZSBpZiBpdCBoYXMgdG8KKyAgICAg
ICAgcmVsZWFzZSBzb21lIG9mIHRoZSByZW1vdGUgcmVzb3VyY2VzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcDoKKworMjAyMC0x
MC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAg
ICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB0byBt
YW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB3
aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgcmVtb3RlIHJlc291cmNlcworICAg
ICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFsIGxpZmUgY3ljbGUuIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21t
dW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuIEl0IHdpbGwKKyAgICAgICAg
ZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2UgY2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2Vu
ZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNzLiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRo
ZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0
aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpnZXRJbWFnZURhdGEgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1v
dGVSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjAtMTAt
MDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2Vu
ZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHUFUgUHJvY2VzcyBuZWVk
cyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZvciBkcmF3aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5k
IAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMgYW5kIGxheWVycy4gVGhlIG1lYW5pbmcgb2YgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwKKyAgICAgICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0
IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojpjb21taXRGbHVzaENvbnRleHQpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0
QW5kV2FpdENvbW1pdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1
ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdElt
YWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoK
KwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIHBhaW50aW5n
IHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3
YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1YjUyNTQwMGZlLi40NWFmOGYxYWJhYWNkMjhkNDI0
MDc4MDE0YTFiZTE0MWU2NGJjMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNDYsNiArMTE0
Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaFBhZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0wuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5o
CkBAIC0xMTk0LDYgKzExOTUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC0xMjA3LDYgKzEy
MDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5k
ZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2RhZjQwMDRiMzY4YTkwZThkYTFkNTIwNmQuLmI1ZjBk
ZDY5MWM4ZjY2NGNlZGJiMjQ5NTA2YWYyNzhiZDg2MmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
ODkzLDYgKzE4OTMsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKK3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
SW1wbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUw
NWIzNTc3MzA0YzE4M2M1MDNmODMxZWM4OTQxMDEwMDAyMS4uYmFlZDUyMTZlZTY0NzRkNWFkMDAw
MDJlYTJiOTVmZDMxZWZmNmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNyw3ICsyMDA3LDYgQEAKIAkJNkE3Mjc5OEIx
RjE2QzI5QzAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlC
OCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMw
MEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNr
QXR0cmlidXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk2QjFGNDgxMTIyOThBMzdFMDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0
MSAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RDQxMkIy
Mzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJGMzg5IC8q
IFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjUw
N0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI1MDdBMjEyMzRCRjM0MTAwQkU3
QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4uaCAqLzsgfTsKQEAgLTIxNTUsMTIgKzIxNTQsMTYg
QEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJB
MjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIElt
YWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgz
RjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0
N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIzMUJFQjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBo
aWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
NEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYx
M0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFG
RkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1
MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQy
OTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
OTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMg
LyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjlEMDUz
QzI1MzJFRUUzMDA0MjIwOTggLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRp
dmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTcyOUQwNTNEMjUzMkVGOTEwMDQyMjA5OCAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1MzkyNTMyRDJFNzAw
NDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlv
bkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNF
MUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJ
bWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07
CkBAIC05NDg3LDcgKzk0OTAsNiBAQAogCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRD
bGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyog
QWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQw
MERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5T
dGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkMyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MTIyMjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxl
RG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdHJhYmxlRG9tYWluLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05OTAxLDYgKzk5MDMsOCBAQAogCQk3MjFCNDk2RjI1MTJBQzA0
MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNraW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElt
YWdlQml0bWFwQmFja2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMUI0
OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VCaXRtYXBCYWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
MkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRpb25GcmFtZVJhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQW5pbWF0aW9uRnJhbWVSYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMjkxQTNBN0U1NDAwRjVGMTNDIC8qIEVY
VEJsZW5kTWluTWF4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVY
VEJsZW5kTWluTWF4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkEx
QTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyNEVEMzJCMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRVhUQmxlbmRNaW5NYXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTkyMyw2ICs5OTI3LDggQEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4
IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMEND
Njg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8q
IFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MzkyNTMy
RDJFNzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUlt
YWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcw
MDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2Vu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFD
IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjYxNDEsNiArMjYxNDcsOCBAQAogCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFk
aWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5oICovLAorCQkJCTcyMzFCRUFGMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFwaGljc0Nv
bnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcyMzFCRUIwMjUzNEMzOUQwMDdFQkRCMiAvKiBHcmFw
aGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyog
R3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAogCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAv
KiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCAqLywKQEAgLTI2MjIwLDggKzI2MjI4LDgg
QEAKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovLAog
CQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2Uu
Y3BwICovLAogCQkJCTMxNEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJh
dGVkSW1hZ2UuaCAqLywKLQkJCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1h
Z2UuaCAqLywKIAkJCQk1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAq
LywKKwkJCQk3MjlEMDUzOTI1MzJEMkU3MDA0MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCAqLywK
IAkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1
NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBD
MDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLywKQEAgLTI2MjM5LDYgKzI2MjQ3LDcg
QEAKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmgg
Ki8sCiAJCQkJQkNBQjQxN0YxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJ
QkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5oICovLAorCQkJCTcyOUQwNTJFMjUz
MTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQkwNzNB
MTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3
M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcy
OTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCkBAIC0zMTYxNCw2
ICszMTYyMyw3IEBACiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1h
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFw
aGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNB
MCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzIzMUJFQjIyNTM0
Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0
NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjgs
NyArMzMxNzgsOCBAQAogCQkJCTMxNEJFM0E3MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdl
R2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0Qz
QzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTZCMzQ4MDk0
MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5
RDA1M0MyNTMyRUVFMzAwNDIyMDk4IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3MjlEMDUzRDI1MzJFRjkxMDA0MjIwOTggLyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThF
ODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzU0MSw2ICszMzU1
Miw3IEBACiAJCQkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREMzMTJFOTIyRkNEN0MwMDAxMjA0RUMgLyogUmVtb3RlUGxheWJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzMxMkVCMjJGQ0Q3QzkwMDEyMDRFQyAvKiBSZW1v
dGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjlE
MDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1w
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1v
dmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1
NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCA0MzliNmE5ZDdkODEyMGQ5MWUxZTFhZmM1NmQxYWFmNmJl
MGI0OWU0Li42MmY1OWQ2OTJiN2YzNmQ2OTk1NzRhZDUwYzgxOGY5OTk3M2Q3MjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtNjAxLDEwICs2MDEsMTcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmLCBsb25nIGxvbmcpIG92
ZXJyaWRlIHsgfQogCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgSW1hZ2UmLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBuYXRpdmVJbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpIG92ZXJyaWRlCisgICAgeworICAgICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRp
dmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQor
CiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29s
IGNhbkRlc3Ryb3lEZWNvZGVkRGF0YShjb25zdCBJbWFnZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2b2lkIGltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFu
aW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0g
RGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbmF0aXZlSW1h
Z2VXaWxsQmVEZXN0cm95ZWQoY29uc3QgSW1hZ2UmLCBjb25zdCBOYXRpdmVJbWFnZVB0ciYpIG92
ZXJyaWRlIHsgfQorCiAgICAgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3Qg
SW50UmVjdCogPSBudWxscHRyKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKGNvbnN0IEltYWdlJikgb3ZlcnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDVjYzkzMzgzMjU3NGRjYmViZWQ4MmMy
YzBiY2U4ZjAwYzJiY2E3MmUuLjgyZDI5MTljODNjYTdjNDBiZWIzZjkwMmY4YzZjNzhiZWU3ZWJk
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAt
NDExLDYgKzQxMSwxNyBAQCB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpk
ZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UmIGltYWdlLCBsbwogICAgICAgICBjYWNoZWRJ
bWFnZS0+ZGVjb2RlZFNpemVDaGFuZ2VkKGltYWdlLCBkZWx0YSk7CiB9CiAKK3ZvaWQgQ2FjaGVk
SW1hZ2U6OkNhY2hlZEltYWdlT2JzZXJ2ZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBJbWFnZSYg
aW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5h
dGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZElt
YWdlcykgeworICAgICAgICBpZiAoJmltYWdlICE9IGNhY2hlZEltYWdlLT5pbWFnZSgpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2
ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFn
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
bmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQor
CiB2b2lkIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZU9ic2VydmVyOjpkaWREcmF3KGNvbnN0IElt
YWdlJiBpbWFnZSkKIHsKICAgICBmb3IgKGF1dG8gY2FjaGVkSW1hZ2UgOiBtX2NhY2hlZEltYWdl
cykKQEAgLTQzNCw2ICs0NDUsMTIgQEAgdm9pZCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNl
cnZlcjo6aW1hZ2VGcmFtZUF2YWlsYWJsZShjb25zdCBJbWFnZSYgaW1hZ2UsIEkKICAgICAgICAg
Y2FjaGVkSW1hZ2UtPmltYWdlRnJhbWVBdmFpbGFibGUoaW1hZ2UsIGFuaW1hdGluZ1N0YXRlLCBj
aGFuZ2VSZWN0LCBkZWNvZGluZ1N0YXR1cyk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6OkNhY2hl
ZEltYWdlT2JzZXJ2ZXI6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiBp
bWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQoreworICAgIGZvciAoYXV0
byBjYWNoZWRJbWFnZSA6IG1fY2FjaGVkSW1hZ2VzKQorICAgICAgICBjYWNoZWRJbWFnZS0+bmF0
aXZlSW1hZ2VXaWxsQmVEZXN0cm95ZWQoaW1hZ2UsIG5hdGl2ZUltYWdlKTsKK30KKwogdm9pZCBD
YWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2VPYnNlcnZlcjo6Y2hhbmdlZEluUmVjdChjb25zdCBJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCiB7CiAgICAgZm9yIChhdXRvIGNhY2hlZElt
YWdlIDogbV9jYWNoZWRJbWFnZXMpCkBAIC02ODksNiArNzA2LDE2IEBAIHZvaWQgQ2FjaGVkSW1h
Z2U6OmltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmIGltYWdlLCBJbWFnZUFuaW1hdGlu
Z1N0YXRlIGFuCiAgICAgICAgIG1fY2xpZW50c1dhaXRpbmdGb3JBc3luY0RlY29kaW5nLmNsZWFy
KCk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6Om5hdGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNv
bnN0IEltYWdlJiBpbWFnZSwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQorewor
ICAgIGlmICgmaW1hZ2UgIT0gbV9pbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVk
UmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkSW1hZ2VDbGllbnQ+IGNsaWVudFdhbGtlcihtX2Ns
aWVudHMpOworICAgIHdoaWxlIChDYWNoZWRJbWFnZUNsaWVudCogY2xpZW50ID0gY2xpZW50V2Fs
a2VyLm5leHQoKSkKKyAgICAgICAgY2xpZW50LT5uYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChu
YXRpdmVJbWFnZSk7Cit9CisKIHZvaWQgQ2FjaGVkSW1hZ2U6OmNoYW5nZWRJblJlY3QoY29uc3Qg
SW1hZ2UmIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogewogICAgIGlmICgmaW1hZ2UgIT0g
bV9pbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXgg
NzJkNTljMWZmNDg0NWMyMzI3NTkyMGJjOGQxMmYyNzM0MzI3ZjcyYy4uODY3OTgzMmE0Y2MxMGJj
NjRmN2EzZTU0YjI1OWJlNTNmYTcxMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKQEAgLTE0OSwxMCArMTQ5LDE0IEBAIHByaXZhdGU6CiAKICAgICAgICAg
dm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoY29uc3QgSW1hZ2UmLCBFbmNvZGVkRGF0YVN0
YXR1cykgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdl
JiwgbG9uZyBsb25nIGRlbHRhKSBmaW5hbDsKKworICAgICAgICB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBJbWFnZSYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5h
bDsKICAgICAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlJikgZmluYWw7CiAKICAgICAgICAg
Ym9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEoY29uc3QgSW1hZ2UmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBpbWFnZUZyYW1lQXZhaWxhYmxlKGNvbnN0IEltYWdlJiwgSW1hZ2VBbmltYXRpbmdTdGF0
ZSwgY29uc3QgSW50UmVjdCogY2hhbmdlUmVjdCA9IG51bGxwdHIsIERlY29kaW5nU3RhdHVzID0g
RGVjb2RpbmdTdGF0dXM6OkludmFsaWQpIGZpbmFsOworICAgICAgICB2b2lkIG5hdGl2ZUltYWdl
V2lsbEJlRGVzdHJveWVkKGNvbnN0IEltYWdlJiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImKSBmaW5h
bDsKKwogICAgICAgICB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRS
ZWN0KikgZmluYWw7CiAgICAgICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3Qg
SW1hZ2UmKSBmaW5hbDsKIApAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWREcmF3KGNvbnN0IEltYWdlJik7CiAgICAgYm9vbCBjYW5EZXN0cm95RGVjb2RlZERhdGEoY29u
c3QgSW1hZ2UmKTsKICAgICB2b2lkIGltYWdlRnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJ
bWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwg
RGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCk7CisgICAgdm9pZCBuYXRp
dmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25zdCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRy
Jik7CiAgICAgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCop
OwogICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoY29uc3QgSW1hZ2UmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaAppbmRleCBi
YTY0NDViN2VhN2VkOTYzZDYxYmZmMzBmMjhhOWE0ZWQ3ZjljMTM2Li4yMWFhZjA3ZjFiYjVkNTNi
OTI5NDIyNGI2NDQzNzJhYmQzNTJiMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJJbWFnZVR5cGVzLmgiCisjaW5jbHVk
ZSAiTmF0aXZlSW1hZ2VQdHIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0
OCw4IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hlbiBhIG5ldyBkZWNvZGVkIGZyYW1lIGZv
ciBhIGxhcmdlIGltYWdlIGlzIGF2YWlsYWJsZSBvciB3aGVuIGFuIGFuaW1hdGVkIGltYWdlIGlz
IHJlYWR5IHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgZnJhbWUuCiAgICAgdmlydHVhbCBWaXNpYmxl
SW5WaWV3cG9ydFN0YXRlIGltYWdlRnJhbWVBdmFpbGFibGUoQ2FjaGVkSW1hZ2UmIGltYWdlLCBJ
bWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0KSB7IGltYWdlQ2hh
bmdlZCgmaW1hZ2UsIGNoYW5nZVJlY3QpOyByZXR1cm4gVmlzaWJsZUluVmlld3BvcnRTdGF0ZTo6
Tm87IH0KIAorICAgIHZpcnR1YWwgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURlc3Ryb3llZChjb25z
dCBOYXRpdmVJbWFnZVB0ciYpIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUNhY2hl
ZEltYWdlQ2xpZW50KENhY2hlZEltYWdlJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGVGb3JJbWFnZShDYWNoZWRJbWFnZSYpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBhMTQxM2M2ZjY3OWIxNWU5MDdjN2I2
Y2ZhNzYwNWYyNzBlMmY5NTU3Li41NzQ0N2ZmMWFmMDQ2YzY0OGU4NGQ5NzZhYmYwMDYxMGJmMDAy
OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjQs
NyArMjQsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggYjQ3NmEzNWI4MmQ5MzcwOGQzYjBmMmI0ZDFhNmQy
NTQ4MTJkMGUxMS4uMGFmNmMzZDhiMjMxODUxNzc4OWIwNzIzNDVmOTY3NDNiMWQ3ZjZlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1h
Z2VPYnNlcnZlci5oIgpAQCAtMjA0LDYgKzIwNSwyNCBAQCBib29sIEJpdG1hcEltYWdlOjpub3RT
b2xpZENvbG9yKCkKIH0KICNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAogCitzdGF0aWMgaW5saW5l
IHZvaWQgZHJhd05hdGl2ZUltYWdlKEJpdG1hcEltYWdlJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYg
c3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgLy8g
U3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBpcyBzbWFsbGVyIHRo
YW4gc2l6ZSgpLgorICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6ZSA9IG5hdGl2ZUltYWdl
U2l6ZShuYXRpdmVJbWFnZSk7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lk
dGhBc0hlaWdodCgpKQorICAgICAgICBzdWJzYW1wbGVkSW1hZ2VTaXplID0gc3Vic2FtcGxlZElt
YWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgLy8gc3JjUmVjdCBpcyBpbiB0aGUgY29v
cmRpbmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxlZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBtYXAgaXQg
dG8gdGhlIHN1YnNhbXBsZWQgaW1hZ2UuCisgICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9
IHNyY1JlY3Q7CisgICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKKyAgICAg
ICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBzcmNT
aXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOworCisgICAgaWYgKGlt
YWdlLmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2UuaW1hZ2VPYnNlcnZlcigpLT5kcmF3
TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VT
aXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBzdWJzYW1wbGVkSW1hZ2VT
aXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKK30KKwogSW1hZ2VEcmF3
UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgp
IHx8IHNyY1JlY3QuaXNFbXB0eSgpKQpAQCAtMjkyLDkgKzMxMSw5IEBAIEltYWdlRHJhd1Jlc3Vs
dCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzCiAgICAgYXV0byBvcmllbnRhdGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24oKTsK
ICAgICBpZiAob3JpZW50YXRpb24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSB7CiAg
ICAgICAgIG9yaWVudGF0aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJh
bWUpOwotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBz
cmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwgeyBvcHRpb25zLCBvcmllbnRhdGlv
biB9KTsKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKCp0aGlzLCBjb250ZXh0LCBpbWFnZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZShvcmllbnRhdGlvbikpLCB7IG9wdGlvbnMsIG9y
aWVudGF0aW9uIH0pOwogICAgIH0gZWxzZQotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2Us
IGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwg
b3B0aW9ucyk7CisgICAgICAgIGRyYXdOYXRpdmVJbWFnZSgqdGhpcywgY29udGV4dCwgaW1hZ2Us
IGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUob3JpZW50YXRpb24pKSwgb3B0aW9ucyk7
CiAKICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1
c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogCkBAIC0zNzksNyArMzk4LDcgQEAgU3Vic2FtcGxp
bmdMZXZlbCBCaXRtYXBJbWFnZTo6c3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlRmFjdG9yKEdyYXBo
aWNzQ29udGV4dCYgY28KIHsKICNpZiBVU0UoQ0cpCiAgICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBs
ZWQgaW1hZ2VzIGZvciBkcmF3aW5nIGludG8gUERGIGNvbnRleHRzLgotICAgIGlmIChDR0NvbnRl
eHRHZXRUeXBlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpID09IGtDR0NvbnRleHRUeXBlUERG
KQorICAgIGlmIChjb250ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpICYmIENHQ29udGV4dEdldFR5
cGUoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSkgPT0ga0NHQ29udGV4dFR5cGVQREYpCiAgICAg
ICAgIHJldHVybiBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OwogCiAgICAgZmxvYXQgc2NhbGUg
PSBzdGQ6Om1pbihmbG9hdCgxKSwgc3RkOjptYXgoc2NhbGVGYWN0b3Iud2lkdGgoKSwgc2NhbGVG
YWN0b3IuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDU1NWNjNjY0NTcwYTM0YmVhOTk1ZGVjY2Q1
MmFjODYxZjVmZTMxNDQuLjcxMTNkN2Y2NGUxYTc2Mjg5ODFmYzA5OTZmZDY4ZDg2ODUyNmIzZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcApAQCAtNzMxLDYgKzczMSwxOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0JpZGlUZXh0KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAg
ICAgYmlkaVJ1bnMuY2xlYXIoKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSogY2Fj
aGVkSW1hZ2UpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShp
bWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgY2FjaGVkSW1hZ2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOworfQorCiBJbWFn
ZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGlt
YWdlUGFpbnRpbmdPcHRpb25zKQogewogICAgIHJldHVybiBkcmF3SW1hZ2UoaW1hZ2UsIEZsb2F0
UmVjdChkZXN0aW5hdGlvbiwgaW1hZ2Uuc2l6ZSgpKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwg
aW1hZ2Uuc2l6ZSgpKSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwpAQCAtNzQ3LDcgKzc2MCw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAgIGlmIChtX2lt
cGwpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5pc1BERkRvY3VtZW50SW1hZ2UoKSkKICAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBv
cHRpb25zKTsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0
aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0
eSgpKTsKQEAgLTc1OSw3ICs3NzIsNyBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZAogICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CiAKLSAgICBpZiAobV9pbXBsKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UuaXNQ
REZEb2N1bWVudEltYWdlKCkpCiAgICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdl
KGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7
CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxp
dHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CkBA
IC03NzIsNyArNzg1LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1Rp
bGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGQKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5n
OwogCi0gICAgaWYgKG1faW1wbCkKKyAgICBpZiAobV9pbXBsICYmIGltYWdlLmlzUERGRG9jdW1l
bnRJbWFnZSgpKQogICAgICAgICByZXR1cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlv
bnMpOwogCiAgICAgaWYgKGhSdWxlID09IEltYWdlOjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJ
bWFnZTo6U3RyZXRjaFRpbGUpIHsKQEAgLTc5OSw2ICs4MTIsOSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aQogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIG9wdGlvbnMpKQorICAgICAgICByZXR1cm47CisKICAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRo
aXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CiAgICAgaW1hZ2UuZHJhdygqdGhp
cywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGRiNGMwMDJlY2Nk
MjJlNmZlOTQwODdjNjlmOTEyOGQ0Mjg5OTI3YmYuLjI1MTlkN2JlYTE4MjE5ODdmNzFiYTcwZjQ0
MWYyZmZiMDVkMmJmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEdseXBoQnVmZmVy
OwogI2VuZGlmCiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKK2NsYXNzIENhY2hlZEltYWdlOwog
Y2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKIGNsYXNzIEdyYWRpZW50OwogY2xhc3MgR3JhcGhpY3ND
b250ZXh0SW1wbDsKQEAgLTMzNCwxMCArMzM1LDYgQEAgcHVibGljOgogCiAgICAgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCi0j
aWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpIHx8IFVTRShDQUlSTykKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZs
b2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSNlbmRp
ZgotCiAjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgdm9pZCBhcHBseVN0cm9rZVBh
dHRlcm4oKTsKICAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKTsKQEAgLTM4Myw2ICszODAsOCBA
QCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxm
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0sIENhY2hlZEltYWdlKiA9IG51bGxw
dHIpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UgfSk7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFn
ZSB9KTsKQEAgLTY1Miw2ICs2NTEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwbGF0Zm9ybUZp
bGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKTsKIAor
ICAgIHZvaWQgcGxhdGZvcm1EcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBj
b25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisKICAg
ICBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChj
b25zdCBGbG9hdFJlY3QmLCBib29sIHByaW50aW5nLCBDb2xvciYpOwogCiAgICAgZmxvYXQgZGFz
aGVkTGluZUNvcm5lcldpZHRoRm9yU3Ryb2tlV2lkdGgoZmxvYXQpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4
dHJhcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4OTZjODYxNjBkNzExYTMwMWZjZTU4MWEzZmNlN2JhZmZi
ZjcwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlRleHRSdW4uaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGRyYXdC
YWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBi
b3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxCYWRnZT4mIGJhZGdl
cykKK3sKKyAgICBhdXRvIHJlY3RDb3JuZXJQb2ludCA9IFsmXShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIFJlY3RDb3JuZXIgY29ybmVyKSB7CisgICAgICAgIGF1dG8gcG9pbnQgPSByZWN0LmxvY2F0
aW9uKCk7CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9PSBS
ZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKHJlY3Qud2lkdGgoKSwgMCk7
CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdEJvdHRvbUxlZnQgfHwgY29ybmVyID09IFJlY3RC
b3R0b21SaWdodCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoMCwgcmVjdC5oZWlnaHQoKSk7Cisg
ICAgICAgIHJldHVybiBwb2ludDsKKyAgICB9OworCisgICAgYXV0byByZWN0Q29ybmVyUmVjdCA9
IFsmXShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFJlY3RDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9h
dFNpemUgc2l6ZSkgeworICAgICAgICBhdXRvIHBvaW50ID0gcmVjdENvcm5lclBvaW50KHJlY3Qs
IGNvcm5lcik7CisgICAgICAgIGlmIChjb3JuZXIgPT0gUmVjdFRvcFJpZ2h0IHx8IGNvcm5lciA9
PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKC1zaXplLndpZHRoKCks
IDApOworICAgICAgICBpZiAoY29ybmVyID09IFJlY3RCb3R0b21MZWZ0IHx8IGNvcm5lciA9PSBS
ZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKDAsIC1zaXplLmhlaWdodCgp
KTsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChwb2ludCwgc2l6ZSk7CisgICAgfTsKKworICAg
IGF1dG8gb3Bwb3NpdGVIb3Jpem9udGFsID0gW10oUmVjdENvcm5lciBjb3JuZXIpIHsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlY3RDb3JuZXI+KGNvcm5lciBeIDB4MSk7CisgICAgfTsK
KworICAgIGF1dG8gb3Bwb3NpdGVWZXJ0aWNhbCA9IFtdKFJlY3RDb3JuZXIgY29ybmVyKSB7Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWN0Q29ybmVyPihjb3JuZXIgXiAweDIpOworICAg
IH07CisKKyAgICBhdXRvIGRyYXdCYWRnZVJlY3QgPSBbJl0oR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJhZGdlc1JlY3QsIFJlY3RDb3JuZXIgY29ybmVyLCBjb25z
dCBGbG9hdFNpemUmIGJhZGdlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjdXRvZmZTaXplKSB7CisK
KyAgICAgICAgRmxvYXRSZWN0IGJhZGdlUmVjdCA9IHJlY3RDb3JuZXJSZWN0KGJhZGdlc1JlY3Qs
IGNvcm5lciwgYmFkZ2VTaXplKTsKKyAgICAgICAgRmxvYXRSZWN0IGN1dG9mZlJlY3QgPSByZWN0
Q29ybmVyUmVjdChiYWRnZXNSZWN0LCBjb3JuZXIsIGN1dG9mZlNpemUpOworCisgICAgICAgIFBh
dGggcGF0aDsKKworICAgICAgICBjb3JuZXIgPSBvcHBvc2l0ZUhvcml6b250YWwoY29ybmVyKTsK
KyAgICAgICAgcGF0aC5tb3ZlVG8ocmVjdENvcm5lclBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikp
OworICAgICAgICBwYXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9pbnQoYmFkZ2VSZWN0LCBjb3Ju
ZXIpKTsKKworICAgICAgICBjb3JuZXIgPSBvcHBvc2l0ZVZlcnRpY2FsKGNvcm5lcik7CisgICAg
ICAgIHBhdGguYWRkTGluZVRvKHJlY3RDb3JuZXJQb2ludChiYWRnZVJlY3QsIGNvcm5lcikpOwor
CisgICAgICAgIGNvcm5lciA9IG9wcG9zaXRlSG9yaXpvbnRhbChjb3JuZXIpOworICAgICAgICBw
YXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9pbnQoYmFkZ2VSZWN0LCBjb3JuZXIpKTsKKyAgICAg
ICAgcGF0aC5hZGRMaW5lVG8ocmVjdENvcm5lclBvaW50KGN1dG9mZlJlY3QsIGNvcm5lcikpOwor
CisgICAgICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CisKKyAgICAgICAgY29udGV4dC5zZXRGaWxs
Q29sb3IoY29sb3IpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAgICBy
ZXR1cm4gYmFkZ2VSZWN0OworICAgIH07CisKKyAgICBjb25zdCBmbG9hdCB2ZXJ0aWNhbE1hcmdp
biA9IDE7CisgICAgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdpbiA9IDI7CisgICAgY29uc3Qg
dW5zaWduZWQgZm9udFNpemUgPSAxMDsKKyAgICBjb25zdCBGbG9hdFNpemUgY3V0b2ZmU2l6ZSgz
LCAzKTsKKworICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkhlbHZldGljYSIpOworICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGZvbnRTaXplKTsKKyAgICBmb250RGVzY3JpcHRpb24u
c2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKKworICAgIEZvbnRDYXNjYWRlIGNhc2NhZGUoV1RG
TW92ZShmb250RGVzY3JpcHRpb24pKTsKKyAgICBjYXNjYWRlLnVwZGF0ZShudWxscHRyKTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAg
IGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IpOworICAgIGNvbnRleHQuc2V0U2hvdWxkQW50
aWFsaWFzKGZhbHNlKTsKKyAgICBjb250ZXh0LnN0cm9rZVJlY3QoYm9yZGVyUmVjdCwgMC41KTsK
KworICAgIEZsb2F0UmVjdCBiYWRnZXNSZWN0ID0gYm9yZGVyUmVjdDsKKyAgICBiYWRnZXNSZWN0
LmluZmxhdGUoLTEpOworCisgICAgZm9yIChhdXRvIGJhZGdlIDogYmFkZ2VzKSB7CisgICAgICAg
IFRleHRSdW4gdGV4dFJ1bihiYWRnZS50ZXh0KTsKKyAgICAgICAgZmxvYXQgdGV4dFdpZHRoID0g
Y2FzY2FkZS53aWR0aCh0ZXh0UnVuKTsKKyAgICAgICAgRmxvYXRTaXplIGJhZGdlU2l6ZShob3Jp
em9udGFsTWFyZ2luICogMiArIHRleHRXaWR0aCwgdmVydGljYWxNYXJnaW4gKiAyICsgZm9udFNp
emUpOworCisgICAgICAgIGF1dG8gYmFkZ2VSZWN0ID0gZHJhd0JhZGdlUmVjdChjb250ZXh0LCBi
YWRnZXNSZWN0LCBiYWRnZS5jb3JuZXIsIGJhZGdlU2l6ZSwgY3V0b2ZmU2l6ZSk7CisKKyAgICAg
ICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFkZ2UuY29sb3IpOworICAgICAgICBjb250ZXh0LmRy
YXdUZXh0KGNhc2NhZGUsIHRleHRSdW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIGhvcml6
b250YWxNYXJnaW4sIGJhZGdlUmVjdC55KCkgKyBmb250U2l6ZSkpOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjY1MTU0ODhh
NWU4NDBhMjMxZmJhZTk4YTI2ZTcwMDBiMTM5NGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEZsb2F0UmVjdDsKKworZW51bSBS
ZWN0Q29ybmVyIHsKKyAgICBSZWN0VG9wTGVmdCAgICAgPSAweDAwLAorICAgIFJlY3RUb3BSaWdo
dCAgICA9IDB4MDEsCisgICAgUmVjdEJvdHRvbUxlZnQgID0gMHgwMiwKKyAgICBSZWN0Qm90dG9t
UmlnaHQgPSAweDAzLAorfTsKKworc3RydWN0IEJhZGdlIHsKKyAgICBSZWN0Q29ybmVyIGNvcm5l
cjsKKyAgICBDb2xvciBjb2xvcjsKKyAgICBTdHJpbmcgdGV4dDsKK307CisKK1dFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYsIGNvbnN0IFZlY3RvcjxCYWRnZT4mKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDNkNTA3NWJjZWRjYmY1MDI4
NzFjZDU1MDkzNWY1MWFjOGRiMmY1NWMuLmY0NGQ5ZTU0M2EzOTQ0MDM5ZmU5OGZlMzRjMDgzMjk1
OTM0YzI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTcyLDkgKzcyLDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdl
RHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2Fs
ZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJP
KSB8fCBVU0UoRElSRUNUMkQpCi0gICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSA9IDA7Ci0jZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggZDM5ZmVhYTgyZjM3
MWNmOGFhZjc2ZDI3ZjMzNTczZjM1MTk4ZDA4OS4uZWE0ZDYzYTk0ZWQ2Y2YwMjIzZmQ5ZWEwNTA4
OGEzN2JkNzEyZDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CkBAIC0zMiw4ICszMiw5IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJ
bWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKLSNpbmNsdWRl
ICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgpAQCAtNzIsNyArNzMsNiBAQCBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwogY2xhc3MgU2hhcmVkQnVmZmVy
Owotc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zOwogc3RydWN0IExlbmd0aDsKIAogLy8gVGhp
cyBjbGFzcyBnZXRzIG5vdGlmaWVkIHdoZW4gYW4gaW1hZ2UgY3JlYXRlcyBvciBkZXN0cm95cyBk
ZWNvZGVkIGZyYW1lcyBhbmQgd2hlbiBpdCBhZHZhbmNlcyBhbmltYXRpb24gZnJhbWVzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDE0
NjQ5MmM0YThkZjkzNWNhZjk0YjlmYjk1NTkwOWFhZDFjYmFmMC4uZGJlMDI1ZWU5ZTFhNDQwZjAy
ZWE5NjY0YTM0Zjk4YTBmNmM1MWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNz
IERyYXdpbmdDb250ZXh0OwogfQogCkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgRGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0KiBkcmF3aW5nQ29udGV4dCgpIHsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYpIHsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRy
YW5zZm9ybSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFNpemUgbG9naWNhbFNpemUoKSBj
b25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGMwMTBhMGYwY2ZjZDhjNWU3YWI2Yzk0YzVjM2MzNmY0
ODM4NmQwMWYuLjU4ZmMxNDgzNmQ5MmFhMjAwMTlmMjBmZWVkYzU1NzFlOWFiNWU5NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5oCkBAIC0zMSwxMyArMzEsMTQgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIK
ICNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7CiBjbGFzcyBIb3N0V2lu
ZG93OwogY2xhc3MgSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9ic2VydmVyLmgKaW5kZXggOGIwODllNTk0YzFhZmNjZWU0ZmZiNTA3MTE1OTc4NzQ2
OTVjYjJkZS4uYjRkNzEwYWM2NzMwYzg1ZGZlZWE3NWVhYjBmM2RiNjY3NmY2MGYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaApAQCAt
NDUsMTAgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlZERhdGFTdGF0
dXNDaGFuZ2VkKGNvbnN0IEltYWdlJiwgRW5jb2RlZERhdGFTdGF0dXMpIHsgfTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlJiwgbG9uZyBsb25nIGRlbHRh
KSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IEltYWdlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRHJhdyhjb25zdCBJbWFnZSYpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5EZXN0
cm95RGVjb2RlZERhdGEoY29uc3QgSW1hZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltYWdl
RnJhbWVBdmFpbGFibGUoY29uc3QgSW1hZ2UmLCBJbWFnZUFuaW1hdGluZ1N0YXRlLCBjb25zdCBJ
bnRSZWN0KiBjaGFuZ2VSZWN0ID0gbnVsbHB0ciwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0
YXR1czo6SW52YWxpZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBuYXRpdmVJbWFnZVdpbGxCZURl
c3Ryb3llZChjb25zdCBJbWFnZSYsIGNvbnN0IE5hdGl2ZUltYWdlUHRyJikgPSAwOworCiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0KiBj
aGFuZ2VSZWN0ID0gbnVsbHB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZShjb25zdCBJbWFnZSYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggNzc1MDMyMjM5YTVkNWFiYWE3
NjNmN2EyNjNlZDdjYjI0NTk4MjY1Mi4uNDU1MTVjNTlhMWZmMjg0Y2Q4ZDI4MDM4MzdiMDg1YjUw
MjJkNmMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcApAQCAtMTMwLDggKzEzMCwxMCBAQCB2b2lkIEltYWdlU291cmNlOjpkZXN0cm95
RGVjb2RlZERhdGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNsdWRlRnJhbWUpCiAgICAg
QVNTRVJUKGZyYW1lQ291bnQgPD0gbV9mcmFtZXMuc2l6ZSgpKTsKIAogICAgIGZvciAoc2l6ZV90
IGluZGV4ID0gMDsgaW5kZXggPCBmcmFtZUNvdW50OyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChp
bmRleCA9PSBleGNsdWRlRnJhbWUpCisgICAgICAgIGlmIChpbmRleCA9PSBleGNsdWRlRnJhbWUg
fHwgIW1fZnJhbWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKQogICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGlmIChtX2ltYWdlICYmIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKS0+bmF0aXZlSW1hZ2VXaWxsQmVEZXN0cm95
ZWQoKm1faW1hZ2UsIG1fZnJhbWVzW2luZGV4XS5uYXRpdmVJbWFnZSgpKTsKICAgICAgICAgZGVj
b2RlZFNpemUgKz0gbV9mcmFtZXNbaW5kZXhdLmNsZWFySW1hZ2UoKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCmluZGV4IDZiMmQ4
MWUzNWIwOGNmNzRmNGYzNjFhZWJjNzRmMzEyOWM3ZDliN2YuLjQzMzc4NzkwYjIyOTFlYTAwYjEy
MDhlMGE1Y2JjOTcyOWY3NzFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuCiAgKgpAQCAtMjcsNTIgKzI3LDE2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKLQot
I2lmIFVTRShDRykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBD
R0ltYWdlKiBDR0ltYWdlUmVmOwotI2VsaWYgVVNFKENBSVJPKQotI2luY2x1ZGUgIlJlZlB0ckNh
aXJvLmgiCi0jZWxpZiBVU0UoV0lOR0RJKQotI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgotI2Vu
ZGlmCi0KLSNpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSA8
ZDJkMS5oPgotI2luY2x1ZGUgPHdpbmNvZGVjLmg+Ci0jZW5kaWYKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZVB0ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9yOwotY2xhc3Mg
RmxvYXRSZWN0OwogY2xhc3MgSW50U2l6ZTsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLQotI2lm
IFVTRShDRykKLXR5cGVkZWYgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE5hdGl2ZUltYWdlUHRyOwot
I2VsaWYgVVNFKERJUkVDVDJEKQotdHlwZWRlZiBDT01QdHI8SUQyRDFCaXRtYXA+IE5hdGl2ZUlt
YWdlUHRyOwotI2VsaWYgVVNFKENBSVJPKQotdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBOYXRpdmVJbWFnZVB0cjsKLSNlbGlmIFVTRShXSU5HREkpCi10eXBlZGVmIFJlZlB0cjxTaGFy
ZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwotI2VuZGlmCiAKIFdFQkNPUkVfRVhQT1JUIEludFNp
emUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUlt
YWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7Ci0KLXZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9y
LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEludFJlY3QmIHNvdXJjZSk7Ci0K
IHZvaWQgY2xlYXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwot
Ci1jbGFzcyBOYXRpdmVJbWFnZUhhbmRsZSB7Ci1wdWJsaWM6Ci0gICAgTmF0aXZlSW1hZ2VQdHIg
aW1hZ2U7Ci19OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hdGl2ZUltYWdlUHRyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q3N2E4OThkMzk4NzM2NDExMTc0ZjE5
Zjc1MTQwNzFkMDdjOTU4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFVTRShDRykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Cit0eXBlZGVmIHN0cnVjdCBDR0lt
YWdlKiBDR0ltYWdlUmVmOworI2VsaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgIlJlZlB0ckNhaXJv
LmgiCisjZWxpZiBVU0UoV0lOR0RJKQorI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFVTRShDRykKK3R5cGVkZWYgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKERJUkVDVDJEKQordHlwZWRl
ZiBDT01QdHI8SUQyRDFCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOworI2VsaWYgVVNFKENBSVJPKQor
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJbWFnZVB0cjsKKyNlbGlmIFVT
RShXSU5HREkpCit0eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmNTQyZGZlYzg0
N2FiYzM3MWFhMmYxZThlNGI4ZGQ5ZmIxMTBlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3Vz
aW5nIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRl
eCBhMTA0NjU2Y2I1ZDVkZGVhMDMyMWRhYTQ0YTA0NDY1MTc1MDg4ZTRmLi4yYWI5Y2UzYmJhMjVl
YTU0ODU0NDhmMzRhYTc3N2FmZTA0ZTczNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCkBAIC0xMjMsMTYgKzEyMywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCiAgICAgQ2Fpcm86
OmRyYXdSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgYm9yZGVyVGhpY2tuZXNzLCBzdGF0
ZS5maWxsQ29sb3IsIHN0YXRlLnN0cm9rZVN0eWxlLCBzdGF0ZS5zdHJva2VDb2xvcik7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybURyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwpIHsKLSAgICAg
ICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgQVNTRVJUKGhh
c1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7CiAg
ICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgp
LCBkZXN0UmVjdCwgc3JjUmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5IH0sIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IGI2NWI0ZDY0NDA2YmViNzZjNDA5
ZDNlOGM2NTQ5NzVjYTlmN2ViNjMuLmZlOTA0OTUyN2FmZWNlZGIxN2I4MWY2MmM0NmU4ZjI3MWRi
ODI3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcApAQCAtMjc5LDEz
ICsyNzksMTkgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdl
UGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6
ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBncmFwaGljc0NvbnRleHQoKS5zdGF0ZSgpOwogICAgIENh
aXJvOjpkcmF3TmF0aXZlSW1hZ2UobV9wbGF0Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0
UmVjdCwgc3JjUmVjdCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5
IH0sIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAorYm9vbCBH
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmluZGV4
IGU1ZTIwNzQ4YzZkNzYyMGYxMGNmMjE1NjYyOGVmN2UwYmU2MDFjN2IuLjJjMWM3MDE1NGMxZmE0
NjYwNzJjZTcyMmZmNjQzNjZmNWFlOTc5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5oCkBAIC03NCw3ICs3NCw5IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
d0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUm
LCBJbWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBG
bG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZWEzN2M3
ODZlZjZkYjZlNWFmZWI5MTc3OThmYTUzMWJmOThhYzg0ZC4uYzI5MmRiNDJjYzBmOWYwZjljNDdj
NzhlZDY5YzJkODMzMWM5ODIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjgwLDE2ICsyODAs
MTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBt
X2RhdGEtPm1fdXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9y
bURyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFn
ZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogI2lmICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1v
bm90b25pY1RpbWU6Om5vdygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwCmluZGV4IDVjYzVjMjA3YjQ0YTQ4
MzViZTJlMDgwMjhhM2E3MTA5NWE1NWUxZTAuLjQwMGQ2ZWYwYTQ1NzdkNWQ3Y2M1YmQ5Y2I2NDZh
NWJhZGViZGFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL05hdGl2ZUltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCiAjaW5jbHVkZSAiU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oIgpAQCAtNjksNDAgKzY4LDYg
QEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1h
Z2VQdHImIGltYWdlKQogICAgIHJldHVybiBjbGFtcFRvQ29tcG9uZW50Qnl0ZXM8U1JHQkE+KHBp
eGVsWzBdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzFdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVs
WzJdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzNdKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
Ci17Ci0gICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBp
cyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgotICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6ZSA9
IG5hdGl2ZUltYWdlU2l6ZShpbWFnZSk7Ci0gICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51
c2VzV2lkdGhBc0hlaWdodCgpKQotICAgICAgICBzdWJzYW1wbGVkSW1hZ2VTaXplID0gc3Vic2Ft
cGxlZEltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotCi0gICAgLy8gc3JjUmVjdCBpcyBpbiB0
aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHVuc3Vic2FtcGxlZCBpbWFnZSwgc28gd2UgaGF2ZSB0byBt
YXAgaXQgdG8gdGhlIHN1YnNhbXBsZWQgaW1hZ2UuCi0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3Jj
UmVjdCA9IHNyY1JlY3Q7Ci0gICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkK
LSAgICAgICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9
LCBzcmNTaXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOwotCi0gICAg
Y29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RS
ZWN0LCBhZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMpOwotfQotCi12b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50
UmVjdCYgc291cmNlKQotewotICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpOwotICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKLQot
ICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCBDR1JlY3RNYWtlKGRlc3RpbmF0aW9u
LngoKSwgZGVzdGluYXRpb24ueSgpLCBzb3VyY2Uud2lkdGgoKSwgc291cmNlLmhlaWdodCgpKSk7
Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7Ci0KLSAgICBDR0Zsb2F0
IGltYWdlSGVpZ2h0ID0gQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3Rv
cjsKLSAgICBDR0Zsb2F0IGltYWdlV2lkdGggPSBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkp
IC8gc2NhbGVGYWN0b3I7Ci0KLSAgICBDR0Zsb2F0IGRlc3RYID0gZGVzdGluYXRpb24ueCgpIC0g
c291cmNlLngoKTsKLSAgICBDR0Zsb2F0IGRlc3RZID0gLWltYWdlSGVpZ2h0IC0gZGVzdGluYXRp
b24ueSgpICsgc291cmNlLnkoKTsKLQotICAgIENHQ29udGV4dERyYXdJbWFnZShjZ0NvbnRleHQs
IENHUmVjdE1ha2UoZGVzdFgsIGRlc3RZLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCksIGltYWdl
LmdldCgpKTsKLQotICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKLX0KLQog
dm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFn
ZSkKIHsKICNpZiBDQUNIRV9TVUJJTUFHRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKaW5kZXggYTYz
ODM2OTIxZDhkZmNhMTY2MzhiZDg2YWE5MzNlZmE3ZTI2NGQ4MS4uYjM1ODkzYzU4MmU0MTdjMmJi
MzM1MmE1MTZlM2NiNTlmZTAyNDNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKQEAgLTYyLDgg
KzYyLDkgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIERyYXdJbWFnZSwK
ICAgICBEcmF3VGlsZWRJbWFnZSwKICAgICBEcmF3VGlsZWRTY2FsZWRJbWFnZSwKLSNpZiBVU0Uo
Q0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIERyYXdOYXRpdmVJbWFnZSwK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgRHJhd0ltYWdlQnVmZmVyLAogI2VuZGlmCiAg
ICAgRHJhd1BhdHRlcm4sCiAgICAgRHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMjNjYzA3ZThhZTQ0MmJkY2VhMGQzNjc0
YTVhODU1MWM2NWNmZGM4Ny4uZDQ2MTdkMzUxNmY0ZjNlNTFkNzVkNjQ0MzRhNmEzOTQ1N2EwMDAx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNw
cApAQCAtMzMsOSArMzMsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKIAotRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3Jk
ZXI6Ok9ic2VydmVyKiBvYnNlcnZlcikKK0RyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRp
YWxDVE0sIFJlY29yZGVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2NvbnRleHQoWyZd
KEdyYXBoaWNzQ29udGV4dCYgZGlzcGxheUxpc3RDb250ZXh0KSB7Ci0gICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlzdENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdy
YXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlh
bENUTSwgb2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZWNvcmRlcj4oZGlz
cGxheUxpc3RDb250ZXh0LCBtX2Rpc3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBG
bG9hdFJlY3QoeyB9LCBsb2dpY2FsU2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKTsKICAgICB9
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgK
aW5kZXggN2I2NzNmMzJhZDgxNWE1MDA4MWI3ZTdhYjEwODEzMTcxN2ZkZTU0My4uMjJlZDI1NmU4
MGFkMjkzYTA1MjA2OWI3NDMwODhhMTM1MWY0N2NjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBE
aXNwbGF5TGlzdCB7CiBjbGFzcyBEcmF3aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgRHJhd2luZ0NvbnRleHQoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFs
Q1RNID0geyB9LCBSZWNvcmRlcjo6T2JzZXJ2ZXIqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9F
WFBPUlQgRHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNID0geyB9LCBSZWNvcmRlcjo6RGVsZWdhdGUqID0g
bnVsbHB0cik7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBjb25zdF9jYXN0PERyYXdpbmdDb250ZXh0Jj4oKnRoaXMpLm1fY29udGV4dDsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIFJlY29yZGVyJiByZWNvcmRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmgKaW5kZXggNmZkOTEyZGZiOGZlMTFjMDk4ZGQ2MTI2YThjODc4
YWM2YmE3YWUwMi4uMzI1OTllMDYyZDdjZjU5ZDFkYzJlYWQwMWU3NjBkNjZlM2Y3ZWMzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29u
Y3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBSZWNvcmRlcjo6T2JzZXJ2ZXIg
eworY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT4gewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAKIHB1YmxpYzoKQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJs
aWM6CiAKICAgICBJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgZGF0
YUJhY2tlbmQsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAgICAgICAgOiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcihXVEZNb3ZlKGRhdGFCYWNrZW5kKSkKLSAgICAgICAgLCBtX2RyYXdpbmdDb250
ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSwgdGhpcykKKyAgICAgICAg
LCBtX2RyYXdpbmdDb250ZXh0KHNpemUsIGluaXRpYWxEcmF3aW5nQ29udGV4dENUTShzaXplKSkK
ICAgICB7CiAgICAgfQogCi0gICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplKQot
ICAgICAgICA6IG1fZHJhd2luZ0NvbnRleHQoc2l6ZSwgaW5pdGlhbERyYXdpbmdDb250ZXh0Q1RN
KHNpemUpLCB0aGlzKQorICAgIEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVj
b3JkZXI6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCisgICAgICAgIDogbV9kcmF3aW5n
Q29udGV4dChzaXplLCBpbml0aWFsRHJhd2luZ0NvbnRleHRDVE0oc2l6ZSksIGRlbGVnYXRlKQog
ICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCAx
OGQ3MGNmYmQyNDA5ODU4Njg0NDlmYjM1OWE5Zjg1ZWJkZmQzNjM2Li5mMTVjNzcwZTFkYTRkNTFm
NWZhNDY2MWU3YzUwZDc0MDRmMzRhZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNs
dWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIFVT
RShDRykKQEAgLTEwNiw5ICsxMDUsMTEgQEAgc2l6ZV90IEl0ZW06OnNpemVJbkJ5dGVzKGNvbnN0
IEl0ZW0mIGl0ZW0pCiAgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1RpbGVkSW1h
Z2U+KGl0ZW0pKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFnZToKICAg
ICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oaXRlbSkp
OwotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRp
dmVJbWFnZToKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+
KGl0ZW0pKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdJbWFnZUJ1
ZmZlcj4oaXRlbSkpOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAg
ICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pKTsKQEAgLTcw
MywzMiArNzA0LDIyIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBEcmF3VGlsZWRTY2FsZWRJbWFnZSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9
CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotRHJhd05hdGl2
ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
K0RyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlwZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZSkK
LSNpZiBVU0UoQ0cpCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3RvcmUgYW4gaW1hZ2UgZm9yIENh
aXJvLgogICAgICwgbV9pbWFnZShpbWFnZSkKLSNlbmRpZgogICAgICwgbV9pbWFnZVNpemUoaW1h
Z2VTaXplKQogICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCiAgICAgLCBtX3NyY1Jl
Y3Qoc3JjUmVjdCkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewotI2lmICFVU0UoQ0cpCi0g
ICAgVU5VU0VEX1BBUkFNKGltYWdlKTsKLSNlbmRpZgogfQogCiBEcmF3TmF0aXZlSW1hZ2U6On5E
cmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBs
eShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0jaWYgVVNFKENHKQotICAgIGNv
bnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9u
UmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7Ci0jZW5kaWYKKyAgICBBU1NFUlQobmF0aXZlSW1hZ2VQdHIoKSk7CisgICAgY29udGV4
dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2VQdHIoKSwgbV9pbWFnZVNpemUsIG1fZGVzdGlu
YXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0p
CkBAIC03MzksNiArNzMwLDMzIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0pCiAgICAgdHMuZHVtcFByb3Bl
cnR5KCJkZXN0LXJlY3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKICAgICByZXR1cm4gdHM7
CiB9CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFn
ZUJ1ZmZlcihSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQorICAgIDogRHJhd2luZ0l0ZW0oSXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcikKKyAgICAsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RS
ZWN0KQorICAgICwgbV9zcmNSZWN0KHNyY1JlY3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykK
K3sKK30KKworRHJhd0ltYWdlQnVmZmVyOjp+RHJhd0ltYWdlQnVmZmVyKCkgPSBkZWZhdWx0Owor
Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sK
KyAgICAvLyBTaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVsZWdhdGUuCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBEcmF3SW1hZ2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMgPDwgc3RhdGlj
X2Nhc3Q8Y29uc3QgRHJhd2luZ0l0ZW0mPihpdGVtKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInJl
bW90ZS1yZXNvdXJjZS1pZGVudGlmaWVyIiwgaXRlbS5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIo
KSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtcmVjdCIsIGl0ZW0uc291cmNlKCkpOwor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiZGVzdC1yZWN0IiwgaXRlbS5kZXN0aW5hdGlvblJlY3QoKSk7
CisgICAgcmV0dXJuIHRzOworfQogI2VuZGlmCiAKIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJ
bWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCkBAIC0xNDY5LDggKzE0ODcsOSBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSXRlbVR5cGUmIHR5cGUp
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlOiB0cyA8PCAiZHJhdy1pbWFnZSI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZEltYWdlOiB0cyA8PCAiZHJhdy10aWxlZC1p
bWFnZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOiB0
cyA8PCAiZHJhdy10aWxlZC1zY2FsZWQtaW1hZ2UiOyBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVT
RShDQUlSTykKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHRzIDw8ICJkcmF3
LW5hdGl2ZS1pbWFnZSI7IGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWltYWdlLWJ1ZmZlciI7IGJy
ZWFrOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46IHRzIDw8ICJkcmF3
LXBhdHRlcm4iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDogdHMgPDwgImRy
YXctcmVjdCI7IGJyZWFrOwpAQCAtMTU3MSwxMCArMTU5MCwxMyBAQCBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtJiBpdGVtKQogICAgIGNhc2UgSXRlbVR5
cGU6OkRyYXdUaWxlZFNjYWxlZEltYWdlOgogICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3VGls
ZWRTY2FsZWRJbWFnZT4oaXRlbSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShDRykgfHwgVVNF
KENBSVJPKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgdHMg
PDwgZG93bmNhc3Q8RHJhd05hdGl2ZUltYWdlPihpdGVtKTsKICAgICAgICAgYnJlYWs7CisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoK
KyAgICAgICAgdHMgPDwgZG93bmNhc3Q8RHJhd0ltYWdlQnVmZmVyPihpdGVtKTsKKyAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICAgICAg
dHMgPDwgZG93bmNhc3Q8RHJhd1BhdHRlcm4+KGl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKaW5kZXggY2I2ODRkMjNjZTc1YjRmYWI5ZWM0MTMxNjI3YWNkMzJkNjI0YWVkYi4u
M2I2NGQzYmEzNDA3NTQ2MDMxZWU5YmIwY2FhMzI3NjU5Zjk1NGQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEYXRh
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGF0dGVy
bi5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtMTQzMiwzMiAr
MTQzMyw1MiBAQCBPcHRpb25hbDxSZWY8RHJhd1RpbGVkU2NhbGVkSW1hZ2U+PiBEcmF3VGlsZWRT
Y2FsZWRJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZQogICAgIHJldHVybiBEcmF3VGlsZWRT
Y2FsZWRJbWFnZTo6Y3JlYXRlKCppbWFnZUhhbmRsZS0+aW1hZ2UsICpkZXN0aW5hdGlvbiwgKnNv
dXJjZSwgKnRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCAqaW1hZ2VQYWludGluZ09wdGlv
bnMpOwogfQogCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKIGNs
YXNzIERyYXdOYXRpdmVJbWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxEcmF3TmF0aXZlSW1hZ2U+IGNyZWF0ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYg
aW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBOYXRpdmVJbWFn
ZVR5cGUgPSBWYXJpYW50PE5hdGl2ZUltYWdlUHRyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+
OworCisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyPihtX2ltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIHJldHVybiBXVEY6OmdldDxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI+KG1faW1h
Z2UpOworICAgIH0KKworICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlUHRyKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxOYXRpdmVJbWFnZVB0
cj4obV9pbWFnZSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IFdURjo6Z2V0PE5hdGl2ZUltYWdlUHRyPihtX2ltYWdlKTsKKyAgICB9CisjZWxzZQorICAgIHVz
aW5nIE5hdGl2ZUltYWdlVHlwZSA9IE5hdGl2ZUltYWdlUHRyOworCisgICAgTmF0aXZlSW1hZ2VQ
dHIgbmF0aXZlSW1hZ2VQdHIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlOyB9CisjZW5kaWYKKyAg
ICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlVHlw
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd05h
dGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7
CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd05hdGl2ZUltYWdlKCk7
CiAKKyAgICBGbG9hdFNpemUgaW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNpemU7
IH0KICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAg
ICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRp
b25SZWN0OyB9CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0
ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlVHlw
ZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7
CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQm
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCi0jaWYgVVNF
KENHKQotICAgIE5hdGl2ZUltYWdlUHRyIG1faW1hZ2U7Ci0jZW5kaWYKKyAgICBOYXRpdmVJbWFn
ZVR5cGUgbV9pbWFnZTsKICAgICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0
IG1fZGVzdGluYXRpb25SZWN0OwogICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7CkBAIC0xNDY3LDEw
ICsxNDg4LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIERyYXdO
YXRpdmVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0jaWYgVVNFKENH
KQotICAgIE5hdGl2ZUltYWdlSGFuZGxlIGhhbmRsZSB7IG1faW1hZ2UgfTsKLSAgICBlbmNvZGVy
IDw8IGhhbmRsZTsKLSNlbmRpZgorICAgIGVuY29kZXIgPDwgbV9pbWFnZTsKICAgICBlbmNvZGVy
IDw8IG1faW1hZ2VTaXplOwogICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CiAgICAg
ZW5jb2RlciA8PCBtX3NyY1JlY3Q7CkBAIC0xNDgwLDEyICsxNDk4LDEwIEBAIHZvaWQgRHJhd05h
dGl2ZUltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+CiBPcHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gRHJhd05hdGl2ZUltYWdl
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSNpZiBVU0UoQ0cpCi0gICAgT3B0aW9uYWw8
TmF0aXZlSW1hZ2VIYW5kbGU+IGhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGhhbmRsZTsKLSAgICBp
ZiAoIWhhbmRsZSkKKyAgICBPcHRpb25hbDxOYXRpdmVJbWFnZVR5cGU+IGltYWdlOworICAgIGRl
Y29kZXIgPj4gaW1hZ2U7CisgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSNlbmRpZgogCiAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7CiAgICAg
ZGVjb2RlciA+PiBpbWFnZVNpemU7CkBAIC0xNTA3LDE0ICsxNTIzLDc1IEBAIE9wdGlvbmFsPFJl
ZjxEcmF3TmF0aXZlSW1hZ2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmICghb3B0aW9ucykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
I2lmIFVTRShDRykKLSAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZSA9IGhhbmRsZS0+aW1hZ2U7Ci0j
ZWxzZQotICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlID0gbnVsbHB0cjsKLSNlbmRpZgotICAgIHJl
dHVybiBEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgKmltYWdlU2l6ZSwgKmRlc3RpbmF0
aW9uUmVjdCwgKnNyY1JlY3QsICpvcHRpb25zKTsKKyAgICByZXR1cm4gRHJhd05hdGl2ZUltYWdl
OjpjcmVhdGUoKmltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb25SZWN0LCAqc3JjUmVjdCwg
Km9wdGlvbnMpOwogfQotI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitjbGFzcyBE
cmF3SW1hZ2VCdWZmZXIgOiBwdWJsaWMgRHJhd2luZ0l0ZW0geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RHJhd0ltYWdlQnVmZmVyPiBjcmVhdGUoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0ltYWdlQnVmZmVyKHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpOwor
ICAgIH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdJbWFnZUJ1ZmZlcigpOwor
CisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisgICAgRmxvYXRS
ZWN0IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQorICAgIEZsb2F0UmVjdCBk
ZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQorICAg
IEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7
IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPERy
YXdJbWFnZUJ1ZmZlcj4+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgV0VCQ09S
RV9FWFBPUlQgRHJhd0ltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJik7CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0IG92ZXJyaWRlOworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhj
b25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rlc3RpbmF0
aW9uUmVjdDsgfQorCisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyOworICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKKyAgICBGbG9h
dFJlY3QgbV9zcmNSZWN0OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKK307
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlbW90ZVJlc291
cmNlSWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0OworICAgIGVu
Y29kZXIgPDwgbV9zcmNSZWN0OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UmVmPERyYXdJbWFnZUJ1ZmZlcj4+IERyYXdJ
bWFnZUJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgZGVj
b2RlciA+PiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgaWYgKCFyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxGbG9hdFJlY3Q+IGRlc3RpbmF0aW9uOworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb247Cisg
ICAgaWYgKCFkZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gc291cmNlOworICAgIGRlY29kZXIgPj4gc291cmNlOworICAg
IGlmICghc291cmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25z
OworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHJldHVybiBEcmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZSgqcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCAqZGVzdGluYXRpb24sICpzb3VyY2UsICpvcHRpb25zKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKIGNsYXNzIERyYXdQYXR0ZXJuIDogcHVibGljIERyYXdpbmdJdGVtIHsK
IHB1YmxpYzoKQEAgLTI5NzMsMTAgKzMwNTAsMTMgQEAgdm9pZCBJdGVtOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3VGlsZWRTY2FsZWRJbWFn
ZToKICAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3VGlsZWRTY2FsZWRJbWFnZT4oKnRo
aXMpOwogICAgICAgICBicmVhazsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJ
UkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKICAgICAgICAgZW5j
b2RlciA8PCBkb3duY2FzdDxEcmF3TmF0aXZlSW1hZ2U+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1
ZmZlcjoKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3SW1hZ2VCdWZmZXI+KCp0aGlz
KTsKKyAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVy
bjoKICAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3UGF0dGVybj4oKnRoaXMpOwpAQCAt
MzE2NCwxMSArMzI0NCwxNSBAQCBPcHRpb25hbDxSZWY8SXRlbT4+IEl0ZW06OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogICAgICAgICBpZiAoYXV0byBpdGVtID0gRHJhd1RpbGVkU2NhbGVkSW1h
Z2U6OmRlY29kZShkZWNvZGVyKSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNl
X2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAgICBicmVhazsKLSNpZiBVU0UoQ0cp
IHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdO
YXRpdmVJbWFnZToKICAgICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdOYXRpdmVJbWFnZTo6ZGVj
b2RlKGRlY29kZXIpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJ
dGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAgICAgIGlmIChh
dXRvIGl0ZW0gPSBEcmF3SW1hZ2VCdWZmZXI6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOworICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAg
ICAgICBpZiAoYXV0byBpdGVtID0gRHJhd1BhdHRlcm46OmRlY29kZShkZWNvZGVyKSkKQEAgLTMz
MjYsOCArMzQxMCw5IEBAIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShE
cmF3R2x5cGhzKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJ
bWFnZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRJ
bWFnZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3VGlsZWRT
Y2FsZWRJbWFnZSkKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykKIFNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3TmF0aXZlSW1hZ2UpCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdJbWFn
ZUJ1ZmZlcikKICNlbmRpZgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVN
KERyYXdQYXR0ZXJuKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVNKERy
YXdSZWN0KQpAQCAtMzM4OCw4ICszNDczLDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdUaWxlZEltYWdlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd1RpbGVkU2NhbGVkSW1hZ2UsCi0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVT
RShESVJFQ1QyRCkKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRp
dmVJbWFnZSwKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIsCiAjZW5kaWYKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXR0ZXJuLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6RHJhd1JlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKaW5kZXggZGQzNWVmMWEyOGE5MDcxZGFlZjlhMGE4ZDc3ZDk4NDAxZWEwODAxZC4uOTU1
NzVkMGY0MTRjMmVkZTVmMTkxMDIwMDZlMzZmNWQ4NDRhNDc3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1SZWNvcmRlcjo6UmVjb3JkZXIo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xp
cCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBPYnNlcnZlciogb2JzZXJ2ZXIp
CitSZWNvcmRlcjo6UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBEaXNwbGF5TGlz
dCYgZGlzcGxheUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3Qg
RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RN
LCBEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBHcmFwaGljc0NvbnRleHRJbXBsKGNvbnRleHQs
IGluaXRpYWxDbGlwLCBBZmZpbmVUcmFuc2Zvcm0oKSkKICAgICAsIG1fZGlzcGxheUxpc3QoZGlz
cGxheUxpc3QpCi0gICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9kZWxlZ2F0ZShk
ZWxlZ2F0ZSkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwg
IlxuUmVjb3JkaW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRlU3Rh
Y2suYXBwZW5kKHsgc3RhdGUsIGluaXRpYWxDVE0sIGluaXRpYWxDbGlwIH0pOwpAQCAtNTIsMTUg
KzUyLDE1IEBAIFJlY29yZGVyOjp+UmVjb3JkZXIoKQogICAgIExPRyhEaXNwbGF5TGlzdHMsICJS
ZWNvcmRlZCBkaXNwbGF5IGxpc3Q6XG4lcyIsIG1fZGlzcGxheUxpc3QuZGVzY3JpcHRpb24oKS5k
YXRhKCkpOwogfQogCi12b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiBp
bWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkKK3ZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJbWFnZURhdGEmIGltYWdlRGF0YSwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KQogewotICAgIGFwcGVuZEl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlB1dEltYWdlRGF0YTo6Y3JlYXRlKGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRl
c3RQb2ludCwgZGVzdEZvcm1hdCkpOworICAgIGFwcGVuZEl0ZW0oUHV0SW1hZ2VEYXRhOjpjcmVh
dGUoaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0
KSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0mIGl0ZW0p
CiB7Ci0gICAgaWYgKG1fb2JzZXJ2ZXIpCi0gICAgICAgIG1fb2JzZXJ2ZXItPndpbGxBcHBlbmRJ
dGVtKGl0ZW0pOworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT53aWxs
QXBwZW5kSXRlbShpdGVtKTsKIAogICAgIGlmIChpdGVtLmlzRHJhd2luZ0l0ZW0oKQogI2lmIFVT
RShDRykKQEAgLTEzMiwxMiArMTMyLDI5IEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAgICAg
cmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwogfQogCi0jaWYgVVNFKENHKSB8fCBV
U0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLXZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlKiBj
YWNoZWRJbWFnZSkKIHsKKyAgICBpZiAobV9kZWxlZ2F0ZSAmJiBjYWNoZWRJbWFnZSkgeworICAg
ICAgICBpZiAoYXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd05hdGl2ZUltYWdlSXRl
bShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgKmNhY2hlZElt
YWdlKSkgeworICAgICAgICAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChzdGF0aWNfcmVm
ZXJlbmNlX2Nhc3Q8RHJhd2luZ0l0ZW0+KGl0ZW0ucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVF
eHRlbnQoRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpKTsKIH0KLSNlbmRpZgorCitib29sIFJlY29yZGVyOjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCit7CisgICAgaWYgKCFtX2RlbGVnYXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoYXV0byBpdGVtID0gbV9kZWxlZ2F0ZS0+Y3JlYXRlRHJhd0ltYWdlQnVmZmVySXRl
bShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpIHsKKyAgICAgICAgYXBwZW5k
SXRlbUFuZFVwZGF0ZUV4dGVudChzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8RHJhd2luZ0l0ZW0+KGl0
ZW0ucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
CmluZGV4IDllZTFkMzkzOGYyMzJmM2YxOGQ5NzhhZjcxODcwMWQ4YmU0NjMwNzIuLmUxNDBiZTEx
ZDdkNmE3NjY2Nzk2MTU2OWQxNDVjNGUzMzg1YzNlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaApAQCAtMjgsMTIgKzI4LDE0IEBACiAjaW5jbHVkZSAiRGlzcGxheUxp
c3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiSW1hZ2Uu
aCIgLy8gRm9yIEltYWdlOjpUaWxlUnVsZS4KKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlw
bGljYXRpb24gOiB1aW50OF90OworY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBGbG9hdFBvaW50
OwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR2x5cGhCdWZmZXI7CkBAIC01Myw4ICs1NSw4IEBA
IGNsYXNzIFJlY29yZGVyIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEltcGwgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVyKTsK
IHB1YmxpYzoKLSAgICBjbGFzcyBPYnNlcnZlcjsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRl
cihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgT2JzZXJ2ZXIqID0gbnVsbHB0cik7CisgICAgY2xhc3MgRGVsZWdhdGU7CisgICAgV0VCQ09S
RV9FWFBPUlQgUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiwgRGlzcGxheUxpc3QmLCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIERlbGVnYXRlKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgflJlY29yZGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dElt
YWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJbWFnZURh
dGEmLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwpAQCAtNjMsOSArNjUsMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KFJlZjxEcmF3aW5nSXRl
bT4mJik7CiAKLSAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgY2xhc3MgRGVsZWdhdGUgewogICAg
IHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KKyAgICAgICAgdmlydHVh
bCB+RGVsZWdhdGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCBSZWZQdHI8SXRlbT4gY3JlYXRlRHJh
d0ltYWdlQnVmZmVySXRlbShJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVt
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBDYWNoZWRJ
bWFnZSYpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxBcHBl
bmRJdGVtKGNvbnN0IEl0ZW0mKSB7IH07CiAgICAgfTsKIApAQCAtMTA0LDkgKzEwOCw5IEBAIHBy
aXZhdGU6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9p
bnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdl
RHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2Fs
ZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0jaWYgVVNFKENHKSB8fCBVU0Uo
Q0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKLSNlbmRpZgorCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiwgQ2FjaGVkSW1hZ2UqKSBvdmVycmlkZTsKKyAgICBib29sIGRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0
IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgb3ZlcnJpZGU7CkBAIC0xODgsNyAr
MTkyLDcgQEAgcHJpdmF0ZToKICAgICBDb250ZXh0U3RhdGUmIGN1cnJlbnRTdGF0ZSgpOwogCiAg
ICAgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7
CisgICAgRGVsZWdhdGUqIG1fZGVsZWdhdGU7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAz
Mj4gbV9zdGF0ZVN0YWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAppbmRleCBmMzFkMzc1YjAyZGEwOTc5Mjg5YWNjMjAwZGQ4NjJmYWUxMzQxMDRi
Li40YjVlM2U0M2IwMzk2NGE1MWMyNzNlNWJlN2FlZGIwZGYxYWE5MWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKaW5kZXgg
MThiNGY4ZGU5NzE3MGNlNjQ0ZWI2NGJlM2VhYjg1N2YzYTc0MzJmNC4uNjI5OGNmMzYwNzNjN2Fl
NDRmNDNjNmI1NjQ0MjJiMzdiODZjZjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZl
clBpcGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAog
I2luY2x1ZGUgIkltYWdlQnVmZmVyUGlwZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiTmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmgiCiAjaW5jbHVk
ZSAiTmljb3NpYVBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmNwcAppbmRleCAzMDRmYWNiYWIxNTIxNzkxZGFhODZkYjE1MzE3
NTNlMzg2NzEwODRkLi43YzE0ZjNlN2VlMzM5Y2IzYTUxNGY5MDNjNDg3NGQxNzE4OWQ1MmYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29y
ZGVyLmNwcApAQCAtNTQ5LDcgKzU0OSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlv
blJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0CiAgICAg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0Nv
bnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1
bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRp
b25SZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBDYWNoZWRJbWFnZSopCiB7CiAgICAgc3RydWN0IERy
YXdOYXRpdmVJbWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgSW1hZ2VQYWludGlu
Z09wdGlvbnMsIGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKICAgICAgICAgdmlydHVhbCB+
RHJhd05hdGl2ZUltYWdlKCkgPSBkZWZhdWx0OwpAQCAtNTcwLDYgKzU3MCwxMiBAQCB2b2lkIENh
aXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYgaW1hZ2UsIGNvbnN0CiAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdl
PihSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5KSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpKTsKIH0KIAor
Ym9vbCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIHN0cnVjdCBEcmF3UGF0dGVybiBmaW5hbCA6
IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+
LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBGbG9hdFBv
aW50LCBJbWFnZVBhaW50aW5nT3B0aW9ucz4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9O
aWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCmluZGV4IDU3MmZmMjE2NmY2ZTk3M2E3NjNi
NjdjYjZiYjk2ZjQzZjI2YThkNTAuLjFkNDkwMTNjODljZjEwMTRlYzliMmI5MjA3ZGVjZWViOTEz
YzM4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlv
blJlY29yZGVyLmgKQEAgLTY3LDcgKzY3LDkgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVk
SW1hZ2UoV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJ
bWFnZTo6VGlsZVJ1bGUsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisKKyAgICBi
b29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmLCBX
ZWJDb3JlOjpDYWNoZWRJbWFnZSopIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2Vi
Q29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHREaXJlY3QyRC5jcHAKaW5kZXggMzc0MDcxNzE1YmNiNzkxZDU4OWQ1MGQ5OWIyOWM2NmIwMTBi
NzA4MS4uNTdiYTg1OGZmOTljMmRiMjlmNWQ5MTQ5MmU2YWFjOGVkOTc0ZWM5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERp
cmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC0yMDcsMTYgKzIwNywxMSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIERpcmVjdDJEOjpyZXN0b3Jl
KCpwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0
aXZlSW1hZ2UoY29uc3QgQ09NUHRyPElEMkQxQml0bWFwPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBHcmFw
aGljc0NvbnRleHQ6OnBsYXRmb3JtRHJhd05hdGl2ZUltYWdlKGNvbnN0IENPTVB0cjxJRDJEMUJp
dG1hcD4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2
ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7
CiAgICAgYXV0byYgc3RhdGUgPSB0aGlzLT5zdGF0ZSgpOwogICAgIERpcmVjdDJEOjpkcmF3TmF0
aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5nZXQoKSwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgc3RhdGUuYWxwaGEsIERpcmVjdDJEOjpTaGFkb3dTdGF0
ZShzdGF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UyNDdhN2FkNGNkMjk1MzhlNGVh
ZjQwYmQ4MDM2OTY4NjAwOGI4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
Ci0KLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVy
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgLCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkKLXsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IFdURk1vdmUoaGFuZGxlKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9p
ZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4
dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBt
X2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRk
MDVlYWVmNTQ5NDE2ZmRiNjQyNTk1MmUwYjRjZjNhYTIwNWVjMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5j
bHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJG
bHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNz
IEltYWdlRGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKLQotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZl
ZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwot
Ci1wcm90ZWN0ZWQ6Ci0gICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0KLSAg
ICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbi4KLSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKLSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllcik7Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIGJhY2tlbmQoKSB7
IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsgfQotCi1wcml2YXRlOgotICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk7Ci0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA3NzIxY2NlODQ1NjI2OWFlZjkwMjBiOGJkODk2
NWRkMzViNzIyZGRjLi4xZDFiNWVlOGZjZjA3ZWZjMzI5ZDc5ODFmM2IwYTFhYzJlZmJlNzFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTI4LDI5ICsyOCwyOSBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJD
b3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1Ymxp
YyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgewogICAgIHVzaW5nIEJhc2VDb25j
cmV0ZUltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlw
ZT47CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKKyAgICB1c2luZyBCYXNlQ29u
Y3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1
dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJv
eHk+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgICAgICByZXR1
cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5PihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB9CiAKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5k
VHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllcikKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5k
VHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihX
VEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmll
cikKKyAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkpCiAgICAgewotICAgICAgICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+
bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29s
dXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2lj
YWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9u
U2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQog
CiAgICAgflJlbW90ZUltYWdlQnVmZmVyUHJveHkoKQpAQCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpm
bHVzaERyYXdpbmdDb250ZXh0OwotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpw
dXRJbWFnZURhdGE7Ci0KICAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgewpAQCAtNzMsMTggKzcwLDYg
QEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92
ZXJyaWRlCi0gICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsK
LSAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hD
b250ZXh0KGZsdXNoSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlk
ZQotICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFn
ZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTk4LDEyICs4
MywxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAot
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5hcHBseVJlc291cmNlSXRlbShpdGVtLCBjb250ZXh0KTsKICAgICB9CiAKICAg
ICB2b2lkIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0
ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1
dG8gcHJvY2VzcyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAg
ICAgIGF1dG8gcHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMTcsNiArMTAyLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBjb250ZXh0
LnBhaW50RnJhbWVGb3JNZWRpYSgqcGxheWVyLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgIH0K
KworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAKaW5kZXggNzUzYTVjOGJhOTdmZTcyMDgzMTA1OGU4NGM1Y2Q4M2I0YjE3
NTU3OS4uZDRkYmJhZDBkMTkyOTM1NjUyNjVkZTAzYzMxMTFjM2FlMzJlMzUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5TWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1
NCwxMSBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6On5SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBj
b25zdAoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Cit9
CisKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2
NCArNzEsNDYgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpCitib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6YXBwbHlSZXNvdXJjZUl0ZW0o
RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKLSAg
ICBhdXRvKiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmdldCgpOwotICAgIGlmICghZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250
YWlucyhpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dp
Y2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFw
LmFkZChpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChyZW5kZXJpbmdNb2Rl
ID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIGltYWdlQnVm
ZmVySWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ck1hcC5hZGQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuYXBwbHlSZXNv
dXJjZUl0ZW0oaXRlbSwgY29udGV4dCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVm
ZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZW1vdGVD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENyZWF0
ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUgdGhp
cyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5y
ZW1vdmUoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBm
b3VuZCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIEltYWdlQnVmZmVy
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVmZmVyLT5n
ZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Ci0gICAg
fQorICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNyZWF0ZUltYWdlQnVmZmVyKGxvZ2lj
YWxTaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpm
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5n
ZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJh
d2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIHNob3VsZERyYXdCYWRnaW5nQm9yZGVy
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFk
Z2luZ0JvcmRlciwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdl
dChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3
aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgZmx1c2hJZGVudGlmaWVyKTsKKyAgICBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRp
c3BsYXlMaXN0LCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi1HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgYXV0byBpbWFnZURhdGEgPSBtX3Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6
SW1hZ2VEYXRhUmVmZXJlbmNlKFdURk1vdmUoaW1hZ2VEYXRhKSkpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVOYXRpdmVJbWFn
ZShpbWFnZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaAppbmRleCBhMDk1MmJhZmIzYzE1MzJkN2RjOTkwMDZlYjQwZjMxYmY5MWQyNTNiLi4wM2I5
ZGIzNTlhNDQzYzIwNWNmM2M1N2E4OTg3OTZiMzAzNTc3ZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oCkBAIC0yOCwyNCArMjgsMjQgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmgi
CisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIGNsYXNzIERpc3BsYXlMaXN0Owog
fQorY2xhc3MgRmxvYXRTaXplOworZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK2Vu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNTksOCArNTksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
IHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcjsgfQogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdDsKKyAgICBib29sIGFwcGx5UmVzb3VyY2VJdGVt
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7
CisKKyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgorICAgIHZvaWQgcmVtb3RlQ3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKQEAgLTc0LDE0ICs3NywxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0
byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
KTsKLSAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwot
ICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9p
ZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIElt
YWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVj
dCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1h
Z2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKLQotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAgPSBIYXNoTWFwPEltYWdlQnVmZmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eT4+OwotICAgIEltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOworICAgIHZv
aWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZv
aWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJh
d2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgSW1hZ2VCdWZmZXJGbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdl
YkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsK
KyAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIm
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJl
bW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeyAqdGhp
cyB9OwogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzk4YzhiNGVkYjU3ZjVhZDA4MmJhODFjMTAwOGIwZGNk
ZWZkZjE4YS4uMDE1NjY4ZjgyMzc3MDJiOGQ3MDVjYjBkN2NhNTQ5NjZhYmY3MTk1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMywxMSAr
MjMsMTIgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdl
QnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKQotICAgIHZvaWQgUmVsZWFzZUltYWdlQnVmZmVyKFdlYktpdDo6SW1hZ2VC
dWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1h
Z2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qg
ZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1p
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktpdDo6
SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdl
QnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgR2V0SW1hZ2VEYXRh
KGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFn
ZURhdGEpIFN5bmNocm9ub3VzCisgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpG
bG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCisgICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29t
bWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgYm9vbCBz
aG91bGREcmF3QmFkZ2luZ0JvcmRlciwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVj
dCBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5j
aHJvbm91cworICAgIHZvaWQgQ2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciBpbWFnZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKKyAgICB2b2lkIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYTk0MWQxODc1ODM3MmJkZWYwY2Q1MmNiODU5MDdlYzFlYjk5ZTZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTAsMCArMSwxNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oPgor
I2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSkKKyAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKK3sKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmRyYXdCYWRnaW5nQm9yZGVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFZlY3Rv
cjxCYWRnZT4mIGJhZGdlcykgY29uc3QKK3sKKyAgICBpZiAoIW1fc2hvdWxkRHJhd0JhZGdpbmdC
b3JkZXIpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJDb3JlOjpkcmF3QmFkZ2luZ0JvcmRlcihj
b250ZXh0LCBib3JkZXJSZWN0LCBjb2xvciwgYmFkZ2VzKTsKK30KKwordm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFw
LmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGltYWdlOworCisgICAgaWYgKHJlbmRlcmluZ01vZGUg
PT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQpCisgICAgICAgIGltYWdlID0gQWNj
ZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBpZiAoIWltYWdlIHx8IHJlbmRlcmluZ01v
ZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2Ug
PSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgaWYgKGltYWdlKSB7CisgICAg
ICAgIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCitJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY2hhbmdlKG1fc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyKTsKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFw
LmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGltYWdlLT5mbHVzaERy
YXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgcmV0dXJuIGltYWdlOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSW1hZ2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIGltYWdlID0gZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgc2hvdWxk
RHJhd0JhZGdpbmdCb3JkZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAg
aW1hZ2UtPmZsdXNoQ29udGV4dCgpOworICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgfQorICAg
IHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1h
dCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikgY29uc3QKK3sKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVt
b3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAg
ICAgICByZXR1cm4gaW1hZ2UtPmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX3JlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcC5hZGQocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyLCBpbWFnZSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5p
c05ld0VudHJ5KTsKK30KKworYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdOYXRp
dmVJbWFnZUl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBhdXRvJiBkcmF3SXRlbSA9IHN0YXRpY19jYXN0PGNv
bnN0IERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UmPihpdGVtKTsKKyAgICBhdXRvIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciA9IGRyYXdJdGVtLnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigp
OworICAgIGlmICghcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBhdXRvIGltYWdlID0gbV9yZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAuZ2V0KHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGRyYXdJdGVtLmlt
YWdlU2l6ZSgpLCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgZHJhd0l0ZW0uc291cmNlKCks
IGRyYXdJdGVtLm9wdGlvbnMoKSk7CisgICAgZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCwgZHJh
d0l0ZW0uZGVzdGluYXRpb25SZWN0KCksIFdlYkNvcmU6OkNvbG9yOjpyZWQsIHsgeyBSZWN0Qm90
dG9tUmlnaHQsIENvbG9yOjp3aGl0ZSwgIklNQUdFIl9zIH0gfSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkcmF3SW1hZ2VCdWZmZXJJdGVt
KGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
IGNvbnN0Cit7CisgICAgYXV0byYgZHJhd0l0ZW0gPSBzdGF0aWNfY2FzdDxjb25zdCBEaXNwbGF5
TGlzdDo6RHJhd0ltYWdlQnVmZmVyJj4oaXRlbSk7CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgPSBkcmF3SXRlbS5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAo
IXJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
YXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGltYWdlLT5kcmF3KGNvbnRleHQsIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBkcmF3
SXRlbS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9ucygpKTsKKyAgICBkcmF3QmFkZ2luZ0JvcmRl
cihjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgV2ViQ29yZTo6Q29sb3I6OmJs
dWUsIHsgeyBSZWN0Qm90dG9tUmlnaHQsIENvbG9yOjp3aGl0ZSwgIkNBTlZBUyJfcyB9IH0pOwor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBw
bHlSZXNvdXJjZUl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBpZiAoaXRlbS50eXBlKCkgPT0gRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybiBkcmF3SW1hZ2VC
dWZmZXJJdGVtKGl0ZW0sIGNvbnRleHQpOworICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZSkKKyAgICAgICAgcmV0dXJuIGRyYXdOYXRp
dmVJbWFnZUl0ZW0oaXRlbSwgY29udGV4dCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1f
cmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwLnJl
bW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisgICAgLy8g
Q2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSBy
ZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NzU4OWQ3M2Y5MGU1NGE2ZDBiZjkxZDI4ZWJhYmFjMjM1
MjliZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OworY2xhc3Mg
SXRlbTsKK30KK3N0cnVjdCBCYWRnZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKKworY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Jik7CisKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hE
cmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBi
b29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBmbHVzaERyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hv
dWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpIGNvbnN0OworCisg
ICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGJvb2wgYXBwbHlSZXNv
dXJjZUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcg
UmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+OworICAg
IHVzaW5nIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cj47CisKKyAgICB2b2lk
IGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6QmFkZ2U+JikgY29uc3Q7CisgICAgYm9vbCBkcmF3SW1hZ2VCdWZmZXJJ
dGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0JikgY29uc3Q7CisgICAgYm9vbCBkcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXA7CisgICAgUmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwIG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNo
TWFwOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk7CisgICAgYm9vbCBtX3Nob3VsZERyYXdCYWRnaW5nQm9yZGVyIHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNDAxN2EyYThmMjJjZWNlY2MyMTUxYTMwYTMyNzhm
ZjkwNmVhZjMyYS4uNjc0OGQxZjVkODAwZDk1NzRmMjM4MDc1YjE4OTBiNGU0YWNlZTkxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VU
V1JJVEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDk3N2Y5M2ZmNWMzYzJiODE3ODQ2YzlhOWE3NTUx
Nzg5YzhlZmUwNWMuLjYxYjg5MGRjNzg2N2MzM2IwMDVmMjJlOTNiYjFhZjQ3ZGRkM2IxN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CmluZGV4IGZhY2QyZjdhZmI1YTM5MmVlMjA5NjdhNzZmZDQxZTE0ZGZiMTUw
YjkuLjE1OGM0ZWY5N2MyZTk5Yjg3NjY3OTM2ZWI0MGE1ZTE4NzhkMThiM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjE3LDExICsyMTcsMTMgQEAgZGVm
IHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vz
c2lvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHInLAogICAg
ICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2lu
TG9hZENsaWVudFBvbGljeScsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAg
ICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJlbmRlcmluZ01vZGUnLAogICAgICAg
ICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInLApAQCAtMjQwLDcgKzI0Miw2IEBAIGRlZiB0eXBl
c190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Okdl
b2xvY2F0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZScsCiAgICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyJywK
LSAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TGVnYWN5Q3VzdG9t
UHJvdG9jb2xJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmll
cicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCBlMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZkNTRlZWJiODkwMzY0NDQxLi5hMDc3NTMwOTU3
YmE4ZDQ3ZDU0MjliYWRkNjY3NTc1NTRkMDYyMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTExMDAsNyArMTEwMCw3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbWFn
ZUhhbmRsZSYgaW1hZ2VIYW5kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVu
Y29kZU5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIsIE5hdGl2ZUltYWdlUHRyIGltYWdlKQor
c3RhdGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTmF0
aXZlSW1hZ2VQdHImIGltYWdlKQogewogICAgIGF1dG8gaW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VT
aXplKGltYWdlKTsKICAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hh
cmVhYmxlKGltYWdlU2l6ZSwgeyB9KTsKQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVOYXRpdmVJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBO
YXRpdmVJbWFnZVB0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZU9w
dGlvbmFsTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2Up
CitzdGF0aWMgdm9pZCBlbmNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKIHsKICAgICBib29sIGhhc0ltYWdlID0gISFp
bWFnZTsKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlOwpAQCAtMTE2NiwxNCArMTE2NiwxNCBAQCBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShE
ZWNvZGVyJiBkZWNvZGVyLCBOYXRpdgogICAgIHJldHVybiBkZWNvZGVOYXRpdmVJbWFnZShkZWNv
ZGVyLCBpbWFnZSk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBOYXRpdmVJbWFnZUhhbmRsZSYgaW1hZ2VI
YW5kbGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VQdHI+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogewotICAgIGVuY29kZU9w
dGlvbmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOworICAg
IGVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1hZ2UpOwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
TmF0aXZlSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQorYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2
ZUltYWdlUHRyPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlUHRyJiBpbWFn
ZSkKIHsKLSAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFn
ZUhhbmRsZS5pbWFnZSk7CisgICAgcmV0dXJuIGRlY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoZGVj
b2RlciwgaW1hZ2UpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYgZm9udCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMDVkMDM1NTRi
OWVjYTlhMDQxYzM2OGVmNDUzODgyNDQzNGNlNmUyMy4uOWYzYjEwNjY5MzMzYmEzMDE1Mjk3ODNj
OWUxZTkxZWFiYTRjYWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWRE
Qi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2VQdHIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg+CkBAIC0xMDUsNyArMTA2LDYgQEAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxp
c3Q7CiBjbGFzcyBMYXlvdXRTaXplOwogY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJU
aW1pbmdGdW5jdGlvbjsKLWNsYXNzIE5hdGl2ZUltYWdlSGFuZGxlOwogY2xhc3MgTm90aWZpY2F0
aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CiBjbGFzcyBQYXltZW50SW5zdGFsbG1l
bnRDb25maWd1cmF0aW9uOwpAQCAtNDE2LDkgKzQxNiw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJbWFn
ZUhhbmRsZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6TmF0aXZlSW1hZ2VIYW5kbGUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZSYpOwordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cj4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQ
dHImKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAppbmRleCA3MzBkYTY0OGYyYjJmZTllNzg0
ZmQwNDA1MmUxOTBmMGQwYmYyMWFkLi45NTlkYTgzZDVmNjk4OGIyMTE1ODhkYTdkZGI0ZmYxODNk
Y2U3ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRt
YXBDRy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cu
Y3BwCkBAIC0xMDYsMTIgKzEwNiwyNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
PiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpCiAKIHZvaWQgU2hhcmVh
YmxlQml0bWFwOjpwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW50UmVjdCYgc291cmNlKQogewotICAgIGRy
YXdOYXRpdmVJbWFnZShtYWtlQ0dJbWFnZUNvcHkoKSwgY29udGV4dCwgMSwgZGVzdGluYXRpb24s
IHNvdXJjZSk7CisgICAgcGFpbnQoY29udGV4dCwgMSwgZGVzdGluYXRpb24sIHNvdXJjZSk7CiB9
CiAKIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb24s
IGNvbnN0IEludFJlY3QmIHNvdXJjZSkKIHsKLSAgICBkcmF3TmF0aXZlSW1hZ2UobWFrZUNHSW1h
Z2VDb3B5KCksIGNvbnRleHQsIHNjYWxlRmFjdG9yLCBkZXN0aW5hdGlvbiwgc291cmNlKTsKKyAg
ICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKKyAg
ICBDR0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7CisKKyAgICBDR0NvbnRleHRDbGlwVG9S
ZWN0KGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0aW5hdGlvbi54KCksIGRlc3RpbmF0aW9uLnko
KSwgc291cmNlLndpZHRoKCksIHNvdXJjZS5oZWlnaHQoKSkpOworICAgIENHQ29udGV4dFNjYWxl
Q1RNKGNnQ29udGV4dCwgMSwgLTEpOworCisgICAgYXV0byBpbWFnZSA9IG1ha2VDR0ltYWdlQ29w
eSgpOworICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdl
dCgpKSAvIHNjYWxlRmFjdG9yOworICAgIENHRmxvYXQgaW1hZ2VXaWR0aCA9IENHSW1hZ2VHZXRX
aWR0aChpbWFnZS5nZXQoKSkgLyBzY2FsZUZhY3RvcjsKKworICAgIENHRmxvYXQgZGVzdFggPSBk
ZXN0aW5hdGlvbi54KCkgLSBzb3VyY2UueCgpOworICAgIENHRmxvYXQgZGVzdFkgPSAtaW1hZ2VI
ZWlnaHQgLSBkZXN0aW5hdGlvbi55KCkgKyBzb3VyY2UueSgpOworCisgICAgQ0dDb250ZXh0RHJh
d0ltYWdlKGNnQ29udGV4dCwgQ0dSZWN0TWFrZShkZXN0WCwgZGVzdFksIGltYWdlV2lkdGgsIGlt
YWdlSGVpZ2h0KSwgaW1hZ2UuZ2V0KCkpOworCisgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShj
Z0NvbnRleHQpOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjpt
YWtlQ0dJbWFnZUNvcHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4MDY4ZGVkZDM5
Y2JhYzRkZmJlOTM3N2NhOC4uOGUzYjJhZmZjYTAwMzRiMzI2ZGE5YjIxOThjODU3OTc0ZTA0OTE0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC0yNCw4ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCi1HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAK
QEAgLTU1Miw4ICs1NTIsOCBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQuY3BwCi1XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAK
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk4NDM0Y2Jh
YzBjMmY2MWEyZDZlMjgwNzE2ZWNkNzI4ODI4ODkyODIuLjJhOGM0MmE1YWJlNDE1YmY5ZDExYzdi
MGIzZWY3MTg4MDJiMjBjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzg4OSw3ICszODg5LDYgQEAKIAkJNTUwNjQwQTIyNDA3MUE2
MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUw
NDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTUwNjQwQTUyNDA3MUNDMDAwQUFFMDQ1IC8qIElt
YWdlQnVmZmVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlcklkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRDA5NDIyNDA4QTAyRTAwREU0
RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0MzI0
MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NUFEMDk0NDI0MDhBQkIzMDBERTREMkYgLyogSW1hZ2VCdWZmZXJG
bHVzaElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxNzgsMTAgKzQxNzcsNyBAQAog
CQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJl
UmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFGQjgxMEEyMjYw
NjI3QTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVTaW11bGF0ZWRNb3Vz
ZUV2ZW50c0Rpc3BhdGNoUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
Mjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMEMyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4
MDBEMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdB
N0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
MTkxLDYgKzQxODcsMTAgQEAKIAkJNzI3QTdGNDkyNDA4QUVFNjAwNEQyOTMxIC8qIFJlbW90ZUlt
YWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xv
clBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBp
Y2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzI5RDA1MzIyNTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIw
OTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUz
NTI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzI5RDA1MzYyNTMxNzNDQzAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3Jl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUg
LyogV0tXZWJzaXRlRGF0YVN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwNzYsMTcgKzgwNzYs
MTcgQEAKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8sCiAJCQkJNzI3
QTdGMzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAog
CQkJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
ci5oICovLAotCQkJCTU1MDY0MEE1MjQwNzFDQzAwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIuaCAqLywKIAkJCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5
MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdG
MzgyNDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
LmggKi8sCiAJCQkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1h
Z2VCdWZmZXIuaCAqLywKIAkJCQk3MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1h
Z2VCdWZmZXIuaCAqLywKLQkJCQk3MjI3ODAwQzI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8sCiAJCQkJNzIyNzgwMEQyNDA5N0EwMjAwN0Qz
NzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk1NTA2NDA5
RDI0MDcxNjA5MDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgKi8sCiAJCQkJ
NTUwNjQwOUUyNDA3MTYwOTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCAqLywK
IAkJCQk1NTA2NDBBMDI0MDcxOUUxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5t
ZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlEMDUzNTI1MzE3M0NDMDA0MjIwOTggLyogUmVtb3RlUmVz
b3VyY2VDYWNoZS5jcHAgKi8sCisJCQkJNzI5RDA1MzYyNTMxNzNDQzAwNDIyMDk4IC8qIFJlbW90
ZVJlc291cmNlQ2FjaGUuaCAqLywKIAkJCQk1NTA2NDA5RjI0MDcxOTZBMDBBQUUwNDUgLyogUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7
CkBAIC04MDk2LDEyICs4MDk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCAqLywKLQkJCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLywKLQkJCQk3MjI3ODAxMjI0MDk5
MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8s
CiAJCQkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHku
aCAqLywKIAkJCQk1NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcCAqLywKIAkJCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1
IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlE
MDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLywK
KwkJCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGdyYXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5YTFiYzlhZTg3ZGM4ZDcyNDI4YTBiODA5Y2FkMGQ4MGE0Y2QxY2I5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotZW51bSBJbWFnZUJ1ZmZlcklkZW50aWZpZXJUeXBlIHsgfTsKLXVz
aW5nIEltYWdlQnVmZmVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyVHlwZT47Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGU4NDkxNjY0NTE0NTk2Mjg3
ZWYyYzc4ZjkwNzZlMWQ0MzgyMTkxZjIuLjBjNzM4MGZkNWQ3ZjE3MmM5NzE2ZjJmMzc4OTE2ZTg2
MDgyNzc4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTMxLDE2ICszMSwxOCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBCYWNrZW5kVHlwZT4KLWNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGlj
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIHsKK2NsYXNzIFJlbW90ZUltYWdlQnVmZmVy
IDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4s
IHB1YmxpYyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLCBwdWJsaWMgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlM
aXN0SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2Vu
ZFR5cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7
CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7
CisgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAKIHB1Ymxp
YzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdlQnVmZmVyPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBj
b2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KQpAQCAtNTMsMTQgKzU1LDIwIEBAIHB1YmxpYzoKIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigp
CiAgICAgeworICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VJbWFnZUJ1ZmZlcigqdGhpcyk7CiAgICAgfQog
CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOyB9CisK
IHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgICAgIDogQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIoc2l6ZSkKLSAgICAgICAgLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgOiBCYXNlRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlcihzaXplLCB0aGlzKQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCht
YWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKSkKICAgICB7CisgICAgICAgIG1fcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVD
cmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UpOwogICAgIH0KIAogICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpIG92ZXJyaWRlCkBAIC02OSwyMiAr
NzcsNTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3Jl
YXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBXVEZNb3ZlKGhhbmRsZSkpOwogICAgIH0KICAgICAKLSAgICBib29sIGlzQmFja2VuZENyZWF0
ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2JhY2tlbmQuZ2V0KCk7IH0KLQogICAgIEJh
Y2tlbmRUeXBlKiBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBpZiAoIW1fYmFja2VuZCkKLSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1h
Z2VCdWZmZXImPigqdGhpcykuUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZv
ckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOworICAgICAgICBpZiAoIW1fYmFja2VuZCAmJiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKICAgICAgICAgcmV0dXJu
IG1fYmFja2VuZC5nZXQoKTsKICAgICB9CiAKKyAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgICAgIG1fYmFj
a2VuZC0+Zmx1c2hDb250ZXh0KCk7CisgICAgfQorCisgICAgdm9pZCBmbHVzaERyYXdpbmdDb250
ZXh0KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3
aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOworICAgICAgICBpZiAoIWRpc3BsYXlMaXN0Lml0ZW1D
b3VudCgpIHx8ICFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+ZHJhd0JhZGdpbmdCb3JkZXIoY29u
dGV4dCgpLCB7IHsgfSwgbV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpIH0sIFdlYkNvcmU6OkNvbG9y
OjpkYXJrR3JlZW4sIHsgeyBXZWJDb3JlOjpSZWN0VG9wUmlnaHQsIFdlYkNvcmU6OkNvbG9yOjp3
aGl0ZSwgIkdQVSJfcyB9IH0pOworICAgICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQo
ZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQo
KTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZWxlYXNlUmVtb3RlQ2xpZW50
KG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgZGlzcGxheUxpc3QuY2xlYXIo
KTsKKyAgICB9CisKKyAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgfHwgIW1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5yZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CisgICAgfQorICAgIAogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFn
ZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1
dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CisgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBjb25zdF9j
YXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPm1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxp
c3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlM
aXN0KTsKLSAgICAgICAgYXV0byByZXN1bHQgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVy
Kj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YShv
dXRwdXRGb3JtYXQsIHNyY1JlY3QpOworICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50
KCkpIHsKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXIqPih0aGlzKS0+
Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAgICAgICBkaXNwbGF5TGlz
dC5jbGVhcigpOworICAgICAgICB9CisKICAgICAgICAgLy8gZ2V0SW1hZ2VEYXRhIGlzIHN5bmNo
cm9ub3VzLCB3aGljaCBtZWFucyB3ZSd2ZSBhbHJlYWR5IHJlY2VpdmVkIHRoZSBDb21taXRJbWFn
ZUJ1ZmZlckZsdXNoQ29udGV4dCBtZXNzYWdlLgotICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVHZXRJbWFnZURhdGEo
b3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAg
fQogCiAgICAgdm9pZCBwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiBpbWFnZURhdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0
UG9pbnQgPSB7IH0sIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9
IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQpIG92ZXJyaWRl
CkBAIC05NSwyNiArMTMyLDMyIEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9kcmF3aW5nQ29udGV4
dC5yZWNvcmRlcigpLnB1dEltYWdlRGF0YShpbnB1dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0
LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogICAgIH0KIAotICAgIHZvaWQgZmx1c2hDb250ZXh0
KCkgb3ZlcnJpZGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IGNyZWF0
ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKSBvdmVy
cmlkZQogICAgIHsKLSAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICBtX2Jh
Y2tlbmQtPmZsdXNoQ29udGV4dCgpOworICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT5jcmVhdGVEcmF3SW1hZ2VCdWZmZXJJdGVtKGltYWdlLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucywgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIG92ZXJyaWRlCisgICAgUmVmUHRy
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNv
bnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMsIFdlYkNvcmU6OkNhY2hlZEltYWdlJiBjYWNoZWRJbWFnZSkgb3Zl
cnJpZGUKICAgICB7Ci0gICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4
dC5kaXNwbGF5TGlzdCgpOwotICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpCi0g
ICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kV2FpdENvbW1pdChkaXNwbGF5TGlzdCk7CisgICAgICAgIGlmICghbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJl
dHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0o
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGNhY2hlZEltYWdl
LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQotICAgIAorCiAgICAgdm9pZCB3
aWxsQXBwZW5kSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYpIG92ZXJyaWRl
CiAgICAgewogICAgICAgICBjb25zdGV4cHIgc2l6ZV90IERpc3BsYXlMaXN0QmF0Y2hTaXplID0g
NTEyOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxh
eUxpc3QoKTsKLSAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpID49IERpc3BsYXlM
aXN0QmF0Y2hTaXplKQotICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
cjo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAgIGlmIChkaXNwbGF5
TGlzdC5pdGVtQ291bnQoKSA8IERpc3BsYXlMaXN0QmF0Y2hTaXplIHx8ICFtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZsdXNoRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgIH0K
KworICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOworICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtX3JlbW90ZVJl
c291cmNlSWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc3MTUwYzdiMDc5M2FmZTlhYzVjODNhOWFjNzQ2YmEzMThlNTFiOGYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
IgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJl
bmNlLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgotI2luY2x1ZGUgIlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9E
aXNwbGF5TGlzdEl0ZW1zLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAg
IDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpKQotewotICAgIC8vIENyZWF0ZSB0aGUgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KLSAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0K
LVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6On5SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyKCkKLXsKLSAgICAvLyBSZWxlYXNlIHRoZSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LgotICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICAgICByZXR1cm47Ci0g
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OlJlbGVhc2VJbWFnZUJ1ZmZlcihtX2ltYWdlQnVmZmVySWRlbnRpZmll
ciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIo
KSk7Ci19Ci0KLVJlZlB0cjxJbWFnZURhdGE+IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXI6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKLXsKLSAgICBJUEM6OkltYWdlRGF0YVJlZmVyZW5j
ZSBpbWFnZURhdGFSZWZlcmVuY2U7Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5k
U3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpHZXRJbWFnZURhdGEo
b3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0YTo6UmVwbHkoaW1hZ2VE
YXRhUmVmZXJlbmNlKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpLCAxX3MpOwotICAgIHJldHVybiBpbWFnZURhdGFSZWZlcmVuY2UuYnVmZmVy
KCk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpCi17Ci0gICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCAmJiAhaXNCYWNrZW5kQ3JlYXRlZCgpKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKLX0KLQotdm9pZCBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVz
aENvbnRleHQoKQotewotICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgJiYgaXNQZW5k
aW5nRmx1c2goKSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT53YWl0Rm9yQ29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCi17Ci0gICAgaWYgKCFtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJ
bWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX2ltYWdlQnVmZmVySWRlbnRp
ZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIoKSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KQotewotICAgIGlmICgh
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zZW50Rmx1
c2hJZGVudGlmaWVyID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0g
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChk
aXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmll
ciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIo
KSk7Ci0gICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKLSAgICB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyOjpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJ
ZGVudGlmaWVyKQotewotICAgIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXIgPSBmbHVzaElkZW50
aWZpZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaApp
bmRleCA2MjA0MThkNzhjMjdmMjhjNTc0OTAyYzJlMWJhOWEyMzcxNzUxN2I5Li42MWRkNThjZTUy
ZmRjZWQ0ZjE4NGFmMGVhNjc5N2IyNjYyNzVhMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIuaApAQCAtMjksNTAgKzI5LDMxIEBACiAKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
aW5nTW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEltYWdlRGF0
YTsKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIENvbG9yU3BhY2UgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLQogY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlcigpOwotCi0gICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOyB9Ci0KICAg
ICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4uCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlKSA9IDA7CiAKLSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7Ci0KLXByb3RlY3RlZDoKLSAgICBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6
OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOwotCi0gICAgdmlydHVhbCBib29sIGlzQmFja2Vu
ZENyZWF0ZWQoKSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1BlbmRpbmdGbHVzaCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2VudEZsdXNoSWRlbnRpZmllciAhPSBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVy
OyB9CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29y
ZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNyY1JlY3QpIGNvbnN0OwotCi0gICAgdm9pZCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKCk7Ci0gICAgdm9pZCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQoKTsKKyAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX3JlY2VpdmVkRmx1c2hJZGVu
dGlmaWVyID0gZmx1c2hJZGVudGlmaWVyOworICAgIH0KIAotICAgIC8vIE1lc3NhZ2VzIHRvIGJl
IHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4uCi0gICAg
dm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCYpOwotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7Ci0KLXByaXZhdGU6Ci0gICAgV2Vha1B0cjxSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7Ci0gICAgSW1hZ2VC
dWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyIHsgSW1hZ2VCdWZmZXJJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpIH07Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKIAogICAgIEltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRlbnRpZmllcjsKICAgICBJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAKaW5kZXggOTk1MzQxNzg3ZWRhMjBhNTU0ZTRkNjdiYTUzZGM2OThhNTM3MGNj
MC4uMDRiNTI5Njg2ZWM0M2EzM2Y1ZDA0NjA3M2FiYjc4NzBjMDg0YjFhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0zOSwxMiArMzksMTMgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKCkKK3N0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkpOworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4obmV3IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQocGFnZSkpOwogfQogCi1SZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCkKK1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZSgqdGhpcywgcGFnZSkKIHsKICAgICAvLyBSZWdpc3RlciBpdHNlbGYgYXMgYSBNZXNzYWdlUmVj
ZWl2ZXIgaW4gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uLgogICAgIElQQzo6TWVzc2FnZVJlY2Vp
dmVyTWFwJiBtZXNzYWdlUmVjZWl2ZXJNYXAgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1hcCgpOwpAQCAtODYsNDAg
Kzg3LDgyIEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2FpdEZvckNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KCkKICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERp
c3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1p
dEltYWdlQnVmZmVyRmx1c2hDb250ZXh0PihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAx
X3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJp
dmVzKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3QmFkZ2luZ0JvcmRl
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlLmRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJl
Y3QsIGNvbG9yLCBiYWRnZXMpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKLSAgICBpZiAoc2hvdWxkQWNjZWxlcmF0
ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZm
ZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5n
TW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRo
aXMpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGlt
YWdlQnVmZmVyLT5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwotICAgICAgICB9Ci0gICAgfQorICAgIHJl
dHVybiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgc2hvdWxk
QWNjZWxlcmF0ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKTsKK30KKwordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdl
KQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlSW1hZ2VCdWZmZXIoaW1hZ2Up
OworfQorCitSZWZQdHI8RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xp
ZW50SWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNyZWF0
ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oaW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBy
ZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKworUmVmUHRyPERpc3BsYXlMaXN0OjpJdGVtPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMsIENhY2hlZEltYWdlJiBjYWNoZWRJbWFnZSwgUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgcmV0dXJu
IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGltYWdlLCBp
bWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBjYWNoZWRJbWFnZSwgcmVtb3Rl
Q2xpZW50SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVs
ZWFzZVJlbW90ZUNsaWVudChSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRl
bnRpZmllcikKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVsZWFzZVJlbW90ZUNsaWVu
dChyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKworUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
OworfQorCitSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVH
ZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IElu
dFJlY3QmIHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhUmVmZXJl
bmNlOworICAgIHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OkdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdlRGF0
YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ciwgMV9zKTsKKyAgICByZXR1cm4gaW1hZ2VEYXRhUmVmZXJlbmNlLmJ1ZmZlcigpOworfQogCi0g
ICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzKSkgewotICAgICAgICBtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAuYWRkKGltYWdlQnVmZmVyLT5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSwg
aW1hZ2VCdWZmZXIuZ2V0KCkpOwotICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7Ci0gICAgfQor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVGbHVzaERyYXdpbmdDb250ZXh0KGNv
bnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5zaG91bGREcmF3QmFkZ2lu
Z0JvcmRlcigpLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKK30KIAotICAgIHJldHVybiBudWxscHRyOworSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4
dEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAg
IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHNlbnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1
ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFu
ZENvbW1pdChkaXNwbGF5TGlzdCwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnNob3VsZERyYXdCYWRn
aW5nQm9yZGVyKCksIHNlbnRGbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHJldHVybiBzZW50Rmx1c2hJ
ZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6cmVtb3RlQ2FjaGVOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1h
Z2UpCit7CisgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciA9IFJlbW90ZVJlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNhY2hlTmF0aXZlSW1hZ2UoaW1h
Z2UsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOworICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI7CiB9CiAKLXZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVySWRlbnRp
ZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENyZWF0ZUltYWdlQnVmZmVyIG1lc3Nh
Z2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUgdGhpcyBvbmUuCi0gICAgYm9vbCBm
b3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5yZW1vdmUoaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxl
KSk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChs
b2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RG
TW92ZShoYW5kbGUpLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1
c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1
ZmZlci0+Y29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmll
ciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IGY0OTYxNThlN2Q0MGVlYjA1YWMzOTQz
NGFmMjQ2MzNiYWJjN2YwZWYuLmNhNjc1MmViNzA0MjgwYTQ4MGY1ZWQzNjZkYjFjNWI5M2ZiMjU4
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0yOSwzMSArMjksMzggQEAKIAog
I2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5o
IgogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Rpc3BsYXlMaXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKK2NsYXNzIERpc3BsYXlMaXN0OworY2xhc3MgSXRlbTsKK30KK2NsYXNzIEZsb2F0U2l6
ZTsKK3N0cnVjdCBCYWRnZTsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVt
IGNsYXNzIFJlbmRlcmluZ01vZGUgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorY2xhc3MgV2ViUGFnZTsKKwogY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogICAgIDog
cHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgogICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVy
aW5nQmFja2VuZD4gY3JlYXRlKFdlYlBhZ2UmKTsKIAogICAgIH5SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7
IH0KLQogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KICAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdWludDY0X3QgbWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTYxLDIxICs2OCwz
MyBAQCBwdWJsaWM6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpTaG91bGRBY2NlbGVyYXRl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpOwotICAgIHZvaWQg
cmVsZWFzZUltYWdlQnVmZmVyKEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0KICAgICBib29sIHdh
aXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKICAgICBib29sIHdhaXRGb3JDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwogCisgICAgLy8gUmVzb3VjZSBjYWNoZS4KKyAgICB2
b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+Jik7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
LCBXZWJDb3JlOjpTaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UpOworICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6Oklt
YWdlQnVmZmVyJik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVh
dGVEcmF3SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
PiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmLCBXZWJDb3JlOjpDYWNoZWRJbWFnZSYs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVt
b3RlQ2xpZW50KFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBN
ZXNzYWdlcyB0byBiZSBzZW50LgorICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJD
b3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IHJlbW90ZUdldEltYWdlRGF0
YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHJlbW90ZUZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciByZW1vdGVGbHVzaERyYXdpbmdDb250
ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZUNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0
aXZlSW1hZ2VQdHImKTsKKyAgICB2b2lkIHJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgotICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQoKTsKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKFdlYlBhZ2UmKTsK
IAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgSW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQg
Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlck1hcCA9IEhhc2hNYXA8SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyKj47Ci0gICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBt
X2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBt
X3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KaW5kZXggMTJhN2JmOGRhNGM4MjU3MGJjYTM2YTEzNWZkNzFhZjI1ODhiNjRkNS4u
MmMwZjdlOGExMjAzZjI2ODY1MmEwMGZjMWY3YjE3ZGE1OTlkMmFhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsOCArMjMsOCBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJD
b3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBX
ZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYktpdDo6SW1hZ2VCdWZm
ZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIENvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1
c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpCisgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6Rmxv
YXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgQ29tbWl0SW1hZ2VC
dWZmZXJGbHVzaENvbnRleHQoV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVz
aElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDliYTg2MGU2Y2NhOWQ5YzM3MmMzNDRl
YThhYzdhMzM5ZjMzZWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcApAQCAtMCwwICsxLDIxMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNv
dXJjZUNhY2hlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworUmVtb3RlUmVzb3VyY2VDYWNoZTo6UmVtb3RlUmVzb3VyY2VDYWNoZShSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJQYWdlJiBwYWdlKQor
ICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisg
ICAgLCBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpzaG91
bGREcmF3QmFkZ2luZ0JvcmRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFn
ZSgpLT5zZXR0aW5ncygpLnNob3dEZWJ1Z0JvcmRlcnMoKTsKK30KKwordm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlOjpkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBWZWN0
b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAgaWYgKCFzaG91bGREcmF3QmFkZ2luZ0JvcmRlcigp
KQorICAgICAgICByZXR1cm47CisgICAgRmxvYXRSZWN0IGNvbnRhaW5lclJlY3QgPSBib3JkZXJS
ZWN0OworICAgIGNvbnRhaW5lclJlY3QuaW5mbGF0ZSgtMSk7CisgICAgV2ViQ29yZTo6ZHJhd0Jh
ZGdpbmdCb3JkZXIoY29udGV4dCwgY29udGFpbmVyUmVjdCwgY29sb3IsIGJhZGdlcyk7Cit9CisK
K3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3Vs
ZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQoreworICAgIGlmIChzaG91bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6Olllcykg
eworICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKSB7Cisg
ICAgICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5hZGQoaW1hZ2VCdWZmZXIuZ2V0
KCksIGltYWdlQnVmZmVyLT5yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKSk7CisgICAgICAgICAg
ICBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZl
ci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChh
dXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKSB7CisgICAgICAgIG1fcmVt
b3RlSW1hZ2VCdWZmZXJIYXNoTWFwLmFkZChpbWFnZUJ1ZmZlci5nZXQoKSwgaW1hZ2VCdWZmZXIt
PnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVySGFzaE1hcC5hZGQoaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRl
bnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZl
cjsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
SGFzaE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgaW1hZ2VCdWZm
ZXItPmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPmNvbW1pdEZsdXNoQ29udGV4dChmbHVzaElk
ZW50aWZpZXIpOworfQorCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+IFJlbW90
ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZURyYXdJbWFnZUJ1ZmZlckl0ZW0oV2ViQ29yZTo6SW1hZ2VC
dWZmZXImIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRl
bnRpZmllcikKK3sKKyAgICBhdXRvIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciA9IGZpbmRJbWFn
ZUJ1ZmZlckZvckNsaWVudChpbWFnZSwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7CisgICAgaWYg
KCFyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IC8vIEZsdXNoIHRoZSBEcmF3aW5nQ29udGV4dCBvZiB0aGUgc291cmNlIEltYWdlQnVmZmVyIHNv
IHRoaXMgSW1hZ2VCdWZmZXIgZ2V0cyBhbiB1cGRhdGVkIGltYWdlLgorICAgIGltYWdlLmZsdXNo
RHJhd2luZ0NvbnRleHQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMpOworfQorCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0+
IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZURyYXdOYXRpdmVJbWFnZUl0ZW0oY29uc3QgTmF0
aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllciA9IGZpbmROYXRpdmVJbWFnZUZvckNsaWVudChjYWNoZWRJ
bWFnZSwgaW1hZ2UsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOworICAgIGlmICghcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKHJlbW90ZVJlc291cmNl
SWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisK
K1JlbW90ZVJlc291cmNlSWRlbnRpZmllciBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlSW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlKQoreworICAgIC8vIFJlbW92ZSB0aGUgcmVzb3Vy
Y2UgZnJvbSB0aGUgY2FjaGUuCisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBt
X3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC50YWtlKCZpbWFnZSk7CisgICAgQVNTRVJUKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBjcmVhdGVJbWFnZUJ1ZmZlciBzaG91bGQg
aGF2ZSBiZWVuIHJldHVybmVkIHRoaXMgSW1hZ2VCdWZmZXIgYmVmb3JlLgorICAgIGJvb2wgZm91
bmQgPSBtX3JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJIYXNoTWFwLnJlbW92ZShyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsK
KworICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlIHVu
bGVzcyBpdCdzIHBlbmRpbmcgcmVwbGF5aW5nIGJhY2suCisgICAgcmVsZWFzZVJlbW90ZVJlc291
cmNlUGVuZGluZ1JlbW92ZUNsaWVudHMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBy
ZXR1cm4gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOworfQorCitSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNv
cmU6Ok5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKK3sKKyAgICAvLyBSZW1vdmUgdGhlIHJlc291cmNl
IGZyb20gdGhlIGNhY2hlLgorICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gbV9y
ZW1vdGVOYXRpdmVJbWFnZUhhc2hNYXAudGFrZShpbWFnZSk7CisKKyAgICAvLyBUZWxsIHRoZSBH
UFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZSB1bmxlc3MgaXQncyBwZW5kaW5nIHJl
cGxheWluZyBiYWNrLgorICAgIGlmIChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAg
IHJlbGVhc2VSZW1vdGVSZXNvdXJjZVBlbmRpbmdSZW1vdmVDbGllbnRzKHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKK30KKwor
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmRJbWFnZUJ1
ZmZlckZvckNsaWVudChJbWFnZUJ1ZmZlciYgaW1hZ2UsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KCZpbWFnZSk7CisgICAgYWRk
UmVtb3RlQ2xpZW50KHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlQ2xpZW50SWRlbnRp
Zmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKK30KKworUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIFJlbW90ZVJlc291cmNlQ2FjaGU6OmZpbmROYXRpdmVJbWFnZUZv
ckNsaWVudChXZWJDb3JlOjpDYWNoZWRJbWFnZSYgY2FjaGVkSW1hZ2UsIGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiBpbWFnZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpCit7CisgICAgYXV0byByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBtX3JlbW90ZU5h
dGl2ZUltYWdlSGFzaE1hcC5lbnN1cmUoaW1hZ2UsIFsmXSB7CisgICAgICAgIGNhY2hlZEltYWdl
LmFkZENsaWVudCgqdGhpcyk7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQucmVtb3RlQ2FjaGVOYXRpdmVJbWFnZShpbWFnZSk7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVl
OworCisgICAgYWRkUmVtb3RlQ2xpZW50KHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgcmVtb3Rl
Q2xpZW50SWRlbnRpZmllcik7CisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcjsK
K30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjphZGRSZW1vdGVDbGllbnQoUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYgKCFyZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFkZCB0aGUgInJlc291
cmNlIC0+IGNsaWVudCIgZGVwZW5kZW5jeSBpbiBtX3JlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hN
YXAuCisgICAgYXV0byYgY2xpZW50cyA9IG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC5l
bnN1cmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBbJl0geworICAgICAgICByZXR1cm4gUmVt
b3RlQ2xpZW50c0hhc2hTZXQoKTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICBjbGll
bnRzLmFkZChyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2VQZW5kaW5nUmVtb3ZlQ2xpZW50cyhSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIEFTU0VS
VCghbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAuY29udGFpbnMo
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSk7CisKKyAgICAvLyBJZiB3ZSBoYXZlIHJlY29yZGVk
IHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5jeSBiZWZvcmUgaW4gbV9yZW1vdGVSZXNv
dXJjZUNsaWVudHNIYXNoTWFwLCBtb3ZlIHRoaXMKKyAgICAvLyBkZXBlbmRlbmN5IHRvIG1fcmVt
b3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLiBPdGhlcndpc2UgcmVtb3Zl
IHRoZSByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KKyAgICBpZiAobV9yZW1vdGVSZXNvdXJjZUNs
aWVudHNIYXNoTWFwLmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAg
IG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLmFkZChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIsIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC50YWtlKHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcikpOworICAgIGVsc2UKKyAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLnJlbW90ZVJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworfQorCitWZWN0b3I8UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPiBSZW1vdGVS
ZXNvdXJjZUNhY2hlOjpyZW1vdmVSZW1vdGVDbGllbnQoUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFz
aE1hcCYgcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgVmVjdG9yPFJlbW90ZVJlc291cmNl
SWRlbnRpZmllcj4gcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7CisKKyAgICAvLyBS
ZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5jaWVzIGZyb20gcmVtb3Rl
UmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBmb3IgKGF1dG8mIHBhaXIgOiByZW1vdGVSZXNv
dXJjZUNsaWVudHNIYXNoTWFwKSB7CisgICAgICAgIHBhaXIudmFsdWUucmVtb3ZlKHJlbW90ZUNs
aWVudElkZW50aWZpZXIpOworICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZW1vdGVSZXNvdXJjZUNsaWVudHNUb0JlUmVtb3ZlZC5hcHBlbmQocGFpci5rZXkp
OworICAgIH0KKworICAgIC8vIFJldHVybiBhIGxpc3Qgb2YgdGhlIHVucmVmZXJlbmNlZCByZXNv
dXJjZXMuCisgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1vdmVkOworfQor
Cit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVDbGllbnQoUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCit7CisgICAgLy8gUmVtb3Zl
IGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fcmVtb3RlUmVz
b3VyY2VDbGllbnRzSGFzaE1hcC4KKyAgICBmb3IgKGF1dG8gcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIDogcmVtb3ZlUmVtb3RlQ2xpZW50KG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCwg
cmVtb3RlQ2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRz
SGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIC8vIFJlbW92
ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSBtX3JlbW90ZVJl
c291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcC4KKyAgICBmb3IgKGF1dG8gcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIDogcmVtb3ZlUmVtb3RlQ2xpZW50KG1fcmVtb3RlUmVzb3VyY2VD
bGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKSkgewor
ICAgICAgICAvLyBSZW1vdmUgdGhlIHVucmVmZXJlbmNlZCByZXNvdXJjZXMgZnJvbSBtX3JlbW90
ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcC4KKyAgICAgICAgbV9yZW1vdGVS
ZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcik7CisKKyAgICAgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3Zl
IHRoaXMgcmVzb3VyY2UuCisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVS
ZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDM3Y2ZkZmNhNDM5ZmFmODhlOTU0
MTY2NjI5OTVjYzhhMDdiNDY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAgLTAsMCArMSwxMDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkSW1hZ2VDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFz
cyBJdGVtOworfQorZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK3N0cnVjdCBCYWRn
ZTsKK2NsYXNzIENvbG9yOworY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgRmxvYXRTaXplOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlcjsKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlIDogcHVibGljIFdlYkNvcmU6OkNhY2hlZEltYWdlQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmLCBXZWJQYWdlJik7CisKKyAgICBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyKCkg
Y29uc3Q7CisgICAgdm9pZCBkcmF3QmFkZ2luZ0JvcmRlcihXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkJhZGdlPiYpOworCisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpTaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpOworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVh
dGVEcmF3SW1hZ2VCdWZmZXJJdGVtKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
PiBjcmVhdGVEcmF3TmF0aXZlSW1hZ2VJdGVtKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmLCBXZWJDb3JlOjpDYWNoZWRJbWFnZSYs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVm
ZmVyJik7CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbGVhc2VOYXRp
dmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYpOworICAgIHZvaWQgcmVsZWFz
ZVJlbW90ZUNsaWVudChXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xp
ZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgUmVtb3RlQ2xpZW50c0hhc2hT
ZXQgPSBIYXNoU2V0PFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcj47CisgICAgdXNp
bmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpJbWFnZUJ1ZmZl
ciosIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcj47CisgICAgdXNpbmcgUmVtb3Rl
TmF0aXZlSW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyPjsKKyAgICB1c2luZyBSZW1vdGVSZXNvdXJj
ZUNsaWVudHNIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIsIFJlbW90ZUNsaWVudHNIYXNoU2V0PjsKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47CisKKyAgICB2b2lkIG5h
dGl2ZUltYWdlV2lsbEJlRGVzdHJveWVkKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiBp
bWFnZSkgb3ZlcnJpZGUgeyByZWxlYXNlTmF0aXZlSW1hZ2UoaW1hZ2UpOyB9CisKKyAgICBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgZmluZEltYWdlQnVmZmVyRm9yQ2xpZW50KFdl
YkNvcmU6OkltYWdlQnVmZmVyJiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgZmluZE5hdGl2ZUltYWdlRm9y
Q2xpZW50KFdlYkNvcmU6OkNhY2hlZEltYWdlJiwgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQ
dHImLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRp
Zmllcik7CisKKyAgICB2b2lkIGFkZFJlbW90ZUNsaWVudChXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGll
bnRJZGVudGlmaWVyKTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyPiByZW1vdmVSZW1vdGVDbGllbnQoUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCYsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZVBlbmRpbmdSZW1vdmVDbGllbnRzKFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhh
c2hNYXAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXA7CisgICAgUmVtb3RlTmF0aXZlSW1hZ2VI
YXNoTWFwIG1fcmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwOworICAgIFJlbW90ZVJlc291cmNlQ2xp
ZW50c0hhc2hNYXAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwOworICAgIFJlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAgbV9yZW1vdGVSZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFz
ZUhhc2hNYXA7CisgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlckhhc2hNYXAgbV9y
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcDsKKyAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CisgICAgV2ViUGFnZSYgbV9wYWdl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJH
YW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCAxYWU1MTU3MjUzNjFkMjI4MjE5MTRhZWQwZjI4YmIx
NmU3NjM1OGZmLi4zMDA1MGFjMDdkYzlhZDVjODNmM2RlMjgzMjkwNmE5ODc0MTBkM2Y4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQ
cm92aWRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogI2lu
Y2x1ZGUgIkdhbWVwYWREYXRhLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIldl
YkdhbWVwYWQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2xNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3NmMwZDFmYzhhYTA5
MGRkZTQ2MmNiMjFlMjRhMjM0ZjEwMGFjZmUxLi44YjFlMzA4OTEyMjg1OTZjZmUwN2EyZjkxNzFl
Nzg1ZDI1MjNmNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBA
IFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFBsYXRmCiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBXZWJDaHJv
bWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKSBjb25zdAogewogICAgIGlm
ICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGUoKTsKKyAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKG1fcGFn
ZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411148</attachid>
            <date>2020-10-12 13:09:39 -0700</date>
            <delta_ts>2020-11-04 21:11:22 -0800</delta_ts>
            <desc>Patch for review</desc>
            <filename>resource-cache-7.patch</filename>
            <type>text/plain</type>
            <size>37812</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjNiZTUyZDY3YWYuLjFjZjUzMzcxNmM3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBbGxvdyBkcmF3aW5nIGEgYm9y
ZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBH
UFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBpbnRyb2R1Y2VkIHRvIGJlIHRoZSBwbGFj
ZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdyYXBoaWNhbCBjb21tYW5kcyBjYW4gYmUg
YWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCYWRnaW5nQm9yZGVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaDogQWRkZWQuCisKIDIwMjAtMTAt
MTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIENhY2hlIHRoZSBCaXRtYXBJbWFnZSBmcmFtZSBpbiBHUFUgUHJvY2Vz
cyBhbmQgYWxsb3cgcmVmZXJlbmNpbmcgaXQgd2l0aCBpdHMgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiZjA3YTI1YjZhOTAuLjQ1YWY4ZjFhYmFhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTQ2LDYgKzExNDYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRy
YXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBlNjdlN2M3
NDczMTMuLmI1ZjBkZDY5MWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OTMsNiArMTg5Myw3IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZmUyOWY4YmNlODQuLmJhZWQ1MjE2
ZWU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjE1NCw2ICsyMTU0LDcgQEAKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3
IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIx
QjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIxQjQ5NzAyNTEyQUMwNDAwRkU5
RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBh
aW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIzMUJF
QjIyNTM0Qzk0ODAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIzMUJFQjAyNTM0QzM5RDAwN0VC
REIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VY
VEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9
OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAw
QTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlT
dGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5n
ZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTk5MDIsNiArOTkwMyw4IEBACiAJCTcyMUI0OTZGMjUxMkFDMDQwMEZFOUQzQiAvKiBJ
bWFnZUJpdG1hcEJhY2tpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCaXRtYXBCYWNr
aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIxQjQ5NzAyNTEyQUMwNDAw
RkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJpdG1h
cEJhY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyQTgxNUMyMzhGRDUw
NTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbmltYXRp
b25GcmFtZVJhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIzMUJFQUYyNTM0
QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjMxQkVCMDI1MzRDMzlEMDA3RUJEQjIgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjRFRDMyOTFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxlbmRNaW5NYXgu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhUQmxlbmRNaW5NYXgu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRDMyQTFBM0E3RTU0MDBGNUYx
M0MgLyogRVhUQmxlbmRNaW5NYXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RVhUQmxlbmRNaW5NYXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUQzMkIx
QTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBFWFRCbGVuZE1pbk1heC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NjE0NCw2ICsyNjE0Nyw4IEBACiAJCQkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRp
ZW50SW1hZ2UuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3ND
b250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5MzBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3ND
b250ZXh0LmggKi8sCisJCQkJNzIzMUJFQUYyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBoaWNzQ29u
dGV4dEV4dHJhcy5jcHAgKi8sCisJCQkJNzIzMUJFQjAyNTM0QzM5RDAwN0VCREIyIC8qIEdyYXBo
aWNzQ29udGV4dEV4dHJhcy5oICovLAogCQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBH
cmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJMzEzREU4NkYyM0E5Njk2NzAwOEZDNDdCIC8q
IEdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8q
IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oICovLApAQCAtMzE2MTgsNiArMzE2MjMsNyBA
QAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHcmFkaWVudEltYWdlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhp
Y3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyMzFCRUIyMjUzNEM5NDgwMDdFQkRC
MiAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxM0RFODcw
MjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCmlu
ZGV4IDhiMTM3ODkxNzkxZi4uNDQ4OTZjODYxNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAKQEAg
LTEgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CiAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRFeHRyYXMu
aCIKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVk
ZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJUZXh0UnVuLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBj
b25zdCBWZWN0b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAgYXV0byByZWN0Q29ybmVyUG9pbnQg
PSBbJl0oY29uc3QgRmxvYXRSZWN0JiByZWN0LCBSZWN0Q29ybmVyIGNvcm5lcikgeworICAgICAg
ICBhdXRvIHBvaW50ID0gcmVjdC5sb2NhdGlvbigpOworICAgICAgICBpZiAoY29ybmVyID09IFJl
Y3RUb3BSaWdodCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9p
bnQubW92ZShyZWN0LndpZHRoKCksIDApOworICAgICAgICBpZiAoY29ybmVyID09IFJlY3RCb3R0
b21MZWZ0IHx8IGNvcm5lciA9PSBSZWN0Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5t
b3ZlKDAsIHJlY3QuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gcG9pbnQ7CisgICAgfTsKKwor
ICAgIGF1dG8gcmVjdENvcm5lclJlY3QgPSBbJl0oY29uc3QgRmxvYXRSZWN0JiByZWN0LCBSZWN0
Q29ybmVyIGNvcm5lciwgY29uc3QgRmxvYXRTaXplIHNpemUpIHsKKyAgICAgICAgYXV0byBwb2lu
dCA9IHJlY3RDb3JuZXJQb2ludChyZWN0LCBjb3JuZXIpOworICAgICAgICBpZiAoY29ybmVyID09
IFJlY3RUb3BSaWdodCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAgICAgICAgICAg
cG9pbnQubW92ZSgtc2l6ZS53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNvcm5lciA9PSBSZWN0
Qm90dG9tTGVmdCB8fCBjb3JuZXIgPT0gUmVjdEJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9p
bnQubW92ZSgwLCAtc2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBGbG9hdFJlY3QocG9p
bnQsIHNpemUpOworICAgIH07CisKKyAgICBhdXRvIG9wcG9zaXRlSG9yaXpvbnRhbCA9IFtdKFJl
Y3RDb3JuZXIgY29ybmVyKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWN0Q29ybmVy
Pihjb3JuZXIgXiAweDEpOworICAgIH07CisKKyAgICBhdXRvIG9wcG9zaXRlVmVydGljYWwgPSBb
XShSZWN0Q29ybmVyIGNvcm5lcikgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVjdENv
cm5lcj4oY29ybmVyIF4gMHgyKTsKKyAgICB9OworCisgICAgYXV0byBkcmF3QmFkZ2VSZWN0ID0g
WyZdKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBiYWRnZXNSZWN0
LCBSZWN0Q29ybmVyIGNvcm5lciwgY29uc3QgRmxvYXRTaXplJiBiYWRnZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgY3V0b2ZmU2l6ZSkgeworCisgICAgICAgIEZsb2F0UmVjdCBiYWRnZVJlY3QgPSBy
ZWN0Q29ybmVyUmVjdChiYWRnZXNSZWN0LCBjb3JuZXIsIGJhZGdlU2l6ZSk7CisgICAgICAgIEZs
b2F0UmVjdCBjdXRvZmZSZWN0ID0gcmVjdENvcm5lclJlY3QoYmFkZ2VzUmVjdCwgY29ybmVyLCBj
dXRvZmZTaXplKTsKKworICAgICAgICBQYXRoIHBhdGg7CisKKyAgICAgICAgY29ybmVyID0gb3Bw
b3NpdGVIb3Jpem9udGFsKGNvcm5lcik7CisgICAgICAgIHBhdGgubW92ZVRvKHJlY3RDb3JuZXJQ
b2ludChjdXRvZmZSZWN0LCBjb3JuZXIpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocmVjdENv
cm5lclBvaW50KGJhZGdlUmVjdCwgY29ybmVyKSk7CisKKyAgICAgICAgY29ybmVyID0gb3Bwb3Np
dGVWZXJ0aWNhbChjb3JuZXIpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhyZWN0Q29ybmVyUG9p
bnQoYmFkZ2VSZWN0LCBjb3JuZXIpKTsKKworICAgICAgICBjb3JuZXIgPSBvcHBvc2l0ZUhvcml6
b250YWwoY29ybmVyKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocmVjdENvcm5lclBvaW50KGJh
ZGdlUmVjdCwgY29ybmVyKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHJlY3RDb3JuZXJQb2lu
dChjdXRvZmZSZWN0LCBjb3JuZXIpKTsKKworICAgICAgICBwYXRoLmNsb3NlU3VicGF0aCgpOwor
CisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNvbG9yKTsKKyAgICAgICAgY29udGV4dC5m
aWxsUGF0aChwYXRoKTsKKyAgICAgICAgcmV0dXJuIGJhZGdlUmVjdDsKKyAgICB9OworCisgICAg
Y29uc3QgZmxvYXQgdmVydGljYWxNYXJnaW4gPSAxOworICAgIGNvbnN0IGZsb2F0IGhvcml6b250
YWxNYXJnaW4gPSAyOworICAgIGNvbnN0IHVuc2lnbmVkIGZvbnRTaXplID0gMTA7CisgICAgY29u
c3QgRmxvYXRTaXplIGN1dG9mZlNpemUoMywgMyk7CisKKyAgICBGb250Q2FzY2FkZURlc2NyaXB0
aW9uIGZvbnREZXNjcmlwdGlvbjsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KCJI
ZWx2ZXRpY2EiKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShmb250U2l6
ZSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250U2l6ZSk7CisKKyAg
ICBGb250Q2FzY2FkZSBjYXNjYWRlKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CisgICAgY2Fz
Y2FkZS51cGRhdGUobnVsbHB0cik7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsK
KyAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7CisgICAgY29udGV4dC5zdHJv
a2VSZWN0KGJvcmRlclJlY3QsIDAuNSk7CisKKyAgICBGbG9hdFJlY3QgYmFkZ2VzUmVjdCA9IGJv
cmRlclJlY3Q7CisgICAgYmFkZ2VzUmVjdC5pbmZsYXRlKC0xKTsKKworICAgIGZvciAoYXV0byBi
YWRnZSA6IGJhZGdlcykgeworICAgICAgICBUZXh0UnVuIHRleHRSdW4oYmFkZ2UudGV4dCk7Cisg
ICAgICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUud2lkdGgodGV4dFJ1bik7CisgICAgICAg
IEZsb2F0U2l6ZSBiYWRnZVNpemUoaG9yaXpvbnRhbE1hcmdpbiAqIDIgKyB0ZXh0V2lkdGgsIHZl
cnRpY2FsTWFyZ2luICogMiArIGZvbnRTaXplKTsKKworICAgICAgICBhdXRvIGJhZGdlUmVjdCA9
IGRyYXdCYWRnZVJlY3QoY29udGV4dCwgYmFkZ2VzUmVjdCwgYmFkZ2UuY29ybmVyLCBiYWRnZVNp
emUsIGN1dG9mZlNpemUpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhZGdlLmNv
bG9yKTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChjYXNjYWRlLCB0ZXh0UnVuLCBGbG9hdFBv
aW50KGJhZGdlUmVjdC54KCkgKyBob3Jpem9udGFsTWFyZ2luLCBiYWRnZVJlY3QueSgpICsgZm9u
dFNpemUpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmgKaW5kZXggOGIxMzc4OTE3OTFmLi42MjY1MTU0ODhhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCkBA
IC0xICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CiAKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgRmxvYXRSZWN0OworCitlbnVt
IFJlY3RDb3JuZXIgeworICAgIFJlY3RUb3BMZWZ0ICAgICA9IDB4MDAsCisgICAgUmVjdFRvcFJp
Z2h0ICAgID0gMHgwMSwKKyAgICBSZWN0Qm90dG9tTGVmdCAgPSAweDAyLAorICAgIFJlY3RCb3R0
b21SaWdodCA9IDB4MDMsCit9OworCitzdHJ1Y3QgQmFkZ2UgeworICAgIFJlY3RDb3JuZXIgY29y
bmVyOworICAgIENvbG9yIGNvbG9yOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3QmFkZ2luZ0JvcmRlcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiwgY29uc3QgVmVjdG9yPEJhZGdlPiYpOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4YzEyMzE5MDMxZC4uZjQyMDgw
OGI3ZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTEyICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNz
XSBBbGxvdyBkcmF3aW5nIGEgYm9yZGVyIGFuZCBhIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlm
IGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgV2ViUGFnZSB3aWxsIHBh
c3MgaXRzZWxmIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2hlbiBpdCBpcyBjcmVhdGVkLgor
ICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNhbiByZWFkIHRoZSBjb3JlIHBhZ2Ugc2V0
dGluZ3MgdGhyb3VnaCB0aGUgV2ViUGFnZS4KKworICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlcjo6
Zmx1c2hEcmF3aW5nQ29udGV4dCgpIHdpbGwgcmVjb3JkIHRoZSBib3JkZXIgYW5kIGJhZGdlCisg
ICAgICAgIHRvIHRoZSBJbWFnZUJ1ZmZlciBEaXNwbGF5TGlzdCBiZWZvcmUgc2VuZGluZyBpdCB0
byB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZHJhd0JhZGdpbmdCb3JkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpkcmF3QmFkZ2luZ0JvcmRlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kIGNvbnN0KToKKwogMjAyMC0xMC0xMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJv
dWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2FjaGUgdGhlIEJp
dG1hcEltYWdlIGZyYW1lIGluIEdQVSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2luZyBpdCB3
aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHAKaW5kZXggYzFhMzFjYmM5NGI2Li5kNGRiYmFkMGQxOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC04NiwxNCArODYsMTQgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9n
aWNhbFNpemUKICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcmVhdGVJbWFnZUJ1ZmZl
cihsb2dpY2FsU2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0Jh
ZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCiB7Ci0gICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1c2hEcmF3aW5nQ29u
dGV4dChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5mbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBzaG91
bGREcmF3QmFkZ2luZ0JvcmRlciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIEltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKIHsKLSAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5mbHVz
aERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZsdXNoRHJhd2luZ0NvbnRl
eHRBbmRDb21taXQoZGlzcGxheUxpc3QsIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCBhZjk2MjYyZGMzMDcuLjAzYjlk
YjM1OWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtNzgsOCArNzgsOCBA
QCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCBj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBm
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2
b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmLCBib29sIHNob3VsZERyYXdCYWRnaW5nQm9yZGVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hv
dWxkRHJhd0JhZGdpbmdCb3JkZXIsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0
IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCBjYWNo
ZU5hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjMxY2M2NzNlOGEzLi4wMTU2NjhmODIz
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjQsOCArMjQsOCBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkgTm90UmVmQ291bnRlZCB7CiAgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpG
bG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCi0gICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFn
ZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRl
eHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBib29sIHNo
b3VsZERyYXdCYWRnaW5nQm9yZGVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIg
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdp
bmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNw
bGF5TGlzdCwgYm9vbCBzaG91bGREcmF3QmFkZ2luZ0JvcmRlciwgV2ViS2l0OjpJbWFnZUJ1ZmZl
ckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVu
dW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwg
V2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2Ug
aW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIHZvaWQgQ2FjaGVOYXRpdmVJbWFnZShXZWJDb3Jl
OjpOYXRpdmVJbWFnZVB0ciBpbWFnZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAppbmRleCA2MGFmNTk2OTVjNGYuLmZhOTQx
ZDE4NzU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDggQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzgsNiArNDAsMTMgQEAgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5JgogewogfQogCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJhd0JhZGdp
bmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRl
clJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYgYmFkZ2VzKSBj
b25zdAoreworICAgIGlmICghbV9zaG91bGREcmF3QmFkZ2luZ0JvcmRlcikKKyAgICAgICAgcmV0
dXJuOworICAgIFdlYkNvcmU6OmRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJlY3Qs
IGNvbG9yLCBiYWRnZXMpOworfQorCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
IHsKICAgICBpZiAobV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSkgewpAQCAtNjEsOCArNzAsOSBAQCB2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgUgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1JbWFnZUJ1ZmZlciogUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCitJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QsIGJvb2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY2hhbmdlKG1fc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIHNob3VsZERyYXdCYWRnaW5n
Qm9yZGVyKTsKICAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFw
LmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CiAgICAgICAgIGltYWdlLT5mbHVzaERy
YXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKICAgICAgICAgcmV0dXJuIGltYWdlOwpAQCAtNzAs
OSArODAsOSBAQCBJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERy
YXdpbmdDb250ZXh0KGNvbnN0IERpc3BsYXlMaXN0OjpEaQogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1JbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCitJ
bWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGJv
b2wgc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2UgPSBmbHVzaERyYXdp
bmdDb250ZXh0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAg
aWYgKGF1dG8gaW1hZ2UgPSBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBzaG91bGRE
cmF3QmFkZ2luZ0JvcmRlciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewogICAgICAgICBp
bWFnZS0+Zmx1c2hDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbWFnZTsKICAgICB9CkBAIC0x
MDQsNiArMTE0LDcgQEAgYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRyYXdOYXRpdmVJ
bWFnZUl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGRyYXdJdGVtLmltYWdl
U2l6ZSgpLCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgZHJhd0l0ZW0uc291cmNlKCksIGRy
YXdJdGVtLm9wdGlvbnMoKSk7CisgICAgZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCwgZHJhd0l0
ZW0uZGVzdGluYXRpb25SZWN0KCksIFdlYkNvcmU6OkNvbG9yOjpyZWQsIHsgeyBSZWN0Qm90dG9t
UmlnaHQsIENvbG9yOjp3aGl0ZSwgIklNQUdFIl9zIH0gfSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTExOSw2ICsxMzAsNyBAQCBib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZHJh
d0ltYWdlQnVmZmVySXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpbWFnZS0+ZHJhdyhjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5h
dGlvblJlY3QoKSwgZHJhd0l0ZW0uc291cmNlKCksIGRyYXdJdGVtLm9wdGlvbnMoKSk7CisgICAg
ZHJhd0JhZGdpbmdCb3JkZXIoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0KCksIFdl
YkNvcmU6OkNvbG9yOjpibHVlLCB7IHsgUmVjdEJvdHRvbVJpZ2h0LCBDb2xvcjo6d2hpdGUsICJD
QU5WQVMiX3MgfSB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oCmluZGV4IDIzZTQyMmM4YWFkYy4uZTY3NTg5ZDczZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFzcyBE
aXNwbGF5TGlzdDsKIGNsYXNzIEl0ZW07CiB9CitzdHJ1Y3QgQmFkZ2U7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNDYsOCArNDcsOCBAQCBwdWJsaWM6CiAgICAgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYpOwogCiAgICAgdm9pZCBjcmVh
dGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJD
b3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgV2ViQ29yZTo6
SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAg
ICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBmbHVzaERyYXdpbmdD
b250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hv
dWxkRHJhd0JhZGdpbmdCb3JkZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgYm9vbCBzaG91bGREcmF3
QmFkZ2luZ0JvcmRlciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1Jl
Y3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcikgY29uc3Q7CiAKICAgICB2b2lk
IGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtNjAsMTIgKzYxLDE0IEBAIHByaXZhdGU6
CiAgICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4+OwogICAgIHVzaW5nIFJlbW90ZU5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8V2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0cj47
CiAKKyAgICB2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+JikgY29uc3Q7CiAgICAgYm9vbCBkcmF3
SW1hZ2VCdWZmZXJJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgYm9vbCBkcmF3TmF0aXZlSW1hZ2VJdGVt
KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0JikgY29uc3Q7CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgbV9yZW1vdGVJbWFn
ZUJ1ZmZlckhhc2hNYXA7CiAgICAgUmVtb3RlTmF0aXZlSW1hZ2VIYXNoTWFwIG1fcmVtb3RlTmF0
aXZlSW1hZ2VIYXNoTWFwOwogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CisgICAgYm9vbCBtX3Nob3VsZERyYXdCYWRnaW5nQm9y
ZGVyIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCmluZGV4IGU4NTFkZDAzOGI3Ny4uMGM3MzgwZmQ1ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQxLDYgKzQyLDcg
QEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47
CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1
c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKKyAgICB1
c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGljOgogICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCkBAIC05
Myw2ICs5NSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2Ry
YXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXRl
bUNvdW50KCkgfHwgIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5kcmF3QmFkZ2luZ0JvcmRlcihj
b250ZXh0KCksIHsgeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCkgfSwgV2ViQ29yZTo6Q29s
b3I6OmRhcmtHcmVlbiwgeyB7IFdlYkNvcmU6OlJlY3RUb3BSaWdodCwgV2ViQ29yZTo6Q29sb3I6
OndoaXRlLCAiR1BVIl9zIH0gfSk7CiAgICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1p
dChkaXNwbGF5TGlzdCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4
dCgpOwogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbGVhc2VSZW1vdGVDbGll
bnQobV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggMDY1NzgxNDJjNmFlLi4wNGI1Mjk2ODZlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtMzksMTIgKzM5LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZSgpCitzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3Jl
YXRlKFdlYlBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kPihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpKTsKKyAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+KG5ldyBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKHBhZ2UpKTsKIH0KIAotUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCgpCitSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3JlbW90ZVJlc291cmNlQ2FjaGUoKnRo
aXMsIHBhZ2UpCiB7CiAgICAgLy8gUmVnaXN0ZXIgaXRzZWxmIGFzIGEgTWVzc2FnZVJlY2VpdmVy
IGluIHRoZSBHUFVQcm9jZXNzQ29ubmVjdGlvbi4KICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1h
cCYgbWVzc2FnZVJlY2VpdmVyTWFwID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZXNzYWdlUmVjZWl2ZXJNYXAoKTsKQEAgLTg2LDYgKzg3LDEx
IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2FpdEZvckNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KCkKICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNo
SW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0PihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MsIElQ
Qzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsK
IH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3QmFkZ2luZ0JvcmRlcihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3Qg
Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8QmFkZ2U+JiBiYWRnZXMpCit7CisgICAgbV9yZW1v
dGVSZXNvdXJjZUNhY2hlLmRyYXdCYWRnaW5nQm9yZGVyKGNvbnRleHQsIGJvcmRlclJlY3QsIGNv
bG9yLCBiYWRnZXMpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
U2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNh
Y2hlLmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHNob3VsZEFjY2VsZXJhdGUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSk7CkBAIC0xMjcsMTMgKzEzMywxMyBAQCBSZWZQdHI8SW1hZ2VEYXRh
PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZW1vdGVHZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0
aXBsaWNhdAogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZUZsdXNoRHJhd2lu
Z0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlz
cGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5zaG91bGREcmF3QmFkZ2luZ0JvcmRlcigp
LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKIH0KIAogSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6cmVtb3RlRmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHNl
bnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNo
SW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgc2VudEZsdXNo
SWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3Qs
IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5zaG91bGREcmF3QmFkZ2luZ0JvcmRlcigpLCBzZW50Rmx1
c2hJZGVudGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKICAgICByZXR1cm4gc2VudEZsdXNoSWRlbnRpZmllcjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBlOTMzMzBlNzVhYzguLmNhNjc1MmViNzA0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTQzLDE4ICs0MywyMSBAQCBjbGFzcyBE
aXNwbGF5TGlzdDsKIGNsYXNzIEl0ZW07CiB9CiBjbGFzcyBGbG9hdFNpemU7CitzdHJ1Y3QgQmFk
Z2U7CiBlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJp
bmdNb2RlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlBh
Z2U7CisKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKICAgICA6IHB1YmxpYyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUo
KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNy
ZWF0ZShXZWJQYWdlJik7CiAKICAgICB+UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOwogCkBAIC02
Nyw4ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZCgpOwogICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KCk7Ci0gICAgICAgIAorCiAgICAgLy8gUmVzb3VjZSBjYWNoZS4KKyAgICB2b2lkIGRyYXdCYWRn
aW5nQm9yZGVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6QmFkZ2U+Jik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpT
aG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3Bh
Y2UpOwogICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJik7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtPiBjcmVhdGVEcmF3SW1hZ2VC
dWZmZXJJdGVtKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CkBAIC04NCwxMyArODgsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlUmVsZWFz
ZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKIHBy
aXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOworICAgIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViUGFnZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAg
ICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBSZW1vdGVSZXNvdXJjZUNh
Y2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZSB7ICp0aGlzIH07CisgICAgUmVtb3RlUmVzb3VyY2VD
YWNoZSBtX3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCA2
M2Y5NzJjMTBkZDEuLmEwOWJhODYwZTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBA
IC0zMywxNiArMzMsMzIgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hl
ZEltYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNl
Q2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKK1Jl
bW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQorICAgICwgbV9wYWdl
KHBhZ2UpCiB7CiB9CiAKK2Jvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZTo6c2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS5zaG93RGVidWdCb3JkZXJzKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
ZHJhd0JhZGdpbmdCb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPEJhZGdlPiYg
YmFkZ2VzKQoreworICAgIGlmICghc2hvdWxkRHJhd0JhZGdpbmdCb3JkZXIoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIEZsb2F0UmVjdCBjb250YWluZXJSZWN0ID0gYm9yZGVyUmVjdDsKKyAgICBj
b250YWluZXJSZWN0LmluZmxhdGUoLTEpOworICAgIFdlYkNvcmU6OmRyYXdCYWRnaW5nQm9yZGVy
KGNvbnRleHQsIGNvbnRhaW5lclJlY3QsIGNvbG9yLCBiYWRnZXMpOworfQorCiBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBp
ZiAoc2hvdWxkQWNjZWxlcmF0ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VD
YWNoZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmgKaW5kZXggZTE3ODAxMTUxYzZhLi4zMDM3Y2ZkZmNhNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZS5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBj
bGFzcyBJdGVtOwogfQogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK3N0cnVjdCBC
YWRnZTsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRTaXplOwpA
QCAtNDksMTAgKzUwLDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOwogY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKK2Ns
YXNzIFdlYlBhZ2U7CiAKIGNsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGUgOiBwdWJsaWMgV2ViQ29y
ZTo6Q2FjaGVkSW1hZ2VDbGllbnQgewogcHVibGljOgotICAgIFJlbW90ZVJlc291cmNlQ2FjaGUo
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUoUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCYsIFdlYlBhZ2UmKTsKKworICAgIGJvb2wgc2hvdWxkRHJhd0JhZGdp
bmdCb3JkZXIoKSBjb25zdDsKKyAgICB2b2lkIGRyYXdCYWRnaW5nQm9yZGVyKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6QmFkZ2U+Jik7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CiAgICAgdm9pZCBjcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtODcsNiArOTIsNyBAQCBwcml2YXRl
OgogICAgIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbV9yZW1vdGVSZXNvdXJjZUNsaWVu
dHNQZW5kaW5nUmVsZWFzZUhhc2hNYXA7CiAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlckhhc2hNYXAgbV9yZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVySGFzaE1hcDsKICAg
ICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CisgICAg
V2ViUGFnZSYgbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDc2YzBkMWZjOGFhMC4uOGIxZTMwODkxMjI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBAIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmCiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQoKSBjb25zdAogewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpjcmVhdGUoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID0gUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413248</attachid>
            <date>2020-11-04 21:11:24 -0800</date>
            <delta_ts>2020-11-04 21:38:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201104211124.patch</filename>
            <type>text/plain</type>
            <size>36203</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZmYTQ1ZjFmZTJkYjMz
ZDBlZTEwZjRhN2YxOWUwNmNjMDFhZjUwMy4uYTdmNzk5YWQ1MzdjZmRjYTJiYWIxZWRkNmM2ODQx
ZjliYTJkZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTExLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
RHJhdyBhIGRlYnVnZ2luZyBib3JkZXIgYW5kIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0
J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBpbnRyb2R1
Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdyYXBoaWNh
bCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgVXNlIGRyYXdEZWJ1Z0Jh
ZGdlcygpIHRvIGRyYXcgdGhlIGJhZGdlcyBpbiBkcmF3UmVwYWludEluZGljYXRvcigpLiBUaGUK
KyAgICAgICAgbmV3IGZ1bmN0aW9uIGFsbG93cyBtb3JlIGZsZXhpYmlsaXR5IHNpbmNlIGl0IGNh
biBkcmF3IGZvdXIgYmFkZ2VzIG9uZSBpbgorICAgICAgICBlYWNoIGNvcm5lciBvciB0aGUgYm9y
ZGVyIHJlY3RhbmdsZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdEZWJ1
Z0JvcmRlckFuZEJhZGdlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdSZXBhaW50SW5kaWNhdG9yKToKKwogMjAyMC0xMS0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBIHByb2dyYW1tYXRpYyBzY3JvbGwgc2hvdWxk
IHN0b3AgYW55IHJ1YmJlcmJhbmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTk1ZDY1N2QwZWY3MzBkOWY4NjRh
ZTFlNGIzMTRjMDkzMTQ5ZmVhOS4uOTIyMGJhZmE2MDkyZDJhNTU2NDIyYWY0ZGQ1Mjk2YWFjNTE4
NTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMC0xMS0wNCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIERyYXcgYSBk
ZWJ1Z2dpbmcgYm9yZGVyIGFuZCBiYWRnZSBmb3IgdGhlIDJEIGNhbnZhcyBpZiBpdCdzIGRyYXdu
IHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0RlYnVn
QmFkZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJl
c291cmNlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZs
dXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgRHJhdyBhIGRlYnVnZ2luZyBi
YWRnZSBmb3IgdGhlIGNhbnZhcyB3aGVuIGl0IGlzIGRyYXduIGFzIGFuIGltYWdlIGludG8KKyAg
ICAgICAgYW5vdGhlciBjYW52YXMgaW4gR1BVUC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzcyB0
aGUgJ3Nob3dEZWJ1Z0JvcmRlcnMnIGZyb20gV2ViUG9yY2VzcyB0byBHUFVQLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpOgorICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkgY2FuIHJlYWQgdGhlIHBhZ2Ugc2V0dGluZ3MgdGhyb3VnaCB0aGUgV2ViUGFnZS4KKwor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnNob3dEZWJ1Z0Jv
cmRlcnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KToK
KyAgICAgICAgRHJhdyBhIGRlYnVnZ2luZyBiYWRnZSBmb3IgdGhlIGNhbnZhcyB3aGVuIGl0IGlz
IGRyYXduIGluIEdQVVAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IGNvbnN0KToKKyAgICAgICAg
V2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxmIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3
aGVuIGl0IGlzIGNyZWF0ZWQuCisKIDIwMjAtMTEtMDQgIEx1bWluZyBZaW4gIDxsdW1pbmdfeWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10gRG9uJ3QgYWxsb3cgbWFuYWdlZCBwcmVm
ZXJlbmNlIHRvIGVuYWJsZSBsZWdhY3kgc3luYyBYSFJzIG9uIHdhdGNoT1MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDZmOGEwODc2NDk5MDU1YmE0OGFmZWI3YTM0YTFmNGU4ODY1ZmZhNTIuLjRlMGU5
YWMxNGU0MmNkMGRhYzFlMjBmYTkyYjE5ZTEwNWVjZGEzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTE2OCw2ICsxMTY4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTRlNzMxN2IzMzA5NjAyZGZhOWI1NTcw
ZDM1NmM4YmJiMzNiODQ0My4uN2Y0MTkwNzU2OTA4MmYyY2Q3NmNmZjE1MDkxNjJlNWE5NTJiMmM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE5MTQsNiArMTkxNCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMDYyZTkwN2I1YWM2MWZhNDYyMzY5
NDBjNDZhNTcyOGI0YjhiNDAzLi5iNDc5NzM1YzIwMGUxODk5NzI5MDA3ZDdiZmMyYTJmYTIzN2Vi
YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMTY1LDYgKzIxNjUsNyBAQAogCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMg
LyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjlEMDUzMDI1
MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjlEMDUyRTI1MzEzRTI2MDA0
MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAz
IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1l
UmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTcyQUJFNzE3MjU1M0FEMzkwMDEyQ0YzNyAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQUJFNzEzMjU1MzMz
NTMwMDEyQ0YzNyAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkJBQzNBRTIzRTFGMEIwMDA4RDc0MUMg
LyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MkJBQzNBNTIzRTE3MzI4MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNr
ZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTc5M0U4NDBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2Fn
ZUV2ZW50LmggKi87IH07CkBAIC05OTY4LDYgKzk5NjksOCBAQAogCQk3Mjk5QkM2NDIzRDY4NkE2
MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBo
YVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOTlC
QzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5RDA1MkUyNTMx
M0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzJBQkU3MTIyNTUzMzM1MzAwMTJDRjM3IC8qIEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MkFCRTcxMzI1NTMzMzUzMDAxMkNGMzcgLyogR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNDIzRTE3MzI3MDA4RDc0
MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQnVmZmVyQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQkFDM0E2MjNFMTczMjgwMDhENzQxQyAvKiBQ
bGF0Zm9ybUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MzIy
LDYgKzI2MzI1LDggQEAKIAkJCQkyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJ
bWFnZS5oICovLAogCQkJCUIyQTAxNTkyMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRl
eHQuY3BwICovLAogCQkJCUIyQTAxNTkzMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRl
eHQuaCAqLywKKwkJCQk3MkFCRTcxMjI1NTMzMzUzMDAxMkNGMzcgLyogR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmNwcCAqLywKKwkJCQk3MkFCRTcxMzI1NTMzMzUzMDAxMkNGMzcgLyogR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmggKi8sCiAJCQkJMzEzREU4NkQyM0E5Njk2NjAwOEZDNDdCIC8qIEdyYXBo
aWNzQ29udGV4dEdMLmNwcCAqLywKIAkJCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3Jh
cGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggKi8sCkBAIC0zMTg3Miw2ICszMTg3Nyw3IEBACiAJ
CQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0Nv
bnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzJBQkU3MTcyNTUzQUQzOTAwMTJDRjM3IC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5
Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QkIzNEExNzI1MzQ1Q0IyMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYzY5YmI1NjRlOTdmNTYxM2UwNTgyN2E3MDRlMGNhNjBhN2E4ZDAxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBkcmF3RGVidWdCYWRnZXNJbnRlcm5hbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgVmVjdG9yPERlYnVnQmFkZ2U+JiBiYWRnZXMp
Cit7CisgICAgYXV0byBjb3JuZXJQb2ludCA9IFtdKGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVj
dCwgRGVidWdCYWRnZTo6Q29ybmVyIGNvcm5lcikgeworICAgICAgICBhdXRvIHBvaW50ID0gYm9y
ZGVyUmVjdC5sb2NhdGlvbigpOworICAgICAgICBpZiAoY29ybmVyID09IERlYnVnQmFkZ2U6OkNv
cm5lcjo6VG9wUmlnaHQgfHwgY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tUmln
aHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKGJvcmRlclJlY3Qud2lkdGgoKSwgMCk7CisgICAg
ICAgIGlmIChjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0b21MZWZ0IHx8IGNvcm5l
ciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQu
bW92ZSgwLCBib3JkZXJSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHBvaW50OworICAg
IH07CisKKyAgICBhdXRvIGNvcm5lclJlY3QgPSBbJl0oY29uc3QgRmxvYXRSZWN0JiBib3JkZXJS
ZWN0LCBEZWJ1Z0JhZGdlOjpDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9hdFNpemUgc2l6ZSkgewor
ICAgICAgICBhdXRvIHBvaW50ID0gY29ybmVyUG9pbnQoYm9yZGVyUmVjdCwgY29ybmVyKTsKKyAg
ICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OlRvcFJpZ2h0IHx8IGNvcm5l
ciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQu
bW92ZSgtc2l6ZS53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1Z0JhZGdl
OjpDb3JuZXI6OkJvdHRvbUxlZnQgfHwgY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90
dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKDAsIC1zaXplLmhlaWdodCgpKTsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdChwb2ludCwgc2l6ZSk7CisgICAgfTsKKworICAgIGF1dG8g
ZHJhd0RlYnVnQmFkZ2UgPSBbJl0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IERlYnVnQmFkZ2UmIGJhZGdlKSB7CisgICAgICAgIEZv
bnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAgICAgICBmb250RGVzY3Jp
cHRpb24uc2V0T25lRmFtaWx5KCJIZWx2ZXRpY2EiKTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9u
LnNldFNwZWNpZmllZFNpemUoYmFkZ2UuZm9udFNpemUpOworICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0Q29tcHV0ZWRTaXplKGJhZGdlLmZvbnRTaXplKTsKKworICAgICAgICBGb250Q2FzY2Fk
ZSBjYXNjYWRlKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CisgICAgICAgIGNhc2NhZGUudXBk
YXRlKG51bGxwdHIpOworCisgICAgICAgIGNvbnN0IGZsb2F0IGhvcml6b250YWxNYXJnaW4gPSBi
YWRnZS5mb250U2l6ZSAvIDQ7CisgICAgICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0g
aG9yaXpvbnRhbE1hcmdpbiAvIDI7CisKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuKGJhZGdlLnRl
eHQpOworICAgICAgICBmbG9hdCB0ZXh0V2lkdGggPSBjYXNjYWRlLndpZHRoKHRleHRSdW4pOwor
CisgICAgICAgIEZsb2F0U2l6ZSBiYWRnZVNpemUoaG9yaXpvbnRhbE1hcmdpbiAqIDIgKyB0ZXh0
V2lkdGgsIHZlcnRpY2FsTWFyZ2luICogMiArIGJhZGdlLmZvbnRTaXplKTsKKworICAgICAgICBh
dXRvIGJhZGdlUmVjdCA9IGNvcm5lclJlY3QoYm9yZGVyUmVjdCwgIGJhZGdlLmNvcm5lciwgYmFk
Z2VTaXplKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihiYWRnZS5jb2xvcik7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFJlY3QoYmFkZ2VSZWN0KTsKKworICAgICAgICBjb250ZXh0LnNl
dEZpbGxDb2xvcihiYWRnZS50ZXh0Q29sb3IpOworICAgICAgICBjb250ZXh0LmRyYXdUZXh0KGNh
c2NhZGUsIHRleHRSdW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIGhvcml6b250YWxNYXJn
aW4sIGJhZGdlUmVjdC55KCkgKyBiYWRnZS5mb250U2l6ZSkpOworICAgIH07CisgICAgCisgICAg
Zm9yIChhdXRvIGJhZGdlIDogYmFkZ2VzKQorICAgICAgICBkcmF3RGVidWdCYWRnZShjb250ZXh0
LCBib3JkZXJSZWN0LCBiYWRnZSk7Cit9CisKK3ZvaWQgZHJhd0RlYnVnQmFkZ2VzKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBWZWN0
b3I8RGVidWdCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgRmxvYXRSZWN0IGJvcmRlclJlY3RBZGp1c3RlZCA9
IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUoLTEpOworICAgIGRy
YXdEZWJ1Z0JhZGdlc0ludGVybmFsKGNvbnRleHQsIGJvcmRlclJlY3RBZGp1c3RlZCwgYmFkZ2Vz
KTsKK30KKwordm9pZCBkcmF3RGVidWdCb3JkZXJBbmRCYWRnZXMoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwg
Y29uc3QgVmVjdG9yPERlYnVnQmFkZ2U+JiBiYWRnZXMpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRSZWN0IGJvcmRlclJl
Y3RBZGp1c3RlZCA9IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUo
LTEpOworCisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
ZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgIGNvbnRleHQuc3Ryb2tlUmVjdChib3JkZXJS
ZWN0QWRqdXN0ZWQsIDAuNSk7CisKKyAgICBkcmF3RGVidWdCYWRnZXNJbnRlcm5hbChjb250ZXh0
LCBib3JkZXJSZWN0QWRqdXN0ZWQsIGJhZGdlcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEV4dHJhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ3YmE3YzVkODA5NGNjOTM0MDhiYzgxMzJk
Njk4YjU4MDJhZjliYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CitjbGFzcyBGbG9hdFJlY3Q7CisKK3N0cnVjdCBEZWJ1Z0JhZGdlIHsKKyAg
ICBlbnVtIGNsYXNzIENvcm5lciB7CisgICAgICAgIFRvcExlZnQsCisgICAgICAgIFRvcFJpZ2h0
LAorICAgICAgICBCb3R0b21MZWZ0LAorICAgICAgICBCb3R0b21SaWdodCwKKyAgICB9OworICAg
IENvcm5lciBjb3JuZXI7CisgICAgQ29sb3IgY29sb3I7CisgICAgQ29sb3IgdGV4dENvbG9yOwor
ICAgIHVuc2lnbmVkIGZvbnRTaXplOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3RGVidWdCYWRnZXMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3JkZXJSZWN0LCBjb25zdCBWZWN0b3I8RGVidWdCYWRnZT4mKTsKK1dFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2VzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImLCBjb25zdCBWZWN0b3I8RGVidWdC
YWRnZT4mKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5jcHAKaW5kZXggNmQ0
MWQ5ODFhMmIwMWM3MThjZDA5NWU0NmJhYWQzMTc0YmVkOGVlOC4uYTdiOWZkYjhiNTM5ZDllYjE2
MmFmMGQ1OTVmNmZlYTMzMjc1ZTc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgVVNFKENBKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRFeHRyYXMuaCIKICNpbmNsdWRlICJMYXllclBvb2wuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9D
b3JlRm91bmRhdGlvbi5oPgpAQCAtODEsNjMgKzgyLDQyIEBAIGJvb2wgUGxhdGZvcm1DQUxheWVy
OjpjYW5IYXZlQmFja2luZ1N0b3JlKCkgY29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdSZXBhaW50SW5kaWNhdG9yKEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBQbGF0
Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciwgaW50IHJlcGFpbnRDb3VudCwgQ29sb3IgY3Vz
dG9tQmFja2dyb3VuZENvbG9yKQogewotICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0g
Mi41OwotICAgIGNvbnN0IGZsb2F0IGhvcml6b250YWxNYXJnaW4gPSA1OwotICAgIGNvbnN0IHVu
c2lnbmVkIGZvbnRTaXplID0gMjI7CisgICAgY29uc3QgdW5zaWduZWQgbGFyZ2VGb250U2l6ZSA9
IDIyOworICAgIGNvbnN0IHVuc2lnbmVkIHNtYWxsRm9udFNpemUgPSAxMDsKICAgICBjb25zdGV4
cHIgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBTUkdCQTx1aW50OF90PiB7IDEyOCwgNjQsIDI1NSB9
OwotICAgIGNvbnN0ZXhwciBhdXRvIGFjY2VsZXJhdGVkQ29udGV4dExhYmVsQ29sb3IgPSBDb2xv
cjo6cmVkOwotICAgIGNvbnN0ZXhwciBhdXRvIHVuYWNjZWxlcmF0ZWRDb250ZXh0TGFiZWxDb2xv
ciA9IENvbG9yOjp3aGl0ZTsKLSAgICBjb25zdGV4cHIgYXV0byBsaW5lYXJHbHlwaE1hc2tPdXRs
aW5lQ29sb3IgPSBDb2xvcjo6YmxhY2suY29sb3JXaXRoQWxwaGFCeXRlKDE5Mik7Ci0gICAgY29u
c3RleHByIGF1dG8gZGlzcGxheUxpc3RCb3JkZXJDb2xvciA9IENvbG9yOjpibGFjay5jb2xvcldp
dGhBbHBoYUJ5dGUoMTY2KTsKLQotICAgIFRleHRSdW4gdGV4dFJ1bihTdHJpbmc6Om51bWJlcihy
ZXBhaW50Q291bnQpKTsKLQotICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0
aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkhlbHZldGljYSIpOwotICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGZvbnRTaXplKTsKLSAgICBmb250RGVz
Y3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLQotICAgIEZvbnRDYXNjYWRlIGNh
c2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKLSAgICBjYXNjYWRlLnVwZGF0ZShudWxs
cHRyKTsKLQotICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUud2lkdGgodGV4dFJ1bik7Ci0K
LSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3JhcGhpY3NDb250ZXh0
KTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKDAuNWYpOwot
Ci0gICAgZ3JhcGhpY3NDb250ZXh0LnNldEZpbGxDb2xvcihjdXN0b21CYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpID8gY3VzdG9tQmFja2dyb3VuZENvbG9yIDogYmFja2dyb3VuZENvbG9yKTsKLSAg
ICBGbG9hdFJlY3QgaW5kaWNhdG9yQm94KDEsIDEsIGhvcml6b250YWxNYXJnaW4gKiAyICsgdGV4
dFdpZHRoLCB2ZXJ0aWNhbE1hcmdpbiAqIDIgKyBmb250U2l6ZSk7Ci0gICAgaWYgKHBsYXRmb3Jt
Q0FMYXllci0+aXNPcGFxdWUoKSkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmZpbGxSZWN0KGlu
ZGljYXRvckJveCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFBhdGggYm91bmRzUGF0aDsKLSAgICAg
ICAgYm91bmRzUGF0aC5tb3ZlVG8oaW5kaWNhdG9yQm94Lm1heFhNaW5ZQ29ybmVyKCkpOwotICAg
ICAgICBib3VuZHNQYXRoLmFkZExpbmVUbyhpbmRpY2F0b3JCb3gubWF4WE1heFlDb3JuZXIoKSk7
Ci0gICAgICAgIGJvdW5kc1BhdGguYWRkTGluZVRvKGluZGljYXRvckJveC5taW5YTWF4WUNvcm5l
cigpKTsKLQotICAgICAgICBjb25zdCBmbG9hdCBjb3JuZXJDaHVuayA9IDg7Ci0gICAgICAgIGJv
dW5kc1BhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoaW5kaWNhdG9yQm94LngoKSwgaW5kaWNhdG9y
Qm94LnkoKSArIGNvcm5lckNodW5rKSk7Ci0gICAgICAgIGJvdW5kc1BhdGguYWRkTGluZVRvKEZs
b2F0UG9pbnQoaW5kaWNhdG9yQm94LngoKSArIGNvcm5lckNodW5rLCBpbmRpY2F0b3JCb3gueSgp
KSk7Ci0gICAgICAgIGJvdW5kc1BhdGguY2xvc2VTdWJwYXRoKCk7Ci0KLSAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LmZpbGxQYXRoKGJvdW5kc1BhdGgpOwotICAgIH0KKyAgICBjb25zdGV4cHIgYXV0
byBhY2NlbGVyYXRlZFRleHRDb2xvciA9IENvbG9yOjpyZWQ7CisgICAgY29uc3RleHByIGF1dG8g
dW5hY2NlbGVyYXRlZFRleHRDb2xvciA9IENvbG9yOjp3aGl0ZTsKKyAgICAKKyAgICBWZWN0b3I8
RGVidWdCYWRnZT4gYmFkZ2VzID0geyB7CisgICAgICAgIERlYnVnQmFkZ2U6OkNvcm5lcjo6VG9w
TGVmdCwKKyAgICAgICAgY3VzdG9tQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSA/IGN1c3RvbUJh
Y2tncm91bmRDb2xvciA6IGJhY2tncm91bmRDb2xvciwKKyAgICAgICAgcGxhdGZvcm1DQUxheWVy
LT5hY2NlbGVyYXRlc0RyYXdpbmcoKSA/IGFjY2VsZXJhdGVkVGV4dENvbG9yIDogdW5hY2NlbGVy
YXRlZFRleHRDb2xvciwKKyAgICAgICAgbGFyZ2VGb250U2l6ZSwKKyAgICAgICAgU3RyaW5nOjpu
dW1iZXIocmVwYWludENvdW50KQorICAgIH0gfTsKIAogICAgIGlmIChwbGF0Zm9ybUNBTGF5ZXIt
Pm93bmVyKCktPmlzVXNpbmdEaXNwbGF5TGlzdERyYXdpbmcocGxhdGZvcm1DQUxheWVyKSkgewot
ICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlQ29sb3IoZGlzcGxheUxpc3RCb3JkZXJD
b2xvcik7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zdHJva2VSZWN0KGluZGljYXRvckJveCwg
Mik7CisgICAgICAgIGJhZGdlcy5hcHBlbmQoeworICAgICAgICAgICAgRGVidWdCYWRnZTo6Q29y
bmVyOjpCb3R0b21MZWZ0LAorICAgICAgICAgICAgQ29sb3I6OmJsdWUsCisgICAgICAgICAgICBw
bGF0Zm9ybUNBTGF5ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpID8gYWNjZWxlcmF0ZWRUZXh0Q29s
b3IgOiB1bmFjY2VsZXJhdGVkVGV4dENvbG9yLAorICAgICAgICAgICAgbGFyZ2VGb250U2l6ZSwK
KyAgICAgICAgICAgICJETCJfcworICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoIXBsYXRm
b3JtQ0FMYXllci0+aXNPcGFxdWUoKSAmJiBwbGF0Zm9ybUNBTGF5ZXItPnN1cHBvcnRzU3VicGl4
ZWxBbnRpYWxpYXNlZFRleHQoKSAmJiBwbGF0Zm9ybUNBTGF5ZXItPmFjY2VsZXJhdGVzRHJhd2lu
ZygpKSB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VDb2xvcihsaW5lYXJHbHlw
aE1hc2tPdXRsaW5lQ29sb3IpOwotICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlVGhp
Y2tuZXNzKDQuNSk7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUo
VGV4dERyYXdpbmdNb2RlRmxhZ3MgeyBUZXh0RHJhd2luZ01vZGU6OkZpbGwsIFRleHREcmF3aW5n
TW9kZTo6U3Ryb2tlIH0pOworICAgIGlmICghcGxhdGZvcm1DQUxheWVyLT5pc09wYXF1ZSgpICYm
IHBsYXRmb3JtQ0FMYXllci0+c3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkVGV4dCgpKSB7Cisg
ICAgICAgIGJhZGdlcy5hcHBlbmQoeworICAgICAgICAgICAgRGVidWdCYWRnZTo6Q29ybmVyOjpC
b3R0b21SaWdodCwKKyAgICAgICAgICAgIENvbG9yOjpncmVlbiwKKyAgICAgICAgICAgIHBsYXRm
b3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNEcmF3aW5nKCkgPyBhY2NlbGVyYXRlZFRleHRDb2xvciA6
IHVuYWNjZWxlcmF0ZWRUZXh0Q29sb3IsCisgICAgICAgICAgICBzbWFsbEZvbnRTaXplLAorICAg
ICAgICAgICAgInN1Yi1waXhlbCJfcworICAgICAgICB9KTsKICAgICB9CiAKLSAgICBncmFwaGlj
c0NvbnRleHQuc2V0RmlsbENvbG9yKHBsYXRmb3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNEcmF3aW5n
KCkgPyBhY2NlbGVyYXRlZENvbnRleHRMYWJlbENvbG9yIDogdW5hY2NlbGVyYXRlZENvbnRleHRM
YWJlbENvbG9yKTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5kcmF3VGV4dChjYXNjYWRlLCB0ZXh0
UnVuLCBGbG9hdFBvaW50KGluZGljYXRvckJveC54KCkgKyBob3Jpem9udGFsTWFyZ2luLCBpbmRp
Y2F0b3JCb3gueSgpICsgZm9udFNpemUpKTsKKyAgICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFu
c3BhcmVuY3lMYXllcigwLjVmKTsKKyAgICBkcmF3RGVidWdCYWRnZXMoZ3JhcGhpY3NDb250ZXh0
LCBwbGF0Zm9ybUNBTGF5ZXItPmJvdW5kcygpLCBiYWRnZXMpOwogICAgIGdyYXBoaWNzQ29udGV4
dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggZGYwZWQ0N2U1YmVmZDY3OTg0NmE0YzdmNTA2MjAxMzY2NDYwYjY4MC4uNmQzNjBlNDI5YTVm
ZjY3MDc5ODRkOWJmOGQzZmZiYmRkMWYxMjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC03Miw2ICs3MywxOSBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3RGVidWdCYWRnZShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
ICAgIGlmICghbV9zaG93RGVidWdCb3JkZXJzKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
Y29uc3QgdW5zaWduZWQgZm9udFNpemUgPSAxMDsKKyAgICBjb25zdGV4cHIgYXV0byBiYWNrZ3Jv
dW5kQ29sb3IgPSBDb2xvcjo6Ymx1ZTsKKyAgICBjb25zdGV4cHIgYXV0byB0ZXh0Q29sb3IgPSBD
b2xvcjo6d2hpdGU7CisKKyAgICBEZWJ1Z0JhZGdlIGJhZGdlID0geyBEZWJ1Z0JhZGdlOjpDb3Ju
ZXI6OkJvdHRvbVJpZ2h0LCBiYWNrZ3JvdW5kQ29sb3IsIHRleHRDb2xvciwgZm9udFNpemUsIHRl
eHQgfTsKKyAgICBkcmF3RGVidWdCYWRnZXMoY29udGV4dCwgYm9yZGVyUmVjdCwgeyBiYWRnZSB9
KTsKK30KKwogYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJlc291cmNlSXRlbShj
b25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
ewogICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFn
ZUJ1ZmZlcikgewpAQCAtODEsNiArOTUsNyBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmFwcGx5UmVzb3VyY2VJdGVtKGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBHcgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGltYWdlQnVmZmVyLT5kcmF3KGNvbnRl
eHQsIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0
ZW0ub3B0aW9ucygpKTsKKyAgICAgICAgZHJhd0RlYnVnQmFkZ2UoY29udGV4dCwgZHJhd0l0ZW0u
ZGVzdGluYXRpb25SZWN0KCksICJDQU5WQVMiX3MpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKQEAgLTE0MCwxNCArMTU1LDE2IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Zmx1c2hEaXNwbGF5TGlzdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlM
aXN0LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0
IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycywgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKIHsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9zaG93RGVidWdCb3JkZXJz
LCBzaG93RGVidWdCb3JkZXJzKTsKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7
CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdEFuZENv
bW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgRGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG93RGVidWdCb3JkZXJzLCBEaXNwbGF5TGlz
dEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CisgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gY2hhbmdlKG1fc2hvd0RlYnVnQm9yZGVycywgc2hvd0RlYnVnQm9yZGVycyk7CiAgICAgaWYg
KGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZm
ZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkgewogICAgICAgICBpbWFnZUJ1ZmZlci0+
Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CiAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVz
aENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDI4NWUyZjc0YjRkNGZkNmU2YThj
NWU5MTAyNWExYzkyNmY1ZmZiMTUuLjk0Y2MwZjQ0YmM0NTdiMzE5MjliODkyNDQ1YzgwM2E1Nzkz
Yzg4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAg
ICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
IGNvbnN0OwogCiAgICAgLy8gUmVuZGVyaW5nIG9wZXJhdGlvbnMuCisgICAgdm9pZCBkcmF3RGVi
dWdCYWRnZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvcmRlclJlY3QsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgYm9vbCBhcHBseVJlc291
cmNlSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYpOwogICAgIGJvb2wgYXBwbHlNZWRpYUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKIApAQCAtODMsMTQg
Kzg0LDE1IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAg
ICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
LSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2
b2lkIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cywgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNo
RGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiwgYm9vbCBzaG93RGVidWdCb3JkZXJzLCBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGdldEltYWdl
RGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29y
ZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYpOwog
ICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZTsKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyOworICAgIGJvb2wgbV9zaG93RGVidWdCb3JkZXJzIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgppbmRleCBhODhlMGZiNjI2MjQ5MTg5ZDhmNWIzYTM5YjliNjY0Mjg2
MjJjYWQzLi4yZTFmYTllMWY5NDUwMjhiMTU3YWQzMDYwZDdlZDk2M2ZlNTFlZDg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogCiBt
ZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgewogICAgIHZv
aWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJD
b3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hE
aXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3Qs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCi0gICAgdm9pZCBGbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpEaXNwbGF5TGlzdEZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaERp
c3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwg
Ym9vbCBzaG93RGVidWdCb3JkZXJzLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlz
dEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3Qs
IGJvb2wgc2hvd0RlYnVnQm9yZGVycywgV2ViS2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhf
dCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6
SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1h
Z2VEYXRhKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGY3N2YzN2VlNDcxN2YzNzEx
YmRlM2ZhZmRkODgwODJjNmFhYjA4OTAuLmE2YzBhOWI1YTMzNDdjMzY3MDI5Y2E1NjY0OWZkYWE0
ODM4MmQ1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC00MCw2ICs0MCw3IEBA
IGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUCiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VC
dWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+Owog
ICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNp
bmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7CisgICAgdXNp
bmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmUHRyPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCkBAIC0xNDgsNiArMTQ5
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFRyYWNlU2Nv
cGUgdHJhY2luZ1Njb3BlKEZsdXNoUmVtb3RlSW1hZ2VCdWZmZXJTdGFydCwgRmx1c2hSZW1vdGVJ
bWFnZUJ1ZmZlckVuZCwgMSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LT5kcmF3RGVidWdCb3JkZXJBbmRCYWRnZShjb250ZXh0KCksIHsgeyB9LCBtX2JhY2tlbmQtPmxv
Z2ljYWxTaXplKCkgfSwgIkdQVSJfcyk7CiAgICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5mbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0
KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS51
bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQobV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogICAgICAgICBtX2l0ZW1Db3VudEluQ3VycmVudERpc3BsYXlMaXN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBmOWE3ZGM1ZGUw
Mjg3NzE0ZTY2ZWNiMTcxNzQxYzJlODk1MzhlOTEyLi4yNWFkZDFhNGFjOTMwMjlmOWQ2Y2NkZmIy
ZTcyZmIwMjI4ZTcxYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwCkBAIC0zNSwxNyArMzUsMTkgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHko
KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocGFnZSkpOwogfQogCi1SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpCitSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiAgICAgLy8gUmVnaXN0ZXIgaXRzZWxm
IGFzIGEgTWVzc2FnZVJlY2VpdmVyIGluIHRoZSBHUFVQcm9jZXNzQ29ubmVjdGlvbi4KICAgICBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJlY2VpdmVyTWFwID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZXNzYWdlUmVjZWl2ZXJN
YXAoKTsKQEAgLTc1LDYgKzc3LDI0IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiBtX3Jl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCk7CiB9CiAKK2Jvb2wgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9yZGVycygpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZHJhd0RlYnVnQm9yZGVyQW5kQmFk
Z2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3Qs
IGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAoIXNob3dEZWJ1Z0JvcmRlcnMoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29uc3QgdW5zaWduZWQgZm9udFNpemUgPSAxMDsKKyAgICBj
b25zdGV4cHIgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcjo6cmVkOworICAgIGNvbnN0ZXhw
ciBhdXRvIHRleHRDb2xvciA9IENvbG9yOjp3aGl0ZTsKKworICAgIERlYnVnQmFkZ2UgYmFkZ2Ug
PSB7IERlYnVnQmFkZ2U6OkNvcm5lcjo6VG9wUmlnaHQsIGJhY2tncm91bmRDb2xvciwgdGV4dENv
bG9yLCBmb250U2l6ZSwgdGV4dCB9OworICAgIGRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlcyhjb250
ZXh0LCBib3JkZXJSZWN0LCBiYWNrZ3JvdW5kQ29sb3IsIHsgYmFkZ2UgfSk7Cit9CisKIGJvb2wg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9ySW1hZ2VCdWZmZXJCYWNrZW5kV2Fz
Q3JlYXRlZCgpCiB7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpOwpAQCAtMTE2LDEzICsxMzYsMTMgQEAgUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGkKIAogdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3QoY29uc3QgRGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGbHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0LCBy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGbHVzaERpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0LCBzaG93RGVidWdCb3JkZXJzKCksIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCiBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlz
cGxheUxpc3RBbmRDb21taXQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKIHsKICAgICBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBzZW50Rmx1c2hJZGVudGlm
aWVyID0gRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdEFuZENvbW1p
dChkaXNwbGF5TGlzdCwgc2VudEZsdXNoSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChkaXNw
bGF5TGlzdCwgc2hvd0RlYnVnQm9yZGVycygpLCBzZW50Rmx1c2hJZGVudGlmaWVyLCByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAg
ICByZXR1cm4gc2VudEZsdXNoSWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKaW5kZXggZTk5ZTNkNzFjYTkyNjI2YTY5NjJjYzk0ODc3YTdjMTFiODVl
ZGJhNy4uYmEzNGNkN2Q4MTRmNjdhMDI0OTBhNjBkMTIyN2Y5ZTAzNjc5Y2EzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC01MCwxMiArNTAsMTQgQEAgZW51bSBj
bGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNz
IFdlYlBhZ2U7CisKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eQogICAgIDogcHVi
bGljIElQQzo6TWVzc2FnZVNlbmRlcgogICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eT4gewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKFdlYlBhZ2UmKTsKIAogICAgIH5SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIApAQCAtNjgsNiArNzAsMTAgQEAgcHVibGljOgogICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAorICAgIC8vIFJlbmRlcmlu
ZyBvcGVyYXRpb25zLgorICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0OworICAgIHZv
aWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBTdHJpbmcmIHRleHQpOwor
CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VC
dWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNv
cmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSk7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpA
QCAtNzksNyArODUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YWl0Rm9yRmx1c2hEaXNwbGF5TGlz
dFdhc0NvbW1pdHRlZCgpOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSgpOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQYWdlJik7CiAKICAg
ICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGltYWdlQnVmZmVyQmFja2Vu
ZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtODcsNiArOTMsNyBAQCBwcml2YXRlOgogCiAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsg
KnRoaXMgfTsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsK
KyAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggYTdhNzY5NTBkNDVlNDNmMjQxZmZiZDJmMzFhYWMxNTcwODUx
OTExNi4uMWI3ZTU2ZTNkNjgxYzNiZTRjODZlZTNlYzkyMjQzNDYzMWFiMWE3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTkwNiw3ICs5MDYsNyBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hN
b25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0
ZgogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZSgpOworICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="429817"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413249</attachid>
            <date>2020-11-04 21:32:45 -0800</date>
            <delta_ts>2020-11-05 12:05:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201104213244.patch</filename>
            <type>text/plain</type>
            <size>36264</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZmYTQ1ZjFmZTJkYjMz
ZDBlZTEwZjRhN2YxOWUwNmNjMDFhZjUwMy4uYTdmNzk5YWQ1MzdjZmRjYTJiYWIxZWRkNmM2ODQx
ZjliYTJkZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTExLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
RHJhdyBhIGRlYnVnZ2luZyBib3JkZXIgYW5kIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0
J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBpbnRyb2R1
Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdyYXBoaWNh
bCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgVXNlIGRyYXdEZWJ1Z0Jh
ZGdlcygpIHRvIGRyYXcgdGhlIGJhZGdlcyBpbiBkcmF3UmVwYWludEluZGljYXRvcigpLiBUaGUK
KyAgICAgICAgbmV3IGZ1bmN0aW9uIGFsbG93cyBtb3JlIGZsZXhpYmlsaXR5IHNpbmNlIGl0IGNh
biBkcmF3IGZvdXIgYmFkZ2VzIG9uZSBpbgorICAgICAgICBlYWNoIGNvcm5lciBvciB0aGUgYm9y
ZGVyIHJlY3RhbmdsZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdEZWJ1
Z0JvcmRlckFuZEJhZGdlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdSZXBhaW50SW5kaWNhdG9yKToKKwogMjAyMC0xMS0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBIHByb2dyYW1tYXRpYyBzY3JvbGwgc2hvdWxk
IHN0b3AgYW55IHJ1YmJlcmJhbmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTk1ZDY1N2QwZWY3MzBkOWY4NjRh
ZTFlNGIzMTRjMDkzMTQ5ZmVhOS4uOTIyMGJhZmE2MDkyZDJhNTU2NDIyYWY0ZGQ1Mjk2YWFjNTE4
NTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMC0xMS0wNCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIERyYXcgYSBk
ZWJ1Z2dpbmcgYm9yZGVyIGFuZCBiYWRnZSBmb3IgdGhlIDJEIGNhbnZhcyBpZiBpdCdzIGRyYXdu
IHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0RlYnVn
QmFkZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJl
c291cmNlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZs
dXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgRHJhdyBhIGRlYnVnZ2luZyBi
YWRnZSBmb3IgdGhlIGNhbnZhcyB3aGVuIGl0IGlzIGRyYXduIGFzIGFuIGltYWdlIGludG8KKyAg
ICAgICAgYW5vdGhlciBjYW52YXMgaW4gR1BVUC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzcyB0
aGUgJ3Nob3dEZWJ1Z0JvcmRlcnMnIGZyb20gV2ViUG9yY2VzcyB0byBHUFVQLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpOgorICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkgY2FuIHJlYWQgdGhlIHBhZ2Ugc2V0dGluZ3MgdGhyb3VnaCB0aGUgV2ViUGFnZS4KKwor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnNob3dEZWJ1Z0Jv
cmRlcnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KToK
KyAgICAgICAgRHJhdyBhIGRlYnVnZ2luZyBiYWRnZSBmb3IgdGhlIGNhbnZhcyB3aGVuIGl0IGlz
IGRyYXduIGluIEdQVVAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IGNvbnN0KToKKyAgICAgICAg
V2ViUGFnZSB3aWxsIHBhc3MgaXRzZWxmIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3
aGVuIGl0IGlzIGNyZWF0ZWQuCisKIDIwMjAtMTEtMDQgIEx1bWluZyBZaW4gIDxsdW1pbmdfeWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10gRG9uJ3QgYWxsb3cgbWFuYWdlZCBwcmVm
ZXJlbmNlIHRvIGVuYWJsZSBsZWdhY3kgc3luYyBYSFJzIG9uIHdhdGNoT1MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDZmOGEwODc2NDk5MDU1YmE0OGFmZWI3YTM0YTFmNGU4ODY1ZmZhNTIuLjRlMGU5
YWMxNGU0MmNkMGRhYzFlMjBmYTkyYjE5ZTEwNWVjZGEzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTE2OCw2ICsxMTY4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTRlNzMxN2IzMzA5NjAyZGZhOWI1NTcw
ZDM1NmM4YmJiMzNiODQ0My4uN2Y0MTkwNzU2OTA4MmYyY2Q3NmNmZjE1MDkxNjJlNWE5NTJiMmM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE5MTQsNiArMTkxNCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMDYyZTkwN2I1YWM2MWZhNDYyMzY5
NDBjNDZhNTcyOGI0YjhiNDAzLi5iNDc5NzM1YzIwMGUxODk5NzI5MDA3ZDdiZmMyYTJmYTIzN2Vi
YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMTY1LDYgKzIxNjUsNyBAQAogCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMg
LyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjlEMDUzMDI1
MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjlEMDUyRTI1MzEzRTI2MDA0
MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAz
IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1l
UmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTcyQUJFNzE3MjU1M0FEMzkwMDEyQ0YzNyAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQUJFNzEzMjU1MzMz
NTMwMDEyQ0YzNyAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkJBQzNBRTIzRTFGMEIwMDA4RDc0MUMg
LyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MkJBQzNBNTIzRTE3MzI4MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNr
ZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTc5M0U4NDBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2Fn
ZUV2ZW50LmggKi87IH07CkBAIC05OTY4LDYgKzk5NjksOCBAQAogCQk3Mjk5QkM2NDIzRDY4NkE2
MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBo
YVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOTlC
QzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5RDA1MkUyNTMx
M0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzJBQkU3MTIyNTUzMzM1MzAwMTJDRjM3IC8qIEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MkFCRTcxMzI1NTMzMzUzMDAxMkNGMzcgLyogR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNDIzRTE3MzI3MDA4RDc0
MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQnVmZmVyQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQkFDM0E2MjNFMTczMjgwMDhENzQxQyAvKiBQ
bGF0Zm9ybUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MzIy
LDYgKzI2MzI1LDggQEAKIAkJCQkyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJ
bWFnZS5oICovLAogCQkJCUIyQTAxNTkyMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRl
eHQuY3BwICovLAogCQkJCUIyQTAxNTkzMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRl
eHQuaCAqLywKKwkJCQk3MkFCRTcxMjI1NTMzMzUzMDAxMkNGMzcgLyogR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmNwcCAqLywKKwkJCQk3MkFCRTcxMzI1NTMzMzUzMDAxMkNGMzcgLyogR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmggKi8sCiAJCQkJMzEzREU4NkQyM0E5Njk2NjAwOEZDNDdCIC8qIEdyYXBo
aWNzQ29udGV4dEdMLmNwcCAqLywKIAkJCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3Jh
cGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggKi8sCkBAIC0zMTg3Miw2ICszMTg3Nyw3IEBACiAJ
CQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0Nv
bnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzJBQkU3MTcyNTUzQUQzOTAwMTJDRjM3IC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5
Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QkIzNEExNzI1MzQ1Q0IyMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYzY5YmI1NjRlOTdmNTYxM2UwNTgyN2E3MDRlMGNhNjBhN2E4ZDAxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBkcmF3RGVidWdCYWRnZXNJbnRlcm5hbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgVmVjdG9yPERlYnVnQmFkZ2U+JiBiYWRnZXMp
Cit7CisgICAgYXV0byBjb3JuZXJQb2ludCA9IFtdKGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVj
dCwgRGVidWdCYWRnZTo6Q29ybmVyIGNvcm5lcikgeworICAgICAgICBhdXRvIHBvaW50ID0gYm9y
ZGVyUmVjdC5sb2NhdGlvbigpOworICAgICAgICBpZiAoY29ybmVyID09IERlYnVnQmFkZ2U6OkNv
cm5lcjo6VG9wUmlnaHQgfHwgY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tUmln
aHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKGJvcmRlclJlY3Qud2lkdGgoKSwgMCk7CisgICAg
ICAgIGlmIChjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0b21MZWZ0IHx8IGNvcm5l
ciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQu
bW92ZSgwLCBib3JkZXJSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHBvaW50OworICAg
IH07CisKKyAgICBhdXRvIGNvcm5lclJlY3QgPSBbJl0oY29uc3QgRmxvYXRSZWN0JiBib3JkZXJS
ZWN0LCBEZWJ1Z0JhZGdlOjpDb3JuZXIgY29ybmVyLCBjb25zdCBGbG9hdFNpemUgc2l6ZSkgewor
ICAgICAgICBhdXRvIHBvaW50ID0gY29ybmVyUG9pbnQoYm9yZGVyUmVjdCwgY29ybmVyKTsKKyAg
ICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OlRvcFJpZ2h0IHx8IGNvcm5l
ciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQu
bW92ZSgtc2l6ZS53aWR0aCgpLCAwKTsKKyAgICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1Z0JhZGdl
OjpDb3JuZXI6OkJvdHRvbUxlZnQgfHwgY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90
dG9tUmlnaHQpCisgICAgICAgICAgICBwb2ludC5tb3ZlKDAsIC1zaXplLmhlaWdodCgpKTsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdChwb2ludCwgc2l6ZSk7CisgICAgfTsKKworICAgIGF1dG8g
ZHJhd0RlYnVnQmFkZ2UgPSBbJl0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IERlYnVnQmFkZ2UmIGJhZGdlKSB7CisgICAgICAgIEZv
bnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAgICAgICBmb250RGVzY3Jp
cHRpb24uc2V0T25lRmFtaWx5KCJIZWx2ZXRpY2EiKTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9u
LnNldFNwZWNpZmllZFNpemUoYmFkZ2UuZm9udFNpemUpOworICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0Q29tcHV0ZWRTaXplKGJhZGdlLmZvbnRTaXplKTsKKworICAgICAgICBGb250Q2FzY2Fk
ZSBjYXNjYWRlKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CisgICAgICAgIGNhc2NhZGUudXBk
YXRlKG51bGxwdHIpOworCisgICAgICAgIGNvbnN0IGZsb2F0IGhvcml6b250YWxNYXJnaW4gPSBi
YWRnZS5mb250U2l6ZSAvIDQ7CisgICAgICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0g
aG9yaXpvbnRhbE1hcmdpbiAvIDI7CisKKyAgICAgICAgVGV4dFJ1biB0ZXh0UnVuKGJhZGdlLnRl
eHQpOworICAgICAgICBmbG9hdCB0ZXh0V2lkdGggPSBjYXNjYWRlLndpZHRoKHRleHRSdW4pOwor
CisgICAgICAgIEZsb2F0U2l6ZSBiYWRnZVNpemUoaG9yaXpvbnRhbE1hcmdpbiAqIDIgKyB0ZXh0
V2lkdGgsIHZlcnRpY2FsTWFyZ2luICogMiArIGJhZGdlLmZvbnRTaXplKTsKKworICAgICAgICBh
dXRvIGJhZGdlUmVjdCA9IGNvcm5lclJlY3QoYm9yZGVyUmVjdCwgIGJhZGdlLmNvcm5lciwgYmFk
Z2VTaXplKTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihiYWRnZS5jb2xvcik7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFJlY3QoYmFkZ2VSZWN0KTsKKworICAgICAgICBjb250ZXh0LnNl
dEZpbGxDb2xvcihiYWRnZS50ZXh0Q29sb3IpOworICAgICAgICBjb250ZXh0LmRyYXdUZXh0KGNh
c2NhZGUsIHRleHRSdW4sIEZsb2F0UG9pbnQoYmFkZ2VSZWN0LngoKSArIGhvcml6b250YWxNYXJn
aW4sIGJhZGdlUmVjdC55KCkgKyBiYWRnZS5mb250U2l6ZSkpOworICAgIH07CisgICAgCisgICAg
Zm9yIChhdXRvIGJhZGdlIDogYmFkZ2VzKQorICAgICAgICBkcmF3RGVidWdCYWRnZShjb250ZXh0
LCBib3JkZXJSZWN0LCBiYWRnZSk7Cit9CisKK3ZvaWQgZHJhd0RlYnVnQmFkZ2VzKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBWZWN0
b3I8RGVidWdCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgRmxvYXRSZWN0IGJvcmRlclJlY3RBZGp1c3RlZCA9
IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUoLTEpOworICAgIGRy
YXdEZWJ1Z0JhZGdlc0ludGVybmFsKGNvbnRleHQsIGJvcmRlclJlY3RBZGp1c3RlZCwgYmFkZ2Vz
KTsKK30KKwordm9pZCBkcmF3RGVidWdCb3JkZXJBbmRCYWRnZXMoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwg
Y29uc3QgVmVjdG9yPERlYnVnQmFkZ2U+JiBiYWRnZXMpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRSZWN0IGJvcmRlclJl
Y3RBZGp1c3RlZCA9IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUo
LTEpOworCisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
ZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgIGNvbnRleHQuc3Ryb2tlUmVjdChib3JkZXJS
ZWN0QWRqdXN0ZWQsIDAuNSk7CisKKyAgICBkcmF3RGVidWdCYWRnZXNJbnRlcm5hbChjb250ZXh0
LCBib3JkZXJSZWN0QWRqdXN0ZWQsIGJhZGdlcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEV4dHJhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ3YmE3YzVkODA5NGNjOTM0MDhiYzgxMzJk
Njk4YjU4MDJhZjliYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CitjbGFzcyBGbG9hdFJlY3Q7CisKK3N0cnVjdCBEZWJ1Z0JhZGdlIHsKKyAg
ICBlbnVtIGNsYXNzIENvcm5lciB7CisgICAgICAgIFRvcExlZnQsCisgICAgICAgIFRvcFJpZ2h0
LAorICAgICAgICBCb3R0b21MZWZ0LAorICAgICAgICBCb3R0b21SaWdodCwKKyAgICB9OworICAg
IENvcm5lciBjb3JuZXI7CisgICAgQ29sb3IgY29sb3I7CisgICAgQ29sb3IgdGV4dENvbG9yOwor
ICAgIHVuc2lnbmVkIGZvbnRTaXplOworICAgIFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3RGVidWdCYWRnZXMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3JkZXJSZWN0LCBjb25zdCBWZWN0b3I8RGVidWdCYWRnZT4mKTsKK1dFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2VzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImLCBjb25zdCBWZWN0b3I8RGVidWdC
YWRnZT4mKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5jcHAKaW5kZXggNmQ0
MWQ5ODFhMmIwMWM3MThjZDA5NWU0NmJhYWQzMTc0YmVkOGVlOC4uYTdiOWZkYjhiNTM5ZDllYjE2
MmFmMGQ1OTVmNmZlYTMzMjc1ZTc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgVVNFKENBKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRFeHRyYXMuaCIKICNpbmNsdWRlICJMYXllclBvb2wuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9D
b3JlRm91bmRhdGlvbi5oPgpAQCAtODEsNjMgKzgyLDQyIEBAIGJvb2wgUGxhdGZvcm1DQUxheWVy
OjpjYW5IYXZlQmFja2luZ1N0b3JlKCkgY29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdSZXBhaW50SW5kaWNhdG9yKEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBQbGF0
Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciwgaW50IHJlcGFpbnRDb3VudCwgQ29sb3IgY3Vz
dG9tQmFja2dyb3VuZENvbG9yKQogewotICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0g
Mi41OwotICAgIGNvbnN0IGZsb2F0IGhvcml6b250YWxNYXJnaW4gPSA1OwotICAgIGNvbnN0IHVu
c2lnbmVkIGZvbnRTaXplID0gMjI7CisgICAgY29uc3QgdW5zaWduZWQgbGFyZ2VGb250U2l6ZSA9
IDIyOworICAgIGNvbnN0IHVuc2lnbmVkIHNtYWxsRm9udFNpemUgPSAxMDsKICAgICBjb25zdGV4
cHIgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBTUkdCQTx1aW50OF90PiB7IDEyOCwgNjQsIDI1NSB9
OwotICAgIGNvbnN0ZXhwciBhdXRvIGFjY2VsZXJhdGVkQ29udGV4dExhYmVsQ29sb3IgPSBDb2xv
cjo6cmVkOwotICAgIGNvbnN0ZXhwciBhdXRvIHVuYWNjZWxlcmF0ZWRDb250ZXh0TGFiZWxDb2xv
ciA9IENvbG9yOjp3aGl0ZTsKLSAgICBjb25zdGV4cHIgYXV0byBsaW5lYXJHbHlwaE1hc2tPdXRs
aW5lQ29sb3IgPSBDb2xvcjo6YmxhY2suY29sb3JXaXRoQWxwaGFCeXRlKDE5Mik7Ci0gICAgY29u
c3RleHByIGF1dG8gZGlzcGxheUxpc3RCb3JkZXJDb2xvciA9IENvbG9yOjpibGFjay5jb2xvcldp
dGhBbHBoYUJ5dGUoMTY2KTsKLQotICAgIFRleHRSdW4gdGV4dFJ1bihTdHJpbmc6Om51bWJlcihy
ZXBhaW50Q291bnQpKTsKLQotICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0
aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkhlbHZldGljYSIpOwotICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGZvbnRTaXplKTsKLSAgICBmb250RGVz
Y3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLQotICAgIEZvbnRDYXNjYWRlIGNh
c2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKLSAgICBjYXNjYWRlLnVwZGF0ZShudWxs
cHRyKTsKLQotICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUud2lkdGgodGV4dFJ1bik7Ci0K
LSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3JhcGhpY3NDb250ZXh0
KTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKDAuNWYpOwot
Ci0gICAgZ3JhcGhpY3NDb250ZXh0LnNldEZpbGxDb2xvcihjdXN0b21CYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpID8gY3VzdG9tQmFja2dyb3VuZENvbG9yIDogYmFja2dyb3VuZENvbG9yKTsKLSAg
ICBGbG9hdFJlY3QgaW5kaWNhdG9yQm94KDEsIDEsIGhvcml6b250YWxNYXJnaW4gKiAyICsgdGV4
dFdpZHRoLCB2ZXJ0aWNhbE1hcmdpbiAqIDIgKyBmb250U2l6ZSk7Ci0gICAgaWYgKHBsYXRmb3Jt
Q0FMYXllci0+aXNPcGFxdWUoKSkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmZpbGxSZWN0KGlu
ZGljYXRvckJveCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFBhdGggYm91bmRzUGF0aDsKLSAgICAg
ICAgYm91bmRzUGF0aC5tb3ZlVG8oaW5kaWNhdG9yQm94Lm1heFhNaW5ZQ29ybmVyKCkpOwotICAg
ICAgICBib3VuZHNQYXRoLmFkZExpbmVUbyhpbmRpY2F0b3JCb3gubWF4WE1heFlDb3JuZXIoKSk7
Ci0gICAgICAgIGJvdW5kc1BhdGguYWRkTGluZVRvKGluZGljYXRvckJveC5taW5YTWF4WUNvcm5l
cigpKTsKLQotICAgICAgICBjb25zdCBmbG9hdCBjb3JuZXJDaHVuayA9IDg7Ci0gICAgICAgIGJv
dW5kc1BhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoaW5kaWNhdG9yQm94LngoKSwgaW5kaWNhdG9y
Qm94LnkoKSArIGNvcm5lckNodW5rKSk7Ci0gICAgICAgIGJvdW5kc1BhdGguYWRkTGluZVRvKEZs
b2F0UG9pbnQoaW5kaWNhdG9yQm94LngoKSArIGNvcm5lckNodW5rLCBpbmRpY2F0b3JCb3gueSgp
KSk7Ci0gICAgICAgIGJvdW5kc1BhdGguY2xvc2VTdWJwYXRoKCk7Ci0KLSAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LmZpbGxQYXRoKGJvdW5kc1BhdGgpOwotICAgIH0KKyAgICBjb25zdGV4cHIgYXV0
byBhY2NlbGVyYXRlZFRleHRDb2xvciA9IENvbG9yOjpyZWQ7CisgICAgY29uc3RleHByIGF1dG8g
dW5hY2NlbGVyYXRlZFRleHRDb2xvciA9IENvbG9yOjp3aGl0ZTsKKyAgICAKKyAgICBWZWN0b3I8
RGVidWdCYWRnZT4gYmFkZ2VzID0geyB7CisgICAgICAgIERlYnVnQmFkZ2U6OkNvcm5lcjo6VG9w
TGVmdCwKKyAgICAgICAgY3VzdG9tQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSA/IGN1c3RvbUJh
Y2tncm91bmRDb2xvciA6IGJhY2tncm91bmRDb2xvciwKKyAgICAgICAgcGxhdGZvcm1DQUxheWVy
LT5hY2NlbGVyYXRlc0RyYXdpbmcoKSA/IGFjY2VsZXJhdGVkVGV4dENvbG9yIDogdW5hY2NlbGVy
YXRlZFRleHRDb2xvciwKKyAgICAgICAgbGFyZ2VGb250U2l6ZSwKKyAgICAgICAgU3RyaW5nOjpu
dW1iZXIocmVwYWludENvdW50KQorICAgIH0gfTsKIAogICAgIGlmIChwbGF0Zm9ybUNBTGF5ZXIt
Pm93bmVyKCktPmlzVXNpbmdEaXNwbGF5TGlzdERyYXdpbmcocGxhdGZvcm1DQUxheWVyKSkgewot
ICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlQ29sb3IoZGlzcGxheUxpc3RCb3JkZXJD
b2xvcik7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zdHJva2VSZWN0KGluZGljYXRvckJveCwg
Mik7CisgICAgICAgIGJhZGdlcy5hcHBlbmQoeworICAgICAgICAgICAgRGVidWdCYWRnZTo6Q29y
bmVyOjpCb3R0b21MZWZ0LAorICAgICAgICAgICAgQ29sb3I6OmJsdWUsCisgICAgICAgICAgICBw
bGF0Zm9ybUNBTGF5ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpID8gYWNjZWxlcmF0ZWRUZXh0Q29s
b3IgOiB1bmFjY2VsZXJhdGVkVGV4dENvbG9yLAorICAgICAgICAgICAgbGFyZ2VGb250U2l6ZSwK
KyAgICAgICAgICAgICJETCJfcworICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoIXBsYXRm
b3JtQ0FMYXllci0+aXNPcGFxdWUoKSAmJiBwbGF0Zm9ybUNBTGF5ZXItPnN1cHBvcnRzU3VicGl4
ZWxBbnRpYWxpYXNlZFRleHQoKSAmJiBwbGF0Zm9ybUNBTGF5ZXItPmFjY2VsZXJhdGVzRHJhd2lu
ZygpKSB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VDb2xvcihsaW5lYXJHbHlw
aE1hc2tPdXRsaW5lQ29sb3IpOwotICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlVGhp
Y2tuZXNzKDQuNSk7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUo
VGV4dERyYXdpbmdNb2RlRmxhZ3MgeyBUZXh0RHJhd2luZ01vZGU6OkZpbGwsIFRleHREcmF3aW5n
TW9kZTo6U3Ryb2tlIH0pOworICAgIGlmICghcGxhdGZvcm1DQUxheWVyLT5pc09wYXF1ZSgpICYm
IHBsYXRmb3JtQ0FMYXllci0+c3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkVGV4dCgpKSB7Cisg
ICAgICAgIGJhZGdlcy5hcHBlbmQoeworICAgICAgICAgICAgRGVidWdCYWRnZTo6Q29ybmVyOjpC
b3R0b21SaWdodCwKKyAgICAgICAgICAgIENvbG9yOjpncmVlbiwKKyAgICAgICAgICAgIHBsYXRm
b3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNEcmF3aW5nKCkgPyBhY2NlbGVyYXRlZFRleHRDb2xvciA6
IHVuYWNjZWxlcmF0ZWRUZXh0Q29sb3IsCisgICAgICAgICAgICBzbWFsbEZvbnRTaXplLAorICAg
ICAgICAgICAgInN1Yi1waXhlbCJfcworICAgICAgICB9KTsKICAgICB9CiAKLSAgICBncmFwaGlj
c0NvbnRleHQuc2V0RmlsbENvbG9yKHBsYXRmb3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNEcmF3aW5n
KCkgPyBhY2NlbGVyYXRlZENvbnRleHRMYWJlbENvbG9yIDogdW5hY2NlbGVyYXRlZENvbnRleHRM
YWJlbENvbG9yKTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5kcmF3VGV4dChjYXNjYWRlLCB0ZXh0
UnVuLCBGbG9hdFBvaW50KGluZGljYXRvckJveC54KCkgKyBob3Jpem9udGFsTWFyZ2luLCBpbmRp
Y2F0b3JCb3gueSgpICsgZm9udFNpemUpKTsKKyAgICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFu
c3BhcmVuY3lMYXllcigwLjVmKTsKKyAgICBkcmF3RGVidWdCYWRnZXMoZ3JhcGhpY3NDb250ZXh0
LCBwbGF0Zm9ybUNBTGF5ZXItPmJvdW5kcygpLCBiYWRnZXMpOwogICAgIGdyYXBoaWNzQ29udGV4
dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggZGYwZWQ0N2U1YmVmZDY3OTg0NmE0YzdmNTA2MjAxMzY2NDYwYjY4MC4uMWNhN2VlMmZmZmQ5
ZGExNTI4ODQwN2UyNGM5NWUyZWFiZTAwOWE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC03Miw2ICs3
NCwxOSBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkcmF3RGVi
dWdCYWRnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVy
UmVjdCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlmICghbV9zaG93RGVidWdCb3JkZXJz
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY29uc3QgdW5zaWduZWQgZm9udFNpemUgPSAx
MDsKKyAgICBjb25zdGV4cHIgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcjo6Ymx1ZTsKKyAg
ICBjb25zdGV4cHIgYXV0byB0ZXh0Q29sb3IgPSBDb2xvcjo6d2hpdGU7CisKKyAgICBEZWJ1Z0Jh
ZGdlIGJhZGdlID0geyBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbVJpZ2h0LCBiYWNrZ3JvdW5k
Q29sb3IsIHRleHRDb2xvciwgZm9udFNpemUsIHRleHQgfTsKKyAgICBkcmF3RGVidWdCYWRnZXMo
Y29udGV4dCwgYm9yZGVyUmVjdCwgeyBiYWRnZSB9KTsKK30KKwogYm9vbCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjphcHBseVJlc291cmNlSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRl
bSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChpdGVtLnR5cGUoKSA9PSBE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcikgewpAQCAtODEsNiArOTYsNyBA
QCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5UmVzb3VyY2VJdGVtKGNvbnN0IERp
c3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBHcgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIGltYWdlQnVmZmVyLT5kcmF3KGNvbnRleHQsIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVj
dCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0ZW0ub3B0aW9ucygpKTsKKyAgICAgICAgZHJh
d0RlYnVnQmFkZ2UoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0KCksICJDQU5WQVMi
X3MpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE0MCwxNCArMTU2LDE2IEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChjb25zdCBEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QsIGJvb2wgc2hvd0RlYnVnQm9yZGVycywgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKKyAgICBTZXRGb3JTY29wZTxi
b29sPiBjaGFuZ2UobV9zaG93RGVidWdCb3JkZXJzLCBzaG93RGVidWdCb3JkZXJzKTsKICAgICBp
ZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1
ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICBpbWFnZUJ1ZmZlci0+
Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3QmIGRpc3BsYXlMaXN0LCBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElk
ZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RB
bmRDb21taXQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgYm9v
bCBzaG93RGVidWdCb3JkZXJzLCBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50
aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCiB7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fc2hvd0RlYnVnQm9yZGVy
cywgc2hvd0RlYnVnQm9yZGVycyk7CiAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90
ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSkgewogICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlz
dCk7CiAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCmluZGV4IDI4NWUyZjc0YjRkNGZkNmU2YThjNWU5MTAyNWExYzkyNmY1ZmZiMTUuLjk0Y2Mw
ZjQ0YmM0NTdiMzE5MjliODkyNDQ1YzgwM2E1NzkzYzg4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0OwogCiAgICAgLy8gUmVuZGVyaW5n
IG9wZXJhdGlvbnMuCisgICAgdm9pZCBkcmF3RGVidWdCYWRnZShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CiAgICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOwogICAgIGJvb2wgYXBw
bHlNZWRpYUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmKTsKIApAQCAtODMsMTQgKzg0LDE1IEBAIHByaXZhdGU6CiAKICAgICAv
LyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RBbmRDb21t
aXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgRGlzcGxheUxpc3RG
bHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYsIGJvb2wgc2hvd0RlYnVnQm9yZGVycywgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3Qg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgYm9vbCBzaG93RGVidWdCb3JkZXJz
LCBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRp
cGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBD
OjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBXZWFrUHRyPEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBSZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOworICAg
IGJvb2wgbV9zaG93RGVidWdCb3JkZXJzIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBhODhl
MGZiNjI2MjQ5MTg5ZDhmNWIzYTM5YjliNjY0Mjg2MjJjYWQzLi4yZTFmYTllMWY5NDUwMjhiMTU3
YWQzMDYwZDdlZDk2M2ZlNTFlZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kIE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNw
YWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBGbHVzaERp
c3BsYXlMaXN0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNw
bGF5TGlzdCwgV2ViS2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgYm9vbCBzaG93RGVidWdCb3JkZXJzLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIGJvb2wgc2hvd0RlYnVnQm9yZGVycywgV2Vi
S2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAt
PiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIHZv
aWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCmluZGV4IGY3N2YzN2VlNDcxN2YzNzExYmRlM2ZhZmRkODgwODJjNmFhYjA4OTAuLmE2
YzBhOWI1YTMzNDdjMzY3MDI5Y2E1NjY0OWZkYWE0ODM4MmQ1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyUHJv
eHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUCiAg
ICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdElt
YWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXI6Om1fZHJhd2luZ0NvbnRleHQ7CisgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXI6OmNvbnRleHQ7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFJlbW90ZUltYWdlQnVm
ZmVyUHJveHk+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkpCkBAIC0xNDgsNiArMTQ5LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIFRyYWNlU2NvcGUgdHJhY2luZ1Njb3BlKEZsdXNoUmVtb3Rl
SW1hZ2VCdWZmZXJTdGFydCwgRmx1c2hSZW1vdGVJbWFnZUJ1ZmZlckVuZCwgMSk7CisgICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5kcmF3RGVidWdCb3JkZXJBbmRCYWRnZShj
b250ZXh0KCksIHsgeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCkgfSwgIkdQVSJfcyk7CiAg
ICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LT5mbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS51bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1v
dGVDbGllbnQobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgICAgICBtX2l0ZW1D
b3VudEluQ3VycmVudERpc3BsYXlMaXN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcAppbmRleCBmOWE3ZGM1ZGUwMjg3NzE0ZTY2ZWNiMTcxNzQxYzJlODk1Mzhl
OTEyLi43YWZkODIxMTRmNTcxYTJkMmY3MGQ3Mzk2MjlmMGNkZWEzNjI5MmZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0zNSwxNyArMzUsMjAgQEAKICNp
bmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5PihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHBhZ2UpKTsKIH0KIAotUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKQor
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHko
V2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQogewogICAgIC8vIFJlZ2lzdGVyIGl0
c2VsZiBhcyBhIE1lc3NhZ2VSZWNlaXZlciBpbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uCiAg
ICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZlck1hcCA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkubWVzc2FnZVJlY2Vp
dmVyTWFwKCk7CkBAIC03NSw2ICs3OCwyNCBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4g
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50b1VJbnQ2NCgpOwogfQogCitib29sIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c2hvd0RlYnVnQm9yZGVycygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNob3dEZWJ1Z0JvcmRlcnMoKTsK
K30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRyYXdEZWJ1Z0JvcmRlckFu
ZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJS
ZWN0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgaWYgKCFzaG93RGVidWdCb3JkZXJzKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHVuc2lnbmVkIGZvbnRTaXplID0gMTA7Cisg
ICAgY29uc3RleHByIGF1dG8gYmFja2dyb3VuZENvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBjb25z
dGV4cHIgYXV0byB0ZXh0Q29sb3IgPSBDb2xvcjo6d2hpdGU7CisKKyAgICBEZWJ1Z0JhZGdlIGJh
ZGdlID0geyBEZWJ1Z0JhZGdlOjpDb3JuZXI6OlRvcFJpZ2h0LCBiYWNrZ3JvdW5kQ29sb3IsIHRl
eHRDb2xvciwgZm9udFNpemUsIHRleHQgfTsKKyAgICBkcmF3RGVidWdCb3JkZXJBbmRCYWRnZXMo
Y29udGV4dCwgYm9yZGVyUmVjdCwgYmFja2dyb3VuZENvbG9yLCB7IGJhZGdlIH0pOworfQorCiBi
b29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckltYWdlQnVmZmVyQmFja2Vu
ZFdhc0NyZWF0ZWQoKQogewogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKTsKQEAgLTExNiwxMyArMTM3LDEzIEBAIFJlZlB0cjxJbWFnZURhdGE+IFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpCiAK
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0
IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlz
dCwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hE
aXNwbGF5TGlzdChkaXNwbGF5TGlzdCwgc2hvd0RlYnVnQm9yZGVycygpLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAogRGlz
cGxheUxpc3RGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aERpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCiB7CiAgICAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgc2VudEZsdXNoSWRl
bnRpZmllciA9IERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkZsdXNoRGlzcGxheUxpc3RBbmRD
b21taXQoZGlzcGxheUxpc3QsIHNlbnRGbHVzaElkZW50aWZpZXIsIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQo
ZGlzcGxheUxpc3QsIHNob3dEZWJ1Z0JvcmRlcnMoKSwgc2VudEZsdXNoSWRlbnRpZmllciwgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
CiAgICAgcmV0dXJuIHNlbnRGbHVzaElkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGU5OWUzZDcxY2E5MjYyNmE2OTYyY2M5NDg3N2E3YzEx
Yjg1ZWRiYTcuLmJhMzRjZDdkODE0ZjY3YTAyNDkwYTYwZDEyMjdmOWUwMzY3OWNhMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtNTAsMTIgKzUwLDE0IEBAIGVu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBXZWJQYWdlOworCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkKICAgICA6
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IGNyZWF0ZShXZWJQYWdlJik7CiAKICAgICB+UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CiAKQEAgLTY4LDYgKzcwLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKKyAgICAvLyBSZW5k
ZXJpbmcgb3BlcmF0aW9ucy4KKyAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdDsKKyAg
ICB2b2lkIGRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgU3RyaW5nJiB0ZXh0
KTsKKwogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCiAgICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShX
ZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKQEAgLTc5LDcgKzg1LDcgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZvckZsdXNoRGlzcGxh
eUxpc3RXYXNDb21taXR0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKTsKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoV2ViUGFnZSYpOwog
CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCBpbWFnZUJ1ZmZlckJh
Y2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTg3LDYgKzkzLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eSB7ICp0aGlzIH07CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
IH07CisgICAgV2ViUGFnZSYgbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGE3YTc2OTUwZDQ1ZTQzZjI0MWZmYmQyZjMxYWFjMTU3
MDg1MTkxMTYuLjFiN2U1NmUzZDY4MWMzYmU0Yzg2ZWUzZWM5MjI0MzQ2MzFhYjFhNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05MDYsNyArOTA2LDcgQEAgUmVmUHRyPERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
UGxhdGYKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgV2ViQ2hyb21lQ2xpZW50OjplbnN1
cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKSBjb25zdAogewogICAgIGlmICghbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5ID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGUoKTsKKyAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNyZWF0ZShtX3BhZ2UpOwogICAgIHJldHVybiAqbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413338</attachid>
            <date>2020-11-05 12:05:53 -0800</date>
            <delta_ts>2020-11-12 17:45:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201105120553.patch</filename>
            <type>text/plain</type>
            <size>36269</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZmYTQ1ZjFmZTJkYjMz
ZDBlZTEwZjRhN2YxOWUwNmNjMDFhZjUwMy4uYTdmNzk5YWQ1MzdjZmRjYTJiYWIxZWRkNmM2ODQx
ZjliYTJkZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTExLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
RHJhdyBhIGRlYnVnZ2luZyBib3JkZXIgYW5kIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0
J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcCBpcyBpbnRyb2R1
Y2VkIHRvIGJlIHRoZSBwbGFjZSB3aGVyZSBvdGhlciBjb21wbGV4CisgICAgICAgIGdyYXBoaWNh
bCBjb21tYW5kcyBjYW4gYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgVXNlIGRyYXdEZWJ1Z0Jh
ZGdlcygpIHRvIGRyYXcgdGhlIGJhZGdlcyBpbiBkcmF3UmVwYWludEluZGljYXRvcigpLiBUaGUK
KyAgICAgICAgbmV3IGZ1bmN0aW9uIGFsbG93cyBtb3JlIGZsZXhpYmlsaXR5IHNpbmNlIGl0IGNh
biBkcmF3IGZvdXIgYmFkZ2VzIG9uZSBpbgorICAgICAgICBlYWNoIGNvcm5lciBvciB0aGUgYm9y
ZGVyIHJlY3RhbmdsZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6ZHJhd0RlYnVnQmFkZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdEZWJ1
Z0JvcmRlckFuZEJhZGdlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0RXh0cmFzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdSZXBhaW50SW5kaWNhdG9yKToKKwogMjAyMC0xMS0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBIHByb2dyYW1tYXRpYyBzY3JvbGwgc2hvdWxk
IHN0b3AgYW55IHJ1YmJlcmJhbmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTk1ZDY1N2QwZWY3MzBkOWY4NjRh
ZTFlNGIzMTRjMDkzMTQ5ZmVhOS4uZmE4M2VlOTdkNDRhMzkyNzMwZDljNzNlNTlmZGJjMzg3MGM1
YjlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMC0xMS0wNCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIERyYXcgYSBk
ZWJ1Z2dpbmcgYm9yZGVyIGFuZCBiYWRnZSBmb3IgdGhlIDJEIGNhbnZhcyBpZiBpdCdzIGRyYXdu
IHRocm91Z2ggR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZHJhd0RlYnVn
QmFkZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJl
c291cmNlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZs
dXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgRHJhdyBhIGRlYnVnZ2luZyBi
YWRnZSBmb3IgdGhlIGNhbnZhcyB3aGVuIGl0IGlzIGRyYXduIGFzIGFuIGltYWdlIGludG8KKyAg
ICAgICAgYW5vdGhlciBjYW52YXMgaW4gR1BVUC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzcyB0
aGUgZmxhZyAnc2hvd0RlYnVnQm9yZGVycycgZnJvbSBXZWJQcm9jZXNzIHRvIEdQVVAuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSk6CisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBjYW4gcmVhZCB0aGUgcGFnZSBzZXR0aW5ncyB0aHJvdWdoIHRoZSBXZWJQYWdl
LgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c2hvd0Rl
YnVnQm9yZGVycyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6ZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3RBbmRDb21t
aXQpOgorICAgICAgICBEcmF3IGEgZGVidWdnaW5nIGJhZGdlIGZvciB0aGUgY2FudmFzIHdoZW4g
aXQgaXMgZHJhd24gaW4gR1BVUC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgY29uc3QpOgorICAg
ICAgICBXZWJQYWdlIHdpbGwgcGFzcyBpdHNlbGYgdG8gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5IHdoZW4gaXQgaXMgY3JlYXRlZC4KKwogMjAyMC0xMS0wNCAgTHVtaW5nIFlpbiAgPGx1bWlu
Z195aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBEb24ndCBhbGxvdyBtYW5hZ2Vk
IHByZWZlcmVuY2UgdG8gZW5hYmxlIGxlZ2FjeSBzeW5jIFhIUnMgb24gd2F0Y2hPUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNmY4YTA4NzY0OTkwNTViYTQ4YWZlYjdhMzRhMWY0ZTg4NjVmZmE1Mi4u
NGUwZTlhYzE0ZTQyY2QwZGFjMWUyMGZhOTJiMTllMTA1ZWNkYTM5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0xMTY4LDYgKzExNjgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBhNGU3MzE3YjMzMDk2MDJkZmE5
YjU1NzBkMzU2YzhiYmIzM2I4NDQzLi43ZjQxOTA3NTY5MDgyZjJjZDc2Y2ZmMTUwOTE2MmU1YTk1
MmIyYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTkxNCw2ICsxOTE0LDcgQEAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRF
eHRyYXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIwNjJlOTA3YjVhYzYxZmE0
NjIzNjk0MGM0NmE1NzI4YjRiOGI0MDMuLmI0Nzk3MzVjMjAwZTE4OTk3MjkwMDdkN2JmYzJhMmZh
MjM3ZWJhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIxNjUsNiArMjE2NSw3IEBACiAJCTcyOTlCQzY4MjNENkE1M0UwMEND
Njg4MyAvKiBSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOUQw
NTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNF
MjYwMDQyMjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkE3M0JFRjI0NUEzRjkwMDAx
QzlEMDMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjJBODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9u
RnJhbWVSYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNzJBQkU3MTcyNTUzQUQzOTAwMTJDRjM3IC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJBQkU3MTMy
NTUzMzM1MzAwMTJDRjM3IC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhE
NzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZl
ckJhY2tlbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1Nzkz
RTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBN
ZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTk5NjgsNiArOTk2OSw4IEBACiAJCTcyOTlCQzY0MjNE
Njg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjlEMDUy
RTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3MkFCRTcxMjI1NTMzMzUzMDAxMkNGMzcgLyogR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyQUJFNzEzMjU1MzMzNTMwMDEyQ0YzNyAv
KiBHcmFwaGljc0NvbnRleHRFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
RXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQkFDM0E0MjNFMTczMjcw
MDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2Vu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFD
IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjYzMjIsNiArMjYzMjUsOCBAQAogCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFk
aWVudEltYWdlLmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5jcHAgKi8sCiAJCQkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
Q29udGV4dC5oICovLAorCQkJCTcyQUJFNzEyMjU1MzMzNTMwMDEyQ0YzNyAvKiBHcmFwaGljc0Nv
bnRleHRFeHRyYXMuY3BwICovLAorCQkJCTcyQUJFNzEzMjU1MzMzNTMwMDEyQ0YzNyAvKiBHcmFw
aGljc0NvbnRleHRFeHRyYXMuaCAqLywKIAkJCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyog
R3JhcGhpY3NDb250ZXh0R0wuY3BwICovLAogCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAv
KiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCAqLywKQEAgLTMxODcyLDYgKzMxODc3LDcg
QEAKIAkJCQkyRDQ4MUYwNDE0NkI1QzZCMDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJBMDE1QTkwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBo
aWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MkFCRTcxNzI1NTNBRDM5MDAxMkNG
MzcgLyogR3JhcGhpY3NDb250ZXh0RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTNERTg3
MDIzQTk2OTczMDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdCQjM0QTE3MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyog
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEV4dHJhcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRy
YXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjNjliYjU2NGU5N2Y1NjEzZTA1ODI3YTcwNGUwY2E2MGE3YThk
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHRFeHRyYXMuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgiCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJUZXh0UnVuLmgiCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGlu
ZSB2b2lkIGRyYXdEZWJ1Z0JhZGdlc0ludGVybmFsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBWZWN0b3I8RGVidWdCYWRnZT4mIGJh
ZGdlcykKK3sKKyAgICBhdXRvIGNvcm5lclBvaW50ID0gW10oY29uc3QgRmxvYXRSZWN0JiBib3Jk
ZXJSZWN0LCBEZWJ1Z0JhZGdlOjpDb3JuZXIgY29ybmVyKSB7CisgICAgICAgIGF1dG8gcG9pbnQg
PSBib3JkZXJSZWN0LmxvY2F0aW9uKCk7CisgICAgICAgIGlmIChjb3JuZXIgPT0gRGVidWdCYWRn
ZTo6Q29ybmVyOjpUb3BSaWdodCB8fCBjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0
b21SaWdodCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoYm9yZGVyUmVjdC53aWR0aCgpLCAwKTsK
KyAgICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6OkJvdHRvbUxlZnQgfHwg
Y29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBw
b2ludC5tb3ZlKDAsIGJvcmRlclJlY3QuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gcG9pbnQ7
CisgICAgfTsKKworICAgIGF1dG8gY29ybmVyUmVjdCA9IFsmXShjb25zdCBGbG9hdFJlY3QmIGJv
cmRlclJlY3QsIERlYnVnQmFkZ2U6OkNvcm5lciBjb3JuZXIsIGNvbnN0IEZsb2F0U2l6ZSBzaXpl
KSB7CisgICAgICAgIGF1dG8gcG9pbnQgPSBjb3JuZXJQb2ludChib3JkZXJSZWN0LCBjb3JuZXIp
OworICAgICAgICBpZiAoY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6VG9wUmlnaHQgfHwg
Y29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tUmlnaHQpCisgICAgICAgICAgICBw
b2ludC5tb3ZlKC1zaXplLndpZHRoKCksIDApOworICAgICAgICBpZiAoY29ybmVyID09IERlYnVn
QmFkZ2U6OkNvcm5lcjo6Qm90dG9tTGVmdCB8fCBjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVy
OjpCb3R0b21SaWdodCkKKyAgICAgICAgICAgIHBvaW50Lm1vdmUoMCwgLXNpemUuaGVpZ2h0KCkp
OworICAgICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LCBzaXplKTsKKyAgICB9OworCisgICAg
YXV0byBkcmF3RGVidWdCYWRnZSA9IFsmXShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgRGVidWdCYWRnZSYgYmFkZ2UpIHsKKyAgICAg
ICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CisgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoIkhlbHZldGljYSIpOworICAgICAgICBmb250RGVzY3Jp
cHRpb24uc2V0U3BlY2lmaWVkU2l6ZShiYWRnZS5mb250U2l6ZSk7CisgICAgICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRDb21wdXRlZFNpemUoYmFkZ2UuZm9udFNpemUpOworCisgICAgICAgIEZvbnRD
YXNjYWRlIGNhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKKyAgICAgICAgY2FzY2Fk
ZS51cGRhdGUobnVsbHB0cik7CisKKyAgICAgICAgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdp
biA9IGJhZGdlLmZvbnRTaXplIC8gNDsKKyAgICAgICAgY29uc3QgZmxvYXQgdmVydGljYWxNYXJn
aW4gPSBob3Jpem9udGFsTWFyZ2luIC8gMjsKKworICAgICAgICBUZXh0UnVuIHRleHRSdW4oYmFk
Z2UudGV4dCk7CisgICAgICAgIGZsb2F0IHRleHRXaWR0aCA9IGNhc2NhZGUud2lkdGgodGV4dFJ1
bik7CisKKyAgICAgICAgRmxvYXRTaXplIGJhZGdlU2l6ZShob3Jpem9udGFsTWFyZ2luICogMiAr
IHRleHRXaWR0aCwgdmVydGljYWxNYXJnaW4gKiAyICsgYmFkZ2UuZm9udFNpemUpOworCisgICAg
ICAgIGF1dG8gYmFkZ2VSZWN0ID0gY29ybmVyUmVjdChib3JkZXJSZWN0LCAgYmFkZ2UuY29ybmVy
LCBiYWRnZVNpemUpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhZGdlLmNvbG9y
KTsKKyAgICAgICAgY29udGV4dC5maWxsUmVjdChiYWRnZVJlY3QpOworCisgICAgICAgIGNvbnRl
eHQuc2V0RmlsbENvbG9yKGJhZGdlLnRleHRDb2xvcik7CisgICAgICAgIGNvbnRleHQuZHJhd1Rl
eHQoY2FzY2FkZSwgdGV4dFJ1biwgRmxvYXRQb2ludChiYWRnZVJlY3QueCgpICsgaG9yaXpvbnRh
bE1hcmdpbiwgYmFkZ2VSZWN0LnkoKSArIGJhZGdlLmZvbnRTaXplKSk7CisgICAgfTsKKyAgICAK
KyAgICBmb3IgKGF1dG8gYmFkZ2UgOiBiYWRnZXMpCisgICAgICAgIGRyYXdEZWJ1Z0JhZGdlKGNv
bnRleHQsIGJvcmRlclJlY3QsIGJhZGdlKTsKK30KKwordm9pZCBkcmF3RGVidWdCYWRnZXMoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0
IFZlY3RvcjxEZWJ1Z0JhZGdlPiYgYmFkZ2VzKQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICBGbG9hdFJlY3QgYm9yZGVyUmVjdEFkanVz
dGVkID0gYm9yZGVyUmVjdDsKKyAgICBib3JkZXJSZWN0QWRqdXN0ZWQuaW5mbGF0ZSgtMSk7Cisg
ICAgZHJhd0RlYnVnQmFkZ2VzSW50ZXJuYWwoY29udGV4dCwgYm9yZGVyUmVjdEFkanVzdGVkLCBi
YWRnZXMpOworfQorCit2b2lkIGRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlcyhHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgQ29sb3ImIGNv
bG9yLCBjb25zdCBWZWN0b3I8RGVidWdCYWRnZT4mIGJhZGdlcykKK3sKKyAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBGbG9hdFJlY3QgYm9y
ZGVyUmVjdEFkanVzdGVkID0gYm9yZGVyUmVjdDsKKyAgICBib3JkZXJSZWN0QWRqdXN0ZWQuaW5m
bGF0ZSgtMSk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICBjb250
ZXh0LnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7CisgICAgY29udGV4dC5zdHJva2VSZWN0KGJv
cmRlclJlY3RBZGp1c3RlZCwgMC41KTsKKworICAgIGRyYXdEZWJ1Z0JhZGdlc0ludGVybmFsKGNv
bnRleHQsIGJvcmRlclJlY3RBZGp1c3RlZCwgYmFkZ2VzKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0RXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDdiYTdjNWQ4MDk0Y2M5MzQwOGJj
ODEzMmQ2OThiNTgwMmFmOWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmgKQEAgLTAsMCArMSw1NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEZsb2F0UmVjdDsKKworc3RydWN0IERlYnVnQmFkZ2Ug
eworICAgIGVudW0gY2xhc3MgQ29ybmVyIHsKKyAgICAgICAgVG9wTGVmdCwKKyAgICAgICAgVG9w
UmlnaHQsCisgICAgICAgIEJvdHRvbUxlZnQsCisgICAgICAgIEJvdHRvbVJpZ2h0LAorICAgIH07
CisgICAgQ29ybmVyIGNvcm5lcjsKKyAgICBDb2xvciBjb2xvcjsKKyAgICBDb2xvciB0ZXh0Q29s
b3I7CisgICAgdW5zaWduZWQgZm9udFNpemU7CisgICAgU3RyaW5nIHRleHQ7Cit9OworCitXRUJD
T1JFX0VYUE9SVCB2b2lkIGRyYXdEZWJ1Z0JhZGdlcyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IFZlY3RvcjxEZWJ1Z0JhZGdlPiYpOworV0VCQ09S
RV9FWFBPUlQgdm9pZCBkcmF3RGVidWdCb3JkZXJBbmRCYWRnZXMoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYsIGNvbnN0IFZlY3RvcjxE
ZWJ1Z0JhZGdlPiYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcAppbmRl
eCA2ZDQxZDk4MWEyYjAxYzcxOGNkMDk1ZTQ2YmFhZDMxNzRiZWQ4ZWU4Li5hN2I5ZmRiOGI1Mzlk
OWViMTYyYWYwZDU5NWY2ZmVhMzMyNzVlNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKICNpZiBVU0UoQ0EpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIgogI2luY2x1ZGUgIkxheWVyUG9vbC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNsaWVudC5oIgogI2luY2x1ZGUgPENvcmVGb3VuZGF0
aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC04MSw2MyArODIsNDIgQEAgYm9vbCBQbGF0Zm9ybUNB
TGF5ZXI6OmNhbkhhdmVCYWNraW5nU3RvcmUoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
cjo6ZHJhd1JlcGFpbnRJbmRpY2F0b3IoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQs
IFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxheWVyLCBpbnQgcmVwYWludENvdW50LCBDb2xv
ciBjdXN0b21CYWNrZ3JvdW5kQ29sb3IpCiB7Ci0gICAgY29uc3QgZmxvYXQgdmVydGljYWxNYXJn
aW4gPSAyLjU7Ci0gICAgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdpbiA9IDU7Ci0gICAgY29u
c3QgdW5zaWduZWQgZm9udFNpemUgPSAyMjsKKyAgICBjb25zdCB1bnNpZ25lZCBsYXJnZUZvbnRT
aXplID0gMjI7CisgICAgY29uc3QgdW5zaWduZWQgc21hbGxGb250U2l6ZSA9IDEwOwogICAgIGNv
bnN0ZXhwciBhdXRvIGJhY2tncm91bmRDb2xvciA9IFNSR0JBPHVpbnQ4X3Q+IHsgMTI4LCA2NCwg
MjU1IH07Ci0gICAgY29uc3RleHByIGF1dG8gYWNjZWxlcmF0ZWRDb250ZXh0TGFiZWxDb2xvciA9
IENvbG9yOjpyZWQ7Ci0gICAgY29uc3RleHByIGF1dG8gdW5hY2NlbGVyYXRlZENvbnRleHRMYWJl
bENvbG9yID0gQ29sb3I6OndoaXRlOwotICAgIGNvbnN0ZXhwciBhdXRvIGxpbmVhckdseXBoTWFz
a091dGxpbmVDb2xvciA9IENvbG9yOjpibGFjay5jb2xvcldpdGhBbHBoYUJ5dGUoMTkyKTsKLSAg
ICBjb25zdGV4cHIgYXV0byBkaXNwbGF5TGlzdEJvcmRlckNvbG9yID0gQ29sb3I6OmJsYWNrLmNv
bG9yV2l0aEFscGhhQnl0ZSgxNjYpOwotCi0gICAgVGV4dFJ1biB0ZXh0UnVuKFN0cmluZzo6bnVt
YmVyKHJlcGFpbnRDb3VudCkpOwotCi0gICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVz
Y3JpcHRpb247Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseSgiSGVsdmV0aWNhIik7
Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUoZm9udFNpemUpOwotICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZm9udFNpemUpOwotCi0gICAgRm9udENhc2Nh
ZGUgY2FzY2FkZShXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOwotICAgIGNhc2NhZGUudXBkYXRl
KG51bGxwdHIpOwotCi0gICAgZmxvYXQgdGV4dFdpZHRoID0gY2FzY2FkZS53aWR0aCh0ZXh0UnVu
KTsKLQotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihncmFwaGljc0Nv
bnRleHQpOwotCi0gICAgZ3JhcGhpY3NDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMC41
Zik7Ci0KLSAgICBncmFwaGljc0NvbnRleHQuc2V0RmlsbENvbG9yKGN1c3RvbUJhY2tncm91bmRD
b2xvci5pc1ZhbGlkKCkgPyBjdXN0b21CYWNrZ3JvdW5kQ29sb3IgOiBiYWNrZ3JvdW5kQ29sb3Ip
OwotICAgIEZsb2F0UmVjdCBpbmRpY2F0b3JCb3goMSwgMSwgaG9yaXpvbnRhbE1hcmdpbiAqIDIg
KyB0ZXh0V2lkdGgsIHZlcnRpY2FsTWFyZ2luICogMiArIGZvbnRTaXplKTsKLSAgICBpZiAocGxh
dGZvcm1DQUxheWVyLT5pc09wYXF1ZSgpKQotICAgICAgICBncmFwaGljc0NvbnRleHQuZmlsbFJl
Y3QoaW5kaWNhdG9yQm94KTsKLSAgICBlbHNlIHsKLSAgICAgICAgUGF0aCBib3VuZHNQYXRoOwot
ICAgICAgICBib3VuZHNQYXRoLm1vdmVUbyhpbmRpY2F0b3JCb3gubWF4WE1pbllDb3JuZXIoKSk7
Ci0gICAgICAgIGJvdW5kc1BhdGguYWRkTGluZVRvKGluZGljYXRvckJveC5tYXhYTWF4WUNvcm5l
cigpKTsKLSAgICAgICAgYm91bmRzUGF0aC5hZGRMaW5lVG8oaW5kaWNhdG9yQm94Lm1pblhNYXhZ
Q29ybmVyKCkpOwotCi0gICAgICAgIGNvbnN0IGZsb2F0IGNvcm5lckNodW5rID0gODsKLSAgICAg
ICAgYm91bmRzUGF0aC5hZGRMaW5lVG8oRmxvYXRQb2ludChpbmRpY2F0b3JCb3gueCgpLCBpbmRp
Y2F0b3JCb3gueSgpICsgY29ybmVyQ2h1bmspKTsKLSAgICAgICAgYm91bmRzUGF0aC5hZGRMaW5l
VG8oRmxvYXRQb2ludChpbmRpY2F0b3JCb3gueCgpICsgY29ybmVyQ2h1bmssIGluZGljYXRvckJv
eC55KCkpKTsKLSAgICAgICAgYm91bmRzUGF0aC5jbG9zZVN1YnBhdGgoKTsKLQotICAgICAgICBn
cmFwaGljc0NvbnRleHQuZmlsbFBhdGgoYm91bmRzUGF0aCk7Ci0gICAgfQorICAgIGNvbnN0ZXhw
ciBhdXRvIGFjY2VsZXJhdGVkVGV4dENvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBjb25zdGV4cHIg
YXV0byB1bmFjY2VsZXJhdGVkVGV4dENvbG9yID0gQ29sb3I6OndoaXRlOworICAgIAorICAgIFZl
Y3RvcjxEZWJ1Z0JhZGdlPiBiYWRnZXMgPSB7IHsKKyAgICAgICAgRGVidWdCYWRnZTo6Q29ybmVy
OjpUb3BMZWZ0LAorICAgICAgICBjdXN0b21CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpID8gY3Vz
dG9tQmFja2dyb3VuZENvbG9yIDogYmFja2dyb3VuZENvbG9yLAorICAgICAgICBwbGF0Zm9ybUNB
TGF5ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpID8gYWNjZWxlcmF0ZWRUZXh0Q29sb3IgOiB1bmFj
Y2VsZXJhdGVkVGV4dENvbG9yLAorICAgICAgICBsYXJnZUZvbnRTaXplLAorICAgICAgICBTdHJp
bmc6Om51bWJlcihyZXBhaW50Q291bnQpCisgICAgfSB9OwogCiAgICAgaWYgKHBsYXRmb3JtQ0FM
YXllci0+b3duZXIoKS0+aXNVc2luZ0Rpc3BsYXlMaXN0RHJhd2luZyhwbGF0Zm9ybUNBTGF5ZXIp
KSB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VDb2xvcihkaXNwbGF5TGlzdEJv
cmRlckNvbG9yKTsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnN0cm9rZVJlY3QoaW5kaWNhdG9y
Qm94LCAyKTsKKyAgICAgICAgYmFkZ2VzLmFwcGVuZCh7CisgICAgICAgICAgICBEZWJ1Z0JhZGdl
OjpDb3JuZXI6OkJvdHRvbUxlZnQsCisgICAgICAgICAgICBDb2xvcjo6Ymx1ZSwKKyAgICAgICAg
ICAgIHBsYXRmb3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNEcmF3aW5nKCkgPyBhY2NlbGVyYXRlZFRl
eHRDb2xvciA6IHVuYWNjZWxlcmF0ZWRUZXh0Q29sb3IsCisgICAgICAgICAgICBsYXJnZUZvbnRT
aXplLAorICAgICAgICAgICAgIkRMIl9zCisgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmICgh
cGxhdGZvcm1DQUxheWVyLT5pc09wYXF1ZSgpICYmIHBsYXRmb3JtQ0FMYXllci0+c3VwcG9ydHNT
dWJwaXhlbEFudGlhbGlhc2VkVGV4dCgpICYmIHBsYXRmb3JtQ0FMYXllci0+YWNjZWxlcmF0ZXNE
cmF3aW5nKCkpIHsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZUNvbG9yKGxpbmVh
ckdseXBoTWFza091dGxpbmVDb2xvcik7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoNC41KTsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnNldFRleHREcmF3aW5n
TW9kZShUZXh0RHJhd2luZ01vZGVGbGFncyB7IFRleHREcmF3aW5nTW9kZTo6RmlsbCwgVGV4dERy
YXdpbmdNb2RlOjpTdHJva2UgfSk7CisgICAgaWYgKCFwbGF0Zm9ybUNBTGF5ZXItPmlzT3BhcXVl
KCkgJiYgcGxhdGZvcm1DQUxheWVyLT5zdXBwb3J0c1N1YnBpeGVsQW50aWFsaWFzZWRUZXh0KCkp
IHsKKyAgICAgICAgYmFkZ2VzLmFwcGVuZCh7CisgICAgICAgICAgICBEZWJ1Z0JhZGdlOjpDb3Ju
ZXI6OkJvdHRvbVJpZ2h0LAorICAgICAgICAgICAgQ29sb3I6OmdyZWVuLAorICAgICAgICAgICAg
cGxhdGZvcm1DQUxheWVyLT5hY2NlbGVyYXRlc0RyYXdpbmcoKSA/IGFjY2VsZXJhdGVkVGV4dENv
bG9yIDogdW5hY2NlbGVyYXRlZFRleHRDb2xvciwKKyAgICAgICAgICAgIHNtYWxsRm9udFNpemUs
CisgICAgICAgICAgICAic3ViLXBpeGVsIl9zCisgICAgICAgIH0pOwogICAgIH0KIAotICAgIGdy
YXBoaWNzQ29udGV4dC5zZXRGaWxsQ29sb3IocGxhdGZvcm1DQUxheWVyLT5hY2NlbGVyYXRlc0Ry
YXdpbmcoKSA/IGFjY2VsZXJhdGVkQ29udGV4dExhYmVsQ29sb3IgOiB1bmFjY2VsZXJhdGVkQ29u
dGV4dExhYmVsQ29sb3IpOwotCi0gICAgZ3JhcGhpY3NDb250ZXh0LmRyYXdUZXh0KGNhc2NhZGUs
IHRleHRSdW4sIEZsb2F0UG9pbnQoaW5kaWNhdG9yQm94LngoKSArIGhvcml6b250YWxNYXJnaW4s
IGluZGljYXRvckJveC55KCkgKyBmb250U2l6ZSkpOworICAgIGdyYXBoaWNzQ29udGV4dC5iZWdp
blRyYW5zcGFyZW5jeUxheWVyKDAuNWYpOworICAgIGRyYXdEZWJ1Z0JhZGdlcyhncmFwaGljc0Nv
bnRleHQsIHBsYXRmb3JtQ0FMYXllci0+Ym91bmRzKCksIGJhZGdlcyk7CiAgICAgZ3JhcGhpY3ND
b250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cAppbmRleCBkZjBlZDQ3ZTViZWZkNjc5ODQ2YTRjN2Y1MDYyMDEzNjY0NjBiNjgwLi4xY2E3ZWUy
ZmZmZDlkYTE1Mjg4NDA3ZTI0Yzk1ZTJlYWJlMDA5YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHRFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTcy
LDYgKzc0LDE5IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllci50b1VJbnQ2NCgpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRy
YXdEZWJ1Z0JhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBi
b3JkZXJSZWN0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgaWYgKCFtX3Nob3dEZWJ1Z0Jv
cmRlcnMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6
ZSA9IDEwOworICAgIGNvbnN0ZXhwciBhdXRvIGJhY2tncm91bmRDb2xvciA9IENvbG9yOjpibHVl
OworICAgIGNvbnN0ZXhwciBhdXRvIHRleHRDb2xvciA9IENvbG9yOjp3aGl0ZTsKKworICAgIERl
YnVnQmFkZ2UgYmFkZ2UgPSB7IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tUmlnaHQsIGJhY2tn
cm91bmRDb2xvciwgdGV4dENvbG9yLCBmb250U2l6ZSwgdGV4dCB9OworICAgIGRyYXdEZWJ1Z0Jh
ZGdlcyhjb250ZXh0LCBib3JkZXJSZWN0LCB7IGJhZGdlIH0pOworfQorCiBib29sIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmFwcGx5UmVzb3VyY2VJdGVtKGNvbnN0IERpc3BsYXlMaXN0OjpJdGVt
JiBpdGVtLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGl0ZW0udHlwZSgp
ID09IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyKSB7CkBAIC04MSw2ICs5
Niw3IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6YXBwbHlSZXNvdXJjZUl0ZW0oY29u
c3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgaW1hZ2VCdWZmZXItPmRyYXcoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRp
b25SZWN0KCksIGRyYXdJdGVtLnNvdXJjZSgpLCBkcmF3SXRlbS5vcHRpb25zKCkpOworICAgICAg
ICBkcmF3RGVidWdCYWRnZShjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgIkNB
TlZBUyJfcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTQwLDE0ICsxNTYs
MTYgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0
IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3QoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiBkaXNwbGF5TGlzdCwgYm9vbCBzaG93RGVidWdCb3JkZXJzLCBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogeworICAgIFNldEZvclNj
b3BlPGJvb2w+IGNoYW5nZShtX3Nob3dEZWJ1Z0JvcmRlcnMsIHNob3dEZWJ1Z0JvcmRlcnMpOwog
ICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZElt
YWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIGltYWdlQnVm
ZmVyLT5mbHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZs
dXNoSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5
TGlzdEFuZENvbW1pdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
LCBib29sIHNob3dEZWJ1Z0JvcmRlcnMsIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNo
SWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikKIHsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9zaG93RGVidWdC
b3JkZXJzLCBzaG93RGVidWdCb3JkZXJzKTsKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1f
cmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpKSB7CiAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERpc3BsYXlMaXN0KGRpc3Bs
YXlMaXN0KTsKICAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoQ29udGV4dCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggMjg1ZTJmNzRiNGQ0ZmQ2ZTZhOGM1ZTkxMDI1YTFjOTI2ZjVmZmIxNS4u
OTRjYzBmNDRiYzQ1N2IzMTkyOWI4OTI0NDVjODAzYTU3OTNjODg4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Q7CiAKICAgICAvLyBSZW5k
ZXJpbmcgb3BlcmF0aW9ucy4KKyAgICB2b2lkIGRyYXdEZWJ1Z0JhZGdlKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKICAgICBib29sIGFwcGx5UmVzb3VyY2VJdGVtKGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAgICAgYm9v
bCBhcHBseU1lZGlhSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC04MywxNCArODQsMTUgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVy
aW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hEaXNwbGF5
TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdEFu
ZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgYm9vbCBzaG93RGVidWdCb3JkZXJzLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBib29sIHNob3dEZWJ1Z0Jv
cmRlcnMsIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3Rl
UmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFdlYWtQdHI8R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAg
IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7
CisgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4
IGE4OGUwZmI2MjYyNDkxODlkOGY1YjNhMzliOWI2NjQyODYyMmNhZDMuLjJlMWZhOWUxZjk0NTAy
OGIxNTdhZDMwNjBkN2VkOTYzZmU1MWVkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCB7CiAgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBGbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICB2b2lkIEZs
dXNoRGlzcGxheUxpc3RBbmRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkRpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoRGlzcGxheUxpc3QoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBib29sIHNob3dEZWJ1Z0JvcmRlcnMs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgYm9vbCBzaG93RGVidWdCb3JkZXJz
LCBXZWJLaXQ6OkRpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKICAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5bmNocm9ub3VzCiAg
ICAgdm9pZCBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKaW5kZXggZjc3ZjM3ZWU0NzE3ZjM3MTFiZGUzZmFmZGQ4ODA4MmM2YWFiMDg5
MC4uYTZjMGE5YjVhMzM0N2MzNjcwMjljYTU2NjQ5ZmRhYTQ4MzgyZDU0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2Vu
ZFQKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZURpc3BsYXlM
aXN0SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKKyAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlcjo6Y29udGV4dDsKIAogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UmVtb3RlSW1h
Z2VCdWZmZXJQcm94eT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSkKQEAgLTE0OCw2ICsxNDksNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hS
ZW1vdGVJbWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kLCAxKTsKKyAg
ICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRyYXdEZWJ1Z0JvcmRlckFuZEJh
ZGdlKGNvbnRleHQoKSwgeyB7IH0sIG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSB9LCAiR1BVIl9z
KTsKICAgICAgICAgbV9zZW50Rmx1c2hJZGVudGlmaWVyID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPmZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoZGlzcGxheUxpc3QsIG1fcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLnVubG9ja1JlbW90ZVJlc291cmNlc0Zv
clJlbW90ZUNsaWVudChtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIG1f
aXRlbUNvdW50SW5DdXJyZW50RGlzcGxheUxpc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGY5YTdkYzVkZTAyODc3MTRlNjZlY2IxNzE3NDFjMmU4
OTUzOGU5MTIuLjdhZmQ4MjExNGY1NzFhMmQyZjcwZDczOTYyOWYwY2RlYTM2MjkyZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTM1LDE3ICszNSwyMCBA
QAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlKCkKK3N0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk+KG5ldyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocGFnZSkpOwogfQog
Ci1SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSgpCitSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiAgICAgLy8gUmVnaXN0
ZXIgaXRzZWxmIGFzIGEgTWVzc2FnZVJlY2VpdmVyIGluIHRoZSBHUFVQcm9jZXNzQ29ubmVjdGlv
bi4KICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJlY2VpdmVyTWFwID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZXNzYWdl
UmVjZWl2ZXJNYXAoKTsKQEAgLTc1LDYgKzc4LDI0IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJl
dHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCk7CiB9CiAKK2Jvb2wg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9yZGVy
cygpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZHJhd0RlYnVnQm9y
ZGVyQW5kQmFkZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJv
cmRlclJlY3QsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAoIXNob3dEZWJ1Z0JvcmRl
cnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgdW5zaWduZWQgZm9udFNpemUgPSAx
MDsKKyAgICBjb25zdGV4cHIgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcjo6cmVkOworICAg
IGNvbnN0ZXhwciBhdXRvIHRleHRDb2xvciA9IENvbG9yOjp3aGl0ZTsKKworICAgIERlYnVnQmFk
Z2UgYmFkZ2UgPSB7IERlYnVnQmFkZ2U6OkNvcm5lcjo6VG9wUmlnaHQsIGJhY2tncm91bmRDb2xv
ciwgdGV4dENvbG9yLCBmb250U2l6ZSwgdGV4dCB9OworICAgIGRyYXdEZWJ1Z0JvcmRlckFuZEJh
ZGdlcyhjb250ZXh0LCBib3JkZXJSZWN0LCBiYWNrZ3JvdW5kQ29sb3IsIHsgYmFkZ2UgfSk7Cit9
CisKIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9ySW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZCgpCiB7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlv
biA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpOwpAQCAtMTE2LDEzICsxMzcsMTMgQEAgUmVmUHRyPEltYWdlRGF0YT4gUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNh
dGkKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGbHVzaERpc3BsYXlMaXN0KGRpc3Bs
YXlMaXN0LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpG
bHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0LCBzaG93RGVidWdCb3JkZXJzKCksIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQog
CiBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiBkaXNwbGF5TGlzdCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKIHsKICAgICBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBzZW50Rmx1
c2hJZGVudGlmaWVyID0gRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0g
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlz
dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgc2VudEZsdXNoSWRlbnRpZmllciwgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdEFuZENv
bW1pdChkaXNwbGF5TGlzdCwgc2hvd0RlYnVnQm9yZGVycygpLCBzZW50Rmx1c2hJZGVudGlmaWVy
LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKTsKICAgICByZXR1cm4gc2VudEZsdXNoSWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggZTk5ZTNkNzFjYTkyNjI2YTY5NjJjYzk0ODc3
YTdjMTFiODVlZGJhNy4uYmEzNGNkN2Q4MTRmNjdhMDI0OTBhNjBkMTIyN2Y5ZTAzNjc5Y2EzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC01MCwxMiArNTAsMTQg
QEAgZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK2NsYXNzIFdlYlBhZ2U7CisKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eQog
ICAgIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgogICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eT4gewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKFdlYlBhZ2UmKTsKIAogICAg
IH5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIApAQCAtNjgsNiArNzAsMTAgQEAgcHVi
bGljOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAorICAgIC8v
IFJlbmRlcmluZyBvcGVyYXRpb25zLgorICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0
OworICAgIHZvaWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBTdHJpbmcm
IHRleHQpOworCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KICAgICBSZWZQdHI8V2ViQ29y
ZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSk7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VE
YXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwpAQCAtNzksNyArODUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YWl0Rm9yRmx1c2hE
aXNwbGF5TGlzdFdhc0NvbW1pdHRlZCgpOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSgpOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQYWdl
Jik7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGltYWdlQnVm
ZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtODcsNiArOTMsNyBAQCBwcml2
YXRlOgogCiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5IHsgKnRoaXMgfTsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVy
YXRlKCkgfTsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYTdhNzY5NTBkNDVlNDNmMjQxZmZiZDJmMzFh
YWMxNTcwODUxOTExNi4uMWI3ZTU2ZTNkNjgxYzNiZTRjODZlZTNlYzkyMjQzNDYzMWFiMWE3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTkwNiw3ICs5MDYsNyBAQCBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0ZgogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJDaHJvbWVDbGllbnQ6
OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZSgpOworICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413987</attachid>
            <date>2020-11-12 17:45:50 -0800</date>
            <delta_ts>2021-03-23 16:52:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217166-20201112174549.patch</filename>
            <type>text/plain</type>
            <size>22883</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFmY2I3ODVmMjY2ODEy
ZTIzYmEzMTNjNTA5ZDc1MjA5OGNhODI2Zi4uNTU3ODFmMWYzYzFmMjU5MzQwMjk0NjYyNjg2Yjg1
NDI0MmE1YTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTExLTEyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
RHJhdyBhIGRlYnVnZ2luZyBib3JkZXIgYW5kIGJhZGdlIGZvciB0aGUgMkQgY2FudmFzIGlmIGl0
J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgaXMgaW50cm9k
dWNlZCB0byBiZSB0aGUgcGxhY2Ugd2hlcmUgb3RoZXIgY29tcGxleAorICAgICAgICBncmFwaGlj
YWwgY29tbWFuZHMgY2FuIGJlIGFkZGVkIGxhdGVyLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFz
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkcmF3RGVidWdCYWRnZUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OmRyYXdEZWJ1Z0JhZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OmRy
YXdEZWJ1Z0JvcmRlckFuZEJhZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuaDogQWRkZWQuCisKIDIwMjAtMTEtMTIgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdQYXR0ZXJuKCkgc2hvdWxkIHRha2UgYSBOYXRpdmVJbWFnZSBhcmd1bWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA5Njg5ZTE1ZDkxNjQ2MWRlODMxOWNkN2M1YTM4NzJhZGE3NGM4YTQxLi5jOTFk
N2EyMDQ2Y2FkNWVkMjg1OTA0NzNkZDExMDQ1MDdkZjI2ZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDIwLTExLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFUgUHJvY2Vzc10gRHJhdyBhIGRlYnVnZ2luZyBib3JkZXIgYW5kIGJhZGdl
IGZvciB0aGUgMkQgY2FudmFzIGlmIGl0J3MgZHJhd24gdGhyb3VnaCBHUFUgcHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTY2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJhdyBhIGRlYnVn
Z2luZyBib3JkZXIgYW5kIGJhZGdlIGFyb3VuZCB0aGUgY2FudmFzIGlmIGl0IGlzIGRyYXduIGlu
IEdQVVAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c2hvd0RlYnVnQm9yZGVycyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZHJhd0RlYnVn
Qm9yZGVyQW5kQmFkZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgY29uc3QpOgorCiAyMDIwLTEx
LTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUg
UHJvY2Vzc10gR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybigpIHNob3VsZCB0YWtlIGEgTmF0
aXZlSW1hZ2UgYXJndW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY0NTM0Y2UwMjUwNzhhOWI1
NDY1OGUwZTZhNTkzN2I3ODhmNjA5YWEuLjI3NzdmMzlmNTk5MTE5ZGFmMjA1ZTM2ZWI3ZWM5YjRm
MDkyYTZhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE2Nyw2ICsxMTY3LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoUGFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0RXh0cmFzLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggNWVmMWJmNmE2NjRmZjAxY2U5MTc5OGVhYzU1MzNhZTVmOWFkMDIzZS4uYWJlODA1ZDI2
ZGUxMzZlY2Q3MTVhOWNiYzhjZjJkZjkxYThlMWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5MTcs
NiArMTkxNyw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTElt
YWdlRXh0cmFjdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1Y2UxYmY5ZTUxMWI2YjAyYzY4NjJiZWM1MjAwNzM1ZmE3MjU0ZmEyLi5lNjJmY2I1
YWZmZTI5ZTM0NjMxMDFmYzlkNDQ0ZmU3NmJkMWY2NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTY1LDYgKzIxNjUsNyBA
QAogCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjlE
MDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYy
NDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8q
IEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyQUI5QTIxMjU1QTlGREUwMEU2RUJGMSAvKiBOYXRpdmVJbWFnZVJl
ZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzJBQjlBMUYyNTVBOUVBNjAwRTZFQkYxIC8qIE5hdGl2ZUltYWdlUmVmZXJlbmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzJBQjlBM0EyNTVE
Rjk4MzAwRTZFQkYxIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJBQjlBMzcyNTVERjQ0RTAwRTZFQkYxIC8q
IEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyQkFDM0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBB
QyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsg
fTsKQEAgLTk5NzIsNiArOTk3Myw4IEBACiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJBQjlBMUYyNTVBOUVB
NjAwRTZFQkYxIC8qIE5hdGl2ZUltYWdlUmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2
ZUltYWdlUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyQUI5QTM2
MjU1REY0NEUwMEU2RUJGMSAvKiBHcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0RXh0cmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzJBQjlBMzcyNTVERjQ0RTAwRTZFQkYxIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJh
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRFeHRyYXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTQyM0UxNzMyNzAwOEQ3NDFDIC8qIEltYWdlQnVmZmVy
QmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1
ZmZlckJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNTIz
RTE3MzI4MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MkJBQzNBNjIzRTE3MzI4MDA4RDc0MUMgLyogUGxhdGZvcm1JbWFnZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUltYWdlQnVmZmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjMyNSw2ICsyNjMyOCw4IEBACiAJ
CQkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKIAkJCQlC
MkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlC
MkEwMTU5MzBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCisJCQkJNzJB
QjlBMzYyNTVERjQ0RTAwRTZFQkYxIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5jcHAgKi8sCisJ
CQkJNzJBQjlBMzcyNTVERjQ0RTAwRTZFQkYxIC8qIEdyYXBoaWNzQ29udGV4dEV4dHJhcy5oICov
LAogCQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAg
Ki8sCiAJCQkJMzEzREU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmgg
Ki8sCiAJCQkJN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcy5oICovLApAQCAtMzE4ODMsNiArMzE4ODgsNyBAQAogCQkJCTJENDgxRjA0MTQ2QjVD
NkIwMEFBNzgzNCAvKiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVB
OTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTcyQUI5QTNBMjU1REY5ODMwMEU2RUJGMSAvKiBHcmFwaGljc0NvbnRleHRF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBH
cmFwaGljc0NvbnRleHRHTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0JCMzRBMTcyNTM0NUNCMjAw
MDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDMzMwQTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAwOGFiM2IyMjAwZmE5ZDJkN2Q1YmE1ZTVi
YjNhNThhZGNjMTI1NmMzLi5jZmJkZDY1ZWMzN2I1YTY4ZjU1OGNhMzBkYzE1NjhkYThkMGViMGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaApAQCAtNTAwLDcgKzUwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZERlc3RpbmF0
aW9uQXRQb2ludChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEZsb2F0UG9pbnQmKTsKIAogICAg
IHZvaWQgY29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwotICAgIHZvaWQgc2V0Q1RN
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q1RN
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCiAgICAgZW51bSBJbmNsdWRlRGV2aWNlU2NhbGUg
eyBEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlLCBQb3NzaWJseUluY2x1ZGVEZXZpY2VTY2Fs
ZSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oSW5jbHVkZURl
dmljZVNjYWxlIGluY2x1ZGVTY2FsZSA9IFBvc3NpYmx5SW5jbHVkZURldmljZVNjYWxlKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEV4dHJhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRFeHRyYXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkODUyYjRhYzMzYTZmOTg4OGRmZGQz
YTU2MjdmNGVhZDY5ZmM3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuY3BwCkBAIC0wLDAgKzEsMTA2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRFeHRyYXMuaCIKKworI2luY2x1
ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRm9udENhc2Nh
ZGUuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJUZXh0UnVuLmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSB2b2lkIGRyYXdEZWJ1Z0JhZGdlSW50ZXJuYWwoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IERlYnVnQmFk
Z2UmIGJhZGdlKQoreworICAgIGF1dG8gY29ybmVyUG9pbnQgPSBbXShjb25zdCBGbG9hdFJlY3Qm
IGJvcmRlclJlY3QsIERlYnVnQmFkZ2U6OkNvcm5lciBjb3JuZXIpIHsKKyAgICAgICAgYXV0byBw
b2ludCA9IGJvcmRlclJlY3QubG9jYXRpb24oKTsKKyAgICAgICAgaWYgKGNvcm5lciA9PSBEZWJ1
Z0JhZGdlOjpDb3JuZXI6OlRvcFJpZ2h0IHx8IGNvcm5lciA9PSBEZWJ1Z0JhZGdlOjpDb3JuZXI6
OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQubW92ZShib3JkZXJSZWN0LndpZHRoKCks
IDApOworICAgICAgICBpZiAoY29ybmVyID09IERlYnVnQmFkZ2U6OkNvcm5lcjo6Qm90dG9tTGVm
dCB8fCBjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0b21SaWdodCkKKyAgICAgICAg
ICAgIHBvaW50Lm1vdmUoMCwgYm9yZGVyUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBw
b2ludDsKKyAgICB9OworCisgICAgYXV0byBjb3JuZXJSZWN0ID0gWyZdKGNvbnN0IEZsb2F0UmVj
dCYgYm9yZGVyUmVjdCwgRGVidWdCYWRnZTo6Q29ybmVyIGNvcm5lciwgY29uc3QgRmxvYXRTaXpl
IHNpemUpIHsKKyAgICAgICAgYXV0byBwb2ludCA9IGNvcm5lclBvaW50KGJvcmRlclJlY3QsIGNv
cm5lcik7CisgICAgICAgIGlmIChjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpUb3BSaWdo
dCB8fCBjb3JuZXIgPT0gRGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0b21SaWdodCkKKyAgICAgICAg
ICAgIHBvaW50Lm1vdmUoLXNpemUud2lkdGgoKSwgMCk7CisgICAgICAgIGlmIChjb3JuZXIgPT0g
RGVidWdCYWRnZTo6Q29ybmVyOjpCb3R0b21MZWZ0IHx8IGNvcm5lciA9PSBEZWJ1Z0JhZGdlOjpD
b3JuZXI6OkJvdHRvbVJpZ2h0KQorICAgICAgICAgICAgcG9pbnQubW92ZSgwLCAtc2l6ZS5oZWln
aHQoKSk7CisgICAgICAgIHJldHVybiBGbG9hdFJlY3QocG9pbnQsIHNpemUpOworICAgIH07CisK
KyAgICBGb250Q2FzY2FkZURlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKKyAgICBmb250RGVz
Y3JpcHRpb24uc2V0T25lRmFtaWx5KCJIZWx2ZXRpY2EiKTsKKyAgICBmb250RGVzY3JpcHRpb24u
c2V0U3BlY2lmaWVkU2l6ZShiYWRnZS5mb250U2l6ZSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNl
dENvbXB1dGVkU2l6ZShiYWRnZS5mb250U2l6ZSk7CisKKyAgICBGb250Q2FzY2FkZSBjYXNjYWRl
KFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CisgICAgY2FzY2FkZS51cGRhdGUobnVsbHB0cik7
CisKKyAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsTWFyZ2luID0gYmFkZ2UuZm9udFNpemUgLyA0
OworICAgIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gaG9yaXpvbnRhbE1hcmdpbiAvIDI7
CisKKyAgICBUZXh0UnVuIHRleHRSdW4oYmFkZ2UudGV4dCk7CisgICAgZmxvYXQgdGV4dFdpZHRo
ID0gY2FzY2FkZS53aWR0aCh0ZXh0UnVuKTsKKworICAgIEZsb2F0U2l6ZSBiYWRnZVNpemUoaG9y
aXpvbnRhbE1hcmdpbiAqIDIgKyB0ZXh0V2lkdGgsIHZlcnRpY2FsTWFyZ2luICogMiArIGJhZGdl
LmZvbnRTaXplKTsKKworICAgIGF1dG8gYmFkZ2VSZWN0ID0gY29ybmVyUmVjdChib3JkZXJSZWN0
LCAgYmFkZ2UuY29ybmVyLCBiYWRnZVNpemUpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3Io
YmFkZ2UuY29sb3IpOworICAgIGNvbnRleHQuZmlsbFJlY3QoYmFkZ2VSZWN0KTsKKworICAgIGNv
bnRleHQuc2V0RmlsbENvbG9yKGJhZGdlLnRleHRDb2xvcik7CisgICAgY29udGV4dC5kcmF3VGV4
dChjYXNjYWRlLCB0ZXh0UnVuLCBGbG9hdFBvaW50KGJhZGdlUmVjdC54KCkgKyBob3Jpem9udGFs
TWFyZ2luLCBiYWRnZVJlY3QueSgpICsgYmFkZ2UuZm9udFNpemUpKTsKK30KKwordm9pZCBkcmF3
RGVidWdCYWRnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgYm9y
ZGVyUmVjdCwgY29uc3QgRGVidWdCYWRnZSYgYmFkZ2UpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRSZWN0IGJvcmRlclJl
Y3RBZGp1c3RlZCA9IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUo
LTEpOworICAgIGRyYXdEZWJ1Z0JhZGdlSW50ZXJuYWwoY29udGV4dCwgYm9yZGVyUmVjdEFkanVz
dGVkLCBiYWRnZSk7Cit9CisKK3ZvaWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IENvbG9y
JiBjb2xvciwgY29uc3QgRGVidWdCYWRnZSYgYmFkZ2UpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRSZWN0IGJvcmRlclJl
Y3RBZGp1c3RlZCA9IGJvcmRlclJlY3Q7CisgICAgYm9yZGVyUmVjdEFkanVzdGVkLmluZmxhdGUo
LTEpOworCisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgY29udGV4dC5z
ZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgIGNvbnRleHQuc3Ryb2tlUmVjdChib3JkZXJS
ZWN0QWRqdXN0ZWQsIDAuNSk7CisKKyAgICBkcmF3RGVidWdCYWRnZUludGVybmFsKGNvbnRleHQs
IGJvcmRlclJlY3RBZGp1c3RlZCwgYmFkZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRFeHRyYXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMWUxMTE1ZDMwYzMwNTc1MzE0MzE1ODkzMzg0
N2RkZWFjMzI0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRFeHRyYXMuaApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBGbG9hdFJl
Y3Q7CisKK3N0cnVjdCBEZWJ1Z0JhZGdlIHsKKyAgICBlbnVtIGNsYXNzIENvcm5lciB7CisgICAg
ICAgIFRvcExlZnQsCisgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICBCb3R0b21MZWZ0LAorICAg
ICAgICBCb3R0b21SaWdodCwKKyAgICB9OworICAgIENvcm5lciBjb3JuZXI7CisgICAgQ29sb3Ig
Y29sb3I7CisgICAgQ29sb3IgdGV4dENvbG9yOworICAgIHVuc2lnbmVkIGZvbnRTaXplOworICAg
IFN0cmluZyB0ZXh0OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3RGVidWdCYWRnZShH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IERlYnVn
QmFkZ2UmKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBDb2xvciYs
IGNvbnN0IERlYnVnQmFkZ2UmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaAppbmRleCAyN2U4ZmMwNWIzMjdkZDJmNWJjZDdmMWJjN2MwOTgwODk0
NTZjOWU3Li4wZTQxZjBlNzFlYmZjODJlZDA0MmZjMzViZDdhMmUzMTkxODVlZDc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNDYsNiArNDYsOCBAQCBjbGFzcyBSZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxC
YWNrZW5kVAogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7
CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7
CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6Om1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyOworICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjpiYXNl
VHJhbnNmb3JtOworICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjpjb250ZXh0
OwogCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PiBj
cmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KQpAQCAtMTU3LDYgKzE1OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgaWYgKGRpc3BsYXlM
aXN0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS0+ZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoY29udGV4dCgpLCBi
YXNlVHJhbnNmb3JtKCksIHsgeyB9LCBtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCkgfSwgIkdQVSBQ
cm9jZXNzIl9zKTsKICAgICAgICAgbV9zZW50Rmx1c2hJZGVudGlmaWVyID0gV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICAgICAgZGlzcGxheUxp
c3QudGVtcGxhdGUgYXBwZW5kPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ+KG1f
c2VudEZsdXNoSWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LT5zdWJtaXREaXNwbGF5TGlzdChkaXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4
IDcwMGY1ZWMwZjBhMDg5MGQwNzcwYmU3NTgwOTllNjNiNDliMWE2MjMuLjg4MDA5OTJhY2E2ZWM2
ZDgxNDJlZDFjNDZkZmRmM2ZlNDY3NWEzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAKQEAgLTM2LDE4ICszNiwyMiBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiV2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzQ29udGV4dEV4dHJhcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmNyZWF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQog
ewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
PihuZXcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkpOworICAgIHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PihuZXcgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5KHBhZ2UpKTsKIH0KIAotUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKQorUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFn
ZShwYWdlKQogewogICAgIC8vIFJlZ2lzdGVyIGl0c2VsZiBhcyBhIE1lc3NhZ2VSZWNlaXZlciBp
biB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uCiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAm
IG1lc3NhZ2VSZWNlaXZlck1hcCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkubWVzc2FnZVJlY2VpdmVyTWFwKCk7CkBAIC03Nyw2ICs4MSwyNyBA
QCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ci50b1VJbnQ2NCgpOwogfQogCitib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c2hv
d0RlYnVnQm9yZGVycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFnZSgpLT5z
ZXR0aW5ncygpLnNob3dEZWJ1Z0JvcmRlcnMoKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRyYXdEZWJ1Z0JvcmRlckFuZEJhZGdlKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVj
dCYgYm9yZGVyUmVjdCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlmICghc2hvd0RlYnVn
Qm9yZGVycygpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgY29udGV4dC5zZXRDVE0oYmFzZVRyYW5zZm9y
bSk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmb250U2l6ZSA9IDEwOworICAgIENvbG9yIGJhY2tn
cm91bmRDb2xvciA9IENvbG9yOjpkYXJrR3JlZW47CisgICAgQ29sb3IgdGV4dENvbG9yID0gQ29s
b3I6OndoaXRlOworCisgICAgRGVidWdCYWRnZSBiYWRnZSA9IHsgRGVidWdCYWRnZTo6Q29ybmVy
OjpUb3BSaWdodCwgYmFja2dyb3VuZENvbG9yLCB0ZXh0Q29sb3IsIGZvbnRTaXplLCB0ZXh0IH07
CisgICAgV2ViQ29yZTo6ZHJhd0RlYnVnQm9yZGVyQW5kQmFkZ2UoY29udGV4dCwgYm9yZGVyUmVj
dCwgYmFja2dyb3VuZENvbG9yLCBiYWRnZSk7Cit9CisKIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Ojp3YWl0Rm9ySW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCgpCiB7CiAgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggNzg1NDU4Yjc1NmQ5ODhlMzFjNjgxOWRjZDFh
YzY0NGJmMjY5ODhjMy4uOGUzNzJlMTIwNWJmZDZlNjdlYmNkY2MzNGZhMTNkY2NhMTYyYTIwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC00Miw2ICs0Miw3IEBA
IG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNzIEl0ZW07
CiB9CitjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBJbWFn
ZURhdGE7CiBlbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwpAQCAt
NTIsMTMgKzUzLDE0IEBAIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgRGlzcGxheUxpc3RXcml0ZXJIYW5kbGU7CitjbGFzcyBXZWJQ
YWdlOwogCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkKICAgICA6IHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAg
ICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eT4gY3JlYXRlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk+IGNyZWF0ZShXZWJQYWdlJik7CiAKICAgICB+UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KCk7CiAKQEAgLTcyLDYgKzc0LDEwIEBAIHB1YmxpYzoKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKKyAgICAvLyBSZW5kZXJpbmcgb3Bl
cmF0aW9ucy4KKyAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdDsKKyAgICB2b2lkIGRy
YXdEZWJ1Z0JvcmRlckFuZEJhZGdlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdl
YkNvcmU6OkFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKICAgICAvLyBNZXNzYWdl
cyB0byBiZSBzZW50LgogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQ
aXhlbEZvcm1hdCk7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwpAQCAtODQsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YWl0Rm9yRmx1c2hEaXNw
bGF5TGlzdFdhc0NvbW1pdHRlZCgpOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSgpOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQYWdlJik7
CiAKICAgICB2b2lkIHVwZGF0ZVJldXNhYmxlSGFuZGxlcygpOwogCkBAIC05Nyw2ICsxMDMsNyBA
QCBwcml2YXRlOgogICAgIERlcXVlPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRl
bnRpZmllcj4gbV9pZGVudGlmaWVyc09mUmV1c2FibGVIYW5kbGVzOwogICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyPiBtX2lkZW50aWZpZXJzT2ZI
YW5kbGVzQXZhaWxhYmxlRm9yV3JpdGluZzsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXI6OmdlbmVyYXRlKCkgfTsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjU5ZjZmZWEzMjFjYWQyN2Fj
OTg1NGE2ZjIyYjdkN2U5NzZjNTM1MS4uNTUzY2ZmNjk3MDAzMTFkNzhmOTJjMmNmY2RlOTA3ODE0
YzhjMTI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTkwNiw3ICs5MDYsNyBAQCBSZWZQ
dHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihQbGF0ZgogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJDaHJv
bWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0
ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSA9IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlKG1fcGFnZSk7CiAgICAgcmV0dXJuICptX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>