<?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>195347</bug_id>
          
          <creation_ts>2019-03-05 17:22:55 -0800</creation_ts>
          <short_desc>[Web GPU] Enable drawing GPUTextures and GPUTextureViews in the render pipeline, and related GPUBindGroup updates</short_desc>
          <delta_ts>2019-03-06 15:58:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1512918</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-05 17:22:55 -0800</bug_when>
    <thetext>[Web GPU] GPUTexture and GPUTextureView updates, and related GPUBindGroup updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512932</commentid>
    <comment_count>1</comment_count>
      <attachid>363717</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-05 17:55:25 -0800</bug_when>
    <thetext>Created attachment 363717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512933</commentid>
    <comment_count>2</comment_count>
      <attachid>363717</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-05 17:57:23 -0800</bug_when>
    <thetext>Comment on attachment 363717
Patch

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

&gt; LayoutTests/webgpu/texture-triangle-strip.html:45
&gt; +    constexpr sampler s(coord::normalized, address::clamp_to_zero, filter::nearest);

This is temporary until GPUSamplers are added in the next big patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512934</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 17:57:51 -0800</bug_when>
    <thetext>Attachment 363717 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:64:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:65:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513134</commentid>
    <comment_count>4</comment_count>
      <attachid>363717</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-06 12:45:20 -0800</bug_when>
    <thetext>Comment on attachment 363717
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUTexture.cpp:45
&gt; +WebGPUTexture::~WebGPUTexture()

I&apos;m no longer calling destroy() in the destructor here as it would expose when garbage collection happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513151</commentid>
    <comment_count>5</comment_count>
      <attachid>363717</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-03-06 13:14:45 -0800</bug_when>
    <thetext>Comment on attachment 363717
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: webgpu/texture-triangle-strip.html

It would be nice if you could provide a description of what this patch actually does.

&gt; Source/WebCore/Modules/webgpu/GPUBindGroupLayoutBinding.h:31
&gt; +#include &lt;wtf/OptionSet.h&gt;

I don&apos;t think you need this.

&gt; Source/WebCore/Modules/webgpu/GPUBindGroupLayoutBinding.h:46
&gt; +    GPUShaderStageFlags visibility;

Shouldn&apos;t this be GPUShaderStageBit::Flags?

&gt; Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.cpp:61
&gt; +        if (!colorAttachment.attachment
&gt; +            || !colorAttachment.attachment-&gt;texture()
&gt; +            || !colorAttachment.attachment-&gt;texture()-&gt;isOutputAttachment()) {

This could all go on one line.

&gt; Source/WebCore/Modules/webgpu/WebGPUTexture.cpp:68
&gt; +    if (!m_texture)
&gt; +        LOG(WebGPU, &quot;GPUTexture::destroy(): Invalid operation!&quot;);
&gt; +    else
&gt; +        destroyImpl();

Not sure this will compile in Release configuration.

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:80
&gt; +    endBlitEncoding();

I would prefer to put the conditional in here, and an ASSERT in the endBlitEncoding.

if (m_blitEncoder)
  endBlitEncoding();

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:91
&gt; +    if (!m_blitEncoder)
&gt; +        return;

And here would just be ASSERT(m_blitEncoder), unless you call it from other places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513227</commentid>
    <comment_count>6</comment_count>
      <attachid>363717</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-06 15:16:41 -0800</bug_when>
    <thetext>Comment on attachment 363717
Patch

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

&gt;&gt; Source/WebCore/Modules/webgpu/GPUBindGroupLayoutBinding.h:46
&gt;&gt; +    GPUShaderStageFlags visibility;
&gt; 
&gt; Shouldn&apos;t this be GPUShaderStageBit::Flags?

The IDL calls for an unsigned int and bindings doesn&apos;t know how to convert, even though it&apos;s not a strongly-typed enum.

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:91
&gt;&gt; +        return;
&gt; 
&gt; And here would just be ASSERT(m_blitEncoder), unless you call it from other places.

Correct, this function is also called by GPUQueue::submit(), which doesn&apos;t need to know whether the command buffer actually has an active blit encoder or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513229</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-06 15:19:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/48654801&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513230</commentid>
    <comment_count>8</comment_count>
      <attachid>363800</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-06 15:20:20 -0800</bug_when>
    <thetext>Created attachment 363800
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513243</commentid>
    <comment_count>9</comment_count>
      <attachid>363800</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-06 15:58:05 -0800</bug_when>
    <thetext>Comment on attachment 363800
Patch for landing

Clearing flags on attachment: 363800

Committed r242575: &lt;https://trac.webkit.org/changeset/242575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513244</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-06 15:58:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363717</attachid>
            <date>2019-03-05 17:55:25 -0800</date>
            <delta_ts>2019-03-06 15:20:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195347-20190305175524.patch</filename>
            <type>text/plain</type>
            <size>128493</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFhNDFiYzdiZjQ0MjFk
ZjBmMWZhYTE1Njg5MzdlYzcxNWU0NmI1Mi4uODBiMjJlY2YxODM0MzY3Mjg3MzRhNTMyYjA1NGNm
YzcxMWUyZWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNCBAQAorMjAxOS0wMy0wNSAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBHUFVU
ZXh0dXJlIGFuZCBHUFVUZXh0dXJlVmlldyB1cGRhdGVzLCBhbmQgcmVsYXRlZCBHUFVCaW5kR3Jv
dXAgdXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOjphc0dQVUJpbmRHcm91cERlc2NyaXB0
b3IgY29uc3QpOiBVcGRhdGUgdG8gdmFsaWRhdGUgR1BVVGV4dHVyZVZpZXcgcmVzb3VyY2VzLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOiBNb3ZlIGlu
c3RlYWQgb2YgY29weSB0aGUgY29udmVydGVkIHZpZXcgb2JqZWN0cy4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tbWFuZEJ1ZmZlciBjb25zdCk6IE5v
IGxvbmdlciByZXR1cm5zIGNvbnN0IHNvIHVzZWQgcmVzb3VyY2VzIGNhbiBiZSByZWdpc3RlcmVk
IG9uIGl0LgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dCBjb25zdCk6
IFJlbmFtZSBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGFuZCByZXBsYWNlIHVubmVj
ZXNzYXJ5IHJ2YWx1ZSByZWZlcmVuY2UuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmg6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5p
ZGw6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBh
c3NFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyOjpzZXRCaW5kR3JvdXAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OnN1Ym1pdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmFzR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3IgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZTo6fldlYkdQVVRl
eHR1cmUpOiBDbGVhbiB1cCBhbnkgcmVzb3VyY2VzIGNyZWF0ZWQgZm9yIGFuZCBmcm9tIHRoaXMg
V2ViR1BVVGV4dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6OmNyZWF0ZURl
ZmF1bHRUZXh0dXJlVmlldyk6IE5vdyByZXR1cm5zIGFuIGVtcHR5IG9iamVjdCBvdGhlciB0aGFu
IG51bGwgb24gZmFpbHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6OmRlc3Ry
b3kpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZTo6ZGVzdHJveUltcGwpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaDogS2VlcCBhIGxpc3Qgb2YgYW55
IHZpZXdzIGNyZWF0ZWQgZnJvbSB0aGlzIHRleHR1cmUuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVGV4dHVyZS5pZGw6IEVuYWJsZSBkZXN0cm95LgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRl
eHR1cmVWaWV3OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZVZpZXc6
OldlYkdQVVRleHR1cmVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmVWaWV3
OjpkZXN0cm95KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZVZpZXc6On5XZWJHUFVUZXh0dXJlVmll
dyk6IENsZWFuIHVwIGFueSByZXNvdXJjZXMgYmFja2luZyB0aGlzIFdlYkdQVVRleHR1cmVWaWV3
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZVZpZXc6OnRleHR1cmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZVZpZXc6OnRleHR1cmUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dXNlZFRleHR1cmVzIGNvbnN0KTogS2VlcCBh
IGxpc3Qgb2YgYWxsIHRleHR1cmUgcmVzb3VyY2VzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoaXMg
Y29tbWFuZCBidWZmZXIgb24gc3VibWl0LgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1
ZmZlcjo6aXNFbmNvZGluZ1Bhc3MgY29uc3QpOiBBZGRlZCB0byBwcmV2ZW50IG11bHRpcGxlIHBh
c3MgZW5jb2RlcnMgZnJvbSBiZWluZyBhY3RpdmUgb24gb25lIGNvbW1hbmQgYnVmZmVyLgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6c2V0SXNFbmNvZGluZ1Bhc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dXNlVGV4dHVyZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
UFVEZXZpY2U6OnRyeUNyZWF0ZUJpbmRHcm91cExheW91dCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBl
bGluZUxheW91dDo6R1BVUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlcjo6c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6
aXNSZWFkT25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjpkZXN0cm95
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5
b3V0TWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpNVExEYXRhVHlwZUZvckJpbmRpbmdUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFs
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6On5HUFVDb21tYW5kQnVmZmVyKTogRW5zdXJl
IGJsaXRFbmNvZGVyIGlzIGVuZGVkIGJlZm9yZSByZWxlYXNpbmcgaXQuCisgICAgICAgIChXZWJD
b3JlOjpHUFVDb21tYW5kQnVmZmVyOjplbmRCbGl0RW5jb2RpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZSk6IEVuc3VyZSB0ZXh0dXJl
cyBhcmUgbWFya2VkIGZvciB1c2FnZSBiZWZvcmUgc3VibWlzc2lvbiBvY2N1cnMuCisgICAgICAg
IChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVRGV2aWNlTWV0YWwubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVEZXZpY2U6OkdQVURldmljZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3Jl
OjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKTogTm93IHN1cHBvcnRz
IHRleHR1cmUgcmVzb3VyY2VzLgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIpOiBKdXN0IG1vdmVkLgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNU
ZXh0dXJlT25FbmNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUXVldWVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpzdWJtaXQpOiBF
bnN1cmVzIGRlc3Ryb3llZCBHUFVUZXh0dXJlcyBhcmUgbm90IHN1Ym1pdHRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp0cnlDcmVhdGUpOiBF
bnN1cmUgYW55IG90aGVyIGVuY29kZXJzIGFyZSBlbmRlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBh
Y3RpdmF0ZSBhIG5ldyBvbmUuCisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6cGxhdGZvcm1QYXNzRW5jb2RlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZW5kUGFzcyk6IEludmFsaWRhdGVzIHRoZSBNVExDb21tYW5kRW5jb2Rl
ciB1cG9uIHN1Y2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0UGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6
OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnVzZVJlc291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdt
ZW50QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU3dh
cENoYWluTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVTd2FwQ2hhaW46OmdldE5leHRU
ZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVGV4dHVy
ZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RvcmFnZU1vZGVGb3JQaXhlbEZvcm1hdEFu
ZFNhbXBsZUNvdW50KTogCisgICAgICAgICAgICAgICAgQWx3YXlzIGNyZWF0ZSBNVExTdG9yYWdl
TW9kZVByaXZhdGUgdGV4dHVyZXMgb24gbWFjT1MsIGFzIFdlYiBHUFUgZG9lc24ndCBwcm92aWRl
IENQVSBhY2Nlc3MgdG8gdGV4dHVyZXMgYW55d2F5LgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3Jl
YXRlTXRsVGV4dHVyZURlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OkdQVVRleHR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6dHJ5Q3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3KTog
UmVuYW1lZCBmcm9tIGNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldy4KKworICAgICAgICBVcGRhdGUg
ZmlsZXMgYW5kIHN5bWJvbHMgaW4gcHJvamVjdDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1dlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3Jv
dXBMYXlvdXRCaW5kaW5nLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5p
ZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9H
UFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZUJpdC5oLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0LmlkbDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0Lmlk
bC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oOgorCiAyMDE5LTAzLTA0ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYiBHUFVdIEJsaXR0aW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggNjAxMjRmYzFjZGUxN2E0MDk5OTFhYWYwNmFkZjdiMzM5ZDdiOGUzOC4u
ZjUyYmQ0ZjU2MDY0NDkyZWM4YTQ0N2E3MWU4NTZkYjlkMDRkNDQ0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2Miw2ICs0NjIsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIE1vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAogICAgIE1vZHVs
ZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9HUFVCaW5k
R3JvdXBMYXlvdXRCaW5kaW5nLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVyRGVzY3JpcHRv
ci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVCdWZmZXJVc2FnZS5pZGwKICAgICBNb2R1bGVz
L3dlYmdwdS9HUFVDb2xvci5pZGwKQEAgLTQ3MSw2ICs0NzMsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9HUFVPcmlnaW4zRC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQu
aWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU3RvcmVPcC5pZGwKICAgICBNb2R1bGVzL3dlYmdw
dS9HUFVUZXh0dXJlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJl
RGltZW5zaW9uLmlkbApAQCAtNDgyLDggKzQ4NSw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5pZGwKICAg
ICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5pZGwKLSAgICBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbAotICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BV
QnVmZmVyLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckJpbmRpbmcuaWRsCiAg
ICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKQEAgLTUwNCw3ICs1MDUs
NiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
TW9kdWxlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuaWRsCi0gICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVRleHR1cmUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCAyNTVhYjQ0ZDZlYjVkMjU0NGY0ZjU5NWE3NGM2NWE0M2RkN2Q4ZDYzLi5jNDIzMDA2MmMyM2Rh
Y2M4MDEyODVmN2NkZjQwYzA5M2U2MzI5OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMyMSw2ICszMjEsOCBAQCAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZl
ci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwK
KyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcu
aWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVyRGVzY3Jp
cHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlclVzYWdlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3IuaWRsCkBAIC0zMzAsNiAr
MzMyLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50M0QuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3AuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmdwdS9HUFVPcmlnaW4zRC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
d2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJncHUvR1BVU3RvcmVPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRl
eHR1cmVEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVGV4
dHVyZURpbWVuc2lvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggYjVmMDIyZGI2YmMzOGM4NzA1Mzc2ZDM1ZGMwYWUwZjUyNWY5
ZTFlNC4uYzY0YWEzY2Y1OTJhNDkzYjU5YmNkODI0MDExYTBlY2RkN2U3ZjFhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTU3Nyw2
ICs1NzcsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNGb250RmFjZVNldC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRm9udEZhY2VTZXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNHQ09ic2VydmF0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHQ09ic2VydmF0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNHUFVCdWZmZXJEZXNjcmlwdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQnVmZmVyVXNhZ2UuY3BwCkBAIC01OTUs
NiArNTk5LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHUFVPcmlnaW4zRC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR1BVT3JpZ2luM0QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVNo
YWRlclN0YWdlQml0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJpdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVN0b3JlT3AuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVN0b3JlT3AuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA2Njg3OTI2NTkyODRkYTc0Y2Q2OTlkOTg2
YTUwNTFmNjQ0YmQ2YWEuLjhlNjVkNDdlN2ExYzI5YTRmOGY0NDEyMWMzMDg1OWFlNTU0Mzc1NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzczLDYgKzM3Myw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRv
cldlYkRyaXZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93
V2ViR1BVLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvci5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0QmluZGlu
Zy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVy
RGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVy
VXNhZ2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbXBhcmVGdW5j
dGlvbi5pZGwgXApAQCAtMzgxLDYgKzM4Myw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJncHUvR1BVT3JpZ2luM0QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L0dQVVN0b3JlT3AuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L0dQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9HUFVUZXh0dXJlRGltZW5zaW9uLmlkbCBcCkBAIC0zOTIsOCArMzk1LDYgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3Vw
QmluZGluZy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdy
b3VwRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlckJpbmRpbmcuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIFwKQEAgLTQxNCw3ICs0MTUsNiBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
aGFkZXJNb2R1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVNoYWRlclN0YWdlQml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVTd2FwQ2hhaW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRl
eHR1cmVWaWV3LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTI2ZmJmYTYyM2VjMWNhMzAzODk4Yjg3ZjAxMzgwMmExZGRk
N2NmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQkdQVSkKLQotI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBXZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yID0gR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJp
bmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91
dEJpbmRpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzNiMGMwYTc2OGVkOWM2NWQ4MzI2OTczODM5N2IxM2Ix
NTY1ZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVTaGFk
ZXJTdGFnZUJpdC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZyB7CisgICAgZW51bSBj
bGFzcyBCaW5kaW5nVHlwZSB7CisgICAgICAgIFVuaWZvcm1CdWZmZXIsCisgICAgICAgIER5bmFt
aWNVbmlmb3JtQnVmZmVyLAorICAgICAgICBTYW1wbGVyLAorICAgICAgICBTYW1wbGVkVGV4dHVy
ZSwKKyAgICAgICAgU3RvcmFnZUJ1ZmZlciwKKyAgICAgICAgRHluYW1pY1N0b3JhZ2VCdWZmZXIK
KyAgICB9OworCisgICAgdW5zaWduZWQgbG9uZyBiaW5kaW5nOworICAgIEdQVVNoYWRlclN0YWdl
RmxhZ3MgdmlzaWJpbGl0eTsKKyAgICBCaW5kaW5nVHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0QmluZGlu
Zy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzI2MWJlNmVkYThkOWI3ZGFkYWM5NGVjZjQ2NGMxZTAzZjdhZTE3
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJp
bmRHcm91cExheW91dEJpbmRpbmcuaWRsCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8g
aHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRj
aC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMyIEdQVVNo
YWRlclN0YWdlRmxhZ3M7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJHUFUKK10gZW51bSBHUFVCaW5kaW5nVHlwZSB7CisgICAgInVuaWZvcm0t
YnVmZmVyIiwKKyAgICAiZHluYW1pYy11bmlmb3JtLWJ1ZmZlciIsCisgICAgInNhbXBsZXIiLAor
ICAgICJzYW1wbGVkLXRleHR1cmUiLAorICAgICJzdG9yYWdlLWJ1ZmZlciIsCisgICAgImR5bmFt
aWMtc3RvcmFnZS1idWZmZXIiCisgICAgLy8gVE9ETyBvdGhlciBiaW5kaW5nIHR5cGVzCit9Owor
CitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BV
CitdIGRpY3Rpb25hcnkgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZyB7CisgICAgdTMyIGJpbmRp
bmc7CisgICAgR1BVU2hhZGVyU3RhZ2VGbGFncyB2aXNpYmlsaXR5OworICAgIEdQVUJpbmRpbmdU
eXBlIHR5cGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MzZiZmU0
ZDcyZWQ5YTRiNTQwNzBhNTdhM2IwOTMzOTVjZGQ2MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCIKKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IgeworICAgIFZlY3RvcjxHUFVCaW5kR3JvdXBMYXlvdXRC
aW5kaW5nPiBiaW5kaW5nczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU0Y2IyN2U3NDI4NTMxY2M3MzI0MmQzMmYxNGZmNGM3MDhiMGQ5NGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK1sK
KyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10g
ZGljdGlvbmFyeSBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIHsKKyAgICBzZXF1ZW5jZTxH
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nPiBiaW5kaW5nczsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Njlk
MzhiMTJlMTE4YzA1MTE1MjZlNTg0ZGY5ODVlMTdmMWU1M2E5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBHUFVTaGFkZXJTdGFnZUZsYWdzID0gdW5zaWduZWQ7CisKK2NsYXNzIEdQVVNoYWRl
clN0YWdlQml0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVU2hhZGVyU3RhZ2VCaXQ+IHsKK3B1Ymxp
YzoKKyAgICBlbnVtIEZsYWdzIDogR1BVU2hhZGVyU3RhZ2VGbGFncyB7CisgICAgICAgIE5vbmUg
PSAwLAorICAgICAgICBWZXJ0ZXggPSAxIDw8IDAsCisgICAgICAgIEZyYWdtZW50ID0gMSA8PCAx
LAorICAgICAgICBDb21wdXRlID0gMSA8PCAyLAorICAgIH07Cit9OworCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTNiYmEzZDZlMjE1YzBiODlhYmMzNTU5Y2E3MWVjZWE3MWZiMGI4OAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0LmlkbApA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWdu
ZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRG9Ob3RDaGVj
a0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBHUFVTaGFkZXJTdGFnZUJpdCB7CisgICAgY29u
c3QgdTMyIE5PTkUgPSAwOworICAgIGNvbnN0IHUzMiBWRVJURVggPSAxOworICAgIGNvbnN0IHUz
MiBGUkFHTUVOVCA9IDI7CisgICAgY29uc3QgdTMyIENPTVBVVEUgPSA0OworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5jcHAKaW5kZXggZTBlN2RiZTczMTM4NTBmMzBmNmNlZjQ1ODZmMzE5MGY0YjJkZGM0
Ny4uMjYzODFiZjcxNTg2M2U0MDMxNzk1ZjQ2NmU0M2UyZjZmMTBhOGY3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5jcHAKQEAgLTg4LDI2ICs4OCwzMiBAQCBPcHRpb25hbDxHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yPiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOjphc0dQVUJpbmRHcm91cERlc2NyaQog
CiAgICAgICAgIGNvbnN0IGF1dG8gbGF5b3V0QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKIAot
ICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZVZpc2l0b3IgPSBXVEY6Om1ha2VWaXNpdG9yKFtd
IChSZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+IHZpZXcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdS
ZXNvdXJjZT4gewotICAgICAgICAgICAgLy8gRklYTUU6IFZhbGlkYXRlIGJpbmRpbmcgdHlwZSB3
aXRoIHRoZSB0ZXh0dXJlJ3MgdXNhZ2UgZmxhZ3MuCisgICAgICAgIGF1dG8gYmluZGluZ1Jlc291
cmNlVmlzaXRvciA9IFdURjo6bWFrZVZpc2l0b3IoW10oY29uc3QgUmVmUHRyPFdlYkdQVVRleHR1
cmVWaWV3PiYgdmlldykgLT4gT3B0aW9uYWw8R1BVQmluZGluZ1Jlc291cmNlPiB7CiAgICAgICAg
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZpZXctPnRleHR1cmUoKTsKKyAgICAgICAgICAgIGlm
ICghdGV4dHVyZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGluZ1Jlc291cmNlPih2aWV3LT50ZXh0
dXJlKCkpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJj
ZT4odGV4dHVyZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgfSwgWyZsYXlvdXRCaW5kaW5n
LCBmdW5jdGlvbk5hbWVdIChXZWJHUFVCdWZmZXJCaW5kaW5nIGJ1ZmZlckJpbmRpbmcpIC0+IE9w
dGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewotICAgICAgICAgICAgaWYgKCFidWZmZXJCaW5k
aW5nLmJ1ZmZlciB8fCAhYnVmZmVyQmluZGluZy5idWZmZXItPmJ1ZmZlcigpKSB7Ci0gICAgICAg
ICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIEdQVUJ1ZmZlckJpbmRpbmcgZm9yIGJp
bmRpbmcgJWx1IGluIEdQVUJpbmRHcm91cEJpbmRpbmdzISIsIGZ1bmN0aW9uTmFtZSwgbGF5b3V0
QmluZGluZy5iaW5kaW5nKTsKKyAgICAgICAgICAgIGlmICghYnVmZmVyQmluZGluZy5idWZmZXIp
CisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgICAgIGF1dG8g
YnVmZmVyID0gYnVmZmVyQmluZGluZy5idWZmZXItPmJ1ZmZlcigpOworICAgICAgICAgICAgaWYg
KCFidWZmZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJCaW5kaW5nVHlwZShidWZmZXJC
aW5kaW5nLmJ1ZmZlci0+YnVmZmVyKCkuZ2V0KCksIGxheW91dEJpbmRpbmcsIGZ1bmN0aW9uTmFt
ZSkpCisKKyAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJCaW5kaW5nVHlwZShidWZmZXIu
Z2V0KCksIGxheW91dEJpbmRpbmcsIGZ1bmN0aW9uTmFtZSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJp
bmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7IGJ1ZmZlckJpbmRpbmcuYnVmZmVyLT5i
dWZmZXIoKS5yZWxlYXNlTm9uTnVsbCgpLCBidWZmZXJCaW5kaW5nLm9mZnNldCwgYnVmZmVyQmlu
ZGluZy5zaXplIH0pOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdS
ZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7IGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBidWZm
ZXJCaW5kaW5nLm9mZnNldCwgYnVmZmVyQmluZGluZy5zaXplIH0pOwogICAgICAgICB9KTsKIAog
ICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZSA9IFdURjo6dmlzaXQoYmluZGluZ1Jlc291cmNl
VmlzaXRvciwgYmluZGluZy5yZXNvdXJjZSk7Ci0gICAgICAgIGlmICghYmluZGluZ1Jlc291cmNl
KQorICAgICAgICBpZiAoIWJpbmRpbmdSZXNvdXJjZSkgeworICAgICAgICAgICAgTE9HKFdlYkdQ
VSwgIiVzOiBJbnZhbGlkIHJlc291cmNlIGZvciBiaW5kaW5nICVsdSEiLCBmdW5jdGlvbk5hbWUs
IGxheW91dEJpbmRpbmcuYmluZGluZyk7CiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICB9CiAKICAgICAgICAgYmluZEdyb3VwQmluZGluZ3MudW5jaGVja2VkQXBwZW5k
KEdQVUJpbmRHcm91cEJpbmRpbmcgeyBiaW5kaW5nLmJpbmRpbmcsIFdURk1vdmUoYmluZGluZ1Jl
c291cmNlLnZhbHVlKCkpIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2YmEyZjk1YjlhNTczOTFkYzNjOWUwMjVmMjA4NzUz
Y2ZmY2ZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5n
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi0jaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0
QmluZGluZy5oIgotI2luY2x1ZGUgIldlYkdQVVNoYWRlclN0YWdlQml0LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotdXNpbmcgV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZyA9IEdQVUJp
bmRHcm91cExheW91dEJpbmRpbmc7Ci11c2luZyBXZWJHUFVCaW5kaW5nVHlwZSA9IEdQVUJpbmRH
cm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOwotdXNpbmcgV2ViR1BVU2hhZGVyU3RhZ2VG
bGFncyA9IEdQVVNoYWRlclN0YWdlRmxhZ3M7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWJmMDViMmQ0MGZkODk4YzRhMDA2YWIzMzk3MDAy
ZGFkZDI1YmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRp
bmcuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0vLyBodHRw
czovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndl
YmlkbAotCi10eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwotdHlwZWRlZiB1MzIgV2ViR1BVU2hh
ZGVyU3RhZ2VGbGFnczsKLQotWwotICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKLSAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQotXSBlbnVtIFdlYkdQVUJpbmRpbmdUeXBlIHsKLSAgICAidW5pZm9y
bUJ1ZmZlciIsCi0gICAgInNhbXBsZXIiLAotICAgICJzYW1wbGVkVGV4dHVyZSIsCi0gICAgInN0
b3JhZ2VCdWZmZXIiCi0gICAgLy8gVE9ETyBvdGhlciBiaW5kaW5nIHR5cGVzCi19OwotCi1bCi0g
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCi1dIGRp
Y3Rpb25hcnkgV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZyB7Ci0gICAgdTMyIGJpbmRpbmc7
Ci0gICAgV2ViR1BVU2hhZGVyU3RhZ2VGbGFncyB2aXNpYmlsaXR5OwotICAgIFdlYkdQVUJpbmRp
bmdUeXBlIHR5cGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzg5YWI5ZjY2OGE1MjhjYzBjMzVhM2Q5YzA4Mzll
ZjA1NDdlNDRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0vLyBo
dHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNo
LndlYmlkbAotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VCR1BVLAotICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViR1BVCi1dIGRpY3Rpb25hcnkgV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciB7
Ci0gICAgc2VxdWVuY2U8V2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZz4gYmluZGluZ3M7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5k
QnVmZmVyLmNwcAppbmRleCBmMmYyOWU2Y2MwNTczY2YzOGU2MWZmNzA0YThmOTMzMDRiYjFmZmFh
Li43MTRjZDUwZWNmOTM5ZTNlZTM5YWJmOGZhMzU1OWIyYTVjZDk2MjFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weUJ1ZmZlclRv
VGV4dHVyZShjb25zdCBXZWJHUFVCdWZmZXJDb3B5VmlldyYgc3JjQnVmCiAKICAgICAvLyBGSVhN
RTogQWRkIFdlYiBHUFUgdmFsaWRhdGlvbi4KIAotICAgIG1fY29tbWFuZEJ1ZmZlci0+Y29weUJ1
ZmZlclRvVGV4dHVyZSgqZ3B1QnVmZmVyVmlldywgKmdwdVRleHR1cmVWaWV3LCBzaXplKTsKKyAg
ICBtX2NvbW1hbmRCdWZmZXItPmNvcHlCdWZmZXJUb1RleHR1cmUoV1RGTW92ZSgqZ3B1QnVmZmVy
VmlldyksIFdURk1vdmUoKmdwdVRleHR1cmVWaWV3KSwgc2l6ZSk7CiB9CiAKIHZvaWQgV2ViR1BV
Q29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBXZWJHUFVUZXh0dXJlQ29w
eVZpZXcmIHNyY1RleHR1cmUsIGNvbnN0IFdlYkdQVUJ1ZmZlckNvcHlWaWV3JiBkc3RCdWZmZXIs
IGNvbnN0IEdQVUV4dGVudDNEJiBzaXplKQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgV2ViR1BV
Q29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBXZWJHUFVUZXh0dXJlQ29w
eVZpZXcmIHNyY1RlCiAKICAgICAvLyBGSVhNRTogQWRkIFdlYiBHUFUgdmFsaWRhdGlvbi4KIAot
ICAgIG1fY29tbWFuZEJ1ZmZlci0+Y29weVRleHR1cmVUb0J1ZmZlcigqZ3B1VGV4dHVyZVZpZXcs
ICpncHVCdWZmZXJWaWV3LCBzaXplKTsKKyAgICBtX2NvbW1hbmRCdWZmZXItPmNvcHlUZXh0dXJl
VG9CdWZmZXIoV1RGTW92ZSgqZ3B1VGV4dHVyZVZpZXcpLCBXVEZNb3ZlKCpncHVCdWZmZXJWaWV3
KSwgc2l6ZSk7CiB9CiAKIHZvaWQgV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb1Rl
eHR1cmUoY29uc3QgV2ViR1BVVGV4dHVyZUNvcHlWaWV3JiBzcmMsIGNvbnN0IFdlYkdQVVRleHR1
cmVDb3B5VmlldyYgZHN0LCBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKQEAgLTEzMCw3ICsxMzAs
NyBAQCB2b2lkIFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKGNvbnN0
IFdlYkdQVVRleHR1cmVDb3B5VmlldyYgc3JjLAogCiAgICAgLy8gRklYTUU6IEFkZCBXZWIgR1BV
IHZhbGlkYXRpb24uCiAKLSAgICBtX2NvbW1hbmRCdWZmZXItPmNvcHlUZXh0dXJlVG9UZXh0dXJl
KCpncHVTcmNWaWV3LCAqZ3B1RHN0Vmlldywgc2l6ZSk7CisgICAgbV9jb21tYW5kQnVmZmVyLT5j
b3B5VGV4dHVyZVRvVGV4dHVyZShXVEZNb3ZlKCpncHVTcmNWaWV3KSwgV1RGTW92ZSgqZ3B1RHN0
VmlldyksIHNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggYTA5
YjdmMWU5N2E4OWRhNjQ3NDliZjYwYjZjNWNmN2QzNzJmNjA3My4uMGE3MWFmMzg0MWNkY2VhNzVi
ZjgzMTkxMTI4NTJlMTg2YzQ0ZjYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBX
ZWJHUFVDb21tYW5kQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQ29tbWFuZEJ1ZmZl
cj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gY3JlYXRl
KFJlZjxHUFVDb21tYW5kQnVmZmVyPiYmKTsKIAotICAgIGNvbnN0IEdQVUNvbW1hbmRCdWZmZXIm
IGNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRCdWZmZXIuZ2V0KCk7IH0K
KyAgICBHUFVDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9j
b21tYW5kQnVmZmVyLmdldCgpOyB9CiAKICAgICBSZWZQdHI8V2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXI+IGJlZ2luUmVuZGVyUGFzcyhXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciYmKTsKICAgICB2
b2lkIGNvcHlCdWZmZXJUb0J1ZmZlcihjb25zdCBXZWJHUFVCdWZmZXImLCB1bnNpZ25lZCBsb25n
IHNyY09mZnNldCwgY29uc3QgV2ViR1BVQnVmZmVyJiwgdW5zaWduZWQgbG9uZyBkc3RPZmZzZXQs
IHVuc2lnbmVkIGxvbmcgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmNwcAppbmRleCBkODMyZWRhZWY3M2I3Mzc4NGE5NDI1NWQ3YmM0MWVjMTcy
NTE3YzU5Li40NDVlOTNhMWE5Y2NmOGVjMDRhNDM3YmJiN2JjYWMwYzVlNTBjMDhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKICNpbmNsdWRlICJHUFVCaW5kR3Jv
dXBCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIgorI2luY2x1
ZGUgIkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVCdWZmZXJC
aW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVyRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQ
VUNvbW1hbmRCdWZmZXIuaCIKQEAgLTQxLDcgKzQyLDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3Vw
QmluZGluZy5oIgotI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCIKICNpbmNsdWRlICJXZWJHUFVCdWZmZXIuaCIK
ICNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCkBAIC04NCw5ICs4NCw5IEBAIFJlZjxX
ZWJHUFVUZXh0dXJlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURlc2Ny
aXB0b3ImJiBkZXNjcmlwdG9yCiAgICAgcmV0dXJuIFdlYkdQVVRleHR1cmU6OmNyZWF0ZShXVEZN
b3ZlKHRleHR1cmUpKTsKIH0KIAotUmVmPFdlYkdQVUJpbmRHcm91cExheW91dD4gV2ViR1BVRGV2
aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciYmIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBXZWJHUFVE
ZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIGF1dG8gbGF5b3V0ID0gbV9kZXZpY2Ut
PnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIHsg
ZGVzY3JpcHRvci5iaW5kaW5ncyB9KTsKKyAgICBhdXRvIGxheW91dCA9IG1fZGV2aWNlLT50cnlD
cmVhdGVCaW5kR3JvdXBMYXlvdXQoZGVzY3JpcHRvcik7CiAgICAgcmV0dXJuIFdlYkdQVUJpbmRH
cm91cExheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggMDU5ODI1YWM1N2RkMDBkYTYw
YmJhMmQzNTIxZDg2YTE1ZTA5Mjc2OS4uOTk1Y2NiOWYzYTY1YjY2MTc1NGFkNDc1MTcwOTEyY2Zl
MmM1NjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkdQVURldmljZS5oIgogI2luY2x1ZGUg
IldlYkdQVUFkYXB0ZXIuaCIKLSNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUXVldWUuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
QEAgLTQ4LDYgKzQ3LDcgQEAgY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiBjbGFzcyBXZWJH
UFVTaGFkZXJNb2R1bGU7CiBjbGFzcyBXZWJHUFVUZXh0dXJlOwogCitzdHJ1Y3QgR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVCdWZmZXJEZXNjcmlwdG9yOwogc3RydWN0
IEdQVVRleHR1cmVEZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I7
CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8V2ViR1BVQnVmZmVyPiBjcmVhdGVC
dWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKICAgICBSZWY8V2ViR1BVVGV4dHVy
ZT4gY3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmKSBjb25zdDsKIAotICAgIFJl
ZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OworICAgIFJlZjxXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGVQaXBl
bGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJikgY29uc3Q7CiAgICAg
UmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2Ny
aXB0b3ImJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaWRsCmluZGV4IGZmYjU3NDgyMmQ0ZTQ3NGQ5ZTczMjE5NTE1ODExY2E0Yzg1ZGMx
NTAuLmM4ZGFmYzdlNWVlNWEzNjk1YWU5NTdkNDA0MTY4OWEyMTA4MDYzZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbApAQCAtMzQsNyArMzQs
NyBAQAogICAgIFdlYkdQVUJ1ZmZlciBjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKICAgICBXZWJHUFVUZXh0dXJlIGNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKLSAgICBXZWJHUFVCaW5kR3JvdXBMYXlvdXQgY3JlYXRl
QmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgV2ViR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0ZUJpbmRHcm91cExheW91dChHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIFdlYkdQVVBpcGVsaW5l
TGF5b3V0IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVCaW5kR3JvdXAgY3JlYXRlQmluZEdyb3VwKFdlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKQEAgLTUwLDcgKzUwLDYgQEAKICAg
ICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRlbnNpb25zOwogICAg
IC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOwogCi0gICAgLy8gV2Vi
R1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJlKFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0
b3IpOwogICAgIC8vIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxlcihXZWJHUFVTYW1wbGVyRGVz
Y3JpcHRvciBkZXNjcmlwdG9yKTsKIAogICAgIC8vIFdlYkdQVUNvbXB1dGVQaXBlbGluZSBjcmVh
dGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlw
dG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAppbmRleCBmMDVkMTFhMDNhNDA0YjFi
NzU0MjdiNmJlNmQwOGIxMjYwZmI5ZDgxLi5jYjM1NTJlNjJiZDkwNDkxNjFhZTEyNmYyZjk1ZjFj
MmY2MTI0ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFuZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAK
LXZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25l
ZCBsb25nIGluZGV4LCBXZWJHUFVCaW5kR3JvdXAmIGJpbmRHcm91cCkgY29uc3QKK3ZvaWQgV2Vi
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBpbmRleCwg
V2ViR1BVQmluZEdyb3VwJiBiaW5kR3JvdXApIGNvbnN0CiB7CiAgICAgLy8gTWF4aW11bSBudW1i
ZXIgb2YgYmluZCBncm91cHMgc3VwcG9ydGVkIGluIFdlYiBHUFUuCiAgICAgaWYgKGluZGV4ID49
IDQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmluZGV4IGU0YmIzNWEzM2NkOGQ0ZjVhMzlj
NWVlMGIzZmU1YTczY2I1N2IzY2MuLmY2ZjliYjlhMzIyYzVhZDdlYmNkOTc5YTlmNjQ0MzhiNzk3
MTJiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIoKSA9IGRlZmF1
bHQ7CiAKICAgICBSZWY8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gZW5kUGFzcygpOwotICAgIHZvaWQg
c2V0QmluZEdyb3VwKHVuc2lnbmVkIGxvbmcsIFdlYkdQVUJpbmRHcm91cCYpIGNvbnN0OworICAg
IHZvaWQgc2V0QmluZEdyb3VwKHVuc2lnbmVkLCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAg
ICB2b2lkIHNldFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1
ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcApp
bmRleCBiMzc2NmQ0N2ZmNWVmYmI1ZWJkM2RmOGY3NDgyNjkwNmFiZDA3NTE5Li5iNzVkZDc1MmQ5
MWVhNThkNTEwMzI3YmNkNTMzNzQ5ZDhiYzdjNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFdlYkdQVVF1ZXVl
OjpXZWJHUFVRdWV1ZShSZWY8R1BVUXVldWU+JiYgcXVldWUpCiAKIHZvaWQgV2ViR1BVUXVldWU6
OnN1Ym1pdChWZWN0b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+PiYmIGJ1ZmZlcnMpCiB7
Ci0gICAgYXV0byBncHVCdWZmZXJzID0gYnVmZmVycy5tYXAoW10gKGNvbnN0IGF1dG8mIGJ1ZmZl
cikgLT4gUmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+IHsKKyAgICBhdXRvIGdwdUJ1ZmZlcnMg
PSBidWZmZXJzLm1hcChbXSAoYXV0byYgYnVmZmVyKSAtPiBSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4g
ewogICAgICAgICByZXR1cm4gYnVmZmVyLT5jb21tYW5kQnVmZmVyKCk7CiAgICAgfSk7CiAgICAg
bV9xdWV1ZS0+c3VibWl0KFdURk1vdmUoZ3B1QnVmZmVycykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
Y3BwCmluZGV4IGJhZDE0Y2E5ODI1NTI2OGJiNWEwOTA4M2IwMjIzODc1MTlhZTNlN2QuLjQ0NmRk
NjMzNzY0NjFkZDVkMWVmNDI0MWI5NDZkMjFlZWVjOWFlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRv
ci5jcHAKQEAgLTU2LDIxICs1NiwyNSBAQCBPcHRpb25hbDxHUFVSZW5kZXJQYXNzRGVzY3JpcHRv
cj4gV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmFzR1BVUmVuZGVyUGFzc0RlcwogICAgIFZl
Y3RvcjxHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcj4gZ3B1Q29sb3JBdHRh
Y2htZW50czsKIAogICAgIGZvciAoY29uc3QgYXV0byYgY29sb3JBdHRhY2htZW50IDogY29sb3JB
dHRhY2htZW50cykgewotICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50IHx8
ICFjb2xvckF0dGFjaG1lbnQuYXR0YWNobWVudC0+dGV4dHVyZSgpLT5pc091dHB1dEF0dGFjaG1l
bnQoKSkgeworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50CisgICAgICAg
ICAgICB8fCAhY29sb3JBdHRhY2htZW50LmF0dGFjaG1lbnQtPnRleHR1cmUoKQorICAgICAgICAg
ICAgfHwgIWNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50LT50ZXh0dXJlKCktPmlzT3V0cHV0QXR0
YWNobWVudCgpKSB7CiAgICAgICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3I6IEludmFsaWQgYXR0YWNobWVudCBpbiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvciEiKTsKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgICAg
IH0KLSAgICAgICAgZ3B1Q29sb3JBdHRhY2htZW50cy5hcHBlbmQoR1BVUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudERlc2NyaXB0b3IgeyBjb2xvckF0dGFjaG1lbnQuYXR0YWNobWVudC0+dGV4dHVy
ZSgpLCBjb2xvckF0dGFjaG1lbnQgfSk7CisgICAgICAgIGdwdUNvbG9yQXR0YWNobWVudHMuYXBw
ZW5kKEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yIHsgY29sb3JBdHRhY2ht
ZW50LmF0dGFjaG1lbnQtPnRleHR1cmUoKS5yZWxlYXNlTm9uTnVsbCgpLCBjb2xvckF0dGFjaG1l
bnQgfSk7CiAgICAgfQogCiAgICAgT3B0aW9uYWw8R1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0
dGFjaG1lbnREZXNjcmlwdG9yPiBncHVEZXB0aEF0dGFjaG1lbnQ7CiAKICAgICBpZiAoZGVwdGhT
dGVuY2lsQXR0YWNobWVudCkgewotICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQt
PmF0dGFjaG1lbnQgfHwgIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQtPmF0dGFjaG1lbnQtPnRleHR1
cmUoKS0+aXNPdXRwdXRBdHRhY2htZW50KCkpIHsKKyAgICAgICAgaWYgKCFkZXB0aFN0ZW5jaWxB
dHRhY2htZW50LT5hdHRhY2htZW50CisgICAgICAgICAgICB8fCAhZGVwdGhTdGVuY2lsQXR0YWNo
bWVudC0+YXR0YWNobWVudC0+dGV4dHVyZSgpCisgICAgICAgICAgICB8fCAhZGVwdGhTdGVuY2ls
QXR0YWNobWVudC0+YXR0YWNobWVudC0+dGV4dHVyZSgpLT5pc091dHB1dEF0dGFjaG1lbnQoKSkg
ewogICAgICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOiBJbnZh
bGlkIGF0dGFjaG1lbnQgaW4gR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnREZXNj
cmlwdG9yISIpOwogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQot
ICAgICAgICBncHVEZXB0aEF0dGFjaG1lbnQgPSBHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0
YWNobWVudERlc2NyaXB0b3IgeyBkZXB0aFN0ZW5jaWxBdHRhY2htZW50LT5hdHRhY2htZW50LT50
ZXh0dXJlKCksICpkZXB0aFN0ZW5jaWxBdHRhY2htZW50IH07CisgICAgICAgIGdwdURlcHRoQXR0
YWNobWVudCA9IEdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50RGVzY3JpcHRvciB7
IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQtPmF0dGFjaG1lbnQtPnRleHR1cmUoKS5yZWxlYXNlTm9u
TnVsbCgpLCAqZGVwdGhTdGVuY2lsQXR0YWNobWVudCB9OwogICAgIH0KIAogICAgIHJldHVybiBH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvciB7IFdURk1vdmUoZ3B1Q29sb3JBdHRhY2htZW50cyksIFdU
Rk1vdmUoZ3B1RGVwdGhBdHRhY2htZW50KSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg0MTMyMGFmOTBlNTc5ZmZiZmM3OTQ1OTk0YzM2NjgwZTI0MDQxNWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJH
UFUpCi0KLSNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotdXNpbmcgV2ViR1BVU2hhZGVyU3RhZ2VCaXQgPSBHUFVTaGFkZXJTdGFn
ZUJpdDsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRl
clN0YWdlQml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRl
clN0YWdlQml0LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVlYTdhNDg4NWVk
Y2M0ZTllMzIxZTAzMWE2ZmQ4ZGNmYWMyNWRlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
aGFkZXJTdGFnZUJpdC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2ln
bi9za2V0Y2gud2ViaWRsCi0KLXR5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Ci0KLVsKLSAgICBD
b25kaXRpb25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgV2ViR1BVU2hhZGVyU3RhZ2VCaXQg
ewotICAgIGNvbnN0IHUzMiBOT05FID0gMDsKLSAgICBjb25zdCB1MzIgVkVSVEVYID0gMTsKLSAg
ICBjb25zdCB1MzIgRlJBR01FTlQgPSAyOwotICAgIGNvbnN0IHUzMiBDT01QVVRFID0gNDsKLX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCmlu
ZGV4IGQ1ZDNiZTZjYTkzNjM1ZWRiMjI3NDkxM2E3Y2MxYThjNDc0M2FhYmQuLjg4NzA0M2M3ZTky
MjJlMzQ3Nzc3MWI5ODUyMzdmYmRhMGZiODQyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCkBAIC00MiwxMSArNDIsNDAgQEAgV2ViR1BV
VGV4dHVyZTo6V2ViR1BVVGV4dHVyZShSZWZQdHI8R1BVVGV4dHVyZT4mJiB0ZXh0dXJlKQogewog
fQogCi1SZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+IFdlYkdQVVRleHR1cmU6OmNyZWF0ZURlZmF1
bHRUZXh0dXJlVmlldygpCitXZWJHUFVUZXh0dXJlOjp+V2ViR1BVVGV4dHVyZSgpCiB7Ci0gICAg
aWYgKGF1dG8gZ3B1VGV4dHVyZSA9IG1fdGV4dHVyZS0+Y3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3
KCkpCi0gICAgICAgIHJldHVybiBXZWJHUFVUZXh0dXJlVmlldzo6Y3JlYXRlKGdwdVRleHR1cmUu
cmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKG1fdGV4dHVy
ZSkKKyAgICAgICAgZGVzdHJveUltcGwoKTsKK30KKworUmVmPFdlYkdQVVRleHR1cmVWaWV3PiBX
ZWJHUFVUZXh0dXJlOjpjcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKQoreworICAgIGlmICghbV90
ZXh0dXJlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVUZXh0dXJlOjpjcmVhdGVEZWZhdWx0
VGV4dHVyZVZpZXcoKTogSW52YWxpZCBvcGVyYXRpb24hIik7CisgICAgICAgIHJldHVybiBXZWJH
UFVUZXh0dXJlVmlldzo6Y3JlYXRlKG51bGxwdHIpOworICAgIH0KKworICAgIGF1dG8gdmlldyA9
IFdlYkdQVVRleHR1cmVWaWV3OjpjcmVhdGUobV90ZXh0dXJlLT50cnlDcmVhdGVEZWZhdWx0VGV4
dHVyZVZpZXcoKSk7CisgICAgbV90ZXh0dXJlVmlld3MuYXBwZW5kKHZpZXcuY29weVJlZigpKTsK
KyAgICByZXR1cm4gdmlldzsKK30KKwordm9pZCBXZWJHUFVUZXh0dXJlOjpkZXN0cm95KCkKK3sK
KyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVRleHR1cmU6OmRl
c3Ryb3koKTogSW52YWxpZCBvcGVyYXRpb24hIik7CisgICAgZWxzZQorICAgICAgICBkZXN0cm95
SW1wbCgpOworfQorCit2b2lkIFdlYkdQVVRleHR1cmU6OmRlc3Ryb3lJbXBsKCkKK3sKKyAgICBm
b3IgKGF1dG8mIHZpZXcgOiBtX3RleHR1cmVWaWV3cykKKyAgICAgICAgdmlldy0+ZGVzdHJveSgp
OworICAgIG1fdGV4dHVyZVZpZXdzLmNsZWFyKCk7CisKKyAgICBtX3RleHR1cmUtPmRlc3Ryb3ko
KTsKKyAgICBtX3RleHR1cmUgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmgKaW5kZXgg
NjJmZWQ5OGUwOGM5N2ZmMjBlN2MwNjZlYjJkOTQ3ZWMzOTAxZjMzNC4uNzgwYmRkMDcxY2IwOTBh
NmM4YTQ0OTllNWMxNmQ3OGI0NzVkZDM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmUuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDE1ICs0MCwyMCBAQCBjbGFz
cyBXZWJHUFVUZXh0dXJlVmlldzsKIGNsYXNzIFdlYkdQVVRleHR1cmUgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJHUFVUZXh0dXJlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVUZXh0
dXJlPiBjcmVhdGUoUmVmUHRyPEdQVVRleHR1cmU+JiYpOworICAgIH5XZWJHUFVUZXh0dXJlKCk7
CiAKICAgICBSZWZQdHI8R1BVVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4
dHVyZTsgfQogCi0gICAgUmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiBjcmVhdGVEZWZhdWx0VGV4
dHVyZVZpZXcoKTsKKyAgICBSZWY8V2ViR1BVVGV4dHVyZVZpZXc+IGNyZWF0ZURlZmF1bHRUZXh0
dXJlVmlldygpOworICAgIHZvaWQgZGVzdHJveSgpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFdlYkdQVVRleHR1cmUoUmVmUHRyPEdQVVRleHR1cmU+JiYpOwogCisgICAgdm9pZCBkZXN0cm95
SW1wbCgpOworCiAgICAgUmVmUHRyPEdQVVRleHR1cmU+IG1fdGV4dHVyZTsKKyAgICBWZWN0b3I8
UmVmPFdlYkdQVVRleHR1cmVWaWV3Pj4gbV90ZXh0dXJlVmlld3M7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVUZXh0dXJlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRl
eHR1cmUuaWRsCmluZGV4IDdhZGU4MmE2NzE3MTJlMTJkZDBkMWIxMjE2OWUxYmI2NWI3NzllODUu
LjQ0OTU3MmNkYTk5ZWYzYjYzY2M2N2FhZDYyMDhlZWZmNzUxNTgyMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsCkBAIC0zMCw5ICszMCw4
IEBACiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgV2ViR1BVVGV4
dHVyZSB7CiAgICAgV2ViR1BVVGV4dHVyZVZpZXcgY3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3KCk7
Ci0vKiBOb3QgWWV0IEltcGxlbWVudGVkOgotICAgIFdlYkdQVVRleHR1cmVWaWV3IGNyZWF0ZVRl
eHR1cmVWaWV3KFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvciBkZXNjKTsKLQogICAgIHZvaWQg
ZGVzdHJveSgpOwotKi8KKworICAgIC8vIE5vdCBZZXQgSW1wbGVtZW50ZWQ6CisgICAgLy8gV2Vi
R1BVVGV4dHVyZVZpZXcgY3JlYXRlVGV4dHVyZVZpZXcoV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlw
dG9yIGRlc2MpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVRleHR1cmVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVRleHR1cmVWaWV3LmNwcAppbmRleCA3MjY1OTQ1YTIzZTljMTBkMjZhNzAzZGZlNDQyZDBm
NDdhYjBmMDA4Li44MzYyMTZhMGVhMGI5NWQwMGQ3MjRlOWE4MGQ2NzI5ZDFhMGRlMDYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcu
Y3BwCkBAIC0yOCwxOCArMjgsMjkgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRl
ICJHUFVUZXh0dXJlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdQVVRleHR1
cmVWaWV3PiBXZWJHUFVUZXh0dXJlVmlldzo6Y3JlYXRlKFJlZjxHUFVUZXh0dXJlPiYmIHZpZXcp
CitSZWY8V2ViR1BVVGV4dHVyZVZpZXc+IFdlYkdQVVRleHR1cmVWaWV3OjpjcmVhdGUoUmVmUHRy
PEdQVVRleHR1cmU+JiYgdmlldykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVU
ZXh0dXJlVmlldyhXVEZNb3ZlKHZpZXcpKSk7CiB9CiAKLVdlYkdQVVRleHR1cmVWaWV3OjpXZWJH
UFVUZXh0dXJlVmlldyhSZWY8R1BVVGV4dHVyZT4mJiB2aWV3KQorV2ViR1BVVGV4dHVyZVZpZXc6
OldlYkdQVVRleHR1cmVWaWV3KFJlZlB0cjxHUFVUZXh0dXJlPiYmIHZpZXcpCiAgICAgOiBtX3Rl
eHR1cmUoV1RGTW92ZSh2aWV3KSkKIHsKIH0KIAordm9pZCBXZWJHUFVUZXh0dXJlVmlldzo6ZGVz
dHJveSgpCit7CisgICAgaWYgKCFtX3RleHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
dGV4dHVyZS0+ZGVzdHJveSgpOworICAgIG1fdGV4dHVyZSA9IG51bGxwdHI7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaAppbmRleCAxMjNm
NDQwY2FmYmE5MTI4NzQ4MmQzMTQ1ZWMxZDY5MzE3ZWNkMzY2Li4xMGExOTE5NjdhNjI5ZWNjMTU5
NjQxNmIwMjRjNWJlMThjOTNjNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmgKQEAgLTI3LDIxICsyNywyNSBAQAogCiAjaWYgRU5B
QkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBHUFVUZXh0dXJlOworCiBjbGFzcyBXZWJHUFVUZXh0dXJlVmlldyA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdQVVRleHR1cmVWaWV3PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHUFVUZXh0dXJlVmlldz4gY3JlYXRlKFJlZjxHUFVUZXh0dXJlPiYmKTsKKyAgICBzdGF0aWMg
UmVmPFdlYkdQVVRleHR1cmVWaWV3PiBjcmVhdGUoUmVmUHRyPEdQVVRleHR1cmU+JiYpOworICAg
IH5XZWJHUFVUZXh0dXJlVmlldygpIHsgZGVzdHJveSgpOyB9CisKKyAgICBSZWZQdHI8R1BVVGV4
dHVyZT4gdGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQogCi0gICAgUmVmPEdQ
VVRleHR1cmU+IHRleHR1cmUoKSB7IHJldHVybiBtX3RleHR1cmUuY29weVJlZigpOyB9CisgICAg
dm9pZCBkZXN0cm95KCk7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkdQVVRleHR1cmVWaWV3
KFJlZjxHUFVUZXh0dXJlPiYmKTsKKyAgICBleHBsaWNpdCBXZWJHUFVUZXh0dXJlVmlldyhSZWZQ
dHI8R1BVVGV4dHVyZT4mJik7CiAgICAgCi0gICAgUmVmPEdQVVRleHR1cmU+IG1fdGV4dHVyZTsK
KyAgICBSZWZQdHI8R1BVVGV4dHVyZT4gbV90ZXh0dXJlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiNTc1ZTY4YmZmYmFiYWU5MjE2NTBkNGE5YmY2YzQy
NTMxYTFkNzk2Li45MGJkMDYwY2ZhOTk1YmExMTk2ZTFhNGNiOWM2MmU1MWUwNmNmZTUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMjc2OSw2ICsyNzY5LDggQEAgSlNGb2N1c0V2ZW50LmNwcAogSlNGb250
RmFjZS5jcHAKIEpTRm9udEZhY2VTZXQuY3BwCiBKU0dQVUNvbG9yLmNwcAorSlNHUFVCaW5kR3Jv
dXBMYXlvdXRCaW5kaW5nLmNwcAorSlNHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcAog
SlNHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVCdWZmZXJVc2FnZS5jcHAKIEpTR1BVQ29t
cGFyZUZ1bmN0aW9uLmNwcApAQCAtMjc3Nyw2ICsyNzc5LDcgQEAgSlNHUFVFeHRlbnQzRC5jcHAK
IEpTR1BVTG9hZE9wLmNwcAogSlNHUFVPcmlnaW4zRC5jcHAKIEpTR1BVUmVxdWVzdEFkYXB0ZXJP
cHRpb25zLmNwcAorSlNHUFVTaGFkZXJTdGFnZUJpdC5jcHAKIEpTR1BVU3RvcmVPcC5jcHAKIEpT
R1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwCiBKU0dQVVRleHR1cmVEaW1lbnNpb24uY3BwCkBAIC0z
MzE2LDggKzMzMTksNiBAQCBKU1dlYkdQVUJpbmRHcm91cC5jcHAKIEpTV2ViR1BVQmluZEdyb3Vw
QmluZGluZy5jcHAKIEpTV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKIEpTV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0LmNwcAotSlNXZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmNwcAotSlNX
ZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVCdWZmZXIuY3BwCiBK
U1dlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwCiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0z
MzM4LDcgKzMzMzksNiBAQCBKU1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAogSlNXZWJHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIEpTV2Vi
R1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAKLUpTV2ViR1BVU2hhZGVyU3RhZ2VCaXQuY3Bw
CiBKU1dlYkdQVVN3YXBDaGFpbi5jcHAKIEpTV2ViR1BVVGV4dHVyZS5jcHAKIEpTV2ViR1BVVGV4
dHVyZVZpZXcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOGYwOTA5YjAzZTAzNTNkNDA5ODBhZDE2NGRjYzYxOTJjNWJjNTJh
OS4uNDAyZGRjNGY3ODEyMDI0NTc1MzIxZmU5MDA4NjU0ZjQ0OTYyMTdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5Njgs
NyArMTM5NjgsNiBAQAogCQlEMDI2RjQ4OTIyMEE1Mzk4MDBBQzVGNDkgLyogR1BVVGV4dHVyZURp
bWVuc2lvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR1BVVGV4dHVyZURpbWVuc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwMjZGNDhCMjIwQTVCMEIwMEFDNUY0OSAvKiBHUFVUZXh0dXJlRGVz
Y3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMDI2RjQ4QzIyMEE1QkFEMDBBQzVGNDkgLyogR1BVVGV4dHVyZURl
c2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVVGV4dHVyZURlc2NyaXB0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDAyQjgzRUQyMUM4Mzk3QTAwRjg1NDczIC8qIFdlYkdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJDMjY5MjIx
ODE0MTZEMDBEODE4RTQgLyogR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDJGODU0RTIxNjgyQTRBMDA4OEVFNzQgLyogV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYk1ldGFsQ29tbWFuZFF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDAyRjg1NTAyMTY4MkE1NjAwODhFRTc0IC8qIFdlYk1ldGFsQ29tcHV0ZUNvbW1hbmRFbmNvZGVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJNZXRhbENvbXB1dGVDb21tYW5kRW5jb2Rl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA2OCw4ICsxNDA2Nyw2IEBA
CiAJCUQwNkVGNTUzMjIwQkEyNkEwMDE4NzI0RSAvKiBHUFVVdGlsc01ldGFsLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gR1BVVXRpbHNNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDA3REVBQjcwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNlcnRMaXN0Q29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwN0RFQUI4MEEzNjU1NEEwMENBMzBG
OCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zZXJ0TGlzdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA4
M0Q5ODQyMUM0ODA1MDAwOEU4RUZGIC8qIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlEMDgzRDk4NjIxQzQ4MTNFMDA4RThFRkYgLyogV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmg7IHBhdGggPSBNb2R1bGVzL3N0cmVhbXMvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUQwODQw
MzNBMjIxQ0JGNTQwMDAwNzIwNSAvKiBHUFVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R1BVQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NDAzM0QyMjFF
MTg2NDAwMDA3MjA1IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwODQzQTRBMjBGRUJFM0QwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHQz
RE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDEwMCwxMCArMTQwOTcsNiBAQAogCQlEMEIw
NTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWF0ZUxpbmtD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCOEJCMDEyMUM0NkU3
ODAwMEM3NjgxIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlEMEI4QkIwMzIxQzQ3MTFEMDAwQzc2ODEgLyogV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRDBCOEJCMDQyMUM0NzExRDAwMEM3NjgxIC8qIFdlYkdQVVNoYWRlclN0YWdlQml0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJTdGFnZUJpdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUQwQjhCQjA1MjFDNDcyNTYwMDBDNzY4MSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlv
dXRCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBCOEJCMDYyMUM0NzI1NjAwMEM3Njgx
IC8qIFdlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91
cExheW91dEJpbmRpbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEJDNTQ0
ODE0NDNBQzRBMDBFMTA1REEgLyogQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQkQ0RjVBMTQwODg1MEYwMDY4MzlCNiAvKiBEaWN0YXRp
b25Db21tYW5kSU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkNvbW1hbmRJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEJE
NEY1QjE0MDg4NTBGMDA2ODM5QjYgLyogRGljdGF0aW9uQ29tbWFuZElPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25Db21tYW5kSU9TLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDEzOCw2ICsxNDEzMSw5IEBACiAJCUQwQ0FBRTlFMjE2ODI0
QTgwMDFDOTFDNyAvKiBXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViTWV0YWxDb21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDBDQ0E5NDkyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdQVU9yaWdpbjNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQ0NBOTRB
MjIyOTlGOTcwMDY5NzlCNiAvKiBHUFVPcmlnaW4zRC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR1BVT3JpZ2luM0QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ2OUM5QzIyMkUwMEMyMDAzMjkyN0Ug
LyogR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
RDY5QzlEMjIyRTAwQzIwMDMyOTI3RSAvKiBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDBENjlDOUYyMjJFMDE1RTAwMzI5MjdFIC8qIEdQVUJpbmRHcm91cExh
eW91dEJpbmRpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEQ4NjQ4NzIxQjY0Q0FBMDAzQzk4M0MgLyogR1BV
QnVmZmVyRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCdWZmZXJEZXNjcmlwdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRDg2NDhDMjFCNzA2NzYwMDNDOTgzQyAv
KiBXZWJHUFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRDg2NDhEMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVC
dWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTU2LDYgKzE0MTUyLDggQEAKIAkJRDBEQTBCRTQyMTc5
MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVT
d2FwQ2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEQTBCRTUyMTc5MzBF
MjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMERBMEJFNjIx
NzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENoYWluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTd2FwQ2hh
aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMERFOEZCODIyMkUwOUUyMDA4
ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVU2hhZGVyU3Rh
Z2VCaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBERThGQjkyMjJFMDlFMjAw
ODgyNTUwIC8qIEdQVVNoYWRlclN0YWdlQml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVTaGFkZXJTdGFnZUJpdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRUFDRjc2MjE5MzcyMjgwMDBGQTc1
QyAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbW1hbmRC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBFQUNGNzcyMTkzNzIyODAw
MEZBNzVDIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRUFD
Rjc4MjE5MzcyMjgwMDBGQTc1QyAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
UFVDb21tYW5kQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDYy
LDggKzE4NDYwLDYgQEAKIAkJCQlEMEJFMTA0RTIxRTY5NUUyMDBFNDJBODkgLyogR1BVQmluZEdy
b3VwQmluZGluZy5oICovLAogCQkJCUQwQkUxMDUxMjFFNkE3MEUwMEU0MkE4OSAvKiBHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDAyNDU0RDAyMUM0QTQxQzAwQjczNjI4IC8qIEdQ
VUJpbmRHcm91cExheW91dC5oICovLAotCQkJCUQwQjhCQjAxMjFDNDZFNzgwMDBDNzY4MSAvKiBH
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmggKi8sCi0JCQkJRDA4M0Q5ODQyMUM0ODA1MDAwOEU4
RUZGIC8qIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCAqLywKIAkJCQlEMDg0MDMzQTIy
MUNCRjU0MDAwMDcyMDUgLyogR1BVQnVmZmVyLmNwcCAqLywKIAkJCQlEMEQ4NjQ5MjIxQjc2MEYy
MDAzQzk4M0MgLyogR1BVQnVmZmVyLmggKi8sCiAJCQkJRDBCRTEwNEEyMUU2ODcyRjAwRTQyQTg5
IC8qIEdQVUJ1ZmZlckJpbmRpbmcuaCAqLywKQEAgLTI2MDY4LDYgKzI2MDY0LDEwIEBACiAJCQkJ
RDAwRjU5NDEyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5jcHAgKi8sCiAJCQkJ
RDAwRjU5NDAyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5oICovLAogCQkJCUQw
MEY1OTQyMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaWRsICovLAorCQkJCUQw
QjhCQjAxMjFDNDZFNzgwMDBDNzY4MSAvKiBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmggKi8s
CisJCQkJRDBENjlDOUYyMjJFMDE1RTAwMzI5MjdFIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRp
bmcuaWRsICovLAorCQkJCUQwRDY5QzlDMjIyRTAwQzIwMDMyOTI3RSAvKiBHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmggKi8sCisJCQkJRDBENjlDOUQyMjJFMDBDMjAwMzI5MjdFIC8qIEdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwMUI4MTE5MjIxMzVFQjkw
MDYyN0I2QyAvKiBHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbCAqLywKIAkJCQlEMDFCODExQzIyMTM2
MjczMDA2MjdCNkMgLyogR1BVQnVmZmVyVXNhZ2UuaWRsICovLAogCQkJCUQwMUI4MTEyMjIxMjVB
RkMwMDYyN0I2QyAvKiBHUFVDb2xvci5pZGwgKi8sCkBAIC0yNjA3OCw2ICsyNjA3OCw4IEBACiAJ
CQkJRDBDQ0E5NDkyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmggKi8sCiAJCQkJRDBD
Q0E5NEEyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmlkbCAqLywKIAkJCQlEMDJDMjY5
MjIxODE0MTZEMDBEODE4RTQgLyogR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmlkbCAqLywKKwkJ
CQlEMERFOEZCODIyMkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLywKKwkJ
CQlEMERFOEZCOTIyMkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaWRsICovLAog
CQkJCUQwOEFBMDMxMjIwRDBDRTYwMDU4QzUwMiAvKiBHUFVTdG9yZU9wLmlkbCAqLywKIAkJCQlE
MDI2RjQ4QjIyMEE1QjBCMDBBQzVGNDkgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsICovLAog
CQkJCUQwMjZGNDg5MjIwQTUzOTgwMEFDNUY0OSAvKiBHUFVUZXh0dXJlRGltZW5zaW9uLmlkbCAq
LywKQEAgLTI2MTAwLDEwICsyNjEwMiw2IEBACiAJCQkJRDAwMzI4N0EyMUM4NjQ1QjAwNjIyQUE2
IC8qIFdlYkdQVUJpbmRHcm91cExheW91dC5jcHAgKi8sCiAJCQkJRDAwMzI4NzkyMUM4NjQ1QjAw
NjIyQUE2IC8qIFdlYkdQVUJpbmRHcm91cExheW91dC5oICovLAogCQkJCUQwMDMyODdCMjFDODY0
NUIwMDYyMkFBNiAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaWRsICovLAotCQkJCUQwQjhCQjA1
MjFDNDcyNTYwMDBDNzY4MSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmggKi8sCi0J
CQkJRDBCOEJCMDYyMUM0NzI1NjAwMEM3NjgxIC8qIFdlYkdQVUJpbmRHcm91cExheW91dEJpbmRp
bmcuaWRsICovLAotCQkJCUQwODNEOTg2MjFDNDgxM0UwMDhFOEVGRiAvKiBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmggKi8sCi0JCQkJRDAyQjgzRUQyMUM4Mzk3QTAwRjg1NDczIC8q
IFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwRDg2NDhEMjFC
NzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuY3BwICovLAogCQkJCUQwRDg2NDhDMjFCNzA2
NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaCAqLywKIAkJCQlEMEQ4NjQ4RTIxQjcwNjc2MDAz
Qzk4M0MgLyogV2ViR1BVQnVmZmVyLmlkbCAqLywKQEAgLTI2MTU1LDggKzI2MTUzLDYgQEAKIAkJ
CQlEMDYxNUZDRTIxN0ZFNUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLywK
IAkJCQlEMDYwRDg4NzIxODI2OTcwMDAzMzkzMTggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvci5oICovLAogCQkJCUQwNjBEODg0MjE4MjVENUYwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmlkbCAqLywKLQkJCQlEMEI4QkIwMzIxQzQ3MTFEMDAwQzc2ODEgLyog
V2ViR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLywKLQkJCQlEMEI4QkIwNDIxQzQ3MTFEMDAwQzc2ODEg
LyogV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaWRsICovLAogCQkJCUQwREEwQkU1MjE3OTMwRTIwMDdG
RTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uY3BwICovLAogCQkJCUQwREEwQkU0MjE3OTMwRTIwMDdG
RTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaCAqLywKIAkJCQlEMERBMEJFNjIxNzkzMEUyMDA3RkUy
QUMgLyogV2ViR1BVU3dhcENoYWluLmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA3YmUyNDNlZTBiMzdmNDRiNDFjMTk1
ZTQ5ZjU4ZDRlMTY1MzQ5OTZhLi5kOTVkZmJkM2VhZWQ4YWMwZTAxZDk1ZjJhNDc1YmU3Nzg4NGQ3
OWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCkBAIC04Miw2ICs4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhH
YW1lcGFkQnV0dG9uKSBcCiAgICAgbWFjcm8oR2FtZXBhZEV2ZW50KSBcCiAgICAgbWFjcm8oR1BV
QnVmZmVyVXNhZ2UpIFwKKyAgICBtYWNybyhHUFVTaGFkZXJTdGFnZUJpdCkgXAogICAgIG1hY3Jv
KEdQVVRleHR1cmVVc2FnZSkgXAogICAgIG1hY3JvKEhUTUxBdHRhY2htZW50RWxlbWVudCkgXAog
ICAgIG1hY3JvKEhUTUxBdWRpb0VsZW1lbnQpIFwKQEAgLTIwOCw3ICsyMDksNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIpIFwKICAgICBt
YWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZSkgXAogICAgIG1hY3JvKFdlYkdQVVNoYWRlck1vZHVs
ZSkgXAotICAgIG1hY3JvKFdlYkdQVVNoYWRlclN0YWdlQml0KSBcCiAgICAgbWFjcm8oV2ViR1BV
U3dhcENoYWluKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZSkgXAogICAgIG1hY3JvKFdlYkdQ
VVRleHR1cmVWaWV3KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXggOWQ2MDlhYzk5Y2E1NDMwNTgy
NjMzYzFjNGZjOTkwZTJkMDVkNjE3Ny4uYmE4NjZhOWVkMmI2ZjcyMTc3N2U4MTY4ZDQ4ZDhmNDI0
MWQwZGU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBHUFVE
ZXZpY2U7CiAKIGNsYXNzIEdQVUJpbmRHcm91cExheW91dCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQ
VUJpbmRHcm91cExheW91dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8R1BVQmluZEdy
b3VwTGF5b3V0PiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5
Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3ImKTsKIAogICAgIHVzaW5nIEJpbmRpbmdzTWFwVHlwZSA9IEhhc2hNYXA8dW5zaWduZWQgbG9u
ZyBsb25nLCBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLCBXVEY6OkludEhhc2g8dW5zaWduZWQg
bG9uZyBsb25nPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZCBs
b25nIGxvbmc+PjsKICAgICBjb25zdCBCaW5kaW5nc01hcFR5cGUmIGJpbmRpbmdzTWFwKCkgY29u
c3QgeyByZXR1cm4gbV9iaW5kaW5nc01hcDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5n
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMTBkOWJkNDgzNDVlOGI5NTEyNmQz
NWIzMGZlMzNjNzIxNjZlNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91
cExheW91dEJpbmRpbmcuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJHUFUpCi0KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIEdQVVNoYWRlclN0
YWdlRmxhZ3MgPSB1bnNpZ25lZCBsb25nOwotCi1jbGFzcyBHUFVTaGFkZXJTdGFnZUJpdCA6IHB1
YmxpYyBSZWZDb3VudGVkPEdQVVNoYWRlclN0YWdlQml0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IEdQVVNoYWRlclN0YWdlRmxhZ3MgTk9ORSA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
VVNoYWRlclN0YWdlRmxhZ3MgVkVSVEVYID0gMTsKLSAgICBzdGF0aWMgY29uc3QgR1BVU2hhZGVy
U3RhZ2VGbGFncyBGUkFHTUVOVCA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IEdQVVNoYWRlclN0YWdl
RmxhZ3MgQ09NUFVURSA9IDQ7Ci19OwotCi1zdHJ1Y3QgR1BVQmluZEdyb3VwTGF5b3V0QmluZGlu
ZyB7Ci0gICAgZW51bSBjbGFzcyBCaW5kaW5nVHlwZSB7Ci0gICAgICAgIFVuaWZvcm1CdWZmZXIs
Ci0gICAgICAgIFNhbXBsZXIsCi0gICAgICAgIFNhbXBsZWRUZXh0dXJlLAotICAgICAgICBTdG9y
YWdlQnVmZmVyCi0gICAgfTsKLQotICAgIHVuc2lnbmVkIGxvbmcgYmluZGluZzsKLSAgICBHUFVT
aGFkZXJTdGFnZUZsYWdzIHZpc2liaWxpdHk7Ci0gICAgQmluZGluZ1R5cGUgdHlwZTsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjM0NzY0NTVjNDQ4NDM5YTJkNWYwYTE1OWI5NjhkZTk3NjU2ODcwYi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
RU5BQkxFKFdFQkdQVSkKLQotI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCIK
LQotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1
Y3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciB7Ci0gICAgVmVjdG9yPEdQVUJpbmRHcm91
cExheW91dEJpbmRpbmc+IGJpbmRpbmdzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggYTU4MjVjMTg4
ZTQ1NGE1NWUyMDUxYjk1ZmEzNDRlODliZjhkMWI3YS4uM2E5MjhiYjBhZGUxNmZkMWJlMzY2MmRj
MTA1Y2E1YWJiYmZhNDllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC04NSwyMyArODUsMzIgQEAgcHVi
bGljOgogCiAgICAgUGxhdGZvcm1Db21tYW5kQnVmZmVyKiBwbGF0Zm9ybUNvbW1hbmRCdWZmZXIo
KSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlci5nZXQoKTsgfQogICAgIGNv
bnN0IFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4mIHVzZWRCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4g
bV91c2VkQnVmZmVyczsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+JiB1c2Vk
VGV4dHVyZXMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRUZXh0dXJlczsgfQorICAgIGJvb2wgaXNF
bmNvZGluZ1Bhc3MoKSBjb25zdCB7IHJldHVybiBtX2lzRW5jb2RpbmdQYXNzOyB9CisKKyAgICB2
b2lkIHNldElzRW5jb2RpbmdQYXNzKGJvb2wgaXNFbmNvZGluZykgeyBtX2lzRW5jb2RpbmdQYXNz
ID0gaXNFbmNvZGluZzsgfQogI2lmIFVTRShNRVRBTCkKLSAgICBNVExCbGl0Q29tbWFuZEVuY29k
ZXIgKmJsaXRFbmNvZGVyKCkgY29uc3Q7CisgICAgfkdQVUNvbW1hbmRCdWZmZXIoKTsKKyAgICB2
b2lkIGVuZEJsaXRFbmNvZGluZygpOwogI2VuZGlmCiAKICAgICB2b2lkIGNvcHlCdWZmZXJUb0J1
ZmZlcihSZWY8R1BVQnVmZmVyPiYmLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwgUmVmPEdQVUJ1
ZmZlcj4mJiwgdW5zaWduZWQgbG9uZyBkc3RPZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci0g
ICAgdm9pZCBjb3B5QnVmZmVyVG9UZXh0dXJlKGNvbnN0IEdQVUJ1ZmZlckNvcHlWaWV3JiwgY29u
c3QgR1BVVGV4dHVyZUNvcHlWaWV3JiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKLSAgICB2b2lkIGNv
cHlUZXh0dXJlVG9CdWZmZXIoY29uc3QgR1BVVGV4dHVyZUNvcHlWaWV3JiwgY29uc3QgR1BVQnVm
ZmVyQ29weVZpZXcmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwotICAgIHZvaWQgY29weVRleHR1cmVU
b1RleHR1cmUoY29uc3QgR1BVVGV4dHVyZUNvcHlWaWV3JiwgY29uc3QgR1BVVGV4dHVyZUNvcHlW
aWV3JiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKKyAgICB2b2lkIGNvcHlCdWZmZXJUb1RleHR1cmUo
R1BVQnVmZmVyQ29weVZpZXcmJiwgR1BVVGV4dHVyZUNvcHlWaWV3JiYsIGNvbnN0IEdQVUV4dGVu
dDNEJik7CisgICAgdm9pZCBjb3B5VGV4dHVyZVRvQnVmZmVyKEdQVVRleHR1cmVDb3B5VmlldyYm
LCBHUFVCdWZmZXJDb3B5VmlldyYmLCBjb25zdCBHUFVFeHRlbnQzRCYpOworICAgIHZvaWQgY29w
eVRleHR1cmVUb1RleHR1cmUoR1BVVGV4dHVyZUNvcHlWaWV3JiYsIEdQVVRleHR1cmVDb3B5Vmll
dyYmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwogCiAgICAgdm9pZCB1c2VCdWZmZXIoUmVmPEdQVUJ1
ZmZlcj4mJiBidWZmZXIpIHsgbV91c2VkQnVmZmVycy5hcHBlbmQoV1RGTW92ZShidWZmZXIpKTsg
fQorICAgIHZvaWQgdXNlVGV4dHVyZShSZWY8R1BVVGV4dHVyZT4mJiB0ZXh0dXJlKSB7IG1fdXNl
ZFRleHR1cmVzLmFwcGVuZChXVEZNb3ZlKHRleHR1cmUpKTsgfQogCiBwcml2YXRlOgogICAgIEdQ
VUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHImJik7CiAKICAgICBQ
bGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciBtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcjsKICAg
ICBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+IG1fdXNlZEJ1ZmZlcnM7CisgICAgVmVjdG9yPFJlZjxH
UFVUZXh0dXJlPj4gbV91c2VkVGV4dHVyZXM7CisgICAgYm9vbCBtX2lzRW5jb2RpbmdQYXNzID0g
ZmFsc2U7CiAjaWYgVVNFKE1FVEFMKQorICAgIE1UTEJsaXRDb21tYW5kRW5jb2RlciAqYmxpdEVu
Y29kZXIoKSBjb25zdDsKICAgICBtdXRhYmxlIFJldGFpblB0cjxNVExCbGl0Q29tbWFuZEVuY29k
ZXI+IG1fYmxpdEVuY29kZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDUxMmNkNTVhY2ZkODYxM2I2
ZjE1ZGI1ZDE0NTdhZWJlZTEwNzE1YTAuLjdlYzE2NWNmMDhlNTlhNTZiZWE5YTNmMTlkOTZkN2Q5
MzAxZTdkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCkBAIC01NCw5ICs1NCw5IEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVE
ZXZpY2U6OnRyeUNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9y
CiAgICAgcmV0dXJuIEdQVVRleHR1cmU6OnRyeUNyZWF0ZSgqdGhpcywgV1RGTW92ZShkZXNjcmlw
dG9yKSk7CiB9CiAKLVJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVURldmljZTo6dHJ5Q3Jl
YXRlQmluZEdyb3VwTGF5b3V0KEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlw
dG9yKSBjb25zdAorUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVRGV2aWNlOjp0cnlDcmVh
dGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVh
dGUoKnRoaXMsIFdURk1vdmUoZGVzY3JpcHRvcikpOworICAgIHJldHVybiBHUFVCaW5kR3JvdXBM
YXlvdXQ6OnRyeUNyZWF0ZSgqdGhpcywgZGVzY3JpcHRvcik7CiB9CiAKIFJlZjxHUFVQaXBlbGlu
ZUxheW91dD4gR1BVRGV2aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dChHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IGYyMDY1MTdiNjMwZTg4Yjc5YmNl
NzExMTVmNDhhMTcyN2ZkYTgwOTIuLjQ3NjllMmQyMDMxZDY1YTk2Yjk5NzRiMWExMzM5NDg0N2Nj
MTc3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxHUFVCdWZmZXI+
IHRyeUNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yJiYpOwogICAgIFJlZlB0cjxHUFVU
ZXh0dXJlPiB0cnlDcmVhdGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yJiYpIGNvbnN0Owog
Ci0gICAgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3JlYXRlQmluZEdyb3VwTGF5b3V0
KEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVUJp
bmRHcm91cExheW91dD4gdHJ5Q3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IGNy
ZWF0ZVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmKSBjb25zdDsK
IAogICAgIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZVNoYWRlck1vZHVsZShHUFVTaGFk
ZXJNb2R1bGVEZXNjcmlwdG9yJiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHAKaW5kZXggMjI5
MzBiNGM4ZjNmMmM3NGU5MjljYjUxYzBkYWIzODg2NmNlYmMyOS4uOTVkZmJhMTIxZWYwODQ4Nzlh
ZDZlYWY2OTliZWY5YTdkZDU2M2JhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCkBAIC0zNiw3ICsz
Niw3IEBAIFJlZjxHUFVQaXBlbGluZUxheW91dD4gR1BVUGlwZWxpbmVMYXlvdXQ6OmNyZWF0ZShH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJiBkCiB9CiAKIEdQVVBpcGVsaW5lTGF5b3V0OjpH
UFVQaXBlbGluZUxheW91dChHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9y
KQotICAgIDogbV9iaW5kR3JvdXBMYXlvdXRzKGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykK
KyAgICA6IG1fYmluZEdyb3VwTGF5b3V0cyhXVEZNb3ZlKGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5
b3V0cykpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCmluZGV4
IDlkMjZkNTkzMTI4N2Q2MGUzOTYxNGZkZTY5MWQ2YzBlYWQ1ODUxNmQuLjViMDlmYTRhMDUyNjMz
NGYwZjdkM2Y3ZDlkZTg5MTFlZWQ5Y2NhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIoUmVmPEdQVUNv
bW1hbmRCdWZmZXI+JiYgY29tbWFuZEJ1ZmZlcikKICAgICA6IG1fY29tbWFuZEJ1ZmZlcihXVEZN
b3ZlKGNvbW1hbmRCdWZmZXIpKQogeworICAgIG1fY29tbWFuZEJ1ZmZlci0+c2V0SXNFbmNvZGlu
Z1Bhc3ModHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmgKaW5kZXggODk0YzQ3NTBkMWY4NjRlMzI5Mzk3YmVjNGQ0NDAyODk2
OTI0NmY0Ni4uZDg5ZTYyNDYzNjc4ZWZkNmEwZjljOTA3MGJmZjg2NzI4OTRlZTZlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTQ5LDI4ICs0OSwyOCBAQCBjbGFzcyBH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyPgogcHVibGljOgogICAgIHZpcnR1YWwgfkdQVVByb2dyYW1tYWJsZVBh
c3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBlbmRQYXNzKCk7Ci0gICAgdm9pZCBz
ZXRCaW5kR3JvdXAodW5zaWduZWQgbG9uZywgR1BVQmluZEdyb3VwJik7CisgICAgdmlydHVhbCB2
b2lkIGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJpbmRHcm91cCh1bnNpZ25lZCwgR1BVQmluZEdy
b3VwJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBpcGVsaW5lKFJlZjxHUFVSZW5kZXJQaXBlbGlu
ZT4mJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIo
UmVmPEdQVUNvbW1hbmRCdWZmZXI+JiYpOwotICAgIHZpcnR1YWwgUGxhdGZvcm1Qcm9ncmFtbWFi
bGVQYXNzRW5jb2RlciogcGxhdGZvcm1QYXNzRW5jb2RlcigpIGNvbnN0ID0gMDsKIAogICAgIEdQ
VUNvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRC
dWZmZXIuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIqIHBsYXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CiAjaWYgVVNF
KE1FVEFMKQotICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVu
dEVuY29kZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQgbG9uZywgY29u
c3QgY2hhciogY29uc3QpOwotICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJjZShNVExSZXNvdXJj
ZSAqLCB1bnNpZ25lZCBsb25nKSA9IDA7CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzQnVmZmVyT25F
bmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmLCB1
bnNpZ25lZCwgY29uc3QgY2hhciogY29uc3QpOworICAgIHZvaWQgc2V0UmVzb3VyY2VBc1RleHR1
cmVPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJj
ZSYsIHVuc2lnbmVkLCBjb25zdCBjaGFyKiBjb25zdCk7CisgICAgdmlydHVhbCB2b2lkIHVzZVJl
c291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkKSA9IDA7CiAKICAgICAvLyBSZW5kZXIgY29t
bWFuZCBlbmNvZGVyIG1ldGhvZHMuCi0gICAgdmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihN
VExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNp
Z25lZCBsb25nKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZl
ciAqLCB1bnNpZ25lZCwgdW5zaWduZWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFnbWVu
dEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQsIHVuc2lnbmVkKSB7IH0KICNlbmRpZiAvLyBV
U0UoTUVUQUwpCiAKICAgICBSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4gbV9jb21tYW5kQnVmZmVyOwot
ICAgIGJvb2wgbV9pc0VuY29kaW5nIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUu
aAppbmRleCBhMzE0YjBhZjFjMjQ0MzdjMGRhZmRkNDRlMjFlNDk0NTIxNjQzN2NlLi5mOThlNTQ1
MDA5NmU4MjQyMWI5ZGI0YjgwYzgyMzc4MTRiY2EwNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJs
aWM6CiAKICAgICBQbGF0Zm9ybVF1ZXVlKiBwbGF0Zm9ybVF1ZXVlKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF0Zm9ybVF1ZXVlLmdldCgpOyB9CiAKLSAgICB2b2lkIHN1Ym1pdChWZWN0b3I8UmVmPGNv
bnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmKTsKKyAgICB2b2lkIHN1Ym1pdChWZWN0b3I8UmVmPEdQ
VUNvbW1hbmRCdWZmZXI+PiYmKTsKIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZv
aWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmlu
ZGV4IGI4NWUzMzM5ZmQ3N2ZhYzlkMmFhYjNmOTM4Mzk4ZWJhNDgxMjkwMzEuLjcyMTJhMjY5OWYw
MjExN2JiNWNjZWNmMTM1YWVhMzVlYzNmN2QyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBA
IC01MSw2ICs1MSw3IEBAIGNsYXNzIEdQVVJlbmRlclBhc3NFbmNvZGVyIDogcHVibGljIEdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVJl
bmRlclBhc3NFbmNvZGVyPiB0cnlDcmVhdGUoUmVmPEdQVUNvbW1hbmRCdWZmZXI+JiYsIEdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yJiYpOwogCisgICAgdm9pZCBlbmRQYXNzKCkgZmluYWw7CiAgICAg
dm9pZCBzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYpIGZpbmFsOwogCiAgICAg
dm9pZCBzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcsIFZlY3RvcjxSZWY8R1BVQnVmZmVy
Pj4mJiwgVmVjdG9yPHVuc2lnbmVkIGxvbmcgbG9uZz4mJik7CkBAIC02NCw5ICs2NSw5IEBAIHBy
aXZhdGU6CiAKICNpZiBVU0UoTUVUQUwpCiAgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIKLSAgICB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcgdXNh
Z2UpIGZpbmFsOwotICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25l
ZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkgZmluYWw7Ci0gICAgdm9pZCBzZXRG
cmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVk
IGxvbmcgaW5kZXgpIGZpbmFsOworICAgIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVzb3VyY2UgKiwg
dW5zaWduZWQgdXNhZ2UpIGZpbmFsOworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZl
ciAqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KSBmaW5hbDsKKyAgICB2b2lkIHNl
dEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGlu
ZGV4KSBmaW5hbDsKICNlbmRpZiAvLyBVU0UoTUVUQUwpCiAKICAgICBQbGF0Zm9ybVJlbmRlclBh
c3NFbmNvZGVyU21hcnRQdHIgbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmgKaW5kZXggOWEz
NjkzYWI0ZTQ3NzgwMjI4MzlkNzE4OTg1ZGNiYzkwYjhhYWM1NS4uZDExYmZjYzRhYjBjYzI0ZmE5
MWJkYzY4MjcyZDE0YWFmYzQwMDNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oCkBAIC01Myw4ICs1MywxMCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1RyYW5zZmVyU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV91c2FnZS5jb250YWlu
cyhHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzOjpUcmFuc2ZlclNvdXJjZSk7IH0KICAgICBib29sIGlz
VHJhbnNmZXJEZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNhZ2UuY29udGFpbnMoR1BV
VGV4dHVyZVVzYWdlOjpGbGFnczo6VHJhbnNmZXJEZXN0aW5hdGlvbik7IH0KICAgICBib29sIGlz
T3V0cHV0QXR0YWNobWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNhZ2UuY29udGFpbnMoR1BVVGV4
dHVyZVVzYWdlOjpGbGFnczo6T3V0cHV0QXR0YWNobWVudCk7IH0KKyAgICBib29sIGlzUmVhZE9u
bHkoKSBjb25zdCB7IHJldHVybiBtX3VzYWdlLmNvbnRhaW5zQW55KHsgR1BVVGV4dHVyZVVzYWdl
OjpGbGFnczo6VHJhbnNmZXJTb3VyY2UsIEdQVVRleHR1cmVVc2FnZTo6RmxhZ3M6OlNhbXBsZWQg
fSk7IH0KIAotICAgIFJlZlB0cjxHUFVUZXh0dXJlPiBjcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXco
KTsKKyAgICBSZWZQdHI8R1BVVGV4dHVyZT4gdHJ5Q3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3KCk7
CisgICAgdm9pZCBkZXN0cm95KCkgeyBtX3BsYXRmb3JtVGV4dHVyZSA9IG51bGxwdHI7IH0KIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBHUFVUZXh0dXJlKFBsYXRmb3JtVGV4dHVyZVNtYXJ0UHRy
JiYsIE9wdGlvblNldDxHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzPik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0
TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
QmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXggNDA4YmJiNTAwNDk2MGI3ZmNlNDg0OTgzNTUw
YWFkYjA0ZDliNTViOC4uYWQyMzk3Y2RjNjcxNTNmNjBjMWI2NWJjOGFkOTVjNzRkOWM2ZWU4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQpAQCAtNDUsNyArNDUs
OSBAQCBzdGF0aWMgTVRMRGF0YVR5cGUgTVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlwZShHUFVCaW5k
R3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVAogICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0
QmluZGluZzo6QmluZGluZ1R5cGU6OlNhbXBsZWRUZXh0dXJlOgogICAgICAgICByZXR1cm4gTVRM
RGF0YVR5cGVUZXh0dXJlOwogICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6Qmlu
ZGluZ1R5cGU6OlVuaWZvcm1CdWZmZXI6CisgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5k
aW5nOjpCaW5kaW5nVHlwZTo6RHluYW1pY1VuaWZvcm1CdWZmZXI6CiAgICAgY2FzZSBHUFVCaW5k
R3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U3RvcmFnZUJ1ZmZlcjoKKyAgICBjYXNl
IEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpEeW5hbWljU3RvcmFnZUJ1
ZmZlcjoKICAgICAgICAgcmV0dXJuIE1UTERhdGFUeXBlUG9pbnRlcjsKICAgICB9CiB9CkBAIC04
NSw3ICs4Nyw3IEBAIHN0YXRpYyBHUFVCaW5kR3JvdXBMYXlvdXQ6OkFyZ3VtZW50RW5jb2RlckJ1
ZmZlciB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZmCiAgICAgcmV0dXJuIGFyZ3M7CiB9
OwogCi1SZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiBHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNy
ZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciYmIGRlc2NyaXB0b3IpCitSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiBHUFVCaW5kR3JvdXBM
YXlvdXQ6OnRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBpZiAoIWRldmljZS5wbGF0
Zm9ybURldmljZSgpKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6
OnRyeUNyZWF0ZSgpOiBJbnZhbGlkIE1UTERldmljZSEiKTsKQEAgLTk3LDcgKzk5LDcgQEAgUmVm
UHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoY29u
c3QgR1BVRGV2aWNlJiBkZXZpY2UKIAogICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGRl
c2NyaXB0b3IuYmluZGluZ3MpIHsKICAgICAgICAgaWYgKCFiaW5kaW5nc01hcC5hZGQoYmluZGlu
Zy5iaW5kaW5nLCBiaW5kaW5nKSkgewotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUJpbmRH
cm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IER1cGxpY2F0ZSBiaW5kaW5nICVsdSBmb3VuZCBpbiBX
ZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yISIsIGJpbmRpbmcuYmluZGluZyk7CisgICAg
ICAgICAgICBMT0coV2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogRHVw
bGljYXRlIGJpbmRpbmcgJWx1IGZvdW5kIGluIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Ih
IiwgYmluZGluZy5iaW5kaW5nKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICB9CiAKQEAgLTExNSwxMSArMTE3LDExIEBAIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQ
VUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiAgICAg
ICAgIG10bEFyZ3VtZW50LmdldCgpLmRhdGFUeXBlID0gTVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlw
ZShiaW5kaW5nLnR5cGUpOwogICAgICAgICBtdGxBcmd1bWVudC5nZXQoKS5pbmRleCA9IGJpbmRp
bmcuYmluZGluZzsKIAotICAgICAgICBpZiAoYmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVy
U3RhZ2VCaXQ6OlZFUlRFWCkKKyAgICAgICAgaWYgKGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNo
YWRlclN0YWdlQml0OjpGbGFnczo6VmVydGV4KQogICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRU
b0FycmF5KHZlcnRleEFyZ3NBcnJheSwgbXRsQXJndW1lbnQpOwotICAgICAgICBpZiAoYmluZGlu
Zy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZSQUdNRU5UKQorICAgICAgICBpZiAo
YmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkK
ICAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9BcnJheShmcmFnbWVudEFyZ3NBcnJheSwgbXRs
QXJndW1lbnQpOwotICAgICAgICBpZiAoYmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3Rh
Z2VCaXQ6OkNPTVBVVEUpCisgICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFk
ZXJTdGFnZUJpdDo6RmxhZ3M6OkNvbXB1dGUpCiAgICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRv
QXJyYXkoY29tcHV0ZUFyZ3NBcnJheSwgbXRsQXJndW1lbnQpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRC
dWZmZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KaW5kZXggYjBhOTc2ZGJlNGJlN2IzM2FjYjRhMmMz
N2VjNmNhNjY5ZWM3YTY5OS4uYzkyYzU0NGQxNTFhYWFlOTRiNzFlZGY4NjAyNzcwYjU1Y2I1N2Iw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC01OCw3ICs1OCw3
IEBAIFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BV
RGV2aWNlJiBkZXZpY2UpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAg
ICBidWZmZXIgPSByZXRhaW5QdHIoW210bFF1ZXVlIGNvbW1hbmRCdWZmZXJdKTsKKyAgICBidWZm
ZXIgPSBbbXRsUXVldWUgY29tbWFuZEJ1ZmZlcl07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCkBAIC03NSwxMSArNzUsMjYgQEAgR1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFu
ZEJ1ZmZlcihSZXRhaW5QdHI8TVRMQ29tbWFuZEJ1ZmZlcj4mJiBidWZmZXIpCiB7CiB9CiAKK0dQ
VUNvbW1hbmRCdWZmZXI6On5HUFVDb21tYW5kQnVmZmVyKCkKK3sKKyAgICBlbmRCbGl0RW5jb2Rp
bmcoKTsKK30KKwogTVRMQmxpdENvbW1hbmRFbmNvZGVyICpHUFVDb21tYW5kQnVmZmVyOjpibGl0
RW5jb2RlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYmxpdEVuY29kZXIgPyBtX2JsaXRFbmNv
ZGVyLmdldCgpIDogKG1fYmxpdEVuY29kZXIgPSBbbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIgYmxp
dENvbW1hbmRFbmNvZGVyXSkuZ2V0KCk7CiB9CiAKK3ZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6ZW5k
QmxpdEVuY29kaW5nKCkKK3sKKyAgICBpZiAoIW1fYmxpdEVuY29kZXIpCisgICAgICAgIHJldHVy
bjsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgW21fYmxpdEVuY29kZXIg
ZW5kRW5jb2RpbmddOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgbV9ibGl0
RW5jb2RlciA9IG51bGxwdHI7Cit9CisKIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weUJ1ZmZl
clRvQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYgc3JjLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwg
UmVmPEdQVUJ1ZmZlcj4mJiBkc3QsIHVuc2lnbmVkIGxvbmcgZHN0T2Zmc2V0LCB1bnNpZ25lZCBs
b25nIHNpemUpCiB7CiAgICAgaWYgKCFzcmMtPmlzVHJhbnNmZXJTb3VyY2UoKSB8fCAhZHN0LT5p
c1RyYW5zZmVyRGVzdGluYXRpb24oKSkgewpAQCAtMTE3LDcgKzEzMiw3IEBAIHZvaWQgR1BVQ29t
bWFuZEJ1ZmZlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYgc3JjLCB1bnNp
Z25lZCBsb25nIHNyCiAgICAgdXNlQnVmZmVyKFdURk1vdmUoZHN0KSk7CiB9CiAKLXZvaWQgR1BV
Q29tbWFuZEJ1ZmZlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZShjb25zdCBHUFVCdWZmZXJDb3B5Vmll
dyYgc3JjQnVmZmVyLCBjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmIGRzdFRleHR1cmUsIGNvbnN0
IEdQVUV4dGVudDNEJiBzaXplKQordm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9U
ZXh0dXJlKEdQVUJ1ZmZlckNvcHlWaWV3JiYgc3JjQnVmZmVyLCBHUFVUZXh0dXJlQ29weVZpZXcm
JiBkc3RUZXh0dXJlLCBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKIHsKICAgICBpZiAoIXNyY0J1
ZmZlci5idWZmZXItPmlzVHJhbnNmZXJTb3VyY2UoKSB8fCAhZHN0VGV4dHVyZS50ZXh0dXJlLT5p
c1RyYW5zZmVyRGVzdGluYXRpb24oKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQ29tYW5k
QnVmZmVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKCk6IEludmFsaWQgb3BlcmF0aW9uISIpOwpAQCAt
MTUxLDEwICsxNjYsMTEgQEAgdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9UZXh0
dXJlKGNvbnN0IEdQVUJ1ZmZlckNvcHlWaWV3JiBzcmNCdWZmZXIsIGMKIAogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICB1c2VCdWZmZXIoc3JjQnVmZmVyLmJ1ZmZlci5jb3B5
UmVmKCkpOworICAgIHVzZUJ1ZmZlcihXVEZNb3ZlKHNyY0J1ZmZlci5idWZmZXIpKTsKKyAgICB1
c2VUZXh0dXJlKFdURk1vdmUoZHN0VGV4dHVyZS50ZXh0dXJlKSk7CiB9CiAKLXZvaWQgR1BVQ29t
bWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcm
IHNyY1RleHR1cmUsIGNvbnN0IEdQVUJ1ZmZlckNvcHlWaWV3JiBkc3RCdWZmZXIsIGNvbnN0IEdQ
VUV4dGVudDNEJiBzaXplKQordm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKEdQVVRleHR1cmVDb3B5VmlldyYmIHNyY1RleHR1cmUsIEdQVUJ1ZmZlckNvcHlWaWV3JiYg
ZHN0QnVmZmVyLCBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKIHsKICAgICBpZiAoIXNyY1RleHR1
cmUudGV4dHVyZS0+aXNUcmFuc2ZlclNvdXJjZSgpIHx8ICFkc3RCdWZmZXIuYnVmZmVyLT5pc1Ry
YW5zZmVyRGVzdGluYXRpb24oKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQ29tbWFuZEJ1
ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcigpOiBJbnZhbGlkIG9wZXJhdGlvbiEiKTsKQEAgLTE3
OCwxMCArMTk0LDExIEBAIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZl
cihjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmIHNyY1RleHR1cmUsCiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCi0gICAgdXNlQnVmZmVyKGRzdEJ1ZmZlci5idWZmZXIuY29weVJl
ZigpKTsKKyAgICB1c2VUZXh0dXJlKFdURk1vdmUoc3JjVGV4dHVyZS50ZXh0dXJlKSk7CisgICAg
dXNlQnVmZmVyKFdURk1vdmUoZHN0QnVmZmVyLmJ1ZmZlcikpOwogfQogCi12b2lkIEdQVUNvbW1h
bmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVDb3B5VmlldyYg
c3JjLCBjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmIGRzdCwgY29uc3QgR1BVRXh0ZW50M0QmIHNp
emUpCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKEdQVVRleHR1
cmVDb3B5VmlldyYmIHNyYywgR1BVVGV4dHVyZUNvcHlWaWV3JiYgZHN0LCBjb25zdCBHUFVFeHRl
bnQzRCYgc2l6ZSkKIHsKICAgICBpZiAoIXNyYy50ZXh0dXJlLT5pc1RyYW5zZmVyU291cmNlKCkg
fHwgIWRzdC50ZXh0dXJlLT5pc1RyYW5zZmVyRGVzdGluYXRpb24oKSkgewogICAgICAgICBMT0co
V2ViR1BVLCAiR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoKTogSW52YWxp
ZCBvcGVyYXRpb24hIik7CkBAIC0yMDQsNiArMjIxLDkgQEAgdm9pZCBHUFVDb21tYW5kQnVmZmVy
Ojpjb3B5VGV4dHVyZVRvVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmIHNyYywgY29u
c3QKICAgICAgICAgZGVzdGluYXRpb25PcmlnaW46TVRMT3JpZ2luTWFrZShkc3Qub3JpZ2luLngs
IGRzdC5vcmlnaW4ueSwgZHN0Lm9yaWdpbi56KV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworCisgICAgdXNlVGV4dHVyZShXVEZNb3ZlKHNyYy50ZXh0dXJlKSk7CisgICAgdXNl
VGV4dHVyZShXVEZNb3ZlKGRzdC50ZXh0dXJlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVEZXZpY2VNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQppbmRleCBmMjc1YTZjZWJkMDhjNWRkZjdkODY5Mjlj
M2JlNTA3OWQ0ZTU2MjA1Li5kYjI3ZDAzYzAzOGQ0YTMzYmVmMTdjYjc5NzAxNDRkMzRjOWIxYWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVRGV2aWNlTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUmVmUHRyPEdQVURldmljZT4gR1BVRGV2aWNlOjpjcmVhdGUoT3B0aW9uYWw8
R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYmIG9wdGlvbnMpCiB7Ci0gICAgUGxhdGZvcm1EZXZp
Y2VTbWFydFB0ciBkZXZpY2VQdHI7CisgICAgUmV0YWluUHRyPE1UTERldmljZT4gZGV2aWNlUHRy
OwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIApAQCAtNDgsNyArNDgs
NyBAQCBSZWZQdHI8R1BVRGV2aWNlPiBHUFVEZXZpY2U6OmNyZWF0ZShPcHRpb25hbDxHUFVSZXF1
ZXN0QWRhcHRlck9wdGlvbnM+JiYgb3B0aW9ucwogICAgICAgICAKICAgICAgICAgZm9yIChpZCA8
TVRMRGV2aWNlPiBkZXZpY2UgOiBkZXZpY2VzLmdldCgpKSB7CiAgICAgICAgICAgICBpZiAoZGV2
aWNlLmxvd1Bvd2VyKSB7Ci0gICAgICAgICAgICAgICAgZGV2aWNlUHRyID0gcmV0YWluUHRyKGRl
dmljZSk7CisgICAgICAgICAgICAgICAgZGV2aWNlUHRyID0gZGV2aWNlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03MCw3ICs3MCw3IEBAIFJl
ZlB0cjxHUFVEZXZpY2U+IEdQVURldmljZTo6Y3JlYXRlKE9wdGlvbmFsPEdQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucz4mJiBvcHRpb25zCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVEZXZpY2Uo
V1RGTW92ZShkZXZpY2VQdHIpKSk7CiB9CiAKLUdQVURldmljZTo6R1BVRGV2aWNlKFBsYXRmb3Jt
RGV2aWNlU21hcnRQdHImJiBkZXZpY2UpCitHUFVEZXZpY2U6OkdQVURldmljZShSZXRhaW5QdHI8
TVRMRGV2aWNlPiYmIGRldmljZSkKICAgICA6IG1fcGxhdGZvcm1EZXZpY2UoV1RGTW92ZShkZXZp
Y2UpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXJNZXRhbC5tbQppbmRleCBjZmYyN2ZmYmVhN2I5OGU1MDM0Y2NjZGYyZGJkMjdkZWE3MDUzMzEy
Li41Yjc4ZjAxOGM1Y2I2MDBkNjAxYjYzYzgxYzVmZmMxYjNhNzZjMjQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQpAQCAtMzgsMTQg
KzM4LDcyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlcjo6ZW5kUGFzcygpCiB7Ci0gICAgaWYgKCFtX2lzRW5jb2RpbmcpCi0gICAgICAgIHJl
dHVybjsKKyAgICBBU1NFUlQocGxhdGZvcm1QYXNzRW5jb2RlcigpKTsKIAorICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBbcGxhdGZvcm1QYXNzRW5jb2RlcigpIGVuZEVuY29k
aW5nXTsKLSAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworCisgICAgbV9jb21tYW5kQnVmZmVyLT5zZXRJc0VuY29kaW5nUGFzcyhmYWxzZSk7
CiB9CiAKLXZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZm
ZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQ
VUJpbmRpbmdSZXNvdXJjZSYgcmVzb3VyY2UsIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IGNo
YXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSkKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6
OnNldEJpbmRHcm91cCh1bnNpZ25lZCBpbmRleCwgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXApCit7
CisgICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVByb2dyYW1tYWJsZVBh
c3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoKSI7CisKKyAgICBpZiAoIXBsYXRmb3JtUGFzc0VuY29k
ZXIoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgb3BlcmF0aW9uOiBFbmNv
ZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1
dG8mIHZlcnRleEFyZ3MgPSBiaW5kR3JvdXAubGF5b3V0KCkudmVydGV4QXJndW1lbnRzKCk7Cisg
ICAgY29uc3QgYXV0byYgZnJhZ21lbnRBcmdzID0gYmluZEdyb3VwLmxheW91dCgpLmZyYWdtZW50
QXJndW1lbnRzKCk7CisgICAgLy8gRklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgor
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgaWYgKHZlcnRleEFyZ3Mu
YnVmZmVyKQorICAgICAgICBzZXRWZXJ0ZXhCdWZmZXIodmVydGV4QXJncy5idWZmZXIuZ2V0KCks
IDAsIGluZGV4KTsKKyAgICBpZiAoZnJhZ21lbnRBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0RnJh
Z21lbnRCdWZmZXIoZnJhZ21lbnRBcmdzLmJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworCisgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9u
IGVhY2ggTVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgorICAgIGNv
bnN0IGF1dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7
CisgICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsK
KyAgICAgICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5n
KTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7CisgICAgICAg
ICAgICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBp
biBHUFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gYmluZEdyb3VwTGF5
b3V0QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBzd2l0Y2ggKGJpbmRHcm91
cExheW91dEJpbmRpbmcudHlwZSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJl
c291cmNlIHR5cGVzLgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJp
bmRpbmdUeXBlOjpVbmlmb3JtQnVmZmVyOgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91
dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICBpZiAo
YmluZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZs
YWdzOjpWZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmlu
ZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5k
aW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAg
ICAgICAgICAgICAgIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVu
Y29kZXIuZ2V0KCksIGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlNhbXBsZWRUZXh0dXJlOiB7CisgICAg
ICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVy
U3RhZ2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc1Rl
eHR1cmVPbkVuY29kZXIodmVydGV4QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5nLnJlc291cmNl
LCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAoYmluZEdy
b3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpG
cmFnbWVudCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2Rlcihm
cmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5k
aW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgdHlwZSBu
b3QgeWV0IGltcGxlbWVudGVkLiIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6
OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVu
dEVuY29kZXIsIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYgcmVzb3VyY2UsIHVuc2lnbmVkIGlu
ZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUpCiB7CiAjaWYgTE9HX0RJU0FCTEVE
CiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CkBAIC03OSw1MSArMTM3LDM3IEBAIHZv
aWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29k
ZXIoTVRMQXJndW1lbnRFbmNvZGVyCiAgICAgbV9jb21tYW5kQnVmZmVyLT51c2VCdWZmZXIoYnVm
ZmVyUmVmLmNvcHlSZWYoKSk7CiB9CiAKLXZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6
OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBHUFVCaW5kR3JvdXAmIGJpbmRHcm91
cCkKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNUZXh0dXJl
T25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBjb25zdCBHUFVC
aW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgY2hhciogY29u
c3QgZnVuY3Rpb25OYW1lKQogewotICAgIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9
ICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKCkiOwogI2lmIExPR19E
SVNBQkxFRAogICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwogI2VuZGlmCisgICAgaWYg
KCFhcmd1bWVudEVuY29kZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBObyBhcmd1bWVu
dCBlbmNvZGVyIGZvciByZXF1ZXN0ZWQgc3RhZ2UgZm91bmQhIiwgZnVuY3Rpb25OYW1lKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGNvbnN0IGF1dG8mIHZlcnRleEFyZ3MgPSBiaW5k
R3JvdXAubGF5b3V0KCkudmVydGV4QXJndW1lbnRzKCk7Ci0gICAgY29uc3QgYXV0byYgZnJhZ21l
bnRBcmdzID0gYmluZEdyb3VwLmxheW91dCgpLmZyYWdtZW50QXJndW1lbnRzKCk7Ci0gICAgLy8g
RklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgorICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8R1BVVGV4dHVyZT4+KHJlc291cmNlKSkgeworICAgICAgICBMT0coV2Vi
R1BVLCAiJXM6IFJlc291cmNlIGlzIG5vdCBhIHRleHR1cmUgdHlwZSEiLCBmdW5jdGlvbk5hbWUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgdGV4dHVyZVJlZiA9IFdURjo6
Z2V0PFJlZjxHUFVUZXh0dXJlPj4ocmVzb3VyY2UpOworICAgIGF1dG8gbXRsVGV4dHVyZSA9IHRl
eHR1cmVSZWYtPnBsYXRmb3JtVGV4dHVyZSgpOworCisgICAgaWYgKCFtdGxUZXh0dXJlKSB7Cisg
ICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBNVExUZXh0dXJlIGluIEdQVVRleHR1cmVW
aWV3IGJpbmRpbmchIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIGlmICh2ZXJ0ZXhBcmdzLmJ1
ZmZlcikKLSAgICAgICAgc2V0VmVydGV4QnVmZmVyKHZlcnRleEFyZ3MuYnVmZmVyLmdldCgpLCAw
LCBpbmRleCk7Ci0gICAgaWYgKGZyYWdtZW50QXJncy5idWZmZXIpCi0gICAgICAgIHNldEZyYWdt
ZW50QnVmZmVyKGZyYWdtZW50QXJncy5idWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKKyAgICBbYXJn
dW1lbnRFbmNvZGVyIHNldFRleHR1cmU6bXRsVGV4dHVyZSBhdEluZGV4OmluZGV4XTsKKyAgICB1
c2VSZXNvdXJjZShtdGxUZXh0dXJlLCB0ZXh0dXJlUmVmLT5pc1JlYWRPbmx5KCkgPyBNVExSZXNv
dXJjZVVzYWdlUmVhZCA6IE1UTFJlc291cmNlVXNhZ2VSZWFkIHwgTVRMUmVzb3VyY2VVc2FnZVdy
aXRlKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAvLyBTZXQgZWFj
aCByZXNvdXJjZSBvbiBlYWNoIE1UTEFyZ3VtZW50RW5jb2RlciBpdCBzaG91bGQgYmUgdmlzaWJs
ZSBvbi4KLSAgICBjb25zdCBhdXRvJiBiaW5kaW5nc01hcCA9IGJpbmRHcm91cC5sYXlvdXQoKS5i
aW5kaW5nc01hcCgpOwotICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGJpbmRHcm91cC5i
aW5kaW5ncygpKSB7Ci0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBiaW5kaW5nc01hcC5maW5kKGJp
bmRpbmcuYmluZGluZyk7Ci0gICAgICAgIGlmIChpdGVyYXRvciA9PSBiaW5kaW5nc01hcC5lbmQo
KSkgewotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBHUFVCaW5kR3JvdXBCaW5kaW5nICVs
dSBub3QgZm91bmQgaW4gR1BVQmluZEdyb3VwTGF5b3V0ISIsIGZ1bmN0aW9uTmFtZSwgYmluZGlu
Zy5iaW5kaW5nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBhdXRv
IGJpbmRHcm91cExheW91dEJpbmRpbmcgPSBpdGVyYXRvci0+dmFsdWU7Ci0KLSAgICAgICAgc3dp
dGNoIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnR5cGUpIHsKLSAgICAgICAgLy8gRklYTUU6IFN1
cHBvcnQgbW9yZSByZXNvdXJjZSB0eXBlcy4KLSAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlv
dXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6VW5pZm9ybUJ1ZmZlcjoKLSAgICAgICAgY2FzZSBHUFVC
aW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U3RvcmFnZUJ1ZmZlcjogewotICAg
ICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRl
clN0YWdlQml0OjpWRVJURVgpCi0gICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9u
RW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIGJpbmRpbmcucmVzb3VyY2UsIGJpbmRp
bmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlv
dXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RlJBR01FTlQpCi0gICAg
ICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihmcmFnbWVudEFyZ3MuZW5j
b2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5h
bWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgdHlwZSBub3QgeWV0IGltcGxlbWVu
dGVkLiIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgbV9jb21tYW5kQnVmZmVyLT51c2VUZXh0dXJlKHRleHR1cmVSZWYuY29weVJlZigp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQppbmRl
eCBiOTllM2M2YWE2ZTgzZjBjZjE2N2VmMTAyZDM1ZGE2Nzk5ZGM2YjE3Li4zZGEyZjQzZDFiMDZl
M2QxMTcxNGI0OGM4OGZkNWFmODI4NTAwNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQpAQCAt
NzAsMTMgKzcwLDEyIEBAIEdQVVF1ZXVlOjpHUFVRdWV1ZShQbGF0Zm9ybVF1ZXVlU21hcnRQdHIm
JiBxdWV1ZSkKIHsKIH0KIAotdm9pZCBHUFVRdWV1ZTo6c3VibWl0KFZlY3RvcjxSZWY8Y29uc3Qg
R1BVQ29tbWFuZEJ1ZmZlcj4+JiYgY29tbWFuZEJ1ZmZlcnMpCit2b2lkIEdQVVF1ZXVlOjpzdWJt
aXQoVmVjdG9yPFJlZjxHUFVDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kQnVmZmVycykKIHsKICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBmb3IgKGF1dG8mIGNvbW1hbmRC
dWZmZXIgOiBjb21tYW5kQnVmZmVycykgewotICAgICAgICBpZiAoY29tbWFuZEJ1ZmZlci0+Ymxp
dEVuY29kZXIoKSkKLSAgICAgICAgICAgIFtjb21tYW5kQnVmZmVyLT5ibGl0RW5jb2RlcigpIGVu
ZEVuY29kaW5nXTsKKyAgICAgICAgY29tbWFuZEJ1ZmZlci0+ZW5kQmxpdEVuY29kaW5nKCk7CiAg
ICAgICAgIC8vIFByZXZlbnQgYW55IGJ1ZmZlciBtYXBwaW5nIGNhbGxiYWNrcyBmcm9tIGV4ZWN1
dGluZyB1bnRpbCBjb21tYW5kIGJ1ZmZlciBpcyBjb21wbGV0ZS4KICAgICAgICAgZm9yIChhdXRv
JiBidWZmZXIgOiBjb21tYW5kQnVmZmVyLT51c2VkQnVmZmVycygpKSB7CiAgICAgICAgICAgICBp
ZiAoYnVmZmVyLT5zdGF0ZSgpICE9IEdQVUJ1ZmZlcjo6U3RhdGU6OlVubWFwcGVkKSB7CkBAIC04
NSw2ICs4NCwxMyBAQCB2b2lkIEdQVVF1ZXVlOjpzdWJtaXQoVmVjdG9yPFJlZjxjb25zdCBHUFVD
b21tYW5kQnVmZmVyPj4mJiBjb21tYW5kQnVmZmVycykKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJ1ZmZlci0+Y29tbWFuZEJ1ZmZlckNvbW1pdHRlZChjb21tYW5kQnVmZmVyLT5wbGF0Zm9y
bUNvbW1hbmRCdWZmZXIoKSk7CiAgICAgICAgIH0KKyAgICAgICAgLy8gQWxzbyBlbnN1cmUgdGV4
dHVyZXMgYXJlIHN0aWxsIHZhbGlkLgorICAgICAgICBmb3IgKGF1dG8mIHRleHR1cmUgOiBjb21t
YW5kQnVmZmVyLT51c2VkVGV4dHVyZXMoKSkgeworICAgICAgICAgICAgaWYgKCF0ZXh0dXJlLT5w
bGF0Zm9ybVRleHR1cmUoKSkgeworICAgICAgICAgICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1
ZTo6c3VibWl0KCk6IEludmFsaWQgR1BVVGV4dHVyZSBzZXQgb24gYSBHUFVDb21tYW5kQnVmZmVy
ISIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQog
CiAgICAgICAgIFtjb21tYW5kQnVmZmVyLT5wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb21taXRd
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KaW5k
ZXggZDZhNmU2NDIzNjIzNzE1YjI0NzhmNjNmMmRkMGM1MGEyYjc4OTI1Ni4uZTFjNDlhOWZhOTA3
ZmYxMGY1MTI0NDM4MDljYTFhYjIxODE2NmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBhc3NFbmNvZGVyTWV0YWwubW0KQEAgLTExNyw2ICsxMTcsMTIgQEAgUmVmUHRyPEdQVVJlbmRl
clBhc3NFbmNvZGVyPiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVDb21t
YW5kQnVmZmUKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BVUmVu
ZGVyUGFzc0VuY29kZXI6OnRyeUNyZWF0ZSgpIjsKIAorICAgIC8vIE9ubHkgb25lIGNvbW1hbmQg
ZW5jb2RlciBtYXkgYmUgYWN0aXZlIGF0IGEgdGltZS4KKyAgICBpZiAoYnVmZmVyLT5pc0VuY29k
aW5nUGFzcygpKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczogRXhpc3RpbmcgcGFzcyBlbmNv
ZGVyIG11c3QgYmUgZW5kZWQgZmlyc3QhIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKwogICAgIFJldGFpblB0cjxNVExSZW5kZXJQYXNzRGVzY3JpcHRvcj4gbXRsRGVzY3JpcHRv
cjsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTEzNywxMSArMTQzLDEz
IEBAIFJlZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gR1BVUmVuZGVyUGFzc0VuY29kZXI6OnRy
eUNyZWF0ZShSZWY8R1BVQ29tbWFuZEJ1ZmZlCiAgICAgICAgICYmICFwb3B1bGF0ZU10bERlcHRo
U3RlbmNpbEF0dGFjaG1lbnQobXRsRGVzY3JpcHRvci5nZXQoKS5kZXB0aEF0dGFjaG1lbnQsICpk
ZXNjcmlwdG9yLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQsIGZ1bmN0aW9uTmFtZSkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCisgICAgYnVmZmVyLT5lbmRCbGl0RW5jb2RpbmcoKTsKKwogICAg
IFJldGFpblB0cjxNVExSZW5kZXJDb21tYW5kRW5jb2Rlcj4gbXRsRW5jb2RlcjsKIAogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIG10bEVuY29kZXIgPSByZXRhaW5QdHIo
W2J1ZmZlci0+cGxhdGZvcm1Db21tYW5kQnVmZmVyKCkgcmVuZGVyQ29tbWFuZEVuY29kZXJXaXRo
RGVzY3JpcHRvcjptdGxEZXNjcmlwdG9yLmdldCgpXSk7CisgICAgbXRsRW5jb2RlciA9IFtidWZm
ZXItPnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIHJlbmRlckNvbW1hbmRFbmNvZGVyV2l0aERlc2Ny
aXB0b3I6bXRsRGVzY3JpcHRvci5nZXQoKV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogCkBAIC0xNDksNyArMTU3LDcgQEAgUmVmUHRyPEdQVVJlbmRlclBhc3NFbmNvZGVyPiBH
UFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVDb21tYW5kQnVmZmUKICAgICAg
ICAgTE9HKFdlYkdQVSwgIiVzOiBVbmFibGUgdG8gY3JlYXRlIE1UTFJlbmRlckNvbW1hbmRFbmNv
ZGVyISIsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLQor
ICAgIAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92
ZShidWZmZXIpLCBXVEZNb3ZlKG10bEVuY29kZXIpKSk7CiB9CiAKQEAgLTE1OSwxMyArMTY3LDI2
IEBAIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpHUFVSZW5kZXJQYXNzRW5jb2RlcihSZWY8R1BVQ29t
bWFuZEJ1ZmZlcj4mJiBjb21tYW5kQnVmZmVyCiB7CiB9CiAKLVBsYXRmb3JtUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIgKkdQVVJlbmRlclBhc3NFbmNvZGVyOjpwbGF0Zm9ybVBhc3NFbmNvZGVyKCkg
Y29uc3QKK01UTENvbW1hbmRFbmNvZGVyICpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6cGxhdGZvcm1Q
YXNzRW5jb2RlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1SZW5kZXJQYXNzRW5j
b2Rlci5nZXQoKTsKIH0KIAordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCit7
CisgICAgaWYgKCFtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIpCisgICAgICAgIHJldHVybjsK
KyAgICBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpOworICAgIG1fcGxhdGZv
cm1SZW5kZXJQYXNzRW5jb2RlciA9IG51bGxwdHI7Cit9CisKIHZvaWQgR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OnNldFBpcGVsaW5lKFJlZjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSkKIHsK
KyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAgICAgICBMT0coV2Vi
R1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKCk6IEludmFsaWQgb3BlcmF0
aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGlmIChwaXBlbGluZS0+ZGVwdGhT
dGVuY2lsU3RhdGUoKSkKQEAgLTE4MCw2ICsyMDEsMTEgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6c2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQogCiB2
b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcg
aW5kZXgsIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8dW5zaWduZWQg
bG9uZyBsb25nPiYmIG9mZnNldHMpCiB7CisgICAgaWYgKCFtX3BsYXRmb3JtUmVuZGVyUGFzc0Vu
Y29kZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzKCk6IEludmFsaWQgb3BlcmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEFTU0VSVChidWZmZXJzLnNpemUoKSAmJiBv
ZmZzZXRzLnNpemUoKSA9PSBidWZmZXJzLnNpemUoKSk7CiAKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CkBAIC0yMTQsNiArMjQwLDE2IEBAIHN0YXRpYyBNVExQcmltaXRpdmVUeXBl
IHByaW1pdGl2ZVR5cGVGb3JHUFVQcmltaXRpdmVUb3BvbG9neShQcmltaXRpdmVUb3BvbG9neSB0
CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhD
b3VudCwgdW5zaWduZWQgbG9uZyBpbnN0YW5jZUNvdW50LCB1bnNpZ25lZCBsb25nIGZpcnN0VmVy
dGV4LCB1bnNpZ25lZCBsb25nIGZpcnN0SW5zdGFuY2UpCiB7CisgICAgaWYgKCFtX3BsYXRmb3Jt
UmVuZGVyUGFzc0VuY29kZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3KCk6IEludmFsaWQgb3BlcmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9waXBlbGluZSkgeworICAgICAg
ICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcoKTogTm8gdmFsaWQgR1BV
UmVuZGVyUGlwZWxpbmUgZm91bmQhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBb
bV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIAogICAgICAgICBkcmF3UHJpbWl0aXZlczpwcmlt
aXRpdmVUeXBlRm9yR1BVUHJpbWl0aXZlVG9wb2xvZ3kobV9waXBlbGluZS0+cHJpbWl0aXZlVG9w
b2xvZ3koKSkKICAgICAgICAgdmVydGV4U3RhcnQ6Zmlyc3RWZXJ0ZXgKQEAgLTIyNCwxOCArMjYw
LDMzIEBAIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcodW5zaWduZWQgbG9uZyB2ZXJ0
ZXhDb3VudCwgdW5zaWduZWQgbG9uZyBpbnN0YW5jCiAKICNpZiBVU0UoTUVUQUwpCiAKLXZvaWQg
R1BVUmVuZGVyUGFzc0VuY29kZXI6OnVzZVJlc291cmNlKE1UTFJlc291cmNlICpyZXNvdXJjZSwg
dW5zaWduZWQgbG9uZyB1c2FnZSkKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnVzZVJlc291
cmNlKE1UTFJlc291cmNlICpyZXNvdXJjZSwgdW5zaWduZWQgdXNhZ2UpCiB7CisgICAgaWYgKCFt
X3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJl
bmRlclBhc3NFbmNvZGVyOiBJbnZhbGlkIG9wZXJhdGlvbjogRW5jb2RpbmcgaXMgZW5kZWQhIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNv
ZGVyIHVzZVJlc291cmNlOnJlc291cmNlIHVzYWdlOnVzYWdlXTsKIH0KIAotdm9pZCBHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25l
ZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkKK3ZvaWQgR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OnNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBpbmRleCkKIHsKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rl
cikgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6IEludmFsaWQg
b3BlcmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0VmVydGV4QnVmZmVyOmJ1ZmZl
ciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQgbG9u
ZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVy
OjpzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBpbmRleCkKIHsKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rlcikg
eworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6IEludmFsaWQgb3Bl
cmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0RnJhZ21lbnRCdWZmZXI6YnVmZmVy
IG9mZnNldDpvZmZzZXQgYXRJbmRleDppbmRleF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5N
ZXRhbC5tbQppbmRleCBkMmNiODI0ZWFkNDg5YTc2Y2JmZDcyY2I1YjJjY2RlZjNhZjA4ZjU5Li4z
NmQxN2M5OWYwOTQ0ZTIzYWVmMGIxZDNlNTVkYzk5YWEyMjgyNGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU3dhcENoYWluTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVN3
YXBDaGFpbk1ldGFsLm1tCkBAIC0xMDgsNyArMTA4LDcgQEAgUmVmUHRyPEdQVVRleHR1cmU+IEdQ
VVN3YXBDaGFpbjo6Z2V0TmV4dFRleHR1cmUoKQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKIAogICAgIG1fY3VycmVudERyYXdhYmxlID0gcmV0YWluUHRyKFttX3BsYXRmb3JtU3dh
cExheWVyIG5leHREcmF3YWJsZV0pOwotICAgIG10bFRleHR1cmUgPSByZXRhaW5QdHIoW21fY3Vy
cmVudERyYXdhYmxlIHRleHR1cmVdKTsKKyAgICBtdGxUZXh0dXJlID0gW21fY3VycmVudERyYXdh
YmxlIHRleHR1cmVdOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1
cmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVUZXh0dXJlTWV0YWwubW0KaW5kZXggMWExNTdiYzYyM2IwNDBhZGJhYmI5ZmY5NzM4NDQ5NjZm
ZmFkMmE0Zi4uNWNmNmY3Njg3YmI0NWFkYTQ0Yzk0YzY3YjQ4NGY1ZWMwYWE5ZjZiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1
cmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVVGV4dHVyZU1ldGFsLm1tCkBAIC04MiwxOCArODIsMTYgQEAgc3RhdGljIE9wdGlvbmFs
PE1UTFRleHR1cmVVc2FnZT4gbXRsVGV4dHVyZVVzYWdlRm9yR1BVVGV4dHVyZVVzYWdlRmxhZ3Mo
T3B0aW9uU2UKICAgICByZXR1cm4gTVRMVGV4dHVyZVVzYWdlVW5rbm93bjsKIH0KIAorI2lmICFQ
TEFURk9STShNQUMpCiBzdGF0aWMgTVRMU3RvcmFnZU1vZGUgc3RvcmFnZU1vZGVGb3JQaXhlbEZv
cm1hdEFuZFNhbXBsZUNvdW50KE1UTFBpeGVsRm9ybWF0IGZvcm1hdCwgdW5zaWduZWQgbG9uZyBz
YW1wbGVzKQogewogICAgIC8vIERlcHRoLCBTdGVuY2lsLCBEZXB0aFN0ZW5jaWwsIGFuZCBNdWx0
aXNhbXBsZSB0ZXh0dXJlcyBtdXN0IGJlIGFsbG9jYXRlZCB3aXRoIHRoZSBNVExTdG9yYWdlTW9k
ZVByaXZhdGUgcmVzb3VyY2Ugb3B0aW9uLgogICAgIGlmIChmb3JtYXQgPT0gTVRMUGl4ZWxGb3Jt
YXREZXB0aDMyRmxvYXRfU3RlbmNpbDggfHwgc2FtcGxlcyA+IDEpCiAgICAgICAgIHJldHVybiBN
VExTdG9yYWdlTW9kZVByaXZhdGU7CiAKLSNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIE1U
TFN0b3JhZ2VNb2RlTWFuYWdlZDsKLSNlbHNlCiAgICAgcmV0dXJuIE1UTFN0b3JhZ2VNb2RlU2hh
cmVkOwotI2VuZGlmCiB9CisjZW5kaWYKIAogc3RhdGljIFJldGFpblB0cjxNVExUZXh0dXJlRGVz
Y3JpcHRvcj4gdHJ5Q3JlYXRlTXRsVGV4dHVyZURlc2NyaXB0b3IoY29uc3QgY2hhciogY29uc3Qg
ZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgT3B0
aW9uU2V0PEdQVVRleHR1cmVVc2FnZTo6RmxhZ3M+IHVzYWdlKQogewpAQCAtMTE3LDcgKzExNSwx
MSBAQCBzdGF0aWMgUmV0YWluUHRyPE1UTFRleHR1cmVEZXNjcmlwdG9yPiB0cnlDcmVhdGVNdGxU
ZXh0dXJlRGVzY3JpcHRvcihjb25zdCBjaGFyKgogICAgIGlmICghbXRsVXNhZ2UpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gc3RvcmFnZU1v
ZGUgPSBNVExTdG9yYWdlTW9kZVByaXZhdGU7CisjZWxzZQogICAgIGF1dG8gc3RvcmFnZU1vZGUg
PSBzdG9yYWdlTW9kZUZvclBpeGVsRm9ybWF0QW5kU2FtcGxlQ291bnQocGl4ZWxGb3JtYXQsIGRl
c2NyaXB0b3Iuc2FtcGxlQ291bnQpOworI2VuZGlmCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAKQEAgLTE2OCwxOCArMTcwLDE4IEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVU
ZXh0dXJlOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVRleHR1
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVUZXh0dXJlKFdURk1vdmUobXRsVGV4dHVyZSks
IHVzYWdlKSk7CiB9CiAKLVJlZjxHUFVUZXh0dXJlPiBHUFVUZXh0dXJlOjpjcmVhdGUoUGxhdGZv
cm1UZXh0dXJlU21hcnRQdHImJiB0ZXh0dXJlLCBPcHRpb25TZXQ8R1BVVGV4dHVyZVVzYWdlOjpG
bGFncz4gdXNhZ2UpCitSZWY8R1BVVGV4dHVyZT4gR1BVVGV4dHVyZTo6Y3JlYXRlKFJldGFpblB0
cjxNVExUZXh0dXJlPiYmIHRleHR1cmUsIE9wdGlvblNldDxHUFVUZXh0dXJlVXNhZ2U6OkZsYWdz
PiB1c2FnZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVUZXh0dXJlKFdURk1vdmUo
dGV4dHVyZSksIHVzYWdlKSk7CiB9CiAKLUdQVVRleHR1cmU6OkdQVVRleHR1cmUoUGxhdGZvcm1U
ZXh0dXJlU21hcnRQdHImJiB0ZXh0dXJlLCBPcHRpb25TZXQ8R1BVVGV4dHVyZVVzYWdlOjpGbGFn
cz4gdXNhZ2UpCitHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKFJldGFpblB0cjxNVExUZXh0dXJlPiYm
IHRleHR1cmUsIE9wdGlvblNldDxHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzPiB1c2FnZSkKICAgICA6
IG1fcGxhdGZvcm1UZXh0dXJlKFdURk1vdmUodGV4dHVyZSkpCiAgICAgLCBtX3VzYWdlKHVzYWdl
KQogewogfQogCi1SZWZQdHI8R1BVVGV4dHVyZT4gR1BVVGV4dHVyZTo6Y3JlYXRlRGVmYXVsdFRl
eHR1cmVWaWV3KCkKK1JlZlB0cjxHUFVUZXh0dXJlPiBHUFVUZXh0dXJlOjp0cnlDcmVhdGVEZWZh
dWx0VGV4dHVyZVZpZXcoKQogewogICAgIFJldGFpblB0cjxNVExUZXh0dXJlPiB0ZXh0dXJlOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNGE4MTg0NmVmM2JjMzVjNjJlOTE5N2UwMDQwMzRkOWJhM2NmMWY1ZC4uYWEzOGM0
MzI5M2UxOTg1ZWM1ZTAzMjRjM2UxYjhmZmE3Y2RhNTM2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTAzLTA1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dlYiBHUFVdIEdQVVRleHR1cmUgYW5kIEdQVVRleHR1cmVWaWV3IHVwZGF0ZXMsIGFuZCBy
ZWxhdGVkIEdQVUJpbmRHcm91cCB1cGRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYmdwdS9ibGl0LWNvbW1hbmRzLmh0bWw6CisgICAgICAg
ICogd2ViZ3B1L3Jlc291cmNlcy9ibHVlLWNoZWNrZXJlZC5wbmc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLiBEcmF3
IGEgcmVmZXJlbmNlIGZvciBibHVlLWNoZWNrZXJlZC5wbmcgd2l0aCBDYW52YXMyRC4KKyAgICAg
ICAgKiB3ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sOiBBZGRlZC4gRHJhdyBibHVl
LWNoZWNrZXJlZC5wbmcgYXMgYSB0ZXh0dXJlIG9uIGEgV2ViIEdQVSBxdWFkLgorCisgICAgICAg
IFJlbmFtaW5nIHVwZGF0ZXMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvcjoKKyAgICAgICAgKiB3ZWJn
cHUvYmluZC1ncm91cHMuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRy
aWFuZ2xlcy5odG1sOgorICAgICAgICAqIHdlYmdwdS9waXBlbGluZS1sYXlvdXRzLmh0bWw6Cisg
ICAgICAgICogd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbDoKKwogMjAxOS0wMy0wNCAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBCbGl0
dGluZyBmdW5jdGlvbiBwcm90b3R5cGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUv
YmluZC1ncm91cHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy5odG1sCmlu
ZGV4IGI1NzIxNzZjZTNmM2M5YThlMGFkODZiZDhhOTllNmM2MDllZjgxZGIuLmY4ZjkwZGRiNDk4
OWRmMDMzNDg4ODY2YmIwZGRkMGY3YmM1NTEwZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdwdS9iaW5kLWdyb3Vwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vw
cy5odG1sCkBAIC0xMyw4ICsxMyw4IEBAIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAg
Ly8gRklYTUU6IEFsc28gdGVzdCBzYW1wbGVkIHRleHR1cmUgYmluZGluZ3MuIAogICAgIGNvbnN0
IGJ1ZmZlckxheW91dEJpbmRpbmcgPSB7CiAgICAgICAgIGJpbmRpbmc6IDEsCi0gICAgICAgIHZp
c2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwKLSAgICAgICAgdHlwZTogInN0
b3JhZ2VCdWZmZXIiCisgICAgICAgIHZpc2liaWxpdHk6IEdQVVNoYWRlclN0YWdlQml0LlZFUlRF
WCwKKyAgICAgICAgdHlwZTogInN0b3JhZ2UtYnVmZmVyIgogICAgIH07CiAKICAgICBjb25zdCBi
aW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KHsgYmluZGluZ3M6
IFtidWZmZXJMYXlvdXRCaW5kaW5nXSB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdw
dS9ibGl0LWNvbW1hbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmxpdC1jb21tYW5kcy5o
dG1sCmluZGV4IDJhOTQ4ODk4MzVmY2VkNDJmZGQxZmM1ZGRlN2MzZTgwYjMwN2UyY2MuLjc3OWQ0
YThiYjI4MDdkZTkwYzY0N2UwZmMyZDU0MGJhMjM0MTFiYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmdwdS9ibGl0LWNvbW1hbmRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2Js
aXQtY29tbWFuZHMuaHRtbApAQCAtOTEsNiArOTEsMTAgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdChp
bWFnZSkgewogICAgIGNvbW1hbmRCdWZmZXIuY29weVRleHR1cmVUb1RleHR1cmUodGV4dHVyZVZp
ZXdBLCB0ZXh0dXJlVmlld0IsIHRleHR1cmVTaXplKTsKICAgICBjb21tYW5kQnVmZmVyLmNvcHlU
ZXh0dXJlVG9CdWZmZXIodGV4dHVyZVZpZXdCLCByZWFkQnVmZmVyVmlldywgdGV4dHVyZVNpemUp
OwogICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworICAgIGJ1
ZmZlckEuZGVzdHJveSgpOworICAgIGJ1ZmZlckIuZGVzdHJveSgpOworICAgIHRleHR1cmVBLmRl
c3Ryb3koKTsKKyAgICB0ZXh0dXJlQi5kZXN0cm95KCk7CiAKICAgICBjb25zdCByZXN1bHRDb250
ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTsK
IApAQCAtMTAwLDcgKzEwNCw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoaW1hZ2UpIHsKIAogICAg
ICAgICByZXN1bHRDb250ZXh0LnB1dEltYWdlRGF0YShyZXN1bHRJbWFnZURhdGEsIDAsIDApOwog
Ci0gICAgICAgIHJlYWRCdWZmZXIudW5tYXAoKTsKKyAgICAgICAgcmVhZEJ1ZmZlci5kZXN0cm95
KCk7CiAgICAgfSk7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbAppbmRleCAwNDQxYzI5
NTlmMTViN2YxMGJmOWQ2MzNmYjlmN2QwMjY3OGMxYjA2Li5jMzU0Y2QyODU5MWY1ZjFkN2ZkYzNl
NzYyYThjMTY1NWQ1YTZkMmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVy
LXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXIt
cmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKQEAgLTcyLDExICs3MiwxMSBAQCBjb25zdCBiaW5kaW5n
TnVtcyA9IHsKICAgICBHOiA1CiB9OwogCi1mdW5jdGlvbiBjcmVhdGVVbmlmb3JtQnVmZmVyQmlu
ZEdyb3VwTGF5b3V0KGJpbmROdW0sIHN0YWdlID0gV2ViR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVY
KSB7CitmdW5jdGlvbiBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmROdW0s
IHN0YWdlID0gR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVYKSB7CiAgICAgcmV0dXJuIHsKICAgICAg
ICAgYmluZGluZzogYmluZE51bSwKICAgICAgICAgdmlzaWJpbGl0eTogc3RhZ2UsCi0gICAgICAg
IHR5cGU6ICJ1bmlmb3JtQnVmZmVyIgorICAgICAgICB0eXBlOiAidW5pZm9ybS1idWZmZXIiCiAg
ICAgfTsKIH0KIApAQCAtMTU3LDcgKzE1Nyw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgY29uc3QgbGF5b3V0VVIgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJp
bmRpbmdOdW1zLlVSKTsKICAgICBjb25zdCBsYXlvdXRMTCA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJC
aW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTEwpOwogICAgIGNvbnN0IGxheW91dExSID0gY3Jl
YXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVtcy5MUik7Ci0gICAgY29u
c3QgbGF5b3V0RyA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051
bXMuRywgV2ViR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQpOworICAgIGNvbnN0IGxheW91dEcg
PSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLkcsIEdQVVNo
YWRlclN0YWdlQml0LkZSQUdNRU5UKTsKIAogICAgIC8vIFdlYkdQVUJpbmRHcm91cExheW91dHMK
ICAgICBjb25zdCBsZWZ0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBM
YXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVMLCBsYXlvdXRVTSwgbGF5b3V0TEwsIGxheW91dEdd
IH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3BpcGVsaW5lLWxheW91dHMuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdwdS9waXBlbGluZS1sYXlvdXRzLmh0bWwKaW5kZXggNmJhMTRk
YjU0YzFhNjI1ODQ4NTEyNTRkY2M1ZTliZjFlY2I2NjI2MC4uYTIzZDIzMjllNTFhMmJlMmM0NzU2
ZWY1ZjAyYzQ1YmZkNTU4NTA4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3BpcGVs
aW5lLWxheW91dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvcGlwZWxpbmUtbGF5b3V0
cy5odG1sCkBAIC05LDE2ICs5LDE2IEBACiBmdW5jdGlvbiBjcmVhdGVCaW5kR3JvdXBMYXlvdXRC
aW5kaW5nKCkgewogICAgIHJldHVybiB7CiAgICAgICAgIGJpbmRpbmc6IDAsCi0gICAgICAgIHZp
c2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5UIHwgV2ViR1BVU2hhZGVyU3Rh
Z2VCaXQuVkVSVEVYLAotICAgICAgICB0eXBlOiAic3RvcmFnZUJ1ZmZlciIKKyAgICAgICAgdmlz
aWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQgfCBHUFVTaGFkZXJTdGFnZUJpdC5W
RVJURVgsCisgICAgICAgIHR5cGU6ICJzdG9yYWdlLWJ1ZmZlciIKICAgICB9OwogfQogCiB0ZXN0
KCgpID0+IHsKICAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yID0geyBiaW5kaW5n
czogW2NyZWF0ZUJpbmRHcm91cExheW91dEJpbmRpbmcoKV0gfTsKLSAgICBhc3NlcnRfbm90X2Vx
dWFscyhiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmJpbmRpbmdzWzBdLnZpc2liaWxpdHkgJiBX
ZWJHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwgMCk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMo
YmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5iaW5kaW5nc1swXS52aXNpYmlsaXR5ICYgV2ViR1BV
U2hhZGVyU3RhZ2VCaXQuVkVSVEVYLCAwKTsKLSAgICBhc3NlcnRfZXF1YWxzKGJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IuYmluZGluZ3NbMF0udHlwZSwgInN0b3JhZ2VCdWZmZXIiKTsKKyAgICBh
c3NlcnRfbm90X2VxdWFscyhiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmJpbmRpbmdzWzBdLnZp
c2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwgMCk7CisgICAgYXNzZXJ0X25v
dF9lcXVhbHMoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5iaW5kaW5nc1swXS52aXNpYmlsaXR5
ICYgR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVYLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuYmluZGluZ3NbMF0udHlwZSwgInN0b3JhZ2UtYnVmZmVyIik7
CiB9LCAiQ3JlYXRlIGEgYmFzaWMgV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci4iKTsg
CiAKIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1w
aXBlbGluZXMuaHRtbAppbmRleCBmY2E0MjA3MjlmMGFiNDMzNWVkNDdlMjA3NzRmZmJlYWRkZTQ1
MTI0Li43MjI3MjNkMTY3NzgyZDdhMzlmMThkNTIyNjc3NGEwMDllMDIxZWQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKQEAgLTQzLDcgKzQzLDcgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0Rl
dmljZSgpOwogICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1
bGUoeyBjb2RlOiBzaGFkZXJDb2RlIH0pOwogCi0gICAgY29uc3QgbGF5b3V0QmluZGluZyA9IHsg
YmluZGluZzogMCwgdmlzaWJpbGl0eTogV2ViR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVYLCB0eXBl
OiAic3RvcmFnZUJ1ZmZlciIgfTsKKyAgICBjb25zdCBsYXlvdXRCaW5kaW5nID0geyBiaW5kaW5n
OiAwLCB2aXNpYmlsaXR5OiBHUFVTaGFkZXJTdGFnZUJpdC5WRVJURVgsIHR5cGU6ICJzdG9yYWdl
LWJ1ZmZlciIgfTsKICAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmlu
ZEdyb3VwTGF5b3V0KHsgYmluZGluZ3M6IFtsYXlvdXRCaW5kaW5nXSB9KTsKICAgICBjb25zdCBw
aXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dCh7IGJpbmRHcm91cExh
eW91dHM6IFtiaW5kR3JvdXBMYXlvdXRdIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJncHUvcmVzb3VyY2VzL2JsdWUtY2hlY2tlcmVkLnBuZyBiL0xheW91dFRlc3RzL3dlYmdwdS9y
ZXNvdXJjZXMvYmx1ZS1jaGVja2VyZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyZWZlZDRmZDhkYTQyNGI1
Y2FjM2JjN2M0N2MyMmM2MzliODA0ZDgKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQ4NzUKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlWNE1LTDlCZT81aFclenxmU2YwcEFyVTFKekNLcFRgTUcr
RERmdm1NCnpkS0l8Xkt6UmxSOH5jaWEjTl9QTTV7MERIXnZwYjRyVDRxe0Q9QjJBKmVacGFgV3BC
YUlIelcwZFE9c3EyM1Bybwp6QnYpbDhUYyMtNCtpfUBjU09FPmxPKVdgT3NMMEw5RTRIZXpSUld1
OTEhUk1TXl8zTEJOPW1ZQWxfR290NnJBJm0KelFXWj9+TyFOJHQ/Nj8kY2ljLT83Zj9WOTdudD9v
OXJIcW8yMHhOeX1eNzMtTWEkfip4cUk3KmpPR2BfQTEwI0pTCnpCVkN7aC1Rdm87bEVleiN5a2Nk
TDVmQyQ2UWozI3xHN0N5Rl5ZYXV5VytvPShtekxObkRGTmpicG9YVmJXRmt6QAp6RH41VT43IWRq
KDhHUz1OMUFTIVdDN0VlQmwhSWd0JTBaZn4weH5PN2IwUz9iYjVydypmbGpiaEdCR2QhOC18ZEwK
enokTlJQcE9hcXszPUkySlRPfnVWQ1hmWUl7emFMb0shMVhLV1VGTVJxej8pJGVRMG4yIShBVTlA
SVZlYz5RZUs3CnpAbF56am41az1hKUJxIXV1e2cteGlEQkoyblVfRzBPS09CP255KVd8N0xkKXN6
fVRNMnp5ZVlOIzhOPWF6YChxSwp6ayUxWFZHbElreEZ1YE9RQ29FdF91dDVyPzRmQkRDTnViciEj
V0FGVUAkTDEtLVhqVk8lI0pfKVJYKzxwN0c9SksKekY8VTAzQE88VGEzKSNrVT5xciZMPWV5KXEt
YXFpeTxMYnhoVWRsWC1PZWBFe0kzeTtfVCphZDUoQlI7R3BrZDNlCnozMmg5Rk92WCVYRGEqN1JJ
Uno5aDJwSzQ+d09nWC0mflR1cWZwTythdUs9SylFaTYxOXROQWxJMVFaT0U2Q0JjMwp6Mn43ZCYo
UGQ9NV52WVJrKVgzNFc5OEUrK0JLTGdYXlM7PU1ET2A1MChMUjs7JU8zcnlrQCY5c21BaiZHJHR3
WCsKekF6JSRHMWVSLWkwdDxsJnooUWM5UlNUI1A9eGJvU2BPKyYwbjlHKnszeFFSOWlOSGMmMUYj
UyUrY2dQUDJ4dX1nCnpQZz48SDBoRTNORUxZflBRdnNETFVJIVhSalR7WmooTF4qPGE/YihWPVg+
WXd1JUdheWJ9RiNwQFZjdHgpUT9GIQp6PFgya2xhUkA1cWFCZzV8bHgxWXpiYjBDJDc3aFVxUEtn
TzJ2V0VsfDkxYDNRR2B1Tk0pZFYmd2Z8JUc7TGZafDEKeihsLVBSNnMlKUN5P31iQUclJEt6UlJw
eTslMjs/I189UWdyUWdCZEVPJkIkREclUUNHKFU4ZUs1OVdRWl4+Y3IpCnpZSHskZj19KyM0JSRk
KnN4TmI9dXF5QV9pRmsxU0o3VypUKXpXYyNgPldzSygwTWlDZSg3PVNKdERubXtyLVVXfApEOWIx
IXMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdw
dS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2OWE5
YzAwZmI5M2E2ZGM4ZTI4ZTcxMzVkMzljNjMwYjU5YmFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPkhUTUwgUmVmZXJlbmNlIEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2Fu
dmFzIGJlbG93IGlzIGEgNCBieSA0IGJsdWUvZ3JlZW4gY2hlY2tlcmJvYXJkLjwvcD4KKzxjYW52
YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IGNh
bnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29udGV4dCA9
IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2IoMCwg
MjU1LCAwKSc7Citjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhl
aWdodCk7CisKK2NvbnN0IG51bUNvbHVtbnMgPSA0OworY29uc3QgbnVtUm93cyA9IDQ7Citjb250
ZXh0LmJlZ2luUGF0aCgpOworY29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAsIDAsIDI1NSknOwor
Zm9yIChsZXQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyArK3gpIHsKKyAgICBmb3IgKGxldCB5ID0g
MDsgeSA8IG51bVJvd3M7ICsreSkgeworICAgICAgICBpZiAoeCAlIDIgPT0gMCAmJiB5ICUgMiA9
PSAwIHx8IHggJSAyID09IDEgJiYgeSAlIDIgPT0gMSkKKyAgICAgICAgICAgIGNvbnRleHQucmVj
dCgKKyAgICAgICAgICAgICAgICB4ICogY2FudmFzLndpZHRoIC8gbnVtQ29sdW1ucywgCisgICAg
ICAgICAgICAgICAgeSAqIGNhbnZhcy5oZWlnaHQgLyBudW1Sb3dzLCAKKyAgICAgICAgICAgICAg
ICBjYW52YXMud2lkdGggLyBudW1Db2x1bW5zLCAKKyAgICAgICAgICAgICAgICBjYW52YXMuaGVp
Z2h0IC8gbnVtUm93cworICAgICAgICAgICAgICAgICk7CisgICAgfQorfQorY29udGV4dC5maWxs
KCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWQ4ZGJh
OGI2ZDNhZmNiMmNkMDRhN2QwMGJiMjJmY2VmMWNkYmI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtMCwwICsxLDE5
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj0idmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4K
KzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBhIDQgYnkgNCBibHVlL2dyZWVuIGNo
ZWNrZXJib2FyZC48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZh
cz4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAg
IAordXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4SW4KK3sKKyAgICBmbG9h
dDQgcG9zaXRpb24gW1thdHRyaWJ1dGUoMCldXTsKKyAgICBmbG9hdDIgdGV4Q29vcmRzIFtbYXR0
cmlidXRlKDEpXV07Cit9OworCitzdHJ1Y3QgVmVydGV4T3V0Cit7CisgICAgZmxvYXQ0IHBvc2l0
aW9uIFtbcG9zaXRpb25dXTsKKyAgICBmbG9hdDIgdGV4Q29vcmRzOworfTsKKwordmVydGV4IFZl
cnRleE91dCB2ZXJ0ZXhfbWFpbihWZXJ0ZXhJbiB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCit7Cisg
ICAgVmVydGV4T3V0IHZPdXQ7CisgICAgdk91dC5wb3NpdGlvbiA9IHZlcnRleEluLnBvc2l0aW9u
OworICAgIHZPdXQudGV4Q29vcmRzID0gdmVydGV4SW4udGV4Q29vcmRzOworICAgIHJldHVybiB2
T3V0OworfQorCitzdHJ1Y3QgVGV4dHVyZQoreworICAgIHRleHR1cmUyZDxmbG9hdD4gaW1hZ2Ug
W1tpZCgwKV1dOworfTsKKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4T3V0
IHYgW1tzdGFnZV9pbl1dLCBjb25zdCBkZXZpY2UgVGV4dHVyZSYgdCBbW2J1ZmZlcigwKV1dKQor
eworICAgIGNvbnN0ZXhwciBzYW1wbGVyIHMoY29vcmQ6Om5vcm1hbGl6ZWQsIGFkZHJlc3M6OmNs
YW1wX3RvX3plcm8sIGZpbHRlcjo6bmVhcmVzdCk7CisgICAgcmV0dXJuIHQuaW1hZ2Uuc2FtcGxl
KHMsIHYudGV4Q29vcmRzKTsKK30KK2AKKworZnVuY3Rpb24gY3JlYXRlSW5wdXRTdGF0ZURlc2Ny
aXB0b3IoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgaW5kZXhGb3JtYXQ6IFdlYkdQVUluZGV4
Rm9ybWF0LlVJTlQzMiwKKyAgICAgICAgYXR0cmlidXRlczogW3sKKyAgICAgICAgICAgIHNoYWRl
ckxvY2F0aW9uOiAwLAorICAgICAgICAgICAgaW5wdXRTbG90OiAwLAorICAgICAgICAgICAgb2Zm
c2V0OiAwLAorICAgICAgICAgICAgZm9ybWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxPQVRfUjMy
X0czMl9CMzJfQTMyCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiAx
LAorICAgICAgICAgICAgaW5wdXRTbG90OiAxLAorICAgICAgICAgICAgb2Zmc2V0OiAwLAorICAg
ICAgICAgICAgZm9ybWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxPQVRfUjMyX0czMgorICAgICAg
ICB9XSwKKyAgICAgICAgaW5wdXRzOiBbeworICAgICAgICAgICAgaW5wdXRTbG90OiAwLAorICAg
ICAgICAgICAgc3RyaWRlOiA0ICogNCwKKyAgICAgICAgICAgIHN0ZXBNb2RlOiBXZWJHUFVJbnB1
dFN0ZXBNb2RlLlZFUlRFWAorICAgICAgICB9LCB7CisgICAgICAgICAgICBpbnB1dFNsb3Q6IDEs
CisgICAgICAgICAgICBzdHJpZGU6IDQgKiAyLAorICAgICAgICAgICAgc3RlcE1vZGU6IFdlYkdQ
VUlucHV0U3RlcE1vZGUuVkVSVEVYCisgICAgICAgIH1dCisgICAgfQorfQorCithc3luYyBmdW5j
dGlvbiB0ZXN0KCkgeworICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7
CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7Cisg
ICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSk7Cisg
ICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAgY29uc3Qgc2hh
ZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUg
fSk7CisKKyAgICBjb25zdCB2ZXJ0ZXhBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAg
ICAvLyBmbG9hdDQgeHl6dworICAgICAgICAtMSwgMSwgMCwgMSwKKyAgICAgICAgLTEsIC0xLCAw
LCAxLAorICAgICAgICAxLCAxLCAwLCAxLCAKKyAgICAgICAgMSwgLTEsIDAsIDEKKyAgICBdKTsK
KyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogdmVy
dGV4QXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1
ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKKyAgICB2ZXJ0ZXhCdWZmZXIuc2V0U3ViRGF0YSgw
LCB2ZXJ0ZXhBcnJheS5idWZmZXIpOworCisgICAgY29uc3QgdGV4dHVyZUNvb3JkQXJyYXkgPSBu
ZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgICAgLy8gZmxvYXQyIHRleENvb3JkcworICAgICAgICAw
LCAwLAorICAgICAgICAwLCAxLAorICAgICAgICAxLCAwLAorICAgICAgICAxLCAxCisgICAgXSk7
CisgICAgY29uc3QgdGV4dHVyZUNvb3JkQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNp
emU6IHRleHR1cmVDb29yZEFycmF5LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5W
RVJURVggfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfSk7CisgICAgdGV4dHVyZUNvb3Jk
QnVmZmVyLnNldFN1YkRhdGEoMCwgdGV4dHVyZUNvb3JkQXJyYXkuYnVmZmVyKTsKKworICAgIGNv
bnN0IGlucHV0U3RhdGVEZXNjcmlwdG9yID0gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsK
KworICAgIC8vIExvYWQgdGV4dHVyZSBpbWFnZQorICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdl
KCk7CisgICAgY29uc3QgaW1hZ2VMb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
eyAKKyAgICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4gcmVzb2x2ZSgpOyAKKyAgICAgICAgaW1h
Z2Uuc3JjID0gInJlc291cmNlcy9ibHVlLWNoZWNrZXJlZC5wbmciOworICAgIH0pOworICAgIGF3
YWl0IFByb21pc2UucmVzb2x2ZShpbWFnZUxvYWRQcm9taXNlKTsKKworICAgIC8vIENvbnZlcnQg
aW1hZ2UgdG8gZGF0YSBhbmQgZmlsbCBHUFVCdWZmZXIKKyAgICBjb25zdCBjYW52YXMyZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgIGNhbnZhczJkLndpZHRoID0gaW1h
Z2Uud2lkdGg7CisgICAgY2FudmFzMmQuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0OworICAgIGNvbnN0
IGNvbnRleHQyZCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dDJkLmRy
YXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgY29uc3QgaW1hZ2VEYXRhID0gY29udGV4dDJkLmdl
dEltYWdlRGF0YSgwLCAwLCBpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0KTsKKworICAgIGNvbnN0
IHRleHR1cmVCdWZmZXJEZXNjcmlwdG9yID0geworICAgICAgICBzaXplOiBpbWFnZURhdGEuZGF0
YS5sZW5ndGgsCisgICAgICAgIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9TUkMgfCBH
UFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QKKyAgICB9OworICAgIGNvbnN0IHRleHR1cmVCdWZm
ZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHRleHR1cmVCdWZmZXJEZXNjcmlwdG9yKTsKKyAgICB0
ZXh0dXJlQnVmZmVyLnNldFN1YkRhdGEoMCwgaW1hZ2VEYXRhLmRhdGEuYnVmZmVyKTsKKworICAg
IC8vIENyZWF0ZSBHUFVUZXh0dXJlCisgICAgY29uc3QgdGV4dHVyZVNpemUgPSB7CisgICAgICAg
IHdpZHRoOiBpbWFnZS53aWR0aCwKKyAgICAgICAgaGVpZ2h0OiBpbWFnZS5oZWlnaHQsCisgICAg
ICAgIGRlcHRoOiAxCisgICAgfTsKKworICAgIGNvbnN0IHRleHR1cmVEZXNjcmlwdG9yID0gewor
ICAgICAgICBzaXplOiB7IHdpZHRoOiBpbWFnZS53aWR0aCwgaGVpZ2h0OiBpbWFnZS5oZWlnaHQs
IGRlcHRoOiAxIH0sCisgICAgICAgIGFycmF5TGF5ZXJDb3VudDogMSwKKyAgICAgICAgbWlwTGV2
ZWxDb3VudDogMSwKKyAgICAgICAgc2FtcGxlQ291bnQ6IDEsCisgICAgICAgIGRpbWVuc2lvbjog
IjJkIiwKKyAgICAgICAgZm9ybWF0OiAicjhnOGI4YTgtdW5vcm0iLAorICAgICAgICB1c2FnZTog
R1BVVGV4dHVyZVVzYWdlLlRSQU5TRkVSX0RTVCB8IEdQVVRleHR1cmVVc2FnZS5TQU1QTEVECisg
ICAgfTsKKyAgICBjb25zdCB0ZXh0dXJlID0gZGV2aWNlLmNyZWF0ZVRleHR1cmUodGV4dHVyZURl
c2NyaXB0b3IpOworCisgICAgLy8gQmluZCB0ZXh0dXJlIHRvIHBpcGVsaW5lCisgICAgY29uc3Qg
dGV4dHVyZUJpbmRpbmdOdW0gPSAwOworICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0
b3IgPSB7CisgICAgICAgIGJpbmRpbmdzOiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwg
dmlzaWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQsIHR5cGU6ICJzYW1wbGVkLXRl
eHR1cmUiIH1dCisgICAgfTsKKyAgICBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmlu
ZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpOworICAgIGNvbnN0IHBpcGVs
aW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHsgYmluZEdyb3VwTGF5b3V0
czogW2JpbmRHcm91cExheW91dF0gfSk7CisKKyAgICBjb25zdCBiaW5kR3JvdXBEZXNjcmlwdG9y
ID0geworICAgICAgICBsYXlvdXQ6IGJpbmRHcm91cExheW91dCwKKyAgICAgICAgYmluZGluZ3M6
IFt7IGJpbmRpbmc6IHRleHR1cmVCaW5kaW5nTnVtLCByZXNvdXJjZTogdGV4dHVyZS5jcmVhdGVE
ZWZhdWx0VGV4dHVyZVZpZXcoKSB9XQorICAgIH07CisgICAgY29uc3QgYmluZEdyb3VwID0gZGV2
aWNlLmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9yKTsKKworICAgIC8vIFBpcGVs
aW5lIGFuZCByZW5kZXIKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUo
c2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRv
cik7CisgICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVy
KCk7CisKKyAgICBjb25zdCBidWZmZXJDb3B5VmlldyA9IHsKKyAgICAgICAgYnVmZmVyOiB0ZXh0
dXJlQnVmZmVyLAorICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAgIHJvd1BpdGNoOiAwLAorICAg
ICAgICBpbWFnZUhlaWdodDogMAorICAgIH07CisgICAgY29uc3QgdGV4dHVyZUNvcHlWaWV3ID0g
eworICAgICAgICB0ZXh0dXJlOiB0ZXh0dXJlLAorICAgICAgICBtaXBMZXZlbDogMCwKKyAgICAg
ICAgYXJyYXlMYXllcjogMCwKKyAgICAgICAgb3JpZ2luOiB7IHg6IDAsIHk6IDAsIHo6IDAgfQor
ICAgIH07CisgICAgY29tbWFuZEJ1ZmZlci5jb3B5QnVmZmVyVG9UZXh0dXJlKGJ1ZmZlckNvcHlW
aWV3LCB0ZXh0dXJlQ29weVZpZXcsIHRleHR1cmVTaXplKTsKKyAgICBjb25zdCBwYXNzRW5jb2Rl
ciA9IGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpOworICAgIHBh
c3NFbmNvZGVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5k
R3JvdXAoMCwgYmluZEdyb3VwKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAs
IFt2ZXJ0ZXhCdWZmZXIsIHRleHR1cmVDb29yZEJ1ZmZlcl0sIFswLCAwXSk7CisgICAgcGFzc0Vu
Y29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAgICBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisKKyAg
ICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworICAgIHF1ZXVlLnN1Ym1pdChbY29t
bWFuZEJ1ZmZlcl0pOworICAgIHZlcnRleEJ1ZmZlci5kZXN0cm95KCk7CisgICAgdGV4dHVyZUNv
b3JkQnVmZmVyLmRlc3Ryb3koKTsKKyAgICB0ZXh0dXJlLmRlc3Ryb3koKTsKKyAgICBjb250ZXh0
LnByZXNlbnQoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363800</attachid>
            <date>2019-03-06 15:20:20 -0800</date>
            <delta_ts>2019-03-06 15:58:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195347-20190306152019.patch</filename>
            <type>text/plain</type>
            <size>128793</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFhNDFiYzdiZjQ0MjFk
ZjBmMWZhYTE1Njg5MzdlYzcxNWU0NmI1Mi4uMTQ4YzVkODY0NDdhZGMxYzRiZGFmYzgzOGMxOTQ0
ZmVjNGQ0NmU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAxOS0wMy0wNSAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBHUFVU
ZXh0dXJlIGFuZCBHUFVUZXh0dXJlVmlldyB1cGRhdGVzLCBhbmQgcmVsYXRlZCBHUFVCaW5kR3Jv
dXAgdXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAg
IEltcGxlbWVudCB0aGUgYWJpbGl0eSB0byBkaXNwbGF5IGltYWdlIGRhdGEgYXMgYSBHUFVUZXh0
dXJlIGluIHRoZSByZW5kZXJpbmcgcGlwZWxpbmUuIEltcHJvdmUgR1BVVGV4dHVyZSBhbmQgCisg
ICAgICAgIEdQVVRleHR1cmVWaWV3IGltcGxlbWVudGF0aW9ucy4gUmVuYW1lIHZhcmlvdXMgYmlu
ZCBncm91cCBjbGFzc2VzIHRvIEdQVSogdG8gbWF0Y2ggQVBJLgorCisgICAgICAgIFRlc3Q6IHdl
YmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvcjo6YXNHUFVCaW5kR3JvdXBEZXNjcmlwdG9yIGNvbnN0KTog
VXBkYXRlIHRvIHZhbGlkYXRlIEdQVVRleHR1cmVWaWV3IHJlc291cmNlcy4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcDogTW92ZSBpbnN0ZWFkIG9mIGNv
cHkgdGhlIGNvbnZlcnRlZCB2aWV3IG9iamVjdHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVD
b21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb1RleHR1cmUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVUNvbW1hbmRCdWZmZXI6OmNvbW1hbmRCdWZmZXIgY29uc3QpOiBObyBsb25nZXIgcmV0
dXJucyBjb25zdCBzbyB1c2VkIHJlc291cmNlcyBjYW4gYmUgcmVnaXN0ZXJlZCBvbiBpdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQgY29uc3QpOiBSZW5hbWUgV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBhbmQgcmVwbGFjZSB1bm5lY2Vzc2FyeSBydmFs
dWUgcmVmZXJlbmNlLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oOiBE
aXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsOiBEaXR0by4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpzdWJtaXQpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOjphc0dQVVJlbmRlclBhc3NEZXNj
cmlwdG9yIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6On5XZWJHUFVUZXh0dXJlKTogQ2xl
YW4gdXAgYW55IHJlc291cmNlcyBjcmVhdGVkIGZvciBhbmQgZnJvbSB0aGlzIFdlYkdQVVRleHR1
cmUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVUZXh0dXJlOjpjcmVhdGVEZWZhdWx0VGV4dHVy
ZVZpZXcpOiBOb3cgcmV0dXJucyBhbiBlbXB0eSBvYmplY3Qgb3RoZXIgdGhhbiBudWxsIG9uIGZh
aWx1cmUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVUZXh0dXJlOjpkZXN0cm95KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6OmRlc3Ryb3lJbXBsKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmg6IEtlZXAgYSBsaXN0IG9mIGFueSB2aWV3cyBjcmVh
dGVkIGZyb20gdGhpcyB0ZXh0dXJlLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRl
eHR1cmUuaWRsOiBFbmFibGUgZGVzdHJveS4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVUZXh0dXJlVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVUZXh0dXJlVmlldzo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmVWaWV3OjpXZWJHUFVUZXh0
dXJlVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVUZXh0dXJlVmlldzo6ZGVzdHJveSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVVRleHR1cmVWaWV3Ojp+V2ViR1BVVGV4dHVyZVZpZXcpOiBDbGVhbiB1
cCBhbnkgcmVzb3VyY2VzIGJhY2tpbmcgdGhpcyBXZWJHUFVUZXh0dXJlVmlldy4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVVRleHR1cmVWaWV3Ojp0ZXh0dXJlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVRleHR1cmVWaWV3Ojp0ZXh0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbW1hbmRCdWZmZXI6OnVzZWRUZXh0dXJlcyBjb25zdCk6IEtlZXAgYSBsaXN0IG9mIGFs
bCB0ZXh0dXJlIHJlc291cmNlcyB0aGF0IHdpbGwgYmUgdXNlZCBieSB0aGlzIGNvbW1hbmQgYnVm
ZmVyIG9uIHN1Ym1pdC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmlzRW5j
b2RpbmdQYXNzIGNvbnN0KTogQWRkZWQgdG8gcHJldmVudCBtdWx0aXBsZSBwYXNzIGVuY29kZXJz
IGZyb20gYmVpbmcgYWN0aXZlIG9uIG9uZSBjb21tYW5kIGJ1ZmZlci4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbW1hbmRCdWZmZXI6OnNldElzRW5jb2RpbmdQYXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbW1hbmRCdWZmZXI6OnVzZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0
cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UGlwZWxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmVMYXlvdXQ6
OkdQVVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEZy
YWdtZW50QnVmZmVyKToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVF1ZXVlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVRleHR1cmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmlzUmVhZE9ubHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6ZGVzdHJveSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21tYW5kQnVmZmVyOjp+R1BVQ29tbWFuZEJ1ZmZlcik6IEVuc3VyZSBibGl0RW5jb2Rl
ciBpcyBlbmRlZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
bWFuZEJ1ZmZlcjo6ZW5kQmxpdEVuY29kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1h
bmRCdWZmZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUpOiBFbnN1cmUgdGV4dHVyZXMgYXJlIG1hcmtl
ZCBmb3IgdXNhZ2UgYmVmb3JlIHN1Ym1pc3Npb24gb2NjdXJzLgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVRGV2aWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpH
UFVEZXZpY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCk6IE5vdyBzdXBwb3J0cyB0ZXh0dXJlIHJl
c291cmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKTogSnVzdCBtb3ZlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5j
b2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0
YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6c3VibWl0KTogRW5zdXJlcyBkZXN0
cm95ZWQgR1BVVGV4dHVyZXMgYXJlIG5vdCBzdWJtaXR0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAg
IChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKTogRW5zdXJlIGFueSBv
dGhlciBlbmNvZGVycyBhcmUgZW5kZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gYWN0aXZhdGUgYSBu
ZXcgb25lLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnBsYXRmb3Jt
UGFzc0VuY29kZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29k
ZXI6OmVuZFBhc3MpOiBJbnZhbGlkYXRlcyB0aGUgTVRMQ29tbWFuZEVuY29kZXIgdXBvbiBzdWNj
ZXNzLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5l
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRGcmFnbWVudEJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVN3YXBDaGFpbk1ldGFs
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3dhcENoYWluOjpnZXROZXh0VGV4dHVyZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OnN0b3JhZ2VNb2RlRm9yUGl4ZWxGb3JtYXRBbmRTYW1wbGVDb3Vu
dCk6IAorICAgICAgICAgICAgICAgIEFsd2F5cyBjcmVhdGUgTVRMU3RvcmFnZU1vZGVQcml2YXRl
IHRleHR1cmVzIG9uIG1hY09TLCBhcyBXZWIgR1BVIGRvZXNuJ3QgcHJvdmlkZSBDUFUgYWNjZXNz
IHRvIHRleHR1cmVzIGFueXdheS4KKyAgICAgICAgKFdlYkNvcmU6OnRyeUNyZWF0ZU10bFRleHR1
cmVEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVRleHR1cmU6OnRyeUNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldyk6IFJlbmFtZWQgZnJv
bSBjcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcuCisKKyAgICAgICAgVXBkYXRlIGZpbGVzIGFuZCBz
eW1ib2xzIGluIHByb2plY3Q6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIE1vZHVsZXMvc3RyZWFtcy9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg6
IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9H
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmguCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZUJpdC5pZGwuCisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKwogMjAx
OS0wMy0wNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWIgR1BVXSBCbGl0dGluZyBmdW5jdGlvbiBwcm90b3R5cGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDYwMTI0ZmMxY2RlMTdhNDA5OTkxYWFmMDZhZGY3YjMzOWQ3YjhlMzguLmY1MmJkNGY1NjA2
NDQ5MmVjOGE0NDdhNzFlODU2ZGI5ZDA0ZDQ0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00
NjIsNiArNDYyLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L3dlYmRyaXZlci9OYXZpZ2F0b3JXZWJEcml2ZXIuaWRsCiAKICAgICBNb2R1bGVzL3dlYmdwdS9E
T01XaW5kb3dXZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0
QmluZGluZy5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvR1BVQnVmZmVyVXNhZ2UuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BV
Q29sb3IuaWRsCkBAIC00NzEsNiArNDczLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklM
RVMKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3AuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUv
R1BVT3JpZ2luM0QuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0LmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L0dQVVN0b3JlT3AuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVy
ZURlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVyZURpbWVuc2lvbi5p
ZGwKQEAgLTQ4Miw4ICs0ODUsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsCiAgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXBMYXlvdXQuaWRsCi0gICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0QmluZGluZy5pZGwKLSAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJCaW5kaW5nLmlkbAogICAgIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsCkBAIC01MDQsNyArNTA1LDYgQEAgc2V0KFdl
YkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJp
bmdDb250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbAotICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0LmlkbAogICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVN3YXBDaGFpbi5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjU1YWI0NGQ2
ZWI1ZDI1NDRmNGY1OTVhNzRjNjVhNDNkZDdkOGQ2My4uYzQyMzAwNjJjMjNkYWNjODAxMjg1Zjdj
ZGY0MGMwOTNlNjMyOTkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMjEsNiArMzIxLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmRyaXZlci9OYXZpZ2F0b3JXZWJEcml2ZXIuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCiskKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVCdWZmZXJVc2FnZS5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yLmlkbApAQCAtMzMwLDYgKzMzMiw3IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUV4dGVudDNELmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVTG9hZE9wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJncHUvR1BVT3JpZ2luM0QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9H
UFVTaGFkZXJTdGFnZUJpdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVN0
b3JlT3AuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRGVzY3Jp
cHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVEaW1lbnNp
b24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IGI1ZjAyMmRiNmJjMzhjODcwNTM3NmQzNWRjMGFlMGY1MjVmOWUxZTQuLmM2NGFh
M2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEwZWNkZDdlN2YxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01NzcsNiArNTc3LDEwIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9udEZhY2VT
ZXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zv
bnRGYWNlU2V0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR0NPYnNlcnZhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTR0NPYnNlcnZhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJpbmRHcm91cExheW91
dEJpbmRpbmcuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQnVmZmVy
RGVzY3JpcHRvci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR1BVQnVmZmVyRGVzY3JpcHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJ1ZmZlclVzYWdlLmNwcApAQCAtNTk1LDYgKzU5OSw4IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3JpZ2lu
M0QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQ
VU9yaWdpbjNELmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJp
dC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BV
U2hhZGVyU3RhZ2VCaXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNHUFVTdG9yZU9wLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNHUFVTdG9yZU9wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCAwNjY4NzkyNjU5Mjg0ZGE3NGNkNjk5ZDk4NmE1MDUxZjY0NGJk
NmFhLi44ZTY1ZDQ3ZTdhMWMyOWE0ZjhmNDQxMjFjMzA4NTlhZTU1NDM3NTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3Myw2ICszNzMsOCBAQCBKU19CSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRyaXZlci9OYXZpZ2F0b3JXZWJEcml2ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3IuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Iu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlckRlc2NyaXB0b3Iu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlclVzYWdlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb21wYXJlRnVuY3Rpb24uaWRsIFwK
QEAgLTM4MSw2ICszODMsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9HUFVMb2FkT3AuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L0dQVU9yaWdpbjNELmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L0dQVVNoYWRlclN0YWdlQml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9H
UFVTdG9yZU9wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJl
RGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVy
ZURpbWVuc2lvbi5pZGwgXApAQCAtMzkyLDggKzM5NSw2IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExh
eW91dC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0QmluZGluZy5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQnVmZmVyLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCdWZmZXJCaW5kaW5nLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVDb21tYW5kQnVmZmVyLmlkbCBcCkBAIC00MTQsNyArNDE1LDYgQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFk
ZXJTdGFnZUJpdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dh
cENoYWluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dlYkdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGEyNmZiZmE2MjNlYzFjYTMwMzg5OGI4N2YwMTM4MDJhMWRkZDdjZmYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaAorKysgL2Rl
di9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShXRUJHUFUpCi0KLSNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciA9IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3I7Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWI1NzEzOTkwNDk1OWFhMjEzMzFmODExNjViZjY4NzEzM2EzNDE5NgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91
cExheW91dEJpbmRpbmcuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVU2hhZGVyU3RhZ2VCaXQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZyB7CisgICAgZW51bSBjbGFzcyBCaW5kaW5nVHlwZSB7CisgICAgICAgIFVuaWZvcm1CdWZm
ZXIsCisgICAgICAgIER5bmFtaWNVbmlmb3JtQnVmZmVyLAorICAgICAgICBTYW1wbGVyLAorICAg
ICAgICBTYW1wbGVkVGV4dHVyZSwKKyAgICAgICAgU3RvcmFnZUJ1ZmZlciwKKyAgICAgICAgRHlu
YW1pY1N0b3JhZ2VCdWZmZXIKKyAgICB9OworCisgICAgdW5zaWduZWQgbG9uZyBiaW5kaW5nOwor
ICAgIEdQVVNoYWRlclN0YWdlRmxhZ3MgdmlzaWJpbGl0eTsKKyAgICBCaW5kaW5nVHlwZSB0eXBl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91
cExheW91dEJpbmRpbmcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI2MWJlNmVkYThkOWI3ZGFkYWM5
NGVjZjQ2NGMxZTAzZjdhZTE3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9t
YXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsK
K3R5cGVkZWYgdTMyIEdQVVNoYWRlclN0YWdlRmxhZ3M7CisKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gZW51bSBHUFVCaW5kaW5nVHlw
ZSB7CisgICAgInVuaWZvcm0tYnVmZmVyIiwKKyAgICAiZHluYW1pYy11bmlmb3JtLWJ1ZmZlciIs
CisgICAgInNhbXBsZXIiLAorICAgICJzYW1wbGVkLXRleHR1cmUiLAorICAgICJzdG9yYWdlLWJ1
ZmZlciIsCisgICAgImR5bmFtaWMtc3RvcmFnZS1idWZmZXIiCisgICAgLy8gVE9ETyBvdGhlciBi
aW5kaW5nIHR5cGVzCit9OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgR1BVQmluZEdyb3VwTGF5b3V0QmluZGlu
ZyB7CisgICAgdTMyIGJpbmRpbmc7CisgICAgR1BVU2hhZGVyU3RhZ2VGbGFncyB2aXNpYmlsaXR5
OworICAgIEdQVUJpbmRpbmdUeXBlIHR5cGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ2MzZiZmU0ZDcyZWQ5YTRiNTQwNzBhNTdhM2IwOTMzOTVjZGQ2MmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91
dEJpbmRpbmcuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IgeworICAgIFZlY3RvcjxH
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nPiBiaW5kaW5nczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU0Y2IyN2U3NDI4NTMxY2M3MzI0MmQzMmYxNGZmNGM3MDhiMGQ5
NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
Ky8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9z
a2V0Y2gud2ViaWRsCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHUFUKK10gZGljdGlvbmFyeSBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
IHsKKyAgICBzZXF1ZW5jZTxHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nPiBiaW5kaW5nczsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFn
ZUJpdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NjlkMzhiMTJlMTE4YzA1MTE1MjZlNTg0ZGY5ODVlMTdmMWU1M2E5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVy
U3RhZ2VCaXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBHUFVTaGFkZXJTdGFnZUZsYWdzID0gdW5zaWduZWQ7
CisKK2NsYXNzIEdQVVNoYWRlclN0YWdlQml0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVU2hhZGVy
U3RhZ2VCaXQ+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEZsYWdzIDogR1BVU2hhZGVyU3RhZ2VGbGFn
cyB7CisgICAgICAgIE5vbmUgPSAwLAorICAgICAgICBWZXJ0ZXggPSAxIDw8IDAsCisgICAgICAg
IEZyYWdtZW50ID0gMSA8PCAxLAorICAgICAgICBDb21wdXRlID0gMSA8PCAyLAorICAgIH07Cit9
OworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFn
ZUJpdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJp
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTNiYmEzZDZlMjE1YzBiODlhYmMzNTU5Y2E3MWVjZWE3MWZiMGI4
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVNo
YWRlclN0YWdlQml0LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8v
Z2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRs
CisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJH
UFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQ
VSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBHUFVTaGFkZXJT
dGFnZUJpdCB7CisgICAgY29uc3QgdTMyIE5PTkUgPSAwOworICAgIGNvbnN0IHUzMiBWRVJURVgg
PSAxOworICAgIGNvbnN0IHUzMiBGUkFHTUVOVCA9IDI7CisgICAgY29uc3QgdTMyIENPTVBVVEUg
PSA0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKaW5kZXggZTBlN2RiZTczMTM4NTBmMzBmNmNl
ZjQ1ODZmMzE5MGY0YjJkZGM0Ny4uMjYzODFiZjcxNTg2M2U0MDMxNzk1ZjQ2NmU0M2UyZjZmMTBh
OGY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmlu
ZEdyb3VwRGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKQEAgLTg4LDI2ICs4OCwzMiBAQCBPcHRpb25h
bDxHUFVCaW5kR3JvdXBEZXNjcmlwdG9yPiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOjphc0dQ
VUJpbmRHcm91cERlc2NyaQogCiAgICAgICAgIGNvbnN0IGF1dG8gbGF5b3V0QmluZGluZyA9IGl0
ZXJhdG9yLT52YWx1ZTsKIAotICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZVZpc2l0b3IgPSBX
VEY6Om1ha2VWaXNpdG9yKFtdIChSZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+IHZpZXcpIC0+IE9w
dGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewotICAgICAgICAgICAgLy8gRklYTUU6IFZhbGlk
YXRlIGJpbmRpbmcgdHlwZSB3aXRoIHRoZSB0ZXh0dXJlJ3MgdXNhZ2UgZmxhZ3MuCisgICAgICAg
IGF1dG8gYmluZGluZ1Jlc291cmNlVmlzaXRvciA9IFdURjo6bWFrZVZpc2l0b3IoW10oY29uc3Qg
UmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiYgdmlldykgLT4gT3B0aW9uYWw8R1BVQmluZGluZ1Jl
c291cmNlPiB7CiAgICAgICAgICAgICBpZiAoIXZpZXcpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZpZXctPnRleHR1cmUo
KTsKKyAgICAgICAgICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGluZ1Jl
c291cmNlPih2aWV3LT50ZXh0dXJlKCkpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEdQVUJpbmRpbmdSZXNvdXJjZT4odGV4dHVyZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAg
fSwgWyZsYXlvdXRCaW5kaW5nLCBmdW5jdGlvbk5hbWVdIChXZWJHUFVCdWZmZXJCaW5kaW5nIGJ1
ZmZlckJpbmRpbmcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewotICAgICAgICAg
ICAgaWYgKCFidWZmZXJCaW5kaW5nLmJ1ZmZlciB8fCAhYnVmZmVyQmluZGluZy5idWZmZXItPmJ1
ZmZlcigpKSB7Ci0gICAgICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIEdQVUJ1
ZmZlckJpbmRpbmcgZm9yIGJpbmRpbmcgJWx1IGluIEdQVUJpbmRHcm91cEJpbmRpbmdzISIsIGZ1
bmN0aW9uTmFtZSwgbGF5b3V0QmluZGluZy5iaW5kaW5nKTsKKyAgICAgICAgICAgIGlmICghYnVm
ZmVyQmluZGluZy5idWZmZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gYnVmZmVyQmluZGluZy5idWZmZXItPmJ1ZmZlcigp
OworICAgICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJC
aW5kaW5nVHlwZShidWZmZXJCaW5kaW5nLmJ1ZmZlci0+YnVmZmVyKCkuZ2V0KCksIGxheW91dEJp
bmRpbmcsIGZ1bmN0aW9uTmFtZSkpCisKKyAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJC
aW5kaW5nVHlwZShidWZmZXIuZ2V0KCksIGxheW91dEJpbmRpbmcsIGZ1bmN0aW9uTmFtZSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7IGJ1ZmZl
ckJpbmRpbmcuYnVmZmVyLT5idWZmZXIoKS5yZWxlYXNlTm9uTnVsbCgpLCBidWZmZXJCaW5kaW5n
Lm9mZnNldCwgYnVmZmVyQmluZGluZy5zaXplIH0pOworICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEdQVUJpbmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7IGJ1ZmZlci5yZWxl
YXNlTm9uTnVsbCgpLCBidWZmZXJCaW5kaW5nLm9mZnNldCwgYnVmZmVyQmluZGluZy5zaXplIH0p
OwogICAgICAgICB9KTsKIAogICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZSA9IFdURjo6dmlz
aXQoYmluZGluZ1Jlc291cmNlVmlzaXRvciwgYmluZGluZy5yZXNvdXJjZSk7Ci0gICAgICAgIGlm
ICghYmluZGluZ1Jlc291cmNlKQorICAgICAgICBpZiAoIWJpbmRpbmdSZXNvdXJjZSkgeworICAg
ICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIHJlc291cmNlIGZvciBiaW5kaW5nICVs
dSEiLCBmdW5jdGlvbk5hbWUsIGxheW91dEJpbmRpbmcuYmluZGluZyk7CiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CiAKICAgICAgICAgYmluZEdyb3VwQmluZGlu
Z3MudW5jaGVja2VkQXBwZW5kKEdQVUJpbmRHcm91cEJpbmRpbmcgeyBiaW5kaW5nLmJpbmRpbmcs
IFdURk1vdmUoYmluZGluZ1Jlc291cmNlLnZhbHVlKCkpIH0pOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dEJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91
dEJpbmRpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2YmEyZjk1YjlhNTcz
OTFkYzNjOWUwMjVmMjA4NzUzY2ZmY2ZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXRCaW5kaW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi0jaW5jbHVkZSAi
R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oIgotI2luY2x1ZGUgIldlYkdQVVNoYWRlclN0YWdl
Qml0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgV2ViR1BVQmluZEdyb3VwTGF5
b3V0QmluZGluZyA9IEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc7Ci11c2luZyBXZWJHUFVCaW5k
aW5nVHlwZSA9IEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOwotdXNpbmcg
V2ViR1BVU2hhZGVyU3RhZ2VGbGFncyA9IEdQVVNoYWRlclN0YWdlRmxhZ3M7Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5n
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91
dEJpbmRpbmcuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWJmMDViMmQ0MGZk
ODk4YzRhMDA2YWIzMzk3MDAyZGFkZDI1YmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cExheW91dEJpbmRpbmcuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0vLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rl
ci9kZXNpZ24vc2tldGNoLndlYmlkbAotCi10eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwotdHlw
ZWRlZiB1MzIgV2ViR1BVU2hhZGVyU3RhZ2VGbGFnczsKLQotWwotICAgIENvbmRpdGlvbmFsPVdF
QkdQVSwKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVQotXSBlbnVtIFdlYkdQVUJpbmRpbmdU
eXBlIHsKLSAgICAidW5pZm9ybUJ1ZmZlciIsCi0gICAgInNhbXBsZXIiLAotICAgICJzYW1wbGVk
VGV4dHVyZSIsCi0gICAgInN0b3JhZ2VCdWZmZXIiCi0gICAgLy8gVE9ETyBvdGhlciBiaW5kaW5n
IHR5cGVzCi19OwotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VCR1BVLAotICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViR1BVCi1dIGRpY3Rpb25hcnkgV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZyB7
Ci0gICAgdTMyIGJpbmRpbmc7Ci0gICAgV2ViR1BVU2hhZGVyU3RhZ2VGbGFncyB2aXNpYmlsaXR5
OwotICAgIFdlYkdQVUJpbmRpbmdUeXBlIHR5cGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzg5YWI5ZjY2OGE1
MjhjYzBjMzVhM2Q5YzA4MzllZjA1NDdlNDRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0vLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21h
c3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VCR1BVLAot
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCi1dIGRpY3Rpb25hcnkgV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvciB7Ci0gICAgc2VxdWVuY2U8V2ViR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZz4gYmluZGluZ3M7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAppbmRleCBmMmYyOWU2Y2MwNTczY2YzOGU2MWZm
NzA0YThmOTMzMDRiYjFmZmFhLi43MTRjZDUwZWNmOTM5ZTNlZTM5YWJmOGZhMzU1OWIyYTVjZDk2
MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21t
YW5kQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21tYW5kQnVmZmVyLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2ViR1BVQ29tbWFuZEJ1
ZmZlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZShjb25zdCBXZWJHUFVCdWZmZXJDb3B5VmlldyYgc3Jj
QnVmCiAKICAgICAvLyBGSVhNRTogQWRkIFdlYiBHUFUgdmFsaWRhdGlvbi4KIAotICAgIG1fY29t
bWFuZEJ1ZmZlci0+Y29weUJ1ZmZlclRvVGV4dHVyZSgqZ3B1QnVmZmVyVmlldywgKmdwdVRleHR1
cmVWaWV3LCBzaXplKTsKKyAgICBtX2NvbW1hbmRCdWZmZXItPmNvcHlCdWZmZXJUb1RleHR1cmUo
V1RGTW92ZSgqZ3B1QnVmZmVyVmlldyksIFdURk1vdmUoKmdwdVRleHR1cmVWaWV3KSwgc2l6ZSk7
CiB9CiAKIHZvaWQgV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihjb25z
dCBXZWJHUFVUZXh0dXJlQ29weVZpZXcmIHNyY1RleHR1cmUsIGNvbnN0IFdlYkdQVUJ1ZmZlckNv
cHlWaWV3JiBkc3RCdWZmZXIsIGNvbnN0IEdQVUV4dGVudDNEJiBzaXplKQpAQCAtMTE3LDcgKzEx
Nyw3IEBAIHZvaWQgV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihjb25z
dCBXZWJHUFVUZXh0dXJlQ29weVZpZXcmIHNyY1RlCiAKICAgICAvLyBGSVhNRTogQWRkIFdlYiBH
UFUgdmFsaWRhdGlvbi4KIAotICAgIG1fY29tbWFuZEJ1ZmZlci0+Y29weVRleHR1cmVUb0J1ZmZl
cigqZ3B1VGV4dHVyZVZpZXcsICpncHVCdWZmZXJWaWV3LCBzaXplKTsKKyAgICBtX2NvbW1hbmRC
dWZmZXItPmNvcHlUZXh0dXJlVG9CdWZmZXIoV1RGTW92ZSgqZ3B1VGV4dHVyZVZpZXcpLCBXVEZN
b3ZlKCpncHVCdWZmZXJWaWV3KSwgc2l6ZSk7CiB9CiAKIHZvaWQgV2ViR1BVQ29tbWFuZEJ1ZmZl
cjo6Y29weVRleHR1cmVUb1RleHR1cmUoY29uc3QgV2ViR1BVVGV4dHVyZUNvcHlWaWV3JiBzcmMs
IGNvbnN0IFdlYkdQVVRleHR1cmVDb3B5VmlldyYgZHN0LCBjb25zdCBHUFVFeHRlbnQzRCYgc2l6
ZSkKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0
dXJlVG9UZXh0dXJlKGNvbnN0IFdlYkdQVVRleHR1cmVDb3B5VmlldyYgc3JjLAogCiAgICAgLy8g
RklYTUU6IEFkZCBXZWIgR1BVIHZhbGlkYXRpb24uCiAKLSAgICBtX2NvbW1hbmRCdWZmZXItPmNv
cHlUZXh0dXJlVG9UZXh0dXJlKCpncHVTcmNWaWV3LCAqZ3B1RHN0Vmlldywgc2l6ZSk7CisgICAg
bV9jb21tYW5kQnVmZmVyLT5jb3B5VGV4dHVyZVRvVGV4dHVyZShXVEZNb3ZlKCpncHVTcmNWaWV3
KSwgV1RGTW92ZSgqZ3B1RHN0VmlldyksIHNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21t
YW5kQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5k
QnVmZmVyLmgKaW5kZXggYTA5YjdmMWU5N2E4OWRhNjQ3NDliZjYwYjZjNWNmN2QzNzJmNjA3My4u
MGE3MWFmMzg0MWNkY2VhNzViZjgzMTkxMTI4NTJlMTg2YzQ0ZjYyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaApAQCAtNTks
NyArNTksNyBAQCBjbGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29t
bWFuZEJ1ZmZlcj4gY3JlYXRlKFJlZjxHUFVDb21tYW5kQnVmZmVyPiYmKTsKIAotICAgIGNvbnN0
IEdQVUNvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbW1h
bmRCdWZmZXIuZ2V0KCk7IH0KKyAgICBHUFVDb21tYW5kQnVmZmVyJiBjb21tYW5kQnVmZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb21tYW5kQnVmZmVyLmdldCgpOyB9CiAKICAgICBSZWZQdHI8V2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXI+IGJlZ2luUmVuZGVyUGFzcyhXZWJHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvciYmKTsKICAgICB2b2lkIGNvcHlCdWZmZXJUb0J1ZmZlcihjb25zdCBXZWJHUFVCdWZm
ZXImLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwgY29uc3QgV2ViR1BVQnVmZmVyJiwgdW5zaWdu
ZWQgbG9uZyBkc3RPZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCBkODMyZWRhZWY3M2I3Mzc4
NGE5NDI1NWQ3YmM0MWVjMTcyNTE3YzU5Li40NDVlOTNhMWE5Y2NmOGVjMDRhNDM3YmJiN2JjYWMw
YzVlNTBjMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKICNp
bmNsdWRlICJHUFVCaW5kR3JvdXBCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVyRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKQEAgLTQxLDcgKzQyLDYgQEAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVQmluZEdyb3VwQmluZGluZy5oIgotI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cERl
c2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCIKICNpbmNsdWRl
ICJXZWJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCkBAIC04
NCw5ICs4NCw5IEBAIFJlZjxXZWJHUFVUZXh0dXJlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVRleHR1
cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yCiAgICAgcmV0dXJuIFdlYkdQVVRl
eHR1cmU6OmNyZWF0ZShXVEZNb3ZlKHRleHR1cmUpKTsKIH0KIAotUmVmPFdlYkdQVUJpbmRHcm91
cExheW91dD4gV2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQmluZEdy
b3VwTGF5b3V0PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIGF1dG8g
bGF5b3V0ID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yIHsgZGVzY3JpcHRvci5iaW5kaW5ncyB9KTsKKyAgICBhdXRvIGxheW91
dCA9IG1fZGV2aWNlLT50cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoZGVzY3JpcHRvcik7CiAgICAg
cmV0dXJuIFdlYkdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXgg
MDU5ODI1YWM1N2RkMDBkYTYwYmJhMmQzNTIxZDg2YTE1ZTA5Mjc2OS4uOTk1Y2NiOWYzYTY1YjY2
MTc1NGFkNDc1MTcwOTEyY2ZlMmM1NjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkdQVURl
dmljZS5oIgogI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXIuaCIKLSNpbmNsdWRlICJXZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUXVldWUuaCIKIAogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTQ4LDYgKzQ3LDcgQEAgY2xhc3MgV2ViR1BVUmVuZGVyUGlw
ZWxpbmU7CiBjbGFzcyBXZWJHUFVTaGFkZXJNb2R1bGU7CiBjbGFzcyBXZWJHUFVUZXh0dXJlOwog
CitzdHJ1Y3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVCdWZmZXJE
ZXNjcmlwdG9yOwogc3RydWN0IEdQVVRleHR1cmVEZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3I7CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8V2Vi
R1BVQnVmZmVyPiBjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKICAg
ICBSZWY8V2ViR1BVVGV4dHVyZT4gY3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYm
KSBjb25zdDsKIAotICAgIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91
cExheW91dChXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OworICAgIFJl
ZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVVBpcGVsaW5l
TGF5b3V0PiBjcmVhdGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3ImJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlQmluZEdyb3VwKFdl
YkdQVUJpbmRHcm91cERlc2NyaXB0b3ImJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCmluZGV4IGZmYjU3NDgyMmQ0ZTQ3NGQ5ZTcz
MjE5NTE1ODExY2E0Yzg1ZGMxNTAuLmM4ZGFmYzdlNWVlNWEzNjk1YWU5NTdkNDA0MTY4OWEyMTA4
MDYzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmlkbApAQCAtMzQsNyArMzQsNyBAQAogICAgIFdlYkdQVUJ1ZmZlciBjcmVhdGVCdWZmZXIoR1BV
QnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVUZXh0dXJlIGNyZWF0ZVRl
eHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKLSAgICBXZWJHUFVCaW5k
R3JvdXBMYXlvdXQgY3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0ZUJp
bmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwog
ICAgIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVCaW5kR3JvdXAgY3Jl
YXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKQEAg
LTUwLDcgKzUwLDYgQEAKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9u
cyBleHRlbnNpb25zOwogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGlt
aXRzOwogCi0gICAgLy8gV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJlKFdlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIC8vIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxl
cihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKIAogICAgIC8vIFdlYkdQVUNv
bXB1dGVQaXBlbGluZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAppbmRl
eCBmMDVkMTFhMDNhNDA0YjFiNzU0MjdiNmJlNmQwOGIxMjYwZmI5ZDgxLi5jYjM1NTJlNjJiZDkw
NDkxNjFhZTEyNmYyZjk1ZjFjMmY2MTI0ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIu
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFuZEJ1ZmZl
ci5jb3B5UmVmKCk7CiB9CiAKLXZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBXZWJHUFVCaW5kR3JvdXAmIGJpbmRHcm91
cCkgY29uc3QKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91
cCh1bnNpZ25lZCBpbmRleCwgV2ViR1BVQmluZEdyb3VwJiBiaW5kR3JvdXApIGNvbnN0CiB7CiAg
ICAgLy8gTWF4aW11bSBudW1iZXIgb2YgYmluZCBncm91cHMgc3VwcG9ydGVkIGluIFdlYiBHUFUu
CiAgICAgaWYgKGluZGV4ID49IDQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmluZGV4IGU0
YmIzNWEzM2NkOGQ0ZjVhMzljNWVlMGIzZmU1YTczY2I1N2IzY2MuLmY2ZjliYjlhMzIyYzVhZDdl
YmNkOTc5YTlmNjQ0MzhiNzk3MTJiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBSZWY8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gZW5k
UGFzcygpOwotICAgIHZvaWQgc2V0QmluZEdyb3VwKHVuc2lnbmVkIGxvbmcsIFdlYkdQVUJpbmRH
cm91cCYpIGNvbnN0OworICAgIHZvaWQgc2V0QmluZEdyb3VwKHVuc2lnbmVkLCBXZWJHUFVCaW5k
R3JvdXAmKSBjb25zdDsKICAgICB2b2lkIHNldFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4mJik7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVF1ZXVlLmNwcAppbmRleCBiMzc2NmQ0N2ZmNWVmYmI1ZWJkM2RmOGY3NDgyNjkwNmFi
ZDA3NTE5Li5iNzVkZDc1MmQ5MWVhNThkNTEwMzI3YmNkNTMzNzQ5ZDhiYzdjNDE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCkBAIC00Niw3ICs0
Niw3IEBAIFdlYkdQVVF1ZXVlOjpXZWJHUFVRdWV1ZShSZWY8R1BVUXVldWU+JiYgcXVldWUpCiAK
IHZvaWQgV2ViR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZm
ZXI+PiYmIGJ1ZmZlcnMpCiB7Ci0gICAgYXV0byBncHVCdWZmZXJzID0gYnVmZmVycy5tYXAoW10g
KGNvbnN0IGF1dG8mIGJ1ZmZlcikgLT4gUmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+IHsKKyAg
ICBhdXRvIGdwdUJ1ZmZlcnMgPSBidWZmZXJzLm1hcChbXSAoYXV0byYgYnVmZmVyKSAtPiBSZWY8
R1BVQ29tbWFuZEJ1ZmZlcj4gewogICAgICAgICByZXR1cm4gYnVmZmVyLT5jb21tYW5kQnVmZmVy
KCk7CiAgICAgfSk7CiAgICAgbV9xdWV1ZS0+c3VibWl0KFdURk1vdmUoZ3B1QnVmZmVycykpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCmluZGV4IGJhZDE0Y2E5ODI1NTI2OGJiNWEwOTA4M2IwMjIz
ODc1MTlhZTNlN2QuLjQ0NmRkNjMzNzY0NjFkZDVkMWVmNDI0MWI5NDZkMjFlZWVjOWFlZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKQEAgLTU2LDIxICs1NiwyNSBAQCBPcHRpb25hbDxHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvcj4gV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmFzR1BVUmVu
ZGVyUGFzc0RlcwogICAgIFZlY3RvcjxHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3Jp
cHRvcj4gZ3B1Q29sb3JBdHRhY2htZW50czsKIAogICAgIGZvciAoY29uc3QgYXV0byYgY29sb3JB
dHRhY2htZW50IDogY29sb3JBdHRhY2htZW50cykgewotICAgICAgICBpZiAoIWNvbG9yQXR0YWNo
bWVudC5hdHRhY2htZW50IHx8ICFjb2xvckF0dGFjaG1lbnQuYXR0YWNobWVudC0+dGV4dHVyZSgp
LT5pc091dHB1dEF0dGFjaG1lbnQoKSkgeworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudC5h
dHRhY2htZW50CisgICAgICAgICAgICB8fCAhY29sb3JBdHRhY2htZW50LmF0dGFjaG1lbnQtPnRl
eHR1cmUoKQorICAgICAgICAgICAgfHwgIWNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50LT50ZXh0
dXJlKCktPmlzT3V0cHV0QXR0YWNobWVudCgpKSB7CiAgICAgICAgICAgICBMT0coV2ViR1BVLCAi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6IEludmFsaWQgYXR0YWNobWVudCBpbiBHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvciEiKTsKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgICAgIH0KLSAgICAgICAgZ3B1Q29sb3JBdHRhY2htZW50cy5hcHBlbmQo
R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgeyBjb2xvckF0dGFjaG1lbnQu
YXR0YWNobWVudC0+dGV4dHVyZSgpLCBjb2xvckF0dGFjaG1lbnQgfSk7CisgICAgICAgIGdwdUNv
bG9yQXR0YWNobWVudHMuYXBwZW5kKEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yIHsgY29sb3JBdHRhY2htZW50LmF0dGFjaG1lbnQtPnRleHR1cmUoKS5yZWxlYXNlTm9uTnVs
bCgpLCBjb2xvckF0dGFjaG1lbnQgfSk7CiAgICAgfQogCiAgICAgT3B0aW9uYWw8R1BVUmVuZGVy
UGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnREZXNjcmlwdG9yPiBncHVEZXB0aEF0dGFjaG1lbnQ7
CiAKICAgICBpZiAoZGVwdGhTdGVuY2lsQXR0YWNobWVudCkgewotICAgICAgICBpZiAoIWRlcHRo
U3RlbmNpbEF0dGFjaG1lbnQtPmF0dGFjaG1lbnQgfHwgIWRlcHRoU3RlbmNpbEF0dGFjaG1lbnQt
PmF0dGFjaG1lbnQtPnRleHR1cmUoKS0+aXNPdXRwdXRBdHRhY2htZW50KCkpIHsKKyAgICAgICAg
aWYgKCFkZXB0aFN0ZW5jaWxBdHRhY2htZW50LT5hdHRhY2htZW50CisgICAgICAgICAgICB8fCAh
ZGVwdGhTdGVuY2lsQXR0YWNobWVudC0+YXR0YWNobWVudC0+dGV4dHVyZSgpCisgICAgICAgICAg
ICB8fCAhZGVwdGhTdGVuY2lsQXR0YWNobWVudC0+YXR0YWNobWVudC0+dGV4dHVyZSgpLT5pc091
dHB1dEF0dGFjaG1lbnQoKSkgewogICAgICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yOiBJbnZhbGlkIGF0dGFjaG1lbnQgaW4gR1BVUmVuZGVyUGFzc0RlcHRoU3Rl
bmNpbEF0dGFjaG1lbnREZXNjcmlwdG9yISIpOwogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICAgICAgfQotICAgICAgICBncHVEZXB0aEF0dGFjaG1lbnQgPSBHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudERlc2NyaXB0b3IgeyBkZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50LT5hdHRhY2htZW50LT50ZXh0dXJlKCksICpkZXB0aFN0ZW5jaWxBdHRhY2htZW50IH07Cisg
ICAgICAgIGdwdURlcHRoQXR0YWNobWVudCA9IEdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50RGVzY3JpcHRvciB7IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQtPmF0dGFjaG1lbnQtPnRl
eHR1cmUoKS5yZWxlYXNlTm9uTnVsbCgpLCAqZGVwdGhTdGVuY2lsQXR0YWNobWVudCB9OwogICAg
IH0KIAogICAgIHJldHVybiBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciB7IFdURk1vdmUoZ3B1Q29s
b3JBdHRhY2htZW50cyksIFdURk1vdmUoZ3B1RGVwdGhBdHRhY2htZW50KSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0MTMyMGFmOTBlNTc5ZmZiZmM3OTQ1OTk0YzM2
NjgwZTI0MDQxNWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShXRUJHUFUpCi0KLSNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXRCaW5k
aW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgV2ViR1BVU2hhZGVyU3RhZ2VC
aXQgPSBHUFVTaGFkZXJTdGFnZUJpdDsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlQml0LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWVlYTdhNDg4NWVkY2M0ZTllMzIxZTAzMWE2ZmQ4ZGNmYWMyNWRlMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZUJpdC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwz
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2Vi
L2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCi0KLXR5cGVkZWYgdW5zaWduZWQgbG9u
ZyB1MzI7Ci0KLVsKLSAgICBDb25kaXRpb25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgV2Vi
R1BVU2hhZGVyU3RhZ2VCaXQgewotICAgIGNvbnN0IHUzMiBOT05FID0gMDsKLSAgICBjb25zdCB1
MzIgVkVSVEVYID0gMTsKLSAgICBjb25zdCB1MzIgRlJBR01FTlQgPSAyOwotICAgIGNvbnN0IHUz
MiBDT01QVVRFID0gNDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVRleHR1cmUuY3BwCmluZGV4IGQ1ZDNiZTZjYTkzNjM1ZWRiMjI3NDkxM2E3Y2MxYThjNDc0
M2FhYmQuLjE2YTI2MzY5OGZlMGM1ZjA4MjcxMGM2ODljNzQ3ZDU3YjE2MzAxOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCkBAIC00Miwx
MSArNDIsMzAgQEAgV2ViR1BVVGV4dHVyZTo6V2ViR1BVVGV4dHVyZShSZWZQdHI8R1BVVGV4dHVy
ZT4mJiB0ZXh0dXJlKQogewogfQogCi1SZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+IFdlYkdQVVRl
eHR1cmU6OmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpCitSZWY8V2ViR1BVVGV4dHVyZVZpZXc+
IFdlYkdQVVRleHR1cmU6OmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpCiB7Ci0gICAgaWYgKGF1
dG8gZ3B1VGV4dHVyZSA9IG1fdGV4dHVyZS0+Y3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3KCkpCi0g
ICAgICAgIHJldHVybiBXZWJHUFVUZXh0dXJlVmlldzo6Y3JlYXRlKGdwdVRleHR1cmUucmVsZWFz
ZU5vbk51bGwoKSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFtX3RleHR1cmUpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVRleHR1cmU6OmNyZWF0ZURlZmF1bHRUZXh0dXJlVmll
dygpOiBJbnZhbGlkIG9wZXJhdGlvbiEiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdQVVRleHR1cmVW
aWV3OjpjcmVhdGUobnVsbHB0cik7CisgICAgfQorCisgICAgYXV0byB2aWV3ID0gV2ViR1BVVGV4
dHVyZVZpZXc6OmNyZWF0ZShtX3RleHR1cmUtPnRyeUNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygp
KTsKKyAgICBtX3RleHR1cmVWaWV3cy5hcHBlbmQodmlldy5jb3B5UmVmKCkpOworICAgIHJldHVy
biB2aWV3OworfQorCit2b2lkIFdlYkdQVVRleHR1cmU6OmRlc3Ryb3koKQoreworICAgIGlmICgh
bV90ZXh0dXJlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVUZXh0dXJlOjpkZXN0cm95KCk6
IEludmFsaWQgb3BlcmF0aW9uISIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGZvciAo
YXV0byYgdmlldyA6IG1fdGV4dHVyZVZpZXdzKQorICAgICAgICB2aWV3LT5kZXN0cm95KCk7Cisg
ICAgbV90ZXh0dXJlVmlld3MuY2xlYXIoKTsKKworICAgIG1fdGV4dHVyZS0+ZGVzdHJveSgpOwor
ICAgIG1fdGV4dHVyZSA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaAppbmRleCA2MmZl
ZDk4ZTA4Yzk3ZmYyMGU3YzA2NmViMmQ5NDdlYzM5MDFmMzM0Li45NjNkNTA5ZjUwYTJhYjY2MjM1
Njk2NWRjYWE0MjEyN2YwY2I4Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVGV4dHVyZS5oCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMTIgKzQzLDE0IEBAIHB1YmxpYzoK
IAogICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0
dXJlOyB9CiAKLSAgICBSZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+IGNyZWF0ZURlZmF1bHRUZXh0
dXJlVmlldygpOworICAgIFJlZjxXZWJHUFVUZXh0dXJlVmlldz4gY3JlYXRlRGVmYXVsdFRleHR1
cmVWaWV3KCk7CisgICAgdm9pZCBkZXN0cm95KCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
V2ViR1BVVGV4dHVyZShSZWZQdHI8R1BVVGV4dHVyZT4mJik7CiAKICAgICBSZWZQdHI8R1BVVGV4
dHVyZT4gbV90ZXh0dXJlOworICAgIFZlY3RvcjxSZWY8V2ViR1BVVGV4dHVyZVZpZXc+PiBtX3Rl
eHR1cmVWaWV3czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5pZGwKaW5kZXggN2FkZTgyYTY3MTcx
MmUxMmRkMGQxYjEyMTY5ZTFiYjY1Yjc3OWU4NS4uNDQ5NTcyY2RhOTllZjNiNjNjYzY3YWFkNjIw
OGVlZmY3NTE1ODIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVVGV4dHVyZS5pZGwKQEAgLTMwLDkgKzMwLDggQEAKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCiBdIGludGVyZmFjZSBXZWJHUFVUZXh0dXJlIHsKICAgICBXZWJHUFVUZXh0dXJlVmll
dyBjcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKTsKLS8qIE5vdCBZZXQgSW1wbGVtZW50ZWQ6Ci0g
ICAgV2ViR1BVVGV4dHVyZVZpZXcgY3JlYXRlVGV4dHVyZVZpZXcoV2ViR1BVVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yIGRlc2MpOwotCiAgICAgdm9pZCBkZXN0cm95KCk7Ci0qLworCisgICAgLy8gTm90
IFlldCBJbXBsZW1lbnRlZDoKKyAgICAvLyBXZWJHUFVUZXh0dXJlVmlldyBjcmVhdGVUZXh0dXJl
VmlldyhXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IgZGVzYyk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuY3BwCmluZGV4IDcy
NjU5NDVhMjNlOWMxMGQyNmE3MDNkZmU0NDJkMGY0N2FiMGYwMDguLjgzNjIxNmEwZWEwYjk1ZDAw
ZDcyNGU5YTgwZDY3MjlkMWEwZGUwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAKQEAgLTI4LDE4ICsyOCwyOSBAQAogCiAj
aWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8V2ViR1BVVGV4dHVyZVZpZXc+IFdlYkdQVVRleHR1cmVWaWV3Ojpj
cmVhdGUoUmVmPEdQVVRleHR1cmU+JiYgdmlldykKK1JlZjxXZWJHUFVUZXh0dXJlVmlldz4gV2Vi
R1BVVGV4dHVyZVZpZXc6OmNyZWF0ZShSZWZQdHI8R1BVVGV4dHVyZT4mJiB2aWV3KQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVRleHR1cmVWaWV3KFdURk1vdmUodmlldykpKTsK
IH0KIAotV2ViR1BVVGV4dHVyZVZpZXc6OldlYkdQVVRleHR1cmVWaWV3KFJlZjxHUFVUZXh0dXJl
PiYmIHZpZXcpCitXZWJHUFVUZXh0dXJlVmlldzo6V2ViR1BVVGV4dHVyZVZpZXcoUmVmUHRyPEdQ
VVRleHR1cmU+JiYgdmlldykKICAgICA6IG1fdGV4dHVyZShXVEZNb3ZlKHZpZXcpKQogewogfQog
Cit2b2lkIFdlYkdQVVRleHR1cmVWaWV3OjpkZXN0cm95KCkKK3sKKyAgICBpZiAoIW1fdGV4dHVy
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90ZXh0dXJlLT5kZXN0cm95KCk7CisgICAgbV90
ZXh0dXJlID0gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVUZXh0dXJlVmlldy5oCmluZGV4IDEyM2Y0NDBjYWZiYTkxMjg3NDgyZDMxNDVlYzFkNjkz
MTdlY2QzNjYuLjEwYTE5MTk2N2E2MjllY2MxNTk2NDE2YjAyNGM1YmUxOGM5M2M3NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaApA
QCAtMjcsMjEgKzI3LDI1IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiR1BV
VGV4dHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQVVRleHR1cmU7CisKIGNsYXNz
IFdlYkdQVVRleHR1cmVWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVVGV4dHVyZVZpZXc+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVRleHR1cmVWaWV3PiBjcmVhdGUoUmVm
PEdQVVRleHR1cmU+JiYpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVVGV4dHVyZVZpZXc+IGNyZWF0
ZShSZWZQdHI8R1BVVGV4dHVyZT4mJik7CisgICAgfldlYkdQVVRleHR1cmVWaWV3KCkgeyBkZXN0
cm95KCk7IH0KKworICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgeyByZXR1
cm4gbV90ZXh0dXJlOyB9CiAKLSAgICBSZWY8R1BVVGV4dHVyZT4gdGV4dHVyZSgpIHsgcmV0dXJu
IG1fdGV4dHVyZS5jb3B5UmVmKCk7IH0KKyAgICB2b2lkIGRlc3Ryb3koKTsKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgV2ViR1BVVGV4dHVyZVZpZXcoUmVmPEdQVVRleHR1cmU+JiYpOworICAgIGV4
cGxpY2l0IFdlYkdQVVRleHR1cmVWaWV3KFJlZlB0cjxHUFVUZXh0dXJlPiYmKTsKICAgICAKLSAg
ICBSZWY8R1BVVGV4dHVyZT4gbV90ZXh0dXJlOworICAgIFJlZlB0cjxHUFVUZXh0dXJlPiBtX3Rl
eHR1cmU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI1
NzVlNjhiZmZiYWJhZTkyMTY1MGQ0YTliZjZjNDI1MzFhMWQ3OTYuLjkwYmQwNjBjZmE5OTViYTEx
OTZlMWE0Y2I5YzYyZTUxZTA2Y2ZlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNzY5LDYgKzI3Njks
OCBAQCBKU0ZvY3VzRXZlbnQuY3BwCiBKU0ZvbnRGYWNlLmNwcAogSlNGb250RmFjZVNldC5jcHAK
IEpTR1BVQ29sb3IuY3BwCitKU0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuY3BwCitKU0dQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwCiBKU0dQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCiBK
U0dQVUJ1ZmZlclVzYWdlLmNwcAogSlNHUFVDb21wYXJlRnVuY3Rpb24uY3BwCkBAIC0yNzc3LDYg
KzI3NzksNyBAQCBKU0dQVUV4dGVudDNELmNwcAogSlNHUFVMb2FkT3AuY3BwCiBKU0dQVU9yaWdp
bjNELmNwcAogSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCitKU0dQVVNoYWRlclN0YWdl
Qml0LmNwcAogSlNHUFVTdG9yZU9wLmNwcAogSlNHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKIEpT
R1BVVGV4dHVyZURpbWVuc2lvbi5jcHAKQEAgLTMzMTYsOCArMzMxOSw2IEBAIEpTV2ViR1BVQmlu
ZEdyb3VwLmNwcAogSlNXZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmNwcAogSlNXZWJHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVCaW5kR3JvdXBMYXlvdXQuY3BwCi1KU1dlYkdQVUJp
bmRHcm91cExheW91dEJpbmRpbmcuY3BwCi1KU1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuY3BwCiBKU1dlYkdQVUJ1ZmZlci5jcHAKIEpTV2ViR1BVQnVmZmVyQmluZGluZy5jcHAKIEpT
V2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAKQEAgLTMzMzgsNyArMzMzOSw2IEBAIEpTV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuY3BwCiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAKIEpT
V2ViR1BVU2hhZGVyTW9kdWxlLmNwcAogSlNXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNw
cAotSlNXZWJHUFVTaGFkZXJTdGFnZUJpdC5jcHAKIEpTV2ViR1BVU3dhcENoYWluLmNwcAogSlNX
ZWJHUFVUZXh0dXJlLmNwcAogSlNXZWJHUFVUZXh0dXJlVmlldy5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZjA5MDliMDNl
MDM1M2Q0MDk4MGFkMTY0ZGNjNjE5MmM1YmM1MmE5Li40MDJkZGM0Zjc4MTIwMjQ1NzUzMjFmZTkw
MDg2NTRmNDQ5NjIxN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzk2OCw3ICsxMzk2OCw2IEBACiAJCUQwMjZGNDg5MjIw
QTUzOTgwMEFDNUY0OSAvKiBHUFVUZXh0dXJlRGltZW5zaW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVUZXh0dXJl
RGltZW5zaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAyNkY0OEIyMjBB
NUIwQjAwQUM1RjQ5IC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVUZXh0dXJl
RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMjZGNDhDMjIw
QTVCQUQwMEFDNUY0OSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
UFVUZXh0dXJlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMDJC
ODNFRDIxQzgzOTdBMDBGODU0NzMgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwMkMyNjkyMjE4MTQxNkQwMEQ4MThFNCAvKiBHUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMkY4NTRFMjE2ODJBNEEwMDg4RUU3NCAvKiBX
ZWJNZXRhbENvbW1hbmRRdWV1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJGODU1MDIxNjgyQTU2MDA4OEVFNzQgLyog
V2ViTWV0YWxDb21wdXRlQ29tbWFuZEVuY29kZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYk1ldGFsQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0MDY4LDggKzE0MDY3LDYgQEAKIAkJRDA2RUY1NTMyMjBCQTI2QTAwMTg3MjRF
IC8qIEdQVVV0aWxzTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVVdGlsc01ldGFs
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDdERUFCNzBBMzY1NTRBMDBDQTMw
RjggLyogSW5zZXJ0TGlzdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc2VydExpc3RDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDA3REVBQjgwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNlcnRMaXN0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMDgzRDk4NDIxQzQ4MDUwMDA4RThFRkYgLyogR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwODNEOTg2
MjFDNDgxM0UwMDhFOEVGRiAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaDsgcGF0aCA9IE1v
ZHVsZXMvc3RyZWFtcy9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRDA4NDAzM0EyMjFDQkY1NDAwMDA3MjA1IC8qIEdQVUJ1
ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMDg0MDMzRDIyMUUxODY0MDAwMDcyMDUgLyogV2ViR1BVQmluZEdy
b3VwRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NDNBNEEyMEZFQkUz
RDAwRkU4NjBFIC8qIEdyYXBoaWNzQ29udGV4dDNETWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmFwaGljc0NvbnRleHQzRE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE0MTAwLDEwICsxNDA5Nyw2IEBACiAJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVh
dGVMaW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcmVhdGVM
aW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIwNTU2NzA5QzY3
MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMEI4QkIwMTIxQzQ2RTc4MDAwQzc2ODEgLyogR1BVQmluZEdyb3VwTGF5
b3V0QmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwQjhCQjAzMjFDNDcxMUQwMDBDNzY4MSAv
KiBXZWJHUFVTaGFkZXJTdGFnZUJpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTaGFkZXJTdGFn
ZUJpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMEI4QkIwNDIxQzQ3MTFEMDAw
Qzc2ODEgLyogV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVNoYWRlclN0YWdl
Qml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBCOEJCMDUyMUM0NzI1NjAw
MEM3NjgxIC8qIFdlYkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlEMEI4QkIwNjIxQzQ3MjU2MDAwQzc2ODEgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQkM1NDQ4MTQ0M0FDNEEwMEUxMDVEQSAvKiBDYWNoZWRT
dHlsZVNoZWV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hl
ZFN0eWxlU2hlZXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCRDRG
NUExNDA4ODUwRjAwNjgzOUI2IC8qIERpY3RhdGlvbkNvbW1hbmRJT1MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uQ29tbWFuZElPUy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQkQ0RjVCMTQwODg1MEYwMDY4MzlCNiAvKiBEaWN0
YXRpb25Db21tYW5kSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3Rh
dGlvbkNvbW1hbmRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTM4LDYg
KzE0MTMxLDkgQEAKIAkJRDBDQUFFOUUyMTY4MjRBODAwMUM5MUM3IC8qIFdlYk1ldGFsQ29tbWFu
ZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMENDQTk0OTIyMjk5Rjk3MDA2OTc5QjYg
LyogR1BVT3JpZ2luM0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVT3JpZ2luM0QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDQ0E5NEEyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdp
bjNELmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBHUFVPcmlnaW4zRC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwRDY5QzlDMjIyRTAwQzIwMDMyOTI3RSAvKiBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBENjlDOUQyMjJFMDBDMjAwMzI5MjdFIC8qIEdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ2OUM5RjIyMkUw
MTVFMDAzMjkyN0UgLyogR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
RDg2NDg3MjFCNjRDQUEwMDNDOTgzQyAvKiBHUFVCdWZmZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdQVUJ1ZmZlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDBEODY0OEMyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEODY0
OEQyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxNTYs
NiArMTQxNTIsOCBAQAogCQlEMERBMEJFNDIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENo
YWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMERBMEJFNTIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENoYWlu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwREU4RkI4MjIyRTA5RTIwMDg4MjU1MCAvKiBHUFVTaGFkZXJTdGFnZUJpdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHUFVTaGFkZXJTdGFnZUJpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMERFOEZCOTIyMkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEdQVVNoYWRlclN0YWdlQml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDBFQUNGNzYyMTkzNzIyODAwMEZBNzVDIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVQ29tbWFuZEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMEVBQ0Y3NzIxOTM3MjI4MDAwRkE3NUMgLyogV2ViR1BVQ29tbWFuZEJ1ZmZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBFQUNGNzgyMTkzNzIyODAwMEZBNzVDIC8qIFdlYkdQ
VUNvbW1hbmRCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUNvbW1hbmRCdWZmZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg0NjIsOCArMTg0NjAsNiBAQAogCQkJCUQwQkUxMDRF
MjFFNjk1RTIwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXBCaW5kaW5nLmggKi8sCiAJCQkJRDBCRTEw
NTEyMUU2QTcwRTAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCAqLywKIAkJCQlE
MDI0NTREMDIxQzRBNDFDMDBCNzM2MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmggKi8sCi0JCQkJ
RDBCOEJCMDEyMUM0NkU3ODAwMEM3NjgxIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAq
LywKLQkJCQlEMDgzRDk4NDIxQzQ4MDUwMDA4RThFRkYgLyogR1BVQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvci5oICovLAogCQkJCUQwODQwMzNBMjIxQ0JGNTQwMDAwNzIwNSAvKiBHUFVCdWZmZXIu
Y3BwICovLAogCQkJCUQwRDg2NDkyMjFCNzYwRjIwMDNDOTgzQyAvKiBHUFVCdWZmZXIuaCAqLywK
IAkJCQlEMEJFMTA0QTIxRTY4NzJGMDBFNDJBODkgLyogR1BVQnVmZmVyQmluZGluZy5oICovLApA
QCAtMjYwNjgsNiArMjYwNjQsMTAgQEAKIAkJCQlEMDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyog
RE9NV2luZG93V2ViR1BVLmNwcCAqLywKIAkJCQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyog
RE9NV2luZG93V2ViR1BVLmggKi8sCiAJCQkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERP
TVdpbmRvd1dlYkdQVS5pZGwgKi8sCisJCQkJRDBCOEJCMDEyMUM0NkU3ODAwMEM3NjgxIC8qIEdQ
VUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAqLywKKwkJCQlEMEQ2OUM5RjIyMkUwMTVFMDAzMjky
N0UgLyogR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGwgKi8sCisJCQkJRDBENjlDOUMyMjJF
MDBDMjAwMzI5MjdFIC8qIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCAqLywKKwkJCQlE
MEQ2OUM5RDIyMkUwMEMyMDAzMjkyN0UgLyogR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5p
ZGwgKi8sCiAJCQkJRDAxQjgxMTkyMjEzNUVCOTAwNjI3QjZDIC8qIEdQVUJ1ZmZlckRlc2NyaXB0
b3IuaWRsICovLAogCQkJCUQwMUI4MTFDMjIxMzYyNzMwMDYyN0I2QyAvKiBHUFVCdWZmZXJVc2Fn
ZS5pZGwgKi8sCiAJCQkJRDAxQjgxMTIyMjEyNUFGQzAwNjI3QjZDIC8qIEdQVUNvbG9yLmlkbCAq
LywKQEAgLTI2MDc4LDYgKzI2MDc4LDggQEAKIAkJCQlEMENDQTk0OTIyMjk5Rjk3MDA2OTc5QjYg
LyogR1BVT3JpZ2luM0QuaCAqLywKIAkJCQlEMENDQTk0QTIyMjk5Rjk3MDA2OTc5QjYgLyogR1BV
T3JpZ2luM0QuaWRsICovLAogCQkJCUQwMkMyNjkyMjE4MTQxNkQwMEQ4MThFNCAvKiBHUFVSZXF1
ZXN0QWRhcHRlck9wdGlvbnMuaWRsICovLAorCQkJCUQwREU4RkI4MjIyRTA5RTIwMDg4MjU1MCAv
KiBHUFVTaGFkZXJTdGFnZUJpdC5oICovLAorCQkJCUQwREU4RkI5MjIyRTA5RTIwMDg4MjU1MCAv
KiBHUFVTaGFkZXJTdGFnZUJpdC5pZGwgKi8sCiAJCQkJRDA4QUEwMzEyMjBEMENFNjAwNThDNTAy
IC8qIEdQVVN0b3JlT3AuaWRsICovLAogCQkJCUQwMjZGNDhCMjIwQTVCMEIwMEFDNUY0OSAvKiBH
UFVUZXh0dXJlRGVzY3JpcHRvci5pZGwgKi8sCiAJCQkJRDAyNkY0ODkyMjBBNTM5ODAwQUM1RjQ5
IC8qIEdQVVRleHR1cmVEaW1lbnNpb24uaWRsICovLApAQCAtMjYxMDAsMTAgKzI2MTAyLDYgQEAK
IAkJCQlEMDAzMjg3QTIxQzg2NDVCMDA2MjJBQTYgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0LmNw
cCAqLywKIAkJCQlEMDAzMjg3OTIxQzg2NDVCMDA2MjJBQTYgLyogV2ViR1BVQmluZEdyb3VwTGF5
b3V0LmggKi8sCiAJCQkJRDAwMzI4N0IyMUM4NjQ1QjAwNjIyQUE2IC8qIFdlYkdQVUJpbmRHcm91
cExheW91dC5pZGwgKi8sCi0JCQkJRDBCOEJCMDUyMUM0NzI1NjAwMEM3NjgxIC8qIFdlYkdQVUJp
bmRHcm91cExheW91dEJpbmRpbmcuaCAqLywKLQkJCQlEMEI4QkIwNjIxQzQ3MjU2MDAwQzc2ODEg
LyogV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGwgKi8sCi0JCQkJRDA4M0Q5ODYyMUM0
ODEzRTAwOEU4RUZGIC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCAqLywKLQkJ
CQlEMDJCODNFRDIxQzgzOTdBMDBGODU0NzMgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvci5pZGwgKi8sCiAJCQkJRDBEODY0OEQyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZl
ci5jcHAgKi8sCiAJCQkJRDBEODY0OEMyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5o
ICovLAogCQkJCUQwRDg2NDhFMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICov
LApAQCAtMjYxNTUsOCArMjYxNTMsNiBAQAogCQkJCUQwNjE1RkNFMjE3RkU1QzYwMDhBNDhBOCAv
KiBXZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLAogCQkJCUQwNjBEODg3MjE4MjY5NzAwMDMzOTMx
OCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDA2MEQ4ODQyMTgy
NUQ1RjAwMzM5MzE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsICovLAotCQkJ
CUQwQjhCQjAzMjFDNDcxMUQwMDBDNzY4MSAvKiBXZWJHUFVTaGFkZXJTdGFnZUJpdC5oICovLAot
CQkJCUQwQjhCQjA0MjFDNDcxMUQwMDBDNzY4MSAvKiBXZWJHUFVTaGFkZXJTdGFnZUJpdC5pZGwg
Ki8sCiAJCQkJRDBEQTBCRTUyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5jcHAg
Ki8sCiAJCQkJRDBEQTBCRTQyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5oICov
LAogCQkJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaWRsICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CmluZGV4IDdiZTI0M2VlMGIzN2Y0NGI0MWMxOTVlNDlmNThkNGUxNjUzNDk5NmEuLmQ5NWRmYmQz
ZWFlZDhhYzBlMDFkOTVmMmE0NzViZTc3ODg0ZDc5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTgyLDYgKzgyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEdhbWVwYWRCdXR0b24pIFwKICAgICBtYWNybyhH
YW1lcGFkRXZlbnQpIFwKICAgICBtYWNybyhHUFVCdWZmZXJVc2FnZSkgXAorICAgIG1hY3JvKEdQ
VVNoYWRlclN0YWdlQml0KSBcCiAgICAgbWFjcm8oR1BVVGV4dHVyZVVzYWdlKSBcCiAgICAgbWFj
cm8oSFRNTEF0dGFjaG1lbnRFbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTEF1ZGlvRWxlbWVudCkg
XApAQCAtMjA4LDcgKzIwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhXZWJH
UFVSZW5kZXJQYXNzRW5jb2RlcikgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBc
CiAgICAgbWFjcm8oV2ViR1BVU2hhZGVyTW9kdWxlKSBcCi0gICAgbWFjcm8oV2ViR1BVU2hhZGVy
U3RhZ2VCaXQpIFwKICAgICBtYWNybyhXZWJHUFVTd2FwQ2hhaW4pIFwKICAgICBtYWNybyhXZWJH
UFVUZXh0dXJlKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZVZpZXcpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlv
dXQuaAppbmRleCA5ZDYwOWFjOTljYTU0MzA1ODI2MzNjMWM0ZmM5OTBlMmQwNWQ2MTc3Li5iYTg2
NmE5ZWQyYjZmNzIxNzc3ZTgxNjhkNDhkOGY0MjQxZDBkZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dC5o
CkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEdQVURldmljZTsKIAogY2xhc3MgR1BVQmluZEdyb3Vw
TGF5b3V0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IHRyeUNyZWF0ZShjb25zdCBH
UFVEZXZpY2UmLCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpOworICAgIHN0YXRpYyBS
ZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29u
c3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpOwogCiAgICAgdXNpbmcgQmluZGluZ3NN
YXBUeXBlID0gSGFzaE1hcDx1bnNpZ25lZCBsb25nIGxvbmcsIEdQVUJpbmRHcm91cExheW91dEJp
bmRpbmcsIFdURjo6SW50SGFzaDx1bnNpZ25lZCBsb25nIGxvbmc+LCBXVEY6OlVuc2lnbmVkV2l0
aFplcm9LZXlIYXNoVHJhaXRzPHVuc2lnbmVkIGxvbmcgbG9uZz4+OwogICAgIGNvbnN0IEJpbmRp
bmdzTWFwVHlwZSYgYmluZGluZ3NNYXAoKSBjb25zdCB7IHJldHVybiBtX2JpbmRpbmdzTWFwOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWUxMGQ5YmQ0ODM0NWU4Yjk1MTI2ZDM1YjMwZmUzM2M3MjE2NmU2Yy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oCisrKyAvZGV2L251
bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKFdFQkdQVSkKLQotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdXNpbmcgR1BVU2hhZGVyU3RhZ2VGbGFncyA9IHVuc2lnbmVkIGxvbmc7Ci0K
LWNsYXNzIEdQVVNoYWRlclN0YWdlQml0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVU2hhZGVyU3Rh
Z2VCaXQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgR1BVU2hhZGVyU3RhZ2VGbGFncyBO
T05FID0gMDsKLSAgICBzdGF0aWMgY29uc3QgR1BVU2hhZGVyU3RhZ2VGbGFncyBWRVJURVggPSAx
OwotICAgIHN0YXRpYyBjb25zdCBHUFVTaGFkZXJTdGFnZUZsYWdzIEZSQUdNRU5UID0gMjsKLSAg
ICBzdGF0aWMgY29uc3QgR1BVU2hhZGVyU3RhZ2VGbGFncyBDT01QVVRFID0gNDsKLX07Ci0KLXN0
cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nIHsKLSAgICBlbnVtIGNsYXNzIEJpbmRpbmdU
eXBlIHsKLSAgICAgICAgVW5pZm9ybUJ1ZmZlciwKLSAgICAgICAgU2FtcGxlciwKLSAgICAgICAg
U2FtcGxlZFRleHR1cmUsCi0gICAgICAgIFN0b3JhZ2VCdWZmZXIKLSAgICB9OwotCi0gICAgdW5z
aWduZWQgbG9uZyBiaW5kaW5nOwotICAgIEdQVVNoYWRlclN0YWdlRmxhZ3MgdmlzaWJpbGl0eTsK
LSAgICBCaW5kaW5nVHlwZSB0eXBlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzQ3NjQ1NWM0NDg0MzlhMmQ1ZjBh
MTU5Yjk2OGRlOTc2NTY4NzBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi0jaW5jbHVkZSAi
R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oIgotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yIHsKLSAgICBWZWN0b3I8R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZz4gYmluZGluZ3M7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29t
bWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNv
bW1hbmRCdWZmZXIuaAppbmRleCBhNTgyNWMxODhlNDU0YTU1ZTIwNTFiOTVmYTM0NGU4OWJmOGQx
YjdhLi4zYTkyOGJiMGFkZTE2ZmQxYmUzNjYyZGMxMDVjYTVhYmJiZmE0OWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVm
ZmVyLmgKQEAgLTg1LDIzICs4NSwzMiBAQCBwdWJsaWM6CiAKICAgICBQbGF0Zm9ybUNvbW1hbmRC
dWZmZXIqIHBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1D
b21tYW5kQnVmZmVyLmdldCgpOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiYg
dXNlZEJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRCdWZmZXJzOyB9CisgICAgY29uc3Qg
VmVjdG9yPFJlZjxHUFVUZXh0dXJlPj4mIHVzZWRUZXh0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlZFRleHR1cmVzOyB9CisgICAgYm9vbCBpc0VuY29kaW5nUGFzcygpIGNvbnN0IHsgcmV0dXJu
IG1faXNFbmNvZGluZ1Bhc3M7IH0KKworICAgIHZvaWQgc2V0SXNFbmNvZGluZ1Bhc3MoYm9vbCBp
c0VuY29kaW5nKSB7IG1faXNFbmNvZGluZ1Bhc3MgPSBpc0VuY29kaW5nOyB9CiAjaWYgVVNFKE1F
VEFMKQotICAgIE1UTEJsaXRDb21tYW5kRW5jb2RlciAqYmxpdEVuY29kZXIoKSBjb25zdDsKKyAg
ICB+R1BVQ29tbWFuZEJ1ZmZlcigpOworICAgIHZvaWQgZW5kQmxpdEVuY29kaW5nKCk7CiAjZW5k
aWYKIAogICAgIHZvaWQgY29weUJ1ZmZlclRvQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYsIHVuc2ln
bmVkIGxvbmcgc3JjT2Zmc2V0LCBSZWY8R1BVQnVmZmVyPiYmLCB1bnNpZ25lZCBsb25nIGRzdE9m
ZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKLSAgICB2b2lkIGNvcHlCdWZmZXJUb1RleHR1cmUo
Y29uc3QgR1BVQnVmZmVyQ29weVZpZXcmLCBjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmLCBjb25z
dCBHUFVFeHRlbnQzRCYpOwotICAgIHZvaWQgY29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBHUFVU
ZXh0dXJlQ29weVZpZXcmLCBjb25zdCBHUFVCdWZmZXJDb3B5VmlldyYsIGNvbnN0IEdQVUV4dGVu
dDNEJik7Ci0gICAgdm9pZCBjb3B5VGV4dHVyZVRvVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlQ29w
eVZpZXcmLCBjb25zdCBHUFVUZXh0dXJlQ29weVZpZXcmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwor
ICAgIHZvaWQgY29weUJ1ZmZlclRvVGV4dHVyZShHUFVCdWZmZXJDb3B5VmlldyYmLCBHUFVUZXh0
dXJlQ29weVZpZXcmJiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKKyAgICB2b2lkIGNvcHlUZXh0dXJl
VG9CdWZmZXIoR1BVVGV4dHVyZUNvcHlWaWV3JiYsIEdQVUJ1ZmZlckNvcHlWaWV3JiYsIGNvbnN0
IEdQVUV4dGVudDNEJik7CisgICAgdm9pZCBjb3B5VGV4dHVyZVRvVGV4dHVyZShHUFVUZXh0dXJl
Q29weVZpZXcmJiwgR1BVVGV4dHVyZUNvcHlWaWV3JiYsIGNvbnN0IEdQVUV4dGVudDNEJik7CiAK
ICAgICB2b2lkIHVzZUJ1ZmZlcihSZWY8R1BVQnVmZmVyPiYmIGJ1ZmZlcikgeyBtX3VzZWRCdWZm
ZXJzLmFwcGVuZChXVEZNb3ZlKGJ1ZmZlcikpOyB9CisgICAgdm9pZCB1c2VUZXh0dXJlKFJlZjxH
UFVUZXh0dXJlPiYmIHRleHR1cmUpIHsgbV91c2VkVGV4dHVyZXMuYXBwZW5kKFdURk1vdmUodGV4
dHVyZSkpOyB9CiAKIHByaXZhdGU6CiAgICAgR1BVQ29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNvbW1h
bmRCdWZmZXJTbWFydFB0ciYmKTsKIAogICAgIFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0UHRy
IG1fcGxhdGZvcm1Db21tYW5kQnVmZmVyOwogICAgIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4gbV91
c2VkQnVmZmVyczsKKyAgICBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiBtX3VzZWRUZXh0dXJlczsK
KyAgICBib29sIG1faXNFbmNvZGluZ1Bhc3MgPSBmYWxzZTsKICNpZiBVU0UoTUVUQUwpCisgICAg
TVRMQmxpdENvbW1hbmRFbmNvZGVyICpibGl0RW5jb2RlcigpIGNvbnN0OwogICAgIG11dGFibGUg
UmV0YWluUHRyPE1UTEJsaXRDb21tYW5kRW5jb2Rlcj4gbV9ibGl0RW5jb2RlcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5jcHAKaW5kZXggNTEyY2Q1NWFjZmQ4NjEzYjZmMTVkYjVkMTQ1N2FlYmVlMTA3MTVhMC4uN2Vj
MTY1Y2YwOGU1OWE1NmJlYTlhM2YxOWQ5NmQ3ZDkzMDFlN2QyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKQEAgLTU0LDkgKzU0
LDkgQEAgUmVmUHRyPEdQVVRleHR1cmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZShHUFVU
ZXh0dXJlRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IKICAgICByZXR1cm4gR1BVVGV4dHVyZTo6dHJ5
Q3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKIH0KIAotUmVmUHRyPEdQVUJpbmRH
cm91cExheW91dD4gR1BVRGV2aWNlOjp0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CitSZWZQdHI8R1BVQmluZEdy
b3VwTGF5b3V0PiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIHJldHVy
biBHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSgqdGhpcywgV1RGTW92ZShkZXNjcmlwdG9y
KSk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNj
cmlwdG9yKTsKIH0KIAogUmVmPEdQVVBpcGVsaW5lTGF5b3V0PiBHUFVEZXZpY2U6OmNyZWF0ZVBp
cGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmgKaW5kZXggZjIwNjUxN2I2MzBlODhiNzliY2U3MTExNWY0OGExNzI3ZmRhODA5Mi4uNDc2OWUy
ZDIwMzFkNjVhOTZiOTk3NGIxYTEzMzk0ODQ3Y2MxNzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaApAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKEdQVUJ1ZmZlckRl
c2NyaXB0b3ImJik7CiAgICAgUmVmUHRyPEdQVVRleHR1cmU+IHRyeUNyZWF0ZVRleHR1cmUoR1BV
VGV4dHVyZURlc2NyaXB0b3ImJikgY29uc3Q7CiAKLSAgICBSZWZQdHI8R1BVQmluZEdyb3VwTGF5
b3V0PiB0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciYmKSBjb25zdDsKKyAgICBSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiB0cnlDcmVhdGVCaW5k
R3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpIGNvbnN0Owog
ICAgIFJlZjxHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlw
ZWxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVBpcGVsaW5lTGF5b3V0LmNwcAppbmRleCAyMjkzMGI0YzhmM2YyYzc0ZTkyOWNiNTFjMGRhYjM4
ODY2Y2ViYzI5Li45NWRmYmExMjFlZjA4NDg3OWFkNmVhZjY5OWJlZjlhN2RkNTYzYmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVM
YXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQ
aXBlbGluZUxheW91dC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgUmVmPEdQVVBpcGVsaW5lTGF5b3V0
PiBHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYm
IGQKIH0KIAogR1BVUGlwZWxpbmVMYXlvdXQ6OkdQVVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpCi0gICAgOiBtX2JpbmRHcm91cExheW91dHMo
ZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzKQorICAgIDogbV9iaW5kR3JvdXBMYXlvdXRzKFdU
Rk1vdmUoZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKaW5kZXggOWQyNmQ1OTMxMjg3ZDYwZTM5NjE0ZmRlNjkx
ZDZjMGVhZDU4NTE2ZC4uNWIwOWZhNGEwNTI2MzM0ZjBmN2QzZjdkOWRlODkxMWVlZDljY2EwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2RlcihSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4mJiBjb21tYW5kQnVmZmVy
KQogICAgIDogbV9jb21tYW5kQnVmZmVyKFdURk1vdmUoY29tbWFuZEJ1ZmZlcikpCiB7CisgICAg
bV9jb21tYW5kQnVmZmVyLT5zZXRJc0VuY29kaW5nUGFzcyh0cnVlKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCA4OTRj
NDc1MGQxZjg2NGUzMjkzOTdiZWM0ZDQ0MDI4OTY5MjQ2ZjQ2Li5kODllNjI0NjM2NzhlZmQ2YTBm
OWM5MDcwYmZmODY3Mjg5NGVlNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIu
aApAQCAtNDksMjggKzQ5LDI4IEBAIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI+CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIoKSA9IGRlZmF1bHQ7CiAKLSAg
ICB2b2lkIGVuZFBhc3MoKTsKLSAgICB2b2lkIHNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nLCBH
UFVCaW5kR3JvdXAmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUGFzcygpOworICAgIHZvaWQgc2V0
QmluZEdyb3VwKHVuc2lnbmVkLCBHUFVCaW5kR3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAg
ICBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcihSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4mJik7Ci0g
ICAgdmlydHVhbCBQbGF0Zm9ybVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKiBwbGF0Zm9ybVBhc3NF
bmNvZGVyKCkgY29uc3QgPSAwOwogCiAgICAgR1BVQ29tbWFuZEJ1ZmZlciYgY29tbWFuZEJ1ZmZl
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWFuZEJ1ZmZlci5nZXQoKTsgfQorICAgIHZpcnR1YWwg
UGxhdGZvcm1Qcm9ncmFtbWFibGVQYXNzRW5jb2RlciogcGxhdGZvcm1QYXNzRW5jb2RlcigpIGNv
bnN0ID0gMDsKIAogcHJpdmF0ZToKICNpZiBVU0UoTUVUQUwpCi0gICAgdm9pZCBzZXRSZXNvdXJj
ZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kaW5n
UmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nLCBjb25zdCBjaGFyKiBjb25zdCk7Ci0gICAgdmlydHVh
bCB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpID0gMDsKKyAg
ICB2b2lkIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICos
IGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYsIHVuc2lnbmVkLCBjb25zdCBjaGFyKiBjb25zdCk7
CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29k
ZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQsIGNvbnN0IGNoYXIqIGNv
bnN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVzb3VyY2UgKiwgdW5zaWdu
ZWQpID0gMDsKIAogICAgIC8vIFJlbmRlciBjb21tYW5kIGVuY29kZXIgbWV0aG9kcy4KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhZ21lbnRCdWZmZXIoTVRM
QnVmZmVyICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRWZXJ0ZXhCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkLCB1bnNpZ25lZCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25l
ZCwgdW5zaWduZWQpIHsgfQogI2VuZGlmIC8vIFVTRShNRVRBTCkKIAogICAgIFJlZjxHUFVDb21t
YW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXI7Ci0gICAgYm9vbCBtX2lzRW5jb2RpbmcgeyB0cnVl
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVRdWV1ZS5oCmluZGV4IGEzMTRiMGFmMWMyNDQzN2MwZGFm
ZGQ0NGUyMWU0OTQ1MjE2NDM3Y2UuLmY5OGU1NDUwMDk2ZTgyNDIxYjlkYjRiODBjODIzNzgxNGJj
YTA2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVR
dWV1ZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFBsYXRmb3JtUXVldWUqIHBs
YXRmb3JtUXVldWUoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtUXVldWUuZ2V0KCk7IH0KIAot
ICAgIHZvaWQgc3VibWl0KFZlY3RvcjxSZWY8Y29uc3QgR1BVQ29tbWFuZEJ1ZmZlcj4+JiYpOwor
ICAgIHZvaWQgc3VibWl0KFZlY3RvcjxSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4+JiYpOwogCiAgICAg
U3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggYjg1ZTMzMzlmZDc3ZmFjOWQyYWFiM2Y5
MzgzOThlYmE0ODEyOTAzMS4uNzIxMmEyNjk5ZjAyMTE3YmI1Y2NlY2YxMzVhZWEzNWVjM2Y3ZDI2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJl
bmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTUxLDYgKzUxLDcgQEAgY2xhc3MgR1BVUmVu
ZGVyUGFzc0VuY29kZXIgOiBwdWJsaWMgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGFzc0VuY29kZXI+IHRyeUNyZWF0ZShS
ZWY8R1BVQ29tbWFuZEJ1ZmZlcj4mJiwgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3ImJik7CiAKKyAg
ICB2b2lkIGVuZFBhc3MoKSBmaW5hbDsKICAgICB2b2lkIHNldFBpcGVsaW5lKFJlZjxHUFVSZW5k
ZXJQaXBlbGluZT4mJikgZmluYWw7CiAKICAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcnModW5zaWdu
ZWQgbG9uZywgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiYmLCBWZWN0b3I8dW5zaWduZWQgbG9uZyBs
b25nPiYmKTsKQEAgLTY0LDkgKzY1LDkgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShNRVRBTCkKICAg
ICAvLyBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcgotICAgIHZvaWQgdXNlUmVzb3VyY2UoTVRM
UmVzb3VyY2UgKiwgdW5zaWduZWQgbG9uZyB1c2FnZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWZXJ0
ZXhCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGluZGV4KSBmaW5hbDsKLSAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1
bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkgZmluYWw7CisgICAgdm9p
ZCB1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCB1c2FnZSkgZmluYWw7CisgICAg
dm9pZCBzZXRWZXJ0ZXhCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgaW5kZXgpIGZpbmFsOworICAgIHZvaWQgc2V0RnJhZ21lbnRCdWZmZXIoTVRMQnVmZmVyICos
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgaW5kZXgpIGZpbmFsOwogI2VuZGlmIC8vIFVTRShN
RVRBTCkKIAogICAgIFBsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXJTbWFydFB0ciBtX3BsYXRmb3Jt
UmVuZGVyUGFzc0VuY29kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVRleHR1cmUuaAppbmRleCA5YTM2OTNhYjRlNDc3ODAyMjgzOWQ3MTg5ODVkY2Jj
OTBiOGFhYzU1Li5kMTFiZmNjNGFiMGNjMjRmYTkxYmRjNjgyNzJkMTRhYWZjNDAwM2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmgK
QEAgLTUzLDggKzUzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzVHJhbnNmZXJTb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX3VzYWdlLmNvbnRhaW5zKEdQVVRleHR1cmVVc2FnZTo6RmxhZ3M6OlRy
YW5zZmVyU291cmNlKTsgfQogICAgIGJvb2wgaXNUcmFuc2ZlckRlc3RpbmF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV91c2FnZS5jb250YWlucyhHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzOjpUcmFuc2Zl
ckRlc3RpbmF0aW9uKTsgfQogICAgIGJvb2wgaXNPdXRwdXRBdHRhY2htZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV91c2FnZS5jb250YWlucyhHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzOjpPdXRwdXRBdHRh
Y2htZW50KTsgfQorICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNhZ2Uu
Y29udGFpbnNBbnkoeyBHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzOjpUcmFuc2ZlclNvdXJjZSwgR1BV
VGV4dHVyZVVzYWdlOjpGbGFnczo6U2FtcGxlZCB9KTsgfQogCi0gICAgUmVmUHRyPEdQVVRleHR1
cmU+IGNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpOworICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0
cnlDcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKTsKKyAgICB2b2lkIGRlc3Ryb3koKSB7IG1fcGxh
dGZvcm1UZXh0dXJlID0gbnVsbHB0cjsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdQVVRl
eHR1cmUoUGxhdGZvcm1UZXh0dXJlU21hcnRQdHImJiwgT3B0aW9uU2V0PEdQVVRleHR1cmVVc2Fn
ZTo6RmxhZ3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQppbmRl
eCA0MDhiYmI1MDA0OTYwYjdmY2U0ODQ5ODM1NTBhYWRiMDRkOWI1NWI4Li5hZDIzOTdjZGM2NzE1
M2Y2MGMxYjY1YmM4YWQ5NWM3NGQ5YzZlZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91
cExheW91dE1ldGFsLm1tCkBAIC00NSw3ICs0NSw5IEBAIHN0YXRpYyBNVExEYXRhVHlwZSBNVExE
YXRhVHlwZUZvckJpbmRpbmdUeXBlKEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdU
CiAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U2FtcGxl
ZFRleHR1cmU6CiAgICAgICAgIHJldHVybiBNVExEYXRhVHlwZVRleHR1cmU7CiAgICAgY2FzZSBH
UFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6VW5pZm9ybUJ1ZmZlcjoKKyAg
ICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpEeW5hbWljVW5p
Zm9ybUJ1ZmZlcjoKICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdU
eXBlOjpTdG9yYWdlQnVmZmVyOgorICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6
QmluZGluZ1R5cGU6OkR5bmFtaWNTdG9yYWdlQnVmZmVyOgogICAgICAgICByZXR1cm4gTVRMRGF0
YVR5cGVQb2ludGVyOwogICAgIH0KIH0KQEAgLTg1LDcgKzg3LDcgQEAgc3RhdGljIEdQVUJpbmRH
cm91cExheW91dDo6QXJndW1lbnRFbmNvZGVyQnVmZmVyIHRyeUNyZWF0ZUFyZ3VtZW50RW5jb2Rl
ckFuZEJ1ZmYKICAgICByZXR1cm4gYXJnczsKIH07CiAKLVJlZlB0cjxHUFVCaW5kR3JvdXBMYXlv
dXQ+IEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNl
LCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKK1JlZlB0cjxHUFVC
aW5kR3JvdXBMYXlvdXQ+IEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURl
dmljZSYgZGV2aWNlLCBjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQogewogICAgIGlmICghZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkpIHsKICAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IEludmFsaWQgTVRMRGV2
aWNlISIpOwpAQCAtOTcsNyArOTksNyBAQCBSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiBHUFVC
aW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZQogCiAgICAg
Zm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogZGVzY3JpcHRvci5iaW5kaW5ncykgewogICAgICAg
ICBpZiAoIWJpbmRpbmdzTWFwLmFkZChiaW5kaW5nLmJpbmRpbmcsIGJpbmRpbmcpKSB7Ci0gICAg
ICAgICAgICBMT0coV2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogRHVw
bGljYXRlIGJpbmRpbmcgJWx1IGZvdW5kIGluIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IhIiwgYmluZGluZy5iaW5kaW5nKTsKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5k
R3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSgpOiBEdXBsaWNhdGUgYmluZGluZyAlbHUgZm91bmQgaW4g
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciEiLCBiaW5kaW5nLmJpbmRpbmcpOwogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIApAQCAtMTE1LDExICsxMTcsMTEgQEAg
UmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUo
Y29uc3QgR1BVRGV2aWNlJiBkZXZpY2UKICAgICAgICAgbXRsQXJndW1lbnQuZ2V0KCkuZGF0YVR5
cGUgPSBNVExEYXRhVHlwZUZvckJpbmRpbmdUeXBlKGJpbmRpbmcudHlwZSk7CiAgICAgICAgIG10
bEFyZ3VtZW50LmdldCgpLmluZGV4ID0gYmluZGluZy5iaW5kaW5nOwogCi0gICAgICAgIGlmIChi
aW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6VkVSVEVYKQorICAgICAgICBp
ZiAoYmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpWZXJ0ZXgp
CiAgICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7Ci0gICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFn
ZUJpdDo6RlJBR01FTlQpCisgICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFk
ZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQogICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRU
b0FycmF5KGZyYWdtZW50QXJnc0FycmF5LCBtdGxBcmd1bWVudCk7Ci0gICAgICAgIGlmIChiaW5k
aW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6Q09NUFVURSkKKyAgICAgICAgaWYg
KGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6Q29tcHV0ZSkK
ICAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9BcnJheShjb21wdXRlQXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQpp
bmRleCBiMGE5NzZkYmU0YmU3YjMzYWNiNGEyYzM3ZWM2Y2E2NjllYzdhNjk5Li5jOTJjNTQ0ZDE1
MWFhYWU5NGI3MWVkZjg2MDI3NzBiNTVjYjU3YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5k
QnVmZmVyTWV0YWwubW0KQEAgLTU4LDcgKzU4LDcgQEAgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
IEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZShHUFVEZXZpY2UmIGRldmljZSkKIAogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIGJ1ZmZlciA9IHJldGFpblB0cihbbXRsUXVl
dWUgY29tbWFuZEJ1ZmZlcl0pOworICAgIGJ1ZmZlciA9IFttdGxRdWV1ZSBjb21tYW5kQnVmZmVy
XTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKQEAgLTc1LDExICs3NSwyNiBA
QCBHUFVDb21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKFJldGFpblB0cjxNVExDb21tYW5k
QnVmZmVyPiYmIGJ1ZmZlcikKIHsKIH0KIAorR1BVQ29tbWFuZEJ1ZmZlcjo6fkdQVUNvbW1hbmRC
dWZmZXIoKQoreworICAgIGVuZEJsaXRFbmNvZGluZygpOworfQorCiBNVExCbGl0Q29tbWFuZEVu
Y29kZXIgKkdQVUNvbW1hbmRCdWZmZXI6OmJsaXRFbmNvZGVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9ibGl0RW5jb2RlciA/IG1fYmxpdEVuY29kZXIuZ2V0KCkgOiAobV9ibGl0RW5jb2RlciA9
IFttX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlciBibGl0Q29tbWFuZEVuY29kZXJdKS5nZXQoKTsKIH0K
IAordm9pZCBHUFVDb21tYW5kQnVmZmVyOjplbmRCbGl0RW5jb2RpbmcoKQoreworICAgIGlmICgh
bV9ibGl0RW5jb2RlcikKKyAgICAgICAgcmV0dXJuOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBbbV9ibGl0RW5jb2RlciBlbmRFbmNvZGluZ107CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBtX2JsaXRFbmNvZGVyID0gbnVsbHB0cjsKK30KKwogdm9p
ZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9CdWZmZXIoUmVmPEdQVUJ1ZmZlcj4mJiBz
cmMsIHVuc2lnbmVkIGxvbmcgc3JjT2Zmc2V0LCBSZWY8R1BVQnVmZmVyPiYmIGRzdCwgdW5zaWdu
ZWQgbG9uZyBkc3RPZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKICAgICBpZiAoIXNyYy0+
aXNUcmFuc2ZlclNvdXJjZSgpIHx8ICFkc3QtPmlzVHJhbnNmZXJEZXN0aW5hdGlvbigpKSB7CkBA
IC0xMTcsNyArMTMyLDcgQEAgdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9CdWZm
ZXIoUmVmPEdQVUJ1ZmZlcj4mJiBzcmMsIHVuc2lnbmVkIGxvbmcgc3IKICAgICB1c2VCdWZmZXIo
V1RGTW92ZShkc3QpKTsKIH0KIAotdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9U
ZXh0dXJlKGNvbnN0IEdQVUJ1ZmZlckNvcHlWaWV3JiBzcmNCdWZmZXIsIGNvbnN0IEdQVVRleHR1
cmVDb3B5VmlldyYgZHN0VGV4dHVyZSwgY29uc3QgR1BVRXh0ZW50M0QmIHNpemUpCit2b2lkIEdQ
VUNvbW1hbmRCdWZmZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoR1BVQnVmZmVyQ29weVZpZXcmJiBz
cmNCdWZmZXIsIEdQVVRleHR1cmVDb3B5VmlldyYmIGRzdFRleHR1cmUsIGNvbnN0IEdQVUV4dGVu
dDNEJiBzaXplKQogewogICAgIGlmICghc3JjQnVmZmVyLmJ1ZmZlci0+aXNUcmFuc2ZlclNvdXJj
ZSgpIHx8ICFkc3RUZXh0dXJlLnRleHR1cmUtPmlzVHJhbnNmZXJEZXN0aW5hdGlvbigpKSB7CiAg
ICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21hbmRCdWZmZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUo
KTogSW52YWxpZCBvcGVyYXRpb24hIik7CkBAIC0xNTEsMTAgKzE2NiwxMSBAQCB2b2lkIEdQVUNv
bW1hbmRCdWZmZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoY29uc3QgR1BVQnVmZmVyQ29weVZpZXcm
IHNyY0J1ZmZlciwgYwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIHVz
ZUJ1ZmZlcihzcmNCdWZmZXIuYnVmZmVyLmNvcHlSZWYoKSk7CisgICAgdXNlQnVmZmVyKFdURk1v
dmUoc3JjQnVmZmVyLmJ1ZmZlcikpOworICAgIHVzZVRleHR1cmUoV1RGTW92ZShkc3RUZXh0dXJl
LnRleHR1cmUpKTsKIH0KIAotdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKGNvbnN0IEdQVVRleHR1cmVDb3B5VmlldyYgc3JjVGV4dHVyZSwgY29uc3QgR1BVQnVmZmVy
Q29weVZpZXcmIGRzdEJ1ZmZlciwgY29uc3QgR1BVRXh0ZW50M0QmIHNpemUpCit2b2lkIEdQVUNv
bW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoR1BVVGV4dHVyZUNvcHlWaWV3JiYgc3Jj
VGV4dHVyZSwgR1BVQnVmZmVyQ29weVZpZXcmJiBkc3RCdWZmZXIsIGNvbnN0IEdQVUV4dGVudDNE
JiBzaXplKQogewogICAgIGlmICghc3JjVGV4dHVyZS50ZXh0dXJlLT5pc1RyYW5zZmVyU291cmNl
KCkgfHwgIWRzdEJ1ZmZlci5idWZmZXItPmlzVHJhbnNmZXJEZXN0aW5hdGlvbigpKSB7CiAgICAg
ICAgIExPRyhXZWJHUFUsICJHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKCk6
IEludmFsaWQgb3BlcmF0aW9uISIpOwpAQCAtMTc4LDEwICsxOTQsMTEgQEAgdm9pZCBHUFVDb21t
YW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKGNvbnN0IEdQVVRleHR1cmVDb3B5VmlldyYg
c3JjVGV4dHVyZSwKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICB1c2VC
dWZmZXIoZHN0QnVmZmVyLmJ1ZmZlci5jb3B5UmVmKCkpOworICAgIHVzZVRleHR1cmUoV1RGTW92
ZShzcmNUZXh0dXJlLnRleHR1cmUpKTsKKyAgICB1c2VCdWZmZXIoV1RGTW92ZShkc3RCdWZmZXIu
YnVmZmVyKSk7CiB9CiAKLXZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb1RleHR1
cmUoY29uc3QgR1BVVGV4dHVyZUNvcHlWaWV3JiBzcmMsIGNvbnN0IEdQVVRleHR1cmVDb3B5Vmll
dyYgZHN0LCBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKK3ZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6
Y29weVRleHR1cmVUb1RleHR1cmUoR1BVVGV4dHVyZUNvcHlWaWV3JiYgc3JjLCBHUFVUZXh0dXJl
Q29weVZpZXcmJiBkc3QsIGNvbnN0IEdQVUV4dGVudDNEJiBzaXplKQogewogICAgIGlmICghc3Jj
LnRleHR1cmUtPmlzVHJhbnNmZXJTb3VyY2UoKSB8fCAhZHN0LnRleHR1cmUtPmlzVHJhbnNmZXJE
ZXN0aW5hdGlvbigpKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21tYW5kQnVmZmVyOjpj
b3B5VGV4dHVyZVRvVGV4dHVyZSgpOiBJbnZhbGlkIG9wZXJhdGlvbiEiKTsKQEAgLTIwNCw2ICsy
MjEsOSBAQCB2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKGNvbnN0
IEdQVVRleHR1cmVDb3B5VmlldyYgc3JjLCBjb25zdAogICAgICAgICBkZXN0aW5hdGlvbk9yaWdp
bjpNVExPcmlnaW5NYWtlKGRzdC5vcmlnaW4ueCwgZHN0Lm9yaWdpbi55LCBkc3Qub3JpZ2luLnop
XTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICB1c2VUZXh0dXJlKFdU
Rk1vdmUoc3JjLnRleHR1cmUpKTsKKyAgICB1c2VUZXh0dXJlKFdURk1vdmUoZHN0LnRleHR1cmUp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tCmlu
ZGV4IGYyNzVhNmNlYmQwOGM1ZGRmN2Q4NjkyOWMzYmU1MDc5ZDRlNTYyMDUuLmRiMjdkMDNjMDM4
ZDRhMzNiZWYxN2NiNzk3MDE0NGQzNGM5YjFhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVRGV2aWNlTWV0YWwubW0K
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWZQdHI8R1BVRGV2aWNl
PiBHUFVEZXZpY2U6OmNyZWF0ZShPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiYg
b3B0aW9ucykKIHsKLSAgICBQbGF0Zm9ybURldmljZVNtYXJ0UHRyIGRldmljZVB0cjsKKyAgICBS
ZXRhaW5QdHI8TVRMRGV2aWNlPiBkZXZpY2VQdHI7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAgICAgCkBAIC00OCw3ICs0OCw3IEBAIFJlZlB0cjxHUFVEZXZpY2U+IEdQVURl
dmljZTo6Y3JlYXRlKE9wdGlvbmFsPEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucz4mJiBvcHRpb25z
CiAgICAgICAgIAogICAgICAgICBmb3IgKGlkIDxNVExEZXZpY2U+IGRldmljZSA6IGRldmljZXMu
Z2V0KCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UubG93UG93ZXIpIHsKLSAgICAgICAgICAg
ICAgICBkZXZpY2VQdHIgPSByZXRhaW5QdHIoZGV2aWNlKTsKKyAgICAgICAgICAgICAgICBkZXZp
Y2VQdHIgPSBkZXZpY2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTcwLDcgKzcwLDcgQEAgUmVmUHRyPEdQVURldmljZT4gR1BVRGV2aWNlOjpj
cmVhdGUoT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYmIG9wdGlvbnMKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEdQVURldmljZShXVEZNb3ZlKGRldmljZVB0cikpKTsKIH0KIAot
R1BVRGV2aWNlOjpHUFVEZXZpY2UoUGxhdGZvcm1EZXZpY2VTbWFydFB0ciYmIGRldmljZSkKK0dQ
VURldmljZTo6R1BVRGV2aWNlKFJldGFpblB0cjxNVExEZXZpY2U+JiYgZGV2aWNlKQogICAgIDog
bV9wbGF0Zm9ybURldmljZShXVEZNb3ZlKGRldmljZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IGNmZjI3ZmZiZWE3
Yjk4ZTUwMzRjY2NkZjJkYmQyN2RlYTcwNTMzMTIuLjViNzhmMDE4YzVjYjYwMGQ2MDFiNjNjODFj
NWZmYzFiM2E3NmMyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQ
YXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0zOCwxNCArMzgsNzIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKIHsKLSAgICBp
ZiAoIW1faXNFbmNvZGluZykKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChwbGF0Zm9ybVBh
c3NFbmNvZGVyKCkpOwogCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIFtw
bGF0Zm9ybVBhc3NFbmNvZGVyKCkgZW5kRW5jb2RpbmddOwotICAgIG1faXNFbmNvZGluZyA9IGZh
bHNlOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBtX2NvbW1hbmRCdWZm
ZXItPnNldElzRW5jb2RpbmdQYXNzKGZhbHNlKTsKIH0KIAotdm9pZCBHUFVQcm9ncmFtbWFibGVQ
YXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29k
ZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwg
dW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQordm9p
ZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGluZGV4
LCBHUFVCaW5kR3JvdXAmIGJpbmRHcm91cCkKK3sKKyAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5j
dGlvbk5hbWUgPSAiR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCgpIjsK
KworICAgIGlmICghcGxhdGZvcm1QYXNzRW5jb2RlcigpKSB7CisgICAgICAgIExPRyhXZWJHUFUs
ICIlczogSW52YWxpZCBvcGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgdmVydGV4QXJncyA9IGJpbmRHcm91cC5s
YXlvdXQoKS52ZXJ0ZXhBcmd1bWVudHMoKTsKKyAgICBjb25zdCBhdXRvJiBmcmFnbWVudEFyZ3Mg
PSBiaW5kR3JvdXAubGF5b3V0KCkuZnJhZ21lbnRBcmd1bWVudHMoKTsKKyAgICAvLyBGSVhNRTog
RmluaXNoIHN1cHBvcnQgZm9yIGNvbXB1dGUuCisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisKKyAgICBpZiAodmVydGV4QXJncy5idWZmZXIpCisgICAgICAgIHNldFZlcnRleEJ1
ZmZlcih2ZXJ0ZXhBcmdzLmJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworICAgIGlmIChmcmFnbWVu
dEFyZ3MuYnVmZmVyKQorICAgICAgICBzZXRGcmFnbWVudEJ1ZmZlcihmcmFnbWVudEFyZ3MuYnVm
ZmVyLmdldCgpLCAwLCBpbmRleCk7CisKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
CisgICAgLy8gU2V0IGVhY2ggcmVzb3VyY2Ugb24gZWFjaCBNVExBcmd1bWVudEVuY29kZXIgaXQg
c2hvdWxkIGJlIHZpc2libGUgb24uCisgICAgY29uc3QgYXV0byYgYmluZGluZ3NNYXAgPSBiaW5k
R3JvdXAubGF5b3V0KCkuYmluZGluZ3NNYXAoKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRp
bmcgOiBiaW5kR3JvdXAuYmluZGluZ3MoKSkgeworICAgICAgICBhdXRvIGl0ZXJhdG9yID0gYmlu
ZGluZ3NNYXAuZmluZChiaW5kaW5nLmJpbmRpbmcpOworICAgICAgICBpZiAoaXRlcmF0b3IgPT0g
YmluZGluZ3NNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogR1BVQmlu
ZEdyb3VwQmluZGluZyAlbHUgbm90IGZvdW5kIGluIEdQVUJpbmRHcm91cExheW91dCEiLCBmdW5j
dGlvbk5hbWUsIGJpbmRpbmcuYmluZGluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgYXV0byBiaW5kR3JvdXBMYXlvdXRCaW5kaW5nID0gaXRlcmF0b3ItPnZhbHVl
OworCisgICAgICAgIHN3aXRjaCAoYmluZEdyb3VwTGF5b3V0QmluZGluZy50eXBlKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUgcmVzb3VyY2UgdHlwZXMuCisgICAgICAgIGNhc2Ug
R1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlVuaWZvcm1CdWZmZXI6Cisg
ICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlN0b3Jh
Z2VCdWZmZXI6IHsKKyAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2li
aWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkKKyAgICAgICAgICAgICAg
ICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFyZ3MuZW5jb2Rlci5nZXQoKSwg
YmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAg
ICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0
YWdlQml0OjpGbGFnczo6RnJhZ21lbnQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1
ZmZlck9uRW5jb2RlcihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJj
ZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5n
VHlwZTo6U2FtcGxlZFRleHR1cmU6IHsKKyAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRC
aW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkKKyAg
ICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVu
Y29kZXIuZ2V0KCksIGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkg
JiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAgICAgIHNl
dFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBi
aW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9H
KFdlYkdQVSwgIiVzOiBSZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rp
b25OYW1lKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9p
ZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BVQmluZGluZ1Jl
c291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0
aW9uTmFtZSkKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25O
YW1lKTsKQEAgLTc5LDUxICsxMzcsMzcgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIKICAgICBt
X2NvbW1hbmRCdWZmZXItPnVzZUJ1ZmZlcihidWZmZXJSZWYuY29weVJlZigpKTsKIH0KIAotdm9p
ZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGxvbmcg
aW5kZXgsIEdQVUJpbmRHcm91cCYgYmluZEdyb3VwKQordm9pZCBHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVy
ICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYgcmVzb3VyY2UsIHVu
c2lnbmVkIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUpCiB7Ci0gICAgY29u
c3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRCaW5kR3JvdXAoKSI7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGZ1
bmN0aW9uTmFtZSk7CiAjZW5kaWYKKyAgICBpZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3VtZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBzdGFn
ZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAg
Y29uc3QgYXV0byYgdmVydGV4QXJncyA9IGJpbmRHcm91cC5sYXlvdXQoKS52ZXJ0ZXhBcmd1bWVu
dHMoKTsKLSAgICBjb25zdCBhdXRvJiBmcmFnbWVudEFyZ3MgPSBiaW5kR3JvdXAubGF5b3V0KCku
ZnJhZ21lbnRBcmd1bWVudHMoKTsKLSAgICAvLyBGSVhNRTogRmluaXNoIHN1cHBvcnQgZm9yIGNv
bXB1dGUuCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxHUFVUZXh0dXJlPj4o
cmVzb3VyY2UpKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgaXMgbm90IGEg
dGV4dHVyZSB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvJiB0ZXh0dXJlUmVmID0gV1RGOjpnZXQ8UmVmPEdQVVRleHR1cmU+PihyZXNvdXJj
ZSk7CisgICAgYXV0byBtdGxUZXh0dXJlID0gdGV4dHVyZVJlZi0+cGxhdGZvcm1UZXh0dXJlKCk7
CisKKyAgICBpZiAoIW10bFRleHR1cmUpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZh
bGlkIE1UTFRleHR1cmUgaW4gR1BVVGV4dHVyZVZpZXcgYmluZGluZyEiLCBmdW5jdGlvbk5hbWUp
OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogCi0gICAgaWYgKHZlcnRleEFyZ3MuYnVmZmVyKQotICAgICAgICBzZXRWZXJ0ZXhCdWZm
ZXIodmVydGV4QXJncy5idWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKLSAgICBpZiAoZnJhZ21lbnRB
cmdzLmJ1ZmZlcikKLSAgICAgICAgc2V0RnJhZ21lbnRCdWZmZXIoZnJhZ21lbnRBcmdzLmJ1ZmZl
ci5nZXQoKSwgMCwgaW5kZXgpOworICAgIFthcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTptdGxU
ZXh0dXJlIGF0SW5kZXg6aW5kZXhdOworICAgIHVzZVJlc291cmNlKG10bFRleHR1cmUsIHRleHR1
cmVSZWYtPmlzUmVhZE9ubHkoKSA/IE1UTFJlc291cmNlVXNhZ2VSZWFkIDogTVRMUmVzb3VyY2VV
c2FnZVJlYWQgfCBNVExSZXNvdXJjZVVzYWdlV3JpdGUpOwogCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIAotICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVhY2ggTVRMQXJndW1l
bnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgotICAgIGNvbnN0IGF1dG8mIGJpbmRp
bmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7Ci0gICAgZm9yIChjb25z
dCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsKLSAgICAgICAgYXV0byBp
dGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5nKTsKLSAgICAgICAgaWYg
KGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7Ci0gICAgICAgICAgICBMT0coV2ViR1BV
LCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBpbiBHUFVCaW5kR3JvdXBM
YXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8gYmluZEdyb3VwTGF5b3V0QmluZGluZyA9IGl0
ZXJhdG9yLT52YWx1ZTsKLQotICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExheW91dEJpbmRpbmcu
dHlwZSkgewotICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291cmNlIHR5cGVzLgot
ICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpVbmlm
b3JtQnVmZmVyOgotICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7Ci0gICAgICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0
QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRFWCkKLSAgICAgICAg
ICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFyZ3MuZW5jb2Rlci5n
ZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOwot
ICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNo
YWRlclN0YWdlQml0OjpGUkFHTUVOVCkKLSAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVm
ZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5nLnJlc291cmNl
LCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBS
ZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rpb25OYW1lKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBtX2NvbW1hbmRCdWZmZXItPnVz
ZVRleHR1cmUodGV4dHVyZVJlZi5jb3B5UmVmKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUXVldWVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCmluZGV4IGI5OWUzYzZhYTZlODNmMGNmMTY3ZWYxMDJk
MzVkYTY3OTlkYzZiMTcuLjNkYTJmNDNkMWIwNmUzZDExNzE0YjQ4Yzg4ZmQ1YWY4Mjg1MDA3NGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVRdWV1ZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCkBAIC03MCwxMyArNzAsMTIgQEAgR1BVUXVldWU6OkdQ
VVF1ZXVlKFBsYXRmb3JtUXVldWVTbWFydFB0ciYmIHF1ZXVlKQogewogfQogCi12b2lkIEdQVVF1
ZXVlOjpzdWJtaXQoVmVjdG9yPFJlZjxjb25zdCBHUFVDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5k
QnVmZmVycykKK3ZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmPEdQVUNvbW1hbmRCdWZm
ZXI+PiYmIGNvbW1hbmRCdWZmZXJzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKIAogICAgIGZvciAoYXV0byYgY29tbWFuZEJ1ZmZlciA6IGNvbW1hbmRCdWZmZXJzKSB7Ci0g
ICAgICAgIGlmIChjb21tYW5kQnVmZmVyLT5ibGl0RW5jb2RlcigpKQotICAgICAgICAgICAgW2Nv
bW1hbmRCdWZmZXItPmJsaXRFbmNvZGVyKCkgZW5kRW5jb2RpbmddOworICAgICAgICBjb21tYW5k
QnVmZmVyLT5lbmRCbGl0RW5jb2RpbmcoKTsKICAgICAgICAgLy8gUHJldmVudCBhbnkgYnVmZmVy
IG1hcHBpbmcgY2FsbGJhY2tzIGZyb20gZXhlY3V0aW5nIHVudGlsIGNvbW1hbmQgYnVmZmVyIGlz
IGNvbXBsZXRlLgogICAgICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGNvbW1hbmRCdWZmZXItPnVz
ZWRCdWZmZXJzKCkpIHsKICAgICAgICAgICAgIGlmIChidWZmZXItPnN0YXRlKCkgIT0gR1BVQnVm
ZmVyOjpTdGF0ZTo6VW5tYXBwZWQpIHsKQEAgLTg1LDYgKzg0LDEzIEBAIHZvaWQgR1BVUXVldWU6
OnN1Ym1pdChWZWN0b3I8UmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmIGNvbW1hbmRCdWZm
ZXJzKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnVmZmVyLT5jb21tYW5kQnVmZmVyQ29t
bWl0dGVkKGNvbW1hbmRCdWZmZXItPnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpKTsKICAgICAgICAg
fQorICAgICAgICAvLyBBbHNvIGVuc3VyZSB0ZXh0dXJlcyBhcmUgc3RpbGwgdmFsaWQuCisgICAg
ICAgIGZvciAoYXV0byYgdGV4dHVyZSA6IGNvbW1hbmRCdWZmZXItPnVzZWRUZXh0dXJlcygpKSB7
CisgICAgICAgICAgICBpZiAoIXRleHR1cmUtPnBsYXRmb3JtVGV4dHVyZSgpKSB7CisgICAgICAg
ICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVF1ZXVlOjpzdWJtaXQoKTogSW52YWxpZCBHUFVUZXh0
dXJlIHNldCBvbiBhIEdQVUNvbW1hbmRCdWZmZXIhIik7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgW2NvbW1hbmRCdWZmZXItPnBs
YXRmb3JtQ29tbWFuZEJ1ZmZlcigpIGNvbW1pdF07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVy
TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
UmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCBkNmE2ZTY0MjM2MjM3MTViMjQ3OGY2M2Yy
ZGQwYzUwYTJiNzg5MjU2Li5lMWM0OWE5ZmE5MDdmZjEwZjUxMjQ0MzgwOWNhMWFiMjE4MTY2Y2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQpAQCAtMTE3
LDYgKzExNywxMiBAQCBSZWZQdHI8R1BVUmVuZGVyUGFzc0VuY29kZXI+IEdQVVJlbmRlclBhc3NF
bmNvZGVyOjp0cnlDcmVhdGUoUmVmPEdQVUNvbW1hbmRCdWZmZQogewogICAgIGNvbnN0IGNoYXIq
IGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKCki
OwogCisgICAgLy8gT25seSBvbmUgY29tbWFuZCBlbmNvZGVyIG1heSBiZSBhY3RpdmUgYXQgYSB0
aW1lLgorICAgIGlmIChidWZmZXItPmlzRW5jb2RpbmdQYXNzKCkpIHsKKyAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBFeGlzdGluZyBwYXNzIGVuY29kZXIgbXVzdCBiZSBlbmRlZCBmaXJzdCEiKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgUmV0YWluUHRyPE1UTFJlbmRl
clBhc3NEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwpAQCAtMTM3LDExICsxNDMsMTMgQEAgUmVmUHRyPEdQVVJlbmRlclBhc3NFbmNv
ZGVyPiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVDb21tYW5kQnVmZmUK
ICAgICAgICAgJiYgIXBvcHVsYXRlTXRsRGVwdGhTdGVuY2lsQXR0YWNobWVudChtdGxEZXNjcmlw
dG9yLmdldCgpLmRlcHRoQXR0YWNobWVudCwgKmRlc2NyaXB0b3IuZGVwdGhTdGVuY2lsQXR0YWNo
bWVudCwgZnVuY3Rpb25OYW1lKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBidWZm
ZXItPmVuZEJsaXRFbmNvZGluZygpOworCiAgICAgUmV0YWluUHRyPE1UTFJlbmRlckNvbW1hbmRF
bmNvZGVyPiBtdGxFbmNvZGVyOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
Ci0gICAgbXRsRW5jb2RlciA9IHJldGFpblB0cihbYnVmZmVyLT5wbGF0Zm9ybUNvbW1hbmRCdWZm
ZXIoKSByZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlwdG9yOm10bERlc2NyaXB0b3IuZ2V0
KCldKTsKKyAgICBtdGxFbmNvZGVyID0gW2J1ZmZlci0+cGxhdGZvcm1Db21tYW5kQnVmZmVyKCkg
cmVuZGVyQ29tbWFuZEVuY29kZXJXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlwdG9yLmdldCgpXTsK
IAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKQEAgLTE0OSw3ICsxNTcsNyBAQCBS
ZWZQdHI8R1BVUmVuZGVyUGFzc0VuY29kZXI+IEdQVVJlbmRlclBhc3NFbmNvZGVyOjp0cnlDcmVh
dGUoUmVmPEdQVUNvbW1hbmRCdWZmZQogICAgICAgICBMT0coV2ViR1BVLCAiJXM6IFVuYWJsZSB0
byBjcmVhdGUgTVRMUmVuZGVyQ29tbWFuZEVuY29kZXIhIiwgZnVuY3Rpb25OYW1lKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotCisgICAgCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBHUFVSZW5kZXJQYXNzRW5jb2RlcihXVEZNb3ZlKGJ1ZmZlciksIFdURk1vdmUobXRsRW5jb2Rl
cikpKTsKIH0KIApAQCAtMTU5LDEzICsxNjcsMjYgQEAgR1BVUmVuZGVyUGFzc0VuY29kZXI6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyKFJlZjxHUFVDb21tYW5kQnVmZmVyPiYmIGNvbW1hbmRCdWZmZXIK
IHsKIH0KIAotUGxhdGZvcm1Qcm9ncmFtbWFibGVQYXNzRW5jb2RlciAqR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OnBsYXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdAorTVRMQ29tbWFuZEVuY29kZXIgKkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpwbGF0Zm9ybVBhc3NFbmNvZGVyKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyLmdldCgpOwogfQogCit2b2lkIEdQVVJl
bmRlclBhc3NFbmNvZGVyOjplbmRQYXNzKCkKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQ
YXNzRW5jb2RlcikKKyAgICAgICAgcmV0dXJuOworICAgIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyOjplbmRQYXNzKCk7CisgICAgbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyID0gbnVsbHB0
cjsKK30KKwogdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoUmVmPEdQVVJl
bmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQogeworICAgIGlmICghbV9wbGF0Zm9ybVJlbmRlclBh
c3NFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0UGlwZWxpbmUoKTogSW52YWxpZCBvcGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgaWYgKHBpcGVsaW5lLT5kZXB0aFN0ZW5jaWxTdGF0ZSgpKQpAQCAtMTgwLDYgKzIw
MSwxMSBAQCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8R1BVUmVu
ZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUpCiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcnModW5zaWduZWQgbG9uZyBpbmRleCwgVmVjdG9yPFJlZjxHUFVCdWZmZXI+
PiYmIGJ1ZmZlcnMsIFZlY3Rvcjx1bnNpZ25lZCBsb25nIGxvbmc+JiYgb2Zmc2V0cykKIHsKKyAg
ICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BV
LCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMoKTogSW52YWxpZCBvcGVy
YXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgQVNTRVJUKGJ1ZmZlcnMuc2l6ZSgpICYmIG9mZnNldHMuc2l6ZSgpID09IGJ1ZmZlcnMuc2l6
ZSgpKTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTIxNCw2ICsyNDAs
MTYgQEAgc3RhdGljIE1UTFByaW1pdGl2ZVR5cGUgcHJpbWl0aXZlVHlwZUZvckdQVVByaW1pdGl2
ZVRvcG9sb2d5KFByaW1pdGl2ZVRvcG9sb2d5IHQKIAogdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6ZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmNl
Q291bnQsIHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2lnbmVkIGxvbmcgZmlyc3RJbnN0
YW5jZSkKIHsKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcoKTogSW52YWxpZCBvcGVy
YXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFtX3BpcGVsaW5lKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNz
RW5jb2Rlcjo6ZHJhdygpOiBObyB2YWxpZCBHUFVSZW5kZXJQaXBlbGluZSBmb3VuZCEiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIg
CiAgICAgICAgIGRyYXdQcmltaXRpdmVzOnByaW1pdGl2ZVR5cGVGb3JHUFVQcmltaXRpdmVUb3Bv
bG9neShtX3BpcGVsaW5lLT5wcmltaXRpdmVUb3BvbG9neSgpKQogICAgICAgICB2ZXJ0ZXhTdGFy
dDpmaXJzdFZlcnRleApAQCAtMjI0LDE4ICsyNjAsMzMgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6ZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3Rh
bmMKIAogI2lmIFVTRShNRVRBTCkKIAotdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dXNlUmVz
b3VyY2UoTVRMUmVzb3VyY2UgKnJlc291cmNlLCB1bnNpZ25lZCBsb25nIHVzYWdlKQordm9pZCBH
UFVSZW5kZXJQYXNzRW5jb2Rlcjo6dXNlUmVzb3VyY2UoTVRMUmVzb3VyY2UgKnJlc291cmNlLCB1
bnNpZ25lZCB1c2FnZSkKIHsKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rlcikg
eworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6IEludmFsaWQgb3Bl
cmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgdXNlUmVzb3VyY2U6cmVzb3VyY2UgdXNh
Z2U6dXNhZ2VdOwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXIoTVRMQnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGluZGV4KQordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKE1UTEJ1
ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQogeworICAgIGlm
ICghbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJH
UFVSZW5kZXJQYXNzRW5jb2RlcjogSW52YWxpZCBvcGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVk
ISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNz
RW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRleDppbmRl
eF07CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50QnVmZmVyKE1U
TEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRl
eCkKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZl
ciAqYnVmZmVyLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQogeworICAgIGlmICgh
bV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVS
ZW5kZXJQYXNzRW5jb2RlcjogSW52YWxpZCBvcGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5j
b2RlciBzZXRGcmFnbWVudEJ1ZmZlcjpidWZmZXIgb2Zmc2V0Om9mZnNldCBhdEluZGV4OmluZGV4
XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVN3YXBDaGFpbk1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVN3YXBDaGFpbk1ldGFsLm1tCmluZGV4IGQyY2I4MjRlYWQ0ODlh
NzZjYmZkNzJjYjViMmNjZGVmM2FmMDhmNTkuLjM2ZDE3Yzk5ZjA5NDRlMjNhZWYwYjFkM2U1NWRj
OTlhYTIyODI0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU3dhcENoYWluTWV0YWwubW0KQEAgLTEwOCw3ICsx
MDgsNyBAQCBSZWZQdHI8R1BVVGV4dHVyZT4gR1BVU3dhcENoYWluOjpnZXROZXh0VGV4dHVyZSgp
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgbV9jdXJyZW50RHJhd2Fi
bGUgPSByZXRhaW5QdHIoW21fcGxhdGZvcm1Td2FwTGF5ZXIgbmV4dERyYXdhYmxlXSk7Ci0gICAg
bXRsVGV4dHVyZSA9IHJldGFpblB0cihbbV9jdXJyZW50RHJhd2FibGUgdGV4dHVyZV0pOworICAg
IG10bFRleHR1cmUgPSBbbV9jdXJyZW50RHJhd2FibGUgdGV4dHVyZV07CiAKICAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVGV4dHVyZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQppbmRleCAxYTE1
N2JjNjIzYjA0MGFkYmFiYjlmZjk3Mzg0NDk2NmZmYWQyYTRmLi41Y2Y2Zjc2ODdiYjQ1YWRhNDRj
OTRjNjdiNDg0ZjVlYzBhYTlmNmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVGV4dHVyZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0KQEAgLTgy
LDE4ICs4MiwxNiBAQCBzdGF0aWMgT3B0aW9uYWw8TVRMVGV4dHVyZVVzYWdlPiBtdGxUZXh0dXJl
VXNhZ2VGb3JHUFVUZXh0dXJlVXNhZ2VGbGFncyhPcHRpb25TZQogICAgIHJldHVybiBNVExUZXh0
dXJlVXNhZ2VVbmtub3duOwogfQogCisjaWYgIVBMQVRGT1JNKE1BQykKIHN0YXRpYyBNVExTdG9y
YWdlTW9kZSBzdG9yYWdlTW9kZUZvclBpeGVsRm9ybWF0QW5kU2FtcGxlQ291bnQoTVRMUGl4ZWxG
b3JtYXQgZm9ybWF0LCB1bnNpZ25lZCBsb25nIHNhbXBsZXMpCiB7CiAgICAgLy8gRGVwdGgsIFN0
ZW5jaWwsIERlcHRoU3RlbmNpbCwgYW5kIE11bHRpc2FtcGxlIHRleHR1cmVzIG11c3QgYmUgYWxs
b2NhdGVkIHdpdGggdGhlIE1UTFN0b3JhZ2VNb2RlUHJpdmF0ZSByZXNvdXJjZSBvcHRpb24uCiAg
ICAgaWYgKGZvcm1hdCA9PSBNVExQaXhlbEZvcm1hdERlcHRoMzJGbG9hdF9TdGVuY2lsOCB8fCBz
YW1wbGVzID4gMSkKICAgICAgICAgcmV0dXJuIE1UTFN0b3JhZ2VNb2RlUHJpdmF0ZTsKIAotI2lm
IFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTVRMU3RvcmFnZU1vZGVNYW5hZ2VkOwotI2Vsc2UK
ICAgICByZXR1cm4gTVRMU3RvcmFnZU1vZGVTaGFyZWQ7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiBz
dGF0aWMgUmV0YWluUHRyPE1UTFRleHR1cmVEZXNjcmlwdG9yPiB0cnlDcmVhdGVNdGxUZXh0dXJl
RGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVVRleHR1
cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBPcHRpb25TZXQ8R1BVVGV4dHVyZVVzYWdlOjpGbGFn
cz4gdXNhZ2UpCiB7CkBAIC0xMTcsNyArMTE1LDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMVGV4
dHVyZURlc2NyaXB0b3I+IHRyeUNyZWF0ZU10bFRleHR1cmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIq
CiAgICAgaWYgKCFtdGxVc2FnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgYXV0byBzdG9yYWdlTW9kZSA9IE1UTFN0b3JhZ2VNb2RlUHJpdmF0ZTsK
KyNlbHNlCiAgICAgYXV0byBzdG9yYWdlTW9kZSA9IHN0b3JhZ2VNb2RlRm9yUGl4ZWxGb3JtYXRB
bmRTYW1wbGVDb3VudChwaXhlbEZvcm1hdCwgZGVzY3JpcHRvci5zYW1wbGVDb3VudCk7CisjZW5k
aWYKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIApAQCAtMTY4LDE4ICsxNzAs
MTggQEAgUmVmUHRyPEdQVVRleHR1cmU+IEdQVVRleHR1cmU6OnRyeUNyZWF0ZShjb25zdCBHUFVE
ZXZpY2UmIGRldmljZSwgY29uc3QgR1BVVGV4dHUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQ
VVRleHR1cmUoV1RGTW92ZShtdGxUZXh0dXJlKSwgdXNhZ2UpKTsKIH0KIAotUmVmPEdQVVRleHR1
cmU+IEdQVVRleHR1cmU6OmNyZWF0ZShQbGF0Zm9ybVRleHR1cmVTbWFydFB0ciYmIHRleHR1cmUs
IE9wdGlvblNldDxHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzPiB1c2FnZSkKK1JlZjxHUFVUZXh0dXJl
PiBHUFVUZXh0dXJlOjpjcmVhdGUoUmV0YWluUHRyPE1UTFRleHR1cmU+JiYgdGV4dHVyZSwgT3B0
aW9uU2V0PEdQVVRleHR1cmVVc2FnZTo6RmxhZ3M+IHVzYWdlKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEdQVVRleHR1cmUoV1RGTW92ZSh0ZXh0dXJlKSwgdXNhZ2UpKTsKIH0KIAotR1BV
VGV4dHVyZTo6R1BVVGV4dHVyZShQbGF0Zm9ybVRleHR1cmVTbWFydFB0ciYmIHRleHR1cmUsIE9w
dGlvblNldDxHUFVUZXh0dXJlVXNhZ2U6OkZsYWdzPiB1c2FnZSkKK0dQVVRleHR1cmU6OkdQVVRl
eHR1cmUoUmV0YWluUHRyPE1UTFRleHR1cmU+JiYgdGV4dHVyZSwgT3B0aW9uU2V0PEdQVVRleHR1
cmVVc2FnZTo6RmxhZ3M+IHVzYWdlKQogICAgIDogbV9wbGF0Zm9ybVRleHR1cmUoV1RGTW92ZSh0
ZXh0dXJlKSkKICAgICAsIG1fdXNhZ2UodXNhZ2UpCiB7CiB9CiAKLVJlZlB0cjxHUFVUZXh0dXJl
PiBHUFVUZXh0dXJlOjpjcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKQorUmVmUHRyPEdQVVRleHR1
cmU+IEdQVVRleHR1cmU6OnRyeUNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpCiB7CiAgICAgUmV0
YWluUHRyPE1UTFRleHR1cmU+IHRleHR1cmU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YTgxODQ2ZWYzYmMzNWM2MmU5
MTk3ZTAwNDAzNGQ5YmEzY2YxZjVkLi5mNDE4NGE1M2E5YmQ0MzJlZTM4MjYzY2EzNGY3Zjg2NTVl
MjlhODA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDMtMDUgIEp1c3RpbiBGYW4gIDxq
dXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEdQVV0gR1BVVGV4dHVyZSBhbmQg
R1BVVGV4dHVyZVZpZXcgdXBkYXRlcywgYW5kIHJlbGF0ZWQgR1BVQmluZEdyb3VwIHVwZGF0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM0Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIHdlYmdwdS9i
bGl0LWNvbW1hbmRzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3Jlc291cmNlcy9ibHVlLWNoZWNr
ZXJlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlw
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLiBEcmF3IGEgcmVmZXJlbmNlIGZvciBibHVlLWNoZWNrZXJl
ZC5wbmcgd2l0aCBDYW52YXMyRC4KKyAgICAgICAgKiB3ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1z
dHJpcC5odG1sOiBBZGRlZC4gRHJhdyBibHVlLWNoZWNrZXJlZC5wbmcgYXMgYSB0ZXh0dXJlIG9u
IGEgV2ViIEdQVSBxdWFkLgorCisgICAgICAgIFJlbmFtaW5nIHVwZGF0ZXMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvcjoKKyAgICAgICAgKiB3ZWJncHUvYmluZC1ncm91cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sOgorICAgICAgICAqIHdlYmdw
dS9waXBlbGluZS1sYXlvdXRzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3JlbmRlci1waXBlbGlu
ZXMuaHRtbDoKKwogMjAxOS0wMy0wNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWIgR1BVXSBCbGl0dGluZyBmdW5jdGlvbiBwcm90b3R5cGVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91cHMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdwdS9iaW5kLWdyb3Vwcy5odG1sCmluZGV4IGI1NzIxNzZjZTNmM2M5YThlMGFkODZiZDhh
OTllNmM2MDllZjgxZGIuLmY4ZjkwZGRiNDk4OWRmMDMzNDg4ODY2YmIwZGRkMGY3YmM1NTEwZTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy5odG1sCkBAIC0xMyw4ICsxMyw4IEBAIHByb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgLy8gRklYTUU6IEFsc28gdGVzdCBzYW1wbGVkIHRl
eHR1cmUgYmluZGluZ3MuIAogICAgIGNvbnN0IGJ1ZmZlckxheW91dEJpbmRpbmcgPSB7CiAgICAg
ICAgIGJpbmRpbmc6IDEsCi0gICAgICAgIHZpc2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0
LlZFUlRFWCwKLSAgICAgICAgdHlwZTogInN0b3JhZ2VCdWZmZXIiCisgICAgICAgIHZpc2liaWxp
dHk6IEdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwKKyAgICAgICAgdHlwZTogInN0b3JhZ2UtYnVm
ZmVyIgogICAgIH07CiAKICAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRl
QmluZEdyb3VwTGF5b3V0KHsgYmluZGluZ3M6IFtidWZmZXJMYXlvdXRCaW5kaW5nXSB9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9ibGl0LWNvbW1hbmRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvYmxpdC1jb21tYW5kcy5odG1sCmluZGV4IDJhOTQ4ODk4MzVmY2VkNDJmZGQx
ZmM1ZGRlN2MzZTgwYjMwN2UyY2MuLjBlYjZlODk4ZWE5ZmMyNzI1ZTdlY2E1YmQ2MzNlZDlkMjhh
MDQzYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9ibGl0LWNvbW1hbmRzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsaXQtY29tbWFuZHMuaHRtbApAQCAtMzksNyArMzks
NyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KGltYWdlKSB7CiAgICAgY29uc3QgYnVmZmVyVmlld0Ig
PSB7CiAgICAgICAgIGJ1ZmZlcjogYnVmZmVyQiwKICAgICAgICAgb2Zmc2V0OiAwLAotICAgICAg
ICByb3dQaXRjaDogMCwKKyAgICAgICAgcm93UGl0Y2g6IGltYWdlLndpZHRoICogNCwKICAgICAg
ICAgaW1hZ2VIZWlnaHQ6IDAKICAgICB9OwogCkBAIC04MSw3ICs4MSw3IEBAIGFzeW5jIGZ1bmN0
aW9uIHRlc3QoaW1hZ2UpIHsKICAgICBjb25zdCByZWFkQnVmZmVyVmlldyA9IHsKICAgICAgICAg
YnVmZmVyOiByZWFkQnVmZmVyLAogICAgICAgICBvZmZzZXQ6IDAsCi0gICAgICAgIHJvd1BpdGNo
OiAwLAorICAgICAgICByb3dQaXRjaDogaW1hZ2Uud2lkdGggKiA0LAogICAgICAgICBpbWFnZUhl
aWdodDogMAogICAgIH07CiAKQEAgLTkxLDYgKzkxLDEwIEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3Qo
aW1hZ2UpIHsKICAgICBjb21tYW5kQnVmZmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlKHRleHR1cmVW
aWV3QSwgdGV4dHVyZVZpZXdCLCB0ZXh0dXJlU2l6ZSk7CiAgICAgY29tbWFuZEJ1ZmZlci5jb3B5
VGV4dHVyZVRvQnVmZmVyKHRleHR1cmVWaWV3QiwgcmVhZEJ1ZmZlclZpZXcsIHRleHR1cmVTaXpl
KTsKICAgICBkZXZpY2UuZ2V0UXVldWUoKS5zdWJtaXQoW2NvbW1hbmRCdWZmZXJdKTsKKyAgICBi
dWZmZXJBLmRlc3Ryb3koKTsKKyAgICBidWZmZXJCLmRlc3Ryb3koKTsKKyAgICB0ZXh0dXJlQS5k
ZXN0cm95KCk7CisgICAgdGV4dHVyZUIuZGVzdHJveSgpOwogCiAgICAgY29uc3QgcmVzdWx0Q29u
dGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7
CiAKQEAgLTEwMCw3ICsxMDQsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KGltYWdlKSB7CiAKICAg
ICAgICAgcmVzdWx0Q29udGV4dC5wdXRJbWFnZURhdGEocmVzdWx0SW1hZ2VEYXRhLCAwLCAwKTsK
IAotICAgICAgICByZWFkQnVmZmVyLnVubWFwKCk7CisgICAgICAgIHJlYWRCdWZmZXIuZGVzdHJv
eSgpOwogICAgIH0pOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKaW5kZXggMDQ0MWMy
OTU5ZjE1YjdmMTBiZjlkNjMzZmI5ZjdkMDI2NzhjMWIwNi4uYzM1NGNkMjg1OTFmNWYxZDdmZGMz
ZTc2MmE4YzE2NTVkNWE2ZDJiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZl
ci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVy
LXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCkBAIC03MiwxMSArNzIsMTEgQEAgY29uc3QgYmluZGlu
Z051bXMgPSB7CiAgICAgRzogNQogfTsKIAotZnVuY3Rpb24gY3JlYXRlVW5pZm9ybUJ1ZmZlckJp
bmRHcm91cExheW91dChiaW5kTnVtLCBzdGFnZSA9IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRF
WCkgeworZnVuY3Rpb24gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kTnVt
LCBzdGFnZSA9IEdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCkgewogICAgIHJldHVybiB7CiAgICAg
ICAgIGJpbmRpbmc6IGJpbmROdW0sCiAgICAgICAgIHZpc2liaWxpdHk6IHN0YWdlLAotICAgICAg
ICB0eXBlOiAidW5pZm9ybUJ1ZmZlciIKKyAgICAgICAgdHlwZTogInVuaWZvcm0tYnVmZmVyIgog
ICAgIH07CiB9CiAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgIGNvbnN0IGxheW91dFVSID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChi
aW5kaW5nTnVtcy5VUik7CiAgICAgY29uc3QgbGF5b3V0TEwgPSBjcmVhdGVVbmlmb3JtQnVmZmVy
QmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLkxMKTsKICAgICBjb25zdCBsYXlvdXRMUiA9IGNy
ZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTFIpOwotICAgIGNv
bnN0IGxheW91dEcgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdO
dW1zLkcsIFdlYkdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5UKTsKKyAgICBjb25zdCBsYXlvdXRH
ID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVtcy5HLCBHUFVT
aGFkZXJTdGFnZUJpdC5GUkFHTUVOVCk7CiAKICAgICAvLyBXZWJHUFVCaW5kR3JvdXBMYXlvdXRz
CiAgICAgY29uc3QgbGVmdFRyaWFuZ2xlQkdMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3Vw
TGF5b3V0KHsgYmluZGluZ3M6IFtsYXlvdXRVTCwgbGF5b3V0VU0sIGxheW91dExMLCBsYXlvdXRH
XSB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9waXBlbGluZS1sYXlvdXRzLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvcGlwZWxpbmUtbGF5b3V0cy5odG1sCmluZGV4IDZiYTE0
ZGI1NGMxYTYyNTg0ODUxMjU0ZGNjNWU5YmYxZWNiNjYyNjAuLmEyM2QyMzI5ZTUxYTJiZTJjNDc1
NmVmNWYwMmM0NWJmZDU1ODUwOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9waXBl
bGluZS1sYXlvdXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3BpcGVsaW5lLWxheW91
dHMuaHRtbApAQCAtOSwxNiArOSwxNiBAQAogZnVuY3Rpb24gY3JlYXRlQmluZEdyb3VwTGF5b3V0
QmluZGluZygpIHsKICAgICByZXR1cm4gewogICAgICAgICBiaW5kaW5nOiAwLAotICAgICAgICB2
aXNpYmlsaXR5OiBXZWJHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCB8IFdlYkdQVVNoYWRlclN0
YWdlQml0LlZFUlRFWCwKLSAgICAgICAgdHlwZTogInN0b3JhZ2VCdWZmZXIiCisgICAgICAgIHZp
c2liaWxpdHk6IEdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5UIHwgR1BVU2hhZGVyU3RhZ2VCaXQu
VkVSVEVYLAorICAgICAgICB0eXBlOiAic3RvcmFnZS1idWZmZXIiCiAgICAgfTsKIH0KIAogdGVz
dCgoKSA9PiB7CiAgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciA9IHsgYmluZGlu
Z3M6IFtjcmVhdGVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nKCldIH07Ci0gICAgYXNzZXJ0X25vdF9l
cXVhbHMoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5iaW5kaW5nc1swXS52aXNpYmlsaXR5ICYg
V2ViR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQsIDApOwotICAgIGFzc2VydF9ub3RfZXF1YWxz
KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IuYmluZGluZ3NbMF0udmlzaWJpbGl0eSAmIFdlYkdQ
VVNoYWRlclN0YWdlQml0LlZFUlRFWCwgMCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhiaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmJpbmRpbmdzWzBdLnR5cGUsICJzdG9yYWdlQnVmZmVyIik7CisgICAg
YXNzZXJ0X25vdF9lcXVhbHMoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5iaW5kaW5nc1swXS52
aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQsIDApOworICAgIGFzc2VydF9u
b3RfZXF1YWxzKGJpbmRHcm91cExheW91dERlc2NyaXB0b3IuYmluZGluZ3NbMF0udmlzaWJpbGl0
eSAmIEdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhiaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmJpbmRpbmdzWzBdLnR5cGUsICJzdG9yYWdlLWJ1ZmZlciIp
OwogfSwgIkNyZWF0ZSBhIGJhc2ljIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuIik7
IAogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXIt
cGlwZWxpbmVzLmh0bWwKaW5kZXggZmNhNDIwNzI5ZjBhYjQzMzVlZDQ3ZTIwNzc0ZmZiZWFkZGU0
NTEyNC4uNzIyNzIzZDE2Nzc4MmQ3YTM5ZjE4ZDUyMjY3NzRhMDA5ZTAyMWVkMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCkBAIC00Myw3ICs0Myw3IEBAIHByb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNE
ZXZpY2UoKTsKICAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9k
dWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKIAotICAgIGNvbnN0IGxheW91dEJpbmRpbmcgPSB7
IGJpbmRpbmc6IDAsIHZpc2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwgdHlw
ZTogInN0b3JhZ2VCdWZmZXIiIH07CisgICAgY29uc3QgbGF5b3V0QmluZGluZyA9IHsgYmluZGlu
ZzogMCwgdmlzaWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVYLCB0eXBlOiAic3RvcmFn
ZS1idWZmZXIiIH07CiAgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJp
bmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5b3V0QmluZGluZ10gfSk7CiAgICAgY29uc3Qg
cGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQoeyBiaW5kR3JvdXBM
YXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XSB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3Jlc291cmNlcy9ibHVlLWNoZWNrZXJlZC5wbmcgYi9MYXlvdXRUZXN0cy93ZWJncHUv
cmVzb3VyY2VzL2JsdWUtY2hlY2tlcmVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MmVmZWQ0ZmQ4ZGE0MjRi
NWNhYzNiYzdjNDdjMjJjNjM5YjgwNGQ4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0ODc1Cnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5QmU/NWhXJXp8ZlNmMHBBclUxSnpDS3BUYE1H
K0REZnZtTQp6ZEtJfF5LelJsUjh+Y2lhI05fUE01ezBESF52cGI0clQ0cXtEPUIyQSplWnBhYFdw
QmFJSHpXMGRRPXNxMjNQcm8KekJ2KWw4VGMjLTQraX1AY1NPRT5sTylXYE9zTDBMOUU0SGV6UlJX
dTkxIVJNU15fM0xCTj1tWUFsX0dvdDZyQSZtCnpRV1o/fk8hTiR0PzY/JGNpYy0/N2Y/Vjk3bnQ/
bzlySHFvMjB4Tnl9XjczLU1hJH4qeHFJNypqT0dgX0ExMCNKUwp6QlZDe2gtUXZvO2xFZXojeWtj
ZEw1ZkMkNlFqMyN8RzdDeUZeWWF1eVcrbz0obXpMTm5ERk5qYnBvWFZiV0ZrekAKekR+NVU+NyFk
aig4R1M9TjFBUyFXQzdFZUJsIUlndCUwWmZ+MHh+TzdiMFM/YmI1cncqZmxqYmhHQkdkITgtfGRM
Cnp6JE5SUHBPYXF7Mz1JMkpUT351VkNYZllJe3phTG9LITFYS1dVRk1ScXo/KSRlUTBuMiEoQVU5
QElWZWM+UWVLNwp6QGxeempuNWs9YSlCcSF1dXtnLXhpREJKMm5VX0cwT0tPQj9ueSlXfDdMZClz
en1UTTJ6eWVZTiM4Tj1hemAocUsKemslMVhWR2xJa3hGdWBPUUNvRXRfdXQ1cj80ZkJEQ051YnIh
I1dBRlVAJEwxLS1YalZPJSNKXylSWCs8cDdHPUpLCnpGPFUwM0BPPFRhMykja1U+cXImTD1leSlx
LWFxaXk8TGJ4aFVkbFgtT2VgRXtJM3k7X1QqYWQ1KEJSO0dwa2QzZQp6MzJoOUZPdlglWERhKjdS
SVJ6OWgycEs0PndPZ1gtJn5UdXFmcE8rYXVLPUspRWk2MTl0TkFsSTFRWk9FNkNCYzMKejJ+N2Qm
KFBkPTVedllSaylYMzRXOThFKytCS0xnWF5TOz1NRE9gNTAoTFI7OyVPM3J5a0AmOXNtQWomRyR0
d1grCnpBeiUkRzFlUi1pMHQ8bCZ6KFFjOVJTVCNQPXhib1NgTysmMG45Ryp7M3hRUjlpTkhjJjFG
I1MlK2NnUFAyeHV9Zwp6UGc+PEgwaEUzTkVMWX5QUXZzRExVSSFYUmpUe1pqKExeKjxhP2IoVj1Y
Pll3dSVHYXlifUYjcEBWY3R4KVE/RiEKejxYMmtsYVJANXFhQmc1fGx4MVl6YmIwQyQ3N2hVcVBL
Z08ydldFbHw5MWAzUUdgdU5NKWRWJndmfCVHO0xmWnwxCnoobC1QUjZzJSlDeT99YkFHJSRLelJS
cHk7JTI7PyNfPVFnclFnQmRFTyZCJERHJVFDRyhVOGVLNTlXUVpePmNyKQp6WUh7JGY9fSsjNCUk
ZCpzeE5iPXVxeUFfaUZrMVNKN1cqVCl6V2MjYD5Xc0soME1pQ2UoNz1TSnREbm17ci1VV3wKRDli
MSFzCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
cHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjlh
OWMwMGZiOTNhNmRjOGUyOGU3MTM1ZDM5YzYzMGI1OWJhYWYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5IVE1MIFJlZmVyZW5jZSBGaWxlPC90aXRsZT4KKzxwPlBhc3MgaWYgc3F1YXJlIGNh
bnZhcyBiZWxvdyBpcyBhIDQgYnkgNCBibHVlL2dyZWVuIGNoZWNrZXJib2FyZC48L3A+Cis8Y2Fu
dmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBj
YW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAs
IDI1NSwgMCknOworY29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5o
ZWlnaHQpOworCitjb25zdCBudW1Db2x1bW5zID0gNDsKK2NvbnN0IG51bVJvd3MgPSA0OworY29u
dGV4dC5iZWdpblBhdGgoKTsKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYigwLCAwLCAyNTUpJzsK
K2ZvciAobGV0IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgKyt4KSB7CisgICAgZm9yIChsZXQgeSA9
IDA7IHkgPCBudW1Sb3dzOyArK3kpIHsKKyAgICAgICAgaWYgKHggJSAyID09IDAgJiYgeSAlIDIg
PT0gMCB8fCB4ICUgMiA9PSAxICYmIHkgJSAyID09IDEpCisgICAgICAgICAgICBjb250ZXh0LnJl
Y3QoCisgICAgICAgICAgICAgICAgeCAqIGNhbnZhcy53aWR0aCAvIG51bUNvbHVtbnMsIAorICAg
ICAgICAgICAgICAgIHkgKiBjYW52YXMuaGVpZ2h0IC8gbnVtUm93cywgCisgICAgICAgICAgICAg
ICAgY2FudmFzLndpZHRoIC8gbnVtQ29sdW1ucywgCisgICAgICAgICAgICAgICAgY2FudmFzLmhl
aWdodCAvIG51bVJvd3MKKyAgICAgICAgICAgICAgICApOworICAgIH0KK30KK2NvbnRleHQuZmls
bCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMyMmE1
NWYzYjhjODU4N2Y0MTg5NzExNWMzMzk3ZmFmNWZmZjcwYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTAsMCArMSwx
OTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdQVSBIZWxsbyBUcmlhbmdsZXM8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJXZWJHUFUgY29ycmVjdGx5IHJlbmRlcnMgYSBncmVlbiBjYW52YXMuIj4KKzxsaW5rIHJlbD0i
bWF0Y2giIGhyZWY9InZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCI+
Cis8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgYSA0IGJ5IDQgYmx1ZS9ncmVlbiBj
aGVja2VyYm9hcmQuPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52
YXM+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCitjb25zdCBzaGFkZXJDb2RlID0gYAorI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KKyAg
ICAKK3VzaW5nIG5hbWVzcGFjZSBtZXRhbDsKKworc3RydWN0IFZlcnRleEluCit7CisgICAgZmxv
YXQ0IHBvc2l0aW9uIFtbYXR0cmlidXRlKDApXV07CisgICAgZmxvYXQyIHRleENvb3JkcyBbW2F0
dHJpYnV0ZSgxKV1dOworfTsKKworc3RydWN0IFZlcnRleE91dAoreworICAgIGZsb2F0NCBwb3Np
dGlvbiBbW3Bvc2l0aW9uXV07CisgICAgZmxvYXQyIHRleENvb3JkczsKK307CisKK3ZlcnRleCBW
ZXJ0ZXhPdXQgdmVydGV4X21haW4oVmVydGV4SW4gdmVydGV4SW4gW1tzdGFnZV9pbl1dKQorewor
ICAgIFZlcnRleE91dCB2T3V0OworICAgIHZPdXQucG9zaXRpb24gPSB2ZXJ0ZXhJbi5wb3NpdGlv
bjsKKyAgICB2T3V0LnRleENvb3JkcyA9IHZlcnRleEluLnRleENvb3JkczsKKyAgICByZXR1cm4g
dk91dDsKK30KKworc3RydWN0IFRleHR1cmUKK3sKKyAgICB0ZXh0dXJlMmQ8ZmxvYXQ+IGltYWdl
IFtbaWQoMCldXTsKK307CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZlcnRleE91
dCB2IFtbc3RhZ2VfaW5dXSwgY29uc3QgZGV2aWNlIFRleHR1cmUmIHQgW1tidWZmZXIoMCldXSkK
K3sKKyAgICBjb25zdGV4cHIgc2FtcGxlciBzKGNvb3JkOjpub3JtYWxpemVkLCBhZGRyZXNzOjpj
bGFtcF90b196ZXJvLCBmaWx0ZXI6Om5lYXJlc3QpOworICAgIHJldHVybiB0LmltYWdlLnNhbXBs
ZShzLCB2LnRleENvb3Jkcyk7Cit9CitgCisKK2Z1bmN0aW9uIGNyZWF0ZUlucHV0U3RhdGVEZXNj
cmlwdG9yKCkgeworICAgIHJldHVybiB7CisgICAgICAgIGluZGV4Rm9ybWF0OiBXZWJHUFVJbmRl
eEZvcm1hdC5VSU5UMzIsCisgICAgICAgIGF0dHJpYnV0ZXM6IFt7CisgICAgICAgICAgICBzaGFk
ZXJMb2NhdGlvbjogMCwKKyAgICAgICAgICAgIGlucHV0U2xvdDogMCwKKyAgICAgICAgICAgIG9m
ZnNldDogMCwKKyAgICAgICAgICAgIGZvcm1hdDogV2ViR1BVVmVydGV4Rm9ybWF0LkZMT0FUX1Iz
Ml9HMzJfQjMyX0EzMgorICAgICAgICB9LCB7CisgICAgICAgICAgICBzaGFkZXJMb2NhdGlvbjog
MSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogMSwKKyAgICAgICAgICAgIG9mZnNldDogMCwKKyAg
ICAgICAgICAgIGZvcm1hdDogV2ViR1BVVmVydGV4Rm9ybWF0LkZMT0FUX1IzMl9HMzIKKyAgICAg
ICAgfV0sCisgICAgICAgIGlucHV0czogW3sKKyAgICAgICAgICAgIGlucHV0U2xvdDogMCwKKyAg
ICAgICAgICAgIHN0cmlkZTogNCAqIDQsCisgICAgICAgICAgICBzdGVwTW9kZTogV2ViR1BVSW5w
dXRTdGVwTW9kZS5WRVJURVgKKyAgICAgICAgfSwgeworICAgICAgICAgICAgaW5wdXRTbG90OiAx
LAorICAgICAgICAgICAgc3RyaWRlOiA0ICogMiwKKyAgICAgICAgICAgIHN0ZXBNb2RlOiBXZWJH
UFVJbnB1dFN0ZXBNb2RlLlZFUlRFWAorICAgICAgICB9XQorICAgIH0KK30KKworYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgp
OworICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOwor
ICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpOwor
ICAgIC8vIEZJWE1FOiBSZXBsYWNlIHdpdGggbm9uLU1TTCBzaGFkZXJzLgorICAgIGNvbnN0IHNo
YWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBzaGFkZXJDb2Rl
IH0pOworCisgICAgY29uc3QgdmVydGV4QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAg
ICAgLy8gZmxvYXQ0IHh5encKKyAgICAgICAgLTEsIDEsIDAsIDEsCisgICAgICAgIC0xLCAtMSwg
MCwgMSwKKyAgICAgICAgMSwgMSwgMCwgMSwgCisgICAgICAgIDEsIC0xLCAwLCAxCisgICAgXSk7
CisgICAgY29uc3QgdmVydGV4QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHZl
cnRleEFycmF5LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5WRVJURVggfCBHUFVC
dWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfSk7CisgICAgdmVydGV4QnVmZmVyLnNldFN1YkRhdGEo
MCwgdmVydGV4QXJyYXkuYnVmZmVyKTsKKworICAgIGNvbnN0IHRleHR1cmVDb29yZEFycmF5ID0g
bmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIC8vIGZsb2F0MiB0ZXhDb29yZHMKKyAgICAgICAg
MCwgMCwKKyAgICAgICAgMCwgMSwKKyAgICAgICAgMSwgMCwKKyAgICAgICAgMSwgMQorICAgIF0p
OworICAgIGNvbnN0IHRleHR1cmVDb29yZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoeyBz
aXplOiB0ZXh0dXJlQ29vcmRBcnJheS5ieXRlTGVuZ3RoLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2Uu
VkVSVEVYIHwgR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfRFNUIH0pOworICAgIHRleHR1cmVDb29y
ZEJ1ZmZlci5zZXRTdWJEYXRhKDAsIHRleHR1cmVDb29yZEFycmF5LmJ1ZmZlcik7CisKKyAgICBj
b25zdCBpbnB1dFN0YXRlRGVzY3JpcHRvciA9IGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9yKCk7
CisKKyAgICAvLyBMb2FkIHRleHR1cmUgaW1hZ2UKKyAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFn
ZSgpOworICAgIGNvbnN0IGltYWdlTG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHsgCisgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTsgCisgICAgICAgIGlt
YWdlLnNyYyA9ICJyZXNvdXJjZXMvYmx1ZS1jaGVja2VyZWQucG5nIjsKKyAgICB9KTsKKyAgICBh
d2FpdCBQcm9taXNlLnJlc29sdmUoaW1hZ2VMb2FkUHJvbWlzZSk7CisKKyAgICAvLyBDb252ZXJ0
IGltYWdlIHRvIGRhdGEgYW5kIGZpbGwgR1BVQnVmZmVyCisgICAgY29uc3QgY2FudmFzMmQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICBjYW52YXMyZC53aWR0aCA9IGlt
YWdlLndpZHRoOworICAgIGNhbnZhczJkLmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAgICBjb25z
dCBjb250ZXh0MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQyZC5k
cmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAgIGNvbnN0IGltYWdlRGF0YSA9IGNvbnRleHQyZC5n
ZXRJbWFnZURhdGEoMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCk7CisKKyAgICBjb25z
dCB0ZXh0dXJlQnVmZmVyRGVzY3JpcHRvciA9IHsKKyAgICAgICAgc2l6ZTogaW1hZ2VEYXRhLmRh
dGEubGVuZ3RoLAorICAgICAgICB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfU1JDIHwg
R1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfRFNUCisgICAgfTsKKyAgICBjb25zdCB0ZXh0dXJlQnVm
ZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih0ZXh0dXJlQnVmZmVyRGVzY3JpcHRvcik7CisgICAg
dGV4dHVyZUJ1ZmZlci5zZXRTdWJEYXRhKDAsIGltYWdlRGF0YS5kYXRhLmJ1ZmZlcik7CisKKyAg
ICAvLyBDcmVhdGUgR1BVVGV4dHVyZQorICAgIGNvbnN0IHRleHR1cmVTaXplID0geworICAgICAg
ICB3aWR0aDogaW1hZ2Uud2lkdGgsCisgICAgICAgIGhlaWdodDogaW1hZ2UuaGVpZ2h0LAorICAg
ICAgICBkZXB0aDogMQorICAgIH07CisKKyAgICBjb25zdCB0ZXh0dXJlRGVzY3JpcHRvciA9IHsK
KyAgICAgICAgc2l6ZTogeyB3aWR0aDogaW1hZ2Uud2lkdGgsIGhlaWdodDogaW1hZ2UuaGVpZ2h0
LCBkZXB0aDogMSB9LAorICAgICAgICBhcnJheUxheWVyQ291bnQ6IDEsCisgICAgICAgIG1pcExl
dmVsQ291bnQ6IDEsCisgICAgICAgIHNhbXBsZUNvdW50OiAxLAorICAgICAgICBkaW1lbnNpb246
ICIyZCIsCisgICAgICAgIGZvcm1hdDogInI4ZzhiOGE4LXVub3JtIiwKKyAgICAgICAgdXNhZ2U6
IEdQVVRleHR1cmVVc2FnZS5UUkFOU0ZFUl9EU1QgfCBHUFVUZXh0dXJlVXNhZ2UuU0FNUExFRAor
ICAgIH07CisgICAgY29uc3QgdGV4dHVyZSA9IGRldmljZS5jcmVhdGVUZXh0dXJlKHRleHR1cmVE
ZXNjcmlwdG9yKTsKKworICAgIC8vIEJpbmQgdGV4dHVyZSB0byBwaXBlbGluZQorICAgIGNvbnN0
IHRleHR1cmVCaW5kaW5nTnVtID0gMDsKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yID0geworICAgICAgICBiaW5kaW5nczogW3sgYmluZGluZzogdGV4dHVyZUJpbmRpbmdOdW0s
IHZpc2liaWxpdHk6IEdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5ULCB0eXBlOiAic2FtcGxlZC10
ZXh0dXJlIiB9XQorICAgIH07CisgICAgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJp
bmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKKyAgICBjb25zdCBwaXBl
bGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dCh7IGJpbmRHcm91cExheW91
dHM6IFtiaW5kR3JvdXBMYXlvdXRdIH0pOworCisgICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRv
ciA9IHsKKyAgICAgICAgbGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsCisgICAgICAgIGJpbmRpbmdz
OiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgcmVzb3VyY2U6IHRleHR1cmUuY3JlYXRl
RGVmYXVsdFRleHR1cmVWaWV3KCkgfV0KKyAgICB9OworICAgIGNvbnN0IGJpbmRHcm91cCA9IGRl
dmljZS5jcmVhdGVCaW5kR3JvdXAoYmluZEdyb3VwRGVzY3JpcHRvcik7CisKKyAgICAvLyBQaXBl
bGluZSBhbmQgcmVuZGVyCisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5l
KHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRTdGF0ZURlc2NyaXB0
b3IpOworICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEJ1ZmZl
cigpOworCisgICAgY29uc3QgYnVmZmVyQ29weVZpZXcgPSB7CisgICAgICAgIGJ1ZmZlcjogdGV4
dHVyZUJ1ZmZlciwKKyAgICAgICAgb2Zmc2V0OiAwLAorICAgICAgICByb3dQaXRjaDogaW1hZ2Uu
d2lkdGggKiA0LAorICAgICAgICBpbWFnZUhlaWdodDogMAorICAgIH07CisgICAgY29uc3QgdGV4
dHVyZUNvcHlWaWV3ID0geworICAgICAgICB0ZXh0dXJlOiB0ZXh0dXJlLAorICAgICAgICBtaXBM
ZXZlbDogMCwKKyAgICAgICAgYXJyYXlMYXllcjogMCwKKyAgICAgICAgb3JpZ2luOiB7IHg6IDAs
IHk6IDAsIHo6IDAgfQorICAgIH07CisgICAgY29tbWFuZEJ1ZmZlci5jb3B5QnVmZmVyVG9UZXh0
dXJlKGJ1ZmZlckNvcHlWaWV3LCB0ZXh0dXJlQ29weVZpZXcsIHRleHR1cmVTaXplKTsKKyAgICBj
b25zdCBwYXNzRW5jb2RlciA9IGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRC
dWZmZXIpOworICAgIHBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTsKKyAgICBwYXNz
RW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgYmluZEdyb3VwKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRW
ZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXIsIHRleHR1cmVDb29yZEJ1ZmZlcl0sIFswLCAw
XSk7CisgICAgcGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAgICBwYXNzRW5jb2Rlci5l
bmRQYXNzKCk7CisKKyAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworICAgIHF1
ZXVlLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworICAgIHZlcnRleEJ1ZmZlci5kZXN0cm95KCk7
CisgICAgdGV4dHVyZUNvb3JkQnVmZmVyLmRlc3Ryb3koKTsKKyAgICB0ZXh0dXJlLmRlc3Ryb3ko
KTsKKyAgICBjb250ZXh0LnByZXNlbnQoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>