<?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>196183</bug_id>
          
          <creation_ts>2019-03-23 21:22:19 -0700</creation_ts>
          <short_desc>[Web GPU] Standardize Web GPU object reference counting and creation logic</short_desc>
          <delta_ts>2019-03-27 13:48:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1520675</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-23 21:22:19 -0700</bug_when>
    <thetext>[Web GPU] Standardize Web GPU object creation logic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520906</commentid>
    <comment_count>1</comment_count>
      <attachid>365875</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-25 10:53:56 -0700</bug_when>
    <thetext>Created attachment 365875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521001</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-03-25 14:06:34 -0700</bug_when>
    <thetext>rdar://problem/46819458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521065</commentid>
    <comment_count>3</comment_count>
      <attachid>365875</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 15:32:20 -0700</bug_when>
    <thetext>Comment on attachment 365875
Patch

Rejecting attachment 365875 from commit-queue.

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

Last 5000 characters of output:
 196183.
Fetching: https://bugs.webkit.org/attachment.cgi?id=365875
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Dean Jackson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 45 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/Modules/webgpu/WebGPUAdapter.h
patching file Source/WebCore/Modules/webgpu/WebGPUBindGroup.h
patching file Source/WebCore/Modules/webgpu/WebGPUBindGroupDescriptor.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUBindGroupDescriptor.h
patching file Source/WebCore/Modules/webgpu/WebGPUBindGroupLayout.h
patching file Source/WebCore/Modules/webgpu/WebGPUBuffer.h
patching file Source/WebCore/Modules/webgpu/WebGPUCommandEncoder.cpp
Hunk #1 succeeded at 47 (offset -2 lines).
Hunk #2 succeeded at 59 (offset -2 lines).
Hunk #3 succeeded at 72 (offset -2 lines).
Hunk #4 succeeded at 86 with fuzz 1 (offset -12 lines).
patching file Source/WebCore/Modules/webgpu/WebGPUCommandEncoder.h
Hunk #1 FAILED at 58.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/Modules/webgpu/WebGPUCommandEncoder.h.rej
patching file Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
Hunk #1 succeeded at 76 (offset -2 lines).
Hunk #2 succeeded at 100 (offset -2 lines).
Hunk #3 succeeded at 120 (offset -2 lines).
Hunk #4 succeeded at 133 (offset -2 lines).
Hunk #5 succeeded at 157 (offset -12 lines).
patching file Source/WebCore/Modules/webgpu/WebGPUDevice.h
Hunk #1 succeeded at 65 with fuzz 2 (offset -2 lines).
Hunk #2 succeeded at 80 (offset -3 lines).
patching file Source/WebCore/Modules/webgpu/WebGPUPipelineLayout.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUPipelineLayout.h
patching file Source/WebCore/Modules/webgpu/WebGPUPipelineLayoutDescriptor.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUPipelineLayoutDescriptor.h
patching file Source/WebCore/Modules/webgpu/WebGPUQueue.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUQueue.h
patching file Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.cpp
patching file Source/WebCore/Modules/webgpu/WebGPURenderPassEncoder.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUSampler.h
patching file Source/WebCore/Modules/webgpu/WebGPUShaderModule.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUShaderModule.h
patching file Source/WebCore/Modules/webgpu/WebGPUSwapChain.h
patching file Source/WebCore/Modules/webgpu/WebGPUTexture.h
patching file Source/WebCore/Modules/webgpu/WebGPUTextureView.h
patching file Source/WebCore/Sources.txt
Hunk #1 FAILED at 361.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/Sources.txt.rej
patching file Source/WebCore/WebCore.xcodeproj/project.pbxproj
Hunk #1 FAILED at 14008.
Hunk #2 succeeded at 26257 with fuzz 1 (offset -18 lines).
1 out of 2 hunks FAILED -- saving rejects to file Source/WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file Source/WebCore/platform/graphics/gpu/GPUBindGroupBinding.h
patching file Source/WebCore/platform/graphics/gpu/GPUBindGroupDescriptor.h
patching file Source/WebCore/platform/graphics/gpu/GPUBuffer.h
patching file Source/WebCore/platform/graphics/gpu/GPUDevice.cpp
Hunk #1 succeeded at 48 (offset -3 lines).
Hunk #2 succeeded at 73 with fuzz 1 (offset -3 lines).
Hunk #3 succeeded at 94 (offset -8 lines).
patching file Source/WebCore/platform/graphics/gpu/GPUDevice.h
Hunk #1 FAILED at 63.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/platform/graphics/gpu/GPUDevice.h.rej
patching file Source/WebCore/platform/graphics/gpu/GPUPipelineLayout.cpp
patching file Source/WebCore/platform/graphics/gpu/GPUPipelineLayout.h
patching file Source/WebCore/platform/graphics/gpu/GPUPipelineLayoutDescriptor.h
patching file Source/WebCore/platform/graphics/gpu/GPURenderPipeline.h
patching file Source/WebCore/platform/graphics/gpu/GPUShaderModule.h
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm
Hunk #1 FAILED at 80.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm.rej
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUBufferMetal.mm
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUDeviceMetal.mm
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm
Hunk #1 succeeded at 417 (offset -1 lines).
Hunk #2 FAILED at 435.
1 out of 2 hunks FAILED -- saving rejects to file Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm.rej
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/webgpu/shader-modules.html

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

Full output: https://webkit-queues.webkit.org/results/11664897</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521080</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-25 16:01:18 -0700</bug_when>
    <thetext>A previous change of mine that this was depending on has been reverted; holding off on merging this until that issue is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521797</commentid>
    <comment_count>5</comment_count>
      <attachid>366096</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-27 13:08:11 -0700</bug_when>
    <thetext>Created attachment 366096
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521822</commentid>
    <comment_count>6</comment_count>
      <attachid>366096</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-27 13:48:06 -0700</bug_when>
    <thetext>Comment on attachment 366096
Patch for landing

Clearing flags on attachment: 366096

Committed r243563: &lt;https://trac.webkit.org/changeset/243563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521823</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-27 13:48:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365875</attachid>
            <date>2019-03-25 10:53:56 -0700</date>
            <delta_ts>2019-03-27 13:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196183-20190325105356.patch</filename>
            <type>text/plain</type>
            <size>60125</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VkMjk4MTc0NTlmM2Q0
ODBhZGRmOTc2ZTJjOWVmZTUwOWY5Y2E2NC4uZGRkMTNkOGJjZWYwY2FkMzI3YjRiYTQxZjFjZGNh
MWZjMWRiYTA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAxOS0wMy0yNSAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBTdGFu
ZGFyZGl6ZSBXZWIgR1BVIG9iamVjdCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGNyZWF0aW9uIGxv
Z2ljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYx
ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IGdldHRlcnMgcmV0dXJuIHJhdyByZWZzL3BvaW50ZXJzIGFuZCBwcm92aWRlIGNvbnN0IHZlcnNp
b25zIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgQWxsIFdlYiBHUFUgb2JqZWN0cyBhcmUgbm9uLW51
bGxhYmxlLCBidXQgYmVjb21lIG5vLW9wIGlmIGludmFsaWQsIGFuZCBkZXNjcmlwdG9ycyBhcmUg
bm90IG1vdmVkIHVubGVzcyBuZWVkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBubyBjaGFu
Z2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgR2V0dGVyIHVwZGF0ZXMgYW5kIGNvbnN0IHF1YWxp
ZmljYXRpb25zOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVUFkYXB0ZXI6Om9wdGlvbnMgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwOjpiaW5kR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQmluZEdy
b3VwOjpiaW5kR3JvdXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVQmluZEdyb3VwRGVzY3JpcHRvciBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQmluZEdyb3VwTGF5b3V0OjpiaW5kR3JvdXBMYXlvdXQgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVQnVmZmVyOjpidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
QnVmZmVyOjpidWZmZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVNhbXBsZXI6OnNhbXBsZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU3dhcENo
YWluOjpzd2FwQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU3dhcENoYWluOjpzd2Fw
Q2hhaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRl
eHR1cmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6OnRleHR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVVGV4dHVyZTo6dGV4dHVyZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVRleHR1cmVWaWV3Ojp0ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVVRleHR1cmVWaWV3Ojp0ZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tOgorICAgICAgICAo
V2ViQ29yZTo6dHJ5R2V0UmVzb3VyY2VBc01UTFNhbXBsZXJTdGF0ZSk6CisKKyAgICAgICAgV2Vi
IEdQVSBvYmplY3QgY3JlYXRpb24gbG9naWM6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQ29tbWFuZEVuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQnVmZmVyQ29w
eVZpZXc6OnRyeUNyZWF0ZUdQVUJ1ZmZlckNvcHlWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVVRleHR1cmVDb3B5Vmlldzo6dHJ5Q3JlYXRlR1BVVGV4dHVyZUNvcHlWaWV3IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRl
clBhc3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZm
ZXJUb0J1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVuY29k
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVCdWZmZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVUZXh0dXJlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmdldFF1ZXVlIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQ
aXBlbGluZUxheW91dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5l
TGF5b3V0OjpXZWJHUFVQaXBlbGluZUxheW91dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVMYXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5l
TGF5b3V0OjpwaXBlbGluZUxheW91dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcDogCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3I6OnRyeUNyZWF0ZUdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVRdWV1ZTo6V2ViR1BVUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
UXVldWU6OnN1Ym1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVU2hhZGVyTW9kdWxlOjpXZWJHUFVTaGFkZXJNb2R1bGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVU2hhZGVyTW9kdWxlOjptb2R1bGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZVNoYWRlck1vZHVsZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5l
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5R2V0UXVldWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBl
bGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmdldFF1
ZXVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5
b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmVMYXlvdXQ6OkdQVVBpcGVsaW5lTGF5b3V0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpiaW5kR3JvdXBMYXlvdXRzIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVs
aW5lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZl
cjo6c2V0U3ViRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VUNvbW1hbmRCdWZmZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZm
ZXI6OnRyeUNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VURldmljZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGlu
ZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OnRyeUNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNoYWRlck1vZHVs
ZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUpOiBEZWxldGVkLgor
CisgICAgICAgIEFkZCBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwIHRvIHByb2pl
Y3Q6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTAzLTI1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdlYkdQVSBjbGFzcyBuYW1lcyBiYXNlZCBvbiBz
a2V0Y2guaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVy
LmgKaW5kZXggMDQwYjUwOTg1ZWQ5YzNlZWM4MWVlNjExYTIxMTE2MzZhYTZlNTdkNS4uMzliYTNk
YjZlNTE0ZTQzY2RkODEzNmQzOWVmMGM4ZTcyNDg0NWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgRGV2aWNlUmVxdWVzdFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPFdlYkdQVURldmljZT4+OwogICAgIHZvaWQgcmVxdWVzdERldmljZShEZXZpY2VS
ZXF1ZXN0UHJvbWlzZSYmKSBjb25zdDsKICAgICAKLSAgICBPcHRpb25hbDxHUFVSZXF1ZXN0QWRh
cHRlck9wdGlvbnM+IG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAgICBj
b25zdCBPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiBvcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR1BVQWRh
cHRlcihPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaAppbmRleCA4MjllYWIyYjNi
MWE2NmIyZmJkOTMxMzI3MjkxZmQ2NWViNjgyOGZhLi45MjMyNWZiMmFlZjU1NDFiMDM0ZDJkOTFl
NWE2NzFjNWMyNmZhNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXAuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJHUFVCaW5kR3JvdXAg
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVCaW5kR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwog
Ci0gICAgR1BVQmluZEdyb3VwKiBiaW5kR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX2JpbmRHcm91
cC5nZXQoKTsgfQorICAgIEdQVUJpbmRHcm91cCogYmluZEdyb3VwKCkgeyByZXR1cm4gbV9iaW5k
R3JvdXAuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJHUFVCaW5kR3JvdXAo
UmVmUHRyPEdQVUJpbmRHcm91cD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCmluZGV4IGJkMjI4
MzIxN2ZhNTZiNTMzNDFhMDBmMTBhYmI1ZmEwNTAwZDdmOWIuLmUyZDgzMTg0N2YzMTA5NjZiYmVi
NzY3ZDhiOGE2OGU4MTVlYWNkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgT3B0aW9uYWw8R1BVQmluZEdyb3VwRGVzY3JpcHRvcj4gV2ViR1BVQmluZEdyb3Vw
RGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVQmluZEdyb3UKICAgICAgICAgICAgIGlmICghdGV4dHVy
ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGluZ1Jlc291cmNlPih0ZXh0dXJlLnJlbGVhc2VOb25O
dWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJj
ZT4obWFrZVJlZigqdGV4dHVyZSkpOwogICAgICAgICB9LCBbJmxheW91dEJpbmRpbmcsIGZ1bmN0
aW9uTmFtZV0gKFdlYkdQVUJ1ZmZlckJpbmRpbmcgYnVmZmVyQmluZGluZykgLT4gT3B0aW9uYWw8
R1BVQmluZGluZ1Jlc291cmNlPiB7CiAgICAgICAgICAgICBpZiAoIWJ1ZmZlckJpbmRpbmcuYnVm
ZmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0xMTEsMTAgKzEx
MSwxMCBAQCBPcHRpb25hbDxHUFVCaW5kR3JvdXBEZXNjcmlwdG9yPiBXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVCaW5kR3JvdQogICAgICAgICAgICAgaWYgKCFidWZmZXIp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICAgICAgaWYg
KCF2YWxpZGF0ZUJ1ZmZlckJpbmRpbmdUeXBlKGJ1ZmZlci5nZXQoKSwgbGF5b3V0QmluZGluZywg
ZnVuY3Rpb25OYW1lKSkKKyAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJCaW5kaW5nVHlw
ZShidWZmZXIsIGxheW91dEJpbmRpbmcsIGZ1bmN0aW9uTmFtZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQ
VUJpbmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7IGJ1ZmZlci5yZWxlYXNlTm9uTnVs
bCgpLCBidWZmZXJCaW5kaW5nLm9mZnNldCwgYnVmZmVyQmluZGluZy5zaXplIH0pOworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmlu
ZGluZyB7IG1ha2VSZWYoKmJ1ZmZlciksIGJ1ZmZlckJpbmRpbmcub2Zmc2V0LCBidWZmZXJCaW5k
aW5nLnNpemUgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGF1dG8gYmluZGluZ1Jlc291cmNl
ID0gV1RGOjp2aXNpdChiaW5kaW5nUmVzb3VyY2VWaXNpdG9yLCBiaW5kaW5nLnJlc291cmNlKTsK
QEAgLTEyNiw3ICsxMjYsNyBAQCBPcHRpb25hbDxHUFVCaW5kR3JvdXBEZXNjcmlwdG9yPiBXZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVCaW5kR3JvdQogICAgICAgICBiaW5k
R3JvdXBCaW5kaW5ncy51bmNoZWNrZWRBcHBlbmQoR1BVQmluZEdyb3VwQmluZGluZyB7IGJpbmRp
bmcuYmluZGluZywgV1RGTW92ZShiaW5kaW5nUmVzb3VyY2UudmFsdWUoKSkgfSk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIEdQVUJpbmRHcm91cERlc2NyaXB0b3IgeyBsYXlvdXQtPmJpbmRHcm91cExh
eW91dCgpLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYmluZEdyb3VwQmluZGluZ3MpIH07Cisg
ICAgcmV0dXJuIEdQVUJpbmRHcm91cERlc2NyaXB0b3IgeyBtYWtlUmVmKCpsYXlvdXQtPmJpbmRH
cm91cExheW91dCgpKSwgV1RGTW92ZShiaW5kR3JvdXBCaW5kaW5ncykgfTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCmluZGV4IGY5YTA5YWQ4MDE4ODEzNmMz
YjE1NGY3ZDRjYTY3ZjkyN2I2YmQ1MmIuLmZjODllYjVmZjkwZmVhMDk0YmU0ZWFlODg5YmUxOGFi
YjBjYzQzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAgLTQwLDcgKzQwLDcgQEAgc3RydWN0IEdQ
VUJpbmRHcm91cERlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvciB7
CiAgICAgT3B0aW9uYWw8R1BVQmluZEdyb3VwRGVzY3JpcHRvcj4gdHJ5Q3JlYXRlR1BVQmluZEdy
b3VwRGVzY3JpcHRvcigpIGNvbnN0OwogCi0gICAgUmVmUHRyPFdlYkdQVUJpbmRHcm91cExheW91
dD4gbGF5b3V0OworICAgIFJlZlB0cjxjb25zdCBXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGxheW91
dDsKICAgICBWZWN0b3I8V2ViR1BVQmluZEdyb3VwQmluZGluZz4gYmluZGluZ3M7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExh
eW91dC5oCmluZGV4IGY5YzBmODMwNTBmNjc5MTczN2MyZjUzYTA5MjIwMGE1ZmRlYTZhZWYuLjU1
Y2M1YTc1MTJiYzA3YWE1Yjk1Mjg2MDdhZjJjZDg0MWE5MjIwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5oCkBAIC0y
OCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUgIkdQVUJpbmRHcm91
cExheW91dC5oIgotCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKQEAgLTM4LDcgKzM3LDcgQEAgY2xhc3MgV2ViR1BVQmluZEdyb3VwTGF5b3V0
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShSZWZQdHI8R1BVQmlu
ZEdyb3VwTGF5b3V0PiYmKTsKIAotICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGJpbmRH
cm91cExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmluZEdyb3VwTGF5b3V0OyB9CisgICAgY29u
c3QgR1BVQmluZEdyb3VwTGF5b3V0KiBiaW5kR3JvdXBMYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X2JpbmRHcm91cExheW91dC5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkdQ
VUJpbmRHcm91cExheW91dChSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmgKaW5kZXggNjcyMWU5OTIzODYx
Yjc5Mzc0NTcyODZhNjFlNzM2YmFhNjZkNzE1Ny4uOTg1OGRhMTllMjlkOGI2Y2EzM2I0YzUxMWEw
YjZjNWFlMDFiOGI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QnVmZmVyLmgKQEAgLTQ1LDcgKzQ1LDggQEAgY2xhc3MgV2ViR1BVQnVmZmVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViR1BVQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVC
dWZmZXI+IGNyZWF0ZShSZWZQdHI8R1BVQnVmZmVyPiYmKTsKIAotICAgIFJlZlB0cjxHUFVCdWZm
ZXI+IGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9CisgICAgR1BVQnVmZmVyKiBi
dWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQorICAgIGNvbnN0IEdQVUJ1ZmZlciog
YnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0
U3ViRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIGNvbnN0IEpTQzo6QXJyYXlCdWZmZXImKTsKICAg
ICB1c2luZyBCdWZmZXJNYXBwaW5nUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8SlNDOjpBcnJheUJ1ZmZlcj4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVuY29kZXIuY3BwCmluZGV4IDRiNmNhOTI0ZGQ1ODU1
MmEwZTg1MTkwM2Q0ODgzNTc3MWM1ZTc1OTQuLjNmZDNjOGU4MWU2ZDEwY2MxNzAyYmZkMmQwZDBm
YmRiNzVmMWM4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUNvbW1hbmRFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21tYW5kRW5jb2Rlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgT3B0aW9uYWw8R1BV
QnVmZmVyQ29weVZpZXc+IFdlYkdQVUJ1ZmZlckNvcHlWaWV3Ojp0cnlDcmVhdGVHUFVCdWZmZXJD
b3B5VmlldygpIGMKIAogICAgIC8vIEZJWE1FOiBBZGQgV2ViIEdQVSB2YWxpZGF0aW9uLgogCi0g
ICAgcmV0dXJuIEdQVUJ1ZmZlckNvcHlWaWV3IHsgYnVmZmVyLT5idWZmZXIoKS5yZWxlYXNlTm9u
TnVsbCgpLCAqdGhpcyB9OworICAgIHJldHVybiBHUFVCdWZmZXJDb3B5VmlldyB7IG1ha2VSZWYo
KmJ1ZmZlci0+YnVmZmVyKCkpLCAqdGhpcyB9OwogfQogCiBPcHRpb25hbDxHUFVUZXh0dXJlQ29w
eVZpZXc+IFdlYkdQVVRleHR1cmVDb3B5Vmlldzo6dHJ5Q3JlYXRlR1BVVGV4dHVyZUNvcHlWaWV3
KCkgY29uc3QKQEAgLTYxLDcgKzYxLDcgQEAgT3B0aW9uYWw8R1BVVGV4dHVyZUNvcHlWaWV3PiBX
ZWJHUFVUZXh0dXJlQ29weVZpZXc6OnRyeUNyZWF0ZUdQVVRleHR1cmVDb3B5VmlldygKIAogICAg
IC8vIEZJWE1FOiBBZGQgV2ViIEdQVSB2YWxpZGF0aW9uLgogCi0gICAgcmV0dXJuIEdQVVRleHR1
cmVDb3B5VmlldyB7IHRleHR1cmUtPnRleHR1cmUoKS5yZWxlYXNlTm9uTnVsbCgpLCAqdGhpcyB9
OworICAgIHJldHVybiBHUFVUZXh0dXJlQ29weVZpZXcgeyBtYWtlUmVmKCp0ZXh0dXJlLT50ZXh0
dXJlKCkpLCAqdGhpcyB9OwogfQogCiBSZWY8V2ViR1BVQ29tbWFuZEVuY29kZXI+IFdlYkdQVUNv
bW1hbmRFbmNvZGVyOjpjcmVhdGUoUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+JiYgYnVmZmVyKQpA
QCAtNzQsNyArNzQsNyBAQCBXZWJHUFVDb21tYW5kRW5jb2Rlcjo6V2ViR1BVQ29tbWFuZEVuY29k
ZXIoUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+JiYgYnVmZmVyKQogewogfQogCi1SZWY8V2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI+IFdlYkdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3Mo
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorUmVmPFdlYkdQVVJlbmRl
clBhc3NFbmNvZGVyPiBXZWJHUFVDb21tYW5kRW5jb2Rlcjo6YmVnaW5SZW5kZXJQYXNzKGNvbnN0
IFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIGlmICghbV9j
b21tYW5kQnVmZmVyKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJXZWJHUFVDb21tYW5kRW5jb2Rl
cjo6YmVnaW5SZW5kZXJQYXNzKCk6IEludmFsaWQgb3BlcmF0aW9uISIpOwpAQCAtOTgsNyArOTgs
NyBAQCBSZWY8V2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBXZWJHUFVDb21tYW5kRW5jb2Rlcjo6
YmVnaW5Db21wdXRlUGFzcygpCiAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6
Y3JlYXRlKFdURk1vdmUoZW5jb2RlcikpOwogfQogCi12b2lkIFdlYkdQVUNvbW1hbmRFbmNvZGVy
Ojpjb3B5QnVmZmVyVG9CdWZmZXIoY29uc3QgV2ViR1BVQnVmZmVyJiBzcmMsIHVuc2lnbmVkIGxv
bmcgc3JjT2Zmc2V0LCBjb25zdCBXZWJHUFVCdWZmZXImIGRzdCwgdW5zaWduZWQgbG9uZyBkc3RP
ZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3ZvaWQgV2ViR1BVQ29tbWFuZEVuY29kZXI6OmNv
cHlCdWZmZXJUb0J1ZmZlcihXZWJHUFVCdWZmZXImIHNyYywgdW5zaWduZWQgbG9uZyBzcmNPZmZz
ZXQsIFdlYkdQVUJ1ZmZlciYgZHN0LCB1bnNpZ25lZCBsb25nIGRzdE9mZnNldCwgdW5zaWduZWQg
bG9uZyBzaXplKQogewogICAgIGlmICghbV9jb21tYW5kQnVmZmVyKSB7CiAgICAgICAgIExPRyhX
ZWJHUFUsICJXZWJHUFVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKCk6IEludmFs
aWQgb3BlcmF0aW9uISIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbW1hbmRFbmNvZGVyLmgKaW5kZXggYTNhMDI4NmEwMDk0MjEzMzY2NThiMDYzNWNm
ZTU0YjA2MDgwNmM5ZS4uY2E3MjEwNGU5ZjlmZWQ3NzNlMzQxOTZjOWI3Y2QzYzU3ZDhmOTE3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVu
Y29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5k
RW5jb2Rlci5oCkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIFdlYkdQVUNvbW1hbmRFbmNvZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQ29tbWFuZEVuY29kZXI+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFdlYkdQVUNvbW1hbmRFbmNvZGVyPiBjcmVhdGUoUmVmUHRyPEdQVUNvbW1hbmRC
dWZmZXI+JiYpOwogCi0gICAgUmVmPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRl
clBhc3MoV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3ImJik7CisgICAgUmVmPFdlYkdQVVJlbmRl
clBhc3NFbmNvZGVyPiBiZWdpblJlbmRlclBhc3MoY29uc3QgV2ViR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3ImKTsKICAgICBSZWY8V2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdpbkNvbXB1dGVQ
YXNzKCk7Ci0gICAgdm9pZCBjb3B5QnVmZmVyVG9CdWZmZXIoY29uc3QgV2ViR1BVQnVmZmVyJiwg
dW5zaWduZWQgbG9uZyBzcmNPZmZzZXQsIGNvbnN0IFdlYkdQVUJ1ZmZlciYsIHVuc2lnbmVkIGxv
bmcgZHN0T2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOworICAgIHZvaWQgY29weUJ1ZmZlclRv
QnVmZmVyKFdlYkdQVUJ1ZmZlciYsIHVuc2lnbmVkIGxvbmcgc3JjT2Zmc2V0LCBXZWJHUFVCdWZm
ZXImLCB1bnNpZ25lZCBsb25nIGRzdE9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKICAgICB2
b2lkIGNvcHlCdWZmZXJUb1RleHR1cmUoY29uc3QgV2ViR1BVQnVmZmVyQ29weVZpZXcmLCBjb25z
dCBXZWJHUFVUZXh0dXJlQ29weVZpZXcmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwogICAgIHZvaWQg
Y29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBXZWJHUFVUZXh0dXJlQ29weVZpZXcmLCBjb25zdCBX
ZWJHUFVCdWZmZXJDb3B5VmlldyYsIGNvbnN0IEdQVUV4dGVudDNEJik7CiAgICAgdm9pZCBjb3B5
VGV4dHVyZVRvVGV4dHVyZShjb25zdCBXZWJHUFVUZXh0dXJlQ29weVZpZXcmLCBjb25zdCBXZWJH
UFVUZXh0dXJlQ29weVZpZXcmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKaW5kZXggYjJiNzJlMTNhZjZlMjJj
MjkzZTczZmUyYTYwNTc2OTc3ODc0ODI2Mi4uYzc2MTNiZjg3ODQ0MWYyY2VjYzZmYTNkZmVjOWJl
M2NjODI3Zjc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuY3BwCkBAIC03OCwxNSArNzgsMTUgQEAgV2ViR1BVRGV2aWNlOjpXZWJHUFVEZXZpY2Uo
UmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlciwgUmVmPEdQVURldmljZT4mJgogewog
fQogCi1SZWY8V2ViR1BVQnVmZmVyPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihHUFVCdWZm
ZXJEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVCdWZmZXI+IFdlYkdQ
VURldmljZTo6Y3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0
b3IpIGNvbnN0CiB7Ci0gICAgYXV0byBidWZmZXIgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQnVmZmVy
KFdURk1vdmUoZGVzY3JpcHRvcikpOworICAgIGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNy
ZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yKTsKICAgICByZXR1cm4gV2ViR1BVQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShidWZmZXIpKTsKIH0KIAotUmVmPFdlYkdQVVRleHR1cmU+IFdlYkdQVURldmljZTo6
Y3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CitS
ZWY8V2ViR1BVVGV4dHVyZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRl
eHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIGF1dG8gdGV4dHVyZSA9
IG1fZGV2aWNlLT50cnlDcmVhdGVUZXh0dXJlKFdURk1vdmUoZGVzY3JpcHRvcikpOworICAgIGF1
dG8gdGV4dHVyZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVUZXh0dXJlKGRlc2NyaXB0b3IpOwogICAg
IHJldHVybiBXZWJHUFVUZXh0dXJlOjpjcmVhdGUoV1RGTW92ZSh0ZXh0dXJlKSk7CiB9CiAKQEAg
LTEwMiwxNiArMTAyLDE3IEBAIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91CiAgICAgcmV0dXJuIFdl
YkdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKLVJlZjxX
ZWJHUFVQaXBlbGluZUxheW91dD4gV2ViR1BVRGV2aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dChX
ZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmPFdl
YkdQVVBpcGVsaW5lTGF5b3V0PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNv
bnN0IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKIHsK
LSAgICBhdXRvIGJpbmRHcm91cExheW91dHMgPSBkZXNjcmlwdG9yLmJpbmRHcm91cExheW91dHMu
bWFwKFtdIChjb25zdCBhdXRvJiBsYXlvdXQpIC0+IFJlZlB0cjxjb25zdCBHUFVCaW5kR3JvdXBM
YXlvdXQ+IHsKLSAgICAgICAgcmV0dXJuIGxheW91dC0+YmluZEdyb3VwTGF5b3V0KCk7Ci0gICAg
fSk7Ci0gICAgYXV0byBsYXlvdXQgPSBtX2RldmljZS0+Y3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIHsgV1RGTW92ZShiaW5kR3JvdXBMYXlvdXRzKSB9KTsK
KyAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcigpOworICAgIGlmICghZ3B1RGVzY3JpcHRvcikKKyAgICAgICAgcmV0
dXJuIFdlYkdQVVBpcGVsaW5lTGF5b3V0OjpjcmVhdGUobnVsbHB0cik7CisgICAgCisgICAgYXV0
byBsYXlvdXQgPSBtX2RldmljZS0+Y3JlYXRlUGlwZWxpbmVMYXlvdXQoV1RGTW92ZSgqZ3B1RGVz
Y3JpcHRvcikpOwogICAgIHJldHVybiBXZWJHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKFdURk1v
dmUobGF5b3V0KSk7CiB9CiAKLVJlZjxXZWJHUFVCaW5kR3JvdXA+IFdlYkdQVURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25z
dAorUmVmPFdlYkdQVUJpbmRHcm91cD4gV2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAoY29u
c3QgV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKIHsKICAgICBh
dXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVUJpbmRHcm91cERlc2Ny
aXB0b3IoKTsKICAgICBpZiAoIWdwdURlc2NyaXB0b3IpCkBAIC0xMjEsMTIgKzEyMiwxMSBAQCBS
ZWY8V2ViR1BVQmluZEdyb3VwPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChXZWJHUFVC
aW5kR3JvdXBEZXNjcmlwdG9yJiYgZAogICAgIHJldHVybiBXZWJHUFVCaW5kR3JvdXA6OmNyZWF0
ZShXVEZNb3ZlKGJpbmRHcm91cCkpOwogfQogCi1SZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBX
ZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdlYkdQVURl
dmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdoYXQgY2FuIGJlIHZhbGlk
YXRlZCBoZXJlPwotICAgIGlmIChhdXRvIG1vZHVsZSA9IG1fZGV2aWNlLT5jcmVhdGVTaGFkZXJN
b2R1bGUoR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciB7IGRlc2NyaXB0b3IuY29kZSwgZGVzY3Jp
cHRvci5pc1dITFNMIH0pKQotICAgICAgICByZXR1cm4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVh
dGUobW9kdWxlLnJlbGVhc2VOb25OdWxsKCkpOwotICAgIHJldHVybiBudWxscHRyOworICAgIGF1
dG8gbW9kdWxlID0gbV9kZXZpY2UtPnRyeUNyZWF0ZVNoYWRlck1vZHVsZShHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yIHsgZGVzY3JpcHRvci5jb2RlLCBkZXNjcmlwdG9yLmlzV0hMU0wgfSk7Cisg
ICAgcmV0dXJuIFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFdURk1vdmUobW9kdWxlKSk7CiB9
CiAKIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQ
aXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
IGNvbnN0CkBAIC0xMzUsNyArMTM1LDcgQEAgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJH
UFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclAKICAgICBp
ZiAoIWdwdURlc2NyaXB0b3IpCiAgICAgICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6
Y3JlYXRlKG51bGxwdHIpOwogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT5jcmVhdGVS
ZW5kZXJQaXBlbGluZShXVEZNb3ZlKCpncHVEZXNjcmlwdG9yKSk7CisgICAgYXV0byBwaXBlbGlu
ZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQaXBlbGluZSgqZ3B1RGVzY3JpcHRvcik7CiAg
ICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSkp
OwogfQogCkBAIC0xNjksMTIgKzE2OSwxMiBAQCBSZWY8V2ViR1BVU3dhcENoYWluPiBXZWJHUFVE
ZXZpY2U6OmNyZWF0ZVN3YXBDaGFpbihjb25zdCBXZWJHUFVTd2FwQ2hhaW5EZXNjcmlwdAogICAg
IHJldHVybiBuZXdTd2FwQ2hhaW47CiB9CiAKLVJlZlB0cjxXZWJHUFVRdWV1ZT4gV2ViR1BVRGV2
aWNlOjpnZXRRdWV1ZSgpIGNvbnN0CitSZWY8V2ViR1BVUXVldWU+IFdlYkdQVURldmljZTo6Z2V0
UXVldWUoKSBjb25zdAogewogICAgIGlmICghbV9xdWV1ZSkKLSAgICAgICAgbV9xdWV1ZSA9IFdl
YkdQVVF1ZXVlOjpjcmVhdGUobV9kZXZpY2UtPmdldFF1ZXVlKCkpOworICAgICAgICBtX3F1ZXVl
ID0gV2ViR1BVUXVldWU6OmNyZWF0ZShtX2RldmljZS0+dHJ5R2V0UXVldWUoKSk7CiAKLSAgICBy
ZXR1cm4gbV9xdWV1ZTsKKyAgICByZXR1cm4gbWFrZVJlZigqbV9xdWV1ZS5nZXQoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmgKaW5kZXggMTQ0MWYzODNkNjEzN2U2MWEyMDU0OWNjZjRkYzE5ZDZlZDc4
N2NlZS4uZDM3OTQyNjBhYTJlYjg1NmEzOWE5MTgzZTFkNzhhNGI5ODdmMWM4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTY3LDE1ICs2Nywx
NSBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViR1BVQWRhcHRlciYgYWRhcHRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYWRhcHRlci5nZXQoKTsgfQogICAgIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KIAotICAgIFJlZjxXZWJHUFVCdWZmZXI+
IGNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yJiYpIGNvbnN0OwotICAgIFJlZjxXZWJH
UFVUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yJiYpIGNvbnN0Owor
ICAgIFJlZjxXZWJHUFVCdWZmZXI+IGNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlw
dG9yJikgY29uc3Q7CisgICAgUmVmPFdlYkdQVVRleHR1cmU+IGNyZWF0ZVRleHR1cmUoY29uc3Qg
R1BVVGV4dHVyZURlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWY8V2ViR1BVU2FtcGxlcj4gY3Jl
YXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVm
PFdlYkdQVUJpbmRHcm91cExheW91dD4gY3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWY8V2ViR1BVUGlwZWxpbmVM
YXlvdXQ+IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ciYmKSBjb25zdDsKLSAgICBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGVCaW5kR3JvdXAoV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVUGlwZWxpbmVM
YXlvdXQ+IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvciYpIGNvbnN0OworICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRHcm91
cChjb25zdCBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJikgY29uc3Q7CiAKLSAgICBSZWZQdHI8
V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGVTaGFkZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9kdWxl
RGVzY3JpcHRvciYmKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGVT
aGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYpIGNvbnN0Owog
ICAgIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3Qg
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVUNv
bXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKIApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAK
ICAgICBSZWY8V2ViR1BVU3dhcENoYWluPiBjcmVhdGVTd2FwQ2hhaW4oY29uc3QgV2ViR1BVU3dh
cENoYWluRGVzY3JpcHRvciYpIGNvbnN0OwogCi0gICAgUmVmUHRyPFdlYkdQVVF1ZXVlPiBnZXRR
dWV1ZSgpIGNvbnN0OworICAgIFJlZjxXZWJHUFVRdWV1ZT4gZ2V0UXVldWUoKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICBXZWJHUFVEZXZpY2UoUmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYsIFJl
ZjxHUFVEZXZpY2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwCmluZGV4IGM2NGE1NDYxNWU2YWY2NWQzYTg5OGU1
ZDFjOTkzMjBlMjAwZTYwYjAuLjAwYjVkNGNiNGY5ZjE4ZmRkODg3Mzc2OTAwYmI1MTNkZThlMmIx
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZUxheW91dC5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZjxXZWJHUFVQaXBlbGluZUxheW91dD4gV2ViR1BVUGlwZWxpbmVMYXlvdXQ6OmNy
ZWF0ZShSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+JiYgbGF5b3V0KQorUmVmPFdlYkdQVVBpcGVsaW5l
TGF5b3V0PiBXZWJHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKFJlZlB0cjxHUFVQaXBlbGluZUxh
eW91dD4mJiBsYXlvdXQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUGlwZWxp
bmVMYXlvdXQoV1RGTW92ZShsYXlvdXQpKSk7CiB9CiAKLVdlYkdQVVBpcGVsaW5lTGF5b3V0OjpX
ZWJHUFVQaXBlbGluZUxheW91dChSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+JiYgbGF5b3V0KQorV2Vi
R1BVUGlwZWxpbmVMYXlvdXQ6OldlYkdQVVBpcGVsaW5lTGF5b3V0KFJlZlB0cjxHUFVQaXBlbGlu
ZUxheW91dD4mJiBsYXlvdXQpCiAgICAgOiBtX3BpcGVsaW5lTGF5b3V0KFdURk1vdmUobGF5b3V0
KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZUxheW91dC5oCmluZGV4IDFmYmIzMWI0Y2IxYjY3NGI4ZTM5M2M0YmI2NWRjZmQ5ZDY2
ZmQwMzYuLmIzNTZmODlkY2RlMTFiYTk0M2VhYTg2Y2M5MzIwY2JlZDI3MjA5MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQu
aApAQCAtMzYsMTQgKzM2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR1BV
UGlwZWxpbmVMYXlvdXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVQaXBlbGluZUxheW91dD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IGNyZWF0ZShS
ZWY8R1BVUGlwZWxpbmVMYXlvdXQ+JiYpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVUGlwZWxpbmVM
YXlvdXQ+IGNyZWF0ZShSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+JiYpOwogCi0gICAgR1BVUGlw
ZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0KCkgeyByZXR1cm4gbV9waXBlbGluZUxheW91dC5n
ZXQoKTsgfQorICAgIEdQVVBpcGVsaW5lTGF5b3V0KiBwaXBlbGluZUxheW91dCgpIHsgcmV0dXJu
IG1fcGlwZWxpbmVMYXlvdXQuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJH
UFVQaXBlbGluZUxheW91dChSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+JiYpOworICAgIGV4cGxpY2l0
IFdlYkdQVVBpcGVsaW5lTGF5b3V0KFJlZlB0cjxHUFVQaXBlbGluZUxheW91dD4mJik7CiAKLSAg
ICBSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IG1fcGlwZWxpbmVMYXlvdXQ7CisgICAgUmVmUHRyPEdQ
VVBpcGVsaW5lTGF5b3V0PiBtX3BpcGVsaW5lTGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNhNmYx
NzI0NTkyMTAzNzliZDNjMmY2NTQ2MDgyZGUxYTE3Nzc2ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK09wdGlvbmFs
PEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcj4gV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yOjp0cnlDcmVhdGVHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IoKSBjb25zdAoreworICAg
IFZlY3RvcjxSZWY8Y29uc3QgR1BVQmluZEdyb3VwTGF5b3V0Pj4gZ3B1TGF5b3V0czsKKyAgICBn
cHVMYXlvdXRzLnJlc2VydmVDYXBhY2l0eShiaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7CisgICAg
CisgICAgZm9yIChjb25zdCBhdXRvJiBsYXlvdXQgOiBiaW5kR3JvdXBMYXlvdXRzKSB7CisgICAg
ICAgIGlmICghbGF5b3V0IHx8ICFsYXlvdXQtPmJpbmRHcm91cExheW91dCgpKSB7CisgICAgICAg
ICAgICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dCgpOiBJbnZh
bGlkIEdQVUJpbmRHcm91cExheW91dCEiKTsKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdwdUxheW91dHMudW5jaGVja2VkQXBw
ZW5kKG1ha2VSZWYoKmxheW91dC0+YmluZEdyb3VwTGF5b3V0KCkpKTsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciB7IFdURk1vdmUoZ3B1TGF5b3V0
cykgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggMWI3MGFjNDA3Mzg2Y2UzY2Ez
MTY3ZDRjNWFhZGU1NWQyZjY2ZGEyOS4uZGNlNjg5NTU4NmMzMGQzNzA0ZDI5MjA0MGJiYWYzZWUx
ODVlZWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTI4LDEzICsyOCwxNyBA
QAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXQu
aCIKLQorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0
cnVjdCBHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiAKIHN0cnVjdCBXZWJHUFVQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3IgeworICAgIE9wdGlvbmFsPEdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvcj4gdHJ5Q3JlYXRlR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKCkgY29uc3Q7CisKICAg
ICBWZWN0b3I8UmVmUHRyPFdlYkdQVUJpbmRHcm91cExheW91dD4+IGJpbmRHcm91cExheW91dHM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVR
dWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAK
aW5kZXggYjRmODNlNGFmMWE0YzY3MjMxMWVmZGMwYWI0NGFkNTEzNzQxOTIwMS4uZTNhY2E3YjJk
MGQxNWM2ZjEyZjBjMTk2NWYyYzNjNDQ0NmI2YzNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcApAQCAtMzUsMTggKzM1LDIyIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPFdlYkdQVVF1ZXVlPiBXZWJHUFVRdWV1ZTo6Y3JlYXRl
KFJlZlB0cjxHUFVRdWV1ZT4mJiBxdWV1ZSkKK1JlZjxXZWJHUFVRdWV1ZT4gV2ViR1BVUXVldWU6
OmNyZWF0ZShSZWZQdHI8R1BVUXVldWU+JiYgcXVldWUpCiB7Ci0gICAgcmV0dXJuIHF1ZXVlID8g
YWRvcHRSZWYobmV3IFdlYkdQVVF1ZXVlKHF1ZXVlLnJlbGVhc2VOb25OdWxsKCkpKSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUXVldWUoV1RGTW92ZShxdWV1ZSkp
KTsKIH0KIAotV2ViR1BVUXVldWU6OldlYkdQVVF1ZXVlKFJlZjxHUFVRdWV1ZT4mJiBxdWV1ZSkK
K1dlYkdQVVF1ZXVlOjpXZWJHUFVRdWV1ZShSZWZQdHI8R1BVUXVldWU+JiYgcXVldWUpCiAgICAg
OiBtX3F1ZXVlKFdURk1vdmUocXVldWUpKQogewogfQogCiB2b2lkIFdlYkdQVVF1ZXVlOjpzdWJt
aXQoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJHUFVDb21tYW5kQnVmZmVyPj4mIGJ1ZmZlcnMpCiB7
CisgICAgaWYgKCFtX3F1ZXVlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6c3Vi
bWl0KCk6IEludmFsaWQgb3BlcmF0aW9uISIpOworICAgICAgICByZXR1cm47CisgICAgfQogICAg
IFZlY3RvcjxSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4+IGdwdUJ1ZmZlcnM7CiAgICAgZ3B1QnVmZmVy
cy5yZXNlcnZlQ2FwYWNpdHkoYnVmZmVycy5zaXplKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmgKaW5kZXggZjBhNzZmODFkZmNhNjFjOGIxZTBk
ODI1N2EzZTY4ODI3NTUzMWJhYS4uODk4OTIyN2U0MGI4MjllMTcwMTRmOWY4YzNkYzQ4NDcxZjUz
Mzg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVl
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5oCkBA
IC0zOSw3ICszOSw3IEBAIGNsYXNzIFdlYkdQVUNvbW1hbmRCdWZmZXI7CiAKIGNsYXNzIFdlYkdQ
VVF1ZXVlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUXVldWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPFdlYkdQVVF1ZXVlPiBjcmVhdGUoUmVmUHRyPEdQVVF1ZXVlPiYmKTsKKyAg
ICBzdGF0aWMgUmVmPFdlYkdQVVF1ZXVlPiBjcmVhdGUoUmVmUHRyPEdQVVF1ZXVlPiYmKTsKIAog
ICAgIHZvaWQgc3VibWl0KGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4+
Jik7CiAKQEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwoY29uc3Qg
U3RyaW5nJiBsYWJlbCkgeyBtX3F1ZXVlLT5zZXRMYWJlbChsYWJlbCk7IH0KIAogcHJpdmF0ZToK
LSAgICBXZWJHUFVRdWV1ZShSZWY8R1BVUXVldWU+JiYpOworICAgIFdlYkdQVVF1ZXVlKFJlZlB0
cjxHUFVRdWV1ZT4mJik7CiAKLSAgICBSZWY8R1BVUXVldWU+IG1fcXVldWU7CisgICAgUmVmUHRy
PEdQVVF1ZXVlPiBtX3F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IuY3BwCmluZGV4IDVmYzFmYmRhMjkyZWM3ZjE2MTE4MjNhNGU2Mzk3OTE2NDYw
OThkZjguLmJmNDhlODNhYzljYjBiY2I3NjVkNDQwZjUxMzVhODZmY2VjMDE3ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgT3B0aW9uYWw8R1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3I+IFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVSZW5k
ZXIKICAgICAgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjogSW52
YWxpZCBhdHRhY2htZW50IGluIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
ISIpOwogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQotICAgICAg
ICBncHVDb2xvckF0dGFjaG1lbnRzLmFwcGVuZChHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvciB7IGNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50LT50ZXh0dXJlKCkucmVsZWFz
ZU5vbk51bGwoKSwgY29sb3JBdHRhY2htZW50IH0pOworICAgICAgICBncHVDb2xvckF0dGFjaG1l
bnRzLmFwcGVuZChHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvciB7IG1ha2VS
ZWYoKmNvbG9yQXR0YWNobWVudC5hdHRhY2htZW50LT50ZXh0dXJlKCkpLCBjb2xvckF0dGFjaG1l
bnQgfSk7CiAgICAgfQogCiAgICAgT3B0aW9uYWw8R1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0
dGFjaG1lbnREZXNjcmlwdG9yPiBncHVEZXB0aEF0dGFjaG1lbnQ7CkBAIC03NCw3ICs3NCw3IEBA
IE9wdGlvbmFsPEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yPiBXZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvcjo6dHJ5Q3JlYXRlR1BVUmVuZGVyCiAgICAgICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3I6IEludmFsaWQgYXR0YWNobWVudCBpbiBHUFVSZW5kZXJQYXNzRGVw
dGhTdGVuY2lsQXR0YWNobWVudERlc2NyaXB0b3IhIik7CiAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogICAgICAgICB9Ci0gICAgICAgIGdwdURlcHRoQXR0YWNobWVudCA9IEdQVVJl
bmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50RGVzY3JpcHRvciB7IGRlcHRoU3RlbmNpbEF0
dGFjaG1lbnQtPmF0dGFjaG1lbnQtPnRleHR1cmUoKS5yZWxlYXNlTm9uTnVsbCgpLCAqZGVwdGhT
dGVuY2lsQXR0YWNobWVudCB9OworICAgICAgICBncHVEZXB0aEF0dGFjaG1lbnQgPSBHUFVSZW5k
ZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudERlc2NyaXB0b3IgeyBtYWtlUmVmKCpkZXB0aFN0
ZW5jaWxBdHRhY2htZW50LT5hdHRhY2htZW50LT50ZXh0dXJlKCkpLCAqZGVwdGhTdGVuY2lsQXR0
YWNobWVudCB9OwogICAgIH0KIAogICAgIHJldHVybiBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciB7
IFdURk1vdmUoZ3B1Q29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoZ3B1RGVwdGhBdHRhY2htZW50
KSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXIuY3BwCmluZGV4IDQzYTE2ZDI1ZGU3MTI2NDFhYzQxZWY2YjZjNmJh
NWYwYzY3ZWNiZmEuLjhiYzM1ZWFhMzFhZGI3MTlkOTA4MWFmNDk0NThkM2UzODA4NDBlNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBXZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIHN0YXJ0U2xvdCwgVmVjdG9y
PFIKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGdwdUJ1ZmZlcnMu
dW5jaGVja2VkQXBwZW5kKGJ1ZmZlci0+YnVmZmVyKCkucmVsZWFzZU5vbk51bGwoKSk7CisgICAg
ICAgIGdwdUJ1ZmZlcnMudW5jaGVja2VkQXBwZW5kKG1ha2VSZWYoKmJ1ZmZlci0+YnVmZmVyKCkp
KTsKICAgICB9CiAKICAgICBtX3Bhc3NFbmNvZGVyLT5zZXRWZXJ0ZXhCdWZmZXJzKHN0YXJ0U2xv
dCwgV1RGTW92ZShncHVCdWZmZXJzKSwgV1RGTW92ZShvZmZzZXRzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmgKaW5kZXggM2I1OTNkMDNkZDkxYTgy
MmI0ZmUyMjM3YTVmYmRmMTkzMjUzODhjOS4uMzQyNDk2NmM2OTdhNTY1NThjNjYzNGNiYzRjZjM3
ZjNkMjVlYTA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNh
bXBsZXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJHUFVTYW1wbGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViR1BVU2FtcGxlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BV
U2FtcGxlcj4gY3JlYXRlKFJlZlB0cjxHUFVTYW1wbGVyPiYmKTsKIAotICAgIEdQVVNhbXBsZXIq
IHNhbXBsZXIoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBH
UFVTYW1wbGVyKiBzYW1wbGVyKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVyLmdldCgpOyB9CiAK
IHByaXZhdGU6CiAgICAgV2ViR1BVU2FtcGxlcihSZWZQdHI8R1BVU2FtcGxlcj4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNw
cAppbmRleCA5OTRjMmVjYTBhOThiYzVmNmQzNjRkOTM2MDlkZjljZDJhMWM3ZjNkLi5lZTg1Zjky
YWJjOWZhYjMxNjJmNjNiOGI3Y2EwZDhiMDFiNDM3YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKQEAgLTMwLDE1ICsz
MCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+
IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFJlZjxHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxl
KQorUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoUmVm
UHRyPEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViR1BVU2hhZGVyTW9kdWxlKFdURk1vdmUobW9kdWxlKSkpOwogfQogCi1XZWJHUFVTaGFk
ZXJNb2R1bGU6OldlYkdQVVNoYWRlck1vZHVsZShSZWY8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVs
ZSkKK1dlYkdQVVNoYWRlck1vZHVsZTo6V2ViR1BVU2hhZGVyTW9kdWxlKFJlZlB0cjxHUFVTaGFk
ZXJNb2R1bGU+JiYgbW9kdWxlKQogICAgIDogbV9tb2R1bGUoV1RGTW92ZShtb2R1bGUpKQogewot
ICAgIFVOVVNFRF9QQVJBTShtX21vZHVsZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1v
ZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxl
LmgKaW5kZXggNjQ2NjBiMzFlNDU2ZmZhMDgwNTZkZWU1NWI2Y2FkNDViMzMzNzhmMC4uODM3NzA1
M2QxYWNlNzIzOTA5Y2IzYzg5NjI3ZjRkOGM2MmIxZWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKQEAgLTM2LDE0ICszNiwx
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdQVVNoYWRlck1vZHVsZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlck1vZHVsZT4gewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGUoUmVmPEdQVVNoYWRlck1vZHVsZT4mJik7
CisgICAgc3RhdGljIFJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZShSZWZQdHI8R1BVU2hh
ZGVyTW9kdWxlPiYmKTsKIAotICAgIGNvbnN0IEdQVVNoYWRlck1vZHVsZSogbW9kdWxlKCkgY29u
c3QgeyByZXR1cm4gbV9tb2R1bGUucHRyKCk7IH0KKyAgICBjb25zdCBHUFVTaGFkZXJNb2R1bGUq
IG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgV2ViR1BVU2hhZGVyTW9kdWxlKFJlZjxHUFVTaGFkZXJNb2R1bGU+JiYpOworICAgIFdlYkdQ
VVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmKTsKIAotICAgIFJlZjxHUFVT
aGFkZXJNb2R1bGU+IG1fbW9kdWxlOworICAgIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IG1fbW9k
dWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaAppbmRleCBmZjZjMzA1MzJjZjdhZGRiMzM5
MjZlMzRhNDA0MTZlZDdiOTY2MTBhLi43OGExZTBkZjY0ODA0ZjExMTlmMzE1ZTMwZTFhMDYxMDhj
MzQyN2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
d2FwQ2hhaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2Fw
Q2hhaW4uaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBXZWJHUFVTd2FwQ2hhaW4gOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJHUFVTd2FwQ2hhaW4+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdl
YkdQVVN3YXBDaGFpbj4gY3JlYXRlKFJlZlB0cjxHUFVTd2FwQ2hhaW4+JiYpOwogCi0gICAgR1BV
U3dhcENoYWluKiBzd2FwQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX3N3YXBDaGFpbi5nZXQoKTsg
fQorICAgIEdQVVN3YXBDaGFpbiogc3dhcENoYWluKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4uZ2V0
KCk7IH0KIAogICAgIFJlZjxXZWJHUFVUZXh0dXJlPiBnZXRDdXJyZW50VGV4dHVyZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmgKaW5kZXggYzhj
NDlmZjg3ZTFjYjYzMTIxYjBmYzkxNzdlMWFhNmQwNjg0ZWU2Yy4uNmZkNThjMjY0MmZjYzZhNjJm
MzcyYWNiNGEyNzM4ZTFjNmI3MjUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmUuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBXZWJHUFVUZXh0dXJl
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVVGV4dHVyZT4gewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8V2ViR1BVVGV4dHVyZT4gY3JlYXRlKFJlZlB0cjxHUFVUZXh0dXJlPiYmKTsKIAotICAg
IFJlZlB0cjxHUFVUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0dXJlOyB9
CisgICAgR1BVVGV4dHVyZSogdGV4dHVyZSgpIHsgcmV0dXJuIG1fdGV4dHVyZS5nZXQoKTsgfQog
CiAgICAgUmVmPFdlYkdQVVRleHR1cmVWaWV3PiBjcmVhdGVEZWZhdWx0VmlldygpOwogICAgIHZv
aWQgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVRleHR1cmVWaWV3LmgKaW5kZXggYzUzMGEyM2RkMTU4MmU2MzAzNGU4OWU5NDYwMDg1NDlkYTlh
YjM3My4uZDI1MGUyMTg0YzUyM2NmODVmZGVkNmFiZGNmZWJmYzIzNmYxMjkwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5oCkBAIC0z
OCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdQVVRleHR1cmVWaWV3PiBj
cmVhdGUoUmVmUHRyPEdQVVRleHR1cmU+JiYpOwogICAgIH5XZWJHUFVUZXh0dXJlVmlldygpIHsg
ZGVzdHJveSgpOyB9CiAKLSAgICBSZWZQdHI8R1BVVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGV4dHVyZTsgfQorICAgIEdQVVRleHR1cmUqIHRleHR1cmUoKSB7IHJldHVybiBt
X3RleHR1cmUuZ2V0KCk7IH0KIAogICAgIHZvaWQgZGVzdHJveSgpOwogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggNWNkZTc4YmNlMTVlMmIzNWJmMzhhM2NkMTU5YTcwY2Y1ZmVlMTc3NS4uYzE5
NzI2ZmYwMDAyMzc1YzcwY2RjY2I1ZjgzY2VhZWQ2MGJlNTUwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTM2MSw2ICszNjEsNyBAQCBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUXVldWUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5j
cHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YjBmNTNhYzU0OTI4ZTg3OGUzMDBh
ZDJjYzg1MDVlMzBkYWYwMDkyLi5kNDFlMTYwZDJhNmI5OTllMjU0OWIzYWQwN2I2NDM1ZTU3M2Zk
NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNDAwOCw2ICsxNDAwOCw3IEBACiAJCUQwMEQ3N0ZEMjI0MkVENDUwMDQzRjEy
QyAvKiBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQ29t
cHV0ZVBhc3NFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMEQ3N0ZF
MjI0MkVENDUwMDQzRjEyQyAvKiBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDAwRDc3RkYyMjQyRUQ0NTAwNDNGMTJDIC8qIFdlYkdQVUNvbXB1dGVQ
YXNzRW5jb2Rlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwNDg3RDIyMjQ1N0JFQTAwRUVEN0Q5IC8qIFdlYkdQ
VVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVdpbmRvd1dlYkdQVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERPTVdpbmRvd1dlYkdQVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQwMEY1OTQyMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IERPTVdpbmRvd1dlYkdQVS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI3
NCw2ICsyNjI3NSw3IEBACiAJCQkJRDA1QTk5RTUyMUM5QkYyQzAwMDMyQjc1IC8qIFdlYkdQVVBp
cGVsaW5lTGF5b3V0LmNwcCAqLywKIAkJCQlEMDVBOTlFNDIxQzlCRjJDMDAwMzJCNzUgLyogV2Vi
R1BVUGlwZWxpbmVMYXlvdXQuaCAqLywKIAkJCQlEMDVBOTlFNjIxQzlCRjJDMDAwMzJCNzUgLyog
V2ViR1BVUGlwZWxpbmVMYXlvdXQuaWRsICovLAorCQkJCUQwMDQ4N0QyMjI0NTdCRUEwMEVFRDdE
OSAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwICovLAogCQkJCUQwNUE5OUUx
MjFDOUI1MEYwMDAzMkI3NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCAqLywK
IAkJCQlEMDVBOTlFMjIxQzlCNTBGMDAwMzJCNzUgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yLmlkbCAqLywKIAkJCQlEMDg5MDMzNzIyNDA2MUFDMDBGM0Y0NDAgLyogV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmgKaW5kZXggNDdi
ZDdhZjYwMmZhMzhkMTI5NDRiYzM1MjlkZGY4NmJmNzQ3ZTdkNC4uZjZmYjRlNTBiZmFlNmE0MGY0
ODA3Y2I5Yjg0OGRmYzkzYzcwNDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oCkBAIC0zNCw3ICsz
NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgR1BVQmluZGluZ1Jlc291cmNl
ID0gVmFyaWFudDxSZWY8R1BVU2FtcGxlcj4sIFJlZjxHUFVUZXh0dXJlPiwgR1BVQnVmZmVyQmlu
ZGluZz47Cit1c2luZyBHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZjxjb25zdCBHUFVT
YW1wbGVyPiwgUmVmPEdQVVRleHR1cmU+LCBHUFVCdWZmZXJCaW5kaW5nPjsKIAogc3RydWN0IEdQ
VUJpbmRHcm91cEJpbmRpbmcgewogICAgIHVuc2lnbmVkIGxvbmcgYmluZGluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdy
b3VwRGVzY3JpcHRvci5oCmluZGV4IDUwNzExZmU3Mzg4NGY3OGU0OWU4NjcwY2E5NDJmOTk4ZjQ5
OTRmZWIuLjExMDhhOTc4YTllODZhMWViOTZlMmZjZmRlOTQ1YmNmY2FlYWQ1MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJp
bmRHcm91cERlc2NyaXB0b3IuaApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciB7Ci0gICAgUmVmPEdQVUJpbmRHcm91
cExheW91dD4gbGF5b3V0OworICAgIFJlZjxjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+IGxheW91
dDsKICAgICBWZWN0b3I8R1BVQmluZEdyb3VwQmluZGluZz4gYmluZGluZ3M7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKaW5kZXgg
MGI2NDI2OTY5ZDkzZmZkZmZkMGVkZTVkMDI5MWIyMjAwMjA5OWM5ZS4uMDFmNzA3OTc3MWFiNmVm
MWM1NTk3NTdlOGYxOTU1MmI0NTkwNjMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAK
ICAgICB+R1BVQnVmZmVyKCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3Jl
YXRlKFJlZjxHUFVEZXZpY2U+JiYsIEdQVUJ1ZmZlckRlc2NyaXB0b3ImJik7CisgICAgc3RhdGlj
IFJlZlB0cjxHUFVCdWZmZXI+IHRyeUNyZWF0ZShSZWY8R1BVRGV2aWNlPiYmLCBjb25zdCBHUFVC
dWZmZXJEZXNjcmlwdG9yJik7CiAKICAgICBQbGF0Zm9ybUJ1ZmZlciAqcGxhdGZvcm1CdWZmZXIo
KSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQnVmZmVyLmdldCgpOyB9CiAgICAgdW5zaWduZWQg
bG9uZyBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlTGVuZ3RoOyB9CkBAIC0xMDks
NyArMTA5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlQnVmZmVyVXNh
Z2UoY29uc3QgR1BVRGV2aWNlJiwgT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4pOwog
Ci0gICAgR1BVQnVmZmVyKFBsYXRmb3JtQnVmZmVyU21hcnRQdHImJiwgY29uc3QgR1BVQnVmZmVy
RGVzY3JpcHRvciYsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBSZWY8R1BVRGV2
aWNlPiYmKTsKKyAgICBHUFVCdWZmZXIoUGxhdGZvcm1CdWZmZXJTbWFydFB0ciYmLCB1bnNpZ25l
ZCBsb25nLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiwgUmVmPEdQVURldmljZT4m
Jik7CiAKICAgICBKU0M6OkFycmF5QnVmZmVyKiBzdGFnaW5nQnVmZmVyRm9yUmVhZCgpOwogICAg
IEpTQzo6QXJyYXlCdWZmZXIqIHN0YWdpbmdCdWZmZXJGb3JXcml0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAppbmRleCAxY2M3
OGI1MDUxMWFlYTgyNjI4YjFhODYxNjRmZTkwODY2ZjAxNzRkLi4yMWM0OWRmOWJiNGQ4NGQwM2I5
Njc4NDYxYzQwOGE4YTIwM2MyMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAtNTEsMTQgKzUxLDE0IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVC
dWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpCitSZWZQdHI8R1BVQnVmZmVy
PiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewotICAgIHJldHVybiBHUFVCdWZmZXI6OnRyeUNyZWF0ZShtYWtlUmVmKCp0
aGlzKSwgV1RGTW92ZShkZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIEdQVUJ1ZmZlcjo6dHJ5Q3Jl
YXRlKG1ha2VSZWYoKnRoaXMpLCBkZXNjcmlwdG9yKTsKIH0KIAotUmVmUHRyPEdQVVRleHR1cmU+
IEdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmIGRlc2Ny
aXB0b3IpIGNvbnN0CitSZWZQdHI8R1BVVGV4dHVyZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVUZXh0
dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAg
IHJldHVybiBHUFVUZXh0dXJlOjp0cnlDcmVhdGUoKnRoaXMsIFdURk1vdmUoZGVzY3JpcHRvcikp
OworICAgIHJldHVybiBHUFVUZXh0dXJlOjp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOwog
fQogCiBSZWZQdHI8R1BVU2FtcGxlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVTYW1wbGVyKGNvbnN0
IEdQVVNhbXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdApAQCAtNzYsMTQgKzc2LDE0
IEBAIFJlZjxHUFVQaXBlbGluZUxheW91dD4gR1BVRGV2aWNlOjpjcmVhdGVQaXBlbGluZUxheW91
dChHUFVQaXBlbGluZUxheW91dERlc2NyaXB0CiAgICAgcmV0dXJuIEdQVVBpcGVsaW5lTGF5b3V0
OjpjcmVhdGUoV1RGTW92ZShkZXNjcmlwdG9yKSk7CiB9CiAKLVJlZlB0cjxHUFVTaGFkZXJNb2R1
bGU+IEdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3ImJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gR1BVRGV2aWNl
Ojp0cnlDcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUo
KnRoaXMsIFdURk1vdmUoZGVzY3JpcHRvcikpOworICAgIHJldHVybiBHUFVTaGFkZXJNb2R1bGU6
OnRyeUNyZWF0ZSgqdGhpcywgZGVzY3JpcHRvcik7CiB9CiAKLVJlZlB0cjxHUFVSZW5kZXJQaXBl
bGluZT4gR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBH
UFVEZXZpY2U6OnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVUmVuZGVyUGlw
ZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShkZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIEdQ
VVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOwogfQogCiBSZWZQ
dHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdApA
QCAtMTAyLDcgKzEwMiw3IEBAIFJlZlB0cjxHUFVTd2FwQ2hhaW4+IEdQVURldmljZTo6dHJ5Q3Jl
YXRlU3dhcENoYWluKGNvbnN0IEdQVVN3YXBDaGFpbkRlc2NyaXB0b3ImCiAgICAgcmV0dXJuIG1f
c3dhcENoYWluOwogfQogCi1SZWZQdHI8R1BVUXVldWU+IEdQVURldmljZTo6Z2V0UXVldWUoKSBj
b25zdAorUmVmUHRyPEdQVVF1ZXVlPiBHUFVEZXZpY2U6OnRyeUdldFF1ZXVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcXVldWUpCiAgICAgICAgIG1fcXVldWUgPSBHUFVRdWV1ZTo6dHJ5Q3JlYXRl
KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuaAppbmRleCA5N2ZjODg5OGZhZGM2MDQ3N2M4YTMyNzA3YzU1OTZjOGQ2ODA5NzQ4Li4x
Y2U0MmFmYzgwMGE2NjkyNDM2ZjdhNTQ3MmU3Y2FiMDVjMTZjYzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC02MywyOSArNjMs
MjkgQEAgdXNpbmcgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+
OwogCiBjbGFzcyBHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8R1BVRGV2aWNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHUFVEZXZpY2U+IHRyeUNyZWF0ZShPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+
JiYpOworICAgIHN0YXRpYyBSZWZQdHI8R1BVRGV2aWNlPiB0cnlDcmVhdGUoY29uc3QgT3B0aW9u
YWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4g
dHJ5Q3JlYXRlQnVmZmVyKEdQVUJ1ZmZlckRlc2NyaXB0b3ImJik7Ci0gICAgUmVmUHRyPEdQVVRl
eHR1cmU+IHRyeUNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJikgY29uc3Q7Cisg
ICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2Ny
aXB0b3ImKTsKKyAgICBSZWZQdHI8R1BVVGV4dHVyZT4gdHJ5Q3JlYXRlVGV4dHVyZShjb25zdCBH
UFVUZXh0dXJlRGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlD
cmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBS
ZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiB0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3Qg
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZjxHUFVQaXBlbGlu
ZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
JiYpIGNvbnN0OwogCi0gICAgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9k
dWxlKEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29uc3Q7Ci0gICAgUmVmUHRyPEdQVVJl
bmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3JlYXRlU2hh
ZGVyTW9kdWxlKGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKKyAgICBS
ZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IEdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZlB0cjxHUFVDb21wdXRl
UGlwZWxpbmU+IHRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gdHJ5
Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVVN3YXBDaGFpbj4g
dHJ5Q3JlYXRlU3dhcENoYWluKGNvbnN0IEdQVVN3YXBDaGFpbkRlc2NyaXB0b3ImLCBpbnQgd2lk
dGgsIGludCBoZWlnaHQpIGNvbnN0OwogCi0gICAgUmVmUHRyPEdQVVF1ZXVlPiBnZXRRdWV1ZSgp
IGNvbnN0OworICAgIFJlZlB0cjxHUFVRdWV1ZT4gdHJ5R2V0UXVldWUoKSBjb25zdDsKICAgICBQ
bGF0Zm9ybURldmljZSogcGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3Jt
RGV2aWNlLmdldCgpOyB9CiAgICAgR1BVU3dhcENoYWluKiBzd2FwQ2hhaW4oKSBjb25zdCB7IHJl
dHVybiBtX3N3YXBDaGFpbi5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIEdQVURldmljZShQbGF0
Zm9ybURldmljZVNtYXJ0UHRyJiYpOworICAgIGV4cGxpY2l0IEdQVURldmljZShQbGF0Zm9ybURl
dmljZVNtYXJ0UHRyJiYpOwogCiAgICAgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciBtX3BsYXRmb3Jt
RGV2aWNlOwogICAgIG11dGFibGUgUmVmUHRyPEdQVVF1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxh
eW91dC5jcHAKaW5kZXggOTVkZmJhMTIxZWYwODQ4NzlhZDZlYWY2OTliZWY5YTdkZDU2M2JhMC4u
Y2IxOTkzYTllMmYwMGI0MmU0Mzg0MzE3Y2E2NWRhNGVkNGRlYTFlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlv
dXQuY3BwCkBAIC0zMiwxMSArMzIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8R1BV
UGlwZWxpbmVMYXlvdXQ+IEdQVVBpcGVsaW5lTGF5b3V0OjpjcmVhdGUoR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
UFVQaXBlbGluZUxheW91dChXVEZNb3ZlKGRlc2NyaXB0b3IpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgR1BVUGlwZWxpbmVMYXlvdXQoV1RGTW92ZShkZXNjcmlwdG9yLmJpbmRHcm91cExh
eW91dHMpKSk7CiB9CiAKLUdQVVBpcGVsaW5lTGF5b3V0OjpHUFVQaXBlbGluZUxheW91dChHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQotICAgIDogbV9iaW5kR3JvdXBM
YXlvdXRzKFdURk1vdmUoZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzKSkKK0dQVVBpcGVsaW5l
TGF5b3V0OjpHUFVQaXBlbGluZUxheW91dChWZWN0b3I8UmVmPGNvbnN0IEdQVUJpbmRHcm91cExh
eW91dD4+JiYgbGF5b3V0cykKKyAgICA6IG1fYmluZEdyb3VwTGF5b3V0cyhXVEZNb3ZlKGxheW91
dHMpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5oCmluZGV4IGU4YzZhYjllYzdhY2Y4NWNhMWVhYjAw
ZDljMDk3MmEyMzcwMGZjYTAuLmU3OTk5NDZmY2JhMDEyY2NlZDQ2YTdmMTcyMzkyOTY3NDU5MThm
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQ
aXBlbGluZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVQaXBlbGluZUxheW91dC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIAogI2luY2x1ZGUgIkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIgotCiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM4LDEyICsz
NywxMiBAQCBjbGFzcyBHUFVQaXBlbGluZUxheW91dCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVBp
cGVsaW5lTGF5b3V0PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVQaXBlbGluZUxheW91
dD4gY3JlYXRlKEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmKTsKIAotICAgIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8Y29uc3QgR1BVQmluZEdyb3VwTGF5b3V0Pj4mIGJpbmRHcm91cExheW91dHMo
KSBjb25zdCB7IHJldHVybiBtX2JpbmRHcm91cExheW91dHM7IH0KKyAgICBjb25zdCBWZWN0b3I8
UmVmPGNvbnN0IEdQVUJpbmRHcm91cExheW91dD4+JiBiaW5kR3JvdXBMYXlvdXRzKCkgY29uc3Qg
eyByZXR1cm4gbV9iaW5kR3JvdXBMYXlvdXRzOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
R1BVUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYpOworICAgIGV4
cGxpY2l0IEdQVVBpcGVsaW5lTGF5b3V0KFZlY3RvcjxSZWY8Y29uc3QgR1BVQmluZEdyb3VwTGF5
b3V0Pj4mJik7CiAKLSAgICBWZWN0b3I8UmVmUHRyPGNvbnN0IEdQVUJpbmRHcm91cExheW91dD4+
IG1fYmluZEdyb3VwTGF5b3V0czsKKyAgICBWZWN0b3I8UmVmPGNvbnN0IEdQVUJpbmRHcm91cExh
eW91dD4+IG1fYmluZEdyb3VwTGF5b3V0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBl
bGluZUxheW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAppbmRleCAzYTA5MTg5OTM4NTgyYmMy
NzhjMTU4ZmRhMWIyNzljMTg2Nzc1NTY5Li4zOGExZWUyYzc3NTFmNDcxZmQ3NTQ1ODEwYjc3OGE1
NDMyMmY1ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCkBAIC0zNCw3
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3IgewotICAgIFZlY3RvcjxSZWZQdHI8Y29uc3QgR1BVQmluZEdyb3VwTGF5b3V0
Pj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICBWZWN0b3I8UmVmPGNvbnN0IEdQVUJpbmRHcm91cExh
eW91dD4+IGJpbmRHcm91cExheW91dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVy
UGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5k
ZXJQaXBlbGluZS5oCmluZGV4IDQxZmIxMDY0NTY1YThkOTY5M2QyNDliYThlMGE1ZTdhZTg5MzVl
NjcuLjk2ZDgxY2RiNGZkYTc5YTE0ZTY4ZjI5OTQ1YjcwNWExNzNjZTg2MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBl
bGluZS5oCkBAIC00Niw3ICs0Niw3IEBAIHVzaW5nIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFy
dFB0ciA9IFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPjsKIAogY2xhc3MgR1BVUmVu
ZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVSZW5kZXJQaXBlbGluZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShjb25zdCBH
UFVEZXZpY2UmLCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJik7CisgICAgc3RhdGljIFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0
IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpOwogCiAjaWYgVVNFKE1FVEFMKQogICAgIE1U
TERlcHRoU3RlbmNpbFN0YXRlICpkZXB0aFN0ZW5jaWxTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVwdGhTdGVuY2lsU3RhdGUuZ2V0KCk7IH0KQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogI2lmIFVTRShNRVRBTCkKLSAgICBHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8
TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYsIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciYm
LCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJik7CisgICAgR1BVUmVuZGVyUGlwZWxpbmUo
UmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiYmLCBQbGF0Zm9ybVJlbmRlclBpcGVsaW5l
U21hcnRQdHImJiwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kpOwogCiAgICAgUmV0YWluUHRyPE1UTERl
cHRoU3RlbmNpbFN0YXRlPiBtX2RlcHRoU3RlbmNpbFN0YXRlOwogI2VuZGlmIC8vIFVTRShNRVRB
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVT
aGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVT
aGFkZXJNb2R1bGUuaAppbmRleCBlOWE4N2JiZmUzZmM5YWU2NjNhNDIxYTNlNWFlNDIyYzkwYzE3
ZWUyLi5jZTMzNDFlNGZhNzc0MjFhODNlZjEwZjY4MTRhMTlmODNkYzk4ZWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVyTW9kdWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVs
ZS5oCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIFBsYXRmb3JtU2hhZGVyTW9kdWxlU21hcnRQdHIg
PSBSZXRhaW5QdHI8TVRMTGlicmFyeT47CiAKIGNsYXNzIEdQVVNoYWRlck1vZHVsZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVVNoYWRlck1vZHVsZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQ
dHI8R1BVU2hhZGVyTW9kdWxlPiBjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvciYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5
Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3Im
KTsKIAogICAgIFBsYXRmb3JtU2hhZGVyTW9kdWxlKiBwbGF0Zm9ybVNoYWRlck1vZHVsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fd2hsc2xTb3VyY2UuaXNOdWxsKCkgPyBtX3BsYXRmb3JtU2hhZGVyTW9k
dWxlLmdldCgpIDogbnVsbHB0cjsgfQogICAgIGNvbnN0IFN0cmluZyYgd2hsc2xTb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX3dobHNsU291cmNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwu
bW0KaW5kZXggYWFjYjRmNDc1NjkzZDNjNjJlZjBlMmJmYjJmNTY0OWE5NmZmZDk0Mi4uNzgyOWJm
YzAxMGRjNmJjZDE3ZTk5NmVjMDM1OGEyNmNhNGU0NmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3Jv
dXBNZXRhbC5tbQpAQCAtODAsMTEgKzgwLDExIEBAIHN0YXRpYyBNVExTYW1wbGVyU3RhdGUgKnRy
eUdldFJlc291cmNlQXNNVExTYW1wbGVyU3RhdGUoY29uc3QgR1BVQmluZGluZ1Jlc291cmNlCiAj
aWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CiAjZW5kaWYK
LSAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPEdQVVNhbXBsZXI+PihyZXNvdXJj
ZSkpIHsKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPGNvbnN0IEdQVVNhbXBs
ZXI+PihyZXNvdXJjZSkpIHsKICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBu
b3QgYSBHUFVTYW1wbGVyISIsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBhdXRvIHNhbXBsZXJTdGF0ZSA9IFdURjo6Z2V0PFJlZjxHUFVTYW1wbGVy
Pj4ocmVzb3VyY2UpLT5wbGF0Zm9ybVNhbXBsZXIoKTsKKyAgICBhdXRvIHNhbXBsZXJTdGF0ZSA9
IFdURjo6Z2V0PFJlZjxjb25zdCBHUFVTYW1wbGVyPj4ocmVzb3VyY2UpLT5wbGF0Zm9ybVNhbXBs
ZXIoKTsKICAgICBpZiAoIXNhbXBsZXJTdGF0ZSkKICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJ
bnZhbGlkIE1UTFNhbXBsZXJTdGF0ZSBpbiBHUFVTYW1wbGVyIGJpbmRpbmchIiwgZnVuY3Rpb25O
YW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tCmluZGV4IDBhMzdlYzg3MjQ4M2EyZmQ0MzNi
YjY1ODI2NTFkZTljMTAyZDgzYjIuLjc2ZGE4YTE5Y2QxMWM2ZDRjOGY1MWQ0NTY2MDk3ZTkzNjc2
ODZiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVCdWZmZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0KQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBH
UFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9w
dGlvblNldDxHUFVCdWZmZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEdQVUJ1ZmZl
cj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4mJiBkZXZpY2UsIEdQVUJ1ZmZl
ckRlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0
cnlDcmVhdGUoUmVmPEdQVURldmljZT4mJiBkZXZpY2UsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgYXV0byB1c2FnZSA9IE9wdGlvblNldDxHUFVCdWZmZXJV
c2FnZTo6RmxhZ3M+Ojpmcm9tUmF3KGRlc2NyaXB0b3IudXNhZ2UpOwogICAgIGlmICghdmFsaWRh
dGVCdWZmZXJVc2FnZShkZXZpY2UuZ2V0KCksIHVzYWdlKSkKQEAgLTg4LDEzICs4OCwxMyBAQCBS
ZWZQdHI8R1BVQnVmZmVyPiBHUFVCdWZmZXI6OnRyeUNyZWF0ZShSZWY8R1BVRGV2aWNlPiYmIGRl
dmljZSwgR1BVQnVmZmVyRGVzY3JpcAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCdWZmZXIoV1RGTW92ZShtdGxCdWZmZXIpLCBk
ZXNjcmlwdG9yLCB1c2FnZSwgV1RGTW92ZShkZXZpY2UpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgR1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVyKSwgZGVzY3JpcHRvci5zaXplLCB1c2Fn
ZSwgV1RGTW92ZShkZXZpY2UpKSk7CiB9CiAKLUdQVUJ1ZmZlcjo6R1BVQnVmZmVyKFJldGFpblB0
cjxNVExCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiB1c2FnZSwgUmVmPEdQVURldmlj
ZT4mJiBkZXZpY2UpCitHUFVCdWZmZXI6OkdQVUJ1ZmZlcihSZXRhaW5QdHI8TVRMQnVmZmVyPiYm
IGJ1ZmZlciwgdW5zaWduZWQgbG9uZyBzaXplLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZs
YWdzPiB1c2FnZSwgUmVmPEdQVURldmljZT4mJiBkZXZpY2UpCiAgICAgOiBtX3BsYXRmb3JtQnVm
ZmVyKFdURk1vdmUoYnVmZmVyKSkKICAgICAsIG1fZGV2aWNlKFdURk1vdmUoZGV2aWNlKSkKLSAg
ICAsIG1fYnl0ZUxlbmd0aChkZXNjcmlwdG9yLnNpemUpCisgICAgLCBtX2J5dGVMZW5ndGgoc2l6
ZSkKICAgICAsIG1fdXNhZ2UodXNhZ2UpCiB7CiB9CkBAIC0xMjEsNiArMTIxLDEwIEBAIEdQVUJ1
ZmZlcjo6U3RhdGUgR1BVQnVmZmVyOjpzdGF0ZSgpIGNvbnN0CiAKIHZvaWQgR1BVQnVmZmVyOjpz
ZXRTdWJEYXRhKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBjb25zdCBKU0M6OkFycmF5QnVmZmVyJiBk
YXRhKQogeworICAgIE1UTENvbW1hbmRRdWV1ZSAqcXVldWU7CisgICAgaWYgKCFtX2RldmljZS0+
dHJ5R2V0UXVldWUoKSB8fCAhKHF1ZXVlID0gbV9kZXZpY2UtPnRyeUdldFF1ZXVlKCktPnBsYXRm
b3JtUXVldWUoKSkpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBpZiAoIWlzVHJhbnNmZXJE
ZXN0aW5hdGlvbigpIHx8IHN0YXRlKCkgIT0gU3RhdGU6OlVubWFwcGVkKSB7CiAgICAgICAgIExP
RyhXZWJHUFUsICJHUFVCdWZmZXI6OnNldFN1YkRhdGEoKTogSW52YWxpZCBvcGVyYXRpb24hIik7
CiAgICAgICAgIHJldHVybjsKQEAgLTE1Niw3ICsxNjAsNyBAQCB2b2lkIEdQVUJ1ZmZlcjo6c2V0
U3ViRGF0YSh1bnNpZ25lZCBsb25nIG9mZnNldCwgY29uc3QgSlNDOjpBcnJheUJ1ZmZlciYgZGF0
YSkKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIGF1dG8gY29tbWFu
ZEJ1ZmZlciA9IHJldGFpblB0cihbbV9kZXZpY2UtPmdldFF1ZXVlKCktPnBsYXRmb3JtUXVldWUo
KSBjb21tYW5kQnVmZmVyXSk7CisgICAgYXV0byBjb21tYW5kQnVmZmVyID0gcmV0YWluUHRyKFtx
dWV1ZSBjb21tYW5kQnVmZmVyXSk7CiAgICAgYXV0byBibGl0RW5jb2RlciA9IHJldGFpblB0cihb
Y29tbWFuZEJ1ZmZlciBibGl0Q29tbWFuZEVuY29kZXJdKTsKIAogICAgIFtibGl0RW5jb2RlciBj
b3B5RnJvbUJ1ZmZlcjpzdGFnaW5nTXRsQnVmZmVyLmdldCgpIHNvdXJjZU9mZnNldDowIHRvQnVm
ZmVyOm1fcGxhdGZvcm1CdWZmZXIuZ2V0KCkgZGVzdGluYXRpb25PZmZzZXQ6b2Zmc2V0IHNpemU6
c3RhZ2luZ010bEJ1ZmZlci5nZXQoKS5sZW5ndGhdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVm
ZmVyTWV0YWwubW0KaW5kZXggZTRjNDIzOTc5YTMxZjA5NDVhZjJmMjAwZmIwMmQ1ZDBkZGI1OTVi
ZC4uMzg1OWU0ZGVjNjU5MGNlMjMyNGEyMGFkODYxZjVjZjA4ZTEzNmM5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZm
ZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC00Niw3ICs0Niw3IEBAIFJlZlB0cjxHUFVD
b21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNl
JiBkZXZpY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGF1dG8gZ3B1
Q29tbWFuZFF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CisgICAgYXV0byBncHVDb21tYW5kUXVl
dWUgPSBkZXZpY2UudHJ5R2V0UXVldWUoKTsKICAgICBpZiAoIWdwdUNvbW1hbmRRdWV1ZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQppbmRleCBkNzhm
YzNiZjYyMWNmNjA1ZjgzOWMwOTEwZWRlNTFlNTI2YzhiMTcyLi5mNTU5NDdlYmFmMzFmMDk5NDUx
YWI2YmVmMWJmMGU5ZjQ2ODRlNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVRGV2aWNlTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tCkBAIC0zNiw3
ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdQVURldmljZT4gR1BV
RGV2aWNlOjp0cnlDcmVhdGUoT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYmIG9w
dGlvbnMpCitSZWZQdHI8R1BVRGV2aWNlPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZShjb25zdCBPcHRp
b25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiBvcHRpb25zKQogewogICAgIFJldGFpblB0
cjxNVExEZXZpY2U+IGRldmljZVB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVN
ZXRhbC5tbQppbmRleCBhOWYyZDRmNDI3ZTQ2OTEwOGRhYWE3MThkZWM2MGI3OWYxMGI3YmI5Li41
NjE0ZTY3Nzk5YWZjZWUyYTQxMTZiMWIyM2Q3NjFkOTc5NDg1NGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVN
ZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQpAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyBSZXRh
aW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gdHJ5Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVT
dGF0ZShjb25zdCBjCiAgICAgcmV0dXJuIHBpcGVsaW5lOwogfQogCi1SZWZQdHI8R1BVUmVuZGVy
UGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpCitSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BVUmVuZGVyUGlw
ZWxpbmU6OmNyZWF0ZSgpIjsKIApAQCAtNDM2LDEzICs0MzYsMTMgQEAgUmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2
aWNlLCBHUFUKICAgICBpZiAoIXBpcGVsaW5lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShkZXB0aFN0
ZW5jaWwpLCBXVEZNb3ZlKHBpcGVsaW5lKSwgV1RGTW92ZShkZXNjcmlwdG9yKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShkZXB0aFN0ZW5jaWwp
LCBXVEZNb3ZlKHBpcGVsaW5lKSwgZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9neSkpOwogfQog
Ci1HUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERlcHRo
U3RlbmNpbFN0YXRlPiYmIGRlcHRoU3RlbmNpbCwgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5l
U3RhdGU+JiYgcGlwZWxpbmUsIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0
b3IpCitHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERl
cHRoU3RlbmNpbFN0YXRlPiYmIGRlcHRoU3RlbmNpbCwgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVs
aW5lU3RhdGU+JiYgcGlwZWxpbmUsIEdQVVByaW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5KQogICAg
IDogbV9kZXB0aFN0ZW5jaWxTdGF0ZShXVEZNb3ZlKGRlcHRoU3RlbmNpbCkpCiAgICAgLCBtX3Bs
YXRmb3JtUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCi0gICAgLCBtX3ByaW1pdGl2
ZVRvcG9sb2d5KGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3kpCisgICAgLCBtX3ByaW1pdGl2
ZVRvcG9sb2d5KHRvcG9sb2d5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxlTWV0YWwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxlTWV0
YWwubW0KaW5kZXggMWFhZjZiZjZhZTRhMTU1MTliN2FmYmVkZTY5NWM1ZThlOTllOGFiZi4uYjdm
NTZjODMyN2NhYWJiMTQyNDk1MDA0YTYyZTkyYzVkNzA4OWJkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNoYWRlck1vZHVsZU1ldGFs
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVT
aGFkZXJNb2R1bGVNZXRhbC5tbQpAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IEdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKGNv
bnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiYgZGVzY3Jp
cHRvcikKK1JlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRl
KGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQogewogICAgIGlmICghZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkpIHsKICAg
ICAgICAgTE9HKFdlYkdQVSwgIkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKCk6IEludmFsaWQgR1BV
RGV2aWNlISIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDQxNTBmY2U2ZGY5NGVjYTExMjA0NjBiNWM3MWZkY2Q4MTIyOTg5
NjkuLmNlMjk2NzU5ZWJiZTNjZWRhYTY3MTNlMzBlMGRhYWJjNjNlYWEzYTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOS0wMy0yNSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWIgR1BVXSBTdGFuZGFyZGl6ZSBXZWIgR1BVIG9iamVjdCByZWZlcmVu
Y2UgY291bnRpbmcgYW5kIGNyZWF0aW9uIGxvZ2ljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBHUFVTaGFkZXJNb2R1bGUgaXMgbm8gbG9uZ2VyIG51bGxh
YmxlLgorCisgICAgICAgICogd2ViZ3B1L3NoYWRlci1tb2R1bGVzLmh0bWw6CisKIDIwMTktMDMt
MjUgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUg
V2ViR1BVIGNsYXNzIG5hbWVzIGJhc2VkIG9uIHNrZXRjaC5pZGwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdwdS9zaGFkZXItbW9kdWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3No
YWRlci1tb2R1bGVzLmh0bWwKaW5kZXggMTcyNmRjZDE3YTI4ZWI0YTFlYWU4MzYxNWM0ZDVkNzFi
MGZiOTg1ZS4uODcwZjg4OGQxZTE5NGY4NTA0YWQ5NWJjODc5MDRlYTRhNzg2MGIzYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3NoYWRlci1tb2R1bGVzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3NoYWRlci1tb2R1bGVzLmh0bWwKQEAgLTI3LDM1ICsyNywxMCBAQCBmcmFn
bWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihWZXJ0ZXggdmVydGV4SW4gW1tzdGFnZV9pbl1dKQog
fQogYAogCi1jb25zdCBpbmNvbXBsZXRlU2hhZGVycyA9IGAKLSNpbmNsdWRlIDxtZXRhbF9zdGRs
aWI+Ci0gICAgCi11c2luZyBuYW1lc3BhY2UgbWV0YWw7Ci0KLXZlcnRleCBWZXJ0ZXggdmVydGV4
X21haW4odWludCB2aWQgW1t2ZXJ0ZXhfaWRdXSkKLXsKLSAgICByZXR1cm4gVmVydGV4IHsgZmxv
YXQ0KDAsIDAsIDAsIDEpIH07Ci19Ci0KLWZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZl
cnRleCB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCi17Ci0gICAgcnJldHVybiB2ZXJ0ZXhJbi5wb3Np
dGlvbjsKLX0KLWAKLQogcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICBjb25zdCBkZXZp
Y2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOwogCi0gICAgY29uc3Qgc2hhZGVyRGVzY3JpcHRv
cjAgPSB7Ci0gICAgICAgIGNvZGUgOiAiSGVsbG8gV29ybGQiCi0gICAgfTsKLSAgICBsZXQgc2hh
ZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZShzaGFkZXJEZXNjcmlwdG9yMCk7
Ci0gICAgYXNzZXJ0X2VxdWFscyhzaGFkZXJNb2R1bGUsIG51bGwsICJCYWQgc2hhZGVyIGNvZGUg
ZGlkIG5vdCBjcmVhdGUgYSBtb2R1bGUuIik7Ci0KLSAgICBzaGFkZXJNb2R1bGUgPSBkZXZpY2Uu
Y3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogaW5jb21wbGV0ZVNoYWRlcnMgfSk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhzaGFkZXJNb2R1bGUsIG51bGwsICJJbmNvbXBsZXRlIHNoYWRlciBjb2RlIGRp
ZCBub3QgY3JlYXRlIGEgbW9kdWxlLiIpOwotCi0gICAgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNy
ZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlcnMgfSk7CisgICAgbGV0IHNoYWRlck1vZHVs
ZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBzaGFkZXJzIH0pOwogICAgIGFz
c2VydF90cnVlKHNoYWRlck1vZHVsZSBpbnN0YW5jZW9mIEdQVVNoYWRlck1vZHVsZSwgIlNoYWRl
ciBtb2R1bGUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIik7CiB9LCAiVGVzdCBzaGFkZXIgY29kZSB2
YWxpZGF0aW9uIHdoZW4gY3JlYXRpbmcgbW9kdWxlcy4iKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366096</attachid>
            <date>2019-03-27 13:08:11 -0700</date>
            <delta_ts>2019-03-27 13:48:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196183-20190327130810.patch</filename>
            <type>text/plain</type>
            <size>61921</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjIwZWRkZjgyMTdkZTkz
NjEwYjFjNDQ5NTIxY2EwZTBjNWE0MTk0ZS4uNDZlNTkwODE0YmQ3Nzg3OWY1ZGIxZWY0ZWRmYWZj
ODYwOGFlZjBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAxOS0wMy0yNyAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBTdGFu
ZGFyZGl6ZSBXZWIgR1BVIG9iamVjdCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGNyZWF0aW9uIGxv
Z2ljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYx
ODMKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgTWFrZSBn
ZXR0ZXJzIHJldHVybiByYXcgcmVmcy9wb2ludGVycyBhbmQgcHJvdmlkZSBjb25zdCB2ZXJzaW9u
cyBpZiBuZWNlc3NhcnkuCisgICAgICAgIEFsbCBXZWIgR1BVIG9iamVjdHMgYXJlIG5vbi1udWxs
YWJsZSwgYnV0IGJlY29tZSBuby1vcCBpZiBpbnZhbGlkLCBhbmQgZGVzY3JpcHRvcnMgYXJlIG5v
dCBtb3ZlZCB1bmxlc3MgbmVlZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgbm8gY2hhbmdl
IGluIGJlaGF2aW9yLgorCisgICAgICAgIEdldHRlciB1cGRhdGVzIGFuZCBjb25zdCBxdWFsaWZp
Y2F0aW9uczoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpvcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VUJpbmRHcm91cDo6YmluZEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJpbmRHcm91
cDo6YmluZEdyb3VwIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3I6OnRyeUNyZWF0ZUdQVUJpbmRHcm91cERlc2NyaXB0b3IgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVUJpbmRHcm91cExheW91dDo6YmluZEdyb3VwTGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVUJ1ZmZlcjo6YnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJ1
ZmZlcjo6YnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVTYW1wbGVyOjpzYW1wbGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVTd2FwQ2hhaW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVN3YXBDaGFp
bjo6c3dhcENoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVN3YXBDaGFpbjo6c3dhcENo
YWluIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVUZXh0dXJlOjp0ZXh0dXJlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVRleHR1cmU6OnRleHR1cmUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVUZXh0dXJlVmlldzo6dGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
UFVUZXh0dXJlVmlldzo6dGV4dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnRyeUdldFJlc291cmNlQXNNVExTYW1wbGVyU3RhdGUpOgorCisgICAgICAgIFdlYiBH
UFUgb2JqZWN0IGNyZWF0aW9uIGxvZ2ljOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUNvbW1hbmRFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJ1ZmZlckNvcHlW
aWV3Ojp0cnlDcmVhdGVHUFVCdWZmZXJDb3B5VmlldyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVUZXh0dXJlQ29weVZpZXc6OnRyeUNyZWF0ZUdQVVRleHR1cmVDb3B5VmlldyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21tYW5kRW5jb2Rlcjo6YmVnaW5SZW5kZXJQ
YXNzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVy
VG9CdWZmZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRFbmNvZGVy
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlVGV4dHVyZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpnZXRRdWV1ZSBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlw
ZWxpbmVMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZUxh
eW91dDo6V2ViR1BVUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVBpcGVsaW5lTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZUxh
eW91dDo6cGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVUXVldWU6OldlYkdQVVF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1
ZXVlOjpzdWJtaXQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVVNoYWRlck1vZHVsZTo6V2ViR1BVU2hhZGVyTW9kdWxlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVNoYWRlck1vZHVsZTo6bW9kdWxlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZVRleHR1cmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGVTaGFkZXJNb2R1bGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGVSZW5kZXJQaXBlbGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUdldFF1ZXVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxp
bmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpnZXRRdWV1
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpHUFVQaXBlbGluZUxheW91dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91dDo6YmluZEdyb3VwTGF5b3V0cyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGlu
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTaGFkZXJNb2R1bGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW06
CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCdWZmZXI6OkdQVUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6
OnNldFN1YkRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVD
b21tYW5kQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVy
Ojp0cnlDcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVE
ZXZpY2VNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVN
ZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OkdQVVJlbmRlclBpcGVsaW5l
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTaGFkZXJNb2R1bGVN
ZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKTogRGVsZXRlZC4KKwor
ICAgICAgICBBZGQgV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCB0byBwcm9qZWN0
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgCiAyMDE5LTAzLTI3ICBSeWFuIEhhZGRhZCAgPHJ5YW5o
YWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uUm91dGVTaGFyaW5nUG9s
aWN5TG9uZ0Zvcm0gaGFzIGJlZW4gZGVwcmVjYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5oCmluZGV4IDA0MGI1MDk4NWVkOWMzZWVjODFlZTYxMWEy
MTExNjM2YWE2ZTU3ZDUuLjM5YmEzZGI2ZTUxNGU0M2NkZDgxMzZkMzllZjBjOGU3MjQ4NDVlNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHVzaW5nIERldmljZVJlcXVlc3RQcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJHUFVEZXZpY2U+PjsKICAgICB2b2lk
IHJlcXVlc3REZXZpY2UoRGV2aWNlUmVxdWVzdFByb21pc2UmJikgY29uc3Q7CiAgICAgCi0gICAg
T3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiBvcHRpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zOyB9CisgICAgY29uc3QgT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zPiYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFdlYkdQVUFkYXB0ZXIoT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdy
b3VwLmgKaW5kZXggODI5ZWFiMmIzYjFhNjZiMmZiZDkzMTMyNzI5MWZkNjVlYjY4MjhmYS4uOTIz
MjVmYjJhZWY1NTQxYjAzNGQyZDkxZTVhNjcxYzVjMjZmYTczNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmgKQEAgLTM3LDcgKzM3LDcgQEAg
Y2xhc3MgV2ViR1BVQmluZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQmluZEdyb3Vw
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZShSZWZQ
dHI8R1BVQmluZEdyb3VwPiYmKTsKIAotICAgIEdQVUJpbmRHcm91cCogYmluZEdyb3VwKCkgY29u
c3QgeyByZXR1cm4gbV9iaW5kR3JvdXAuZ2V0KCk7IH0KKyAgICBHUFVCaW5kR3JvdXAqIGJpbmRH
cm91cCgpIHsgcmV0dXJuIG1fYmluZEdyb3VwLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgV2ViR1BVQmluZEdyb3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmNwcAppbmRleCBiZDIyODMyMTdmYTU2YjUzMzQxYTAwZjEwYWJiNWZhMDUwMGQ3Zjli
Li5lMmQ4MzE4NDdmMzEwOTY2YmJlYjc2N2Q4YjhhNjhlODE1ZWFjZDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIE9wdGlvbmFsPEdQVUJpbmRHcm91cERlc2Ny
aXB0b3I+IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I6OnRyeUNyZWF0ZUdQVUJpbmRHcm91CiAg
ICAgICAgICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJj
ZT4odGV4dHVyZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxHUFVCaW5kaW5nUmVzb3VyY2U+KG1ha2VSZWYoKnRleHR1cmUpKTsKICAgICAgICAgfSwg
WyZsYXlvdXRCaW5kaW5nLCBmdW5jdGlvbk5hbWVdIChXZWJHUFVCdWZmZXJCaW5kaW5nIGJ1ZmZl
ckJpbmRpbmcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewogICAgICAgICAgICAg
aWYgKCFidWZmZXJCaW5kaW5nLmJ1ZmZlcikKICAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwpAQCAtMTExLDEwICsxMTEsMTAgQEAgT3B0aW9uYWw8R1BVQmluZEdyb3VwRGVzY3Jp
cHRvcj4gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVQmluZEdyb3UKICAg
ICAgICAgICAgIGlmICghYnVmZmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKLSAgICAgICAgICAgIGlmICghdmFsaWRhdGVCdWZmZXJCaW5kaW5nVHlwZShidWZmZXIu
Z2V0KCksIGxheW91dEJpbmRpbmcsIGZ1bmN0aW9uTmFtZSkpCisgICAgICAgICAgICBpZiAoIXZh
bGlkYXRlQnVmZmVyQmluZGluZ1R5cGUoYnVmZmVyLCBsYXlvdXRCaW5kaW5nLCBmdW5jdGlvbk5h
bWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxHUFVCaW5kaW5nUmVzb3VyY2U+KEdQVUJ1ZmZlckJpbmRpbmcg
eyBidWZmZXIucmVsZWFzZU5vbk51bGwoKSwgYnVmZmVyQmluZGluZy5vZmZzZXQsIGJ1ZmZlckJp
bmRpbmcuc2l6ZSB9KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxHUFVCaW5kaW5n
UmVzb3VyY2U+KEdQVUJ1ZmZlckJpbmRpbmcgeyBtYWtlUmVmKCpidWZmZXIpLCBidWZmZXJCaW5k
aW5nLm9mZnNldCwgYnVmZmVyQmluZGluZy5zaXplIH0pOwogICAgICAgICB9KTsKIAogICAgICAg
ICBhdXRvIGJpbmRpbmdSZXNvdXJjZSA9IFdURjo6dmlzaXQoYmluZGluZ1Jlc291cmNlVmlzaXRv
ciwgYmluZGluZy5yZXNvdXJjZSk7CkBAIC0xMjYsNyArMTI2LDcgQEAgT3B0aW9uYWw8R1BVQmlu
ZEdyb3VwRGVzY3JpcHRvcj4gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BV
QmluZEdyb3UKICAgICAgICAgYmluZEdyb3VwQmluZGluZ3MudW5jaGVja2VkQXBwZW5kKEdQVUJp
bmRHcm91cEJpbmRpbmcgeyBiaW5kaW5nLmJpbmRpbmcsIFdURk1vdmUoYmluZGluZ1Jlc291cmNl
LnZhbHVlKCkpIH0pOwogICAgIH0KIAotICAgIHJldHVybiBHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
IHsgbGF5b3V0LT5iaW5kR3JvdXBMYXlvdXQoKS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGJp
bmRHcm91cEJpbmRpbmdzKSB9OworICAgIHJldHVybiBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yIHsg
bWFrZVJlZigqbGF5b3V0LT5iaW5kR3JvdXBMYXlvdXQoKSksIFdURk1vdmUoYmluZEdyb3VwQmlu
ZGluZ3MpIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaApp
bmRleCBmOWEwOWFkODAxODgxMzZjM2IxNTRmN2Q0Y2E2N2Y5MjdiNmJkNTJiLi5mYzg5ZWI1ZmY5
MGZlYTA5NGJlNGVhZTg4OWJlMThhYmIwY2M0M2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC00
MCw3ICs0MCw3IEBAIHN0cnVjdCBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IgewogICAgIE9wdGlvbmFsPEdQVUJpbmRHcm91cERlc2NyaXB0
b3I+IHRyeUNyZWF0ZUdQVUJpbmRHcm91cERlc2NyaXB0b3IoKSBjb25zdDsKIAotICAgIFJlZlB0
cjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGxheW91dDsKKyAgICBSZWZQdHI8Y29uc3QgV2ViR1BV
QmluZEdyb3VwTGF5b3V0PiBsYXlvdXQ7CiAgICAgVmVjdG9yPFdlYkdQVUJpbmRHcm91cEJpbmRp
bmc+IGJpbmRpbmdzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaAppbmRleCBmOWMwZjgzMDUwZjY3OTE3MzdjMmY1
M2EwOTIyMDBhNWZkZWE2YWVmLi41NWNjNWE3NTEyYmMwN2FhNWI5NTI4NjA3YWYyY2Q4NDFhOTIy
MDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVC
aW5kR3JvdXBMYXlvdXQuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAK
ICNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXQuaCIKLQogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC0zOCw3ICszNyw3IEBAIGNsYXNz
IFdlYkdQVUJpbmRHcm91cExheW91dCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91
cExheW91dD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0
PiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4mJik7CiAKLSAgICBSZWZQdHI8R1BV
QmluZEdyb3VwTGF5b3V0PiBiaW5kR3JvdXBMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2JpbmRH
cm91cExheW91dDsgfQorICAgIGNvbnN0IEdQVUJpbmRHcm91cExheW91dCogYmluZEdyb3VwTGF5
b3V0KCkgY29uc3QgeyByZXR1cm4gbV9iaW5kR3JvdXBMYXlvdXQuZ2V0KCk7IH0KIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJHUFVCaW5kR3JvdXBMYXlvdXQoUmVmUHRyPEdQVUJpbmRHcm91
cExheW91dD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZl
ci5oCmluZGV4IDY3MjFlOTkyMzg2MWI3OTM3NDU3Mjg2YTYxZTczNmJhYTY2ZDcxNTcuLjk4NThk
YTE5ZTI5ZDhiNmNhMzNiNGM1MTFhMGI2YzVhZTAxYjhiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCkBAIC00NSw3ICs0NSw4IEBAIGNsYXNzIFdl
YkdQVUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJ1ZmZlcj4gewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8V2ViR1BVQnVmZmVyPiBjcmVhdGUoUmVmUHRyPEdQVUJ1ZmZlcj4mJik7
CiAKLSAgICBSZWZQdHI8R1BVQnVmZmVyPiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZl
cjsgfQorICAgIEdQVUJ1ZmZlciogYnVmZmVyKCkgeyByZXR1cm4gbV9idWZmZXIuZ2V0KCk7IH0K
KyAgICBjb25zdCBHUFVCdWZmZXIqIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdl
dCgpOyB9CiAKICAgICB2b2lkIHNldFN1YkRhdGEodW5zaWduZWQgbG9uZyBsb25nLCBjb25zdCBK
U0M6OkFycmF5QnVmZmVyJik7CiAgICAgdXNpbmcgQnVmZmVyTWFwcGluZ1Byb21pc2UgPSBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEpTQzo6QXJyYXlCdWZmZXI+PjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRFbmNvZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRFbmNvZGVyLmNw
cAppbmRleCAwYzE2NWEzMzUwODgyMmFhZDNiMjBhMjQxMTg1MzUwZjE3NTJkMTY4Li5kN2JjYWIw
MmQzYWQwZDkyMmIwYTBlNWNiMTI4NzhjYWM2ZDEyOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kRW5jb2Rlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVuY29kZXIuY3BwCkBAIC00Nyw3
ICs0Nyw3IEBAIE9wdGlvbmFsPEdQVUJ1ZmZlckNvcHlWaWV3PiBXZWJHUFVCdWZmZXJDb3B5Vmll
dzo6dHJ5Q3JlYXRlR1BVQnVmZmVyQ29weVZpZXcoKSBjCiAKICAgICAvLyBGSVhNRTogQWRkIFdl
YiBHUFUgdmFsaWRhdGlvbi4KIAotICAgIHJldHVybiBHUFVCdWZmZXJDb3B5VmlldyB7IGJ1ZmZl
ci0+YnVmZmVyKCkucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMgfTsKKyAgICByZXR1cm4gR1BVQnVm
ZmVyQ29weVZpZXcgeyBtYWtlUmVmKCpidWZmZXItPmJ1ZmZlcigpKSwgKnRoaXMgfTsKIH0KIAog
T3B0aW9uYWw8R1BVVGV4dHVyZUNvcHlWaWV3PiBXZWJHUFVUZXh0dXJlQ29weVZpZXc6OnRyeUNy
ZWF0ZUdQVVRleHR1cmVDb3B5VmlldygpIGNvbnN0CkBAIC01OSw3ICs1OSw3IEBAIE9wdGlvbmFs
PEdQVVRleHR1cmVDb3B5Vmlldz4gV2ViR1BVVGV4dHVyZUNvcHlWaWV3Ojp0cnlDcmVhdGVHUFVU
ZXh0dXJlQ29weVZpZXcoCiAKICAgICAvLyBGSVhNRTogQWRkIFdlYiBHUFUgdmFsaWRhdGlvbi4K
IAotICAgIHJldHVybiBHUFVUZXh0dXJlQ29weVZpZXcgeyB0ZXh0dXJlLT50ZXh0dXJlKCkucmVs
ZWFzZU5vbk51bGwoKSwgKnRoaXMgfTsKKyAgICByZXR1cm4gR1BVVGV4dHVyZUNvcHlWaWV3IHsg
bWFrZVJlZigqdGV4dHVyZS0+dGV4dHVyZSgpKSwgKnRoaXMgfTsKIH0KIAogUmVmPFdlYkdQVUNv
bW1hbmRFbmNvZGVyPiBXZWJHUFVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKFJlZlB0cjxHUFVDb21t
YW5kQnVmZmVyPiYmIGJ1ZmZlcikKQEAgLTcyLDcgKzcyLDcgQEAgV2ViR1BVQ29tbWFuZEVuY29k
ZXI6OldlYkdQVUNvbW1hbmRFbmNvZGVyKFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiYmIGJ1ZmZl
cikKIHsKIH0KIAotUmVmPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBXZWJHUFVDb21tYW5kRW5j
b2Rlcjo6YmVnaW5SZW5kZXJQYXNzKFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yJiYgZGVzY3Jp
cHRvcikKK1JlZjxXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gV2ViR1BVQ29tbWFuZEVuY29kZXI6
OmJlZ2luUmVuZGVyUGFzcyhjb25zdCBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKIHsKICAgICBpZiAoIW1fY29tbWFuZEJ1ZmZlcikgewogICAgICAgICBMT0coV2ViR1BV
LCAiV2ViR1BVQ29tbWFuZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcygpOiBJbnZhbGlkIG9wZXJh
dGlvbiEiKTsKQEAgLTg2LDcgKzg2LDcgQEAgUmVmPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBX
ZWJHUFVDb21tYW5kRW5jb2Rlcjo6YmVnaW5SZW5kZXJQYXNzKFdlYkdQVVJlbmRlclAKICAgICBy
ZXR1cm4gV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShlbmNv
ZGVyKSk7CiB9CiAKLXZvaWQgV2ViR1BVQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZl
cihjb25zdCBXZWJHUFVCdWZmZXImIHNyYywgdW5zaWduZWQgbG9uZyBzcmNPZmZzZXQsIGNvbnN0
IFdlYkdQVUJ1ZmZlciYgZHN0LCB1bnNpZ25lZCBsb25nIGRzdE9mZnNldCwgdW5zaWduZWQgbG9u
ZyBzaXplKQordm9pZCBXZWJHUFVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKFdl
YkdQVUJ1ZmZlciYgc3JjLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwgV2ViR1BVQnVmZmVyJiBk
c3QsIHVuc2lnbmVkIGxvbmcgZHN0T2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpCiB7CiAgICAg
aWYgKCFtX2NvbW1hbmRCdWZmZXIpIHsKICAgICAgICAgTE9HKFdlYkdQVSwgIldlYkdQVUNvbW1h
bmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIoKTogSW52YWxpZCBvcGVyYXRpb24hIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kRW5j
b2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEVuY29k
ZXIuaAppbmRleCAyNGQ3MWJhMWQwMmVkMWNmN2Q1OTI4YWFjYzk1ZmVlYzI3YzA1NWVjLi4wZDQz
YTM3NjQ1YjY3ZTVlZTNkYzc0NTA5MDEzOGYwZDRhYjQ1MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRFbmNvZGVyLmgKQEAgLTU3LDgg
KzU3LDggQEAgY2xhc3MgV2ViR1BVQ29tbWFuZEVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJHUFVDb21tYW5kRW5jb2Rlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29t
bWFuZEVuY29kZXI+IGNyZWF0ZShSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4mJik7CiAKLSAgICBS
ZWY8V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI+IGJlZ2luUmVuZGVyUGFzcyhXZWJHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvciYmKTsKLSAgICB2b2lkIGNvcHlCdWZmZXJUb0J1ZmZlcihjb25zdCBXZWJH
UFVCdWZmZXImLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwgY29uc3QgV2ViR1BVQnVmZmVyJiwg
dW5zaWduZWQgbG9uZyBkc3RPZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CisgICAgUmVmPFdl
YkdQVVJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRlclBhc3MoY29uc3QgV2ViR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3ImKTsKKyAgICB2b2lkIGNvcHlCdWZmZXJUb0J1ZmZlcihXZWJHUFVCdWZm
ZXImLCB1bnNpZ25lZCBsb25nIHNyY09mZnNldCwgV2ViR1BVQnVmZmVyJiwgdW5zaWduZWQgbG9u
ZyBkc3RPZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiAgICAgdm9pZCBjb3B5QnVmZmVyVG9U
ZXh0dXJlKGNvbnN0IFdlYkdQVUJ1ZmZlckNvcHlWaWV3JiwgY29uc3QgV2ViR1BVVGV4dHVyZUNv
cHlWaWV3JiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKICAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZm
ZXIoY29uc3QgV2ViR1BVVGV4dHVyZUNvcHlWaWV3JiwgY29uc3QgV2ViR1BVQnVmZmVyQ29weVZp
ZXcmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwogICAgIHZvaWQgY29weVRleHR1cmVUb1RleHR1cmUo
Y29uc3QgV2ViR1BVVGV4dHVyZUNvcHlWaWV3JiwgY29uc3QgV2ViR1BVVGV4dHVyZUNvcHlWaWV3
JiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IGI5YjU2NjU1MWU0ZTc4ODhhOTg0MWQzMWY5ZjEzZTRl
NWJkNTMxZjEuLjA4OTJiZmMyZjFjZWJmZTlhYTczZDE1MGJkMzM3M2NjYzgwYzc1ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtNzYs
MTUgKzc2LDE1IEBAIFdlYkdQVURldmljZTo6V2ViR1BVRGV2aWNlKFJlZjxjb25zdCBXZWJHUFVB
ZGFwdGVyPiYmIGFkYXB0ZXIsIFJlZjxHUFVEZXZpY2U+JiYKIHsKIH0KIAotUmVmPFdlYkdQVUJ1
ZmZlcj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmIGRl
c2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQnVmZmVyPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJ1
ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAg
IGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1ZmZlcihXVEZNb3ZlKGRlc2NyaXB0
b3IpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3Jp
cHRvcik7CiAgICAgcmV0dXJuIFdlYkdQVUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSk7
CiB9CiAKLVJlZjxXZWJHUFVUZXh0dXJlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVRleHR1cmUoR1BV
VGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmPFdlYkdQVVRleHR1cmU+
IFdlYkdQVURldmljZTo6Y3JlYXRlVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikgY29uc3QKIHsKLSAgICBhdXRvIHRleHR1cmUgPSBtX2RldmljZS0+dHJ5Q3Jl
YXRlVGV4dHVyZShXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKKyAgICBhdXRvIHRleHR1cmUgPSBtX2Rl
dmljZS0+dHJ5Q3JlYXRlVGV4dHVyZShkZXNjcmlwdG9yKTsKICAgICByZXR1cm4gV2ViR1BVVGV4
dHVyZTo6Y3JlYXRlKFdURk1vdmUodGV4dHVyZSkpOwogfQogCkBAIC0xMDAsMTYgKzEwMCwxNyBA
QCBSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91
cExheW91dChjb25zdCBHUFVCaW5kR3JvdQogICAgIHJldHVybiBXZWJHUFVCaW5kR3JvdXBMYXlv
dXQ6OmNyZWF0ZShXVEZNb3ZlKGxheW91dCkpOwogfQogCi1SZWY8V2ViR1BVUGlwZWxpbmVMYXlv
dXQ+IFdlYkdQVURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVQaXBlbGluZUxheW91
dD4gV2ViR1BVRGV2aWNlOjpjcmVhdGVQaXBlbGluZUxheW91dChjb25zdCBXZWJHUFVQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7Ci0gICAgYXV0byBiaW5kR3Jv
dXBMYXlvdXRzID0gZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzLm1hcChbXSAoY29uc3QgYXV0
byYgbGF5b3V0KSAtPiBSZWZQdHI8Y29uc3QgR1BVQmluZEdyb3VwTGF5b3V0PiB7Ci0gICAgICAg
IHJldHVybiBsYXlvdXQtPmJpbmRHcm91cExheW91dCgpOwotICAgIH0pOwotICAgIGF1dG8gbGF5
b3V0ID0gbV9kZXZpY2UtPmNyZWF0ZVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvciB7IFdURk1vdmUoYmluZEdyb3VwTGF5b3V0cykgfSk7CisgICAgYXV0byBncHVEZXNj
cmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Io
KTsKKyAgICBpZiAoIWdwdURlc2NyaXB0b3IpCisgICAgICAgIHJldHVybiBXZWJHUFVQaXBlbGlu
ZUxheW91dDo6Y3JlYXRlKG51bGxwdHIpOworICAgIAorICAgIGF1dG8gbGF5b3V0ID0gbV9kZXZp
Y2UtPmNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdURk1vdmUoKmdwdURlc2NyaXB0b3IpKTsKICAgICBy
ZXR1cm4gV2ViR1BVUGlwZWxpbmVMYXlvdXQ6OmNyZWF0ZShXVEZNb3ZlKGxheW91dCkpOwogfQog
Ci1SZWY8V2ViR1BVQmluZEdyb3VwPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChXZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVCaW5k
R3JvdXA+IFdlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVUJpbmRHcm91
cERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CiAgICAgYXV0byBncHVEZXNjcmlwdG9y
ID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVCaW5kR3JvdXBEZXNjcmlwdG9yKCk7CiAgICAgaWYg
KCFncHVEZXNjcmlwdG9yKQpAQCAtMTE5LDEyICsxMjAsMTEgQEAgUmVmPFdlYkdQVUJpbmRHcm91
cD4gV2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAoV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRv
ciYmIGQKICAgICByZXR1cm4gV2ViR1BVQmluZEdyb3VwOjpjcmVhdGUoV1RGTW92ZShiaW5kR3Jv
dXApKTsKIH0KIAotUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVh
dGVTaGFkZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYmIGRlc2NyaXB0b3Ip
IGNvbnN0CitSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRl
ck1vZHVsZShjb25zdCBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBXaGF0IGNhbiBiZSB2YWxpZGF0ZWQgaGVyZT8KLSAgICBp
ZiAoYXV0byBtb2R1bGUgPSBtX2RldmljZS0+Y3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IgeyBkZXNjcmlwdG9yLmNvZGUsIGRlc2NyaXB0b3IuaXNXSExTTCB9KSkK
LSAgICAgICAgcmV0dXJuIFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKG1vZHVsZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIG1vZHVsZSA9IG1fZGV2
aWNlLT50cnlDcmVhdGVTaGFkZXJNb2R1bGUoR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciB7IGRl
c2NyaXB0b3IuY29kZSwgZGVzY3JpcHRvci5pc1dITFNMIH0pOworICAgIHJldHVybiBXZWJHUFVT
aGFkZXJNb2R1bGU6OmNyZWF0ZShXVEZNb3ZlKG1vZHVsZSkpOwogfQogCiBSZWY8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2Vi
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdApAQCAtMTMzLDcg
KzEzMyw3IEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQCiAgICAgaWYgKCFncHVEZXNjcmlwdG9y
KQogICAgICAgICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShudWxscHRyKTsK
IAotICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+Y3JlYXRlUmVuZGVyUGlwZWxpbmUoV1RG
TW92ZSgqZ3B1RGVzY3JpcHRvcikpOworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5
Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IpOwogICAgIHJldHVybiBXZWJHUFVS
ZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpKTsKIH0KIApAQCAtMTU3LDEy
ICsxNTcsMTIgQEAgUmVmPFdlYkdQVVN3YXBDaGFpbj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTd2Fw
Q2hhaW4oY29uc3QgV2ViR1BVU3dhcENoYWluRGVzY3JpcHQKICAgICByZXR1cm4gbmV3U3dhcENo
YWluOwogfQogCi1SZWZQdHI8V2ViR1BVUXVldWU+IFdlYkdQVURldmljZTo6Z2V0UXVldWUoKSBj
b25zdAorUmVmPFdlYkdQVVF1ZXVlPiBXZWJHUFVEZXZpY2U6OmdldFF1ZXVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcXVldWUpCi0gICAgICAgIG1fcXVldWUgPSBXZWJHUFVRdWV1ZTo6Y3JlYXRl
KG1fZGV2aWNlLT5nZXRRdWV1ZSgpKTsKKyAgICAgICAgbV9xdWV1ZSA9IFdlYkdQVVF1ZXVlOjpj
cmVhdGUobV9kZXZpY2UtPnRyeUdldFF1ZXVlKCkpOwogCi0gICAgcmV0dXJuIG1fcXVldWU7Cisg
ICAgcmV0dXJuIG1ha2VSZWYoKm1fcXVldWUuZ2V0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCmlu
ZGV4IDdlMjY4OWRlYmI3NzVhZWZkYWU0MDAzZDBjNmRlN2Y2NWEzMDc4ZWIuLjE3YzQ5YjgwMTEw
NjAwZGVhZDE5MGI4ZWNlNDYyMmM4NmRkMWM3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCkBAIC02NSwyMiArNjUsMjIgQEAgcHVibGljOgogICAg
IGNvbnN0IFdlYkdQVUFkYXB0ZXImIGFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiBtX2FkYXB0ZXIu
Z2V0KCk7IH0KICAgICBjb25zdCBHUFVEZXZpY2UmIGRldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlLmdldCgpOyB9CiAKLSAgICBSZWY8V2ViR1BVQnVmZmVyPiBjcmVhdGVCdWZmZXIoR1BV
QnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKLSAgICBSZWY8V2ViR1BVVGV4dHVyZT4gY3JlYXRl
VGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVQnVm
ZmVyPiBjcmVhdGVCdWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYpIGNvbnN0OworICAg
IFJlZjxXZWJHUFVUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlw
dG9yJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVVNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoY29uc3Qg
R1BVU2FtcGxlckRlc2NyaXB0b3ImKSBjb25zdDsKIAogICAgIFJlZjxXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yJikgY29uc3Q7Ci0gICAgUmVmPFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGVQaXBl
bGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJikgY29uc3Q7Ci0gICAg
UmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2Ny
aXB0b3ImJikgY29uc3Q7CisgICAgUmVmPFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGVQaXBl
bGluZUxheW91dChjb25zdCBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImKSBjb25zdDsK
KyAgICBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVQmlu
ZEdyb3VwRGVzY3JpcHRvciYpIGNvbnN0OwogCi0gICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29u
c3Q7CisgICAgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0
IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWY8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVUNvbW1hbmRFbmNvZGVyPiBj
cmVhdGVDb21tYW5kRW5jb2RlcigpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVVN3YXBDaGFpbj4g
Y3JlYXRlU3dhcENoYWluKGNvbnN0IFdlYkdQVVN3YXBDaGFpbkRlc2NyaXB0b3ImKSBjb25zdDsK
IAotICAgIFJlZlB0cjxXZWJHUFVRdWV1ZT4gZ2V0UXVldWUoKSBjb25zdDsKKyAgICBSZWY8V2Vi
R1BVUXVldWU+IGdldFF1ZXVlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgV2ViR1BVRGV2aWNl
KFJlZjxjb25zdCBXZWJHUFVBZGFwdGVyPiYmLCBSZWY8R1BVRGV2aWNlPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0LmNw
cAppbmRleCBjNjRhNTQ2MTVlNmFmNjVkM2E4OThlNWQxYzk5MzIwZTIwMGU2MGIwLi4wMGI1ZDRj
YjRmOWYxOGZkZDg4NzM3NjkwMGJiNTEzZGU4ZTJiMTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwCkBAIC0zMCwx
MiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8V2ViR1BVUGlwZWxpbmVM
YXlvdXQ+IFdlYkdQVVBpcGVsaW5lTGF5b3V0OjpjcmVhdGUoUmVmPEdQVVBpcGVsaW5lTGF5b3V0
PiYmIGxheW91dCkKK1JlZjxXZWJHUFVQaXBlbGluZUxheW91dD4gV2ViR1BVUGlwZWxpbmVMYXlv
dXQ6OmNyZWF0ZShSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+JiYgbGF5b3V0KQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVBpcGVsaW5lTGF5b3V0KFdURk1vdmUobGF5b3V0KSkp
OwogfQogCi1XZWJHUFVQaXBlbGluZUxheW91dDo6V2ViR1BVUGlwZWxpbmVMYXlvdXQoUmVmPEdQ
VVBpcGVsaW5lTGF5b3V0PiYmIGxheW91dCkKK1dlYkdQVVBpcGVsaW5lTGF5b3V0OjpXZWJHUFVQ
aXBlbGluZUxheW91dChSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+JiYgbGF5b3V0KQogICAgIDog
bV9waXBlbGluZUxheW91dChXVEZNb3ZlKGxheW91dCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaAppbmRleCAxZmJi
MzFiNGNiMWI2NzRiOGUzOTNjNGJiNjVkY2ZkOWQ2NmZkMDM2Li5iMzU2Zjg5ZGNkZTExYmE5NDNl
YWE4NmNjOTMyMGNiZWQyNzIwOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0LmgKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdQVVBpcGVsaW5lTGF5b3V0IDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoUmVmPEdQVVBpcGVsaW5lTGF5b3V0PiYmKTsK
KyAgICBzdGF0aWMgUmVmPFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoUmVmUHRyPEdQVVBp
cGVsaW5lTGF5b3V0PiYmKTsKIAotICAgIEdQVVBpcGVsaW5lTGF5b3V0JiBwaXBlbGluZUxheW91
dCgpIHsgcmV0dXJuIG1fcGlwZWxpbmVMYXlvdXQuZ2V0KCk7IH0KKyAgICBHUFVQaXBlbGluZUxh
eW91dCogcGlwZWxpbmVMYXlvdXQoKSB7IHJldHVybiBtX3BpcGVsaW5lTGF5b3V0LmdldCgpOyB9
CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViR1BVUGlwZWxpbmVMYXlvdXQoUmVmPEdQVVBp
cGVsaW5lTGF5b3V0PiYmKTsKKyAgICBleHBsaWNpdCBXZWJHUFVQaXBlbGluZUxheW91dChSZWZQ
dHI8R1BVUGlwZWxpbmVMYXlvdXQ+JiYpOwogCi0gICAgUmVmPEdQVVBpcGVsaW5lTGF5b3V0PiBt
X3BpcGVsaW5lTGF5b3V0OworICAgIFJlZlB0cjxHUFVQaXBlbGluZUxheW91dD4gbV9waXBlbGlu
ZUxheW91dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYTZmMTcyNDU5MjEwMzc5YmQzYzJmNjU0NjA4MmRl
MWExNzc3NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BV
UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitPcHRpb25hbDxHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3I+IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmPGNvbnN0IEdQVUJpbmRH
cm91cExheW91dD4+IGdwdUxheW91dHM7CisgICAgZ3B1TGF5b3V0cy5yZXNlcnZlQ2FwYWNpdHko
YmluZEdyb3VwTGF5b3V0cy5zaXplKCkpOworICAgIAorICAgIGZvciAoY29uc3QgYXV0byYgbGF5
b3V0IDogYmluZEdyb3VwTGF5b3V0cykgeworICAgICAgICBpZiAoIWxheW91dCB8fCAhbGF5b3V0
LT5iaW5kR3JvdXBMYXlvdXQoKSkgeworICAgICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVURldmlj
ZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoKTogSW52YWxpZCBHUFVCaW5kR3JvdXBMYXlvdXQhIik7
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBncHVMYXlvdXRzLnVuY2hlY2tlZEFwcGVuZChtYWtlUmVmKCpsYXlvdXQtPmJpbmRH
cm91cExheW91dCgpKSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3IgeyBXVEZNb3ZlKGdwdUxheW91dHMpIH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5oCmluZGV4IDFiNzBhYzQwNzM4NmNlM2NhMzE2N2Q0YzVhYWRlNTVkMmY2NmRhMjkuLmRj
ZTY4OTU1ODZjMzBkMzcwNGQyOTIwNDBiYmFmM2VlMTg1ZWVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oCkBAIC0yOCwxMyArMjgsMTcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAj
aW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgiCi0KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdHJ1Y3QgR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yOwogCiBzdHJ1Y3QgV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIHsKKyAgICBP
cHRpb25hbDxHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IHRyeUNyZWF0ZUdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcigpIGNvbnN0OworCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHUFVCaW5k
R3JvdXBMYXlvdXQ+PiBiaW5kR3JvdXBMYXlvdXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCmluZGV4IGI0ZjgzZTRhZjFhNGM2NzIzMTFl
ZmRjMGFiNDRhZDUxMzc0MTkyMDEuLmUzYWNhN2IyZDBkMTVjNmYxMmYwYzE5NjVmMmMzYzQ0NDZi
NmMzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1
ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5j
cHAKQEAgLTM1LDE4ICszNSwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxX
ZWJHUFVRdWV1ZT4gV2ViR1BVUXVldWU6OmNyZWF0ZShSZWZQdHI8R1BVUXVldWU+JiYgcXVldWUp
CitSZWY8V2ViR1BVUXVldWU+IFdlYkdQVVF1ZXVlOjpjcmVhdGUoUmVmUHRyPEdQVVF1ZXVlPiYm
IHF1ZXVlKQogewotICAgIHJldHVybiBxdWV1ZSA/IGFkb3B0UmVmKG5ldyBXZWJHUFVRdWV1ZShx
dWV1ZS5yZWxlYXNlTm9uTnVsbCgpKSkgOiBudWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdQVVF1ZXVlKFdURk1vdmUocXVldWUpKSk7CiB9CiAKLVdlYkdQVVF1ZXVlOjpXZWJH
UFVRdWV1ZShSZWY8R1BVUXVldWU+JiYgcXVldWUpCitXZWJHUFVRdWV1ZTo6V2ViR1BVUXVldWUo
UmVmUHRyPEdQVVF1ZXVlPiYmIHF1ZXVlKQogICAgIDogbV9xdWV1ZShXVEZNb3ZlKHF1ZXVlKSkK
IHsKIH0KIAogdm9pZCBXZWJHUFVRdWV1ZTo6c3VibWl0KGNvbnN0IFZlY3RvcjxSZWZQdHI8V2Vi
R1BVQ29tbWFuZEJ1ZmZlcj4+JiBidWZmZXJzKQogeworICAgIGlmICghbV9xdWV1ZSkgeworICAg
ICAgICBMT0coV2ViR1BVLCAiR1BVUXVldWU6OnN1Ym1pdCgpOiBJbnZhbGlkIG9wZXJhdGlvbiEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBWZWN0b3I8UmVmPEdQVUNvbW1hbmRCdWZm
ZXI+PiBncHVCdWZmZXJzOwogICAgIGdwdUJ1ZmZlcnMucmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlcnMu
c2l6ZSgpKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1
ZS5oCmluZGV4IGYwYTc2ZjgxZGZjYTYxYzhiMWUwZDgyNTdhM2U2ODgyNzU1MzFiYWEuLjg5ODky
MjdlNDBiODI5ZTE3MDE0ZjlmOGMzZGM0ODQ3MWY1MzM4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBXZWJH
UFVDb21tYW5kQnVmZmVyOwogCiBjbGFzcyBXZWJHUFVRdWV1ZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYkdQVVF1ZXVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxXZWJHUFVRdWV1ZT4g
Y3JlYXRlKFJlZlB0cjxHUFVRdWV1ZT4mJik7CisgICAgc3RhdGljIFJlZjxXZWJHUFVRdWV1ZT4g
Y3JlYXRlKFJlZlB0cjxHUFVRdWV1ZT4mJik7CiAKICAgICB2b2lkIHN1Ym1pdChjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+PiYpOwogCkBAIC00Nyw5ICs0Nyw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpIHsgbV9xdWV1ZS0+
c2V0TGFiZWwobGFiZWwpOyB9CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUXVldWUoUmVmPEdQVVF1
ZXVlPiYmKTsKKyAgICBXZWJHUFVRdWV1ZShSZWZQdHI8R1BVUXVldWU+JiYpOwogCi0gICAgUmVm
PEdQVVF1ZXVlPiBtX3F1ZXVlOworICAgIFJlZlB0cjxHUFVRdWV1ZT4gbV9xdWV1ZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcAppbmRleCA1ZmMx
ZmJkYTI5MmVjN2YxNjExODIzYTRlNjM5NzkxNjQ2MDk4ZGY4Li5iZjQ4ZTgzYWM5Y2IwYmNiNzY1
ZDQ0MGY1MTM1YTg2ZmNlYzAxN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCkBAIC02Miw3
ICs2Miw3IEBAIE9wdGlvbmFsPEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yPiBXZWJHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVUmVuZGVyCiAgICAgICAgICAgICBMT0coV2ViR1BV
LCAiR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6IEludmFsaWQgYXR0YWNobWVudCBpbiBHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvciEiKTsKICAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgICAgIH0KLSAgICAgICAgZ3B1Q29sb3JBdHRhY2htZW50cy5hcHBl
bmQoR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgeyBjb2xvckF0dGFjaG1l
bnQuYXR0YWNobWVudC0+dGV4dHVyZSgpLnJlbGVhc2VOb25OdWxsKCksIGNvbG9yQXR0YWNobWVu
dCB9KTsKKyAgICAgICAgZ3B1Q29sb3JBdHRhY2htZW50cy5hcHBlbmQoR1BVUmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudERlc2NyaXB0b3IgeyBtYWtlUmVmKCpjb2xvckF0dGFjaG1lbnQuYXR0YWNo
bWVudC0+dGV4dHVyZSgpKSwgY29sb3JBdHRhY2htZW50IH0pOwogICAgIH0KIAogICAgIE9wdGlv
bmFsPEdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50RGVzY3JpcHRvcj4gZ3B1RGVw
dGhBdHRhY2htZW50OwpAQCAtNzQsNyArNzQsNyBAQCBPcHRpb25hbDxHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvcj4gV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OnRyeUNyZWF0ZUdQVVJlbmRlcgog
ICAgICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOiBJbnZhbGlk
IGF0dGFjaG1lbnQgaW4gR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnREZXNjcmlw
dG9yISIpOwogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQotICAg
ICAgICBncHVEZXB0aEF0dGFjaG1lbnQgPSBHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNo
bWVudERlc2NyaXB0b3IgeyBkZXB0aFN0ZW5jaWxBdHRhY2htZW50LT5hdHRhY2htZW50LT50ZXh0
dXJlKCkucmVsZWFzZU5vbk51bGwoKSwgKmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQgfTsKKyAgICAg
ICAgZ3B1RGVwdGhBdHRhY2htZW50ID0gR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnREZXNjcmlwdG9yIHsgbWFrZVJlZigqZGVwdGhTdGVuY2lsQXR0YWNobWVudC0+YXR0YWNobWVu
dC0+dGV4dHVyZSgpKSwgKmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQgfTsKICAgICB9CiAKICAgICBy
ZXR1cm4gR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IgeyBXVEZNb3ZlKGdwdUNvbG9yQXR0YWNobWVu
dHMpLCBXVEZNb3ZlKGdwdURlcHRoQXR0YWNobWVudCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAppbmRl
eCBiMDAxNDgwMGQ4OGM1Nzk4MThiNmUyMzM4ZTIzNTA5ZjIwZjljZWU1Li5iNjAwODFhNzgzMTJm
NzE3NzliM2UwNWYwZWFlOTE4YTE2ZjYwNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCkBAIC05Miw3
ICs5Miw3IEBAIHZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMo
dW5zaWduZWQgbG9uZyBzdGFydFNsb3QsIFZlY3RvcjxSCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICBncHVCdWZmZXJzLnVuY2hlY2tlZEFwcGVuZChidWZmZXItPmJ1
ZmZlcigpLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBncHVCdWZmZXJzLnVuY2hlY2tlZEFw
cGVuZChtYWtlUmVmKCpidWZmZXItPmJ1ZmZlcigpKSk7CiAgICAgfQogCiAgICAgbV9wYXNzRW5j
b2Rlci0+c2V0VmVydGV4QnVmZmVycyhzdGFydFNsb3QsIFdURk1vdmUoZ3B1QnVmZmVycyksIFdU
Rk1vdmUob2Zmc2V0cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVU2FtcGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2FtcGxlci5oCmluZGV4IDNiNTkzZDAzZGQ5MWE4MjJiNGZlMjIzN2E1ZmJkZjE5MzI1Mzg4Yzku
LjM0MjQ5NjZjNjk3YTU2NTU4YzY2MzRjYmM0Y2YzN2YzZDI1ZWEwNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAg
Y2xhc3MgV2ViR1BVU2FtcGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNhbXBsZXI+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdQVVNhbXBsZXI+IGNyZWF0ZShSZWZQdHI8R1BV
U2FtcGxlcj4mJik7CiAKLSAgICBHUFVTYW1wbGVyKiBzYW1wbGVyKCkgY29uc3QgeyByZXR1cm4g
bV9zYW1wbGVyLmdldCgpOyB9CisgICAgY29uc3QgR1BVU2FtcGxlciogc2FtcGxlcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2FtcGxlci5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFdlYkdQVVNhbXBs
ZXIoUmVmUHRyPEdQVVNhbXBsZXI+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKaW5kZXggOTk0YzJlY2EwYTk4YmM1ZjZk
MzY0ZDkzNjA5ZGY5Y2QyYTFjN2YzZC4uZWU4NWY5MmFiYzlmYWIzMTYyZjYzYjhiN2NhMGQ4YjAx
YjQzN2M5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2hhZGVyTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVTaGFkZXJNb2R1bGUuY3BwCkBAIC0zMCwxNSArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1SZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0
ZShSZWY8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSkKK1JlZjxXZWJHUFVTaGFkZXJNb2R1bGU+
IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYgbW9k
dWxlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVNoYWRlck1vZHVsZShXVEZN
b3ZlKG1vZHVsZSkpKTsKIH0KIAotV2ViR1BVU2hhZGVyTW9kdWxlOjpXZWJHUFVTaGFkZXJNb2R1
bGUoUmVmPEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUpCitXZWJHUFVTaGFkZXJNb2R1bGU6Oldl
YkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSkKICAgICA6
IG1fbW9kdWxlKFdURk1vdmUobW9kdWxlKSkKIHsKLSAgICBVTlVTRURfUEFSQU0obV9tb2R1bGUp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCmluZGV4IDY0NjYwYjMxZTQ1NmZmYTA4
MDU2ZGVlNTViNmNhZDQ1YjMzMzc4ZjAuLjgzNzcwNTNkMWFjZTcyMzkwOWNiM2M4OTYyN2Y0ZDhj
NjJiMWVhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVNoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVNoYWRlck1vZHVsZS5oCkBAIC0zNiwxNCArMzYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBXZWJHUFVTaGFkZXJNb2R1bGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVTaGFk
ZXJNb2R1bGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4g
Y3JlYXRlKFJlZjxHUFVTaGFkZXJNb2R1bGU+JiYpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVU2hh
ZGVyTW9kdWxlPiBjcmVhdGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJik7CiAKLSAgICBjb25z
dCBHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLnB0cigp
OyB9CisgICAgY29uc3QgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBjb25zdCB7IHJldHVybiBt
X21vZHVsZS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIFdlYkdQVVNoYWRlck1vZHVsZShSZWY8
R1BVU2hhZGVyTW9kdWxlPiYmKTsKKyAgICBXZWJHUFVTaGFkZXJNb2R1bGUoUmVmUHRyPEdQVVNo
YWRlck1vZHVsZT4mJik7CiAKLSAgICBSZWY8R1BVU2hhZGVyTW9kdWxlPiBtX21vZHVsZTsKKyAg
ICBSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiBtX21vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVN3YXBDaGFpbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENo
YWluLmgKaW5kZXggZmY2YzMwNTMyY2Y3YWRkYjMzOTI2ZTM0YTQwNDE2ZWQ3Yjk2NjEwYS4uNzhh
MWUwZGY2NDgwNGYxMTE5ZjMxNWUzMGUxYTA2MTA4YzM0MjdiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmgKQEAgLTQwLDcgKzQwLDcgQEAg
Y2xhc3MgV2ViR1BVU3dhcENoYWluIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVU3dhcENoYWlu
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVTd2FwQ2hhaW4+IGNyZWF0ZShSZWZQ
dHI8R1BVU3dhcENoYWluPiYmKTsKIAotICAgIEdQVVN3YXBDaGFpbiogc3dhcENoYWluKCkgY29u
c3QgeyByZXR1cm4gbV9zd2FwQ2hhaW4uZ2V0KCk7IH0KKyAgICBHUFVTd2FwQ2hhaW4qIHN3YXBD
aGFpbigpIHsgcmV0dXJuIG1fc3dhcENoYWluLmdldCgpOyB9CiAKICAgICBSZWY8V2ViR1BVVGV4
dHVyZT4gZ2V0Q3VycmVudFRleHR1cmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVGV4dHVyZS5oCmluZGV4IGM4YzQ5ZmY4N2UxY2I2MzEyMWIwZmM5MTc3ZTFh
YTZkMDY4NGVlNmMuLjZmZDU4YzI2NDJmY2M2YTYyZjM3MmFjYjRhMjczOGUxYzZiNzI1MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmgKQEAgLTM5
LDcgKzM5LDcgQEAgY2xhc3MgV2ViR1BVVGV4dHVyZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQ
VVRleHR1cmU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdQVVRleHR1cmU+IGNyZWF0
ZShSZWZQdHI8R1BVVGV4dHVyZT4mJik7CiAKLSAgICBSZWZQdHI8R1BVVGV4dHVyZT4gdGV4dHVy
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorICAgIEdQVVRleHR1cmUqIHRleHR1cmUo
KSB7IHJldHVybiBtX3RleHR1cmUuZ2V0KCk7IH0KIAogICAgIFJlZjxXZWJHUFVUZXh0dXJlVmll
dz4gY3JlYXRlRGVmYXVsdFZpZXcoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5oCmluZGV4IGM1MzBh
MjNkZDE1ODJlNjMwMzRlODllOTQ2MDA4NTQ5ZGE5YWIzNzMuLmQyNTBlMjE4NGM1MjNjZjg1ZmRl
ZDZhYmRjZmViZmMyMzZmMTI5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxXZWJHUFVUZXh0dXJlVmlldz4gY3JlYXRlKFJlZlB0cjxHUFVUZXh0dXJlPiYm
KTsKICAgICB+V2ViR1BVVGV4dHVyZVZpZXcoKSB7IGRlc3Ryb3koKTsgfQogCi0gICAgUmVmUHRy
PEdQVVRleHR1cmU+IHRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KKyAgICBH
UFVUZXh0dXJlKiB0ZXh0dXJlKCkgeyByZXR1cm4gbV90ZXh0dXJlLmdldCgpOyB9CiAKICAgICB2
b2lkIGRlc3Ryb3koKTsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDg4NzJhMzJhYzU1MGFh
YThkNmY1YzM1NzhlOGY0ZWIxMWQwNjE4ZDAuLmUyNzUzMjlkN2I1NTBhNjk4NTdkNjQxNWNhZTM1
YmFkMTZjYzY3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNTgsNiArMzU4LDcgQEAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVQnVmZmVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZUxheW91dC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNw
cAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYmMxODgzZDkxMzFlY2Uz
ZjQxYWU0YTQ4NWFhOGZmZTIxMjE0ZGJhLi4yZDcyOGE3YWJkYTJmNjgzNDU0MDIwODNmYTc1NzU0
ZmZiNjU4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMzk5Miw2ICsxMzk5Miw3IEBACiAJCUQwMDMyODg2MjFDOUE0RTUw
MDYyMkFBNiAvKiBHUFVQaXBlbGluZUxheW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQaXBlbGlu
ZUxheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDAzMjg4NzIxQzlBNEU1
MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BV
UGlwZWxpbmVMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDAzOTE0
MTIyMjQ4RDQwMDA5ODk5OEMgLyogR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEMDA0ODdEMjIyNDU3QkVBMDBFRUQ3RDkgLyogV2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
MEY1OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NV2luZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMEY1
OTQxMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRE9NV2luZG93V2ViR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9N
V2luZG93V2ViR1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MjMzLDYg
KzI2MjM0LDcgQEAKIAkJCQlEMDVBOTlFNTIxQzlCRjJDMDAwMzJCNzUgLyogV2ViR1BVUGlwZWxp
bmVMYXlvdXQuY3BwICovLAogCQkJCUQwNUE5OUU0MjFDOUJGMkMwMDAzMkI3NSAvKiBXZWJHUFVQ
aXBlbGluZUxheW91dC5oICovLAogCQkJCUQwNUE5OUU2MjFDOUJGMkMwMDAzMkI3NSAvKiBXZWJH
UFVQaXBlbGluZUxheW91dC5pZGwgKi8sCisJCQkJRDAwNDg3RDIyMjQ1N0JFQTAwRUVEN0Q5IC8q
IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJRDA1QTk5RTEyMUM5
QjUwRjAwMDMyQjc1IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oICovLAogCQkJ
CUQwNUE5OUUyMjFDOUI1MEYwMDAzMkI3NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IuaWRsICovLAogCQkJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oICovLApAQCAtMjYyNzMsNiArMjYyNzUsNyBAQAogCQkJCUQwRUFD
Rjg4MjE5M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5jcHAgKi8sCiAJCQkJRDBF
QUNGODcyMTkzRUU0RTAwMEZBNzVDIC8qIFdlYkdQVVRleHR1cmVWaWV3LmggKi8sCiAJCQkJRDBF
QUNGODkyMTkzRUU0RTAwMEZBNzVDIC8qIFdlYkdQVVRleHR1cmVWaWV3LmlkbCAqLywKKwkJCQlE
MDA0ODdEMjIyNDU3QkVBMDBFRUQ3RDkgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2ViZ3B1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCaW5kR3JvdXBCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwQmluZGluZy5oCmluZGV4IDQ3YmQ3YWY2MDJmYTM4ZDEyOTQ0YmMzNTI5
ZGRmODZiZjc0N2U3ZDQuLmY2ZmI0ZTUwYmZhZTZhNDBmNDgwN2NiOWI4NDhkZmM5M2M3MDQ1MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXBCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cEJpbmRpbmcuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXVzaW5nIEdQVUJpbmRpbmdSZXNvdXJjZSA9IFZhcmlhbnQ8UmVmPEdQVVNhbXBs
ZXI+LCBSZWY8R1BVVGV4dHVyZT4sIEdQVUJ1ZmZlckJpbmRpbmc+OwordXNpbmcgR1BVQmluZGlu
Z1Jlc291cmNlID0gVmFyaWFudDxSZWY8Y29uc3QgR1BVU2FtcGxlcj4sIFJlZjxHUFVUZXh0dXJl
PiwgR1BVQnVmZmVyQmluZGluZz47CiAKIHN0cnVjdCBHUFVCaW5kR3JvdXBCaW5kaW5nIHsKICAg
ICB1bnNpZ25lZCBsb25nIGJpbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cERlc2NyaXB0b3IuaAppbmRleCA1
MDcxMWZlNzM4ODRmNzhlNDllODY3MGNhOTQyZjk5OGY0OTk0ZmViLi4xMTA4YTk3OGE5ZTg2YTFl
Yjk2ZTJmY2ZkZTk0NWJjZmNhZWFkNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAg
LTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJpbmRHcm91
cERlc2NyaXB0b3IgewotICAgIFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGxheW91dDsKKyAgICBS
ZWY8Y29uc3QgR1BVQmluZEdyb3VwTGF5b3V0PiBsYXlvdXQ7CiAgICAgVmVjdG9yPEdQVUJpbmRH
cm91cEJpbmRpbmc+IGJpbmRpbmdzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCmluZGV4IDBiNjQyNjk2OWQ5M2ZmZGZmZDBlZGU1
ZDAyOTFiMjIwMDIwOTljOWUuLjAxZjcwNzk3NzFhYjZlZjFjNTU5NzU3ZThmMTk1NTJiNDU5MDYz
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVm
ZmVyLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogCiAgICAgfkdQVUJ1ZmZlcigpOwogCi0g
ICAgc3RhdGljIFJlZlB0cjxHUFVCdWZmZXI+IHRyeUNyZWF0ZShSZWY8R1BVRGV2aWNlPiYmLCBH
UFVCdWZmZXJEZXNjcmlwdG9yJiYpOworICAgIHN0YXRpYyBSZWZQdHI8R1BVQnVmZmVyPiB0cnlD
cmVhdGUoUmVmPEdQVURldmljZT4mJiwgY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYpOwogCiAg
ICAgUGxhdGZvcm1CdWZmZXIgKnBsYXRmb3JtQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybUJ1ZmZlci5nZXQoKTsgfQogICAgIHVuc2lnbmVkIGxvbmcgYnl0ZUxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fYnl0ZUxlbmd0aDsgfQpAQCAtMTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYsIE9w
dGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+KTsKIAotICAgIEdQVUJ1ZmZlcihQbGF0Zm9y
bUJ1ZmZlclNtYXJ0UHRyJiYsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBPcHRpb25TZXQ8
R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiwgUmVmPEdQVURldmljZT4mJik7CisgICAgR1BVQnVmZmVy
KFBsYXRmb3JtQnVmZmVyU21hcnRQdHImJiwgdW5zaWduZWQgbG9uZywgT3B0aW9uU2V0PEdQVUJ1
ZmZlclVzYWdlOjpGbGFncz4sIFJlZjxHUFVEZXZpY2U+JiYpOwogCiAgICAgSlNDOjpBcnJheUJ1
ZmZlciogc3RhZ2luZ0J1ZmZlckZvclJlYWQoKTsKICAgICBKU0M6OkFycmF5QnVmZmVyKiBzdGFn
aW5nQnVmZmVyRm9yV3JpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5jcHAKaW5kZXggOWJkZjY2NmNkN2YzMDJmNzBiNGYzYzE4YjMx
YmNlOTY3ZjJmNDY0ZC4uMTk2YTUyYmU0YTc0ZDBhYWNjN2E5MGI5OGZlNjk0ZDIwMmY0MDdlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5jcHAKQEAgLTQ4LDE0ICs0OCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0
cjxHUFVCdWZmZXI+IEdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVyKEdQVUJ1ZmZlckRlc2NyaXB0
b3ImJiBkZXNjcmlwdG9yKQorUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVC
dWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1
cm4gR1BVQnVmZmVyOjp0cnlDcmVhdGUobWFrZVJlZigqdGhpcyksIFdURk1vdmUoZGVzY3JpcHRv
cikpOworICAgIHJldHVybiBHUFVCdWZmZXI6OnRyeUNyZWF0ZShtYWtlUmVmKCp0aGlzKSwgZGVz
Y3JpcHRvcik7CiB9CiAKLVJlZlB0cjxHUFVUZXh0dXJlPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZVRl
eHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmUHRyPEdQ
VVRleHR1cmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlRGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVVGV4dHVyZTo6dHJ5
Q3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKKyAgICByZXR1cm4gR1BVVGV4dHVy
ZTo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yKTsKIH0KIAogUmVmUHRyPEdQVVNhbXBsZXI+
IEdQVURldmljZTo6dHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikgY29uc3QKQEAgLTczLDE0ICs3MywxNCBAQCBSZWY8R1BVUGlwZWxpbmVMYXlv
dXQ+IEdQVURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdAogICAgIHJldHVybiBHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKFdURk1vdmUoZGVzY3Jp
cHRvcikpOwogfQogCi1SZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiBHUFVEZXZpY2U6OmNyZWF0ZVNo
YWRlck1vZHVsZShHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QK
K1JlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IEdQVURldmljZTo6dHJ5Q3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIEdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGRlc2NyaXB0
b3IpKTsKKyAgICByZXR1cm4gR1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUoKnRoaXMsIGRlc2Ny
aXB0b3IpOwogfQogCi1SZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVURldmljZTo6Y3JlYXRl
UmVuZGVyUGlwZWxpbmUoR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikg
Y29uc3QKK1JlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVSZW5k
ZXJQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdU
Rk1vdmUoZGVzY3JpcHRvcikpOworICAgIHJldHVybiBHUFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3Jl
YXRlKCp0aGlzLCBkZXNjcmlwdG9yKTsKIH0KIAogUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IEdQ
VURldmljZTo6dHJ5Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0CkBAIC05NCw3ICs5NCw3IEBA
IFJlZlB0cjxHUFVTd2FwQ2hhaW4+IEdQVURldmljZTo6dHJ5Q3JlYXRlU3dhcENoYWluKGNvbnN0
IEdQVVN3YXBDaGFpbkRlc2NyaXB0b3ImCiAgICAgcmV0dXJuIG1fc3dhcENoYWluOwogfQogCi1S
ZWZQdHI8R1BVUXVldWU+IEdQVURldmljZTo6Z2V0UXVldWUoKSBjb25zdAorUmVmUHRyPEdQVVF1
ZXVlPiBHUFVEZXZpY2U6OnRyeUdldFF1ZXVlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcXVldWUp
CiAgICAgICAgIG1fcXVldWUgPSBHUFVRdWV1ZTo6dHJ5Q3JlYXRlKCp0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAppbmRleCBhYmE5
NTRjMWE0YzM1ZmQyY2I5ZDEyYTk3NGZkYzFiNjA2MGRiYzU5Li4wMmUyYzI4YzdhMWI1OTM2YmRl
MzNhZDJiNGI3NWViYmE0Yjc4YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC02MSwyOCArNjEsMjggQEAgdXNpbmcgUGxhdGZv
cm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+OwogCiBjbGFzcyBHUFVEZXZp
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
R1BVRGV2aWNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVEZXZpY2U+IHRyeUNy
ZWF0ZShPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiYpOworICAgIHN0YXRpYyBS
ZWZQdHI8R1BVRGV2aWNlPiB0cnlDcmVhdGUoY29uc3QgT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0
ZXJPcHRpb25zPiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKEdQ
VUJ1ZmZlckRlc2NyaXB0b3ImJik7Ci0gICAgUmVmUHRyPEdQVVRleHR1cmU+IHRyeUNyZWF0ZVRl
eHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVUJ1ZmZl
cj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImKTsKKyAgICBSZWZQ
dHI8R1BVVGV4dHVyZT4gdHJ5Q3JlYXRlVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlRGVzY3JpcHRv
ciYpIGNvbnN0OwogICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVhdGVTYW1wbGVyKGNvbnN0
IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWZQdHI8R1BVQmluZEdyb3Vw
TGF5b3V0PiB0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZjxHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlw
ZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogCi0gICAg
UmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1vZHVs
ZURlc2NyaXB0b3ImJikgY29uc3Q7Ci0gICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBjcmVh
dGVSZW5kZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJikgY29uc3Q7Cisg
ICAgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IEdQ
VVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKKyAgICBSZWZQdHI8R1BVUmVuZGVyUGlw
ZWxpbmU+IHRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IHRyeUNyZWF0
ZUNvbW1hbmRCdWZmZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxHUFVTd2FwQ2hhaW4+IHRyeUNy
ZWF0ZVN3YXBDaGFpbihjb25zdCBHUFVTd2FwQ2hhaW5EZXNjcmlwdG9yJiwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KSBjb25zdDsKIAotICAgIFJlZlB0cjxHUFVRdWV1ZT4gZ2V0UXVldWUoKSBjb25z
dDsKKyAgICBSZWZQdHI8R1BVUXVldWU+IHRyeUdldFF1ZXVlKCkgY29uc3Q7CiAgICAgUGxhdGZv
cm1EZXZpY2UqIHBsYXRmb3JtRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURldmlj
ZS5nZXQoKTsgfQogICAgIEdQVVN3YXBDaGFpbiogc3dhcENoYWluKCkgY29uc3QgeyByZXR1cm4g
bV9zd2FwQ2hhaW4uZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVEZXZpY2UoUGxhdGZvcm1E
ZXZpY2VTbWFydFB0ciYmKTsKKyAgICBleHBsaWNpdCBHUFVEZXZpY2UoUGxhdGZvcm1EZXZpY2VT
bWFydFB0ciYmKTsKIAogICAgIFBsYXRmb3JtRGV2aWNlU21hcnRQdHIgbV9wbGF0Zm9ybURldmlj
ZTsKICAgICBtdXRhYmxlIFJlZlB0cjxHUFVRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQu
Y3BwCmluZGV4IDk1ZGZiYTEyMWVmMDg0ODc5YWQ2ZWFmNjk5YmVmOWE3ZGQ1NjNiYTAuLmNiMTk5
M2E5ZTJmMDBiNDJlNDM4NDMxN2NhNjVkYTRlZDRkZWExZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNw
cApAQCAtMzIsMTEgKzMyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPEdQVVBpcGVs
aW5lTGF5b3V0PiBHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKEdQVVBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvciYmIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUGlw
ZWxpbmVMYXlvdXQoV1RGTW92ZShkZXNjcmlwdG9yKSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEdQVVBpcGVsaW5lTGF5b3V0KFdURk1vdmUoZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRz
KSkpOwogfQogCi1HUFVQaXBlbGluZUxheW91dDo6R1BVUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKLSAgICA6IG1fYmluZEdyb3VwTGF5b3V0
cyhXVEZNb3ZlKGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykpCitHUFVQaXBlbGluZUxheW91
dDo6R1BVUGlwZWxpbmVMYXlvdXQoVmVjdG9yPFJlZjxjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+
PiYmIGxheW91dHMpCisgICAgOiBtX2JpbmRHcm91cExheW91dHMoV1RGTW92ZShsYXlvdXRzKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVBpcGVsaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUGlwZWxpbmVMYXlvdXQuaAppbmRleCBlOGM2YWI5ZWM3YWNmODVjYTFlYWIwMGQ5YzA5
NzJhMjM3MDBmY2EwLi5lNzk5OTQ2ZmNiYTAxMmNjZWQ0NmE3ZjE3MjM5Mjk2NzQ1OTE4ZmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxp
bmVMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UGlwZWxpbmVMYXlvdXQuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAK
ICNpbmNsdWRlICJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKLQogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC0zOCwxMiArMzcsMTIg
QEAgY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVQaXBlbGlu
ZUxheW91dD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IGNy
ZWF0ZShHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJik7CiAKLSAgICBjb25zdCBWZWN0b3I8
UmVmUHRyPGNvbnN0IEdQVUJpbmRHcm91cExheW91dD4+JiBiaW5kR3JvdXBMYXlvdXRzKCkgY29u
c3QgeyByZXR1cm4gbV9iaW5kR3JvdXBMYXlvdXRzOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZjxj
b25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+PiYgYmluZEdyb3VwTGF5b3V0cygpIGNvbnN0IHsgcmV0
dXJuIG1fYmluZEdyb3VwTGF5b3V0czsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEdQVVBp
cGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmKTsKKyAgICBleHBsaWNp
dCBHUFVQaXBlbGluZUxheW91dChWZWN0b3I8UmVmPGNvbnN0IEdQVUJpbmRHcm91cExheW91dD4+
JiYpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+PiBtX2Jp
bmRHcm91cExheW91dHM7CisgICAgVmVjdG9yPFJlZjxjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+
PiBtX2JpbmRHcm91cExheW91dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggM2EwOTE4OTkzODU4MmJjMjc4YzE1
OGZkYTFiMjc5YzE4Njc3NTU2OS4uMzhhMWVlMmM3NzUxZjQ3MWZkNzU0NTgxMGI3NzhhNTQzMjJm
NTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaApAQCAtMzQsNyArMzQs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yIHsKLSAgICBWZWN0b3I8UmVmUHRyPGNvbnN0IEdQVUJpbmRHcm91cExheW91dD4+IGJp
bmRHcm91cExheW91dHM7CisgICAgVmVjdG9yPFJlZjxjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXQ+
PiBiaW5kR3JvdXBMYXlvdXRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVs
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlw
ZWxpbmUuaAppbmRleCA3ZWZmNzU0OTI0ZTZhMGZmM2EyMzBmZTNiYjdjNTFjNTM5ODYzNmU1Li4x
YTUyMTc2YmIyMTZmOWQxNGI2YTdhYjNhMGIzMjg2MzlhNjIyNjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUu
aApAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lU21hcnRQdHIg
PSBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT47CiAKIGNsYXNzIEdQVVJlbmRlclBp
cGVsaW5lIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyUGlwZWxpbmU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiwgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYpOworICAgIHN0YXRpYyBSZWZQdHI8
R1BVUmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsKIAogI2lmIFVTRShNRVRBTCkKICAgICBNVExEZXB0
aFN0ZW5jaWxTdGF0ZSAqZGVwdGhTdGVuY2lsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlcHRo
U3RlbmNpbFN0YXRlLmdldCgpOyB9CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICNpZiBVU0UoTUVUQUwpCi0gICAgR1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERl
cHRoU3RlbmNpbFN0YXRlPiYmLCBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lU21hcnRQdHImJiwgR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYpOworICAgIEdQVVJlbmRlclBpcGVsaW5lKFJldGFp
blB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiwgUGxhdGZvcm1SZW5kZXJQaXBlbGluZVNtYXJ0
UHRyJiYsIEdQVVByaW1pdGl2ZVRvcG9sb2d5KTsKIAogICAgIFJldGFpblB0cjxNVExEZXB0aFN0
ZW5jaWxTdGF0ZT4gbV9kZXB0aFN0ZW5jaWxTdGF0ZTsKICNlbmRpZiAvLyBVU0UoTUVUQUwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVy
TW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVy
TW9kdWxlLmgKaW5kZXggZTlhODdiYmZlM2ZjOWFlNjYzYTQyMWEzZTVhZTQyMmM5MGMxN2VlMi4u
Y2UzMzQxZTRmYTc3NDIxYTgzZWYxMGY2ODE0YTE5ZjgzZGM5OGVhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTaGFkZXJNb2R1bGUuaApA
QCAtNDQsNyArNDQsNyBAQCB1c2luZyBQbGF0Zm9ybVNoYWRlck1vZHVsZVNtYXJ0UHRyID0gUmV0
YWluUHRyPE1UTExpYnJhcnk+OwogCiBjbGFzcyBHUFVTaGFkZXJNb2R1bGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxHUFVTaGFkZXJNb2R1bGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQ
VVNoYWRlck1vZHVsZT4gY3JlYXRlKGNvbnN0IEdQVURldmljZSYsIEdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3ImJik7CisgICAgc3RhdGljIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IHRyeUNyZWF0
ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJik7CiAK
ICAgICBQbGF0Zm9ybVNoYWRlck1vZHVsZSogcGxhdGZvcm1TaGFkZXJNb2R1bGUoKSBjb25zdCB7
IHJldHVybiBtX3dobHNsU291cmNlLmlzTnVsbCgpID8gbV9wbGF0Zm9ybVNoYWRlck1vZHVsZS5n
ZXQoKSA6IG51bGxwdHI7IH0KICAgICBjb25zdCBTdHJpbmcmIHdobHNsU291cmNlKCkgY29uc3Qg
eyByZXR1cm4gbV93aGxzbFNvdXJjZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tCmlu
ZGV4IDMxNTA1ZDVmMjZmN2E5MTM1YmJkNThhMjIxNGI0MTQxYjc5ODFhYTkuLjk2NjYyOWYwYWIz
NWNhOGNlZWU3MzJhOTUxNjRlNmQ0NGMxOGNjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0
YWwubW0KQEAgLTc3LDIxICs3NywyMSBAQCBzdGF0aWMgdm9pZCBzZXRCdWZmZXJPbkVuY29kZXIo
TVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJ1ZgogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAgICAgCi1zdGF0aWMgUmVmUHRyPEdQVVNhbXBs
ZXI+IHRyeUdldFJlc291cmNlQXNTYW1wbGVyKGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYgcmVz
b3VyY2UsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSkKK3N0YXRpYyBNVExTYW1wbGVy
U3RhdGUgKnRyeUdldFJlc291cmNlQXNNdGxTYW1wbGVyKGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJj
ZSYgcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSkKIHsKICNpZiBMT0df
RElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKICNlbmRpZgotICAgIGlm
ICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8R1BVU2FtcGxlcj4+KHJlc291cmNlKSkgewor
ICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8Y29uc3QgR1BVU2FtcGxlcj4+KHJl
c291cmNlKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiJXM6IFJlc291cmNlIGlzIG5vdCBhIEdQ
VVNhbXBsZXIhIiwgZnVuY3Rpb25OYW1lKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQotICAgIGF1dG8mIHNhbXBsZXJSZWYgPSBXVEY6OmdldDxSZWY8R1BVU2FtcGxlcj4+KHJlc291
cmNlKTsKLSAgICBpZiAoIXNhbXBsZXJSZWYtPnBsYXRmb3JtU2FtcGxlcigpKSB7CisgICAgYXV0
byBzYW1wbGVyU3RhdGUgPSBXVEY6OmdldDxSZWY8Y29uc3QgR1BVU2FtcGxlcj4+KHJlc291cmNl
KS0+cGxhdGZvcm1TYW1wbGVyKCk7CisgICAgaWYgKCFzYW1wbGVyU3RhdGUpIHsKICAgICAgICAg
TE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIE1UTFNhbXBsZXJTdGF0ZSBpbiBHUFVTYW1wbGVyIGJp
bmRpbmchIiwgZnVuY3Rpb25OYW1lKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQot
ICAgIHJldHVybiBzYW1wbGVyUmVmLmNvcHlSZWYoKTsKKyAgICByZXR1cm4gc2FtcGxlclN0YXRl
OwogfQogCiBzdGF0aWMgdm9pZCBzZXRTYW1wbGVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2Rl
ciAqYXJndW1lbnRFbmNvZGVyLCBNVExTYW1wbGVyU3RhdGUgKnNhbXBsZXIsIHVuc2lnbmVkIGlu
ZGV4KQpAQCAtMTg2LDEzICsxODYsMTMgQEAgUmVmUHRyPEdQVUJpbmRHcm91cD4gR1BVQmluZEdy
b3VwOjp0cnlDcmVhdGUoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3IKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgR1BVQmluZGluZ1R5cGU6OlNh
bXBsZXI6IHsKLSAgICAgICAgICAgIGF1dG8gc2FtcGxlclJlc291cmNlID0gdHJ5R2V0UmVzb3Vy
Y2VBc1NhbXBsZXIocmVzb3VyY2VCaW5kaW5nLnJlc291cmNlLCBmdW5jdGlvbk5hbWUpOwotICAg
ICAgICAgICAgaWYgKCFzYW1wbGVyUmVzb3VyY2UpCisgICAgICAgICAgICBhdXRvIHNhbXBsZXIg
PSB0cnlHZXRSZXNvdXJjZUFzTXRsU2FtcGxlcihyZXNvdXJjZUJpbmRpbmcucmVzb3VyY2UsIGZ1
bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAoIXNhbXBsZXIpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5
ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCi0gICAgICAgICAgICAgICAgc2V0
U2FtcGxlck9uRW5jb2Rlcih2ZXJ0ZXhFbmNvZGVyLCBzYW1wbGVyUmVzb3VyY2UtPnBsYXRmb3Jt
U2FtcGxlcigpLCByZXNvdXJjZUJpbmRpbmcuYmluZGluZyk7CisgICAgICAgICAgICAgICAgc2V0
U2FtcGxlck9uRW5jb2Rlcih2ZXJ0ZXhFbmNvZGVyLCBzYW1wbGVyLCByZXNvdXJjZUJpbmRpbmcu
YmluZGluZyk7CiAgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BV
U2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkKLSAgICAgICAgICAgICAgICBzZXRTYW1w
bGVyT25FbmNvZGVyKGZyYWdtZW50RW5jb2Rlciwgc2FtcGxlclJlc291cmNlLT5wbGF0Zm9ybVNh
bXBsZXIoKSwgcmVzb3VyY2VCaW5kaW5nLmJpbmRpbmcpOworICAgICAgICAgICAgICAgIHNldFNh
bXBsZXJPbkVuY29kZXIoZnJhZ21lbnRFbmNvZGVyLCBzYW1wbGVyLCByZXNvdXJjZUJpbmRpbmcu
YmluZGluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEdQ
VUJpbmRpbmdUeXBlOjpTYW1wbGVkVGV4dHVyZTogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tCmlu
ZGV4IDBhMzdlYzg3MjQ4M2EyZmQ0MzNiYjY1ODI2NTFkZTljMTAyZDgzYjIuLjc2ZGE4YTE5Y2Qx
MWM2ZDRjOGY1MWQ0NTY2MDk3ZTkzNjc2ODZiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0K
QEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UoY29u
c3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZmZXIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURl
dmljZT4mJiBkZXZpY2UsIEdQVUJ1ZmZlckRlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorUmVmUHRy
PEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4mJiBkZXZpY2Us
IGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgYXV0byB1c2Fn
ZSA9IE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+Ojpmcm9tUmF3KGRlc2NyaXB0b3Iu
dXNhZ2UpOwogICAgIGlmICghdmFsaWRhdGVCdWZmZXJVc2FnZShkZXZpY2UuZ2V0KCksIHVzYWdl
KSkKQEAgLTg4LDEzICs4OCwxMyBAQCBSZWZQdHI8R1BVQnVmZmVyPiBHUFVCdWZmZXI6OnRyeUNy
ZWF0ZShSZWY8R1BVRGV2aWNlPiYmIGRldmljZSwgR1BVQnVmZmVyRGVzY3JpcAogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCdWZm
ZXIoV1RGTW92ZShtdGxCdWZmZXIpLCBkZXNjcmlwdG9yLCB1c2FnZSwgV1RGTW92ZShkZXZpY2Up
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVy
KSwgZGVzY3JpcHRvci5zaXplLCB1c2FnZSwgV1RGTW92ZShkZXZpY2UpKSk7CiB9CiAKLUdQVUJ1
ZmZlcjo6R1BVQnVmZmVyKFJldGFpblB0cjxNVExCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBHUFVC
dWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZs
YWdzPiB1c2FnZSwgUmVmPEdQVURldmljZT4mJiBkZXZpY2UpCitHUFVCdWZmZXI6OkdQVUJ1ZmZl
cihSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGJ1ZmZlciwgdW5zaWduZWQgbG9uZyBzaXplLCBPcHRp
b25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiB1c2FnZSwgUmVmPEdQVURldmljZT4mJiBkZXZp
Y2UpCiAgICAgOiBtX3BsYXRmb3JtQnVmZmVyKFdURk1vdmUoYnVmZmVyKSkKICAgICAsIG1fZGV2
aWNlKFdURk1vdmUoZGV2aWNlKSkKLSAgICAsIG1fYnl0ZUxlbmd0aChkZXNjcmlwdG9yLnNpemUp
CisgICAgLCBtX2J5dGVMZW5ndGgoc2l6ZSkKICAgICAsIG1fdXNhZ2UodXNhZ2UpCiB7CiB9CkBA
IC0xMjEsNiArMTIxLDEwIEBAIEdQVUJ1ZmZlcjo6U3RhdGUgR1BVQnVmZmVyOjpzdGF0ZSgpIGNv
bnN0CiAKIHZvaWQgR1BVQnVmZmVyOjpzZXRTdWJEYXRhKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBj
b25zdCBKU0M6OkFycmF5QnVmZmVyJiBkYXRhKQogeworICAgIE1UTENvbW1hbmRRdWV1ZSAqcXVl
dWU7CisgICAgaWYgKCFtX2RldmljZS0+dHJ5R2V0UXVldWUoKSB8fCAhKHF1ZXVlID0gbV9kZXZp
Y2UtPnRyeUdldFF1ZXVlKCktPnBsYXRmb3JtUXVldWUoKSkpCisgICAgICAgIHJldHVybjsKKyAg
ICAKICAgICBpZiAoIWlzVHJhbnNmZXJEZXN0aW5hdGlvbigpIHx8IHN0YXRlKCkgIT0gU3RhdGU6
OlVubWFwcGVkKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJHUFVCdWZmZXI6OnNldFN1YkRhdGEo
KTogSW52YWxpZCBvcGVyYXRpb24hIik7CiAgICAgICAgIHJldHVybjsKQEAgLTE1Niw3ICsxNjAs
NyBAQCB2b2lkIEdQVUJ1ZmZlcjo6c2V0U3ViRGF0YSh1bnNpZ25lZCBsb25nIG9mZnNldCwgY29u
c3QgSlNDOjpBcnJheUJ1ZmZlciYgZGF0YSkKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKIAotICAgIGF1dG8gY29tbWFuZEJ1ZmZlciA9IHJldGFpblB0cihbbV9kZXZpY2UtPmdl
dFF1ZXVlKCktPnBsYXRmb3JtUXVldWUoKSBjb21tYW5kQnVmZmVyXSk7CisgICAgYXV0byBjb21t
YW5kQnVmZmVyID0gcmV0YWluUHRyKFtxdWV1ZSBjb21tYW5kQnVmZmVyXSk7CiAgICAgYXV0byBi
bGl0RW5jb2RlciA9IHJldGFpblB0cihbY29tbWFuZEJ1ZmZlciBibGl0Q29tbWFuZEVuY29kZXJd
KTsKIAogICAgIFtibGl0RW5jb2RlciBjb3B5RnJvbUJ1ZmZlcjpzdGFnaW5nTXRsQnVmZmVyLmdl
dCgpIHNvdXJjZU9mZnNldDowIHRvQnVmZmVyOm1fcGxhdGZvcm1CdWZmZXIuZ2V0KCkgZGVzdGlu
YXRpb25PZmZzZXQ6b2Zmc2V0IHNpemU6c3RhZ2luZ010bEJ1ZmZlci5nZXQoKS5sZW5ndGhdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KaW5kZXggZTRjNDIzOTc5YTMxZjA5
NDVhZjJmMjAwZmIwMmQ1ZDBkZGI1OTViZC4uMzg1OWU0ZGVjNjU5MGNlMjMyNGEyMGFkODYxZjVj
ZjA4ZTEzNmM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC00
Niw3ICs0Niw3IEBAIFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjp0
cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAotICAgIGF1dG8gZ3B1Q29tbWFuZFF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7
CisgICAgYXV0byBncHVDb21tYW5kUXVldWUgPSBkZXZpY2UudHJ5R2V0UXVldWUoKTsKICAgICBp
ZiAoIWdwdUNvbW1hbmRRdWV1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVEZXZpY2VN
ZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVE
ZXZpY2VNZXRhbC5tbQppbmRleCBkNzhmYzNiZjYyMWNmNjA1ZjgzOWMwOTEwZWRlNTFlNTI2Yzhi
MTcyLi5mNTU5NDdlYmFmMzFmMDk5NDUxYWI2YmVmMWJmMGU5ZjQ2ODRlNDBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVRGV2aWNlTWV0
YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VURldmljZU1ldGFsLm1tCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmUHRyPEdQVURldmljZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGUoT3B0aW9uYWw8R1BVUmVx
dWVzdEFkYXB0ZXJPcHRpb25zPiYmIG9wdGlvbnMpCitSZWZQdHI8R1BVRGV2aWNlPiBHUFVEZXZp
Y2U6OnRyeUNyZWF0ZShjb25zdCBPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiBv
cHRpb25zKQogewogICAgIFJldGFpblB0cjxNVExEZXZpY2U+IGRldmljZVB0cjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCAyMWQ4ZjU3ODVmNDA2MjI4YTFi
NWU5OGZlM2ExYWIzNDhhZTliOGJjLi5kNWZmOTg0MmMwZTdlZGZjMzVmNTZlYWNlNTk2NDYxMjhj
NjRhZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gdHJ5
Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZShjb25zdCBjCiAgICAgcmV0dXJuIHBpcGVsaW5l
OwogfQogCi1SZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYm
IGRlc2NyaXB0b3IpCitSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5l
Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5j
dGlvbk5hbWUgPSAiR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgpIjsKIApAQCAtNDM1LDE0ICs0
MzUsMTMgQEAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6Y3Jl
YXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFUKICAgICBpZiAoIXBpcGVsaW5lKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVy
UGlwZWxpbmUoV1RGTW92ZShkZXB0aFN0ZW5jaWwpLCBXVEZNb3ZlKHBpcGVsaW5lKSwgV1RGTW92
ZShkZXNjcmlwdG9yKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxp
bmUoV1RGTW92ZShkZXB0aFN0ZW5jaWwpLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZGVzY3JpcHRvci5w
cmltaXRpdmVUb3BvbG9neSkpOwogfQogCi1HUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlw
ZWxpbmUoUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiYmIGRlcHRoU3RlbmNpbCwgUmV0
YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIEdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpCitHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVy
UGlwZWxpbmUoUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiYmIGRlcHRoU3RlbmNpbCwg
UmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIEdQVVByaW1pdGl2
ZVRvcG9sb2d5IHRvcG9sb2d5KQogICAgIDogbV9kZXB0aFN0ZW5jaWxTdGF0ZShXVEZNb3ZlKGRl
cHRoU3RlbmNpbCkpCiAgICAgLCBtX3BsYXRmb3JtUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBl
bGluZSkpCi0gICAgLCBtX2xheW91dChXVEZNb3ZlKGRlc2NyaXB0b3IubGF5b3V0KSkKLSAgICAs
IG1fcHJpbWl0aXZlVG9wb2xvZ3koZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9neSkKKyAgICAs
IG1fcHJpbWl0aXZlVG9wb2xvZ3kodG9wb2xvZ3kpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTaGFkZXJNb2R1bGVNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTaGFk
ZXJNb2R1bGVNZXRhbC5tbQppbmRleCAxYWFmNmJmNmFlNGExNTUxOWI3YWZiZWRlNjk1YzVlOGU5
OWU4YWJmLi5iN2Y1NmM4MzI3Y2FhYmIxNDI0OTUwMDRhNjJlOTJjNWQ3MDg5YmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVy
TW9kdWxlTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVNoYWRlck1vZHVsZU1ldGFsLm1tCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gR1BVU2hhZGVyTW9kdWxl
OjpjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3ImJiBkZXNjcmlwdG9yKQorUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gR1BVU2hhZGVyTW9kdWxl
Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVNoYWRlck1vZHVs
ZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgaWYgKCFkZXZpY2UucGxhdGZvcm1EZXZp
Y2UoKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoKTog
SW52YWxpZCBHUFVEZXZpY2UhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmU4ZWZmZjY2Mzc2ODk4OGE1YWJkNzI1MjU5
YjcwMGUxYTk2ZTkyYi4uZmY1NWJhYjU5YTQyOTRiNjg5ODY3NjI4YTI1NjMyZTZjYzZlYjYwMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTAzLTI3ICBKdXN0aW4gRmFuICA8anVzdGluX2Zh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIFN0YW5kYXJkaXplIFdlYiBHUFUgb2Jq
ZWN0IHJlZmVyZW5jZSBjb3VudGluZyBhbmQgY3JlYXRpb24gbG9naWMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjE4MworCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBHUFVTaGFkZXJNb2R1bGUgaXMgbm8gbG9u
Z2VyIG51bGxhYmxlLgorCisgICAgICAgICogd2ViZ3B1L3NoYWRlci1tb2R1bGVzLmh0bWw6CisK
IDIwMTktMDMtMjcgIFNoYXduIFJvYmVydHMgIDxzcm9iZXJ0c0BhcHBsZS5jb20+CiAKICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGlzIGEgZmxh
a3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3NoYWRlci1tb2R1bGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2hhZGVyLW1vZHVsZXMuaHRtbAppbmRleCAxNzI2
ZGNkMTdhMjhlYjRhMWVhZTgzNjE1YzRkNWQ3MWIwZmI5ODVlLi44NzBmODg4ZDFlMTk0Zjg1MDRh
ZDk1YmM4NzkwNGVhNGE3ODYwYjNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvc2hh
ZGVyLW1vZHVsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2hhZGVyLW1vZHVsZXMu
aHRtbApAQCAtMjcsMzUgKzI3LDEwIEBAIGZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZl
cnRleCB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCiB9CiBgCiAKLWNvbnN0IGluY29tcGxldGVTaGFk
ZXJzID0gYAotI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KLSAgICAKLXVzaW5nIG5hbWVzcGFjZSBt
ZXRhbDsKLQotdmVydGV4IFZlcnRleCB2ZXJ0ZXhfbWFpbih1aW50IHZpZCBbW3ZlcnRleF9pZF1d
KQotewotICAgIHJldHVybiBWZXJ0ZXggeyBmbG9hdDQoMCwgMCwgMCwgMSkgfTsKLX0KLQotZnJh
Z21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkK
LXsKLSAgICBycmV0dXJuIHZlcnRleEluLnBvc2l0aW9uOwotfQotYAotCiBwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4gewogICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7
CiAKLSAgICBjb25zdCBzaGFkZXJEZXNjcmlwdG9yMCA9IHsKLSAgICAgICAgY29kZSA6ICJIZWxs
byBXb3JsZCIKLSAgICB9OwotICAgIGxldCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hh
ZGVyTW9kdWxlKHNoYWRlckRlc2NyaXB0b3IwKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNoYWRlck1v
ZHVsZSwgbnVsbCwgIkJhZCBzaGFkZXIgY29kZSBkaWQgbm90IGNyZWF0ZSBhIG1vZHVsZS4iKTsK
LQotICAgIHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBp
bmNvbXBsZXRlU2hhZGVycyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKHNoYWRlck1vZHVsZSwgbnVs
bCwgIkluY29tcGxldGUgc2hhZGVyIGNvZGUgZGlkIG5vdCBjcmVhdGUgYSBtb2R1bGUuIik7Ci0K
LSAgICBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogc2hh
ZGVycyB9KTsKKyAgICBsZXQgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVs
ZSh7IGNvZGU6IHNoYWRlcnMgfSk7CiAgICAgYXNzZXJ0X3RydWUoc2hhZGVyTW9kdWxlIGluc3Rh
bmNlb2YgR1BVU2hhZGVyTW9kdWxlLCAiU2hhZGVyIG1vZHVsZSBjcmVhdGVkIHN1Y2Nlc3NmdWxs
eS4iKTsKIH0sICJUZXN0IHNoYWRlciBjb2RlIHZhbGlkYXRpb24gd2hlbiBjcmVhdGluZyBtb2R1
bGVzLiIpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>