<?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>199773</bug_id>
          
          <creation_ts>2019-07-12 18:51:48 -0700</creation_ts>
          <short_desc>[WebGPU] Convert GPUComputePipeline LOG statements to generate GPUErrors</short_desc>
          <delta_ts>2019-07-16 16:52:19 -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>WebGPU</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>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1552649</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-12 18:51:48 -0700</bug_when>
    <thetext>[WebGPU] Convert GPUComputePipeline LOG statements to generate GPUErrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552652</commentid>
    <comment_count>1</comment_count>
      <attachid>374067</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-12 19:08:26 -0700</bug_when>
    <thetext>Created attachment 374067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552681</commentid>
    <comment_count>2</comment_count>
      <attachid>374067</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-12 22:09:10 -0700</bug_when>
    <thetext>Comment on attachment 374067
Patch

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

&gt; LayoutTests/webgpu/compute-pipeline-errors.html:45
&gt; +    const badMSL = `We should hydrate. With some beers.`;

👎 please no

Also beers usually have enough salt that they don’t hydrate you</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552920</commentid>
    <comment_count>3</comment_count>
      <attachid>374134</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-15 12:18:27 -0700</bug_when>
    <thetext>Created attachment 374134
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552972</commentid>
    <comment_count>4</comment_count>
      <attachid>374134</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-15 14:25:38 -0700</bug_when>
    <thetext>Comment on attachment 374134
Patch for landing

Rejecting attachment 374134 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-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 374134, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=374134&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=199773&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 374134 from bug 199773.
Fetching: https://bugs.webkit.org/attachment.cgi?id=374134
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 20 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/Modules/webgpu/WebGPUComputePipelineDescriptor.cpp
patching file Source/WebCore/Modules/webgpu/WebGPUComputePipelineDescriptor.h
patching file Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
Hunk #1 succeeded at 158 (offset -6 lines).
patching file Source/WebCore/platform/graphics/gpu/GPUBuffer.h
Hunk #1 FAILED at 111.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/platform/graphics/gpu/GPUBuffer.h.rej
patching file Source/WebCore/platform/graphics/gpu/GPUComputePipeline.h
patching file Source/WebCore/platform/graphics/gpu/GPUDevice.cpp
Hunk #1 succeeded at 85 (offset -2 lines).
patching file Source/WebCore/platform/graphics/gpu/GPUDevice.h
Hunk #1 succeeded at 74 (offset -5 lines).
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUBufferMetal.mm
Hunk #1 FAILED at 42.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/platform/graphics/gpu/cocoa/GPUBufferMetal.mm.rej
patching file Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/webgpu/compute-pipeline-errors-expected.txt
patching file LayoutTests/webgpu/compute-pipeline-errors.html
can&apos;t find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: LayoutTests/webgpu/error-scopes-test.html
|index 5cfcca1b5e141ad4759bf2daea2ed25944647515..856afa8edc1a1e72402c6666e4e38f8f3358fa64 100644
|--- LayoutTests/webgpu/error-scopes-test.html	(revision 0)
|+++ LayoutTests/webgpu/error-scopes-test.html	(working copy)
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored
patching file LayoutTests/webgpu/js/webgpu-functions.js
patching file LayoutTests/webgpu/js/whlsl-test-harness.js
patching file LayoutTests/webgpu/whlsl-recursive-structs-expected.txt
patching file LayoutTests/webgpu/whlsl-recursive-structs.html
patching file LayoutTests/webgpu/whlsl-test-harness-test-expected.txt
patching file LayoutTests/webgpu/whlsl-test-harness-test.html

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

Full output: https://webkit-queues.webkit.org/results/12744996</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552979</commentid>
    <comment_count>5</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-15 14:33:25 -0700</bug_when>
    <thetext>Earlier error checking patches got rolled out, so reapplying this after fixing those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553328</commentid>
    <comment_count>6</comment_count>
      <attachid>374245</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-16 15:07:24 -0700</bug_when>
    <thetext>Created attachment 374245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553368</commentid>
    <comment_count>7</comment_count>
      <attachid>374257</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-16 16:15:57 -0700</bug_when>
    <thetext>Created attachment 374257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553385</commentid>
    <comment_count>8</comment_count>
      <attachid>374257</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-16 16:51:54 -0700</bug_when>
    <thetext>Comment on attachment 374257
Patch

Clearing flags on attachment: 374257

Committed r247500: &lt;https://trac.webkit.org/changeset/247500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553386</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-16 16:51:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553387</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-16 16:52:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/53179280&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374067</attachid>
            <date>2019-07-12 19:08:26 -0700</date>
            <delta_ts>2019-07-15 12:18:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199773-20190712190825.patch</filename>
            <type>text/plain</type>
            <size>38005</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU2YTk3Y2Y4M2IwNjEw
MDg0N2I0YTI2MWIyZTY1ZGIwMmVhYmUwMi4uZjg1NDBlODlmNGM3NmIyNTlkZGIwYTNhMjI4ODll
ODkzOGRhMWY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA3LTEyICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQ29udmVy
dCBHUFVDb21wdXRlUGlwZWxpbmUgTE9HIHN0YXRlbWVudHMgdG8gZ2VuZXJhdGUgR1BVRXJyb3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0
ZSBhIEdQVUVycm9yIGlmIEdQVUNvbXB1dGVQaXBlbGluZSBjcmVhdGlvbiBmYWlscy4KKyAgICAg
ICAgUmV3b3JrIHRoZSBXSExTTCB0ZXN0IGhhcm5lc3MgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhp
cy4KKworICAgICAgICBUZXN0OiB3ZWJncHUvY29tcHV0ZS1waXBlbGluZS1lcnJvcnMuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
Ojp0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oOiAKKyAgICAgICAgICAgICAgICBOb3cgaW5o
ZXJpdHMgZnJvbSBHUFVPYmplY3RCYXNlLCB0aG91Z2ggdGhpcyBpc24ndCBzdXBlciB1c2VmdWwg
eWV0CisgICAgICAgICAgICAgICAgc2luY2UgR1BVQ29tcHV0ZVBpcGVsaW5lIGl0c2VsZiBkb2Vz
IG5vdCBleHBvc2UgYW55IG9wZXJhdGlvbnMgdGhhdCBjYW4gZXJyb3IuIAorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BV
RGV2aWNlOjp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZm
ZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRy
eVNldE1ldGFsRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNldEZ1bmN0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjp0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZSk6CisKIDIwMTkt
MDctMTIgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
R1BVXSBNb3ZlIGVycm9yIHNjb3BlcyBvdXQgb2YgR1BVRGV2aWNlIGZvciBtb3JlIHBvcnRhYmxl
IGVycm9yIGdlbmVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKaW5kZXgg
ZGUyMDRiYjVjYTUxYmUxMDNkYWFhYzU4MjIyZjQwZDcwYWNhOTJjYS4uZTFkMmFjYzMxYjg2ODJm
NjgwNmY4MmRmMzBlOTQyYmQyY2ZhYTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5jcHAKQEAgLTI5LDE3ICsyOSwxNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRl
ICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3B0
aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcigpIGNvbnN0
CitPcHRpb25hbDxHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKEdQ
VUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykgY29uc3QKIHsKICAgICBhdXRvIHBpcGVsaW5lTGF5
b3V0ID0gbGF5b3V0ID8gbWFrZVJlZlB0cihsYXlvdXQtPnBpcGVsaW5lTGF5b3V0KCkpIDogbnVs
bHB0cjsKIAogICAgIGF1dG8gY29tcHV0ZSA9IGNvbXB1dGVTdGFnZS50cnlDcmVhdGVHUFVQaXBl
bGluZVN0YWdlRGVzY3JpcHRvcigpOwogICAgIGlmICghY29tcHV0ZSkgewotICAgICAgICBMT0co
V2ViR1BVLCAiR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogSW52YWxpZCBHUFVQ
aXBlbGluZVN0YWdlRGVzY3JpcHRvciEiKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVF
cnJvcigiR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogSW52YWxpZCBHUFVQaXBl
bGluZVN0YWdlRGVzY3JpcHRvciEiKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCBhNDUzOTAyZGJkNDI1Mzgx
ZjFkNzViZDI4OGFlMTE2MTM3YTMwNThjLi41YzMzM2VhMzY4OTYzMmE1MTM3M2Y2YzVmYjA4NTM1
NzAzNjBkZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCkBAIC0zMywxMCArMzMs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHUFVFcnJvclNjb3BlczsKKwog
c3RydWN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I7CiAKIHN0cnVjdCBXZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yIDogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7Ci0g
ICAgT3B0aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gdHJ5Q3JlYXRlR1BVQ29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvcigpIGNvbnN0OworICAgIE9wdGlvbmFsPEdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3I+IHRyeUNyZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Io
R1BVRXJyb3JTY29wZXMmKSBjb25zdDsKIAogICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlw
dG9yIGNvbXB1dGVTdGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmNwcAppbmRleCBkMzk0Mjc2MDVlYWFhYjgwODFkYmI3OTlmMmFhYWY2Mzk2
NDNkYjczLi4xM2EwY2YwYjJjOTE0YTFjZWQ2YzRiMjdhZGExZDliNDJlYWIwMzAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTE2NCwx
MSArMTY0LDExIEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVh
dGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQCiAKIFJlZjxXZWJHUFVDb21wdXRl
UGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7Ci0gICAgYXV0
byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yKCk7CisgICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVh
dGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICgh
Z3B1RGVzY3JpcHRvcikKICAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3Jl
YXRlKG51bGxwdHIpOwogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVD
b21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IpOworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2Rl
dmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2Nv
cGVzLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRl
KFdURk1vdmUocGlwZWxpbmUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCmluZGV4IDkyYmFhMjE0YWUwMmNiNGVjMWRhZGQ3MDMz
MGM4MDA3ZWQxODY1MDAuLjVmNmYyZjBjNDAzZDcwN2RkNjgyOGNmMTVlMGE4YzQxZmNlZDU0ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVy
LmgKQEAgLTExMSw3ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBHUFVCdWZmZXIo
UGxhdGZvcm1CdWZmZXJTbWFydFB0ciYmLCBSZWY8R1BVRGV2aWNlPiYmLCBzaXplX3QsIE9wdGlv
blNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBHUFVCdWZmZXJNYXBwZWRPcHRpb24sIFJlZjxH
UFVFcnJvclNjb3Blcz4mJik7Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVCdWZmZXJVc2FnZShH
UFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiwgR1BVRXJyb3JTY29w
ZXMmKTsKKyAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmlj
ZSYsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBHUFVFcnJvclNjb3BlcyYpOwog
CiAgICAgSlNDOjpBcnJheUJ1ZmZlciogc3RhZ2luZ0J1ZmZlckZvclJlYWQoKTsKICAgICBKU0M6
OkFycmF5QnVmZmVyKiBzdGFnaW5nQnVmZmVyRm9yV3JpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaApp
bmRleCA2NTM2N2M5ZDkzNDNhNWM0NjkxODc4YTE5NGMzMmQ4NDA4N2IxMDEzLi40NmI3YWRjZWFk
NTg4YzRlNjlmNGU1ZDI5MWM3YTJhNzJlZDYzM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVT2JqZWN0
QmFzZS5oIgogI2luY2x1ZGUgIldITFNMUHJlcGFyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNDMsMTYgKzQ0LDE2IEBAIHN0cnVj
dCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOwogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlw
ZWxpbmUgPSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZTsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBp
cGVsaW5lU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+OwogCi1j
bGFzcyBHUFVDb21wdXRlUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb21wdXRlUGlw
ZWxpbmU+IHsKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3Jl
YXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Im
KTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0
IEdQVURldmljZSYsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBSZWY8R1BV
RXJyb3JTY29wZXM+JiYpOwogCiAgICAgY29uc3QgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUqIHBs
YXRmb3JtQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNvbXB1dGVQ
aXBlbGluZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVE
aW1lbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlRGltZW5zaW9uczsgfQogCiBwcml2
YXRlOgotICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0
UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyk7CisgICAgR1BVQ29tcHV0ZVBpcGVsaW5l
KFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHImJiwgV0hMU0w6OkNvbXB1dGVEaW1lbnNp
b25zLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYpOwogCiAgICAgUGxhdGZvcm1Db21wdXRlUGlwZWxp
bmVTbWFydFB0ciBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lOwogICAgIFdITFNMOjpDb21wdXRl
RGltZW5zaW9ucyBtX2NvbXB1dGVEaW1lbnNpb25zIHsgMCwgMCwgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAppbmRleCBhNjFh
ZjYwYmM3ODQxODZiMzJkY2Q0ZTI2NWRkMzdjODc0ODJhNDM0Li42ZGJmMjg0NGFkNDg3MzZiNDUw
ZjNjNGQ2NTlhN2MzNjljZjM3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAtODcsOSArODcsOSBAQCBSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3Qg
R1BVUmVuZGVyUGlwZQogICAgIHJldHVybiBHUFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3JlYXRlKCp0
aGlzLCBkZXNjcmlwdG9yKTsKIH0KIAotUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVRGV2
aWNlOjp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQ
VURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxHUFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3Bl
cykgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKnRo
aXMsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0
ZSgqdGhpcywgZGVzY3JpcHRvciwgV1RGTW92ZShlcnJvclNjb3BlcykpOwogfQogCiBSZWZQdHI8
R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVDb21tYW5kQnVmZmVyKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2Uu
aAppbmRleCAzZWJhMzQ0NzI4ZWIzMzU4N2E5OTk1MmVhMTdlMDg3MjI0NTQ5NGJlLi42ZDE5ZGEw
YTgxOTJlNjQ5OWYxODdmNjU1MjBjYTViM2Q0OWM5NDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC03OSw3ICs3OSw3IEBAIHB1
YmxpYzoKIAogICAgIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IHRyeUNyZWF0ZVNoYWRlck1vZHVs
ZShjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikgY29uc3Q7CiAgICAgUmVmUHRyPEdQ
VVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5l
PiB0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IHRyeUNyZWF0ZUNv
bXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgUmVmPEdQ
VUVycm9yU2NvcGVzPiYmKSBjb25zdDsKIAogICAgIFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiB0
cnlDcmVhdGVDb21tYW5kQnVmZmVyKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbQpp
bmRleCBkMjY0NzNiNTk2ZDM3ZDBkNTY1NzYyZTM4YzAyYTM3NDFmMjNhYTMyLi41Y2JjNjQ4NTVi
ZGFkODk4OTBkNTQ4MjkzNWEyOWZkNDliNTYxZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1t
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdGV4cHIg
YXV0byByZWFkT25seUZsYWdzID0gT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4geyBH
UFVCdWZmZXJVc2FnZTo6RmxhZ3M6OkluZGV4LCBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6OlZlcnRl
eCwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpVbmlmb3JtLCBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6
OlRyYW5zZmVyU291cmNlIH07CiAKIAotYm9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNh
Z2UoR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+IHVz
YWdlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCitib29sIEdQVUJ1ZmZlcjo6dmFsaWRh
dGVCdWZmZXJVc2FnZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgT3B0aW9uU2V0PEdQVUJ1ZmZl
clVzYWdlOjpGbGFncz4gdXNhZ2UsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKICAg
ICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJH
UFVCdWZmZXI6OnRyeUNyZWF0ZSgpOiBJbnZhbGlkIEdQVURldmljZSEiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlw
ZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQppbmRleCBlODFmN2NhZGQyNzA4YzZjZGZhYTNm
ZGY5YjFlZmY3MmViYTdlZjc5Li4wODg0ZjI3NTk0YmE3NTRkNGI3Nzk3MDVjYWQwM2NkMjlmMDRh
NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCkBAIC0zMSw0
NSArMzEsMzcgQEAKICNpbXBvcnQgIkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKICNp
bXBvcnQgIkdQVURldmljZS5oIgogI2ltcG9ydCAiR1BVUGlwZWxpbmVNZXRhbENvbnZlcnRMYXlv
dXQuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldITFNMUHJlcGFyZS5oIgogI2lt
cG9ydCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+
CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmN0aW9uTmFtZSwgTVRMTGlicmFyeSAqY29tcHV0ZU1ldGFsTGlicmFyeSwgTVRMQ29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvciAqbXRsRGVzY3JpcHRvciwgY29uc3QgU3RyaW5nJiBjb21w
dXRlRW50cnlQb2ludE5hbWUpCitzdGF0aWMgYm9vbCB0cnlTZXRNZXRhbEZ1bmN0aW9ucyhjb25z
dCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExpYnJh
cnksIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0IFN0
cmluZyYgY29tcHV0ZUVudHJ5UG9pbnROYW1lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMp
CiB7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7Ci0j
ZW5kaWYKLQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGlmICghY29t
cHV0ZU1ldGFsTGlicmFyeSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE1UTExpYnJhcnkg
Zm9yIGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAg
ICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjog
TVRMTGlicmFyeSBmb3IgY29tcHV0ZSBzdGFnZSBkb2VzIG5vdCBleGlzdCEiKSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBhdXRvIGZ1bmN0aW9uID0gYWRvcHROUyhbY29t
cHV0ZU1ldGFsTGlicmFyeSBuZXdGdW5jdGlvbldpdGhOYW1lOmNvbXB1dGVFbnRyeVBvaW50TmFt
ZV0pOwogICAgIGlmICghZnVuY3Rpb24pIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBDYW5u
b3QgY3JlYXRlIGNvbXB1dGUgTVRMRnVuY3Rpb24gXCIlc1wiISIsIGZ1bmN0aW9uTmFtZSwgY29t
cHV0ZUVudHJ5UG9pbnROYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlcnJvclNjb3Blcy5n
ZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCAiOiBDYW5ub3QgY3JlYXRlIGNv
bXB1dGUgTVRMRnVuY3Rpb24gXCIiLCBjb21wdXRlRW50cnlQb2ludE5hbWUsICJcIiEiKSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBbbXRsRGVzY3JpcHRvciBzZXRDb21w
dXRlRnVuY3Rpb246ZnVuY3Rpb24uZ2V0KCldOwotICAgIHJldHVybiB0cnVlOwogCiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIE9wdGlvbmFsPFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5
U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3ImIGNvbXB1dGVTdGFnZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IqIG10bERlc2NyaXB0b3IsIE9wdGlvbmFs
PFdITFNMOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiYgd2hsc2xEZXNjcmlwdG9yKQorc3Rh
dGljIE9wdGlvbmFsPFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNv
bnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVUGlwZWxpbmVTdGFnZURlc2Ny
aXB0b3ImIGNvbXB1dGVTdGFnZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE1UTENvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3IqIG10bERlc2NyaXB0b3IsIE9wdGlvbmFsPFdITFNMOjpDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yPiYgd2hsc2xEZXNjcmlwdG9yLCBHUFVFcnJvclNjb3BlcyYgZXJy
b3JTY29wZXMpCiB7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9u
TmFtZSk7Ci0jZW5kaWYKICAgICBSZXRhaW5QdHI8TVRMTGlicmFyeT4gY29tcHV0ZUxpYnJhcnk7
CiAgICAgU3RyaW5nIGNvbXB1dGVFbnRyeVBvaW50OwogCkBAIC04Myw4ICs3NSwxMSBAQCBzdGF0
aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlTZXRGdW5jdGlvbnMoY29u
c3QgY2hhciogY29uc3QgZnVuYwogICAgICAgICB3aGxzbERlc2NyaXB0b3ItPmVudHJ5UG9pbnRO
YW1lID0gY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQ7CiAKICAgICAgICAgYXV0byB3aGxzbENvbXBp
bGVSZXN1bHQgPSBXSExTTDo6cHJlcGFyZSh3aGxzbFNvdXJjZSwgKndobHNsRGVzY3JpcHRvcik7
Ci0gICAgICAgIGlmICghd2hsc2xDb21waWxlUmVzdWx0KQorICAgICAgICBpZiAoIXdobHNsQ29t
cGlsZVJlc3VsdCkgeworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtl
U3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogV0hMU0wgY29tcGlsYXRpb24gZmFpbGVkISIpKTsKICAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0KKwogICAgICAgICBjb21w
dXRlRGltZW5zaW9ucyA9IHdobHNsQ29tcGlsZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnM7CiAK
ICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CkBAIC0xMDUsOCArMTAwLDkgQEAgc3RhdGlj
IE9wdGlvbmFsPFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNvbnN0
IGNoYXIqIGNvbnN0IGZ1bmMKICAgICAgICAgY29tcHV0ZUVudHJ5UG9pbnQgPSBjb21wdXRlU3Rh
Z2UuZW50cnlQb2ludDsKICAgICB9CiAKLSAgICBpZiAodHJ5U2V0TWV0YWxGdW5jdGlvbnMoZnVu
Y3Rpb25OYW1lLCBjb21wdXRlTGlicmFyeS5nZXQoKSwgbXRsRGVzY3JpcHRvciwgY29tcHV0ZUVu
dHJ5UG9pbnQpKQorICAgIGlmICh0cnlTZXRNZXRhbEZ1bmN0aW9ucyhmdW5jdGlvbk5hbWUsIGNv
bXB1dGVMaWJyYXJ5LmdldCgpLCBtdGxEZXNjcmlwdG9yLCBjb21wdXRlRW50cnlQb2ludCwgZXJy
b3JTY29wZXMpKQogICAgICAgICByZXR1cm4gY29tcHV0ZURpbWVuc2lvbnM7CisKICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogfQogCkBAIC0xMTQsMTggKzExMCwxNyBAQCBzdHJ1Y3QgQ29udmVy
dFJlc3VsdCB7CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IHBp
cGVsaW5lRGVzY3JpcHRvcjsKICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgY29tcHV0ZURp
bWVuc2lvbnM7CiB9Owotc3RhdGljIE9wdGlvbmFsPENvbnZlcnRSZXN1bHQ+IGNvbnZlcnRDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29u
c3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgY29uc3QgR1BVRGV2
aWNlJiBkZXZpY2UpCisKK3N0YXRpYyBPcHRpb25hbDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0Q29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNv
bnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURl
dmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAgICAgUmV0YWlu
UHRyPE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IG10bERlc2NyaXB0b3I7CiAKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0KICAgICBtdGxEZXNjcmlwdG9yID0gYWRvcHRO
UyhbTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBuZXddKTsKLQogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKLSAgICAgICAgTE9H
KFdlYkdQVSwgIiVzOiBFcnJvciBjcmVhdGluZyBNVExEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFt
ZSk7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlv
bk5hbWUsICI6IEVycm9yIGNyZWF0aW5nIE1UTERlc2NyaXB0b3IhIikpOwogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTQxLDEyICsxMzYsMTIgQEAgc3RhdGljIE9w
dGlvbmFsPENvbnZlcnRSZXN1bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGNv
bnN0IGNoYXIqIGNvbnMKICAgICAgICAgaWYgKGF1dG8gbGF5b3V0ID0gY29udmVydExheW91dCgq
ZGVzY3JpcHRvci5sYXlvdXQpKQogICAgICAgICAgICAgd2hsc2xEZXNjcmlwdG9yLT5sYXlvdXQg
PSBXVEZNb3ZlKCpsYXlvdXQpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIExPRyhXZWJH
UFUsICIlczogRXJyb3IgY29udmVydGluZyBHUFVQaXBlbGluZUxheW91dCEiLCBmdW5jdGlvbk5h
bWUpOworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1
bmN0aW9uTmFtZSwgIjogRXJyb3IgY29udmVydGluZyBHUFVQaXBlbGluZUxheW91dCEiKSk7CiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gY29tcHV0ZURpbWVuc2lvbnMgPSB0cnlTZXRGdW5jdGlvbnMoZnVuY3Rpb25OYW1l
LCBjb21wdXRlU3RhZ2UsIGRldmljZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgd2hsc2xEZXNjcmlw
dG9yKSkKKyAgICBpZiAoYXV0byBjb21wdXRlRGltZW5zaW9ucyA9IHRyeVNldEZ1bmN0aW9ucyhm
dW5jdGlvbk5hbWUsIGNvbXB1dGVTdGFnZSwgZGV2aWNlLCBtdGxEZXNjcmlwdG9yLmdldCgpLCB3
aGxzbERlc2NyaXB0b3IsIGVycm9yU2NvcGVzKSkKICAgICAgICAgcmV0dXJuIHt7IG10bERlc2Ny
aXB0b3IsICpjb21wdXRlRGltZW5zaW9ucyB9fTsKIAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CkBAIC0xNTYsMTQgKzE1MSwxNSBAQCBzdHJ1Y3QgQ3JlYXRlUmVzdWx0IHsKICAgICBSZXRhaW5Q
dHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IHBpcGVsaW5lU3RhdGU7CiAgICAgV0hMU0w6OkNv
bXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zOwogfTsKLXN0YXRpYyBPcHRpb25hbDxD
cmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGNvbnN0IGNoYXIq
IGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCisKK3N0YXRpYyBPcHRpb25hbDxD
cmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGNvbnN0IGNoYXIq
IGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJv
clNjb3BlcykKIHsKICAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7Ci0gICAgICAg
IExPRyhXZWJHUFUsICJHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgpOiBJbnZhbGlkIEdQ
VURldmljZSEiKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5n
KGZ1bmN0aW9uTmFtZSwgIjogSW52YWxpZCBHUFVEZXZpY2UhIikpOwogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIGF1dG8gY29udmVydFJlc3VsdCA9IGNvbnZlcnRD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGZ1bmN0aW9uTmFtZSwgZGVzY3JpcHRvciwgZGV2aWNl
KTsKKyAgICBhdXRvIGNvbnZlcnRSZXN1bHQgPSBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcihmdW5jdGlvbk5hbWUsIGRlc2NyaXB0b3IsIGRldmljZSwgZXJyb3JTY29wZXMpOwogICAg
IGlmICghY29udmVydFJlc3VsdCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBB
U1NFUlQoY29udmVydFJlc3VsdC0+cGlwZWxpbmVEZXNjcmlwdG9yKTsKQEAgLTE3Niw3ICsxNzIs
NyBAQCBzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0cnlDcmVhdGVNVExDb21wdXRlUGlw
ZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdAogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwog
ICAgIHBpcGVsaW5lID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3Q29tcHV0
ZVBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlwdG9yLmdldCgpIG9wdGlvbnM6
TVRMUGlwZWxpbmVPcHRpb25Ob25lIHJlZmxlY3Rpb246bmlsIGVycm9yOiZlcnJvcl0pOwogICAg
IGlmICghcGlwZWxpbmUpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUNvbXB1dGVQaXBlbGlu
ZTo6dHJ5Q3JlYXRlKCk6ICVzISIsIGVycm9yID8gZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24u
VVRGOFN0cmluZyA6ICJVbmFibGUgdG8gY3JlYXRlIE1UTENvbXB1dGVQaXBlbGluZVN0YXRlISIp
OworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25O
YW1lLCAiOiAiLCAoZXJyb3IgPyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbi5VVEY4U3RyaW5n
IDogIlVuYWJsZSB0byBjcmVhdGUgTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUhIikpKTsKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE4NSwxOSArMTgxLDIwIEBAIHN0
YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0
YXRlKGNvbnN0IGNoYXIqIGNvbnN0CiAgICAgcmV0dXJuIHt7IHBpcGVsaW5lLCBjb252ZXJ0UmVz
dWx0LT5jb21wdXRlRGltZW5zaW9ucyB9fTsKIH0KIAotUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGlu
ZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitSZWZQdHI8
R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZShjb25zdCBH
UFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKQogewotICAgIGNvbnN0
IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCki
OworICAgIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVDb21wdXRlUGlwZWxp
bmU6OnRyeUNyZWF0ZSgpIjsKIAotICAgIGF1dG8gY3JlYXRlUmVzdWx0ID0gdHJ5Q3JlYXRlTVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGUoZnVuY3Rpb25OYW1lLCBkZXZpY2UsIGRlc2NyaXB0b3IpOwor
ICAgIGF1dG8gY3JlYXRlUmVzdWx0ID0gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUo
ZnVuY3Rpb25OYW1lLCBkZXZpY2UsIGRlc2NyaXB0b3IsIGVycm9yU2NvcGVzKTsKICAgICBpZiAo
IWNyZWF0ZVJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxp
bmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlw
ZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMsIFdURk1vdmUoZXJy
b3JTY29wZXMpKSk7CiB9CiAKLUdQVUNvbXB1dGVQaXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5l
KFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNv
bXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKQotICAgIDogbV9wbGF0Zm9ybUNvbXB1
dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKK0dQVUNvbXB1dGVQaXBlbGluZTo6R1BVQ29t
cHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4mJiBwaXBlbGlu
ZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zLCBSZWY8R1BVRXJy
b3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKFdURk1vdmUoZXJy
b3JTY29wZXMpKQorICAgICwgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVs
aW5lKSkKICAgICAsIG1fY29tcHV0ZURpbWVuc2lvbnMoY29tcHV0ZURpbWVuc2lvbnMpCiB7CiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggY2EyNTBkOTdiM2ZiYTdlMjhjZGZiN2UyNTc5OTliZTJhNjY1YzRmMC4uNmExOTdl
Zjg2OGQwZWY4NzEyOTA2OTc0YTNjYWIwYjgwN2Q0ODQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDE5LTA3LTEyICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dlYkdQVV0gQ29udmVydCBHUFVDb21wdXRlUGlwZWxpbmUgTE9HIHN0YXRlbWVudHMgdG8g
Z2VuZXJhdGUgR1BVRXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTk3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSBHUFVDb21wdXRlUGlwZWxpbmUgZXJyb3Jz
IGdlbmVyYXRlIGNvcnJlY3RseS4KKyAgICAgICAgUmV3b3JrIGNoZWNrRmFpbCBpbiB0aGUgV0hM
U0wgdGVzdCBoYXJuZXNzIHRvIGNoZWNrIGZvciBHUFVFcnJvci4KKworICAgICAgICAqIHdlYmdw
dS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKHJ1blRlc3RzV2l0aERldmljZSk6IFJ1bnMgdGVzdHMg
aW4gYW4gb2JqZWN0IGFsbCB3aXRoIHRoZSBzYW1lIGRldmljZS4KKyAgICAgICAgKiB3ZWJncHUv
anMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzOiBBZGQgc2hhZGVyIGNvbXBpbGF0aW9uIGVycm9yIGNo
ZWNraW5nLgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2FsbFR5cGVkRnVuY3Rp
b24pOgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2hlY2tDb21waWxlRmFpbCk6
CisgICAgICAgIChIYXJuZXNzLnByb3RvdHlwZS5hc3luYy5fY2FsbEZ1bmN0aW9uKToKKyAgICAg
ICAgKEhhcm5lc3MpOgorICAgICAgICAoYXN5bmMuY2hlY2tGYWlsKToKKyAgICAgICAgKEhhcm5l
c3MucHJvdG90eXBlLl9jYWxsRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHdlYmdwdS93
aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6IFJlbW92ZSBhIFdITFNMIGNvbXBp
bGVyIGJ1Z2d5IHRlc3QuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3Rz
Lmh0bWw6CisgICAgICAgICogd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRtbDoKKwog
MjAxOS0wNy0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RvcHBpbmcgYSBjbG9uZWQgTWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgc2hvdWxkIG5vdCBzdG9w
IGFueSBvdGhlciB2aWRlbyB0cmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2Nv
bXB1dGUtcGlwZWxpbmUtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9j
b21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVmZGYyYjgy
NWMxYmI3MTU3ZGMxM2ExZDhmYWNiZGJmMzExY2I1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACisKK1BBU1MgQ29tcHV0ZSBjb21waWxhdGlvbiBmYWlsZWQgZHVlIHRvIGluY29y
cmVjdCBlbnRyeSBwb2ludCBzdHJpbmcuIAorUEFTUyBDb21wdXRlIHBpcGVsaW5lIGNyZWF0aW9u
IHN1Y2NlZWRlZC4gCitQQVNTIE1TTCBwaXBlbGluZSBjcmVhdGlvbiBmYWlsZWQgZHVlIHRvIGlu
dmFsaWQgR1BVU2hhZGVyTW9kdWxlLiAKK1BBU1MgTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxl
ZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJiZjY4
OGFmOTAyMTY0ZWVhYTYyM2E3ZjM0Y2EyNjc1MjEyNDZhYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sCkBAIC0wLDAgKzEs
ODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0
IEVycm9yIFNjb3Blcy48L3RpdGxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1
bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2xldCB0ZXN0cyA9IHt9OworbGV0IGdvb2RN
b2R1bGU7CisKK3Rlc3RzWyJDb21wdXRlIGNvbXBpbGF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3Jy
ZWN0IGVudHJ5IHBvaW50IHN0cmluZy4iXSA9IGFzeW5jIGRldmljZSA9PiB7CisgICAgY29uc3Qg
Z29vZFdITFNMID0gYAorW251bXRocmVhZHMoMSwgMSwgMSldCitjb21wdXRlIHZvaWQgX2NvbXB1
dGVfbWFpbigpIHsgfQorYDsKKyAgICBnb29kTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1v
ZHVsZSh7IGNvZGU6IGdvb2RXSExTTCwgaXNXSExTTDogdHJ1ZSB9KTsKKworICAgIGRldmljZS5w
dXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIpOworCisgICAgZGV2aWNlLmNyZWF0ZUNvbXB1dGVQ
aXBlbGluZSh7CisgICAgICAgIGNvbXB1dGVTdGFnZTogeworICAgICAgICAgICAgbW9kdWxlOiBn
b29kTW9kdWxlLAorICAgICAgICAgICAgZW50cnlQb2ludDogImNvbXB1dGVfbWFpbiIKKyAgICAg
ICAgfQorICAgIH0pOworCisgICAgcmV0dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2UpOwor
fTsKKwordGVzdHNbIkNvbXB1dGUgcGlwZWxpbmUgY3JlYXRpb24gc3VjY2VlZGVkLiJdID0gYXN5
bmMgZGV2aWNlID0+IHsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsK
KworICAgIGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoeworICAgICAgICBjb21wdXRlU3Rh
Z2U6IHsKKyAgICAgICAgICAgIG1vZHVsZTogZ29vZE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5
UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4g
cG9wTnVsbEVycm9yKGRldmljZSk7Cit9OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNyZWF0aW9u
IGZhaWxlZCBkdWUgdG8gaW52YWxpZCBHUFVTaGFkZXJNb2R1bGUuIl0gPSBhc3luYyBkZXZpY2Ug
PT4geworICAgIGNvbnN0IGJhZE1TTCA9IGBXZSBzaG91bGQgaHlkcmF0ZS4gV2l0aCBzb21lIGJl
ZXJzLmA7CisKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUoIm5vbmUiKTsKKworICAgIGNvbnN0
IGJhZE1TTE1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBiYWRNU0wg
fSk7CisKKyAgICBhd2FpdCBkZXZpY2UucG9wRXJyb3JTY29wZSgpOworCisgICAgZGV2aWNlLnB1
c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisKKyAgICBkZXZpY2UuY3JlYXRlQ29tcHV0ZVBp
cGVsaW5lKHsKKyAgICAgICAgY29tcHV0ZVN0YWdlOiB7CisgICAgICAgICAgICBtb2R1bGU6IGJh
ZE1TTE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgorICAg
ICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcG9wVmFsaWRhdGlvbkVycm9yKGRldmljZSk7
Cit9OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3Jy
ZWN0IGVudHJ5IHBvaW50IHN0cmluZy4iXSA9IGFzeW5jIGRldmljZSA9PiB7CisgICAgY29uc3Qg
Z29vZE1TTCA9IGAKK2tlcm5lbCB2b2lkIF9jb21wdXRlX21haW4oKSB7IH0KK2A7CisgICAgY29u
c3QgbXNsTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IGdvb2RNU0wg
fSk7CisKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAgIGRl
dmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoeworICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAg
ICAgICAgICAgIG1vZHVsZTogbXNsTW9kdWxlLAorICAgICAgICAgICAgZW50cnlQb2ludDogIl9j
b21wdXRlX21haSIKKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmV0dXJuIHBvcFZhbGlkYXRp
b25FcnJvcihkZXZpY2UpOworfTsKKworcnVuVGVzdHNXaXRoRGV2aWNlKHRlc3RzKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdwdS9lcnJvci1zY29wZXMtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwKaW5kZXggNWNmY2NhMWI1ZTE0MWFkNDc1OWJmMmRh
ZWEyZWQyNTk0NDY0NzUxNS4uODU2YWZhOGVkYzFhMWU3MjQwMmM2NjY2ZTRlMzhmOGYzMzU4ZmE2
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwKQEAgLTg5LDM0
ICs4OSwxMiBAQCB0ZXN0c1siQ2F0Y2ggbWFueSBlcnJvcnMgaW4gbmVzdGVkIHNjb3Blcy4iXSA9
IGFzeW5jIGRldmljZSA9PiB7CiAgICAgcmV0dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2Up
OwogfTsKIAotY29uc3QgaW5pdCA9IGFzeW5jICgpID0+IHsKLSAgICB0cnkgewotICAgICAgICB2
YXIgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKLSAgICB9IGNhdGNoIChlKSB7IC8q
IFdlYkdQVSBpcyBub3Qgc3VwcG9ydGVkLiAqLyB9Ci0KLSAgICBmb3IgKGxldCBuYW1lIGluIHRl
c3RzKQotICAgICAgICBkZXZpY2VQcm9taXNlVGVzdChkZXZpY2UsIG5hbWUpOwotfTsKLQotd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpbml0KTsKK3J1blRlc3RzV2l0aERldmljZSh0
ZXN0cyk7CiAKIC8qIEhlbHBlciBGdW5jdGlvbnMgKi8KIAogY29uc3QgY2F1c2VWYWxpZGF0aW9u
RXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IDQsIHVzYWdlOiBH
UFVCdWZmZXJVc2FnZS5NQVBfUkVBRCB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURSB9KTsKIGNv
bnN0IGNhdXNlTWVtb3J5RXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNp
emU6IDk5OTk5OTk5OTk5LCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuTk9ORSB9KTsKLWNvbnN0IHBv
cFZhbGlkYXRpb25FcnJvciA9IGRldmljZSA9PiBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4o
ZXJyb3IgPT4gYXNzZXJ0VmFsaWRhdGlvbkVycm9yKGVycm9yKSk7Ci1jb25zdCBwb3BNZW1vcnlF
cnJvciA9IGRldmljZSA9PiBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oZXJyb3IgPT4gYXNz
ZXJ0TWVtb3J5RXJyb3IoZXJyb3IpKTsKLWNvbnN0IHBvcE51bGxFcnJvciA9IGRldmljZSA9PiBk
ZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oZXJyb3IgPT4gYXNzZXJ0TnVsbChlcnJvcikpOwot
Y29uc3QgYXNzZXJ0TnVsbCA9IGVycm9yID0+IGFzc2VydF90cnVlKGVycm9yID09PSBudWxsLCAi
Tm8gZXJyb3IgZXhwZWN0ZWQhIik7Ci1jb25zdCBhc3NlcnRWYWxpZGF0aW9uRXJyb3IgPSBlcnJv
ciA9PiBhc3NlcnRfdHJ1ZShlcnJvciBpbnN0YW5jZW9mIEdQVVZhbGlkYXRpb25FcnJvciwgIkV4
cGVjdGVkIHZhbGlkYXRpb24gZXJyb3IhIik7Ci1jb25zdCBhc3NlcnRNZW1vcnlFcnJvciA9IGVy
cm9yID0+IGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNlb2YgR1BVT3V0T2ZNZW1vcnlFcnJvciwg
IkV4cGVjdGVkIG91dC1vZi1tZW1vcnkgZXJyb3IhIik7Ci0KLWNvbnN0IGRldmljZVByb21pc2VU
ZXN0ID0gKGRldmljZSwgbmFtZSkgPT4gewotICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
Ci0gICAgICAgIGlmIChkZXZpY2UgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsKLSAgICAgICAgcmV0dXJuIHRlc3RzW25hbWVdKGRldmljZSk7Ci0g
ICAgfSwgbmFtZSk7Ci19OworCiA8L3NjcmlwdD4KIDwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0
aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4
IDY0NmU4MDFjMTY1ZDVjMzBlYTg1MGU4ZWEzZmQ5NDBkMDJmNDA0OWQuLjhhMWFlZjU4Mzc2Njhi
ZTUzNGY4MDViZDNiZGQ3ZDc3ZjhmMTk0MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdw
dS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJn
cHUtZnVuY3Rpb25zLmpzCkBAIC0xNDksMyArMTQ5LDQzIEBAIGFzeW5jIGZ1bmN0aW9uIG1hcFdy
aXRlRGF0YVRvQnVmZmVyKGJ1ZmZlciwgZGF0YSwgb2Zmc2V0ID0gMCkgewogICAgIHdyaXRlQXJy
YXkuc2V0KG5ldyBVaW50OEFycmF5KGRhdGEpLCBvZmZzZXQpOwogICAgIGJ1ZmZlci51bm1hcCgp
OwogfQorCisvKioqIEZ1bmN0aW9ucyBiZWxvdyB0aGlzIGxpbmUgcmVxdWlyZSBXUFQgdGVzdGhh
cm5lc3MuanMgYW5kIHRlc3RoYXJuZXNzcmVwb3J0LmpzLiAqKiovCisKK2Z1bmN0aW9uIHJ1blRl
c3RzV2l0aERldmljZSh0ZXN0cykgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgYXN5bmMgKCkgPT4geworICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFyIGRldmljZSA9
IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsgLyogV2ViR1BV
IGlzIG5vdCBzdXBwb3J0ZWQuICovIH0KKyAgICAKKyAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0
ZXN0cykKKyAgICAgICAgICAgIGRldmljZVByb21pc2VUZXN0KGRldmljZSwgdGVzdHNbbmFtZV0s
IG5hbWUpOworICAgIH0pOworfQorCitmdW5jdGlvbiBkZXZpY2VQcm9taXNlVGVzdChkZXZpY2Us
IGZ1bmMsIG5hbWUpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgICAgICBp
ZiAoZGV2aWNlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNv
bHZlKCk7CisgICAgICAgIHJldHVybiBmdW5jKGRldmljZSk7CisgICAgfSwgbmFtZSk7Cit9Owor
CisvLyBBc3NlcnRpbmcgZXJyb3JzLgorCitjb25zdCBwb3BWYWxpZGF0aW9uRXJyb3IgPSBkZXZp
Y2UgPT4gZGV2aWNlLnBvcEVycm9yU2NvcGUoKS50aGVuKGVycm9yID0+IGFzc2VydFZhbGlkYXRp
b25FcnJvcihlcnJvcikpOworY29uc3QgcG9wTWVtb3J5RXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNl
LnBvcEVycm9yU2NvcGUoKS50aGVuKGVycm9yID0+IGFzc2VydE1lbW9yeUVycm9yKGVycm9yKSk7
Citjb25zdCBwb3BOdWxsRXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNlLnBvcEVycm9yU2NvcGUoKS50
aGVuKGVycm9yID0+IGFzc2VydE51bGwoZXJyb3IpKTsKK2NvbnN0IGFzc2VydE51bGwgPSBlcnJv
ciA9PiB7CisgICAgbGV0IGFzc2VydGlvbk1zZyA9ICJObyBlcnJvciBleHBlY3RlZCEiOworICAg
IGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKQorICAgICAgICBhc3NlcnRpb25Nc2cgKz0gIiBH
b3Q6ICIgKyBlcnJvci5tZXNzYWdlOworICAgIGFzc2VydF90cnVlKGVycm9yID09PSBudWxsLCBh
c3NlcnRpb25Nc2cpOworfTsKK2NvbnN0IGFzc2VydFZhbGlkYXRpb25FcnJvciA9IGVycm9yID0+
IHsKKyAgICBsZXQgYXNzZXJ0aW9uTXNnID0gIkV4cGVjdGVkIHZhbGlkYXRpb24gZXJyb3I6ICI7
CisgICAgaWYgKGVycm9yICYmIGVycm9yLm1lc3NhZ2UpCisgICAgICAgIGFzc2VydGlvbk1zZyAr
PSBlcnJvci5tZXNzYWdlOworICAgIGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNlb2YgR1BVVmFs
aWRhdGlvbkVycm9yLCBhc3NlcnRpb25Nc2cpOworfTsKK2NvbnN0IGFzc2VydE1lbW9yeUVycm9y
ID0gZXJyb3IgPT4gYXNzZXJ0X3RydWUoZXJyb3IgaW5zdGFuY2VvZiBHUFVPdXRPZk1lbW9yeUVy
cm9yLCAiRXhwZWN0ZWQgb3V0LW9mLW1lbW9yeSBlcnJvciEiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdwdS9qcy93aGxzbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzCmluZGV4IGNjZTlmOWYzYmEwNTFiNmJlOWRhZTdj
YjcyOThlNzhhOWU0ZTExMjEuLjhlNjEwNjc5NDFlZWJiMzNiOWZhM2ZkYmZhODgyMjIyZTQ0N2Y0
NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93aGxzbC10ZXN0LWhhcm5lc3Mu
anMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dobHNsLXRlc3QtaGFybmVzcy5qcwpAQCAt
MjUzLDcgKzI1Myw3IEBAIGtlcm5lbCB2b2lkIF9jb21wdXRlX21haW4oZGV2aWNlIF9jb21wdXRl
X2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKIGA7CiAgICAgICAgIH0KICAgICAgICAgY29uc3Qg
Y29kZSA9IHRoaXMuX3NoYWRlckhlYWRlciArIGZ1bmN0aW9ucyArIGVudHJ5UG9pbnRDb2RlOwot
ICAgICAgICB0aGlzLl9jYWxsRnVuY3Rpb24oY29kZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJj
ZUJpbmRpbmdzKTsKKyAgICAgICAgYXdhaXQgdGhpcy5fY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NM
YXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5ncyk7CiAgICAgCiAgICAgICAgIHRyeSB7CiAgICAg
ICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgdGhpcy5fcmVzdWx0QnVmZmVyLm1hcFJlYWRBc3lu
YygpOwpAQCAtMzAzLDYgKzMwMyw0MyBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKGRldmlj
ZSBfY29tcHV0ZV9hcmdzJiBhcmdzIFtbYnVmZmVyKDApXV0pCiAgICAgICAgIHRoaXMuX2NhbGxG
dW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3MpOwogICAgIH0K
IAorICAgIC8qKgorICAgICAqIEFzc2VydCB0aGF0IG1hbGZvcm1lZCBzaGFkZXIgY29kZSBkb2Vz
IG5vdCBjb21waWxlLgorICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzb3VyY2UgLSBDdXN0b20gY29k
ZSB0byBiZSB0ZXN0ZWQuCisgICAgICovCisgICAgYXN5bmMgY2hlY2tDb21waWxlRmFpbChzb3Vy
Y2UpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZGV2aWNlID09PSB1bmRlZmluZWQpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgZW50cnlQb2ludENvZGU7Cisg
ICAgICAgIGlmICh0aGlzLmlzV0hMU0wpIHsKKyAgICAgICAgICAgIGVudHJ5UG9pbnRDb2RlID0g
YAorW251bXRocmVhZHMoMSwgMSwgMSldCitjb21wdXRlIHZvaWQgX2NvbXB1dGVfbWFpbigpIHsg
fWA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlbnRyeVBvaW50Q29kZSA9IGAKK2tl
cm5lbCB2b2lkIF9jb21wdXRlX21haW4oKSB7IH1gOworICAgICAgICB9CisKKyAgICAgICAgY29u
c3QgY29kZSA9IHRoaXMuX3NoYWRlckhlYWRlciArIHNvdXJjZSArIGVudHJ5UG9pbnRDb2RlOwor
CisgICAgICAgIHRoaXMuX2RldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIpOworICAg
ICAgICAKKyAgICAgICAgY29uc3Qgc2hhZGVycyA9IHRoaXMuX2RldmljZS5jcmVhdGVTaGFkZXJN
b2R1bGUoeyBjb2RlOiBjb2RlLCBpc1dITFNMOiB0aGlzLl9pc1dITFNMIH0pOworICAgIAorICAg
ICAgICB0aGlzLl9kZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHsKKyAgICAgICAgICAgIGNv
bXB1dGVTdGFnZTogeworICAgICAgICAgICAgICAgIG1vZHVsZTogc2hhZGVycywKKyAgICAgICAg
ICAgICAgICBlbnRyeVBvaW50OiAiX2NvbXB1dGVfbWFpbiIKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisKKyAgICAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCB0aGlzLl9kZXZpY2UucG9wRXJy
b3JTY29wZSgpOworICAgICAgICBpZiAoIWVycm9yKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDb21waWxlciBlcnJvcjogc2hhZGVyIGNvZGUgZGlkIG5vdCBmYWlsIHRvIGNvbXBpbGUh
Iik7CisgICAgfQorCiAgICAgZ2V0IGRldmljZSgpIHsgcmV0dXJuIHRoaXMuX2RldmljZTsgfQog
CiAgICAgX2NsZWFyUmVzdWx0cygpCkBAIC0zNTksMTAgKzM5Niw4IEBAIGtlcm5lbCB2b2lkIF9j
b21wdXRlX21haW4oZGV2aWNlIF9jb21wdXRlX2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKICAg
ICAgICAgcmV0dXJuIFthcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3MsIGFyZ3NEZWNs
YXJhdGlvbnMsIGZ1bmN0aW9uQ2FsbEFyZ3NdOwogICAgIH0KIAotICAgIF9jYWxsRnVuY3Rpb24o
Y29kZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJjZUJpbmRpbmdzKQorICAgIGFzeW5jIF9jYWxs
RnVuY3Rpb24oY29kZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJjZUJpbmRpbmdzKQogICAgIHsK
LSAgICAgICAgY29uc3Qgc2hhZGVycyA9IHRoaXMuX2RldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUo
eyBjb2RlOiBjb2RlLCBpc1dITFNMOiB0aGlzLl9pc1dITFNMIH0pOwotCiAgICAgICAgIGNvbnN0
IGJpbmRHcm91cExheW91dCA9IHRoaXMuX2RldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoewog
ICAgICAgICAgICAgYmluZGluZ3M6IGFyZ3NMYXlvdXRzCiAgICAgICAgIH0pOwpAQCAtMzc0LDcg
KzQwOSwxMCBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKGRldmljZSBfY29tcHV0ZV9hcmdz
JiBhcmdzIFtbYnVmZmVyKDApXV0pCiAgICAgICAgICAgICBiaW5kaW5nczogYXJnc1Jlc291cmNl
QmluZGluZ3MKICAgICAgICAgfSk7CiAKLSAgICAgICAgLy8gRklYTUU6IENvbXBpbGUgZXJyb3Jz
IHNob3VsZCBiZSBjYXVnaHQgYW5kIHJlcG9ydGVkIGhlcmUuCisgICAgICAgIHRoaXMuX2Rldmlj
ZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIpOworCisgICAgICAgIGNvbnN0IHNoYWRlcnMg
PSB0aGlzLl9kZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogY29kZSwgaXNXSExTTDog
dGhpcy5faXNXSExTTCB9KTsKKyAgICAKICAgICAgICAgY29uc3QgcGlwZWxpbmUgPSB0aGlzLl9k
ZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHsKICAgICAgICAgICAgIGxheW91dDogcGlwZWxp
bmVMYXlvdXQsCiAgICAgICAgICAgICBjb21wdXRlU3RhZ2U6IHsKQEAgLTM5MSw2ICs0MjksMTAg
QEAga2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbihkZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBb
W2J1ZmZlcigwKV1dKQogICAgICAgICBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CiAgICAgICAgIAog
ICAgICAgICB0aGlzLl9kZXZpY2UuZ2V0UXVldWUoKS5zdWJtaXQoW2NvbW1hbmRFbmNvZGVyLmZp
bmlzaCgpXSk7CisKKyAgICAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCB0aGlzLl9kZXZpY2UucG9w
RXJyb3JTY29wZSgpOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoZXJyb3IubWVzc2FnZSk7CiAgICAgfQogfQogCkBAIC01MDksNjEgKzU1MSw5IEBAIGFz
eW5jIGZ1bmN0aW9uIGNhbGxGbG9hdDR4NEZ1bmN0aW9uKGZ1bmN0aW9ucywgbmFtZSwgYXJncykK
ICAgICByZXR1cm4gKGF3YWl0IGhhcm5lc3MuY2FsbFR5cGVkRnVuY3Rpb24oVHlwZXMuRkxPQVQ0
WDQsIGZ1bmN0aW9ucywgbmFtZSwgYXJncykpLnN1YmFycmF5KDAsIDE2KTsKIH0KIAotYXN5bmMg
ZnVuY3Rpb24gY2hlY2tGYWlsKHNvdXJjZSkgewotICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgaGFu
ZGxlIGVycm9ycyB3aXRoIHByb3BlciBtZXNzYWdlcyBvbmNlIHdlIGltcGxlbWVudCB0aGUgQVBJ
IGZvciB0aGF0LgotICAgIGNvbnN0IG5hbWUgPSAiX19fX3Rlc3RfbmFtZV9fX18iOwotICAgIGNv
bnN0IHByb2dyYW0gPSBgCi0gICAgICAgICR7c291cmNlfQotCi0gICAgICAgIFtudW10aHJlYWRz
KDEsIDEsIDEpXQotICAgICAgICBjb21wdXRlIHZvaWQgJHtuYW1lfShkZXZpY2UgaW50W10gYnVm
ZmVyIDogcmVnaXN0ZXIodTApLCBmbG9hdDMgdGhyZWFkSUQgOiBTVl9EaXNwYXRjaFRocmVhZElE
KSB7Ci0gICAgICAgICAgICBidWZmZXJbMF0gPSAxOwotICAgICAgICB9Ci0gICAgYDsKLSAgICBj
b25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOwotICAgIGNvbnN0IHNoYWRlck1v
ZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGU6IHByb2dyYW0sIGlzV0hMU0w6
IHRydWV9KTsKLSAgICBjb25zdCBjb21wdXRlU3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUs
IGVudHJ5UG9pbnQ6IG5hbWV9OwotCi0gICAgY29uc3QgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAic3RvcmFn
ZS1idWZmZXIifV19OwotICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVhdGVC
aW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7Ci0gICAgY29uc3QgcGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlv
dXRdfTsKLSAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxh
eW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOwotCi0gICAgY29uc3QgY29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciA9IHtjb21wdXRlU3RhZ2UsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9Owot
ICAgIGNvbnN0IGNvbXB1dGVQaXBlbGluZSA9IGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUo
Y29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik7Ci0KLSAgICBjb25zdCBzaXplID0gSW50MzJBcnJh
eS5CWVRFU19QRVJfRUxFTUVOVCAqIDE7Ci0KLSAgICBjb25zdCBidWZmZXJEZXNjcmlwdG9yID0g
e3NpemUsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEUgfCBHUFVCdWZmZXJVc2FnZS5U
UkFOU0ZFUl9TUkN9OwotICAgIGNvbnN0IGJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoYnVm
ZmVyRGVzY3JpcHRvcik7Ci0gICAgY29uc3QgYnVmZmVyQXJyYXlCdWZmZXIgPSBhd2FpdCBidWZm
ZXIubWFwV3JpdGVBc3luYygpOwotICAgIGNvbnN0IGJ1ZmZlckludDMyQXJyYXkgPSBuZXcgSW50
MzJBcnJheShidWZmZXJBcnJheUJ1ZmZlcik7Ci0gICAgYnVmZmVySW50MzJBcnJheVswXSA9IDA7
Ci0gICAgYnVmZmVyLnVubWFwKCk7Ci0KLSAgICBjb25zdCByZXN1bHRzQnVmZmVyRGVzY3JpcHRv
ciA9IHtzaXplLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuU1RPUkFHRSB8IEdQVUJ1ZmZlclVzYWdl
LlRSQU5TRkVSX0RTVCB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9SRUFEfTsKLSAgICBjb25zdCByZXN1
bHRzQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcihyZXN1bHRzQnVmZmVyRGVzY3JpcHRvcik7
Ci0KLSAgICBjb25zdCBidWZmZXJCaW5kaW5nID0ge2J1ZmZlcjogcmVzdWx0c0J1ZmZlciwgc2l6
ZX07Ci0gICAgY29uc3QgYmluZEdyb3VwQmluZGluZyA9IHtiaW5kaW5nOiAwLCByZXNvdXJjZTog
YnVmZmVyQmluZGluZ307Ci0gICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRvciA9IHtsYXlvdXQ6
IGJpbmRHcm91cExheW91dCwgYmluZGluZ3M6IFtiaW5kR3JvdXBCaW5kaW5nXX07Ci0gICAgY29u
c3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9y
KTsKLQotICAgIGNvbnN0IGNvbW1hbmRFbmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNvbW1hbmRFbmNv
ZGVyKCk7IC8vIHt9Ci0gICAgY29tbWFuZEVuY29kZXIuY29weUJ1ZmZlclRvQnVmZmVyKGJ1ZmZl
ciwgMCwgcmVzdWx0c0J1ZmZlciwgMCwgc2l6ZSk7Ci0gICAgY29uc3QgY29tcHV0ZVBhc3NFbmNv
ZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5Db21wdXRlUGFzcygpOwotICAgIGNvbXB1dGVQYXNz
RW5jb2Rlci5zZXRQaXBlbGluZShjb21wdXRlUGlwZWxpbmUpOwotICAgIGNvbXB1dGVQYXNzRW5j
b2Rlci5zZXRCaW5kR3JvdXAoMCwgYmluZEdyb3VwKTsKLSAgICBjb21wdXRlUGFzc0VuY29kZXIu
ZGlzcGF0Y2goMSwgMSwgMSk7Ci0gICAgY29tcHV0ZVBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKLSAg
ICBjb25zdCBjb21tYW5kQnVmZmVyID0gY29tbWFuZEVuY29kZXIuZmluaXNoKCk7Ci0gICAgZGV2
aWNlLmdldFF1ZXVlKCkuc3VibWl0KFtjb21tYW5kQnVmZmVyXSk7Ci0KLSAgICBjb25zdCByZXN1
bHRzQXJyYXlCdWZmZXIgPSBhd2FpdCByZXN1bHRzQnVmZmVyLm1hcFJlYWRBc3luYygpOwotICAg
IGxldCByZXN1bHRzSW50MzJBcnJheSA9IG5ldyBJbnQzMkFycmF5KHJlc3VsdHNBcnJheUJ1ZmZl
cik7Ci0gICAgaWYgKHJlc3VsdHNJbnQzMkFycmF5WzBdICE9PSAwKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoInByb2dyYW0gZGlkIG5vdCBmYWlsIHRvIGNvbXBpbGUiKTsKLSAgICByZXN1bHRz
QnVmZmVyLnVubWFwKCk7Cithc3luYyBmdW5jdGlvbiBjaGVja0ZhaWwoc291cmNlKSAKK3sKKyAg
ICByZXR1cm4gKGF3YWl0IGhhcm5lc3MuY2hlY2tDb21waWxlRmFpbChzb3VyY2UpKTsKIH0KIAog
LyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVj
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1
Y3RzLWV4cGVjdGVkLnR4dAppbmRleCBkZWI1MzQ4ZDAzM2MwMzQ4ODhlMWJiMTAzN2ZjZDRlMTAz
ZDNhMTk5Li5iNTdkMzE5ODg1NzY3Nzg4Zjc0N2E2ZmNlOGE0MjY5ZjU5MWM5NTU1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKIFBBU1MgbXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3Qg
Ci1QQVNTIG11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCmluZGV4IDgy
ZjA4ZDRhZTk5OGM1YWE4YjE2ZTZiMjUwMTA0N2NmYmM4MzRmMGEuLjM2ZWRjMGIzNjRhNDVjZTY4
NmViYjRiZGNjMGY5MDg5OTVkMjI3ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxz
bC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCkBAIC0yNCwyOCArMjQsMjkgQEAgd2hsc2xUZXN0cy5t
dXR1YWxseVJlY3Vyc2l2ZVN0cnVjdCA9IGFzeW5jICgpID0+CiAgICAgICAgIAogfQogCi13aGxz
bFRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuID0gYXN5bmMg
KCkgPT4KLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAg
ICAgICAgICB0aHJlYWQgQmFyKiBiYXI7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICB9
Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgdGhyZWFkIEZvbyogZm9vOwotICAg
ICAgICAgICAgaW50IGJhcjsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIEJhciBiYXI7Ci0gICAgICAgICAg
ICBmb28uZm9vID0gNTY0OwotICAgICAgICAgICAgYmFyLmJhciA9IDUzOwotICAgICAgICAgICAg
cmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsKLSAgICAgICAgfQotICAgIGA7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgMCk7Ci19CisvLyBGSVhNRSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5NzY2OiBUaGlzIHNob3VsZCBjb21waWxlLgorLy8gd2hsc2xUZXN0cy5tdXR1YWxseVJl
Y3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVyc0Jyb2tlbiA9IGFzeW5jICgpID0+CisvLyB7CisvLyAg
ICAgbGV0IHByb2dyYW0gPSBgCisvLyAgICAgICAgIHN0cnVjdCBGb28geworLy8gICAgICAgICAg
ICAgdGhyZWFkIEJhciogYmFyOworLy8gICAgICAgICAgICAgaW50IGZvbzsKKy8vICAgICAgICAg
fQorLy8gICAgICAgICBzdHJ1Y3QgQmFyIHsKKy8vICAgICAgICAgICAgIHRocmVhZCBGb28qIGZv
bzsKKy8vICAgICAgICAgICAgIGludCBiYXI7CisvLyAgICAgICAgIH0KKy8vICAgICAgICAgaW50
IGZvbygpCisvLyAgICAgICAgIHsKKy8vICAgICAgICAgICAgIEZvbyBmb287CisvLyAgICAgICAg
ICAgICBCYXIgYmFyOworLy8gICAgICAgICAgICAgZm9vLmZvbyA9IDU2NDsKKy8vICAgICAgICAg
ICAgIGJhci5iYXIgPSA1MzsKKy8vICAgICAgICAgICAgIHJldHVybiBmb28uYmFyLT5iYXIgLSBi
YXIuZm9vLT5mb287CisvLyAgICAgICAgIH0KKy8vICAgICBgOworLy8gICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOworLy8gfQog
CiBydW5UZXN0cyh3aGxzbFRlc3RzKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBlY3RlZC50eHQKaW5kZXggYTA3
NTc3ZDUwNGQ5NmQ3N2RiYzU2MjMxNDQ5MTYxZTA1MmUxNWM2MC4uN2FiYjcxYTAwMWZhODZlZjli
OWEyMDhiMmY1NDhmNTdmMTRmMDI1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0zMCw0ICszMCw2IEBA
IFBBU1MgUmV0dXJuIGFuIGV4cGVjdGVkIGZsb2F0NHg0IHZhbHVlLgogUEFTUyBSZXR1cm4gYW4g
ZXhwZWN0ZWQgZmxvYXQ0eDQgdmFsdWUuIAogUEFTUyBSZXR1cm4gYW4gZXhwZWN0ZWQgZmxvYXQ0
eDQgdmFsdWUuIAogUEFTUyBSZXR1cm4gYW4gZXhwZWN0ZWQgZmxvYXQ0eDQgdmFsdWUuIAorUEFT
UyBDb2RlIHNob3VsZCBub3QgY29tcGlsZSwgYW5kIG5vIGVycm9yIGlzIHJlcG9ydGVkLiAKK1BB
U1MgU3VjY2Vzc2Z1bGx5IGNvbXBpbGluZyBjb2RlIGluIGNoZWNrRmFpbCBpcyBhbiBlcnJvci4g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0Lmh0bWwK
aW5kZXggY2QxYWMxZmQyMTFjZTk1NTM0YjQ0NjAwYzFiZDcxYWQxMjhiNzhmMC4uODkxN2RjMzMx
MjhkYjI5YzUxNWZhOWI4N2YzODczMDE2MGVmMGI2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0Lmh0bWwKQEAgLTE3Niw2ICsxNzYsMTggQEAgd2hs
c2xUZXN0cy5mbG9hdDR4NHRlc3RzID0gKCkgPT4gewogICAgIGNoZWNrQXJyYXlzKCJmbG9hdDR4
NCIsICJyZXR1cm4gaW4wWzBdOyIsIFtbZmxvYXQ0eDRleHBlY3RlZF1dLCBmbG9hdDR4NGV4cGVj
dGVkKTsKIH07CiAKK3dobHNsVGVzdHMuY2hlY2tGYWlsVGVzdHMgPSAoKSA9PiB7CisgICAgd2Vi
R1BVUHJvbWlzZVRlc3QoKCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tGYWlsKGBEb29ycyBh
bmQgY29ybmVycywga2lkLiBUaGF0J3Mgd2hlcmUgdGhleSBnZXRjaGEuYCk7CisgICAgfSwgIkNv
ZGUgc2hvdWxkIG5vdCBjb21waWxlLCBhbmQgbm8gZXJyb3IgaXMgcmVwb3J0ZWQuIik7CisKKyAg
ICB3ZWJHUFVQcm9taXNlVGVzdCgoKSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja0ZhaWwoIiIp
LmNhdGNoKGUgPT4geworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIEVycm9y
LCAiQW4gZXhwZWN0ZWQgRXJyb3Igd2FzIGNhdWdodC4iKTsKKyAgICAgICAgfSk7CisgICAgfSwg
IlN1Y2Nlc3NmdWxseSBjb21waWxpbmcgY29kZSBpbiBjaGVja0ZhaWwgaXMgYW4gZXJyb3IuIikK
K307CisKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewogICAgIHRyeSB7
CiAgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB3aGxzbFRlc3RzKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374134</attachid>
            <date>2019-07-15 12:18:27 -0700</date>
            <delta_ts>2019-07-16 15:07:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199773-20190715121826.patch</filename>
            <type>text/plain</type>
            <size>37899</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIxYTNmNzU2YzRjNTYy
ZTZhZWZhMGYxNmM2YzA4MzBmOWZhYzM2OS4uOTlhZWUzNjEwYWM5YjYwMWI2MDdiNzgwZmE5MzYx
NGI2Zjk0MGJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA3LTEyICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQ29udmVy
dCBHUFVDb21wdXRlUGlwZWxpbmUgTE9HIHN0YXRlbWVudHMgdG8gZ2VuZXJhdGUgR1BVRXJyb3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBHZW5l
cmF0ZSBhIEdQVUVycm9yIGlmIEdQVUNvbXB1dGVQaXBlbGluZSBjcmVhdGlvbiBmYWlscy4KKyAg
ICAgICAgUmV3b3JrIHRoZSBXSExTTCB0ZXN0IGhhcm5lc3MgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Yg
dGhpcy4KKworICAgICAgICBUZXN0OiB3ZWJncHUvY29tcHV0ZS1waXBlbGluZS1lcnJvcnMuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yOjp0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oOiAKKyAgICAgICAgICAgICAgICBOb3cg
aW5oZXJpdHMgZnJvbSBHUFVPYmplY3RCYXNlLCB0aG91Z2ggdGhpcyBpc24ndCBzdXBlciB1c2Vm
dWwgeWV0CisgICAgICAgICAgICAgICAgc2luY2UgR1BVQ29tcHV0ZVBpcGVsaW5lIGl0c2VsZiBk
b2VzIG5vdCBleHBvc2UgYW55IG9wZXJhdGlvbnMgdGhhdCBjYW4gZXJyb3IuIAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVC
dWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OnRyeVNldE1ldGFsRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNldEZ1bmN0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjp0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZSk6CisKIDIw
MTktMDctMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgd2lu
ZG93Lm9wZW5EYXRhYmFzZSBpcyBub3Qgd3JpdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5jcHAKaW5kZXggZGUyMDRiYjVjYTUxYmUxMDNkYWFhYzU4MjIyZjQwZDcwYWNhOTJjYS4u
ZTFkMmFjYzMxYjg2ODJmNjgwNmY4MmRmMzBlOTQyYmQyY2ZhYTNiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvci5jcHAKQEAgLTI5LDE3ICsyOSwxNyBAQAogI2lmIEVOQUJMRShXRUJH
UFUpCiAKICNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCi0jaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotT3B0aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjo6dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcigpIGNvbnN0CitPcHRpb25hbDxHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiBX
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yKEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykgY29uc3QKIHsKICAgICBh
dXRvIHBpcGVsaW5lTGF5b3V0ID0gbGF5b3V0ID8gbWFrZVJlZlB0cihsYXlvdXQtPnBpcGVsaW5l
TGF5b3V0KCkpIDogbnVsbHB0cjsKIAogICAgIGF1dG8gY29tcHV0ZSA9IGNvbXB1dGVTdGFnZS50
cnlDcmVhdGVHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcigpOwogICAgIGlmICghY29tcHV0ZSkg
ewotICAgICAgICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUo
KTogSW52YWxpZCBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiKTsKKyAgICAgICAgZXJyb3JT
Y29wZXMuZ2VuZXJhdGVFcnJvcigiR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoKTog
SW52YWxpZCBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiKTsKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCBh
NDUzOTAyZGJkNDI1MzgxZjFkNzViZDI4OGFlMTE2MTM3YTMwNThjLi41YzMzM2VhMzY4OTYzMmE1
MTM3M2Y2YzVmYjA4NTM1NzAzNjBkZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5o
CkBAIC0zMywxMCArMzMsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHUFVF
cnJvclNjb3BlczsKKwogc3RydWN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I7CiAKIHN0
cnVjdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIDogV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSB7Ci0gICAgT3B0aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4g
dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcigpIGNvbnN0OworICAgIE9wdGlv
bmFsPEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IHRyeUNyZWF0ZUdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IoR1BVRXJyb3JTY29wZXMmKSBjb25zdDsKIAogICAgIFdlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yIGNvbXB1dGVTdGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCBkMzk0Mjc2MDVlYWFhYjgwODFk
YmI3OTlmMmFhYWY2Mzk2NDNkYjczLi4xM2EwY2YwYjJjOTE0YTFjZWQ2YzRiMjdhZGExZDliNDJl
YWIwMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5jcHAKQEAgLTE2NCwxMSArMTY0LDExIEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2Vi
R1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQCiAKIFJl
ZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVs
aW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNv
bnN0CiB7Ci0gICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCk7CisgICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVz
Y3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29w
ZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikKICAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1
dGVQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIpOwogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2
aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IpOworICAgIGF1dG8g
cGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlw
dG9yLCBtX2Vycm9yU2NvcGVzLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQ
aXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCmluZGV4IDkyYmFhMjE0YWUw
MmNiNGVjMWRhZGQ3MDMzMGM4MDA3ZWQxODY1MDAuLjVmNmYyZjBjNDAzZDcwN2RkNjgyOGNmMTVl
MGE4YzQxZmNlZDU0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQnVmZmVyLmgKQEAgLTExMSw3ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIH07CiAK
ICAgICBHUFVCdWZmZXIoUGxhdGZvcm1CdWZmZXJTbWFydFB0ciYmLCBSZWY8R1BVRGV2aWNlPiYm
LCBzaXplX3QsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBHUFVCdWZmZXJNYXBw
ZWRPcHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRh
dGVCdWZmZXJVc2FnZShHUFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdz
PiwgR1BVRXJyb3JTY29wZXMmKTsKKyAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ1ZmZlclVzYWdl
KGNvbnN0IEdQVURldmljZSYsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBHUFVF
cnJvclNjb3BlcyYpOwogCiAgICAgSlNDOjpBcnJheUJ1ZmZlciogc3RhZ2luZ0J1ZmZlckZvclJl
YWQoKTsKICAgICBKU0M6OkFycmF5QnVmZmVyKiBzdGFnaW5nQnVmZmVyRm9yV3JpdGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
UGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmUuaAppbmRleCA2NTM2N2M5ZDkzNDNhNWM0NjkxODc4YTE5NGMzMmQ4NDA4N2Ix
MDEzLi40NmI3YWRjZWFkNTg4YzRlNjlmNGU1ZDI5MWM3YTJhNzJlZDYzM2M5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQ
aXBlbGluZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5j
bHVkZSAiR1BVT2JqZWN0QmFzZS5oIgogI2luY2x1ZGUgIldITFNMUHJlcGFyZS5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNDMsMTYg
KzQ0LDE2IEBAIHN0cnVjdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOwogdXNpbmcgUGxh
dGZvcm1Db21wdXRlUGlwZWxpbmUgPSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZTsKIHVzaW5nIFBs
YXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVs
aW5lU3RhdGU+OwogCi1jbGFzcyBHUFVDb21wdXRlUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVDb21wdXRlUGlwZWxpbmU+IHsKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1Ymxp
YyBHUFVPYmplY3RCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1dGVQ
aXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4g
dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3ImLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYpOwogCiAgICAgY29uc3QgUGxhdGZvcm1Db21w
dXRlUGlwZWxpbmUqIHBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9w
bGF0Zm9ybUNvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6OkNvbXB1dGVEaW1l
bnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlRGltZW5z
aW9uczsgfQogCiBwcml2YXRlOgotICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1
dGVQaXBlbGluZVNtYXJ0UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyk7CisgICAgR1BV
Q29tcHV0ZVBpcGVsaW5lKFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHImJiwgV0hMU0w6
OkNvbXB1dGVEaW1lbnNpb25zLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYpOwogCiAgICAgUGxhdGZv
cm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lOwogICAg
IFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBtX2NvbXB1dGVEaW1lbnNpb25zIHsgMCwgMCwgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcAppbmRleCBhNjFhZjYwYmM3ODQxODZiMzJkY2Q0ZTI2NWRkMzdjODc0ODJhNDM0Li42ZGJm
Mjg0NGFkNDg3MzZiNDUwZjNjNGQ2NTlhN2MzNjljZjM3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAtODcsOSArODcs
OSBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlUmVuZGVy
UGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlwZQogICAgIHJldHVybiBHUFVSZW5kZXJQaXBlbGlu
ZTo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yKTsKIH0KIAotUmVmUHRyPEdQVUNvbXB1dGVQ
aXBlbGluZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxHUFVFcnJvclNjb3Bl
cz4mJiBlcnJvclNjb3BlcykgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5l
Ojp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBHUFVDb21wdXRlUGlw
ZWxpbmU6OnRyeUNyZWF0ZSgqdGhpcywgZGVzY3JpcHRvciwgV1RGTW92ZShlcnJvclNjb3Blcykp
OwogfQogCiBSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVDb21t
YW5kQnVmZmVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVEZXZpY2UuaAppbmRleCAzZWJhMzQ0NzI4ZWIzMzU4N2E5OTk1MmVhMTdlMDg3MjI0
NTQ5NGJlLi42ZDE5ZGEwYTgxOTJlNjQ5OWYxODdmNjU1MjBjYTViM2Q0OWM5NDI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC03
OSw3ICs3OSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IHRyeUNy
ZWF0ZVNoYWRlck1vZHVsZShjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikgY29uc3Q7
CiAgICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGVSZW5kZXJQaXBlbGluZShj
b25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWZQdHI8R1BV
Q29tcHV0ZVBpcGVsaW5lPiB0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxp
bmU+IHRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKSBjb25zdDsKIAogICAgIFJlZlB0cjxHUFVD
b21tYW5kQnVmZmVyPiB0cnlDcmVhdGVDb21tYW5kQnVmZmVyKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJN
ZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVC
dWZmZXJNZXRhbC5tbQppbmRleCBkMjY0NzNiNTk2ZDM3ZDBkNTY1NzYyZTM4YzAyYTM3NDFmMjNh
YTMyLi41Y2JjNjQ4NTViZGFkODk4OTBkNTQ4MjkzNWEyOWZkNDliNTYxZWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0
YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VUJ1ZmZlck1ldGFsLm1tCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
YXRpYyBjb25zdGV4cHIgYXV0byByZWFkT25seUZsYWdzID0gT3B0aW9uU2V0PEdQVUJ1ZmZlclVz
YWdlOjpGbGFncz4geyBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6OkluZGV4LCBHUFVCdWZmZXJVc2Fn
ZTo6RmxhZ3M6OlZlcnRleCwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpVbmlmb3JtLCBHUFVCdWZm
ZXJVc2FnZTo6RmxhZ3M6OlRyYW5zZmVyU291cmNlIH07CiAKIAotYm9vbCBHUFVCdWZmZXI6OnZh
bGlkYXRlQnVmZmVyVXNhZ2UoR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZmZXJV
c2FnZTo6RmxhZ3M+IHVzYWdlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCitib29sIEdQ
VUJ1ZmZlcjo6dmFsaWRhdGVCdWZmZXJVc2FnZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgT3B0
aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4gdXNhZ2UsIEdQVUVycm9yU2NvcGVzJiBlcnJv
clNjb3BlcykKIHsKICAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7CiAgICAgICAg
IExPRyhXZWJHUFUsICJHUFVCdWZmZXI6OnRyeUNyZWF0ZSgpOiBJbnZhbGlkIEdQVURldmljZSEi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQppbmRleCBlODFmN2Nh
ZGQyNzA4YzZjZGZhYTNmZGY5YjFlZmY3MmViYTdlZjc5Li4wODg0ZjI3NTk0YmE3NTRkNGI3Nzk3
MDVjYWQwM2NkMjlmMDRhNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1l
dGFsLm1tCkBAIC0zMSw0NSArMzEsMzcgQEAKICNpbXBvcnQgIkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaCIKICNpbXBvcnQgIkdQVURldmljZS5oIgogI2ltcG9ydCAiR1BVUGlwZWxpbmVN
ZXRhbENvbnZlcnRMYXlvdXQuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldITFNM
UHJlcGFyZS5oIgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25z
KGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgTVRMTGlicmFyeSAqY29tcHV0ZU1ldGFs
TGlicmFyeSwgTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciAqbXRsRGVzY3JpcHRvciwgY29u
c3QgU3RyaW5nJiBjb21wdXRlRW50cnlQb2ludE5hbWUpCitzdGF0aWMgYm9vbCB0cnlTZXRNZXRh
bEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1UTExpYnJhcnkgKmNv
bXB1dGVNZXRhbExpYnJhcnksIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgKm10bERlc2Ny
aXB0b3IsIGNvbnN0IFN0cmluZyYgY29tcHV0ZUVudHJ5UG9pbnROYW1lLCBHUFVFcnJvclNjb3Bl
cyYgZXJyb3JTY29wZXMpCiB7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKGZ1
bmN0aW9uTmFtZSk7Ci0jZW5kaWYKLQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IAogICAgIGlmICghY29tcHV0ZU1ldGFsTGlicmFyeSkgewotICAgICAgICBMT0coV2ViR1BVLCAi
JXM6IE1UTExpYnJhcnkgZm9yIGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIiwgZnVuY3Rp
b25OYW1lKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1
bmN0aW9uTmFtZSwgIjogTVRMTGlicmFyeSBmb3IgY29tcHV0ZSBzdGFnZSBkb2VzIG5vdCBleGlz
dCEiKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBhdXRvIGZ1bmN0aW9u
ID0gYWRvcHROUyhbY29tcHV0ZU1ldGFsTGlicmFyeSBuZXdGdW5jdGlvbldpdGhOYW1lOmNvbXB1
dGVFbnRyeVBvaW50TmFtZV0pOwogICAgIGlmICghZnVuY3Rpb24pIHsKLSAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBDYW5ub3QgY3JlYXRlIGNvbXB1dGUgTVRMRnVuY3Rpb24gXCIlc1wiISIsIGZ1
bmN0aW9uTmFtZSwgY29tcHV0ZUVudHJ5UG9pbnROYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCAiOiBD
YW5ub3QgY3JlYXRlIGNvbXB1dGUgTVRMRnVuY3Rpb24gXCIiLCBjb21wdXRlRW50cnlQb2ludE5h
bWUsICJcIiEiKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBbbXRsRGVz
Y3JpcHRvciBzZXRDb21wdXRlRnVuY3Rpb246ZnVuY3Rpb24uZ2V0KCldOwotICAgIHJldHVybiB0
cnVlOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIE9wdGlvbmFsPFdITFNMOjpDb21wdXRl
RGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFt
ZSwgY29uc3QgR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3ImIGNvbXB1dGVTdGFnZSwgY29uc3Qg
R1BVRGV2aWNlJiBkZXZpY2UsIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IqIG10bERlc2Ny
aXB0b3IsIE9wdGlvbmFsPFdITFNMOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiYgd2hsc2xE
ZXNjcmlwdG9yKQorc3RhdGljIE9wdGlvbmFsPFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5
U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3ImIGNvbXB1dGVTdGFnZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IqIG10bERlc2NyaXB0b3IsIE9wdGlvbmFs
PFdITFNMOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiYgd2hsc2xEZXNjcmlwdG9yLCBHUFVF
cnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VE
X1BBUkFNKGZ1bmN0aW9uTmFtZSk7Ci0jZW5kaWYKICAgICBSZXRhaW5QdHI8TVRMTGlicmFyeT4g
Y29tcHV0ZUxpYnJhcnk7CiAgICAgU3RyaW5nIGNvbXB1dGVFbnRyeVBvaW50OwogCkBAIC04Myw4
ICs3NSwxMSBAQCBzdGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlT
ZXRGdW5jdGlvbnMoY29uc3QgY2hhciogY29uc3QgZnVuYwogICAgICAgICB3aGxzbERlc2NyaXB0
b3ItPmVudHJ5UG9pbnROYW1lID0gY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQ7CiAKICAgICAgICAg
YXV0byB3aGxzbENvbXBpbGVSZXN1bHQgPSBXSExTTDo6cHJlcGFyZSh3aGxzbFNvdXJjZSwgKndo
bHNsRGVzY3JpcHRvcik7Ci0gICAgICAgIGlmICghd2hsc2xDb21waWxlUmVzdWx0KQorICAgICAg
ICBpZiAoIXdobHNsQ29tcGlsZVJlc3VsdCkgeworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2Vu
ZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogV0hMU0wgY29tcGlsYXRpb24g
ZmFpbGVkISIpKTsKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0K
KwogICAgICAgICBjb21wdXRlRGltZW5zaW9ucyA9IHdobHNsQ29tcGlsZVJlc3VsdC0+Y29tcHV0
ZURpbWVuc2lvbnM7CiAKICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CkBAIC0xMDUsOCAr
MTAwLDkgQEAgc3RhdGljIE9wdGlvbmFsPFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0
RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmMKICAgICAgICAgY29tcHV0ZUVudHJ5UG9p
bnQgPSBjb21wdXRlU3RhZ2UuZW50cnlQb2ludDsKICAgICB9CiAKLSAgICBpZiAodHJ5U2V0TWV0
YWxGdW5jdGlvbnMoZnVuY3Rpb25OYW1lLCBjb21wdXRlTGlicmFyeS5nZXQoKSwgbXRsRGVzY3Jp
cHRvciwgY29tcHV0ZUVudHJ5UG9pbnQpKQorICAgIGlmICh0cnlTZXRNZXRhbEZ1bmN0aW9ucyhm
dW5jdGlvbk5hbWUsIGNvbXB1dGVMaWJyYXJ5LmdldCgpLCBtdGxEZXNjcmlwdG9yLCBjb21wdXRl
RW50cnlQb2ludCwgZXJyb3JTY29wZXMpKQogICAgICAgICByZXR1cm4gY29tcHV0ZURpbWVuc2lv
bnM7CisKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCkBAIC0xMTQsMTggKzExMCwxNyBA
QCBzdHJ1Y3QgQ29udmVydFJlc3VsdCB7CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3I+IHBpcGVsaW5lRGVzY3JpcHRvcjsKICAgICBXSExTTDo6Q29tcHV0ZURpbWVu
c2lvbnMgY29tcHV0ZURpbWVuc2lvbnM7CiB9Owotc3RhdGljIE9wdGlvbmFsPENvbnZlcnRSZXN1
bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnN0IGZ1
bmN0aW9uTmFtZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UpCisKK3N0YXRpYyBPcHRpb25hbDxDb252ZXJ0UmVz
dWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBm
dW5jdGlvbk5hbWUsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0
b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMp
CiB7CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IG10bERlc2Ny
aXB0b3I7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0KICAgICBtdGxEZXNj
cmlwdG9yID0gYWRvcHROUyhbTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBuZXddKTsKLQog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIW10bERlc2NyaXB0b3Ip
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBFcnJvciBjcmVhdGluZyBNVExEZXNjcmlwdG9y
ISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFr
ZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IEVycm9yIGNyZWF0aW5nIE1UTERlc2NyaXB0b3IhIikp
OwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTQxLDEyICsxMzYs
MTIgQEAgc3RhdGljIE9wdGlvbmFsPENvbnZlcnRSZXN1bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnMKICAgICAgICAgaWYgKGF1dG8gbGF5b3V0ID0g
Y29udmVydExheW91dCgqZGVzY3JpcHRvci5sYXlvdXQpKQogICAgICAgICAgICAgd2hsc2xEZXNj
cmlwdG9yLT5sYXlvdXQgPSBXVEZNb3ZlKCpsYXlvdXQpOwogICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIExPRyhXZWJHUFUsICIlczogRXJyb3IgY29udmVydGluZyBHUFVQaXBlbGluZUxheW91
dCEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJv
cihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogRXJyb3IgY29udmVydGluZyBHUFVQaXBlbGlu
ZUxheW91dCEiKSk7CiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKGF1dG8gY29tcHV0ZURpbWVuc2lvbnMgPSB0cnlTZXRGdW5jdGlv
bnMoZnVuY3Rpb25OYW1lLCBjb21wdXRlU3RhZ2UsIGRldmljZSwgbXRsRGVzY3JpcHRvci5nZXQo
KSwgd2hsc2xEZXNjcmlwdG9yKSkKKyAgICBpZiAoYXV0byBjb21wdXRlRGltZW5zaW9ucyA9IHRy
eVNldEZ1bmN0aW9ucyhmdW5jdGlvbk5hbWUsIGNvbXB1dGVTdGFnZSwgZGV2aWNlLCBtdGxEZXNj
cmlwdG9yLmdldCgpLCB3aGxzbERlc2NyaXB0b3IsIGVycm9yU2NvcGVzKSkKICAgICAgICAgcmV0
dXJuIHt7IG10bERlc2NyaXB0b3IsICpjb21wdXRlRGltZW5zaW9ucyB9fTsKIAogICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CkBAIC0xNTYsMTQgKzE1MSwxNSBAQCBzdHJ1Y3QgQ3JlYXRlUmVzdWx0
IHsKICAgICBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IHBpcGVsaW5lU3RhdGU7
CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zOwogfTsKLXN0
YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0
YXRlKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCisKK3N0
YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0
YXRlKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUVy
cm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKICAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmlj
ZSgpKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0
ZSgpOiBJbnZhbGlkIEdQVURldmljZSEiKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVF
cnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogSW52YWxpZCBHUFVEZXZpY2UhIikpOwog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIGF1dG8gY29udmVydFJl
c3VsdCA9IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGZ1bmN0aW9uTmFtZSwgZGVz
Y3JpcHRvciwgZGV2aWNlKTsKKyAgICBhdXRvIGNvbnZlcnRSZXN1bHQgPSBjb252ZXJ0Q29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIGRlc2NyaXB0b3IsIGRldmljZSwgZXJy
b3JTY29wZXMpOwogICAgIGlmICghY29udmVydFJlc3VsdCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICBBU1NFUlQoY29udmVydFJlc3VsdC0+cGlwZWxpbmVEZXNjcmlwdG9yKTsK
QEAgLTE3Niw3ICsxNzIsNyBAQCBzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0cnlDcmVh
dGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdAogICAgIE5TRXJyb3Ig
KmVycm9yID0gbmlsOwogICAgIHBpcGVsaW5lID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2
aWNlKCkgbmV3Q29tcHV0ZVBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlwdG9y
LmdldCgpIG9wdGlvbnM6TVRMUGlwZWxpbmVPcHRpb25Ob25lIHJlZmxlY3Rpb246bmlsIGVycm9y
OiZlcnJvcl0pOwogICAgIGlmICghcGlwZWxpbmUpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQ
VUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKCk6ICVzISIsIGVycm9yID8gZXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24uVVRGOFN0cmluZyA6ICJVbmFibGUgdG8gY3JlYXRlIE1UTENvbXB1dGVQ
aXBlbGluZVN0YXRlISIpOworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VT
dHJpbmcoZnVuY3Rpb25OYW1lLCAiOiAiLCAoZXJyb3IgPyBlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbi5VVEY4U3RyaW5nIDogIlVuYWJsZSB0byBjcmVhdGUgTVRMQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUhIikpKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE4NSwx
OSArMTgxLDIwIEBAIHN0YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENv
bXB1dGVQaXBlbGluZVN0YXRlKGNvbnN0IGNoYXIqIGNvbnN0CiAgICAgcmV0dXJuIHt7IHBpcGVs
aW5lLCBjb252ZXJ0UmVzdWx0LT5jb21wdXRlRGltZW5zaW9ucyB9fTsKIH0KIAotUmVmUHRyPEdQ
VUNvbXB1dGVQaXBlbGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BV
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCitSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVDb21wdXRlUGlwZWxpbmU6OnRy
eUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVz
KQogewotICAgIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVSZW5kZXJQaXBl
bGluZTo6Y3JlYXRlKCkiOworICAgIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJH
UFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgpIjsKIAotICAgIGF1dG8gY3JlYXRlUmVzdWx0
ID0gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoZnVuY3Rpb25OYW1lLCBkZXZpY2Us
IGRlc2NyaXB0b3IpOworICAgIGF1dG8gY3JlYXRlUmVzdWx0ID0gdHJ5Q3JlYXRlTVRMQ29tcHV0
ZVBpcGVsaW5lU3RhdGUoZnVuY3Rpb25OYW1lLCBkZXZpY2UsIGRlc2NyaXB0b3IsIGVycm9yU2Nv
cGVzKTsKICAgICBpZiAoIWNyZWF0ZVJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKGNyZWF0
ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKGNy
ZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lv
bnMsIFdURk1vdmUoZXJyb3JTY29wZXMpKSk7CiB9CiAKLUdQVUNvbXB1dGVQaXBlbGluZTo6R1BV
Q29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4mJiBwaXBl
bGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKQotICAgIDog
bV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKK0dQVUNvbXB1dGVQ
aXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVT
dGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNp
b25zLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RC
YXNlKFdURk1vdmUoZXJyb3JTY29wZXMpKQorICAgICwgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGlu
ZShXVEZNb3ZlKHBpcGVsaW5lKSkKICAgICAsIG1fY29tcHV0ZURpbWVuc2lvbnMoY29tcHV0ZURp
bWVuc2lvbnMpCiB7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2JmN2I4ODA4MTVhYzZjYWVlNTI3OGYwOTc2MzJkYmJi
YmQ2MGU5MS4uYzM1NjE2NzNlN2M2NzZiMWVjNmI0MDUzOGU1NjZjNGZkNGViNTJjNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMwIEBACisyMDE5LTA3LTEyICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQ29udmVydCBHUFVDb21wdXRlUGlwZWxpbmUgTE9H
IHN0YXRlbWVudHMgdG8gZ2VuZXJhdGUgR1BVRXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBN
eWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSBHUFVDb21w
dXRlUGlwZWxpbmUgZXJyb3JzIGdlbmVyYXRlIGNvcnJlY3RseS4KKyAgICAgICAgUmV3b3JrIGNo
ZWNrRmFpbCBpbiB0aGUgV0hMU0wgdGVzdCBoYXJuZXNzIHRvIGNoZWNrIGZvciBHUFVFcnJvci4K
KworICAgICAgICAqIHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDoKKyAgICAgICAg
KiB3ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKHJ1blRlc3RzV2l0aERl
dmljZSk6IFJ1bnMgdGVzdHMgaW4gYW4gb2JqZWN0IGFsbCB3aXRoIHRoZSBzYW1lIGRldmljZS4K
KyAgICAgICAgKiB3ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzOiBBZGQgc2hhZGVyIGNv
bXBpbGF0aW9uIGVycm9yIGNoZWNraW5nLgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5
bmMuY2FsbFR5cGVkRnVuY3Rpb24pOgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMu
Y2hlY2tDb21waWxlRmFpbCk6CisgICAgICAgIChIYXJuZXNzLnByb3RvdHlwZS5hc3luYy5fY2Fs
bEZ1bmN0aW9uKToKKyAgICAgICAgKEhhcm5lc3MpOgorICAgICAgICAoYXN5bmMuY2hlY2tGYWls
KToKKyAgICAgICAgKEhhcm5lc3MucHJvdG90eXBlLl9jYWxsRnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6IFJl
bW92ZSBhIFdITFNMIGNvbXBpbGVyIGJ1Z2d5IHRlc3QuCisgICAgICAgICogd2ViZ3B1L3dobHNs
LXJlY3Vyc2l2ZS1zdHJ1Y3RzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3dobHNsLXRlc3QtaGFy
bmVzcy10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVzdC1oYXJu
ZXNzLXRlc3QuaHRtbDoKKwogMjAxOS0wNy0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRmlsdGVyIFNEUCBjIGxpbmVzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJncHUvY29tcHV0ZS1waXBlbGluZS1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNWZkZjJiODI1YzFiYjcxNTdkYzEzYTFkOGZhY2JkYmYzMTFjYjU5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBDb21wdXRlIGNvbXBpbGF0aW9uIGZhaWxl
ZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4gCitQQVNTIENvbXB1dGUgcGlw
ZWxpbmUgY3JlYXRpb24gc3VjY2VlZGVkLiAKK1BBU1MgTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZh
aWxlZCBkdWUgdG8gaW52YWxpZCBHUFVTaGFkZXJNb2R1bGUuIAorUEFTUyBNU0wgcGlwZWxpbmUg
Y3JlYXRpb24gZmFpbGVkIGR1ZSB0byBpbmNvcnJlY3QgZW50cnkgcG9pbnQgc3RyaW5nLiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvY29tcHV0ZS1waXBlbGluZS1lcnJvcnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mOGJiZmUwZGNlZmZmOTM0OGIxZjJiYTJiY2Q0YjBiMDJmZDY1ODIyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLmh0
bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlRlc3QgRXJyb3IgU2NvcGVzLjwvdGl0bGU+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorbGV0IHRlc3RzID0g
e307CitsZXQgZ29vZE1vZHVsZTsKKwordGVzdHNbIkNvbXB1dGUgY29tcGlsYXRpb24gZmFpbGVk
IGR1ZSB0byBpbmNvcnJlY3QgZW50cnkgcG9pbnQgc3RyaW5nLiJdID0gYXN5bmMgZGV2aWNlID0+
IHsKKyAgICBjb25zdCBnb29kV0hMU0wgPSBgCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1
dGUgdm9pZCBfY29tcHV0ZV9tYWluKCkgeyB9CitgOworICAgIGdvb2RNb2R1bGUgPSBkZXZpY2Uu
Y3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogZ29vZFdITFNMLCBpc1dITFNMOiB0cnVlIH0pOwor
CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisKKyAgICBkZXZpY2Uu
Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHsKKyAgICAgICAgY29tcHV0ZVN0YWdlOiB7CisgICAgICAg
ICAgICBtb2R1bGU6IGdvb2RNb2R1bGUsCisgICAgICAgICAgICBlbnRyeVBvaW50OiAiY29tcHV0
ZV9tYWluIgorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcG9wVmFsaWRhdGlvbkVy
cm9yKGRldmljZSk7Cit9OworCit0ZXN0c1siQ29tcHV0ZSBwaXBlbGluZSBjcmVhdGlvbiBzdWNj
ZWVkZWQuIl0gPSBhc3luYyBkZXZpY2UgPT4geworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgi
dmFsaWRhdGlvbiIpOworCisgICAgZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CisgICAg
ICAgIGNvbXB1dGVTdGFnZTogeworICAgICAgICAgICAgbW9kdWxlOiBnb29kTW9kdWxlLAorICAg
ICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21haW4iCisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIHJldHVybiBwb3BOdWxsRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJNU0wgcGlw
ZWxpbmUgY3JlYXRpb24gZmFpbGVkIGR1ZSB0byBpbnZhbGlkIEdQVVNoYWRlck1vZHVsZS4iXSA9
IGFzeW5jIGRldmljZSA9PiB7CisgICAgY29uc3QgYmFkTVNMID0gYFRoaXMgY29kZSBzaG91bGQg
bm90IGNvbXBpbGUuYDsKKworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgibm9uZSIpOworCisg
ICAgY29uc3QgYmFkTVNMTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6
IGJhZE1TTCB9KTsKKworICAgIGF3YWl0IGRldmljZS5wb3BFcnJvclNjb3BlKCk7CisKKyAgICBk
ZXZpY2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAgIGRldmljZS5jcmVhdGVD
b21wdXRlUGlwZWxpbmUoeworICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgIG1v
ZHVsZTogYmFkTVNMTW9kdWxlLAorICAgICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21h
aW4iCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHJldHVybiBwb3BWYWxpZGF0aW9uRXJyb3Io
ZGV2aWNlKTsKK307CisKK3Rlc3RzWyJNU0wgcGlwZWxpbmUgY3JlYXRpb24gZmFpbGVkIGR1ZSB0
byBpbmNvcnJlY3QgZW50cnkgcG9pbnQgc3RyaW5nLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAg
ICBjb25zdCBnb29kTVNMID0gYAora2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbigpIHsgfQorYDsK
KyAgICBjb25zdCBtc2xNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTog
Z29vZE1TTCB9KTsKKworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIpOwor
CisgICAgZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CisgICAgICAgIGNvbXB1dGVTdGFn
ZTogeworICAgICAgICAgICAgbW9kdWxlOiBtc2xNb2R1bGUsCisgICAgICAgICAgICBlbnRyeVBv
aW50OiAiX2NvbXB1dGVfbWFpIgorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcG9w
VmFsaWRhdGlvbkVycm9yKGRldmljZSk7Cit9OworCitydW5UZXN0c1dpdGhEZXZpY2UodGVzdHMp
OworPC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbAppbmRleCA1Y2ZjY2ExYjVlMTQxYWQ0
NzU5YmYyZGFlYTJlZDI1OTQ0NjQ3NTE1Li44NTZhZmE4ZWRjMWExZTcyNDAyYzY2NjZlNGUzOGY4
ZjMzNThmYTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2NvcGVzLXRl
c3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbApA
QCAtODksMzQgKzg5LDEyIEBAIHRlc3RzWyJDYXRjaCBtYW55IGVycm9ycyBpbiBuZXN0ZWQgc2Nv
cGVzLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKICAgICByZXR1cm4gcG9wVmFsaWRhdGlvbkVycm9y
KGRldmljZSk7CiB9OwogCi1jb25zdCBpbml0ID0gYXN5bmMgKCkgPT4gewotICAgIHRyeSB7Ci0g
ICAgICAgIHZhciBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOwotICAgIH0gY2F0Y2gg
KGUpIHsgLyogV2ViR1BVIGlzIG5vdCBzdXBwb3J0ZWQuICovIH0KLQotICAgIGZvciAobGV0IG5h
bWUgaW4gdGVzdHMpCi0gICAgICAgIGRldmljZVByb21pc2VUZXN0KGRldmljZSwgbmFtZSk7Ci19
OwotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGluaXQpOworcnVuVGVzdHNXaXRo
RGV2aWNlKHRlc3RzKTsKIAogLyogSGVscGVyIEZ1bmN0aW9ucyAqLwogCiBjb25zdCBjYXVzZVZh
bGlkYXRpb25FcnJvciA9IGRldmljZSA9PiBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogNCwg
dXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLk1BUF9SRUFEIHwgR1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRF
IH0pOwogY29uc3QgY2F1c2VNZW1vcnlFcnJvciA9IGRldmljZSA9PiBkZXZpY2UuY3JlYXRlQnVm
ZmVyKHsgc2l6ZTogOTk5OTk5OTk5OTksIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5OT05FIH0pOwot
Y29uc3QgcG9wVmFsaWRhdGlvbkVycm9yID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3Bl
KCkudGhlbihlcnJvciA9PiBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoZXJyb3IpKTsKLWNvbnN0IHBv
cE1lbW9yeUVycm9yID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJv
ciA9PiBhc3NlcnRNZW1vcnlFcnJvcihlcnJvcikpOwotY29uc3QgcG9wTnVsbEVycm9yID0gZGV2
aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJvciA9PiBhc3NlcnROdWxsKGVy
cm9yKSk7Ci1jb25zdCBhc3NlcnROdWxsID0gZXJyb3IgPT4gYXNzZXJ0X3RydWUoZXJyb3IgPT09
IG51bGwsICJObyBlcnJvciBleHBlY3RlZCEiKTsKLWNvbnN0IGFzc2VydFZhbGlkYXRpb25FcnJv
ciA9IGVycm9yID0+IGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNlb2YgR1BVVmFsaWRhdGlvbkVy
cm9yLCAiRXhwZWN0ZWQgdmFsaWRhdGlvbiBlcnJvciEiKTsKLWNvbnN0IGFzc2VydE1lbW9yeUVy
cm9yID0gZXJyb3IgPT4gYXNzZXJ0X3RydWUoZXJyb3IgaW5zdGFuY2VvZiBHUFVPdXRPZk1lbW9y
eUVycm9yLCAiRXhwZWN0ZWQgb3V0LW9mLW1lbW9yeSBlcnJvciEiKTsKLQotY29uc3QgZGV2aWNl
UHJvbWlzZVRlc3QgPSAoZGV2aWNlLCBuYW1lKSA9PiB7Ci0gICAgcHJvbWlzZV90ZXN0KGFzeW5j
ICgpID0+IHsKLSAgICAgICAgaWYgKGRldmljZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwotICAgICAgICByZXR1cm4gdGVzdHNbbmFtZV0oZGV2
aWNlKTsKLSAgICB9LCBuYW1lKTsKLX07CisKIDwvc2NyaXB0PgogPC9ib2R5PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJn
cHUtZnVuY3Rpb25zLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMu
anMKaW5kZXggNjQ2ZTgwMWMxNjVkNWMzMGVhODUwZThlYTNmZDk0MGQwMmY0MDQ5ZC4uOGExYWVm
NTgzNzY2OGJlNTM0ZjgwNWJkM2JkZDdkNzdmOGYxOTQzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1
L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKQEAgLTE0OSwzICsxNDksNDMgQEAgYXN5bmMgZnVuY3Rp
b24gbWFwV3JpdGVEYXRhVG9CdWZmZXIoYnVmZmVyLCBkYXRhLCBvZmZzZXQgPSAwKSB7CiAgICAg
d3JpdGVBcnJheS5zZXQobmV3IFVpbnQ4QXJyYXkoZGF0YSksIG9mZnNldCk7CiAgICAgYnVmZmVy
LnVubWFwKCk7CiB9CisKKy8qKiogRnVuY3Rpb25zIGJlbG93IHRoaXMgbGluZSByZXF1aXJlIFdQ
VCB0ZXN0aGFybmVzcy5qcyBhbmQgdGVzdGhhcm5lc3NyZXBvcnQuanMuICoqKi8KKworZnVuY3Rp
b24gcnVuVGVzdHNXaXRoRGV2aWNlKHRlc3RzKSB7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YXIg
ZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeyAv
KiBXZWJHUFUgaXMgbm90IHN1cHBvcnRlZC4gKi8gfQorICAgIAorICAgICAgICBmb3IgKGxldCBu
YW1lIGluIHRlc3RzKQorICAgICAgICAgICAgZGV2aWNlUHJvbWlzZVRlc3QoZGV2aWNlLCB0ZXN0
c1tuYW1lXSwgbmFtZSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGRldmljZVByb21pc2VUZXN0
KGRldmljZSwgZnVuYywgbmFtZSkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGlmIChkZXZpY2UgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuIGZ1bmMoZGV2aWNlKTsKKyAgICB9LCBuYW1l
KTsKK307CisKKy8vIEFzc2VydGluZyBlcnJvcnMuCisKK2NvbnN0IHBvcFZhbGlkYXRpb25FcnJv
ciA9IGRldmljZSA9PiBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oZXJyb3IgPT4gYXNzZXJ0
VmFsaWRhdGlvbkVycm9yKGVycm9yKSk7Citjb25zdCBwb3BNZW1vcnlFcnJvciA9IGRldmljZSA9
PiBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oZXJyb3IgPT4gYXNzZXJ0TWVtb3J5RXJyb3Io
ZXJyb3IpKTsKK2NvbnN0IHBvcE51bGxFcnJvciA9IGRldmljZSA9PiBkZXZpY2UucG9wRXJyb3JT
Y29wZSgpLnRoZW4oZXJyb3IgPT4gYXNzZXJ0TnVsbChlcnJvcikpOworY29uc3QgYXNzZXJ0TnVs
bCA9IGVycm9yID0+IHsKKyAgICBsZXQgYXNzZXJ0aW9uTXNnID0gIk5vIGVycm9yIGV4cGVjdGVk
ISI7CisgICAgaWYgKGVycm9yICYmIGVycm9yLm1lc3NhZ2UpCisgICAgICAgIGFzc2VydGlvbk1z
ZyArPSAiIEdvdDogIiArIGVycm9yLm1lc3NhZ2U7CisgICAgYXNzZXJ0X3RydWUoZXJyb3IgPT09
IG51bGwsIGFzc2VydGlvbk1zZyk7Cit9OworY29uc3QgYXNzZXJ0VmFsaWRhdGlvbkVycm9yID0g
ZXJyb3IgPT4geworICAgIGxldCBhc3NlcnRpb25Nc2cgPSAiRXhwZWN0ZWQgdmFsaWRhdGlvbiBl
cnJvcjogIjsKKyAgICBpZiAoZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkKKyAgICAgICAgYXNzZXJ0
aW9uTXNnICs9IGVycm9yLm1lc3NhZ2U7CisgICAgYXNzZXJ0X3RydWUoZXJyb3IgaW5zdGFuY2Vv
ZiBHUFVWYWxpZGF0aW9uRXJyb3IsIGFzc2VydGlvbk1zZyk7Cit9OworY29uc3QgYXNzZXJ0TWVt
b3J5RXJyb3IgPSBlcnJvciA9PiBhc3NlcnRfdHJ1ZShlcnJvciBpbnN0YW5jZW9mIEdQVU91dE9m
TWVtb3J5RXJyb3IsICJFeHBlY3RlZCBvdXQtb2YtbWVtb3J5IGVycm9yISIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dobHNsLXRlc3QtaGFybmVzcy5qcyBiL0xheW91dFRl
c3RzL3dlYmdwdS9qcy93aGxzbC10ZXN0LWhhcm5lc3MuanMKaW5kZXggY2NlOWY5ZjNiYTA1MWI2
YmU5ZGFlN2NiNzI5OGU3OGE5ZTRlMTEyMS4uOGU2MTA2Nzk0MWVlYmIzM2I5ZmEzZmRiZmE4ODIy
MjJlNDQ3ZjQ2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dobHNsLXRlc3Qt
aGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNz
LmpzCkBAIC0yNTMsNyArMjUzLDcgQEAga2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbihkZXZpY2Ug
X2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigwKV1dKQogYDsKICAgICAgICAgfQogICAgICAg
ICBjb25zdCBjb2RlID0gdGhpcy5fc2hhZGVySGVhZGVyICsgZnVuY3Rpb25zICsgZW50cnlQb2lu
dENvZGU7Ci0gICAgICAgIHRoaXMuX2NhbGxGdW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJn
c1Jlc291cmNlQmluZGluZ3MpOworICAgICAgICBhd2FpdCB0aGlzLl9jYWxsRnVuY3Rpb24oY29k
ZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJjZUJpbmRpbmdzKTsKICAgICAKICAgICAgICAgdHJ5
IHsKICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0aGlzLl9yZXN1bHRCdWZmZXIubWFw
UmVhZEFzeW5jKCk7CkBAIC0zMDMsNiArMzAzLDQzIEBAIGtlcm5lbCB2b2lkIF9jb21wdXRlX21h
aW4oZGV2aWNlIF9jb21wdXRlX2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKICAgICAgICAgdGhp
cy5fY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NMYXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5ncyk7
CiAgICAgfQogCisgICAgLyoqCisgICAgICogQXNzZXJ0IHRoYXQgbWFsZm9ybWVkIHNoYWRlciBj
b2RlIGRvZXMgbm90IGNvbXBpbGUuCisgICAgICogQHBhcmFtIHtTdHJpbmd9IHNvdXJjZSAtIEN1
c3RvbSBjb2RlIHRvIGJlIHRlc3RlZC4KKyAgICAgKi8KKyAgICBhc3luYyBjaGVja0NvbXBpbGVG
YWlsKHNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9kZXZpY2UgPT09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCBlbnRyeVBvaW50
Q29kZTsKKyAgICAgICAgaWYgKHRoaXMuaXNXSExTTCkgeworICAgICAgICAgICAgZW50cnlQb2lu
dENvZGUgPSBgCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBfY29tcHV0ZV9t
YWluKCkgeyB9YDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVudHJ5UG9pbnRDb2Rl
ID0gYAora2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbigpIHsgfWA7CisgICAgICAgIH0KKworICAg
ICAgICBjb25zdCBjb2RlID0gdGhpcy5fc2hhZGVySGVhZGVyICsgc291cmNlICsgZW50cnlQb2lu
dENvZGU7CisKKyAgICAgICAgdGhpcy5fZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9u
Iik7CisgICAgICAgIAorICAgICAgICBjb25zdCBzaGFkZXJzID0gdGhpcy5fZGV2aWNlLmNyZWF0
ZVNoYWRlck1vZHVsZSh7IGNvZGU6IGNvZGUsIGlzV0hMU0w6IHRoaXMuX2lzV0hMU0wgfSk7Cisg
ICAgCisgICAgICAgIHRoaXMuX2RldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoeworICAgICAg
ICAgICAgY29tcHV0ZVN0YWdlOiB7CisgICAgICAgICAgICAgICAgbW9kdWxlOiBzaGFkZXJzLAor
ICAgICAgICAgICAgICAgIGVudHJ5UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgorICAgICAgICAgICAg
fQorICAgICAgICB9KTsKKworICAgICAgICBjb25zdCBlcnJvciA9IGF3YWl0IHRoaXMuX2Rldmlj
ZS5wb3BFcnJvclNjb3BlKCk7CisgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkNvbXBpbGVyIGVycm9yOiBzaGFkZXIgY29kZSBkaWQgbm90IGZhaWwgdG8g
Y29tcGlsZSEiKTsKKyAgICB9CisKICAgICBnZXQgZGV2aWNlKCkgeyByZXR1cm4gdGhpcy5fZGV2
aWNlOyB9CiAKICAgICBfY2xlYXJSZXN1bHRzKCkKQEAgLTM1OSwxMCArMzk2LDggQEAga2VybmVs
IHZvaWQgX2NvbXB1dGVfbWFpbihkZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigw
KV1dKQogICAgICAgICByZXR1cm4gW2FyZ3NMYXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5ncywg
YXJnc0RlY2xhcmF0aW9ucywgZnVuY3Rpb25DYWxsQXJnc107CiAgICAgfQogCi0gICAgX2NhbGxG
dW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3MpCisgICAgYXN5
bmMgX2NhbGxGdW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3Mp
CiAgICAgewotICAgICAgICBjb25zdCBzaGFkZXJzID0gdGhpcy5fZGV2aWNlLmNyZWF0ZVNoYWRl
ck1vZHVsZSh7IGNvZGU6IGNvZGUsIGlzV0hMU0w6IHRoaXMuX2lzV0hMU0wgfSk7Ci0KICAgICAg
ICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gdGhpcy5fZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExh
eW91dCh7CiAgICAgICAgICAgICBiaW5kaW5nczogYXJnc0xheW91dHMKICAgICAgICAgfSk7CkBA
IC0zNzQsNyArNDA5LDEwIEBAIGtlcm5lbCB2b2lkIF9jb21wdXRlX21haW4oZGV2aWNlIF9jb21w
dXRlX2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKICAgICAgICAgICAgIGJpbmRpbmdzOiBhcmdz
UmVzb3VyY2VCaW5kaW5ncwogICAgICAgICB9KTsKIAotICAgICAgICAvLyBGSVhNRTogQ29tcGls
ZSBlcnJvcnMgc2hvdWxkIGJlIGNhdWdodCBhbmQgcmVwb3J0ZWQgaGVyZS4KKyAgICAgICAgdGhp
cy5fZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisKKyAgICAgICAgY29uc3Qg
c2hhZGVycyA9IHRoaXMuX2RldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBjb2RlLCBp
c1dITFNMOiB0aGlzLl9pc1dITFNMIH0pOworICAgIAogICAgICAgICBjb25zdCBwaXBlbGluZSA9
IHRoaXMuX2RldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoewogICAgICAgICAgICAgbGF5b3V0
OiBwaXBlbGluZUxheW91dCwKICAgICAgICAgICAgIGNvbXB1dGVTdGFnZTogewpAQCAtMzkxLDYg
KzQyOSwxMCBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKGRldmljZSBfY29tcHV0ZV9hcmdz
JiBhcmdzIFtbYnVmZmVyKDApXV0pCiAgICAgICAgIHBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKICAg
ICAgICAgCiAgICAgICAgIHRoaXMuX2RldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEVu
Y29kZXIuZmluaXNoKCldKTsKKworICAgICAgICBjb25zdCBlcnJvciA9IGF3YWl0IHRoaXMuX2Rl
dmljZS5wb3BFcnJvclNjb3BlKCk7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTsKICAgICB9CiB9CiAKQEAgLTUwOSw2MSArNTUx
LDkgQEAgYXN5bmMgZnVuY3Rpb24gY2FsbEZsb2F0NHg0RnVuY3Rpb24oZnVuY3Rpb25zLCBuYW1l
LCBhcmdzKQogICAgIHJldHVybiAoYXdhaXQgaGFybmVzcy5jYWxsVHlwZWRGdW5jdGlvbihUeXBl
cy5GTE9BVDRYNCwgZnVuY3Rpb25zLCBuYW1lLCBhcmdzKSkuc3ViYXJyYXkoMCwgMTYpOwogfQog
Ci1hc3luYyBmdW5jdGlvbiBjaGVja0ZhaWwoc291cmNlKSB7Ci0gICAgLy8gRklYTUU6IE1ha2Ug
dGhpcyBoYW5kbGUgZXJyb3JzIHdpdGggcHJvcGVyIG1lc3NhZ2VzIG9uY2Ugd2UgaW1wbGVtZW50
IHRoZSBBUEkgZm9yIHRoYXQuCi0gICAgY29uc3QgbmFtZSA9ICJfX19fdGVzdF9uYW1lX19fXyI7
Ci0gICAgY29uc3QgcHJvZ3JhbSA9IGAKLSAgICAgICAgJHtzb3VyY2V9Ci0KLSAgICAgICAgW251
bXRocmVhZHMoMSwgMSwgMSldCi0gICAgICAgIGNvbXB1dGUgdm9pZCAke25hbWV9KGRldmljZSBp
bnRbXSBidWZmZXIgOiByZWdpc3Rlcih1MCksIGZsb2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3BhdGNo
VGhyZWFkSUQpIHsKLSAgICAgICAgICAgIGJ1ZmZlclswXSA9IDE7Ci0gICAgICAgIH0KLSAgICBg
OwotICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7Ci0gICAgY29uc3Qg
c2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTogcHJvZ3JhbSwg
aXNXSExTTDogdHJ1ZX0pOwotICAgIGNvbnN0IGNvbXB1dGVTdGFnZSA9IHttb2R1bGU6IHNoYWRl
ck1vZHVsZSwgZW50cnlQb2ludDogbmFtZX07Ci0KLSAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yID0ge2JpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHZpc2liaWxpdHk6IDcsIHR5cGU6
ICJzdG9yYWdlLWJ1ZmZlciJ9XX07Ci0gICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNl
LmNyZWF0ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKLSAgICBj
b25zdCBwaXBlbGluZUxheW91dERlc2NyaXB0b3IgPSB7YmluZEdyb3VwTGF5b3V0czogW2JpbmRH
cm91cExheW91dF19OwotICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBp
cGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7Ci0KLSAgICBjb25zdCBjb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yID0ge2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBlbGluZUxh
eW91dH07Ci0gICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lID0gZGV2aWNlLmNyZWF0ZUNvbXB1dGVQ
aXBlbGluZShjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKTsKLQotICAgIGNvbnN0IHNpemUgPSBJ
bnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogMTsKLQotICAgIGNvbnN0IGJ1ZmZlckRlc2Ny
aXB0b3IgPSB7c2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURSB8IEdQVUJ1ZmZl
clVzYWdlLlRSQU5TRkVSX1NSQ307Ci0gICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1
ZmZlcihidWZmZXJEZXNjcmlwdG9yKTsKLSAgICBjb25zdCBidWZmZXJBcnJheUJ1ZmZlciA9IGF3
YWl0IGJ1ZmZlci5tYXBXcml0ZUFzeW5jKCk7Ci0gICAgY29uc3QgYnVmZmVySW50MzJBcnJheSA9
IG5ldyBJbnQzMkFycmF5KGJ1ZmZlckFycmF5QnVmZmVyKTsKLSAgICBidWZmZXJJbnQzMkFycmF5
WzBdID0gMDsKLSAgICBidWZmZXIudW5tYXAoKTsKLQotICAgIGNvbnN0IHJlc3VsdHNCdWZmZXJE
ZXNjcmlwdG9yID0ge3NpemUsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5TVE9SQUdFIHwgR1BVQnVm
ZmVyVXNhZ2UuVFJBTlNGRVJfRFNUIHwgR1BVQnVmZmVyVXNhZ2UuTUFQX1JFQUR9OwotICAgIGNv
bnN0IHJlc3VsdHNCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHJlc3VsdHNCdWZmZXJEZXNj
cmlwdG9yKTsKLQotICAgIGNvbnN0IGJ1ZmZlckJpbmRpbmcgPSB7YnVmZmVyOiByZXN1bHRzQnVm
ZmVyLCBzaXplfTsKLSAgICBjb25zdCBiaW5kR3JvdXBCaW5kaW5nID0ge2JpbmRpbmc6IDAsIHJl
c291cmNlOiBidWZmZXJCaW5kaW5nfTsKLSAgICBjb25zdCBiaW5kR3JvdXBEZXNjcmlwdG9yID0g
e2xheW91dDogYmluZEdyb3VwTGF5b3V0LCBiaW5kaW5nczogW2JpbmRHcm91cEJpbmRpbmddfTsK
LSAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERl
c2NyaXB0b3IpOwotCi0gICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29t
bWFuZEVuY29kZXIoKTsgLy8ge30KLSAgICBjb21tYW5kRW5jb2Rlci5jb3B5QnVmZmVyVG9CdWZm
ZXIoYnVmZmVyLCAwLCByZXN1bHRzQnVmZmVyLCAwLCBzaXplKTsKLSAgICBjb25zdCBjb21wdXRl
UGFzc0VuY29kZXIgPSBjb21tYW5kRW5jb2Rlci5iZWdpbkNvbXB1dGVQYXNzKCk7Ci0gICAgY29t
cHV0ZVBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZSk7Ci0gICAgY29tcHV0
ZVBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBiaW5kR3JvdXApOwotICAgIGNvbXB1dGVQYXNz
RW5jb2Rlci5kaXNwYXRjaCgxLCAxLCAxKTsKLSAgICBjb21wdXRlUGFzc0VuY29kZXIuZW5kUGFz
cygpOwotICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBjb21tYW5kRW5jb2Rlci5maW5pc2goKTsK
LSAgICBkZXZpY2UuZ2V0UXVldWUoKS5zdWJtaXQoW2NvbW1hbmRCdWZmZXJdKTsKLQotICAgIGNv
bnN0IHJlc3VsdHNBcnJheUJ1ZmZlciA9IGF3YWl0IHJlc3VsdHNCdWZmZXIubWFwUmVhZEFzeW5j
KCk7Ci0gICAgbGV0IHJlc3VsdHNJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkocmVzdWx0c0Fy
cmF5QnVmZmVyKTsKLSAgICBpZiAocmVzdWx0c0ludDMyQXJyYXlbMF0gIT09IDApCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigicHJvZ3JhbSBkaWQgbm90IGZhaWwgdG8gY29tcGlsZSIpOwotICAg
IHJlc3VsdHNCdWZmZXIudW5tYXAoKTsKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrRmFpbChzb3VyY2Up
IAoreworICAgIHJldHVybiAoYXdhaXQgaGFybmVzcy5jaGVja0NvbXBpbGVGYWlsKHNvdXJjZSkp
OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNp
dmUtc3RydWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJz
aXZlLXN0cnVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IGRlYjUzNDhkMDMzYzAzNDg4OGUxYmIxMDM3
ZmNkNGUxMDNkM2ExOTkuLmI1N2QzMTk4ODU3Njc3ODhmNzQ3YTZmY2U4YTQyNjlmNTkxYzk1NTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1
Y3RzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAogUEFTUyBtdXR1YWxseVJlY3Vyc2l2
ZVN0cnVjdCAKLVBBU1MgbXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0
cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLmh0bWwK
aW5kZXggODJmMDhkNGFlOTk4YzVhYThiMTZlNmIyNTAxMDQ3Y2ZiYzgzNGYwYS4uMzZlZGMwYjM2
NGE0NWNlNjg2ZWJiNGJkY2MwZjkwODk5NWQyMjdlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLmh0bWwKQEAgLTI0LDI4ICsyNCwyOSBAQCB3aGxz
bFRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0ID0gYXN5bmMgKCkgPT4KICAgICAgICAgCiB9
CiAKLXdobHNsVGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4g
PSBhc3luYyAoKSA9PgotewotICAgIGxldCBwcm9ncmFtID0gYAotICAgICAgICBzdHJ1Y3QgRm9v
IHsKLSAgICAgICAgICAgIHRocmVhZCBCYXIqIGJhcjsKLSAgICAgICAgICAgIGludCBmb287Ci0g
ICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAgICB0aHJlYWQgRm9vKiBm
b287Ci0gICAgICAgICAgICBpbnQgYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCBmb28oKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9vOwotICAgICAgICAgICAgQmFyIGJhcjsKLSAg
ICAgICAgICAgIGZvby5mb28gPSA1NjQ7Ci0gICAgICAgICAgICBiYXIuYmFyID0gNTM7Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwotICAgICAgICB9Ci0g
ICAgYDsKLSAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCAwKTsKLX0KKy8vIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTk3NjY6IFRoaXMgc2hvdWxkIGNvbXBpbGUuCisvLyB3aGxzbFRlc3RzLm11
dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuID0gYXN5bmMgKCkgPT4KKy8v
IHsKKy8vICAgICBsZXQgcHJvZ3JhbSA9IGAKKy8vICAgICAgICAgc3RydWN0IEZvbyB7CisvLyAg
ICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7CisvLyAgICAgICAgICAgICBpbnQgZm9vOworLy8g
ICAgICAgICB9CisvLyAgICAgICAgIHN0cnVjdCBCYXIgeworLy8gICAgICAgICAgICAgdGhyZWFk
IEZvbyogZm9vOworLy8gICAgICAgICAgICAgaW50IGJhcjsKKy8vICAgICAgICAgfQorLy8gICAg
ICAgICBpbnQgZm9vKCkKKy8vICAgICAgICAgeworLy8gICAgICAgICAgICAgRm9vIGZvbzsKKy8v
ICAgICAgICAgICAgIEJhciBiYXI7CisvLyAgICAgICAgICAgICBmb28uZm9vID0gNTY0OworLy8g
ICAgICAgICAgICAgYmFyLmJhciA9IDUzOworLy8gICAgICAgICAgICAgcmV0dXJuIGZvby5iYXIt
PmJhciAtIGJhci5mb28tPmZvbzsKKy8vICAgICAgICAgfQorLy8gICAgIGA7CisvLyAgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7
CisvLyB9CiAKIHJ1blRlc3RzKHdobHNsVGVzdHMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVkLnR4dApp
bmRleCBhMDc1NzdkNTA0ZDk2ZDc3ZGJjNTYyMzE0NDkxNjFlMDUyZTE1YzYwLi43YWJiNzFhMDAx
ZmE4NmVmOWI5YTIwOGIyZjU0OGY1N2YxNGYwMjViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBlY3RlZC50eHQKQEAgLTMwLDQg
KzMwLDYgQEAgUEFTUyBSZXR1cm4gYW4gZXhwZWN0ZWQgZmxvYXQ0eDQgdmFsdWUuCiBQQVNTIFJl
dHVybiBhbiBleHBlY3RlZCBmbG9hdDR4NCB2YWx1ZS4gCiBQQVNTIFJldHVybiBhbiBleHBlY3Rl
ZCBmbG9hdDR4NCB2YWx1ZS4gCiBQQVNTIFJldHVybiBhbiBleHBlY3RlZCBmbG9hdDR4NCB2YWx1
ZS4gCitQQVNTIENvZGUgc2hvdWxkIG5vdCBjb21waWxlLCBhbmQgbm8gZXJyb3IgaXMgcmVwb3J0
ZWQuIAorUEFTUyBTdWNjZXNzZnVsbHkgY29tcGlsaW5nIGNvZGUgaW4gY2hlY2tGYWlsIGlzIGFu
IGVycm9yLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFy
bmVzcy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRl
c3QuaHRtbAppbmRleCBjZDFhYzFmZDIxMWNlOTU1MzRiNDQ2MDBjMWJkNzFhZDEyOGI3OGYwLi44
OTE3ZGMzMzEyOGRiMjljNTE1ZmE5Yjg3ZjM4NzMwMTYwZWYwYjZlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRtbApAQCAtMTc2LDYgKzE3Niwx
OCBAQCB3aGxzbFRlc3RzLmZsb2F0NHg0dGVzdHMgPSAoKSA9PiB7CiAgICAgY2hlY2tBcnJheXMo
ImZsb2F0NHg0IiwgInJldHVybiBpbjBbMF07IiwgW1tmbG9hdDR4NGV4cGVjdGVkXV0sIGZsb2F0
NHg0ZXhwZWN0ZWQpOwogfTsKIAord2hsc2xUZXN0cy5jaGVja0ZhaWxUZXN0cyA9ICgpID0+IHsK
KyAgICB3ZWJHUFVQcm9taXNlVGVzdCgoKSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja0ZhaWwo
YERvb3JzIGFuZCBjb3JuZXJzLCBraWQuIFRoYXQncyB3aGVyZSB0aGV5IGdldGNoYS5gKTsKKyAg
ICB9LCAiQ29kZSBzaG91bGQgbm90IGNvbXBpbGUsIGFuZCBubyBlcnJvciBpcyByZXBvcnRlZC4i
KTsKKworICAgIHdlYkdQVVByb21pc2VUZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGNoZWNr
RmFpbCgiIikuY2F0Y2goZSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNl
b2YgRXJyb3IsICJBbiBleHBlY3RlZCBFcnJvciB3YXMgY2F1Z2h0LiIpOworICAgICAgICB9KTsK
KyAgICB9LCAiU3VjY2Vzc2Z1bGx5IGNvbXBpbGluZyBjb2RlIGluIGNoZWNrRmFpbCBpcyBhbiBl
cnJvci4iKQorfTsKKwogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CiAg
ICAgdHJ5IHsKICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHdobHNsVGVzdHMpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374245</attachid>
            <date>2019-07-16 15:07:24 -0700</date>
            <delta_ts>2019-07-16 16:15:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199773-20190716150723.patch</filename>
            <type>text/plain</type>
            <size>112523</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNhNTY1NTRjYzM4YzEw
YmRjZjVlNDUwYjUzZjY3ZmJkZjg1MmVmOS4uMWU1OGM0MTNkZWZjMmUyMmQ3NWVhNGJiMGVkZjBj
ZGI2ZTU1N2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOS0wNy0xMiAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVdIENvbnZl
cnQgR1BVQ29tcHV0ZVBpcGVsaW5lIExPRyBzdGF0ZW1lbnRzIHRvIGdlbmVyYXRlIEdQVUVycm9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5Nzcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgR2Vu
ZXJhdGUgYSBHUFVFcnJvciBpZiBHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRpb24gZmFpbHMuCisg
ICAgICAgIFJld29yayB0aGUgV0hMU0wgdGVzdCBoYXJuZXNzIHRvIHRha2UgYWR2YW50YWdlIG9m
IHRoaXMuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLmh0
bWwKKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcjo6dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaDogCisgICAgICAgICAgICAgICAgTm93
IGluaGVyaXRzIGZyb20gR1BVT2JqZWN0QmFzZSwgdGhvdWdoIHRoaXMgaXNuJ3Qgc3VwZXIgdXNl
ZnVsIHlldAorICAgICAgICAgICAgICAgIHNpbmNlIEdQVUNvbXB1dGVQaXBlbGluZSBpdHNlbGYg
ZG9lcyBub3QgZXhwb3NlIGFueSBvcGVyYXRpb25zIHRoYXQgY2FuIGVycm9yLiAKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BV
QnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0cnlTZXRNZXRhbEZ1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjp0cnlTZXRGdW5jdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUpOgorCisy
MDE5LTA3LTExICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYkdQVV0gTW92ZSBlcnJvciBzY29wZXMgb3V0IG9mIEdQVURldmljZSBmb3IgbW9yZSBwb3J0
YWJsZSBlcnJvciBnZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhm
aWVsZC4KKworICAgICAgICBNb3ZlIGVycm9yIGdlbmVyYXRpb24gaW50byBhIHNlcGFyYXRlIFJl
ZkNvdW50ZWQgY2xhc3MgdG8gYWxsb3cgR1BVIG9iamVjdHMgdG8gZ2VuZXJhdGUgCisgICAgICAg
IGVycm9ycyBpbmRlcGVuZGVudCBvZiBhbnkgR1BVRGV2aWNlLgorICAgICAgICBDcmVhdGUgR1BV
T2JqZWN0QmFzZSB0byBkZWxlZ2F0ZSBlcnJvciBnZW5lcmF0aW9uIGFuZCByZWZhY3RvciBHUFVC
dWZmZXIgdG8gaW5oZXJpdCBmcm9tIEdQVU9iamVjdEJhc2UuCisKKyAgICAgICAgTm8gYmVoYXZp
b3IgY2hhbmdlIG9yIG5ldyB0ZXN0cy4gRXJyb3Igc2NvcGVzIGNvdmVyZWQgYnkgZXJyb3Itc2Nv
cGVzLXRlc3QuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6IE5vdyBj
cmVhdGVzIGEgR1BVRXJyb3JHZW5lcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZUJ1ZmZlciBjb25zdCk6IFBhc3MgdGhlIEdQVUVycm9yR2VuZXJhdG9yIHRvIGFu
eSBjcmVhdGVkIEdQVUJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3Jl
YXRlQnVmZmVyTWFwcGVkIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2U6OnBvcEVycm9yU2NvcGUpOiBTaG91bGRuJ3QgYmUgY29uc3QuIENhbiBqdXN0IGFzayBm
b3IgdGhlIEdQVUVycm9yIHJhdGhlciB0aGFuIHBhc3NpbmcgYSBsYW1iZGEuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OnB1c2hFcnJvclNjb3BlIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6cG9wRXJyb3JTY29wZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OnB1c2hFcnJvclNjb3BlKToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oOiBOb3cgaW5oZXJpdHMgZnJv
bSBHUFVPYmplY3RCYXNlIGZvciBlcnJvciBnZW5lcmF0aW9uIGVhc2UuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVE
ZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcik6IEVuc3VyZSBHUFVCdWZmZXJzIHJlZmVyZW5jZSB0aGUg
R1BVRXJyb3JHZW5lcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnB1c2hFcnJv
clNjb3BlKTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZCBoZXJlLgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjpwb3BFcnJvclNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVURldmljZTo6cmVnaXN0ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOiBNb3ZlIGVycm9yIHNjb3BlIGxvZ2ljIG91dC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JHZW5lcmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUVycm9yR2VuZXJhdG9yOjpwdXNoRXJyb3JTY29wZSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVFcnJvckdlbmVyYXRvcjo6cG9wRXJyb3JTY29wZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVFcnJvckdlbmVyYXRvcjo6Z2VuZXJhdGVFcnJvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yR2VuZXJhdG9yLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVRXJyb3JHZW5lcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU9iamVjdEJhc2UuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHUFVPYmplY3RCYXNlOjpnZW5lcmF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVU9iamVjdEJhc2U6OkdQVU9iamVjdEJhc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbTogVXNlIHRoZSBHUFVFcnJvckdlbmVyYXRv
ciBkaXJlY3RseSBkdXJpbmcgYnVmZmVyIGNyZWF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R1BV
QnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZl
cjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpzdWJtaXQpOiBQcmV2ZW50IHBvc3NpYmxlIG51
bGwgZGVyZWZlcmVuY2UuCisKKzIwMTktMDctMTAgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgR1BVRXJyb3IgYW5kIGVycm9y
IHNjb3BlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5NjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAg
ICAgQWRkIEdQVUVycm9yRmlsdGVyLCBHUFVFcnJvciwgYW5kIHRoZSBhYmlsaXR5IHRvIHB1c2gg
YW5kIHBvcCBlcnJvciBzY29wZXMgb24gYSBHUFVEZXZpY2UuCisgICAgICAgIFRoaXMgd2lsbCBh
bGxvdyB1cyB0byBjaGVjayBmb3IgV2ViR1BVIGVycm9ycyBmcm9tIEphdmFTY3JpcHQuCisgICAg
ICAgIEN1cnJlbnRseSwgb25seSBzb21lIEdQVUJ1ZmZlciBjcmVhdGlvbiBlcnJvcnMgYXJlIHJl
cG9ydGVkIGZvciB0ZXN0aW5nOyBtb3JlIGVycm9ycyB3aWxsIGZvbGxvdyBpbiBsYXRlciBwYXRj
aGVzLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS9lcnJvci1zY29wZXMtdGVzdC5odG1sCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9HUFVFcnJvckZpbHRlci5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L0dQVU91dE9mTWVtb3J5RXJyb3IuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9HUFVWYWxpZGF0aW9uRXJyb3IuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVRGV2aWNlOjpwdXNoRXJyb3JTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2U6OnBvcEVycm9yU2NvcGUpOiBSZXNvbHZlIHRoZSBQcm9taXNlIGhlcmUsIHNpbmNlIEdQ
VURldmljZSBzaG91bGRuJ3Qgd29ycnkgYWJvdXQgRE9NIGxheWVyLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZUVycm9yU2NvcGVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2VFcnJvclNjb3Blczo6cHVzaEVycm9yU2NvcGUpOiBEZWxlZ2F0ZXMgdG8gV2ViR1BVRGV2
aWNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlRXJyb3JTY29wZXM6OnBvcEVycm9y
U2NvcGUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJv
clNjb3Blcy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VF
cnJvclNjb3Blcy5pZGw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNw
cDogVGhlIGFjdHVhbCBlcnJvciBzdGFjayBsaXZlcyBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpwdXNoRXJyb3JTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6
OnBvcEVycm9yU2NvcGUpOiBDYWxscyBhIGNhbGxiYWNrIHdpdGggYSBHUFVFcnJvciwgaWYgYW55
LgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZWdpc3RlckVycm9yKTogQWN0dWFsbHkg
Y3JlYXRlcyBHUFVFcnJvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRXJyb3IpOiBGYWN0b3J5IGZ1bmN0aW9uIGZv
ciB2YXJpb3VzIGVycm9yIHR5cGVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVFcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJy
b3JGaWx0ZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU91
dE9mTWVtb3J5RXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHUFVPdXRPZk1lbW9y
eUVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWYWxp
ZGF0aW9uRXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25F
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJvcjo6R1BV
VmFsaWRhdGlvbkVycm9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFs
aWRhdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVy
cm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnZhbGlk
YXRlQnVmZmVyVXNhZ2UpOiBDcmVhdGUgYW4gYWN0dWFsIEdQVVZhbGlkYXRpb25FcnJvciA6KQor
ICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjp0cnlDcmVhdGUpOiBDcmVhdGUgR1BVT3V0T2ZN
ZW1vcnlFcnJvcnMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgQWRkIGZpbGUvbmFtZSBy
ZWZlcmVuY2VzOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAg
IE1pc3NpbmcgaW5jbHVkZXM6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xD
aGVja1RleHR1cmVSZWZlcmVuY2VzLmNwcDoKKwogMjAxOS0wNy0xNiAgUm9iaW4gTW9yaXNzZXQg
IDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExTTF0gRGVzdWdhciBmb3IgbG9v
cHMgYW5kIHdoaWxlIGxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNjZTUxNjYxMzEwNDFk
ZWI3MWM5ZTdiZTk1NTc5MDU1OTM3OTg1ODIuLjg0ZDg0YWM1NzJjMjg1NTMwYTRjZDE5NmZlNzg2
Y2U2NmJlMGRjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODAsOSArNDgwLDExIEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JX
cml0ZUJpdHMuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29tcGFyZUZ1bmN0aW9uLmlkbAog
ICAgIE1vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwKKyAg
ICBNb2R1bGVzL3dlYmdwdS9HUFVFcnJvckZpbHRlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9H
UFVFeHRlbnQzRC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3AuaWRsCiAgICAgTW9k
dWxlcy93ZWJncHUvR1BVT3JpZ2luM0QuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZN
ZW1vcnlFcnJvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCkBAIC00OTAsNiArNDkyLDcgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0
dXJlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRm9ybWF0Lmlk
bAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVVc2FnZS5pZGwKKyAgICBNb2R1bGVzL3dl
YmdwdS9HUFVWYWxpZGF0aW9uRXJyb3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVWZXJ0ZXhCdWZm
ZXJEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5pZGwKQEAgLTUwOCw2ICs1MTEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxF
UwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2VFcnJvclNjb3Blcy5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2Ny
aXB0b3JCYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmlk
bAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGM2OWQzZGQ0MTdiYmQ5MjRmOTUyMmMxNDc0OGNlODFlMjdkMDEzZDEuLmE2ODEzNzYwMWQ4Mjk0
YWZiMTJjODZiYmY0MWMxNjc5ZDI4MWY3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDEwICszMzAsMTIgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvcldyaXRlQml0cy5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50M0QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmdwdS9HUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQ
VU9yaWdpbjNELmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1v
cnlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJE
ZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3Rh
Z2VCaXQuaWRsCkBAIC0zNDEsNiArMzQzLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJn
cHUvR1BVU3RvcmVPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1
cmVEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVy
ZUZvcm1hdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVVc2Fn
ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2Ny
aXB0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVWZXJ0ZXhCdWZmZXJE
ZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmlkbApAQCAtMzYxLDYgKzM2NCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggMzdjM2M4YjFiYTUyYjI2MzBmMWYwNTNmMmIwNTI1MzVjZGM1MGNiNy4uNGEyNmQyOTJjNDkx
ZjQ5YmNiNjQxZWQ2ZmM3ZDgwNGNkYzZiZTdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTYwOSw2ICs2MDksOCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbXBhcmVGdW5jdGlv
bi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BV
Q29tcGFyZUZ1bmN0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVEZXB0aFN0ZW5jaWxTdGF0ZURl
c2NyaXB0b3IuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHUFVFcnJvckZpbHRlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTR1BVRXJyb3JGaWx0ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVFeHRlbnQzRC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVRXh0ZW50M0QuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5j
cHAKQEAgLTYxNyw2ICs2MTksOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dQVUxvYWRPcC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR1BVTG9hZE9wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3JpZ2luM0QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVU9yaWdpbjNELmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVU2FtcGxlckRlc2Ny
aXB0b3IuY3BwCkBAIC02MzEsNiArNjM1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVUZXh0dXJlRm9ybWF0LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVUZXh0dXJlRm9ybWF0LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVVGV4dHVyZVVzYWdl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVU
ZXh0dXJlVXNhZ2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHUFVWYWxpZGF0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVZhbGlkYXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQ
VVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcApAQCAtMTk0
Myw2ICsxOTQ5LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmMKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YkdQVURldmljZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR1BVRGV2aWNlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVURldmljZUVycm9yU2NvcGVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVBpcGVsaW5lTGF5b3V0
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2VlYjQyN2MyN2QxOGFjNGNi
ODdjOWZiMmZlZjAzZWUwNmJmNjY2ZC4uYzYxNzcxNjE0M2EwNzFhNjlhMGYyZWVkYzk1MTNkZDdi
YzFlNjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zODYsOSArMzg2LDEx
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQ
VUJ1ZmZlclVzYWdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb21w
YXJlRnVuY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVURlcHRo
U3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUvR1BVRXJyb3JGaWx0ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQ
VUV4dGVudDNELmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3Au
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVPdXRPZk1lbW9yeUVycm9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwg
XApAQCAtMzk2LDYgKzM5OCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRm9ybWF0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlVXNhZ2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4QnVmZmVyRGVzY3JpcHRvci5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCBcCkBAIC00
MTQsNiArNDE3LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZUVycm9yU2NvcGVzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZDZhY2JiMjQyMWNiZjRkNGM1YWVmMThiMzU0ODM5YjcxZDY2Mzk2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVRXJyb3JGaWx0ZXIuaWRsCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdl
YgorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
R1BVCitdIGVudW0gR1BVRXJyb3JGaWx0ZXIgeworICAgICJub25lIiwKKyAgICAib3V0LW9mLW1l
bW9yeSIsCisgICAgInZhbGlkYXRpb24iCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9HUFVPdXRPZk1lbW9yeUVycm9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGQzZDAw
NzM3OTM0ZTRmNzdlOWE2MjM1ZWQ0MzE5NTQ1OWNiNjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwKQEAgLTAs
MCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2Vi
CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgQ29uc3RydWN0b3IoKSwKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitd
IGludGVyZmFjZSBHUFVPdXRPZk1lbW9yeUVycm9yIHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVVmFsaWRhdGlvbkVycm9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUx
M2MxODg3ZWY4YjQwNzljMDRjNWNiZWE2NmVjYTY3MzI3ZjQ4MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1
d2ViCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIG1lc3NhZ2UpLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdQVVZhbGlkYXRpb25FcnJvciB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tUZXh0dXJlUmVmZXJl
bmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNr
VGV4dHVyZVJlZmVyZW5jZXMuY3BwCmluZGV4IGMwMmRiODlkM2NiNmMwYTc1MWE2MjJlYjc5ZGQz
NGU3YjdkNTYzZjkuLjczODZiMTA2YmI4MGQzNjdlZjMxZGQ2YjUzNTllYWI5YTU3NzkyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tU
ZXh0dXJlUmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xDaGVja1RleHR1cmVSZWZlcmVuY2VzLmNwcApAQCAtMjYsMTAgKzI2LDE1IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0hMU0xDaGVja1RleHR1cmVSZWZlcmVu
Y2VzLmgiCiAKLSNpbmNsdWRlICJXSExTTEluZmVyVHlwZXMuaCIKLQogI2lmIEVOQUJMRShXRUJH
UFUpCiAKKyNpbmNsdWRlICJXSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oIgorI2luY2x1ZGUgIldI
TFNMQXJyYXlUeXBlLmgiCisjaW5jbHVkZSAiV0hMU0xJbmZlclR5cGVzLmgiCisjaW5jbHVkZSAi
V0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJXSExTTFBvaW50ZXJUeXBl
LmgiCisjaW5jbHVkZSAiV0hMU0xWaXNpdG9yLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIFdITFNMIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUmVjdXJzaW9uQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwCmluZGV4IDZhZjg4ZmUz
ZTRmMmU4M2Y2YmIzNDc0MzYzZDZkZmRlNjk0NTdmNTQuLmJhNDk3YjMzNDhiZGRiMzhkNzk2ODA4
ZTMyZDc0MDdkNGNmYmUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUmVjdXJzaW9uQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xSZWN1cnNpb25DaGVja2VyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiV0hMU0xDYWxsRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgIldI
TFNMRnVuY3Rpb25EZWZpbml0aW9uLmgiCisjaW5jbHVkZSAiV0hMU0xQcm9ncmFtLmgiCiAjaW5j
bHVkZSAiV0hMU0xWaXNpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAppbmRleCBkZTIwNGJiNWNhNTFiZTEwM2RhYWFjNTgy
MjJmNDBkNzBhY2E5MmNhLi5lMWQyYWNjMzFiODY4MmY2ODA2ZjgyZGYzMGU5NDJiZDJjZmFhM2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMjksMTcgKzI5LDE3IEBA
CiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1PcHRpb25hbDxHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yPiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCkgY29uc3QKK09wdGlvbmFsPEdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3I+IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OnRyeUNyZWF0
ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVz
KSBjb25zdAogewogICAgIGF1dG8gcGlwZWxpbmVMYXlvdXQgPSBsYXlvdXQgPyBtYWtlUmVmUHRy
KGxheW91dC0+cGlwZWxpbmVMYXlvdXQoKSkgOiBudWxscHRyOwogCiAgICAgYXV0byBjb21wdXRl
ID0gY29tcHV0ZVN0YWdlLnRyeUNyZWF0ZUdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yKCk7CiAg
ICAgaWYgKCFjb21wdXRlKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVEZXZpY2U6OmNyZWF0
ZUNvbXB1dGVQaXBlbGluZSgpOiBJbnZhbGlkIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yISIp
OworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKCJHUFVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSgpOiBJbnZhbGlkIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yISIpOwog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5oCmluZGV4IGE0NTM5MDJkYmQ0MjUzODFmMWQ3NWJkMjg4YWUxMTYxMzdhMzA1OGMu
LjVjMzMzZWEzNjg5NjMyYTUxMzczZjZjNWZiMDg1MzU3MDM2MGRmMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTMzLDEwICszMywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIEdQVUVycm9yU2NvcGVzOworCiBzdHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcjsKIAogc3RydWN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgOiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlIHsKLSAgICBPcHRpb25hbDxHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yPiB0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCkg
Y29uc3Q7CisgICAgT3B0aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gdHJ5Q3Jl
YXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihHUFVFcnJvclNjb3BlcyYpIGNvbnN0Owog
CiAgICAgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IGYw
NTlhZDg5ZTA5ZDRmNGE3NGY4YjhlODEzZjQ0ZjVhMGE5YjllMWUuLjEzYTBjZjBiMmM5MTRhMWNl
ZDZjNGIyN2FkYTFkOWI0MmVhYjAzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkdQVUJpbmRHcm91cC5o
IgogI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKICNpbmNsdWRlICJHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmgiCkBAIC00Miw2ICs0Myw4IEBACiAjaW5jbHVkZSAiR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiSlNHUFVPdXRPZk1l
bW9yeUVycm9yLmgiCisjaW5jbHVkZSAiSlNHUFVWYWxpZGF0aW9uRXJyb3IuaCIKICNpbmNsdWRl
ICJKU1dlYkdQVUJ1ZmZlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJH
UFVCaW5kR3JvdXAuaCIKQEAgLTYzLDYgKzY2LDggQEAKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVU3dhcENoYWluLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc2LDEy
ICs4MSwxMyBAQCBSZWZQdHI8V2ViR1BVRGV2aWNlPiBXZWJHUFVEZXZpY2U6OnRyeUNyZWF0ZShS
ZWY8Y29uc3QgV2ViR1BVQWRhcHRlcj4mJiBhZGFwdGVyKQogV2ViR1BVRGV2aWNlOjpXZWJHUFVE
ZXZpY2UoUmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlciwgUmVmPEdQVURldmljZT4m
JiBkZXZpY2UpCiAgICAgOiBtX2FkYXB0ZXIoV1RGTW92ZShhZGFwdGVyKSkKICAgICAsIG1fZGV2
aWNlKFdURk1vdmUoZGV2aWNlKSkKKyAgICAsIG1fZXJyb3JTY29wZXMoR1BVRXJyb3JTY29wZXM6
OmNyZWF0ZSgpKQogewogfQogCiBSZWY8V2ViR1BVQnVmZmVyPiBXZWJHUFVEZXZpY2U6OmNyZWF0
ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewot
ICAgIGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yKTsK
KyAgICBhdXRvIGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3JpcHRvciwg
R1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpOb3RNYXBwZWQsIG1fZXJyb3JTY29wZXMuY29weVJlZigp
KTsKICAgICByZXR1cm4gV2ViR1BVQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsKIH0K
IApAQCAtODksNyArOTUsNyBAQCBWZWN0b3I8SlNDOjpKU1ZhbHVlPiBXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUJ1ZmZlck1hcHBlZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbgogewogICAgIEpTQzo6
SlNWYWx1ZSB3cmFwcGVkQXJyYXlCdWZmZXIgPSBKU0M6OmpzTnVsbCgpOwogCi0gICAgYXV0byBi
dWZmZXIgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQnVmZmVyKGRlc2NyaXB0b3IsIHRydWUpOworICAg
IGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yLCBHUFVC
dWZmZXJNYXBwZWRPcHRpb246OklzTWFwcGVkLCBtX2Vycm9yU2NvcGVzLmNvcHlSZWYoKSk7CiAg
ICAgaWYgKGJ1ZmZlcikgewogICAgICAgICBhdXRvIGFycmF5QnVmZmVyID0gYnVmZmVyLT5tYXBP
bkNyZWF0aW9uKCk7CiAgICAgICAgIHdyYXBwZWRBcnJheUJ1ZmZlciA9IHRvSlMoJnN0YXRlLCBK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3Qo
KSksIGFycmF5QnVmZmVyKTsKQEAgLTE1OCwxMSArMTY0LDExIEBAIFJlZjxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVS
ZW5kZXJQCiAKIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRl
Q29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpIGNvbnN0CiB7Ci0gICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50
cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCk7CisgICAgYXV0byBncHVEZXNj
cmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
KG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikKICAgICAgICAgcmV0dXJu
IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIpOwogCi0gICAgYXV0byBwaXBl
bGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3Ip
OworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5l
KCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdl
YkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpKTsKIH0KIApAQCAt
MTgwLDYgKzE4NiwxNiBAQCBSZWY8V2ViR1BVUXVldWU+IFdlYkdQVURldmljZTo6Z2V0UXVldWUo
KSBjb25zdAogICAgIHJldHVybiBtYWtlUmVmKCptX3F1ZXVlLmdldCgpKTsKIH0KIAordm9pZCBX
ZWJHUFVEZXZpY2U6OnBvcEVycm9yU2NvcGUoRXJyb3JQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAg
ICBTdHJpbmcgZmFpbE1lc3NhZ2U7CisgICAgT3B0aW9uYWw8R1BVRXJyb3I+IGVycm9yID0gbV9l
cnJvclNjb3Blcy0+cG9wRXJyb3JTY29wZShmYWlsTWVzc2FnZSk7CisgICAgaWYgKGZhaWxNZXNz
YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGVycm9yKTsKKyAgICBlbHNl
CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiR1BV
RGV2aWNlOjpwb3BFcnJvclNjb3BlKCk6ICIgKyBmYWlsTWVzc2FnZSB9KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggMjFkMzcxYTAzYTc1MTU0
NGE5MWQ3YzhhMWFkMGNkNjIxNTk1YWExYi4uZjRlNDNmMjM1NDdlN2JlMGM5ZmZhMDQ0MzQxZmM2
YTg2MDBlMzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAi
R1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlICJKU0RP
TVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXIuaCIKICNpbmNsdWRl
ICJXZWJHUFVRdWV1ZS5oIgogI2luY2x1ZGUgIldlYkdQVVN3YXBDaGFpbkRlc2NyaXB0b3IuaCIK
QEAgLTQzLDYgKzQ1LDggQEAgY2xhc3MgSlNWYWx1ZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBHUFVPdXRPZk1lbW9yeUVycm9yOworY2xhc3MgR1BVVmFsaWRhdGlvbkVycm9yOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdlYkdQVUJpbmRHcm91cDsKIGNs
YXNzIFdlYkdQVUJpbmRHcm91cExheW91dDsKQEAgLTY2LDYgKzcwLDExIEBAIHN0cnVjdCBXZWJH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3I7CiAKK2VudW0g
Y2xhc3MgR1BVRXJyb3JGaWx0ZXI7CisKK3VzaW5nIEVycm9ySURMVW5pb24gPSBJRExVbmlvbjxJ
RExJbnRlcmZhY2U8R1BVT3V0T2ZNZW1vcnlFcnJvcj4sIElETEludGVyZmFjZTxHUFVWYWxpZGF0
aW9uRXJyb3I+PjsKK3VzaW5nIEVycm9yUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExO
dWxsYWJsZTxFcnJvcklETFVuaW9uPj47CisKIGNsYXNzIFdlYkdQVURldmljZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdQVURldmljZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8V2Vi
R1BVRGV2aWNlPiB0cnlDcmVhdGUoUmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYpOwpAQCAtOTEs
MTIgKzEwMCwxNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8V2ViR1BVUXVldWU+IGdldFF1ZXVlKCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHB1c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyIGZpbHRlcikg
eyBtX2Vycm9yU2NvcGVzLT5wdXNoRXJyb3JTY29wZShmaWx0ZXIpOyB9CisgICAgdm9pZCBwb3BF
cnJvclNjb3BlKEVycm9yUHJvbWlzZSYmKTsKKwogcHJpdmF0ZToKICAgICBXZWJHUFVEZXZpY2Uo
UmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYsIFJlZjxHUFVEZXZpY2U+JiYpOwogCiAgICAgUmVm
PGNvbnN0IFdlYkdQVUFkYXB0ZXI+IG1fYWRhcHRlcjsKICAgICBSZWY8R1BVRGV2aWNlPiBtX2Rl
dmljZTsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJHUFVRdWV1ZT4gbV9xdWV1ZTsKKworICAgIFJl
ZjxHUFVFcnJvclNjb3Blcz4gbV9lcnJvclNjb3BlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZUVycm9yU2NvcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZUVycm9yU2NvcGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTMxMTAwZGI1NDUxMzg3OTQ0NzU2
YzBmYjAxZmQ4ODJhMzAxYTgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
RXJyb3JTY29wZXMuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVFcnJv
ckZpbHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViR1BVRGV2aWNlRXJy
b3JTY29wZXM6OnB1c2hFcnJvclNjb3BlKFdlYkdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvckZp
bHRlciBmaWx0ZXIpCit7CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKGZpbHRlcik7Cit9CisK
K3ZvaWQgV2ViR1BVRGV2aWNlRXJyb3JTY29wZXM6OnBvcEVycm9yU2NvcGUoV2ViR1BVRGV2aWNl
JiBkZXZpY2UsIEVycm9yUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgZGV2aWNlLnBvcEVycm9y
U2NvcGUoV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjBmMDdh
YmUzOThiZjlhNzM0ZDQ0NmFmNTg5NDUzYzBkYjBjMTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBHUFVFcnJvckZpbHRlcjsKKworY2xhc3MgV2ViR1BVRGV2aWNlRXJyb3JT
Y29wZXMgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHB1c2hFcnJvclNjb3BlKFdlYkdQVURl
dmljZSYsIEdQVUVycm9yRmlsdGVyKTsKKyAgICBzdGF0aWMgdm9pZCBwb3BFcnJvclNjb3BlKFdl
YkdQVURldmljZSYsIEVycm9yUHJvbWlzZSYmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWM3ODUyN2JjZTI5MDA4ZjQ5YmUwZDMxOTBjMzFlY2YwMTg1OWI0NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZUVycm9yU2Nv
cGVzLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ3B1d2ViLmdp
dGh1Yi5pby9ncHV3ZWIKKwordHlwZWRlZiAoR1BVT3V0T2ZNZW1vcnlFcnJvciBvciBHUFVWYWxp
ZGF0aW9uRXJyb3IpIEdQVUVycm9yOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIHBhcnRpYWwgaW50ZXJmYWNlIFdlYkdQVURldmlj
ZSB7CisgICAgdm9pZCBwdXNoRXJyb3JTY29wZShHUFVFcnJvckZpbHRlciBmaWx0ZXIpOworICAg
IFByb21pc2U8R1BVRXJyb3I/PiBwb3BFcnJvclNjb3BlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA1ZDE4ZTE0M2Q4ODVjMjhmNmZlNmE0NzQ3YmY1YWIwYTI2NzAxZGIyLi5jYzZmMmJkYmM0ODI5
Mzk4MTE2YjEwOTg1MzY5NTY0NjAxZmI2YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzY3LDYgKzM2
Nyw3IEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2UuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVM
YXlvdXQuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
Y3BwCkBAIC0xODc1LDYgKzE4NzYsOSBAQCBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RM
aWdodFNvdXJjZS5jcHAKIAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFsaWRhdGlvbkVycm9yLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogCkBAIC0yODA0LDkgKzI4MDgsMTEgQEAgSlNH
UFVCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVCdWZmZXJVc2FnZS5jcHAKIEpTR1BVQ29tcGFy
ZUZ1bmN0aW9uLmNwcAogSlNHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuY3BwCitKU0dQ
VUVycm9yRmlsdGVyLmNwcAogSlNHUFVFeHRlbnQzRC5jcHAKIEpTR1BVTG9hZE9wLmNwcAogSlNH
UFVPcmlnaW4zRC5jcHAKK0pTR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAKIEpTR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmNwcAogSlNHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKIEpTR1BVU2hhZGVy
U3RhZ2VCaXQuY3BwCkBAIC0yODE0LDYgKzI4MjAsNyBAQCBKU0dQVVN0b3JlT3AuY3BwCiBKU0dQ
VVRleHR1cmVEZXNjcmlwdG9yLmNwcAogSlNHUFVUZXh0dXJlRm9ybWF0LmNwcAogSlNHUFVUZXh0
dXJlVXNhZ2UuY3BwCitKU0dQVVZhbGlkYXRpb25FcnJvci5jcHAKIEpTR1BVVmVydGV4QXR0cmli
dXRlRGVzY3JpcHRvci5jcHAKIEpTR1BVVmVydGV4QnVmZmVyRGVzY3JpcHRvci5jcHAKIEpTR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmNwcApAQCAtMzM2Niw2ICszMzczLDcgQEAgSlNXZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuY3BwCiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKIEpTV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKIEpTV2ViR1BVRGV2aWNlLmNwcAorSlNX
ZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAKIEpTV2ViR1BVUXVldWUuY3BwCiBKU1dlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBKU1dlYkdQVVBpcGVsaW5lTGF5b3V0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDI2NzRlNDZmZjMyMWRiYTFiYzIxYTc3MjBhMWY5MzRjYzc1OTkwNWQuLmFlZWVkYTlmNTJlZDRk
ZDZjNTk4NzNkMDA0NjQ0MTQxZjcxMmZlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTA1LDYgKzEzOTA1LDggQEAKIAkJ
RDAzMjExQ0UyMUFDOTU0RTAwNzYzQ0YyIC8qIEdQVVJlbmRlclBhc3NFbmNvZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdQVVJlbmRlclBhc3NFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwMzIxMUNGMjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDMyMTFEMDIxQUM5NTRGMDA3NjNDRjIgLyogR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAzNTg2QjEyMkQ3RjJFQTAw
REEwMjg0IC8qIEdQVUVycm9yU2NvcGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yU2NvcGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMzU4NkIyMjJEN0YyRUEwMERBMDI4
NCAvKiBHUFVFcnJvclNjb3Blcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvclNjb3Bl
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMwMEY5
RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDNDODQ5
QTIxRkZDNjY3MDAwMjIyN0YgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMDNDODQ5QzIxRkZDN0ZDMDAwMjIyN0YgLyogR1BVQ29tcGFy
ZUZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbXBhcmVGdW5jdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM5NjksNiArMTM5NzEsMjAgQEAKIAkJRDA5M0QyMjUy
MTc5NTFENDAwMzI5MjE3IC8qIEdQVUNhbnZhc0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BV
Q2FudmFzQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDkzRDIyNzIx
Nzk1MUQ0MDAzMjkyMTcgLyogR1BVQ2FudmFzQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR1BVQ2FudmFzQ29u
dGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwOTNEMjI5MjE3OTU0MTYw
MDMyOTIxNyAvKiBHUFVDYW52YXNDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUNh
bnZhc0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDlBRkFGRjIy
RDAyRTUzMDBDNDUzOEMgLyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDA5QUZCMDEyMkQwMkU1MzAwQzQ1MzhDIC8qIFdlYkdQVURldmljZUVycm9yU2NvcGVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURldmljZUVycm9yU2NvcGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMDIyMkQwNDcxOTAwQzQ1MzhDIC8qIEdQVUVy
cm9yRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yRmls
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwOUFGQjAzMjJENDBDQzUwMEM0
NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVRGV2aWNlRXJy
b3JTY29wZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDlBRkIwNjIyRDQx
N0IzMDBDNDUzOEMgLyogR1BVRXJyb3JGaWx0ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVUVycm9yRmlsdGVyLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMDcyMkQ1MzkxQjAwQzQ1MzhD
IC8qIEdQVUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQwOUFGQjA4MjJENTU0MjgwMEM0NTM4QyAvKiBHUFVFcnJvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwOUFGQjBDMjJENTVFOTAwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEdQVVZhbGlkYXRpb25FcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwOUFGQjBEMjJENTVGM0IwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVVmFsaWRhdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwOUFGQjBFMjJENTVGRjUwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR1BVVmFsaWRhdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMTcyMkQ2Njk0RTAwQzQ1MzhDIC8qIEdQVU91dE9mTWVt
b3J5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEdQVU91dE9mTWVtb3J5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDlBRkIxOTIyRDY2OThBMDBDNDUzOEMgLyogR1BVT3V0T2ZNZW1v
cnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVPdXRPZk1lbW9yeUVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwOUFGQjJEMjJENkMwMTQwMEM0NTM4QyAvKiBHUFVFcnJv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwOUFGQjM3MjJEN0Q1QzYwMEM0NTM4QyAvKiBHUFVPYmplY3RCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdQVU9iamVjdEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDBBMjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
U1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBU1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTIwRDU2MjA5MkEw
QTYwMEUwQzI1OSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTNBNzMwMTQwNUEzOTgwMEZCOEVEMyAv
KiBSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODI3MCw5ICsxODI4NiwxNyBAQAogCQkJCUQwM0M4NDlBMjFGRkM2NjcwMDAyMjI3RiAvKiBH
UFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhCRjIxQTRDMkYx
MDBFQjE5OUQgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTJGRjhCRTIxQTRDMkYxMDBFQjE5
OUQgLyogR1BVRGV2aWNlLmggKi8sCisJCQkJRDA5QUZCMDgyMkQ1NTQyODAwQzQ1MzhDIC8qIEdQ
VUVycm9yLmNwcCAqLywKKwkJCQlEMDlBRkIyRDIyRDZDMDE0MDBDNDUzOEMgLyogR1BVRXJyb3Iu
Y3BwICovLAorCQkJCUQwOUFGQjA3MjJENTM5MUIwMEM0NTM4QyAvKiBHUFVFcnJvci5oICovLAor
CQkJCUQwOUFGQjAyMjJEMDQ3MTkwMEM0NTM4QyAvKiBHUFVFcnJvckZpbHRlci5oICovLAorCQkJ
CUQwMzU4NkIyMjJEN0YyRUEwMERBMDI4NCAvKiBHUFVFcnJvclNjb3Blcy5jcHAgKi8sCisJCQkJ
RDAzNTg2QjEyMkQ3RjJFQTAwREEwMjg0IC8qIEdQVUVycm9yU2NvcGVzLmggKi8sCiAJCQkJRDAy
NkY0N0QyMjBBMkFDNjAwQUM1RjQ5IC8qIEdQVUV4dGVudDNELmggKi8sCiAJCQkJRDBGNzU1OUYy
MjAzQkExNDAwMTE4MDU4IC8qIEdQVUxpbWl0cy5oICovLAogCQkJCUQwOEFBMDJGMjIwRDBCRDUw
MDU4QzUwMiAvKiBHUFVMb2FkT3AuaCAqLywKKwkJCQlEMDlBRkIzNzIyRDdENUM2MDBDNDUzOEMg
LyogR1BVT2JqZWN0QmFzZS5oICovLAorCQkJCUQwOUFGQjE5MjJENjY5OEEwMEM0NTM4QyAvKiBH
UFVPdXRPZk1lbW9yeUVycm9yLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJGNDAwRUIxOTlEIC8q
IEdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMDAzMjg4NzIxQzlBNEU1MDA2
MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovLAogCQkJCUQwMDMyODg2MjFDOUE0RTUw
MDYyMkFBNiAvKiBHUFVQaXBlbGluZUxheW91dC5oICovLApAQCAtMTgyOTgsNiArMTgzMjIsOCBA
QAogCQkJCTMxMkZGOEMzMjFBNEMyRjMwMEVCMTk5RCAvKiBHUFVUZXh0dXJlRm9ybWF0LmggKi8s
CiAJCQkJRDAyNkY0ODUyMjBBNDc3MjAwQUM1RjQ5IC8qIEdQVVRleHR1cmVVc2FnZS5oICovLAog
CQkJCUQwNkVGNTUyMjIwQkEyNkEwMDE4NzI0RSAvKiBHUFVVdGlscy5oICovLAorCQkJCUQwOUFG
QjBFMjJENTVGRjUwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuY3BwICovLAorCQkJCUQw
OUFGQjBEMjJENTVGM0IwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKIAkJCQlE
MEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5o
ICovLAogCQkJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhCdWZmZXJEZXNj
cmlwdG9yLmggKi8sCiAJCQkJRDBEODY0OTkyMUJBMUIxRjAwM0M5ODNDIC8qIEdQVVZlcnRleElu
cHV0RGVzY3JpcHRvci5oICovLApAQCAtMjU4ODcsMTAgKzI1OTEzLDEyIEBACiAJCQkJRDBCNTZF
QUUyMjRFQ0UyMDAwNjEwNDlDIC8qIEdQVUNvbG9yV3JpdGVCaXRzLmlkbCAqLywKIAkJCQlEMDND
ODQ5RTIxRkZDRjAwMDAwMjIyN0YgLyogR1BVQ29tcGFyZUZ1bmN0aW9uLmlkbCAqLywKIAkJCQlE
MDNDODRBMjIxRkZENzIzMDAwMjIyN0YgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9y
LmlkbCAqLywKKwkJCQlEMDlBRkIwNjIyRDQxN0IzMDBDNDUzOEMgLyogR1BVRXJyb3JGaWx0ZXIu
aWRsICovLAogCQkJCUQwMjZGNDgwMjIwQTJCNzAwMEFDNUY0OSAvKiBHUFVFeHRlbnQzRC5pZGwg
Ki8sCiAJCQkJRDA4QUEwMkQyMjBEMEI5QzAwNThDNTAyIC8qIEdQVUxvYWRPcC5pZGwgKi8sCiAJ
CQkJRDBDQ0E5NDkyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmggKi8sCiAJCQkJRDBD
Q0E5NEEyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmlkbCAqLywKKwkJCQlEMDlBRkIx
NzIyRDY2OTRFMDBDNDUzOEMgLyogR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwgKi8sCiAJCQkJRDAy
QzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwgKi8s
CiAJCQkJRDBBREIyNjMyMjMwOUQ3NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bCAqLywKIAkJCQlEMERFOEZCODIyMkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQu
aCAqLywKQEAgLTI1ODk5LDYgKzI1OTI3LDcgQEAKIAkJCQlEMDI2RjQ4QjIyMEE1QjBCMDBBQzVG
NDkgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwRUFDRkFFMjE5RTMwRkQw
MDBGQTc1QyAvKiBHUFVUZXh0dXJlRm9ybWF0LmlkbCAqLywKIAkJCQlEMDI2RjQ4MzIyMEE0NzJG
MDBBQzVGNDkgLyogR1BVVGV4dHVyZVVzYWdlLmlkbCAqLywKKwkJCQlEMDlBRkIwQzIyRDU1RTkw
MDBDNDUzOEMgLyogR1BVVmFsaWRhdGlvbkVycm9yLmlkbCAqLywKIAkJCQlEMEQ4NjQ5NjIxQkEx
OEY0MDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgKi8sCiAJCQkJ
RDBEODY0OTgyMUJBMTlBNzAwM0M5ODNDIC8qIEdQVVZlcnRleEJ1ZmZlckRlc2NyaXB0b3IuaWRs
ICovLAogCQkJCUQwRDg2NDk0MjFCQTE3M0QwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhJbnB1dERlc2Ny
aXB0b3IuaWRsICovLApAQCAtMjU5NDUsNiArMjU5NzQsOSBAQAogCQkJCUQwMEY1OTUzMjE3MDFE
OEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovLAogCQkJCUQwMEY1OTUyMjE3MDFEOEMw
MDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLywKIAkJCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcx
REIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLywKKwkJCQlEMDlBRkIwMTIyRDAyRTUzMDBDNDUzOEMg
LyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwICovLAorCQkJCUQwOUFGQUZGMjJEMDJFNTMw
MEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5oICovLAorCQkJCUQwOUFGQjAzMjJE
NDBDQzUwMEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgKi8sCiAJCQkJRDBD
NDE5RjAyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAq
LywKIAkJCQlEMEM0MTlGMTIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5pZGwgKi8sCiAJCQkJRDA1QTk5RTUyMUM5QkYyQzAwMDMyQjc1IC8qIFdlYkdQVVBp
cGVsaW5lTGF5b3V0LmNwcCAqLywKQEAgLTI4MzUwLDYgKzI4MzgyLDcgQEAKIAkJCQlBNUE3QUE0
MzEzMkYwRUNDMDBEM0EzQzIgLyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0MxODQzRkUxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzFFOTcyODFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1Q0NDMjcwOTIyRDU0ODNBMDA5NjRGQTAgLyogQXV0b2Zp
bGxFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlENDY3MDUxRTYwQzQ2NTAwODE5NUZC
IC8qIEF1dG9wbGF5RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1ODMwRDRFMTY3OUI0Rjgw
MEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThD
RkYwNEUwQTE1NEYwOTAwMEE0MjM0IC8qIEF1dG9UYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTk5NCw3ICszMDAyNyw2IEBACiAJCQkJN0M3NzYxQUExRjg3OEFBNTAwRjg2OUZEIC8q
IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0MxOTNDMDExRjVFMTEwNTAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFs
aXR5LmggaW4gSGVhZGVycyAqLywKLQkJCQk1Q0NDMjcwOTIyRDU0ODNBMDA5NjRGQTAgLyogQXV0
b2ZpbGxFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5RDMwOURBMkI0ODAwOTYz
M0E2IC8qIEpTSW5wdXRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE3NUNFNUUyMUUyODFF
RDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MTc1Q0U1QzIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRp
dERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZjViNTMyMmM3YjkwMzVmNzNhNDI4MTZh
MjBjYmJhMTBlN2ZkN2ZlNC4uNDZmNTNlMTJhMWYzOGU5MmM5MGFjNDg3Y2I5MjdiOTA3OTZkMzlk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaApAQCAtOTQsNiArOTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oR1BV
Q29tcHV0ZVBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oR1BVQ29tcHV0ZVBpcGVsaW5lKSBcCiAg
ICAgbWFjcm8oR1BVRGV2aWNlKSBcCisgICAgbWFjcm8oR1BVT3V0T2ZNZW1vcnlFcnJvcikgXAog
ICAgIG1hY3JvKEdQVVBpcGVsaW5lTGF5b3V0KSBcCiAgICAgbWFjcm8oR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIpIFwKICAgICBtYWNybyhHUFVRdWV1ZSkgXApAQCAtMTA2LDYgKzEwNyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhHUFVUZXh0dXJlKSBcCiAgICAgbWFjcm8o
R1BVVGV4dHVyZVVzYWdlKSBcCiAgICAgbWFjcm8oR1BVVGV4dHVyZVZpZXcpIFwKKyAgICBtYWNy
byhHUFVWYWxpZGF0aW9uRXJyb3IpIFwKICAgICBtYWNybyhIVE1MQXR0YWNobWVudEVsZW1lbnQp
IFwKICAgICBtYWNybyhIVE1MQXVkaW9FbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTERhdGFMaXN0
RWxlbWVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJ1ZmZlci5oCmluZGV4IDQyNTA4YmM3NjE3MDViZjFhMGU2NjExNzkxZjVlYTY3MDk3YjU1MDUu
LjVmNmYyZjBjNDAzZDcwN2RkNjgyOGNmMTVlMGE4YzQxZmNlZDU0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkRlZmVycmFibGVUYXNrLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVy
VXNhZ2UuaCIKKyNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
QEAgLTUxLDYgKzUyLDggQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBzdHJ1Y3QgR1BVQnVmZmVyRGVz
Y3JpcHRvcjsKIAorZW51bSBjbGFzcyBHUFVCdWZmZXJNYXBwZWRPcHRpb247CisKICNpZiBVU0Uo
TUVUQUwpCiB1c2luZyBQbGF0Zm9ybUJ1ZmZlciA9IE1UTEJ1ZmZlcjsKICNlbHNlCkBAIC01OCw3
ICs2MSw3IEBAIHVzaW5nIFBsYXRmb3JtQnVmZmVyID0gdm9pZDsKICNlbmRpZgogdXNpbmcgUGxh
dGZvcm1CdWZmZXJTbWFydFB0ciA9IFJldGFpblB0cjxQbGF0Zm9ybUJ1ZmZlcj47CiAKLWNsYXNz
IEdQVUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJ1ZmZlcj4geworY2xhc3MgR1BVQnVm
ZmVyIDogcHVibGljIEdQVU9iamVjdEJhc2UgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgU3Rh
dGUgewogICAgICAgICBNYXBwZWQsCkBAIC02OCw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIH5H
UFVCdWZmZXIoKTsKIAotICAgIHN0YXRpYyBSZWZQdHI8R1BVQnVmZmVyPiB0cnlDcmVhdGUoUmVm
PEdQVURldmljZT4mJiwgY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYsIGJvb2wgaXNNYXBwZWRP
bkNyZWF0aW9uKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlKFJlZjxH
UFVEZXZpY2U+JiYsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZmZXJNYXBwZWRP
cHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CiAKICAgICBQbGF0Zm9ybUJ1ZmZlciAqcGxh
dGZvcm1CdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQnVmZmVyLmdldCgpOyB9CiAg
ICAgc2l6ZV90IGJ5dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KQEAg
LTEwNyw4ICsxMTAsOCBAQCBwcml2YXRlOgogICAgICAgICBQZW5kaW5nTWFwcGluZ0NhbGxiYWNr
KE1hcHBpbmdDYWxsYmFjayYmKTsKICAgICB9OwogCi0gICAgR1BVQnVmZmVyKFBsYXRmb3JtQnVm
ZmVyU21hcnRQdHImJiwgUmVmPEdQVURldmljZT4mJiwgc2l6ZV90LCBPcHRpb25TZXQ8R1BVQnVm
ZmVyVXNhZ2U6OkZsYWdzPiwgYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVCdWZmZXJV
c2FnZShjb25zdCBHUFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPik7
CisgICAgR1BVQnVmZmVyKFBsYXRmb3JtQnVmZmVyU21hcnRQdHImJiwgUmVmPEdQVURldmljZT4m
Jiwgc2l6ZV90LCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiwgR1BVQnVmZmVyTWFw
cGVkT3B0aW9uLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYpOworICAgIHN0YXRpYyBib29sIHZhbGlk
YXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiwgT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdl
OjpGbGFncz4sIEdQVUVycm9yU2NvcGVzJik7CiAKICAgICBKU0M6OkFycmF5QnVmZmVyKiBzdGFn
aW5nQnVmZmVyRm9yUmVhZCgpOwogICAgIEpTQzo6QXJyYXlCdWZmZXIqIHN0YWdpbmdCdWZmZXJG
b3JXcml0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggZmY1YzVhYjdmNTVjNDZiMDdkZDVj
ZjRhOWE4MmY4MGI1NTU2M2EwOC4uMzIwNzJkOWVmZjAyN2QyOWU5Mzc3OWJjOGYwNmJkNjQyYzQz
ODU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zNiw2ICszNiwxMSBAQCBzdHJ1Y3QgR1BV
QnVmZmVyRGVzY3JpcHRvciB7CiAgICAgR1BVQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKIH07CiAK
K2VudW0gY2xhc3MgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIHsKKyAgICBJc01hcHBlZCwKKyAgICBO
b3RNYXBwZWQKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggNjUzNjdjOWQ5MzQzYTVjNDY5MTg3OGEx
OTRjMzJkODQwODdiMTAxMy4uNDZiN2FkY2VhZDU4OGM0ZTY5ZjRlNWQyOTFjN2EyYTcyZWQ2MzNj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNv
bXB1dGVQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAorI2luY2x1ZGUgIkdQVU9iamVjdEJhc2UuaCIKICNpbmNsdWRlICJXSExTTFByZXBh
cmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KQEAgLTQzLDE2ICs0NCwxNiBAQCBzdHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
cjsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gTVRMQ29tcHV0ZVBpcGVsaW5lU3Rh
dGU7CiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1U
TENvbXB1dGVQaXBlbGluZVN0YXRlPjsKIAotY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lIDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQ29tcHV0ZVBpcGVsaW5lPiB7CitjbGFzcyBHUFVDb21wdXRlUGlw
ZWxpbmUgOiBwdWJsaWMgR1BVT2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgc3RhdGljIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKIAogICAgIGNvbnN0
IFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKiBwbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KIAogICAgIFdITFNM
OjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
Y29tcHV0ZURpbWVuc2lvbnM7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVDb21wdXRlUGlwZWxpbmUo
UGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lv
bnMpOworICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0
UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsK
IAogICAgIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgbV9wbGF0Zm9ybUNvbXB1dGVQ
aXBlbGluZTsKICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgbV9jb21wdXRlRGltZW5zaW9u
cyB7IDAsIDAsIDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKaW5kZXggYTY0OWE2MDcxOTE5YjZkNWMyNDFhNzJmMjY4ODI1YTBl
NjUxZTdhZC4uNmRiZjI4NDRhZDQ4NzM2YjQ1MGYzYzRkNjU5YTdjMzY5Y2YzN2FkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCiAjaW5jbHVkZSAiR1BVUGlw
ZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpAQCAtNDYsMTMgKzQ3LDE0IEBACiAjaW5j
bHVkZSAiR1BVU3dhcENoYWluRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIK
ICNpbmNsdWRlICJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQ
dHI8R1BVQnVmZmVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIGlzTWFwcGVkT25DcmVhdGlvbikKK1JlZlB0cjxH
UFVCdWZmZXI+IEdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgUmVmPEdQ
VUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKQogewotICAgIHJldHVybiBHUFVCdWZmZXI6OnRy
eUNyZWF0ZShtYWtlUmVmKCp0aGlzKSwgZGVzY3JpcHRvciwgaXNNYXBwZWRPbkNyZWF0aW9uKTsK
KyAgICByZXR1cm4gR1BVQnVmZmVyOjp0cnlDcmVhdGUobWFrZVJlZigqdGhpcyksIGRlc2NyaXB0
b3IsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSk7CiB9CiAKIFJlZlB0cjxHUFVUZXh0
dXJlPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpIGNvbnN0CkBAIC04NSw5ICs4Nyw5IEBAIFJlZlB0cjxHUFVSZW5kZXJQ
aXBlbGluZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBHUFVSZW5k
ZXJQaXBlCiAgICAgcmV0dXJuIEdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRl
c2NyaXB0b3IpOwogfQogCi1SZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVEZXZpY2U6OnRy
eUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKSBjb25zdAorUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVRGV2aWNl
Ojp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKSBjb25z
dAogewotICAgIHJldHVybiBHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgqdGhpcywgZGVz
Y3JpcHRvcik7CisgICAgcmV0dXJuIEdQVUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKCp0aGlz
LCBkZXNjcmlwdG9yLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSk7CiB9CiAKIFJlZlB0cjxHUFVDb21t
YW5kQnVmZmVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4
IGE3MTM5NTQxZDBiZmQxNGRiMjhmYTk1OWZmYjAxOTQzMGY4MDNiYmUuLjZkMTlkYTBhODE5MmU2
NDk5ZjE4N2Y2NTUyMGNhNWIzZDQ5Yzk0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1
ZGUgIkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSAiR1BVU3dhcENoYWluLmgiCisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KQEAgLTQxLDYgKzQzLDcgQEAgY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0OwogY2xh
c3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNsYXNzIEdQVUNvbXB1dGVQ
aXBlbGluZTsKK2NsYXNzIEdQVUVycm9yU2NvcGVzOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7
CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGluZTsKIGNsYXNzIEdQVVNhbXBsZXI7CkBAIC01Nyw3ICs2
MCw5IEBAIHN0cnVjdCBHUFVTYW1wbGVyRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yOwogc3RydWN0IEdQVVN3YXBDaGFpbkRlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BV
VGV4dHVyZURlc2NyaXB0b3I7Ci0gICAgCisKK2VudW0gY2xhc3MgR1BVQnVmZmVyTWFwcGVkT3B0
aW9uOworCiB1c2luZyBQbGF0Zm9ybURldmljZSA9IE1UTERldmljZTsKIHVzaW5nIFBsYXRmb3Jt
RGV2aWNlU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMRGV2aWNlPjsKIApAQCAtNjUsNyArNzAsNyBA
QCBjbGFzcyBHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8R1BVRGV2aWNlPgogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8R1BV
RGV2aWNlPiB0cnlDcmVhdGUoY29uc3QgT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
PiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1
ZmZlckRlc2NyaXB0b3ImLCBib29sIGlzTWFwcGVkT25DcmVhdGlvbiA9IGZhbHNlKTsKKyAgICBS
ZWZQdHI8R1BVQnVmZmVyPiB0cnlDcmVhdGVCdWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRv
ciYsIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKICAgICBS
ZWZQdHI8R1BVVGV4dHVyZT4gdHJ5Q3JlYXRlVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlRGVzY3Jp
cHRvciYpIGNvbnN0OwogICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVhdGVTYW1wbGVyKGNv
bnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKQEAgLTc0LDcgKzc5LDcgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IEdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+
IHRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3JlYXRlQ29t
cHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBSZWY8R1BV
RXJyb3JTY29wZXM+JiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IHRy
eUNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg2NGEzZDYzYTk0
NGYzM2ZjNDNiMzIzZjU4MmQ4NDhjYzI5YmE4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVFcnJvci5o
IgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUVycm9yRmlsdGVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworT3B0aW9uYWw8R1BVRXJyb3I+IGNyZWF0ZUVycm9yKEdQ
VUVycm9yRmlsdGVyIGZpbHRlciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHN3aXRj
aCAoZmlsdGVyKSB7CisgICAgY2FzZSBHUFVFcnJvckZpbHRlcjo6T3V0T2ZNZW1vcnk6CisgICAg
ICAgIHJldHVybiBHUFVFcnJvcihSZWZQdHI8R1BVT3V0T2ZNZW1vcnlFcnJvcj4oR1BVT3V0T2ZN
ZW1vcnlFcnJvcjo6Y3JlYXRlKCkpKTsKKyAgICBjYXNlIEdQVUVycm9yRmlsdGVyOjpWYWxpZGF0
aW9uOgorICAgICAgICByZXR1cm4gR1BVRXJyb3IoUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4o
R1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUobWVzc2FnZSkpKTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2N2MzNWFkYzg5MGQzNzJmY2M5NzNjOGZkZGYyYjdiNmY1OTM2YmMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVT3V0T2ZNZW1vcnlFcnJvci5oIgor
I2luY2x1ZGUgIkdQVVZhbGlkYXRpb25FcnJvci5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgR1BVRXJyb3JGaWx0ZXI7CisKK3VzaW5nIEdQVUVycm9yID0gVmFyaWFudDxSZWZQ
dHI8R1BVT3V0T2ZNZW1vcnlFcnJvcj4sIFJlZlB0cjxHUFVWYWxpZGF0aW9uRXJyb3I+PjsKKwor
T3B0aW9uYWw8R1BVRXJyb3I+IGNyZWF0ZUVycm9yKEdQVUVycm9yRmlsdGVyLCBjb25zdCBTdHJp
bmcmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvckZpbHRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yRmlsdGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDU2OWZlZjMyNzA1ZDk5YmZlY2VhMDA4OTFmZjE2NDRhMGE0ZDE3MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvckZp
bHRlci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2VudW0gY2xhc3Mg
R1BVRXJyb3JGaWx0ZXIgeworICAgIE5vbmUsCisgICAgT3V0T2ZNZW1vcnksCisgICAgVmFsaWRh
dGlvbiwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3JTY29wZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUVycm9yU2NvcGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTAzZDc5ZDE4MWNjMmE1MTI1ZTBkNGNm
NDAyZTQ3MjNlY2NhM2JhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgi
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgR1BV
RXJyb3JTY29wZXM6OnB1c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyIGZpbHRlcikKK3sKKyAg
ICBtX2Vycm9yU2NvcGVzLmFwcGVuZChFcnJvclNjb3BlIHsgZmlsdGVyLCBXVEY6Om51bGxvcHQg
fSk7Cit9CisKK09wdGlvbmFsPEdQVUVycm9yPiBHUFVFcnJvclNjb3Blczo6cG9wRXJyb3JTY29w
ZShTdHJpbmcmIGZhaWxNZXNzYWdlKQoreworICAgIGlmIChtX2Vycm9yU2NvcGVzLmlzRW1wdHko
KSkgeworICAgICAgICBmYWlsTWVzc2FnZSA9ICJObyBlcnJvciBzY29wZSBleGlzdHMhIjsKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIHNjb3BlID0gbV9l
cnJvclNjb3Blcy50YWtlTGFzdCgpOworICAgIHJldHVybiBzY29wZS5maWx0ZXIgPT0gR1BVRXJy
b3JGaWx0ZXI6Ok5vbmUgPyBXVEY6Om51bGxvcHQgOiBzY29wZS5lcnJvcjsKK30KKwordm9pZCBH
UFVFcnJvclNjb3Blczo6Z2VuZXJhdGVFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEdQVUVy
cm9yRmlsdGVyIGZpbHRlcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjpmaW5kX2lmKG1f
ZXJyb3JTY29wZXMucmJlZ2luKCksIG1fZXJyb3JTY29wZXMucmVuZCgpLCBbZmlsdGVyXShjb25z
dCBFcnJvclNjb3BlJiBzY29wZSkgeworICAgICAgICByZXR1cm4gc2NvcGUuZmlsdGVyID09IEdQ
VUVycm9yRmlsdGVyOjpOb25lIHx8IHNjb3BlLmZpbHRlciA9PSBmaWx0ZXI7CisgICAgfSk7CisK
KyAgICAvLyBGSVhNRTogaHR0cHM6Ly93ZWJraXQub3JnL2IvMTk5Njc2IFVuY2FwdHVyZWQgZXJy
b3JzIG5lZWQgdG8gYmUgZmlyZWQgYXMgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRzLgorICAgIGlm
IChpdGVyYXRvciA9PSBtX2Vycm9yU2NvcGVzLnJlbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gSWYgdGhlIHNjb3BlIGhhcyBhbHJlYWR5IGNhcHR1cmVkIGFuIGVycm9yLCBpZ25vcmUg
dGhpcyBuZXcgb25lLgorICAgIGlmIChpdGVyYXRvci0+ZXJyb3IpCisgICAgICAgIHJldHVybjsK
KworICAgIGl0ZXJhdG9yLT5lcnJvciA9IGNyZWF0ZUVycm9yKGZpbHRlciwgbWVzc2FnZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JT
Y29wZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNj
b3Blcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUxNjFmNzA0ODJkMTcwYTQxNjljODQ3MjNkYTE3ZjU0ZTdkNmYy
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRXJyb3JTY29wZXMuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVRXJyb3IuaCIKKyNp
bmNsdWRlICJHUFVFcnJvckZpbHRlci5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVFcnJvclNjb3BlcyA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUVycm9yU2NvcGVzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxHUFVFcnJvclNjb3Bl
cz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVFcnJvclNjb3Blcyk7IH0KKwor
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoR1BVRXJyb3JGaWx0ZXIpOworICAgIE9wdGlvbmFsPEdQ
VUVycm9yPiBwb3BFcnJvclNjb3BlKFN0cmluZyYgZmFpbE1lc3NhZ2UpOworICAgIHZvaWQgZ2Vu
ZXJhdGVFcnJvcihjb25zdCBTdHJpbmcmLCBHUFVFcnJvckZpbHRlciA9IEdQVUVycm9yRmlsdGVy
OjpWYWxpZGF0aW9uKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgRXJyb3JTY29wZSB7CisgICAg
ICAgIGNvbnN0IEdQVUVycm9yRmlsdGVyIGZpbHRlcjsKKyAgICAgICAgT3B0aW9uYWw8R1BVRXJy
b3I+IGVycm9yOworICAgIH07CisKKyAgICBHUFVFcnJvclNjb3BlcygpID0gZGVmYXVsdDsKKwor
ICAgIFZlY3RvcjxFcnJvclNjb3BlPiBtX2Vycm9yU2NvcGVzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPYmplY3RCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFzZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2NTNiY2Y3YWY4Y2Y5ZDM5NjRhZjhkNTI1MTJmZTFiNjM2NDdhZmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFzZS5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVT2JqZWN0QmFz
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVU9iamVjdEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lk
IGdlbmVyYXRlRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBHUFVFcnJvckZpbHRlciBmaWx0
ZXIgPSBHUFVFcnJvckZpbHRlcjo6VmFsaWRhdGlvbikKKyAgICB7CisgICAgICAgIG1fZXJyb3JT
Y29wZXMtPmdlbmVyYXRlRXJyb3IobWVzc2FnZSwgZmlsdGVyKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBHUFVPYmplY3RCYXNlKFJlZjxHUFVFcnJvclNjb3Blcz4mJiByZXBvcnRlcikKKyAg
ICAgICAgOiBtX2Vycm9yU2NvcGVzKFdURk1vdmUocmVwb3J0ZXIpKSB7IH0KKworcHJpdmF0ZToK
KyAgICBSZWY8R1BVRXJyb3JTY29wZXM+IG1fZXJyb3JTY29wZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU91dE9mTWVtb3J5RXJyb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPdXRPZk1lbW9yeUVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWY0MjBlOTdkZmUzYmYwNzU2NmM1YjZhMGZkZWM0NjY4OTYxNzk0Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVPdXRPZk1lbW9yeUVycm9yLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdQVU91dE9mTWVtb3J5RXJyb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVPdXRPZk1lbW9yeUVy
cm9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxHUFVPdXRPZk1lbW9yeUVycm9yPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEdQVU91dE9mTWVtb3J5RXJyb3IpOyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRp
b25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFs
aWRhdGlvbkVycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTdlNTQ1NDYxMzg2Y2ZmY2Q0MTA4NzdkYzM2
MTRmNmRmMTgyODc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVWYWxpZGF0aW9uRXJy
b3IuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PEdQVVZhbGlkYXRpb25FcnJvcj4gR1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVZhbGlkYXRpb25F
cnJvcihtZXNzYWdlKSk7Cit9CisKK0dQVVZhbGlkYXRpb25FcnJvcjo6R1BVVmFsaWRhdGlvbkVy
cm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICA6IG1fbWVzc2FnZShtZXNzYWdlKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlk
YXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZh
bGlkYXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjVhYzIwN2ZjYTNiZWRiZTYxMTU1YTc1OTdh
ZGE1NTY3Mzg1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVmFsaWRhdGlvbkVycm9yLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVVZhbGlkYXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVZhbGlkYXRpb25FcnJvcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8R1BVVmFsaWRhdGlvbkVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKKworICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNz
YWdlOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgR1BVVmFsaWRhdGlvbkVycm9yKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CisKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZm
ZXJNZXRhbC5tbQppbmRleCA1OWEwN2ZmOWNlYjdkOGVhNTJkM2NiNmNkMWFjM2M3ZGY1ZmMyYTA1
Li41Y2JjNjQ4NTViZGFkODk4OTBkNTQ4MjkzNWEyOWZkNDliNTYxZWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1
ZmZlck1ldGFsLm1tCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRp
YyBjb25zdGV4cHIgYXV0byByZWFkT25seUZsYWdzID0gT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdl
OjpGbGFncz4geyBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6OkluZGV4LCBHUFVCdWZmZXJVc2FnZTo6
RmxhZ3M6OlZlcnRleCwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpVbmlmb3JtLCBHUFVCdWZmZXJV
c2FnZTo6RmxhZ3M6OlRyYW5zZmVyU291cmNlIH07CiAKIAotYm9vbCBHUFVCdWZmZXI6OnZhbGlk
YXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZm
ZXJVc2FnZTo6RmxhZ3M+IHVzYWdlKQorYm9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNh
Z2UoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6Rmxh
Z3M+IHVzYWdlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAgICAgaWYgKCFkZXZp
Y2UucGxhdGZvcm1EZXZpY2UoKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQnVmZmVyOjp0
cnlDcmVhdGUoKTogSW52YWxpZCBHUFVEZXZpY2UhIik7CkBAIC01MCw3ICs1MCw3IEBAIGJvb2wg
R1BVQnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBP
cHRpb25TZXQ8R1BVQnVmZmVyCiAgICAgfQogCiAgICAgaWYgKHVzYWdlLmNvbnRhaW5zQWxsKHsg
R1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpNYXBXcml0ZSwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpN
YXBSZWFkIH0pKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVCdWZmZXI6OnRyeUNyZWF0ZSgp
OiBCdWZmZXIgY2Fubm90IGhhdmUgYm90aCBNQVBfUkVBRCBhbmQgTUFQX1dSSVRFIHVzYWdlISIp
OworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKCJHUFVCdWZmZXI6OnRyeUNyZWF0
ZSgpOiBCdWZmZXIgY2Fubm90IGhhdmUgYm90aCBNQVBfUkVBRCBhbmQgTUFQX1dSSVRFIHVzYWdl
ISIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MiwyMyArNjIsMjMgQEAg
Ym9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIE9wdGlvblNldDxHUFVCdWZmZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEdQ
VUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4mJiBkZXZpY2UsIGNv
bnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgaXNNYXBwZWRPbkNyZWF0
aW9uKQorUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmlj
ZT4mJiBkZXZpY2UsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUJ1
ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2Nv
cGVzKQogewogICAgIC8vIE1UTEJ1ZmZlciBzaXplIChOU1VJbnRlZ2VyKSBpcyAzMiBiaXRzIG9u
IHNvbWUgcGxhdGZvcm1zLgogICAgIE5TVUludGVnZXIgc2l6ZSA9IDA7CiAgICAgaWYgKCFXVEY6
OmNvbnZlcnRTYWZlbHkoZGVzY3JpcHRvci5zaXplLCBzaXplKSkgewotICAgICAgICBMT0coV2Vi
R1BVLCAiR1BVQnVmZmVyOjp0cnlDcmVhdGUoKTogQnVmZmVyIHNpemUgaXMgdG9vIGxhcmdlISIp
OworICAgICAgICBlcnJvclNjb3Blcy0+Z2VuZXJhdGVFcnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6
Ok91dE9mTWVtb3J5KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgYXV0
byB1c2FnZSA9IE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+Ojpmcm9tUmF3KGRlc2Ny
aXB0b3IudXNhZ2UpOwotICAgIGlmICghdmFsaWRhdGVCdWZmZXJVc2FnZShkZXZpY2UuZ2V0KCks
IHVzYWdlKSkKKyAgICBpZiAoIXZhbGlkYXRlQnVmZmVyVXNhZ2UoZGV2aWNlLmdldCgpLCB1c2Fn
ZSwgZXJyb3JTY29wZXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICAvLyBjb3B5QnVmZmVyVG9CdWZmZXIgY2FsbHMgcmVxdWlyZSA0LWJ5dGUgYWxp
Z25tZW50LiAiVW5tYXBwaW5nIiBhIG1hcHBlZC1vbi1jcmVhdGlvbiBHUFVCdWZmZXIKICAgICAv
LyB0aGF0IGlzIG90aGVyd2lzZSB1bm1hcHBhYmxlIHJlcXVpcmVzIHN1Y2ggYSBjb3B5IHRvIHVw
bG9hZCBkYXRhLgotICAgIGlmIChpc01hcHBlZE9uQ3JlYXRpb24KKyAgICBpZiAoaXNNYXBwZWQg
PT0gR1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpJc01hcHBlZAogICAgICAgICAmJiAhdXNhZ2UuY29u
dGFpbnNBbnkoeyBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6Ok1hcFdyaXRlLCBHUFVCdWZmZXJVc2Fn
ZTo6RmxhZ3M6Ok1hcFJlYWQgfSkKICAgICAgICAgJiYgZGVzY3JpcHRvci5zaXplICUgNCkgewog
ICAgICAgICBMT0coV2ViR1BVLCAiR1BVQnVmZmVyOjp0cnlDcmVhdGUoKTogRGF0YSBtdXN0IGJl
IGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiA0IGJ5dGVzISIpOwpAQCAtMTAyLDE5ICsxMDIsMjAg
QEAgUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4m
JiBkZXZpY2UsIGNvbnN0IEdQVUJ1ZmZlckQKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgaWYgKCFtdGxCdWZmZXIpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUJ1ZmZl
cjo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUgTVRMQnVmZmVyISIpOworICAgICAgICBl
cnJvclNjb3Blcy0+Z2VuZXJhdGVFcnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6Ok91dE9mTWVtb3J5
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgR1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVyKSwgV1RGTW92ZShkZXZpY2UpLCBzaXpl
LCB1c2FnZSwgaXNNYXBwZWRPbkNyZWF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVyKSwgV1RGTW92ZShkZXZpY2UpLCBzaXplLCB1c2Fn
ZSwgaXNNYXBwZWQsIFdURk1vdmUoZXJyb3JTY29wZXMpKSk7CiB9CiAKLUdQVUJ1ZmZlcjo6R1BV
QnVmZmVyKFJldGFpblB0cjxNVExCdWZmZXI+JiYgYnVmZmVyLCBSZWY8R1BVRGV2aWNlPiYmIGRl
dmljZSwgc2l6ZV90IHNpemUsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+IHVzYWdl
LCBib29sIGlzTWFwcGVkKQotICAgIDogbV9wbGF0Zm9ybUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikp
CitHUFVCdWZmZXI6OkdQVUJ1ZmZlcihSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGJ1ZmZlciwgUmVm
PEdQVURldmljZT4mJiBkZXZpY2UsIHNpemVfdCBzaXplLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNh
Z2U6OkZsYWdzPiB1c2FnZSwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIGlzTWFwcGVkLCBSZWY8R1BV
RXJyb3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKFdURk1vdmUo
ZXJyb3JTY29wZXMpKQorICAgICwgbV9wbGF0Zm9ybUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiAg
ICAgLCBtX2RldmljZShXVEZNb3ZlKGRldmljZSkpCiAgICAgLCBtX2J5dGVMZW5ndGgoc2l6ZSkK
ICAgICAsIG1fdXNhZ2UodXNhZ2UpCi0gICAgLCBtX2lzTWFwcGVkRnJvbUNyZWF0aW9uKGlzTWFw
cGVkKQorICAgICwgbV9pc01hcHBlZEZyb21DcmVhdGlvbihpc01hcHBlZCA9PSBHUFVCdWZmZXJN
YXBwZWRPcHRpb246OklzTWFwcGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBp
cGVsaW5lTWV0YWwubW0KaW5kZXggZTgxZjdjYWRkMjcwOGM2Y2RmYWEzZmRmOWIxZWZmNzJlYmE3
ZWY3OS4uMDg4NGYyNzU5NGJhNzU0ZDRiNzc5NzA1Y2FkMDNjZDI5ZjA0YTYxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQ
aXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQpAQCAtMzEsNDUgKzMxLDM3IEBACiAj
aW1wb3J0ICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVEZXZp
Y2UuaCIKICNpbXBvcnQgIkdQVVBpcGVsaW5lTWV0YWxDb252ZXJ0TGF5b3V0LmgiCi0jaW1wb3J0
ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXSExTTFByZXBhcmUuaCIKICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0
aWMgYm9vbCB0cnlTZXRNZXRhbEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5h
bWUsIE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExpYnJhcnksIE1UTENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0IFN0cmluZyYgY29tcHV0ZUVudHJ5UG9pbnRO
YW1lKQorc3RhdGljIGJvb2wgdHJ5U2V0TWV0YWxGdW5jdGlvbnMoY29uc3QgY2hhciogY29uc3Qg
ZnVuY3Rpb25OYW1lLCBNVExMaWJyYXJ5ICpjb21wdXRlTWV0YWxMaWJyYXJ5LCBNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yICptdGxEZXNjcmlwdG9yLCBjb25zdCBTdHJpbmcmIGNvbXB1dGVF
bnRyeVBvaW50TmFtZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewotI2lmIExPR19E
SVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2VuZGlmCi0KICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIWNvbXB1dGVNZXRhbExpYnJh
cnkpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBNVExMaWJyYXJ5IGZvciBjb21wdXRlIHN0
YWdlIGRvZXMgbm90IGV4aXN0ISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIGVycm9yU2NvcGVz
LmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IE1UTExpYnJhcnkgZm9y
IGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIikpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgYXV0byBmdW5jdGlvbiA9IGFkb3B0TlMoW2NvbXB1dGVNZXRhbExpYnJh
cnkgbmV3RnVuY3Rpb25XaXRoTmFtZTpjb21wdXRlRW50cnlQb2ludE5hbWVdKTsKICAgICBpZiAo
IWZ1bmN0aW9uKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogQ2Fubm90IGNyZWF0ZSBjb21w
dXRlIE1UTEZ1bmN0aW9uIFwiJXNcIiEiLCBmdW5jdGlvbk5hbWUsIGNvbXB1dGVFbnRyeVBvaW50
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvciht
YWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0
aW9uIFwiIiwgY29tcHV0ZUVudHJ5UG9pbnROYW1lLCAiXCIhIikpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgW210bERlc2NyaXB0b3Igc2V0Q29tcHV0ZUZ1bmN0aW9uOmZ1
bmN0aW9uLmdldCgpXTsKLSAgICByZXR1cm4gdHJ1ZTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyBPcHRpb25hbDxXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhj
b25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yJiBjb21wdXRlU3RhZ2UsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yKiBtdGxEZXNjcmlwdG9yLCBPcHRpb25hbDxXSExTTDo6Q29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvcj4mIHdobHNsRGVzY3JpcHRvcikKK3N0YXRpYyBPcHRpb25hbDxX
SExTTDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25z
dCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yJiBjb21wdXRl
U3RhZ2UsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBNVExDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yKiBtdGxEZXNjcmlwdG9yLCBPcHRpb25hbDxXSExTTDo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcj4mIHdobHNsRGVzY3JpcHRvciwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewot
I2lmIExPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2VuZGlm
CiAgICAgUmV0YWluUHRyPE1UTExpYnJhcnk+IGNvbXB1dGVMaWJyYXJ5OwogICAgIFN0cmluZyBj
b21wdXRlRW50cnlQb2ludDsKIApAQCAtODMsOCArNzUsMTEgQEAgc3RhdGljIE9wdGlvbmFsPFdI
TFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0
IGZ1bmMKICAgICAgICAgd2hsc2xEZXNjcmlwdG9yLT5lbnRyeVBvaW50TmFtZSA9IGNvbXB1dGVT
dGFnZS5lbnRyeVBvaW50OwogCiAgICAgICAgIGF1dG8gd2hsc2xDb21waWxlUmVzdWx0ID0gV0hM
U0w6OnByZXBhcmUod2hsc2xTb3VyY2UsICp3aGxzbERlc2NyaXB0b3IpOwotICAgICAgICBpZiAo
IXdobHNsQ29tcGlsZVJlc3VsdCkKKyAgICAgICAgaWYgKCF3aGxzbENvbXBpbGVSZXN1bHQpIHsK
KyAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlv
bk5hbWUsICI6IFdITFNMIGNvbXBpbGF0aW9uIGZhaWxlZCEiKSk7CiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisKICAgICAgICAgY29tcHV0ZURpbWVuc2lvbnMg
PSB3aGxzbENvbXBpbGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zOwogCiAgICAgICAgIE5TRXJy
b3IgKmVycm9yID0gbmlsOwpAQCAtMTA1LDggKzEwMCw5IEBAIHN0YXRpYyBPcHRpb25hbDxXSExT
TDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBm
dW5jCiAgICAgICAgIGNvbXB1dGVFbnRyeVBvaW50ID0gY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQ7
CiAgICAgfQogCi0gICAgaWYgKHRyeVNldE1ldGFsRnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29t
cHV0ZUxpYnJhcnkuZ2V0KCksIG10bERlc2NyaXB0b3IsIGNvbXB1dGVFbnRyeVBvaW50KSkKKyAg
ICBpZiAodHJ5U2V0TWV0YWxGdW5jdGlvbnMoZnVuY3Rpb25OYW1lLCBjb21wdXRlTGlicmFyeS5n
ZXQoKSwgbXRsRGVzY3JpcHRvciwgY29tcHV0ZUVudHJ5UG9pbnQsIGVycm9yU2NvcGVzKSkKICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVEaW1lbnNpb25zOworCiAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIH0KIApAQCAtMTE0LDE4ICsxMTAsMTcgQEAgc3RydWN0IENvbnZlcnRSZXN1bHQgewogICAg
IFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiBwaXBlbGluZURlc2NyaXB0
b3I7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zOwogfTsK
LXN0YXRpYyBPcHRpb25hbDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQor
CitzdGF0aWMgT3B0aW9uYWw8Q29udmVydFJlc3VsdD4gY29udmVydENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwg
R1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewogICAgIFJldGFpblB0cjxNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotCiAgICAgbXRsRGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTENvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3IgbmV3XSk7Ci0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczog
RXJyb3IgY3JlYXRpbmcgTVRMRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICBl
cnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCAiOiBFcnJv
ciBjcmVhdGluZyBNVExEZXNjcmlwdG9yISIpKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTE0MSwxMiArMTM2LDEyIEBAIHN0YXRpYyBPcHRpb25hbDxDb252ZXJ0
UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25z
CiAgICAgICAgIGlmIChhdXRvIGxheW91dCA9IGNvbnZlcnRMYXlvdXQoKmRlc2NyaXB0b3IubGF5
b3V0KSkKICAgICAgICAgICAgIHdobHNsRGVzY3JpcHRvci0+bGF5b3V0ID0gV1RGTW92ZSgqbGF5
b3V0KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEVycm9y
IGNvbnZlcnRpbmcgR1BVUGlwZWxpbmVMYXlvdXQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAg
ICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6
IEVycm9yIGNvbnZlcnRpbmcgR1BVUGlwZWxpbmVMYXlvdXQhIikpOwogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIGNvbXB1
dGVEaW1lbnNpb25zID0gdHJ5U2V0RnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29tcHV0ZVN0YWdl
LCBkZXZpY2UsIG10bERlc2NyaXB0b3IuZ2V0KCksIHdobHNsRGVzY3JpcHRvcikpCisgICAgaWYg
KGF1dG8gY29tcHV0ZURpbWVuc2lvbnMgPSB0cnlTZXRGdW5jdGlvbnMoZnVuY3Rpb25OYW1lLCBj
b21wdXRlU3RhZ2UsIGRldmljZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgd2hsc2xEZXNjcmlwdG9y
LCBlcnJvclNjb3BlcykpCiAgICAgICAgIHJldHVybiB7eyBtdGxEZXNjcmlwdG9yLCAqY29tcHV0
ZURpbWVuc2lvbnMgfX07CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTU2LDE0ICsx
NTEsMTUgQEAgc3RydWN0IENyZWF0ZVJlc3VsdCB7CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQ
aXBlbGluZVN0YXRlPiBwaXBlbGluZVN0YXRlOwogICAgIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cyBjb21wdXRlRGltZW5zaW9uczsKIH07Ci1zdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0
cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorCitzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0
cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAg
ICAgaWYgKCFkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAi
R1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKTogSW52YWxpZCBHUFVEZXZpY2UhIik7Cisg
ICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUs
ICI6IEludmFsaWQgR1BVRGV2aWNlISIpKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICB9CiAKLSAgICBhdXRvIGNvbnZlcnRSZXN1bHQgPSBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIGRlc2NyaXB0b3IsIGRldmljZSk7CisgICAgYXV0byBj
b252ZXJ0UmVzdWx0ID0gY29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25O
YW1lLCBkZXNjcmlwdG9yLCBkZXZpY2UsIGVycm9yU2NvcGVzKTsKICAgICBpZiAoIWNvbnZlcnRS
ZXN1bHQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgQVNTRVJUKGNvbnZlcnRS
ZXN1bHQtPnBpcGVsaW5lRGVzY3JpcHRvcik7CkBAIC0xNzYsNyArMTcyLDcgQEAgc3RhdGljIE9w
dGlvbmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoY29u
c3QgY2hhciogY29uc3QKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICBwaXBlbGluZSA9
IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0NvbXB1dGVQaXBlbGluZVN0YXRl
V2l0aERlc2NyaXB0b3I6bXRsRGVzY3JpcHRvci5nZXQoKSBvcHRpb25zOk1UTFBpcGVsaW5lT3B0
aW9uTm9uZSByZWZsZWN0aW9uOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICBpZiAoIXBpcGVsaW5l
KSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgp
OiAlcyEiLCBlcnJvciA/IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uLlVURjhTdHJpbmcgOiAi
VW5hYmxlIHRvIGNyZWF0ZSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSEiKTsKKyAgICAgICAgZXJy
b3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogIiwgKGVy
cm9yID8gZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24uVVRGOFN0cmluZyA6ICJVbmFibGUgdG8g
Y3JlYXRlIE1UTENvbXB1dGVQaXBlbGluZVN0YXRlISIpKSk7CiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xODUsMTkgKzE4MSwyMCBAQCBzdGF0aWMgT3B0aW9uYWw8
Q3JlYXRlUmVzdWx0PiB0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFy
KiBjb25zdAogICAgIHJldHVybiB7eyBwaXBlbGluZSwgY29udmVydFJlc3VsdC0+Y29tcHV0ZURp
bWVuc2lvbnMgfX07CiB9CiAKLVJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVUNvbXB1dGVQ
aXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxH
UFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykKIHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBm
dW5jdGlvbk5hbWUgPSAiR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgpIjsKKyAgICBjb25zdCBj
aGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUo
KSI7CiAKLSAgICBhdXRvIGNyZWF0ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGlu
ZVN0YXRlKGZ1bmN0aW9uTmFtZSwgZGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICBhdXRvIGNyZWF0
ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGZ1bmN0aW9uTmFtZSwg
ZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJvclNjb3Blcyk7CiAgICAgaWYgKCFjcmVhdGVSZXN1bHQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVD
b21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBjcmVh
dGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
UFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBj
cmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSkpOwog
fQogCi1HUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8TVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cyBjb21wdXRlRGltZW5zaW9ucykKLSAgICA6IG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RG
TW92ZShwaXBlbGluZSkpCitHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShS
ZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21w
dXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVy
cm9yU2NvcGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShXVEZNb3ZlKGVycm9yU2NvcGVzKSkKKyAg
ICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCiAgICAgLCBt
X2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1lbnNpb25zKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVN
ZXRhbC5tbQppbmRleCBhOWVhM2NiZWU1OGM4Mzk3MzE3Yzc1ODRhZWVmODQxNWMwNzY0NzM2Li4x
NzRkODY0ZGU0MDc4MDUxNWYyYzk3MDI4MjU1NTFhZTJjZjRmYzIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVN
ZXRhbC5tbQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEdQVVF1ZXVlOjpzdWJtaXQoVmVjdG9yPFJl
ZjxHUFVDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kQnVmZmVycykKICAgICAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICB9CiAKLSAgICBpZiAobV9wcmVzZW50VGFzay5oYXNQZW5k
aW5nVGFzaygpIHx8ICFtX2RldmljZS0+c3dhcENoYWluKCkpCisgICAgaWYgKG1fcHJlc2VudFRh
c2suaGFzUGVuZGluZ1Rhc2soKSB8fCAhbV9kZXZpY2UgfHwgIW1fZGV2aWNlLT5zd2FwQ2hhaW4o
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgYSBHUFVTd2FwQ2hhaW4gZXhpc3RzLCBl
bnN1cmUgdGhhdCBhIHByZXNlbnQgaXMgc2NoZWR1bGVkIGFmdGVyIGFsbCBjb21tYW5kIGJ1ZmZl
cnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYmQ2NTFhODExZGM1OWE0NjA1OTU3MGJiZjc1OTFkNDRjYTVmOTNiMC4uMGRj
MjQ3NjJjZGZjNTZhZThmM2M5MzQ5MjBmN2JhMzA2ZDVkNjc4MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
IEBACisyMDE5LTA3LTEyICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkdQVV0gQ29udmVydCBHUFVDb21wdXRlUGlwZWxpbmUgTE9HIHN0YXRlbWVudHMg
dG8gZ2VuZXJhdGUgR1BVRXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhm
aWVsZC4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSBHUFVDb21wdXRlUGlwZWxpbmUg
ZXJyb3JzIGdlbmVyYXRlIGNvcnJlY3RseS4KKyAgICAgICAgUmV3b3JrIGNoZWNrRmFpbCBpbiB0
aGUgV0hMU0wgdGVzdCBoYXJuZXNzIHRvIGNoZWNrIGZvciBHUFVFcnJvci4KKworICAgICAgICAq
IHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvanMv
d2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKHJ1blRlc3RzV2l0aERldmljZSk6IFJ1bnMg
dGVzdHMgaW4gYW4gb2JqZWN0IGFsbCB3aXRoIHRoZSBzYW1lIGRldmljZS4KKyAgICAgICAgKiB3
ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzOiBBZGQgc2hhZGVyIGNvbXBpbGF0aW9uIGVy
cm9yIGNoZWNraW5nLgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2FsbFR5cGVk
RnVuY3Rpb24pOgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2hlY2tDb21waWxl
RmFpbCk6CisgICAgICAgIChIYXJuZXNzLnByb3RvdHlwZS5hc3luYy5fY2FsbEZ1bmN0aW9uKToK
KyAgICAgICAgKEhhcm5lc3MpOgorICAgICAgICAoYXN5bmMuY2hlY2tGYWlsKToKKyAgICAgICAg
KEhhcm5lc3MucHJvdG90eXBlLl9jYWxsRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHdl
YmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6IFJlbW92ZSBhIFdITFNM
IGNvbXBpbGVyIGJ1Z2d5IHRlc3QuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1z
dHJ1Y3RzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRt
bDoKKworMjAxOS0wNy0xMCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBHUFVFcnJvciBhbmQgZXJyb3Igc2NvcGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk2NTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBBZGQgYSB0ZXN0
IHRvIGNvdmVyIHRoZSBjYXNlcyBvdXRsaW5lZCBpbiB0aGUgV2ViR1BVIGVycm9yIGhhbmRsaW5n
IGRlc2lnbiBkb2MuCisKKyAgICAgICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDog
QWRkZWQuCisKIDIwMTktMDctMTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0hMU0xdIERlc3VnYXIgZm9yIGxvb3BzIGFuZCB3aGlsZSBsb29wcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVmZGYyYjgyNWMxYmI3MTU3ZGMxM2ExZDhmYWNiZGJm
MzExY2I1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBp
cGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgQ29tcHV0
ZSBjb21waWxhdGlvbiBmYWlsZWQgZHVlIHRvIGluY29ycmVjdCBlbnRyeSBwb2ludCBzdHJpbmcu
IAorUEFTUyBDb21wdXRlIHBpcGVsaW5lIGNyZWF0aW9uIHN1Y2NlZWRlZC4gCitQQVNTIE1TTCBw
aXBlbGluZSBjcmVhdGlvbiBmYWlsZWQgZHVlIHRvIGludmFsaWQgR1BVU2hhZGVyTW9kdWxlLiAK
K1BBU1MgTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5
IHBvaW50IHN0cmluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRl
LXBpcGVsaW5lLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxp
bmUtZXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhiYmZlMGRjZWZmZjkzNDhiMWYyYmEyYmNkNGIw
YjAyZmQ2NTgyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRl
LXBpcGVsaW5lLWVycm9ycy5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0IEVycm9yIFNjb3Blcy48L3RpdGxlPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2xldCB0ZXN0cyA9IHt9OworbGV0IGdvb2RNb2R1bGU7CisKK3Rlc3RzWyJDb21wdXRl
IGNvbXBpbGF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4i
XSA9IGFzeW5jIGRldmljZSA9PiB7CisgICAgY29uc3QgZ29vZFdITFNMID0gYAorW251bXRocmVh
ZHMoMSwgMSwgMSldCitjb21wdXRlIHZvaWQgX2NvbXB1dGVfbWFpbigpIHsgfQorYDsKKyAgICBn
b29kTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IGdvb2RXSExTTCwg
aXNXSExTTDogdHJ1ZSB9KTsKKworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlv
biIpOworCisgICAgZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CisgICAgICAgIGNvbXB1
dGVTdGFnZTogeworICAgICAgICAgICAgbW9kdWxlOiBnb29kTW9kdWxlLAorICAgICAgICAgICAg
ZW50cnlQb2ludDogImNvbXB1dGVfbWFpbiIKKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmV0
dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworfTsKKwordGVzdHNbIkNvbXB1dGUgcGlw
ZWxpbmUgY3JlYXRpb24gc3VjY2VlZGVkLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZp
Y2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAgIGRldmljZS5jcmVhdGVDb21w
dXRlUGlwZWxpbmUoeworICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgIG1vZHVs
ZTogZ29vZE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcG9wTnVsbEVycm9yKGRldmljZSk7Cit9
OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW52YWxpZCBH
UFVTaGFkZXJNb2R1bGUuIl0gPSBhc3luYyBkZXZpY2UgPT4geworICAgIGNvbnN0IGJhZE1TTCA9
IGBUaGlzIGNvZGUgc2hvdWxkIG5vdCBjb21waWxlLmA7CisKKyAgICBkZXZpY2UucHVzaEVycm9y
U2NvcGUoIm5vbmUiKTsKKworICAgIGNvbnN0IGJhZE1TTE1vZHVsZSA9IGRldmljZS5jcmVhdGVT
aGFkZXJNb2R1bGUoeyBjb2RlOiBiYWRNU0wgfSk7CisKKyAgICBhd2FpdCBkZXZpY2UucG9wRXJy
b3JTY29wZSgpOworCisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisK
KyAgICBkZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHsKKyAgICAgICAgY29tcHV0ZVN0YWdl
OiB7CisgICAgICAgICAgICBtb2R1bGU6IGJhZE1TTE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5
UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4g
cG9wVmFsaWRhdGlvbkVycm9yKGRldmljZSk7Cit9OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNy
ZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4iXSA9IGFz
eW5jIGRldmljZSA9PiB7CisgICAgY29uc3QgZ29vZE1TTCA9IGAKK2tlcm5lbCB2b2lkIF9jb21w
dXRlX21haW4oKSB7IH0KK2A7CisgICAgY29uc3QgbXNsTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNo
YWRlck1vZHVsZSh7IGNvZGU6IGdvb2RNU0wgfSk7CisKKyAgICBkZXZpY2UucHVzaEVycm9yU2Nv
cGUoInZhbGlkYXRpb24iKTsKKworICAgIGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoewor
ICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgIG1vZHVsZTogbXNsTW9kdWxlLAor
ICAgICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21haSIKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgcmV0dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworfTsKKworcnVuVGVz
dHNXaXRoRGV2aWNlKHRlc3RzKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9lcnJvci1zY29wZXMt
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYmE2N2Y4NzYxZjIwYTk4ODk1MGNhMjQzY2MwZjVm
ZjI2YTU5YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2Nv
cGVzLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBDYXB0dXJlIGEg
c2luZ2xlIEdQVVZhbGlkYXRpb24gZXJyb3IuIAorUEFTUyBDYXB0dXJlIGEgc2luZ2xlIEdQVU91
dE9mTWVtb3J5IGVycm9yLiAKK1BBU1MgSWdub3JlIGVycm9ycyBwYXN0IHRoZSBmaXJzdC4gCitQ
QVNTIENhcHR1cmVkIGVycm9ycyBtYXRjaCBlcnJvciBzY29wZSBmaWx0ZXIuIAorUEFTUyBSZWpl
Y3QgcG9wRXJyb3JTY29wZSBpZiBubyBzY29wZSBleGlzdHMuIAorUEFTUyBGaWx0ZXIgJ25vbmUn
IHNob3VsZCBjYXB0dXJlIGJ1dCBub3QgcmVwb3J0IGVycm9ycy4gCitQQVNTIFB1c2ggYW5kIHBv
cCBtYW55IGVycm9yIHNjb3BlcyB3aXRoIG5vIHJlamVjdGlvbnMuIAorUEFTUyBDYXRjaCBtYW55
IGVycm9ycyBpbiBuZXN0ZWQgc2NvcGVzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2Nv
cGVzLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTZhZmE4ZWRjMWExZTcyNDAyYzY2NjZlNGUzOGY4
ZjMzNThmYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2Vycm9yLXNj
b3Blcy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0IEVycm9yIFNjb3Blcy48L3RpdGxlPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2xldCB0ZXN0cyA9IHt9OworCit0ZXN0c1siQ2FwdHVyZSBhIHNpbmdsZSBHUFVWYWxpZGF0aW9u
IGVycm9yLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUo
InZhbGlkYXRpb24iKTsKKyAgICBjYXVzZVZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworICAgIHJl
dHVybiBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJDYXB0dXJlIGEg
c2luZ2xlIEdQVU91dE9mTWVtb3J5IGVycm9yLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBk
ZXZpY2UucHVzaEVycm9yU2NvcGUoIm91dC1vZi1tZW1vcnkiKTsKKyAgICBjYXVzZU1lbW9yeUVy
cm9yKGRldmljZSk7CisgICAgcmV0dXJuIHBvcE1lbW9yeUVycm9yKGRldmljZSk7Cit9OworCit0
ZXN0c1siSWdub3JlIGVycm9ycyBwYXN0IHRoZSBmaXJzdC4iXSA9IGFzeW5jIGRldmljZSA9PiB7
CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisgICAgZGV2aWNlLnB1
c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisgICAgY2F1c2VWYWxpZGF0aW9uRXJyb3IoZGV2
aWNlKTsKKyAgICBjYXVzZVZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworICAgIAorICAgIGNvbnN0
IGVycm9yID0gYXdhaXQgZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICBhc3NlcnRWYWxpZGF0
aW9uRXJyb3IoZXJyb3IpOworCisgICAgcmV0dXJuIHBvcE51bGxFcnJvcihkZXZpY2UpOworfTsK
KwordGVzdHNbIkNhcHR1cmVkIGVycm9ycyBtYXRjaCBlcnJvciBzY29wZSBmaWx0ZXIuIl0gPSBh
c3luYyBkZXZpY2UgPT4geworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIp
OworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgib3V0LW9mLW1lbW9yeSIpOworICAgIGNhdXNl
VmFsaWRhdGlvbkVycm9yKGRldmljZSk7CisKKyAgICBjb25zdCBzaG91bGRCZU51bGwgPSBhd2Fp
dCBkZXZpY2UucG9wRXJyb3JTY29wZSgpOworICAgIGFzc2VydE51bGwoc2hvdWxkQmVOdWxsKTsK
KworICAgIHJldHVybiBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJS
ZWplY3QgcG9wRXJyb3JTY29wZSBpZiBubyBzY29wZSBleGlzdHMuIl0gPSBhc3luYyBkZXZpY2Ug
PT4geworICAgIGNvbnN0IHByb21pc2UgPSBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oKCkg
PT4gYXNzZXJ0X3VucmVhY2hlZCgpLCBhc3luYyBlID0+IHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNl
KGUgPT09IHVuZGVmaW5lZCk7CisgICAgICAgIC8vIFBvcCB0aGUgZXh0cmEgJ25vbmUnIHNjb3Bl
LgorICAgICAgICBhd2FpdCBwb3BOdWxsRXJyb3IoZGV2aWNlKTsKKyAgICB9KTsKKyAgICAvLyAn
cHJvbWlzZScgc2hvdWxkIHN0aWxsIHJlamVjdCBpZiBhIHNjb3BlIGlzIHB1c2hlZCBoZXJlLgor
ICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgibm9uZSIpOworICAgIHJldHVybiBwcm9taXNlOwor
fTsKKwordGVzdHNbIkZpbHRlciAnbm9uZScgc2hvdWxkIGNhcHR1cmUgYnV0IG5vdCByZXBvcnQg
ZXJyb3JzLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUo
Im91dC1vZi1tZW1vcnkiKTsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUoIm5vbmUiKTsKKyAg
ICBjYXVzZU1lbW9yeUVycm9yKGRldmljZSk7CisKKyAgICBjb25zdCBzaG91bGRCZU51bGwgPSBh
d2FpdCBkZXZpY2UucG9wRXJyb3JTY29wZSgpOworICAgIGFzc2VydE51bGwoc2hvdWxkQmVOdWxs
KTsKKworICAgIHJldHVybiBwb3BOdWxsRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJQdXNo
IGFuZCBwb3AgbWFueSBlcnJvciBzY29wZXMgd2l0aCBubyByZWplY3Rpb25zLiJdID0gYXN5bmMg
ZGV2aWNlID0+IHsKKyAgICBjb25zdCBudW1JdGVyYXRpb25zID0gMTI4OworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgbnVtSXRlcmF0aW9uczsgKytpKQorICAgICAgICBkZXZpY2UucHVzaEVycm9y
U2NvcGUoIm91dC1vZi1tZW1vcnkiKTsKKyAgICAKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51
bUl0ZXJhdGlvbnMgLSAxOyArK2kpCisgICAgICAgIGF3YWl0IHBvcE51bGxFcnJvcihkZXZpY2Up
OworCisgICAgcmV0dXJuIHBvcE51bGxFcnJvcihkZXZpY2UpOworfTsKKwordGVzdHNbIkNhdGNo
IG1hbnkgZXJyb3JzIGluIG5lc3RlZCBzY29wZXMuIl0gPSBhc3luYyBkZXZpY2UgPT4geworICAg
IGNvbnN0IG51bUl0ZXJhdGlvbnMgPSAxMjg7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1J
dGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0
aW9uIik7CisgICAgICAgIGNhdXNlVmFsaWRhdGlvbkVycm9yKGRldmljZSk7CisgICAgfQorCisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zIC0gMTsgKytpKQorICAgICAgICBh
d2FpdCBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKKworICAgIHJldHVybiBwb3BWYWxpZGF0
aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3J1blRlc3RzV2l0aERldmljZSh0ZXN0cyk7CisKKy8q
IEhlbHBlciBGdW5jdGlvbnMgKi8KKworY29uc3QgY2F1c2VWYWxpZGF0aW9uRXJyb3IgPSBkZXZp
Y2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IDQsIHVzYWdlOiBHUFVCdWZmZXJVc2Fn
ZS5NQVBfUkVBRCB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURSB9KTsKK2NvbnN0IGNhdXNlTWVt
b3J5RXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IDk5OTk5OTk5
OTk5LCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuTk9ORSB9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcwppbmRleCA2NDZlODAxYzE2NWQ1YzMwZWE4NTBlOGVhM2ZkOTQwZDAyZjQw
NDlkLi44YTFhZWY1ODM3NjY4YmU1MzRmODA1YmQzYmRkN2Q3N2Y4ZjE5NDM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcworKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMTQ5LDMgKzE0OSw0MyBAQCBh
c3luYyBmdW5jdGlvbiBtYXBXcml0ZURhdGFUb0J1ZmZlcihidWZmZXIsIGRhdGEsIG9mZnNldCA9
IDApIHsKICAgICB3cml0ZUFycmF5LnNldChuZXcgVWludDhBcnJheShkYXRhKSwgb2Zmc2V0KTsK
ICAgICBidWZmZXIudW5tYXAoKTsKIH0KKworLyoqKiBGdW5jdGlvbnMgYmVsb3cgdGhpcyBsaW5l
IHJlcXVpcmUgV1BUIHRlc3RoYXJuZXNzLmpzIGFuZCB0ZXN0aGFybmVzc3JlcG9ydC5qcy4gKioq
LworCitmdW5jdGlvbiBydW5UZXN0c1dpdGhEZXZpY2UodGVzdHMpIHsKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIHZhciBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOworICAgICAgICB9IGNh
dGNoIChlKSB7IC8qIFdlYkdQVSBpcyBub3Qgc3VwcG9ydGVkLiAqLyB9CisgICAgCisgICAgICAg
IGZvciAobGV0IG5hbWUgaW4gdGVzdHMpCisgICAgICAgICAgICBkZXZpY2VQcm9taXNlVGVzdChk
ZXZpY2UsIHRlc3RzW25hbWVdLCBuYW1lKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZGV2aWNl
UHJvbWlzZVRlc3QoZGV2aWNlLCBmdW5jLCBuYW1lKSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5j
ICgpID0+IHsKKyAgICAgICAgaWYgKGRldmljZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gZnVuYyhkZXZpY2UpOwor
ICAgIH0sIG5hbWUpOworfTsKKworLy8gQXNzZXJ0aW5nIGVycm9ycy4KKworY29uc3QgcG9wVmFs
aWRhdGlvbkVycm9yID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJv
ciA9PiBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoZXJyb3IpKTsKK2NvbnN0IHBvcE1lbW9yeUVycm9y
ID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJvciA9PiBhc3NlcnRN
ZW1vcnlFcnJvcihlcnJvcikpOworY29uc3QgcG9wTnVsbEVycm9yID0gZGV2aWNlID0+IGRldmlj
ZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJvciA9PiBhc3NlcnROdWxsKGVycm9yKSk7Citjb25z
dCBhc3NlcnROdWxsID0gZXJyb3IgPT4geworICAgIGxldCBhc3NlcnRpb25Nc2cgPSAiTm8gZXJy
b3IgZXhwZWN0ZWQhIjsKKyAgICBpZiAoZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkKKyAgICAgICAg
YXNzZXJ0aW9uTXNnICs9ICIgR290OiAiICsgZXJyb3IubWVzc2FnZTsKKyAgICBhc3NlcnRfdHJ1
ZShlcnJvciA9PT0gbnVsbCwgYXNzZXJ0aW9uTXNnKTsKK307Citjb25zdCBhc3NlcnRWYWxpZGF0
aW9uRXJyb3IgPSBlcnJvciA9PiB7CisgICAgbGV0IGFzc2VydGlvbk1zZyA9ICJFeHBlY3RlZCB2
YWxpZGF0aW9uIGVycm9yOiAiOworICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKQorICAg
ICAgICBhc3NlcnRpb25Nc2cgKz0gZXJyb3IubWVzc2FnZTsKKyAgICBhc3NlcnRfdHJ1ZShlcnJv
ciBpbnN0YW5jZW9mIEdQVVZhbGlkYXRpb25FcnJvciwgYXNzZXJ0aW9uTXNnKTsKK307Citjb25z
dCBhc3NlcnRNZW1vcnlFcnJvciA9IGVycm9yID0+IGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNl
b2YgR1BVT3V0T2ZNZW1vcnlFcnJvciwgIkV4cGVjdGVkIG91dC1vZi1tZW1vcnkgZXJyb3IhIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpz
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dobHNsLXRlc3QtaGFybmVzcy5qcwppbmRleCBjY2U5
ZjlmM2JhMDUxYjZiZTlkYWU3Y2I3Mjk4ZTc4YTllNGUxMTIxLi44ZTYxMDY3OTQxZWViYjMzYjlm
YTNmZGJmYTg4MjIyMmU0NDdmNDZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvanMv
d2hsc2wtdGVzdC1oYXJuZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93aGxzbC10
ZXN0LWhhcm5lc3MuanMKQEAgLTI1Myw3ICsyNTMsNyBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9t
YWluKGRldmljZSBfY29tcHV0ZV9hcmdzJiBhcmdzIFtbYnVmZmVyKDApXV0pCiBgOwogICAgICAg
ICB9CiAgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLl9zaGFkZXJIZWFkZXIgKyBmdW5jdGlvbnMg
KyBlbnRyeVBvaW50Q29kZTsKLSAgICAgICAgdGhpcy5fY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NM
YXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5ncyk7CisgICAgICAgIGF3YWl0IHRoaXMuX2NhbGxG
dW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3MpOwogICAgIAog
ICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IHRoaXMuX3Jlc3Vs
dEJ1ZmZlci5tYXBSZWFkQXN5bmMoKTsKQEAgLTMwMyw2ICszMDMsNDMgQEAga2VybmVsIHZvaWQg
X2NvbXB1dGVfbWFpbihkZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigwKV1dKQog
ICAgICAgICB0aGlzLl9jYWxsRnVuY3Rpb24oY29kZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJj
ZUJpbmRpbmdzKTsKICAgICB9CiAKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCBtYWxmb3Jt
ZWQgc2hhZGVyIGNvZGUgZG9lcyBub3QgY29tcGlsZS4KKyAgICAgKiBAcGFyYW0ge1N0cmluZ30g
c291cmNlIC0gQ3VzdG9tIGNvZGUgdG8gYmUgdGVzdGVkLgorICAgICAqLworICAgIGFzeW5jIGNo
ZWNrQ29tcGlsZUZhaWwoc291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2RldmljZSA9
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgbGV0
IGVudHJ5UG9pbnRDb2RlOworICAgICAgICBpZiAodGhpcy5pc1dITFNMKSB7CisgICAgICAgICAg
ICBlbnRyeVBvaW50Q29kZSA9IGAKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lk
IF9jb21wdXRlX21haW4oKSB7IH1gOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZW50
cnlQb2ludENvZGUgPSBgCitrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKCkgeyB9YDsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLl9zaGFkZXJIZWFkZXIgKyBzb3VyY2Ug
KyBlbnRyeVBvaW50Q29kZTsKKworICAgICAgICB0aGlzLl9kZXZpY2UucHVzaEVycm9yU2NvcGUo
InZhbGlkYXRpb24iKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IHNoYWRlcnMgPSB0aGlzLl9k
ZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogY29kZSwgaXNXSExTTDogdGhpcy5faXNX
SExTTCB9KTsKKyAgICAKKyAgICAgICAgdGhpcy5fZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZSh7CisgICAgICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgICAgICBtb2R1bGU6
IHNoYWRlcnMsCisgICAgICAgICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21haW4iCisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnN0IGVycm9yID0gYXdhaXQg
dGhpcy5fZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICAgICAgaWYgKCFlcnJvcikKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ29tcGlsZXIgZXJyb3I6IHNoYWRlciBjb2RlIGRpZCBu
b3QgZmFpbCB0byBjb21waWxlISIpOworICAgIH0KKwogICAgIGdldCBkZXZpY2UoKSB7IHJldHVy
biB0aGlzLl9kZXZpY2U7IH0KIAogICAgIF9jbGVhclJlc3VsdHMoKQpAQCAtMzU5LDEwICszOTYs
OCBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKGRldmljZSBfY29tcHV0ZV9hcmdzJiBhcmdz
IFtbYnVmZmVyKDApXV0pCiAgICAgICAgIHJldHVybiBbYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJj
ZUJpbmRpbmdzLCBhcmdzRGVjbGFyYXRpb25zLCBmdW5jdGlvbkNhbGxBcmdzXTsKICAgICB9CiAK
LSAgICBfY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NMYXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5n
cykKKyAgICBhc3luYyBfY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NMYXlvdXRzLCBhcmdzUmVzb3Vy
Y2VCaW5kaW5ncykKICAgICB7Ci0gICAgICAgIGNvbnN0IHNoYWRlcnMgPSB0aGlzLl9kZXZpY2Uu
Y3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogY29kZSwgaXNXSExTTDogdGhpcy5faXNXSExTTCB9
KTsKLQogICAgICAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSB0aGlzLl9kZXZpY2UuY3JlYXRl
QmluZEdyb3VwTGF5b3V0KHsKICAgICAgICAgICAgIGJpbmRpbmdzOiBhcmdzTGF5b3V0cwogICAg
ICAgICB9KTsKQEAgLTM3NCw3ICs0MDksMTAgQEAga2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbihk
ZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigwKV1dKQogICAgICAgICAgICAgYmlu
ZGluZ3M6IGFyZ3NSZXNvdXJjZUJpbmRpbmdzCiAgICAgICAgIH0pOwogCi0gICAgICAgIC8vIEZJ
WE1FOiBDb21waWxlIGVycm9ycyBzaG91bGQgYmUgY2F1Z2h0IGFuZCByZXBvcnRlZCBoZXJlLgor
ICAgICAgICB0aGlzLl9kZXZpY2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAg
ICAgICBjb25zdCBzaGFkZXJzID0gdGhpcy5fZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNv
ZGU6IGNvZGUsIGlzV0hMU0w6IHRoaXMuX2lzV0hMU0wgfSk7CisgICAgCiAgICAgICAgIGNvbnN0
IHBpcGVsaW5lID0gdGhpcy5fZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CiAgICAgICAg
ICAgICBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0LAogICAgICAgICAgICAgY29tcHV0ZVN0YWdlOiB7
CkBAIC0zOTEsNiArNDI5LDEwIEBAIGtlcm5lbCB2b2lkIF9jb21wdXRlX21haW4oZGV2aWNlIF9j
b21wdXRlX2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKICAgICAgICAgcGFzc0VuY29kZXIuZW5k
UGFzcygpOwogICAgICAgICAKICAgICAgICAgdGhpcy5fZGV2aWNlLmdldFF1ZXVlKCkuc3VibWl0
KFtjb21tYW5kRW5jb2Rlci5maW5pc2goKV0pOworCisgICAgICAgIGNvbnN0IGVycm9yID0gYXdh
aXQgdGhpcy5fZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpOwogICAgIH0KIH0KIApAQCAt
NTA5LDYxICs1NTEsOSBAQCBhc3luYyBmdW5jdGlvbiBjYWxsRmxvYXQ0eDRGdW5jdGlvbihmdW5j
dGlvbnMsIG5hbWUsIGFyZ3MpCiAgICAgcmV0dXJuIChhd2FpdCBoYXJuZXNzLmNhbGxUeXBlZEZ1
bmN0aW9uKFR5cGVzLkZMT0FUNFg0LCBmdW5jdGlvbnMsIG5hbWUsIGFyZ3MpKS5zdWJhcnJheSgw
LCAxNik7CiB9CiAKLWFzeW5jIGZ1bmN0aW9uIGNoZWNrRmFpbChzb3VyY2UpIHsKLSAgICAvLyBG
SVhNRTogTWFrZSB0aGlzIGhhbmRsZSBlcnJvcnMgd2l0aCBwcm9wZXIgbWVzc2FnZXMgb25jZSB3
ZSBpbXBsZW1lbnQgdGhlIEFQSSBmb3IgdGhhdC4KLSAgICBjb25zdCBuYW1lID0gIl9fX190ZXN0
X25hbWVfX19fIjsKLSAgICBjb25zdCBwcm9ncmFtID0gYAotICAgICAgICAke3NvdXJjZX0KLQot
ICAgICAgICBbbnVtdGhyZWFkcygxLCAxLCAxKV0KLSAgICAgICAgY29tcHV0ZSB2b2lkICR7bmFt
ZX0oZGV2aWNlIGludFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQzIHRocmVhZElEIDog
U1ZfRGlzcGF0Y2hUaHJlYWRJRCkgewotICAgICAgICAgICAgYnVmZmVyWzBdID0gMTsKLSAgICAg
ICAgfQotICAgIGA7Ci0gICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsK
LSAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2Rl
OiBwcm9ncmFtLCBpc1dITFNMOiB0cnVlfSk7Ci0gICAgY29uc3QgY29tcHV0ZVN0YWdlID0ge21v
ZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiBuYW1lfTsKLQotICAgIGNvbnN0IGJpbmRH
cm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0
eTogNywgdHlwZTogInN0b3JhZ2UtYnVmZmVyIn1dfTsKLSAgICBjb25zdCBiaW5kR3JvdXBMYXlv
dXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0
b3IpOwotICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlv
dXRzOiBbYmluZEdyb3VwTGF5b3V0XX07Ci0gICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZp
Y2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKLQotICAg
IGNvbnN0IGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgPSB7Y29tcHV0ZVN0YWdlLCBsYXlvdXQ6
IHBpcGVsaW5lTGF5b3V0fTsKLSAgICBjb25zdCBjb21wdXRlUGlwZWxpbmUgPSBkZXZpY2UuY3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IpOwotCi0gICAgY29u
c3Qgc2l6ZSA9IEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiAxOwotCi0gICAgY29uc3Qg
YnVmZmVyRGVzY3JpcHRvciA9IHtzaXplLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRF
IHwgR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfU1JDfTsKLSAgICBjb25zdCBidWZmZXIgPSBkZXZp
Y2UuY3JlYXRlQnVmZmVyKGJ1ZmZlckRlc2NyaXB0b3IpOwotICAgIGNvbnN0IGJ1ZmZlckFycmF5
QnVmZmVyID0gYXdhaXQgYnVmZmVyLm1hcFdyaXRlQXN5bmMoKTsKLSAgICBjb25zdCBidWZmZXJJ
bnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoYnVmZmVyQXJyYXlCdWZmZXIpOwotICAgIGJ1ZmZl
ckludDMyQXJyYXlbMF0gPSAwOwotICAgIGJ1ZmZlci51bm1hcCgpOwotCi0gICAgY29uc3QgcmVz
dWx0c0J1ZmZlckRlc2NyaXB0b3IgPSB7c2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JB
R0UgfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfCBHUFVCdWZmZXJVc2FnZS5NQVBfUkVB
RH07Ci0gICAgY29uc3QgcmVzdWx0c0J1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIocmVzdWx0
c0J1ZmZlckRlc2NyaXB0b3IpOwotCi0gICAgY29uc3QgYnVmZmVyQmluZGluZyA9IHtidWZmZXI6
IHJlc3VsdHNCdWZmZXIsIHNpemV9OwotICAgIGNvbnN0IGJpbmRHcm91cEJpbmRpbmcgPSB7Ymlu
ZGluZzogMCwgcmVzb3VyY2U6IGJ1ZmZlckJpbmRpbmd9OwotICAgIGNvbnN0IGJpbmRHcm91cERl
c2NyaXB0b3IgPSB7bGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbYmluZEdyb3Vw
QmluZGluZ119OwotICAgIGNvbnN0IGJpbmRHcm91cCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXAo
YmluZEdyb3VwRGVzY3JpcHRvcik7Ci0KLSAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmlj
ZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOyAvLyB7fQotICAgIGNvbW1hbmRFbmNvZGVyLmNvcHlC
dWZmZXJUb0J1ZmZlcihidWZmZXIsIDAsIHJlc3VsdHNCdWZmZXIsIDAsIHNpemUpOwotICAgIGNv
bnN0IGNvbXB1dGVQYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luQ29tcHV0ZVBhc3Mo
KTsKLSAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lKTsK
LSAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7Ci0gICAg
Y29tcHV0ZVBhc3NFbmNvZGVyLmRpc3BhdGNoKDEsIDEsIDEpOwotICAgIGNvbXB1dGVQYXNzRW5j
b2Rlci5lbmRQYXNzKCk7Ci0gICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGNvbW1hbmRFbmNvZGVy
LmZpbmlzaCgpOwotICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0p
OwotCi0gICAgY29uc3QgcmVzdWx0c0FycmF5QnVmZmVyID0gYXdhaXQgcmVzdWx0c0J1ZmZlci5t
YXBSZWFkQXN5bmMoKTsKLSAgICBsZXQgcmVzdWx0c0ludDMyQXJyYXkgPSBuZXcgSW50MzJBcnJh
eShyZXN1bHRzQXJyYXlCdWZmZXIpOwotICAgIGlmIChyZXN1bHRzSW50MzJBcnJheVswXSAhPT0g
MCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwcm9ncmFtIGRpZCBub3QgZmFpbCB0byBjb21w
aWxlIik7Ci0gICAgcmVzdWx0c0J1ZmZlci51bm1hcCgpOworYXN5bmMgZnVuY3Rpb24gY2hlY2tG
YWlsKHNvdXJjZSkgCit7CisgICAgcmV0dXJuIChhd2FpdCBoYXJuZXNzLmNoZWNrQ29tcGlsZUZh
aWwoc291cmNlKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQKaW5kZXggZGViNTM0OGQwMzNjMDM0
ODg4ZTFiYjEwMzdmY2Q0ZTEwM2QzYTE5OS4uYjU3ZDMxOTg4NTc2Nzc4OGY3NDdhNmZjZThhNDI2
OWY1OTFjOTU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2
ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVj
dXJzaXZlLXN0cnVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCiBQQVNTIG11dHVh
bGx5UmVjdXJzaXZlU3RydWN0IAotUEFTUyBtdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2lu
dGVyc0Jyb2tlbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vy
c2l2ZS1zdHJ1Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0
cnVjdHMuaHRtbAppbmRleCA4MmYwOGQ0YWU5OThjNWFhOGIxNmU2YjI1MDEwNDdjZmJjODM0ZjBh
Li4zNmVkYzBiMzY0YTQ1Y2U2ODZlYmI0YmRjYzBmOTA4OTk1ZDIyN2ViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMuaHRtbApAQCAtMjQsMjggKzI0
LDI5IEBAIHdobHNsVGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3QgPSBhc3luYyAoKSA9Pgog
ICAgICAgICAKIH0KIAotd2hsc2xUZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2lu
dGVyc0Jyb2tlbiA9IGFzeW5jICgpID0+Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBgCi0gICAgICAg
IHN0cnVjdCBGb28gewotICAgICAgICAgICAgdGhyZWFkIEJhciogYmFyOwotICAgICAgICAgICAg
aW50IGZvbzsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIHRo
cmVhZCBGb28qIGZvbzsKLSAgICAgICAgICAgIGludCBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAg
aW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICBC
YXIgYmFyOwotICAgICAgICAgICAgZm9vLmZvbyA9IDU2NDsKLSAgICAgICAgICAgIGJhci5iYXIg
PSA1MzsKLSAgICAgICAgICAgIHJldHVybiBmb28uYmFyLT5iYXIgLSBiYXIuZm9vLT5mb287Ci0g
ICAgICAgIH0KLSAgICBgOwotICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIDApOwotfQorLy8gRklYTUUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTc2NjogVGhpcyBzaG91bGQgY29tcGlsZS4KKy8vIHdo
bHNsVGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gPSBhc3lu
YyAoKSA9PgorLy8geworLy8gICAgIGxldCBwcm9ncmFtID0gYAorLy8gICAgICAgICBzdHJ1Y3Qg
Rm9vIHsKKy8vICAgICAgICAgICAgIHRocmVhZCBCYXIqIGJhcjsKKy8vICAgICAgICAgICAgIGlu
dCBmb287CisvLyAgICAgICAgIH0KKy8vICAgICAgICAgc3RydWN0IEJhciB7CisvLyAgICAgICAg
ICAgICB0aHJlYWQgRm9vKiBmb287CisvLyAgICAgICAgICAgICBpbnQgYmFyOworLy8gICAgICAg
ICB9CisvLyAgICAgICAgIGludCBmb28oKQorLy8gICAgICAgICB7CisvLyAgICAgICAgICAgICBG
b28gZm9vOworLy8gICAgICAgICAgICAgQmFyIGJhcjsKKy8vICAgICAgICAgICAgIGZvby5mb28g
PSA1NjQ7CisvLyAgICAgICAgICAgICBiYXIuYmFyID0gNTM7CisvLyAgICAgICAgICAgICByZXR1
cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOworLy8gICAgICAgICB9CisvLyAgICAgYDsK
Ky8vICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAwKTsKKy8vIH0KIAogcnVuVGVzdHMod2hsc2xUZXN0cyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGEwNzU3N2Q1MDRkOTZkNzdkYmM1NjIzMTQ0OTE2MWUwNTJlMTVjNjAu
LjdhYmI3MWEwMDFmYTg2ZWY5YjlhMjA4YjJmNTQ4ZjU3ZjE0ZjAyNWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVkLnR4
dApAQCAtMzAsNCArMzAsNiBAQCBQQVNTIFJldHVybiBhbiBleHBlY3RlZCBmbG9hdDR4NCB2YWx1
ZS4KIFBBU1MgUmV0dXJuIGFuIGV4cGVjdGVkIGZsb2F0NHg0IHZhbHVlLiAKIFBBU1MgUmV0dXJu
IGFuIGV4cGVjdGVkIGZsb2F0NHg0IHZhbHVlLiAKIFBBU1MgUmV0dXJuIGFuIGV4cGVjdGVkIGZs
b2F0NHg0IHZhbHVlLiAKK1BBU1MgQ29kZSBzaG91bGQgbm90IGNvbXBpbGUsIGFuZCBubyBlcnJv
ciBpcyByZXBvcnRlZC4gCitQQVNTIFN1Y2Nlc3NmdWxseSBjb21waWxpbmcgY29kZSBpbiBjaGVj
a0ZhaWwgaXMgYW4gZXJyb3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0
LWhhcm5lc3MtdGVzdC5odG1sCmluZGV4IDQ1MjkxNDYyMDcyZWIyMmY1NjliZjYzZTNiZjZiYTc5
NTc2ZTVkNmYuLjM2M2EwYTFiZmQ4N2NhMDljNzlhYzg3YzE3ZDc0ZjI2YTE0ZmVjNDcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC5odG1sCkBAIC0x
NzcsNiArMTc3LDE4IEBAIHdobHNsVGVzdHMuZmxvYXQ0eDR0ZXN0cyA9ICgpID0+IHsKICAgICBj
aGVja0FycmF5cygiZmxvYXQ0eDQiLCAicmV0dXJuIGluMFswXTsiLCBbW2Zsb2F0NHg0ZXhwZWN0
ZWRdXSwgZmxvYXQ0eDRleHBlY3RlZCk7CiB9OwogCit3aGxzbFRlc3RzLmNoZWNrRmFpbFRlc3Rz
ID0gKCkgPT4geworICAgIHdlYkdQVVByb21pc2VUZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJu
IGNoZWNrRmFpbChgRG9vcnMgYW5kIGNvcm5lcnMsIGtpZC4gVGhhdCdzIHdoZXJlIHRoZXkgZ2V0
Y2hhLmApOworICAgIH0sICJDb2RlIHNob3VsZCBub3QgY29tcGlsZSwgYW5kIG5vIGVycm9yIGlz
IHJlcG9ydGVkLiIpOworCisgICAgd2ViR1BVUHJvbWlzZVRlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gY2hlY2tGYWlsKCIiKS5jYXRjaChlID0+IHsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGUgaW5zdGFuY2VvZiBFcnJvciwgIkFuIGV4cGVjdGVkIEVycm9yIHdhcyBjYXVnaHQuIik7Cisg
ICAgICAgIH0pOworICAgIH0sICJTdWNjZXNzZnVsbHkgY29tcGlsaW5nIGNvZGUgaW4gY2hlY2tG
YWlsIGlzIGFuIGVycm9yLiIpCit9OworCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKICAgICB0cnkgewogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gd2hsc2xUZXN0
cykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374257</attachid>
            <date>2019-07-16 16:15:57 -0700</date>
            <delta_ts>2019-07-16 16:51:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199773-20190716161556.patch</filename>
            <type>text/plain</type>
            <size>112523</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNhNTY1NTRjYzM4YzEw
YmRjZjVlNDUwYjUzZjY3ZmJkZjg1MmVmOS4uMWU1OGM0MTNkZWZjMmUyMmQ3NWVhNGJiMGVkZjBj
ZGI2ZTU1N2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOS0wNy0xMiAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVdIENvbnZl
cnQgR1BVQ29tcHV0ZVBpcGVsaW5lIExPRyBzdGF0ZW1lbnRzIHRvIGdlbmVyYXRlIEdQVUVycm9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5Nzcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgR2Vu
ZXJhdGUgYSBHUFVFcnJvciBpZiBHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRpb24gZmFpbHMuCisg
ICAgICAgIFJld29yayB0aGUgV0hMU0wgdGVzdCBoYXJuZXNzIHRvIHRha2UgYWR2YW50YWdlIG9m
IHRoaXMuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLmh0
bWwKKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcjo6dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaDogCisgICAgICAgICAgICAgICAgTm93
IGluaGVyaXRzIGZyb20gR1BVT2JqZWN0QmFzZSwgdGhvdWdoIHRoaXMgaXNuJ3Qgc3VwZXIgdXNl
ZnVsIHlldAorICAgICAgICAgICAgICAgIHNpbmNlIEdQVUNvbXB1dGVQaXBlbGluZSBpdHNlbGYg
ZG9lcyBub3QgZXhwb3NlIGFueSBvcGVyYXRpb25zIHRoYXQgY2FuIGVycm9yLiAKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BV
QnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0cnlTZXRNZXRhbEZ1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjp0cnlTZXRGdW5jdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUpOgorCisy
MDE5LTA3LTExICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYkdQVV0gTW92ZSBlcnJvciBzY29wZXMgb3V0IG9mIEdQVURldmljZSBmb3IgbW9yZSBwb3J0
YWJsZSBlcnJvciBnZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhm
aWVsZC4KKworICAgICAgICBNb3ZlIGVycm9yIGdlbmVyYXRpb24gaW50byBhIHNlcGFyYXRlIFJl
ZkNvdW50ZWQgY2xhc3MgdG8gYWxsb3cgR1BVIG9iamVjdHMgdG8gZ2VuZXJhdGUgCisgICAgICAg
IGVycm9ycyBpbmRlcGVuZGVudCBvZiBhbnkgR1BVRGV2aWNlLgorICAgICAgICBDcmVhdGUgR1BV
T2JqZWN0QmFzZSB0byBkZWxlZ2F0ZSBlcnJvciBnZW5lcmF0aW9uIGFuZCByZWZhY3RvciBHUFVC
dWZmZXIgdG8gaW5oZXJpdCBmcm9tIEdQVU9iamVjdEJhc2UuCisKKyAgICAgICAgTm8gYmVoYXZp
b3IgY2hhbmdlIG9yIG5ldyB0ZXN0cy4gRXJyb3Igc2NvcGVzIGNvdmVyZWQgYnkgZXJyb3Itc2Nv
cGVzLXRlc3QuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6IE5vdyBj
cmVhdGVzIGEgR1BVRXJyb3JHZW5lcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZUJ1ZmZlciBjb25zdCk6IFBhc3MgdGhlIEdQVUVycm9yR2VuZXJhdG9yIHRvIGFu
eSBjcmVhdGVkIEdQVUJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3Jl
YXRlQnVmZmVyTWFwcGVkIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2U6OnBvcEVycm9yU2NvcGUpOiBTaG91bGRuJ3QgYmUgY29uc3QuIENhbiBqdXN0IGFzayBm
b3IgdGhlIEdQVUVycm9yIHJhdGhlciB0aGFuIHBhc3NpbmcgYSBsYW1iZGEuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OnB1c2hFcnJvclNjb3BlIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6cG9wRXJyb3JTY29wZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OnB1c2hFcnJvclNjb3BlKToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oOiBOb3cgaW5oZXJpdHMgZnJv
bSBHUFVPYmplY3RCYXNlIGZvciBlcnJvciBnZW5lcmF0aW9uIGVhc2UuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVE
ZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcik6IEVuc3VyZSBHUFVCdWZmZXJzIHJlZmVyZW5jZSB0aGUg
R1BVRXJyb3JHZW5lcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnB1c2hFcnJv
clNjb3BlKTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZCBoZXJlLgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjpwb3BFcnJvclNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVURldmljZTo6cmVnaXN0ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOiBNb3ZlIGVycm9yIHNjb3BlIGxvZ2ljIG91dC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JHZW5lcmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUVycm9yR2VuZXJhdG9yOjpwdXNoRXJyb3JTY29wZSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVFcnJvckdlbmVyYXRvcjo6cG9wRXJyb3JTY29wZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVFcnJvckdlbmVyYXRvcjo6Z2VuZXJhdGVFcnJvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yR2VuZXJhdG9yLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVRXJyb3JHZW5lcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU9iamVjdEJhc2UuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHUFVPYmplY3RCYXNlOjpnZW5lcmF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVU9iamVjdEJhc2U6OkdQVU9iamVjdEJhc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbTogVXNlIHRoZSBHUFVFcnJvckdlbmVyYXRv
ciBkaXJlY3RseSBkdXJpbmcgYnVmZmVyIGNyZWF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R1BV
QnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZl
cjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpzdWJtaXQpOiBQcmV2ZW50IHBvc3NpYmxlIG51
bGwgZGVyZWZlcmVuY2UuCisKKzIwMTktMDctMTAgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgR1BVRXJyb3IgYW5kIGVycm9y
IHNjb3BlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5NjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAg
ICAgQWRkIEdQVUVycm9yRmlsdGVyLCBHUFVFcnJvciwgYW5kIHRoZSBhYmlsaXR5IHRvIHB1c2gg
YW5kIHBvcCBlcnJvciBzY29wZXMgb24gYSBHUFVEZXZpY2UuCisgICAgICAgIFRoaXMgd2lsbCBh
bGxvdyB1cyB0byBjaGVjayBmb3IgV2ViR1BVIGVycm9ycyBmcm9tIEphdmFTY3JpcHQuCisgICAg
ICAgIEN1cnJlbnRseSwgb25seSBzb21lIEdQVUJ1ZmZlciBjcmVhdGlvbiBlcnJvcnMgYXJlIHJl
cG9ydGVkIGZvciB0ZXN0aW5nOyBtb3JlIGVycm9ycyB3aWxsIGZvbGxvdyBpbiBsYXRlciBwYXRj
aGVzLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS9lcnJvci1zY29wZXMtdGVzdC5odG1sCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9HUFVFcnJvckZpbHRlci5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L0dQVU91dE9mTWVtb3J5RXJyb3IuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9HUFVWYWxpZGF0aW9uRXJyb3IuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVRGV2aWNlOjpwdXNoRXJyb3JTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2U6OnBvcEVycm9yU2NvcGUpOiBSZXNvbHZlIHRoZSBQcm9taXNlIGhlcmUsIHNpbmNlIEdQ
VURldmljZSBzaG91bGRuJ3Qgd29ycnkgYWJvdXQgRE9NIGxheWVyLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZUVycm9yU2NvcGVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVE
ZXZpY2VFcnJvclNjb3Blczo6cHVzaEVycm9yU2NvcGUpOiBEZWxlZ2F0ZXMgdG8gV2ViR1BVRGV2
aWNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlRXJyb3JTY29wZXM6OnBvcEVycm9y
U2NvcGUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJv
clNjb3Blcy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VF
cnJvclNjb3Blcy5pZGw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNw
cDogVGhlIGFjdHVhbCBlcnJvciBzdGFjayBsaXZlcyBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpwdXNoRXJyb3JTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6
OnBvcEVycm9yU2NvcGUpOiBDYWxscyBhIGNhbGxiYWNrIHdpdGggYSBHUFVFcnJvciwgaWYgYW55
LgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZWdpc3RlckVycm9yKTogQWN0dWFsbHkg
Y3JlYXRlcyBHUFVFcnJvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRXJyb3IpOiBGYWN0b3J5IGZ1bmN0aW9uIGZv
ciB2YXJpb3VzIGVycm9yIHR5cGVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVFcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJy
b3JGaWx0ZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU91
dE9mTWVtb3J5RXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHUFVPdXRPZk1lbW9y
eUVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWYWxp
ZGF0aW9uRXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25F
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJvcjo6R1BV
VmFsaWRhdGlvbkVycm9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFs
aWRhdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVy
cm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnZhbGlk
YXRlQnVmZmVyVXNhZ2UpOiBDcmVhdGUgYW4gYWN0dWFsIEdQVVZhbGlkYXRpb25FcnJvciA6KQor
ICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjp0cnlDcmVhdGUpOiBDcmVhdGUgR1BVT3V0T2ZN
ZW1vcnlFcnJvcnMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgQWRkIGZpbGUvbmFtZSBy
ZWZlcmVuY2VzOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAg
IE1pc3NpbmcgaW5jbHVkZXM6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xD
aGVja1RleHR1cmVSZWZlcmVuY2VzLmNwcDoKKwogMjAxOS0wNy0xNiAgUm9iaW4gTW9yaXNzZXQg
IDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExTTF0gRGVzdWdhciBmb3IgbG9v
cHMgYW5kIHdoaWxlIGxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNjZTUxNjYxMzEwNDFk
ZWI3MWM5ZTdiZTk1NTc5MDU1OTM3OTg1ODIuLjg0ZDg0YWM1NzJjMjg1NTMwYTRjZDE5NmZlNzg2
Y2U2NmJlMGRjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODAsOSArNDgwLDExIEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JX
cml0ZUJpdHMuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29tcGFyZUZ1bmN0aW9uLmlkbAog
ICAgIE1vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwKKyAg
ICBNb2R1bGVzL3dlYmdwdS9HUFVFcnJvckZpbHRlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9H
UFVFeHRlbnQzRC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3AuaWRsCiAgICAgTW9k
dWxlcy93ZWJncHUvR1BVT3JpZ2luM0QuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZN
ZW1vcnlFcnJvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCkBAIC00OTAsNiArNDkyLDcgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0
dXJlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRm9ybWF0Lmlk
bAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVVc2FnZS5pZGwKKyAgICBNb2R1bGVzL3dl
YmdwdS9HUFVWYWxpZGF0aW9uRXJyb3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVWZXJ0ZXhCdWZm
ZXJEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5pZGwKQEAgLTUwOCw2ICs1MTEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxF
UwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2VFcnJvclNjb3Blcy5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2Ny
aXB0b3JCYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmlk
bAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGM2OWQzZGQ0MTdiYmQ5MjRmOTUyMmMxNDc0OGNlODFlMjdkMDEzZDEuLmE2ODEzNzYwMWQ4Mjk0
YWZiMTJjODZiYmY0MWMxNjc5ZDI4MWY3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDEwICszMzAsMTIgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvcldyaXRlQml0cy5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50M0QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmdwdS9HUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQ
VU9yaWdpbjNELmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1v
cnlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJE
ZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3Rh
Z2VCaXQuaWRsCkBAIC0zNDEsNiArMzQzLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJn
cHUvR1BVU3RvcmVPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1
cmVEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVy
ZUZvcm1hdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVVc2Fn
ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2Ny
aXB0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVWZXJ0ZXhCdWZmZXJE
ZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmlkbApAQCAtMzYxLDYgKzM2NCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggMzdjM2M4YjFiYTUyYjI2MzBmMWYwNTNmMmIwNTI1MzVjZGM1MGNiNy4uNGEyNmQyOTJjNDkx
ZjQ5YmNiNjQxZWQ2ZmM3ZDgwNGNkYzZiZTdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTYwOSw2ICs2MDksOCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbXBhcmVGdW5jdGlv
bi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BV
Q29tcGFyZUZ1bmN0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVEZXB0aFN0ZW5jaWxTdGF0ZURl
c2NyaXB0b3IuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHUFVFcnJvckZpbHRlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTR1BVRXJyb3JGaWx0ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVFeHRlbnQzRC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVRXh0ZW50M0QuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5j
cHAKQEAgLTYxNyw2ICs2MTksOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dQVUxvYWRPcC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR1BVTG9hZE9wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3JpZ2luM0QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVU9yaWdpbjNELmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3V0T2ZN
ZW1vcnlFcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVU2FtcGxlckRlc2Ny
aXB0b3IuY3BwCkBAIC02MzEsNiArNjM1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVUZXh0dXJlRm9ybWF0LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVUZXh0dXJlRm9ybWF0LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVVGV4dHVyZVVzYWdl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVU
ZXh0dXJlVXNhZ2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHUFVWYWxpZGF0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVZhbGlkYXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQ
VVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcApAQCAtMTk0
Myw2ICsxOTQ5LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmMKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YkdQVURldmljZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR1BVRGV2aWNlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVURldmljZUVycm9yU2NvcGVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVBpcGVsaW5lTGF5b3V0
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2VlYjQyN2MyN2QxOGFjNGNi
ODdjOWZiMmZlZjAzZWUwNmJmNjY2ZC4uYzYxNzcxNjE0M2EwNzFhNjlhMGYyZWVkYzk1MTNkZDdi
YzFlNjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zODYsOSArMzg2LDEx
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQ
VUJ1ZmZlclVzYWdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb21w
YXJlRnVuY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVURlcHRo
U3RlbmNpbFN0YXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUvR1BVRXJyb3JGaWx0ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQ
VUV4dGVudDNELmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3Au
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVPdXRPZk1lbW9yeUVycm9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwg
XApAQCAtMzk2LDYgKzM5OCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRm9ybWF0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlVXNhZ2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4QnVmZmVyRGVzY3JpcHRvci5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJncHUvR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCBcCkBAIC00
MTQsNiArNDE3LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZUVycm9yU2NvcGVzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUVycm9yRmlsdGVyLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZDZhY2JiMjQyMWNiZjRkNGM1YWVmMThiMzU0ODM5YjcxZDY2Mzk2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVRXJyb3JGaWx0ZXIuaWRsCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdl
YgorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
R1BVCitdIGVudW0gR1BVRXJyb3JGaWx0ZXIgeworICAgICJub25lIiwKKyAgICAib3V0LW9mLW1l
bW9yeSIsCisgICAgInZhbGlkYXRpb24iCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9HUFVPdXRPZk1lbW9yeUVycm9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGQzZDAw
NzM3OTM0ZTRmNzdlOWE2MjM1ZWQ0MzE5NTQ1OWNiNjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwKQEAgLTAs
MCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2Vi
CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgQ29uc3RydWN0b3IoKSwKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitd
IGludGVyZmFjZSBHUFVPdXRPZk1lbW9yeUVycm9yIHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVVmFsaWRhdGlvbkVycm9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUx
M2MxODg3ZWY4YjQwNzljMDRjNWNiZWE2NmVjYTY3MzI3ZjQ4MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1
d2ViCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIG1lc3NhZ2UpLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdQVVZhbGlkYXRpb25FcnJvciB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tUZXh0dXJlUmVmZXJl
bmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNr
VGV4dHVyZVJlZmVyZW5jZXMuY3BwCmluZGV4IGMwMmRiODlkM2NiNmMwYTc1MWE2MjJlYjc5ZGQz
NGU3YjdkNTYzZjkuLjczODZiMTA2YmI4MGQzNjdlZjMxZGQ2YjUzNTllYWI5YTU3NzkyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tU
ZXh0dXJlUmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xDaGVja1RleHR1cmVSZWZlcmVuY2VzLmNwcApAQCAtMjYsMTAgKzI2LDE1IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0hMU0xDaGVja1RleHR1cmVSZWZlcmVu
Y2VzLmgiCiAKLSNpbmNsdWRlICJXSExTTEluZmVyVHlwZXMuaCIKLQogI2lmIEVOQUJMRShXRUJH
UFUpCiAKKyNpbmNsdWRlICJXSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oIgorI2luY2x1ZGUgIldI
TFNMQXJyYXlUeXBlLmgiCisjaW5jbHVkZSAiV0hMU0xJbmZlclR5cGVzLmgiCisjaW5jbHVkZSAi
V0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJXSExTTFBvaW50ZXJUeXBl
LmgiCisjaW5jbHVkZSAiV0hMU0xWaXNpdG9yLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIFdITFNMIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUmVjdXJzaW9uQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwCmluZGV4IDZhZjg4ZmUz
ZTRmMmU4M2Y2YmIzNDc0MzYzZDZkZmRlNjk0NTdmNTQuLmJhNDk3YjMzNDhiZGRiMzhkNzk2ODA4
ZTMyZDc0MDdkNGNmYmUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUmVjdXJzaW9uQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xSZWN1cnNpb25DaGVja2VyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiV0hMU0xDYWxsRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgIldI
TFNMRnVuY3Rpb25EZWZpbml0aW9uLmgiCisjaW5jbHVkZSAiV0hMU0xQcm9ncmFtLmgiCiAjaW5j
bHVkZSAiV0hMU0xWaXNpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAppbmRleCBkZTIwNGJiNWNhNTFiZTEwM2RhYWFjNTgy
MjJmNDBkNzBhY2E5MmNhLi5lMWQyYWNjMzFiODY4MmY2ODA2ZjgyZGYzMGU5NDJiZDJjZmFhM2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMjksMTcgKzI5LDE3IEBA
CiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1PcHRpb25hbDxHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yPiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOjp0cnlDcmVhdGVHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCkgY29uc3QKK09wdGlvbmFsPEdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3I+IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OnRyeUNyZWF0
ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVz
KSBjb25zdAogewogICAgIGF1dG8gcGlwZWxpbmVMYXlvdXQgPSBsYXlvdXQgPyBtYWtlUmVmUHRy
KGxheW91dC0+cGlwZWxpbmVMYXlvdXQoKSkgOiBudWxscHRyOwogCiAgICAgYXV0byBjb21wdXRl
ID0gY29tcHV0ZVN0YWdlLnRyeUNyZWF0ZUdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yKCk7CiAg
ICAgaWYgKCFjb21wdXRlKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVEZXZpY2U6OmNyZWF0
ZUNvbXB1dGVQaXBlbGluZSgpOiBJbnZhbGlkIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yISIp
OworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKCJHUFVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSgpOiBJbnZhbGlkIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yISIpOwog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5oCmluZGV4IGE0NTM5MDJkYmQ0MjUzODFmMWQ3NWJkMjg4YWUxMTYxMzdhMzA1OGMu
LjVjMzMzZWEzNjg5NjMyYTUxMzczZjZjNWZiMDg1MzU3MDM2MGRmMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTMzLDEwICszMywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIEdQVUVycm9yU2NvcGVzOworCiBzdHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcjsKIAogc3RydWN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgOiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlIHsKLSAgICBPcHRpb25hbDxHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yPiB0cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCkg
Y29uc3Q7CisgICAgT3B0aW9uYWw8R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gdHJ5Q3Jl
YXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihHUFVFcnJvclNjb3BlcyYpIGNvbnN0Owog
CiAgICAgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IGYw
NTlhZDg5ZTA5ZDRmNGE3NGY4YjhlODEzZjQ0ZjVhMGE5YjllMWUuLjEzYTBjZjBiMmM5MTRhMWNl
ZDZjNGIyN2FkYTFkOWI0MmVhYjAzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkdQVUJpbmRHcm91cC5o
IgogI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKICNpbmNsdWRlICJHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmgiCkBAIC00Miw2ICs0Myw4IEBACiAjaW5jbHVkZSAiR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiSlNHUFVPdXRPZk1l
bW9yeUVycm9yLmgiCisjaW5jbHVkZSAiSlNHUFVWYWxpZGF0aW9uRXJyb3IuaCIKICNpbmNsdWRl
ICJKU1dlYkdQVUJ1ZmZlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJH
UFVCaW5kR3JvdXAuaCIKQEAgLTYzLDYgKzY2LDggQEAKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVU3dhcENoYWluLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc2LDEy
ICs4MSwxMyBAQCBSZWZQdHI8V2ViR1BVRGV2aWNlPiBXZWJHUFVEZXZpY2U6OnRyeUNyZWF0ZShS
ZWY8Y29uc3QgV2ViR1BVQWRhcHRlcj4mJiBhZGFwdGVyKQogV2ViR1BVRGV2aWNlOjpXZWJHUFVE
ZXZpY2UoUmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlciwgUmVmPEdQVURldmljZT4m
JiBkZXZpY2UpCiAgICAgOiBtX2FkYXB0ZXIoV1RGTW92ZShhZGFwdGVyKSkKICAgICAsIG1fZGV2
aWNlKFdURk1vdmUoZGV2aWNlKSkKKyAgICAsIG1fZXJyb3JTY29wZXMoR1BVRXJyb3JTY29wZXM6
OmNyZWF0ZSgpKQogewogfQogCiBSZWY8V2ViR1BVQnVmZmVyPiBXZWJHUFVEZXZpY2U6OmNyZWF0
ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewot
ICAgIGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yKTsK
KyAgICBhdXRvIGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3JpcHRvciwg
R1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpOb3RNYXBwZWQsIG1fZXJyb3JTY29wZXMuY29weVJlZigp
KTsKICAgICByZXR1cm4gV2ViR1BVQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsKIH0K
IApAQCAtODksNyArOTUsNyBAQCBWZWN0b3I8SlNDOjpKU1ZhbHVlPiBXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUJ1ZmZlck1hcHBlZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbgogewogICAgIEpTQzo6
SlNWYWx1ZSB3cmFwcGVkQXJyYXlCdWZmZXIgPSBKU0M6OmpzTnVsbCgpOwogCi0gICAgYXV0byBi
dWZmZXIgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQnVmZmVyKGRlc2NyaXB0b3IsIHRydWUpOworICAg
IGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yLCBHUFVC
dWZmZXJNYXBwZWRPcHRpb246OklzTWFwcGVkLCBtX2Vycm9yU2NvcGVzLmNvcHlSZWYoKSk7CiAg
ICAgaWYgKGJ1ZmZlcikgewogICAgICAgICBhdXRvIGFycmF5QnVmZmVyID0gYnVmZmVyLT5tYXBP
bkNyZWF0aW9uKCk7CiAgICAgICAgIHdyYXBwZWRBcnJheUJ1ZmZlciA9IHRvSlMoJnN0YXRlLCBK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3Qo
KSksIGFycmF5QnVmZmVyKTsKQEAgLTE1OCwxMSArMTY0LDExIEBAIFJlZjxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVS
ZW5kZXJQCiAKIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRl
Q29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpIGNvbnN0CiB7Ci0gICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50
cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKCk7CisgICAgYXV0byBncHVEZXNj
cmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
KG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikKICAgICAgICAgcmV0dXJu
IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIpOwogCi0gICAgYXV0byBwaXBl
bGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3Ip
OworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5l
KCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdl
YkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpKTsKIH0KIApAQCAt
MTgwLDYgKzE4NiwxNiBAQCBSZWY8V2ViR1BVUXVldWU+IFdlYkdQVURldmljZTo6Z2V0UXVldWUo
KSBjb25zdAogICAgIHJldHVybiBtYWtlUmVmKCptX3F1ZXVlLmdldCgpKTsKIH0KIAordm9pZCBX
ZWJHUFVEZXZpY2U6OnBvcEVycm9yU2NvcGUoRXJyb3JQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAg
ICBTdHJpbmcgZmFpbE1lc3NhZ2U7CisgICAgT3B0aW9uYWw8R1BVRXJyb3I+IGVycm9yID0gbV9l
cnJvclNjb3Blcy0+cG9wRXJyb3JTY29wZShmYWlsTWVzc2FnZSk7CisgICAgaWYgKGZhaWxNZXNz
YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGVycm9yKTsKKyAgICBlbHNl
CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiR1BV
RGV2aWNlOjpwb3BFcnJvclNjb3BlKCk6ICIgKyBmYWlsTWVzc2FnZSB9KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggMjFkMzcxYTAzYTc1MTU0
NGE5MWQ3YzhhMWFkMGNkNjIxNTk1YWExYi4uZjRlNDNmMjM1NDdlN2JlMGM5ZmZhMDQ0MzQxZmM2
YTg2MDBlMzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAi
R1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlICJKU0RP
TVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXIuaCIKICNpbmNsdWRl
ICJXZWJHUFVRdWV1ZS5oIgogI2luY2x1ZGUgIldlYkdQVVN3YXBDaGFpbkRlc2NyaXB0b3IuaCIK
QEAgLTQzLDYgKzQ1LDggQEAgY2xhc3MgSlNWYWx1ZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBHUFVPdXRPZk1lbW9yeUVycm9yOworY2xhc3MgR1BVVmFsaWRhdGlvbkVycm9yOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdlYkdQVUJpbmRHcm91cDsKIGNs
YXNzIFdlYkdQVUJpbmRHcm91cExheW91dDsKQEAgLTY2LDYgKzcwLDExIEBAIHN0cnVjdCBXZWJH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3I7CiAKK2VudW0g
Y2xhc3MgR1BVRXJyb3JGaWx0ZXI7CisKK3VzaW5nIEVycm9ySURMVW5pb24gPSBJRExVbmlvbjxJ
RExJbnRlcmZhY2U8R1BVT3V0T2ZNZW1vcnlFcnJvcj4sIElETEludGVyZmFjZTxHUFVWYWxpZGF0
aW9uRXJyb3I+PjsKK3VzaW5nIEVycm9yUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExO
dWxsYWJsZTxFcnJvcklETFVuaW9uPj47CisKIGNsYXNzIFdlYkdQVURldmljZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdQVURldmljZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8V2Vi
R1BVRGV2aWNlPiB0cnlDcmVhdGUoUmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYpOwpAQCAtOTEs
MTIgKzEwMCwxNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8V2ViR1BVUXVldWU+IGdldFF1ZXVlKCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHB1c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyIGZpbHRlcikg
eyBtX2Vycm9yU2NvcGVzLT5wdXNoRXJyb3JTY29wZShmaWx0ZXIpOyB9CisgICAgdm9pZCBwb3BF
cnJvclNjb3BlKEVycm9yUHJvbWlzZSYmKTsKKwogcHJpdmF0ZToKICAgICBXZWJHUFVEZXZpY2Uo
UmVmPGNvbnN0IFdlYkdQVUFkYXB0ZXI+JiYsIFJlZjxHUFVEZXZpY2U+JiYpOwogCiAgICAgUmVm
PGNvbnN0IFdlYkdQVUFkYXB0ZXI+IG1fYWRhcHRlcjsKICAgICBSZWY8R1BVRGV2aWNlPiBtX2Rl
dmljZTsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJHUFVRdWV1ZT4gbV9xdWV1ZTsKKworICAgIFJl
ZjxHUFVFcnJvclNjb3Blcz4gbV9lcnJvclNjb3BlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZUVycm9yU2NvcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZUVycm9yU2NvcGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTMxMTAwZGI1NDUxMzg3OTQ0NzU2
YzBmYjAxZmQ4ODJhMzAxYTgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
RXJyb3JTY29wZXMuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVFcnJv
ckZpbHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViR1BVRGV2aWNlRXJy
b3JTY29wZXM6OnB1c2hFcnJvclNjb3BlKFdlYkdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvckZp
bHRlciBmaWx0ZXIpCit7CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKGZpbHRlcik7Cit9CisK
K3ZvaWQgV2ViR1BVRGV2aWNlRXJyb3JTY29wZXM6OnBvcEVycm9yU2NvcGUoV2ViR1BVRGV2aWNl
JiBkZXZpY2UsIEVycm9yUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgZGV2aWNlLnBvcEVycm9y
U2NvcGUoV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjBmMDdh
YmUzOThiZjlhNzM0ZDQ0NmFmNTg5NDUzYzBkYjBjMTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBHUFVFcnJvckZpbHRlcjsKKworY2xhc3MgV2ViR1BVRGV2aWNlRXJyb3JT
Y29wZXMgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHB1c2hFcnJvclNjb3BlKFdlYkdQVURl
dmljZSYsIEdQVUVycm9yRmlsdGVyKTsKKyAgICBzdGF0aWMgdm9pZCBwb3BFcnJvclNjb3BlKFdl
YkdQVURldmljZSYsIEVycm9yUHJvbWlzZSYmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWM3ODUyN2JjZTI5MDA4ZjQ5YmUwZDMxOTBjMzFlY2YwMTg1OWI0NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZUVycm9yU2Nv
cGVzLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ3B1d2ViLmdp
dGh1Yi5pby9ncHV3ZWIKKwordHlwZWRlZiAoR1BVT3V0T2ZNZW1vcnlFcnJvciBvciBHUFVWYWxp
ZGF0aW9uRXJyb3IpIEdQVUVycm9yOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIHBhcnRpYWwgaW50ZXJmYWNlIFdlYkdQVURldmlj
ZSB7CisgICAgdm9pZCBwdXNoRXJyb3JTY29wZShHUFVFcnJvckZpbHRlciBmaWx0ZXIpOworICAg
IFByb21pc2U8R1BVRXJyb3I/PiBwb3BFcnJvclNjb3BlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA1ZDE4ZTE0M2Q4ODVjMjhmNmZlNmE0NzQ3YmY1YWIwYTI2NzAxZGIyLi5jYzZmMmJkYmM0ODI5
Mzk4MTE2YjEwOTg1MzY5NTY0NjAxZmI2YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzY3LDYgKzM2
Nyw3IEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2UuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVM
YXlvdXQuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
Y3BwCkBAIC0xODc1LDYgKzE4NzYsOSBAQCBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RM
aWdodFNvdXJjZS5jcHAKIAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFsaWRhdGlvbkVycm9yLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogCkBAIC0yODA0LDkgKzI4MDgsMTEgQEAgSlNH
UFVCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVCdWZmZXJVc2FnZS5jcHAKIEpTR1BVQ29tcGFy
ZUZ1bmN0aW9uLmNwcAogSlNHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuY3BwCitKU0dQ
VUVycm9yRmlsdGVyLmNwcAogSlNHUFVFeHRlbnQzRC5jcHAKIEpTR1BVTG9hZE9wLmNwcAogSlNH
UFVPcmlnaW4zRC5jcHAKK0pTR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAKIEpTR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmNwcAogSlNHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKIEpTR1BVU2hhZGVy
U3RhZ2VCaXQuY3BwCkBAIC0yODE0LDYgKzI4MjAsNyBAQCBKU0dQVVN0b3JlT3AuY3BwCiBKU0dQ
VVRleHR1cmVEZXNjcmlwdG9yLmNwcAogSlNHUFVUZXh0dXJlRm9ybWF0LmNwcAogSlNHUFVUZXh0
dXJlVXNhZ2UuY3BwCitKU0dQVVZhbGlkYXRpb25FcnJvci5jcHAKIEpTR1BVVmVydGV4QXR0cmli
dXRlRGVzY3JpcHRvci5jcHAKIEpTR1BVVmVydGV4QnVmZmVyRGVzY3JpcHRvci5jcHAKIEpTR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmNwcApAQCAtMzM2Niw2ICszMzczLDcgQEAgSlNXZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuY3BwCiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKIEpTV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKIEpTV2ViR1BVRGV2aWNlLmNwcAorSlNX
ZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAKIEpTV2ViR1BVUXVldWUuY3BwCiBKU1dlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBKU1dlYkdQVVBpcGVsaW5lTGF5b3V0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDI2NzRlNDZmZjMyMWRiYTFiYzIxYTc3MjBhMWY5MzRjYzc1OTkwNWQuLmFlZWVkYTlmNTJlZDRk
ZDZjNTk4NzNkMDA0NjQ0MTQxZjcxMmZlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTA1LDYgKzEzOTA1LDggQEAKIAkJ
RDAzMjExQ0UyMUFDOTU0RTAwNzYzQ0YyIC8qIEdQVVJlbmRlclBhc3NFbmNvZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdQVVJlbmRlclBhc3NFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwMzIxMUNGMjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDMyMTFEMDIxQUM5NTRGMDA3NjNDRjIgLyogR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAzNTg2QjEyMkQ3RjJFQTAw
REEwMjg0IC8qIEdQVUVycm9yU2NvcGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yU2NvcGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMzU4NkIyMjJEN0YyRUEwMERBMDI4
NCAvKiBHUFVFcnJvclNjb3Blcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvclNjb3Bl
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMwMEY5
RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDNDODQ5
QTIxRkZDNjY3MDAwMjIyN0YgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMDNDODQ5QzIxRkZDN0ZDMDAwMjIyN0YgLyogR1BVQ29tcGFy
ZUZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbXBhcmVGdW5jdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM5NjksNiArMTM5NzEsMjAgQEAKIAkJRDA5M0QyMjUy
MTc5NTFENDAwMzI5MjE3IC8qIEdQVUNhbnZhc0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BV
Q2FudmFzQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDkzRDIyNzIx
Nzk1MUQ0MDAzMjkyMTcgLyogR1BVQ2FudmFzQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR1BVQ2FudmFzQ29u
dGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwOTNEMjI5MjE3OTU0MTYw
MDMyOTIxNyAvKiBHUFVDYW52YXNDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUNh
bnZhc0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDlBRkFGRjIy
RDAyRTUzMDBDNDUzOEMgLyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDA5QUZCMDEyMkQwMkU1MzAwQzQ1MzhDIC8qIFdlYkdQVURldmljZUVycm9yU2NvcGVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURldmljZUVycm9yU2NvcGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMDIyMkQwNDcxOTAwQzQ1MzhDIC8qIEdQVUVy
cm9yRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yRmls
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwOUFGQjAzMjJENDBDQzUwMEM0
NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVRGV2aWNlRXJy
b3JTY29wZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDlBRkIwNjIyRDQx
N0IzMDBDNDUzOEMgLyogR1BVRXJyb3JGaWx0ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVUVycm9yRmlsdGVyLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMDcyMkQ1MzkxQjAwQzQ1MzhD
IC8qIEdQVUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUVycm9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQwOUFGQjA4MjJENTU0MjgwMEM0NTM4QyAvKiBHUFVFcnJvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwOUFGQjBDMjJENTVFOTAwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEdQVVZhbGlkYXRpb25FcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwOUFGQjBEMjJENTVGM0IwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVVmFsaWRhdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwOUFGQjBFMjJENTVGRjUwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR1BVVmFsaWRhdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDA5QUZCMTcyMkQ2Njk0RTAwQzQ1MzhDIC8qIEdQVU91dE9mTWVt
b3J5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEdQVU91dE9mTWVtb3J5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDlBRkIxOTIyRDY2OThBMDBDNDUzOEMgLyogR1BVT3V0T2ZNZW1v
cnlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVPdXRPZk1lbW9yeUVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwOUFGQjJEMjJENkMwMTQwMEM0NTM4QyAvKiBHUFVFcnJv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwOUFGQjM3MjJEN0Q1QzYwMEM0NTM4QyAvKiBHUFVPYmplY3RCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdQVU9iamVjdEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDBBMjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
U1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBU1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTIwRDU2MjA5MkEw
QTYwMEUwQzI1OSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTNBNzMwMTQwNUEzOTgwMEZCOEVEMyAv
KiBSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODI3MCw5ICsxODI4NiwxNyBAQAogCQkJCUQwM0M4NDlBMjFGRkM2NjcwMDAyMjI3RiAvKiBH
UFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhCRjIxQTRDMkYx
MDBFQjE5OUQgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTJGRjhCRTIxQTRDMkYxMDBFQjE5
OUQgLyogR1BVRGV2aWNlLmggKi8sCisJCQkJRDA5QUZCMDgyMkQ1NTQyODAwQzQ1MzhDIC8qIEdQ
VUVycm9yLmNwcCAqLywKKwkJCQlEMDlBRkIyRDIyRDZDMDE0MDBDNDUzOEMgLyogR1BVRXJyb3Iu
Y3BwICovLAorCQkJCUQwOUFGQjA3MjJENTM5MUIwMEM0NTM4QyAvKiBHUFVFcnJvci5oICovLAor
CQkJCUQwOUFGQjAyMjJEMDQ3MTkwMEM0NTM4QyAvKiBHUFVFcnJvckZpbHRlci5oICovLAorCQkJ
CUQwMzU4NkIyMjJEN0YyRUEwMERBMDI4NCAvKiBHUFVFcnJvclNjb3Blcy5jcHAgKi8sCisJCQkJ
RDAzNTg2QjEyMkQ3RjJFQTAwREEwMjg0IC8qIEdQVUVycm9yU2NvcGVzLmggKi8sCiAJCQkJRDAy
NkY0N0QyMjBBMkFDNjAwQUM1RjQ5IC8qIEdQVUV4dGVudDNELmggKi8sCiAJCQkJRDBGNzU1OUYy
MjAzQkExNDAwMTE4MDU4IC8qIEdQVUxpbWl0cy5oICovLAogCQkJCUQwOEFBMDJGMjIwRDBCRDUw
MDU4QzUwMiAvKiBHUFVMb2FkT3AuaCAqLywKKwkJCQlEMDlBRkIzNzIyRDdENUM2MDBDNDUzOEMg
LyogR1BVT2JqZWN0QmFzZS5oICovLAorCQkJCUQwOUFGQjE5MjJENjY5OEEwMEM0NTM4QyAvKiBH
UFVPdXRPZk1lbW9yeUVycm9yLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJGNDAwRUIxOTlEIC8q
IEdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMDAzMjg4NzIxQzlBNEU1MDA2
MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovLAogCQkJCUQwMDMyODg2MjFDOUE0RTUw
MDYyMkFBNiAvKiBHUFVQaXBlbGluZUxheW91dC5oICovLApAQCAtMTgyOTgsNiArMTgzMjIsOCBA
QAogCQkJCTMxMkZGOEMzMjFBNEMyRjMwMEVCMTk5RCAvKiBHUFVUZXh0dXJlRm9ybWF0LmggKi8s
CiAJCQkJRDAyNkY0ODUyMjBBNDc3MjAwQUM1RjQ5IC8qIEdQVVRleHR1cmVVc2FnZS5oICovLAog
CQkJCUQwNkVGNTUyMjIwQkEyNkEwMDE4NzI0RSAvKiBHUFVVdGlscy5oICovLAorCQkJCUQwOUFG
QjBFMjJENTVGRjUwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuY3BwICovLAorCQkJCUQw
OUFGQjBEMjJENTVGM0IwMEM0NTM4QyAvKiBHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKIAkJCQlE
MEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5o
ICovLAogCQkJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhCdWZmZXJEZXNj
cmlwdG9yLmggKi8sCiAJCQkJRDBEODY0OTkyMUJBMUIxRjAwM0M5ODNDIC8qIEdQVVZlcnRleElu
cHV0RGVzY3JpcHRvci5oICovLApAQCAtMjU4ODcsMTAgKzI1OTEzLDEyIEBACiAJCQkJRDBCNTZF
QUUyMjRFQ0UyMDAwNjEwNDlDIC8qIEdQVUNvbG9yV3JpdGVCaXRzLmlkbCAqLywKIAkJCQlEMDND
ODQ5RTIxRkZDRjAwMDAwMjIyN0YgLyogR1BVQ29tcGFyZUZ1bmN0aW9uLmlkbCAqLywKIAkJCQlE
MDNDODRBMjIxRkZENzIzMDAwMjIyN0YgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9y
LmlkbCAqLywKKwkJCQlEMDlBRkIwNjIyRDQxN0IzMDBDNDUzOEMgLyogR1BVRXJyb3JGaWx0ZXIu
aWRsICovLAogCQkJCUQwMjZGNDgwMjIwQTJCNzAwMEFDNUY0OSAvKiBHUFVFeHRlbnQzRC5pZGwg
Ki8sCiAJCQkJRDA4QUEwMkQyMjBEMEI5QzAwNThDNTAyIC8qIEdQVUxvYWRPcC5pZGwgKi8sCiAJ
CQkJRDBDQ0E5NDkyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmggKi8sCiAJCQkJRDBD
Q0E5NEEyMjI5OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmlkbCAqLywKKwkJCQlEMDlBRkIx
NzIyRDY2OTRFMDBDNDUzOEMgLyogR1BVT3V0T2ZNZW1vcnlFcnJvci5pZGwgKi8sCiAJCQkJRDAy
QzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwgKi8s
CiAJCQkJRDBBREIyNjMyMjMwOUQ3NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bCAqLywKIAkJCQlEMERFOEZCODIyMkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQu
aCAqLywKQEAgLTI1ODk5LDYgKzI1OTI3LDcgQEAKIAkJCQlEMDI2RjQ4QjIyMEE1QjBCMDBBQzVG
NDkgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwRUFDRkFFMjE5RTMwRkQw
MDBGQTc1QyAvKiBHUFVUZXh0dXJlRm9ybWF0LmlkbCAqLywKIAkJCQlEMDI2RjQ4MzIyMEE0NzJG
MDBBQzVGNDkgLyogR1BVVGV4dHVyZVVzYWdlLmlkbCAqLywKKwkJCQlEMDlBRkIwQzIyRDU1RTkw
MDBDNDUzOEMgLyogR1BVVmFsaWRhdGlvbkVycm9yLmlkbCAqLywKIAkJCQlEMEQ4NjQ5NjIxQkEx
OEY0MDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgKi8sCiAJCQkJ
RDBEODY0OTgyMUJBMTlBNzAwM0M5ODNDIC8qIEdQVVZlcnRleEJ1ZmZlckRlc2NyaXB0b3IuaWRs
ICovLAogCQkJCUQwRDg2NDk0MjFCQTE3M0QwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhJbnB1dERlc2Ny
aXB0b3IuaWRsICovLApAQCAtMjU5NDUsNiArMjU5NzQsOSBAQAogCQkJCUQwMEY1OTUzMjE3MDFE
OEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovLAogCQkJCUQwMEY1OTUyMjE3MDFEOEMw
MDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLywKIAkJCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcx
REIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLywKKwkJCQlEMDlBRkIwMTIyRDAyRTUzMDBDNDUzOEMg
LyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwICovLAorCQkJCUQwOUFGQUZGMjJEMDJFNTMw
MEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5oICovLAorCQkJCUQwOUFGQjAzMjJE
NDBDQzUwMEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgKi8sCiAJCQkJRDBD
NDE5RjAyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAq
LywKIAkJCQlEMEM0MTlGMTIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5pZGwgKi8sCiAJCQkJRDA1QTk5RTUyMUM5QkYyQzAwMDMyQjc1IC8qIFdlYkdQVVBp
cGVsaW5lTGF5b3V0LmNwcCAqLywKQEAgLTI4MzUwLDYgKzI4MzgyLDcgQEAKIAkJCQlBNUE3QUE0
MzEzMkYwRUNDMDBEM0EzQzIgLyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0MxODQzRkUxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzFFOTcyODFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1Q0NDMjcwOTIyRDU0ODNBMDA5NjRGQTAgLyogQXV0b2Zp
bGxFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlENDY3MDUxRTYwQzQ2NTAwODE5NUZC
IC8qIEF1dG9wbGF5RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1ODMwRDRFMTY3OUI0Rjgw
MEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThD
RkYwNEUwQTE1NEYwOTAwMEE0MjM0IC8qIEF1dG9UYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTk5NCw3ICszMDAyNyw2IEBACiAJCQkJN0M3NzYxQUExRjg3OEFBNTAwRjg2OUZEIC8q
IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0MxOTNDMDExRjVFMTEwNTAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFs
aXR5LmggaW4gSGVhZGVycyAqLywKLQkJCQk1Q0NDMjcwOTIyRDU0ODNBMDA5NjRGQTAgLyogQXV0
b2ZpbGxFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5RDMwOURBMkI0ODAwOTYz
M0E2IC8qIEpTSW5wdXRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE3NUNFNUUyMUUyODFF
RDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MTc1Q0U1QzIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRp
dERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZjViNTMyMmM3YjkwMzVmNzNhNDI4MTZh
MjBjYmJhMTBlN2ZkN2ZlNC4uNDZmNTNlMTJhMWYzOGU5MmM5MGFjNDg3Y2I5MjdiOTA3OTZkMzlk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaApAQCAtOTQsNiArOTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oR1BV
Q29tcHV0ZVBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oR1BVQ29tcHV0ZVBpcGVsaW5lKSBcCiAg
ICAgbWFjcm8oR1BVRGV2aWNlKSBcCisgICAgbWFjcm8oR1BVT3V0T2ZNZW1vcnlFcnJvcikgXAog
ICAgIG1hY3JvKEdQVVBpcGVsaW5lTGF5b3V0KSBcCiAgICAgbWFjcm8oR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIpIFwKICAgICBtYWNybyhHUFVRdWV1ZSkgXApAQCAtMTA2LDYgKzEwNyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhHUFVUZXh0dXJlKSBcCiAgICAgbWFjcm8o
R1BVVGV4dHVyZVVzYWdlKSBcCiAgICAgbWFjcm8oR1BVVGV4dHVyZVZpZXcpIFwKKyAgICBtYWNy
byhHUFVWYWxpZGF0aW9uRXJyb3IpIFwKICAgICBtYWNybyhIVE1MQXR0YWNobWVudEVsZW1lbnQp
IFwKICAgICBtYWNybyhIVE1MQXVkaW9FbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTERhdGFMaXN0
RWxlbWVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJ1ZmZlci5oCmluZGV4IDQyNTA4YmM3NjE3MDViZjFhMGU2NjExNzkxZjVlYTY3MDk3YjU1MDUu
LjVmNmYyZjBjNDAzZDcwN2RkNjgyOGNmMTVlMGE4YzQxZmNlZDU0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkRlZmVycmFibGVUYXNrLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVy
VXNhZ2UuaCIKKyNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
QEAgLTUxLDYgKzUyLDggQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBzdHJ1Y3QgR1BVQnVmZmVyRGVz
Y3JpcHRvcjsKIAorZW51bSBjbGFzcyBHUFVCdWZmZXJNYXBwZWRPcHRpb247CisKICNpZiBVU0Uo
TUVUQUwpCiB1c2luZyBQbGF0Zm9ybUJ1ZmZlciA9IE1UTEJ1ZmZlcjsKICNlbHNlCkBAIC01OCw3
ICs2MSw3IEBAIHVzaW5nIFBsYXRmb3JtQnVmZmVyID0gdm9pZDsKICNlbmRpZgogdXNpbmcgUGxh
dGZvcm1CdWZmZXJTbWFydFB0ciA9IFJldGFpblB0cjxQbGF0Zm9ybUJ1ZmZlcj47CiAKLWNsYXNz
IEdQVUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJ1ZmZlcj4geworY2xhc3MgR1BVQnVm
ZmVyIDogcHVibGljIEdQVU9iamVjdEJhc2UgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgU3Rh
dGUgewogICAgICAgICBNYXBwZWQsCkBAIC02OCw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIH5H
UFVCdWZmZXIoKTsKIAotICAgIHN0YXRpYyBSZWZQdHI8R1BVQnVmZmVyPiB0cnlDcmVhdGUoUmVm
PEdQVURldmljZT4mJiwgY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYsIGJvb2wgaXNNYXBwZWRP
bkNyZWF0aW9uKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlKFJlZjxH
UFVEZXZpY2U+JiYsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZmZXJNYXBwZWRP
cHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CiAKICAgICBQbGF0Zm9ybUJ1ZmZlciAqcGxh
dGZvcm1CdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQnVmZmVyLmdldCgpOyB9CiAg
ICAgc2l6ZV90IGJ5dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KQEAg
LTEwNyw4ICsxMTAsOCBAQCBwcml2YXRlOgogICAgICAgICBQZW5kaW5nTWFwcGluZ0NhbGxiYWNr
KE1hcHBpbmdDYWxsYmFjayYmKTsKICAgICB9OwogCi0gICAgR1BVQnVmZmVyKFBsYXRmb3JtQnVm
ZmVyU21hcnRQdHImJiwgUmVmPEdQVURldmljZT4mJiwgc2l6ZV90LCBPcHRpb25TZXQ8R1BVQnVm
ZmVyVXNhZ2U6OkZsYWdzPiwgYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVCdWZmZXJV
c2FnZShjb25zdCBHUFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPik7
CisgICAgR1BVQnVmZmVyKFBsYXRmb3JtQnVmZmVyU21hcnRQdHImJiwgUmVmPEdQVURldmljZT4m
Jiwgc2l6ZV90LCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiwgR1BVQnVmZmVyTWFw
cGVkT3B0aW9uLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYpOworICAgIHN0YXRpYyBib29sIHZhbGlk
YXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiwgT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdl
OjpGbGFncz4sIEdQVUVycm9yU2NvcGVzJik7CiAKICAgICBKU0M6OkFycmF5QnVmZmVyKiBzdGFn
aW5nQnVmZmVyRm9yUmVhZCgpOwogICAgIEpTQzo6QXJyYXlCdWZmZXIqIHN0YWdpbmdCdWZmZXJG
b3JXcml0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggZmY1YzVhYjdmNTVjNDZiMDdkZDVj
ZjRhOWE4MmY4MGI1NTU2M2EwOC4uMzIwNzJkOWVmZjAyN2QyOWU5Mzc3OWJjOGYwNmJkNjQyYzQz
ODU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0zNiw2ICszNiwxMSBAQCBzdHJ1Y3QgR1BV
QnVmZmVyRGVzY3JpcHRvciB7CiAgICAgR1BVQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKIH07CiAK
K2VudW0gY2xhc3MgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIHsKKyAgICBJc01hcHBlZCwKKyAgICBO
b3RNYXBwZWQKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggNjUzNjdjOWQ5MzQzYTVjNDY5MTg3OGEx
OTRjMzJkODQwODdiMTAxMy4uNDZiN2FkY2VhZDU4OGM0ZTY5ZjRlNWQyOTFjN2EyYTcyZWQ2MzNj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNv
bXB1dGVQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAorI2luY2x1ZGUgIkdQVU9iamVjdEJhc2UuaCIKICNpbmNsdWRlICJXSExTTFByZXBh
cmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KQEAgLTQzLDE2ICs0NCwxNiBAQCBzdHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
cjsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gTVRMQ29tcHV0ZVBpcGVsaW5lU3Rh
dGU7CiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1U
TENvbXB1dGVQaXBlbGluZVN0YXRlPjsKIAotY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lIDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQ29tcHV0ZVBpcGVsaW5lPiB7CitjbGFzcyBHUFVDb21wdXRlUGlw
ZWxpbmUgOiBwdWJsaWMgR1BVT2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgc3RhdGljIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKIAogICAgIGNvbnN0
IFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKiBwbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KIAogICAgIFdITFNM
OjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
Y29tcHV0ZURpbWVuc2lvbnM7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVDb21wdXRlUGlwZWxpbmUo
UGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lv
bnMpOworICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0
UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsK
IAogICAgIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgbV9wbGF0Zm9ybUNvbXB1dGVQ
aXBlbGluZTsKICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgbV9jb21wdXRlRGltZW5zaW9u
cyB7IDAsIDAsIDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKaW5kZXggYTY0OWE2MDcxOTE5YjZkNWMyNDFhNzJmMjY4ODI1YTBl
NjUxZTdhZC4uNmRiZjI4NDRhZDQ4NzM2YjQ1MGYzYzRkNjU5YTdjMzY5Y2YzN2FkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCiAjaW5jbHVkZSAiR1BVUGlw
ZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpAQCAtNDYsMTMgKzQ3LDE0IEBACiAjaW5j
bHVkZSAiR1BVU3dhcENoYWluRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIK
ICNpbmNsdWRlICJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQ
dHI8R1BVQnVmZmVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIGlzTWFwcGVkT25DcmVhdGlvbikKK1JlZlB0cjxH
UFVCdWZmZXI+IEdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgUmVmPEdQ
VUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKQogewotICAgIHJldHVybiBHUFVCdWZmZXI6OnRy
eUNyZWF0ZShtYWtlUmVmKCp0aGlzKSwgZGVzY3JpcHRvciwgaXNNYXBwZWRPbkNyZWF0aW9uKTsK
KyAgICByZXR1cm4gR1BVQnVmZmVyOjp0cnlDcmVhdGUobWFrZVJlZigqdGhpcyksIGRlc2NyaXB0
b3IsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSk7CiB9CiAKIFJlZlB0cjxHUFVUZXh0
dXJlPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpIGNvbnN0CkBAIC04NSw5ICs4Nyw5IEBAIFJlZlB0cjxHUFVSZW5kZXJQ
aXBlbGluZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBHUFVSZW5k
ZXJQaXBlCiAgICAgcmV0dXJuIEdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRl
c2NyaXB0b3IpOwogfQogCi1SZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVEZXZpY2U6OnRy
eUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKSBjb25zdAorUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVRGV2aWNl
Ojp0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKSBjb25z
dAogewotICAgIHJldHVybiBHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgqdGhpcywgZGVz
Y3JpcHRvcik7CisgICAgcmV0dXJuIEdQVUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKCp0aGlz
LCBkZXNjcmlwdG9yLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSk7CiB9CiAKIFJlZlB0cjxHUFVDb21t
YW5kQnVmZmVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4
IGE3MTM5NTQxZDBiZmQxNGRiMjhmYTk1OWZmYjAxOTQzMGY4MDNiYmUuLjZkMTlkYTBhODE5MmU2
NDk5ZjE4N2Y2NTUyMGNhNWIzZDQ5Yzk0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1
ZGUgIkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSAiR1BVU3dhcENoYWluLmgiCisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KQEAgLTQxLDYgKzQzLDcgQEAgY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0OwogY2xh
c3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNsYXNzIEdQVUNvbXB1dGVQ
aXBlbGluZTsKK2NsYXNzIEdQVUVycm9yU2NvcGVzOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7
CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGluZTsKIGNsYXNzIEdQVVNhbXBsZXI7CkBAIC01Nyw3ICs2
MCw5IEBAIHN0cnVjdCBHUFVTYW1wbGVyRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yOwogc3RydWN0IEdQVVN3YXBDaGFpbkRlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BV
VGV4dHVyZURlc2NyaXB0b3I7Ci0gICAgCisKK2VudW0gY2xhc3MgR1BVQnVmZmVyTWFwcGVkT3B0
aW9uOworCiB1c2luZyBQbGF0Zm9ybURldmljZSA9IE1UTERldmljZTsKIHVzaW5nIFBsYXRmb3Jt
RGV2aWNlU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMRGV2aWNlPjsKIApAQCAtNjUsNyArNzAsNyBA
QCBjbGFzcyBHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8R1BVRGV2aWNlPgogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8R1BV
RGV2aWNlPiB0cnlDcmVhdGUoY29uc3QgT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
PiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1
ZmZlckRlc2NyaXB0b3ImLCBib29sIGlzTWFwcGVkT25DcmVhdGlvbiA9IGZhbHNlKTsKKyAgICBS
ZWZQdHI8R1BVQnVmZmVyPiB0cnlDcmVhdGVCdWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRv
ciYsIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKICAgICBS
ZWZQdHI8R1BVVGV4dHVyZT4gdHJ5Q3JlYXRlVGV4dHVyZShjb25zdCBHUFVUZXh0dXJlRGVzY3Jp
cHRvciYpIGNvbnN0OwogICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVhdGVTYW1wbGVyKGNv
bnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKQEAgLTc0LDcgKzc5LDcgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IEdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+
IHRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3JlYXRlQ29t
cHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBSZWY8R1BV
RXJyb3JTY29wZXM+JiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IHRy
eUNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg2NGEzZDYzYTk0
NGYzM2ZjNDNiMzIzZjU4MmQ4NDhjYzI5YmE4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVFcnJvci5o
IgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUVycm9yRmlsdGVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworT3B0aW9uYWw8R1BVRXJyb3I+IGNyZWF0ZUVycm9yKEdQ
VUVycm9yRmlsdGVyIGZpbHRlciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHN3aXRj
aCAoZmlsdGVyKSB7CisgICAgY2FzZSBHUFVFcnJvckZpbHRlcjo6T3V0T2ZNZW1vcnk6CisgICAg
ICAgIHJldHVybiBHUFVFcnJvcihSZWZQdHI8R1BVT3V0T2ZNZW1vcnlFcnJvcj4oR1BVT3V0T2ZN
ZW1vcnlFcnJvcjo6Y3JlYXRlKCkpKTsKKyAgICBjYXNlIEdQVUVycm9yRmlsdGVyOjpWYWxpZGF0
aW9uOgorICAgICAgICByZXR1cm4gR1BVRXJyb3IoUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4o
R1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUobWVzc2FnZSkpKTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2N2MzNWFkYzg5MGQzNzJmY2M5NzNjOGZkZGYyYjdiNmY1OTM2YmMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVT3V0T2ZNZW1vcnlFcnJvci5oIgor
I2luY2x1ZGUgIkdQVVZhbGlkYXRpb25FcnJvci5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgR1BVRXJyb3JGaWx0ZXI7CisKK3VzaW5nIEdQVUVycm9yID0gVmFyaWFudDxSZWZQ
dHI8R1BVT3V0T2ZNZW1vcnlFcnJvcj4sIFJlZlB0cjxHUFVWYWxpZGF0aW9uRXJyb3I+PjsKKwor
T3B0aW9uYWw8R1BVRXJyb3I+IGNyZWF0ZUVycm9yKEdQVUVycm9yRmlsdGVyLCBjb25zdCBTdHJp
bmcmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvckZpbHRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yRmlsdGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDU2OWZlZjMyNzA1ZDk5YmZlY2VhMDA4OTFmZjE2NDRhMGE0ZDE3MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvckZp
bHRlci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2VudW0gY2xhc3Mg
R1BVRXJyb3JGaWx0ZXIgeworICAgIE5vbmUsCisgICAgT3V0T2ZNZW1vcnksCisgICAgVmFsaWRh
dGlvbiwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3JTY29wZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUVycm9yU2NvcGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTAzZDc5ZDE4MWNjMmE1MTI1ZTBkNGNm
NDAyZTQ3MjNlY2NhM2JhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgi
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgR1BV
RXJyb3JTY29wZXM6OnB1c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyIGZpbHRlcikKK3sKKyAg
ICBtX2Vycm9yU2NvcGVzLmFwcGVuZChFcnJvclNjb3BlIHsgZmlsdGVyLCBXVEY6Om51bGxvcHQg
fSk7Cit9CisKK09wdGlvbmFsPEdQVUVycm9yPiBHUFVFcnJvclNjb3Blczo6cG9wRXJyb3JTY29w
ZShTdHJpbmcmIGZhaWxNZXNzYWdlKQoreworICAgIGlmIChtX2Vycm9yU2NvcGVzLmlzRW1wdHko
KSkgeworICAgICAgICBmYWlsTWVzc2FnZSA9ICJObyBlcnJvciBzY29wZSBleGlzdHMhIjsKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIHNjb3BlID0gbV9l
cnJvclNjb3Blcy50YWtlTGFzdCgpOworICAgIHJldHVybiBzY29wZS5maWx0ZXIgPT0gR1BVRXJy
b3JGaWx0ZXI6Ok5vbmUgPyBXVEY6Om51bGxvcHQgOiBzY29wZS5lcnJvcjsKK30KKwordm9pZCBH
UFVFcnJvclNjb3Blczo6Z2VuZXJhdGVFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEdQVUVy
cm9yRmlsdGVyIGZpbHRlcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjpmaW5kX2lmKG1f
ZXJyb3JTY29wZXMucmJlZ2luKCksIG1fZXJyb3JTY29wZXMucmVuZCgpLCBbZmlsdGVyXShjb25z
dCBFcnJvclNjb3BlJiBzY29wZSkgeworICAgICAgICByZXR1cm4gc2NvcGUuZmlsdGVyID09IEdQ
VUVycm9yRmlsdGVyOjpOb25lIHx8IHNjb3BlLmZpbHRlciA9PSBmaWx0ZXI7CisgICAgfSk7CisK
KyAgICAvLyBGSVhNRTogaHR0cHM6Ly93ZWJraXQub3JnL2IvMTk5Njc2IFVuY2FwdHVyZWQgZXJy
b3JzIG5lZWQgdG8gYmUgZmlyZWQgYXMgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRzLgorICAgIGlm
IChpdGVyYXRvciA9PSBtX2Vycm9yU2NvcGVzLnJlbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gSWYgdGhlIHNjb3BlIGhhcyBhbHJlYWR5IGNhcHR1cmVkIGFuIGVycm9yLCBpZ25vcmUg
dGhpcyBuZXcgb25lLgorICAgIGlmIChpdGVyYXRvci0+ZXJyb3IpCisgICAgICAgIHJldHVybjsK
KworICAgIGl0ZXJhdG9yLT5lcnJvciA9IGNyZWF0ZUVycm9yKGZpbHRlciwgbWVzc2FnZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JT
Y29wZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNj
b3Blcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUxNjFmNzA0ODJkMTcwYTQxNjljODQ3MjNkYTE3ZjU0ZTdkNmYy
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRXJyb3JTY29wZXMuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVRXJyb3IuaCIKKyNp
bmNsdWRlICJHUFVFcnJvckZpbHRlci5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVFcnJvclNjb3BlcyA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUVycm9yU2NvcGVzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxHUFVFcnJvclNjb3Bl
cz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVFcnJvclNjb3Blcyk7IH0KKwor
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoR1BVRXJyb3JGaWx0ZXIpOworICAgIE9wdGlvbmFsPEdQ
VUVycm9yPiBwb3BFcnJvclNjb3BlKFN0cmluZyYgZmFpbE1lc3NhZ2UpOworICAgIHZvaWQgZ2Vu
ZXJhdGVFcnJvcihjb25zdCBTdHJpbmcmLCBHUFVFcnJvckZpbHRlciA9IEdQVUVycm9yRmlsdGVy
OjpWYWxpZGF0aW9uKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgRXJyb3JTY29wZSB7CisgICAg
ICAgIGNvbnN0IEdQVUVycm9yRmlsdGVyIGZpbHRlcjsKKyAgICAgICAgT3B0aW9uYWw8R1BVRXJy
b3I+IGVycm9yOworICAgIH07CisKKyAgICBHUFVFcnJvclNjb3BlcygpID0gZGVmYXVsdDsKKwor
ICAgIFZlY3RvcjxFcnJvclNjb3BlPiBtX2Vycm9yU2NvcGVzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPYmplY3RCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFzZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2NTNiY2Y3YWY4Y2Y5ZDM5NjRhZjhkNTI1MTJmZTFiNjM2NDdhZmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFzZS5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVT2JqZWN0QmFz
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVU9iamVjdEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lk
IGdlbmVyYXRlRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBHUFVFcnJvckZpbHRlciBmaWx0
ZXIgPSBHUFVFcnJvckZpbHRlcjo6VmFsaWRhdGlvbikKKyAgICB7CisgICAgICAgIG1fZXJyb3JT
Y29wZXMtPmdlbmVyYXRlRXJyb3IobWVzc2FnZSwgZmlsdGVyKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBHUFVPYmplY3RCYXNlKFJlZjxHUFVFcnJvclNjb3Blcz4mJiByZXBvcnRlcikKKyAg
ICAgICAgOiBtX2Vycm9yU2NvcGVzKFdURk1vdmUocmVwb3J0ZXIpKSB7IH0KKworcHJpdmF0ZToK
KyAgICBSZWY8R1BVRXJyb3JTY29wZXM+IG1fZXJyb3JTY29wZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU91dE9mTWVtb3J5RXJyb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPdXRPZk1lbW9yeUVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWY0MjBlOTdkZmUzYmYwNzU2NmM1YjZhMGZkZWM0NjY4OTYxNzk0Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVPdXRPZk1lbW9yeUVycm9yLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdQVU91dE9mTWVtb3J5RXJyb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVPdXRPZk1lbW9yeUVy
cm9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxHUFVPdXRPZk1lbW9yeUVycm9yPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEdQVU91dE9mTWVtb3J5RXJyb3IpOyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRp
b25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFs
aWRhdGlvbkVycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTdlNTQ1NDYxMzg2Y2ZmY2Q0MTA4NzdkYzM2
MTRmNmRmMTgyODc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVWYWxpZGF0aW9uRXJy
b3IuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PEdQVVZhbGlkYXRpb25FcnJvcj4gR1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVZhbGlkYXRpb25F
cnJvcihtZXNzYWdlKSk7Cit9CisKK0dQVVZhbGlkYXRpb25FcnJvcjo6R1BVVmFsaWRhdGlvbkVy
cm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICA6IG1fbWVzc2FnZShtZXNzYWdlKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlk
YXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZh
bGlkYXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjVhYzIwN2ZjYTNiZWRiZTYxMTU1YTc1OTdh
ZGE1NTY3Mzg1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVmFsaWRhdGlvbkVycm9yLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVVZhbGlkYXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVZhbGlkYXRpb25FcnJvcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8R1BVVmFsaWRhdGlvbkVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKKworICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNz
YWdlOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgR1BVVmFsaWRhdGlvbkVycm9yKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CisKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZm
ZXJNZXRhbC5tbQppbmRleCA1OWEwN2ZmOWNlYjdkOGVhNTJkM2NiNmNkMWFjM2M3ZGY1ZmMyYTA1
Li41Y2JjNjQ4NTViZGFkODk4OTBkNTQ4MjkzNWEyOWZkNDliNTYxZWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1
ZmZlck1ldGFsLm1tCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRp
YyBjb25zdGV4cHIgYXV0byByZWFkT25seUZsYWdzID0gT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdl
OjpGbGFncz4geyBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6OkluZGV4LCBHUFVCdWZmZXJVc2FnZTo6
RmxhZ3M6OlZlcnRleCwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpVbmlmb3JtLCBHUFVCdWZmZXJV
c2FnZTo6RmxhZ3M6OlRyYW5zZmVyU291cmNlIH07CiAKIAotYm9vbCBHUFVCdWZmZXI6OnZhbGlk
YXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZm
ZXJVc2FnZTo6RmxhZ3M+IHVzYWdlKQorYm9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNh
Z2UoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6Rmxh
Z3M+IHVzYWdlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAgICAgaWYgKCFkZXZp
Y2UucGxhdGZvcm1EZXZpY2UoKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQnVmZmVyOjp0
cnlDcmVhdGUoKTogSW52YWxpZCBHUFVEZXZpY2UhIik7CkBAIC01MCw3ICs1MCw3IEBAIGJvb2wg
R1BVQnVmZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBP
cHRpb25TZXQ8R1BVQnVmZmVyCiAgICAgfQogCiAgICAgaWYgKHVzYWdlLmNvbnRhaW5zQWxsKHsg
R1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpNYXBXcml0ZSwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpN
YXBSZWFkIH0pKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVCdWZmZXI6OnRyeUNyZWF0ZSgp
OiBCdWZmZXIgY2Fubm90IGhhdmUgYm90aCBNQVBfUkVBRCBhbmQgTUFQX1dSSVRFIHVzYWdlISIp
OworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKCJHUFVCdWZmZXI6OnRyeUNyZWF0
ZSgpOiBCdWZmZXIgY2Fubm90IGhhdmUgYm90aCBNQVBfUkVBRCBhbmQgTUFQX1dSSVRFIHVzYWdl
ISIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MiwyMyArNjIsMjMgQEAg
Ym9vbCBHUFVCdWZmZXI6OnZhbGlkYXRlQnVmZmVyVXNhZ2UoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIE9wdGlvblNldDxHUFVCdWZmZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEdQ
VUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4mJiBkZXZpY2UsIGNv
bnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgaXNNYXBwZWRPbkNyZWF0
aW9uKQorUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmlj
ZT4mJiBkZXZpY2UsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUJ1
ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2Nv
cGVzKQogewogICAgIC8vIE1UTEJ1ZmZlciBzaXplIChOU1VJbnRlZ2VyKSBpcyAzMiBiaXRzIG9u
IHNvbWUgcGxhdGZvcm1zLgogICAgIE5TVUludGVnZXIgc2l6ZSA9IDA7CiAgICAgaWYgKCFXVEY6
OmNvbnZlcnRTYWZlbHkoZGVzY3JpcHRvci5zaXplLCBzaXplKSkgewotICAgICAgICBMT0coV2Vi
R1BVLCAiR1BVQnVmZmVyOjp0cnlDcmVhdGUoKTogQnVmZmVyIHNpemUgaXMgdG9vIGxhcmdlISIp
OworICAgICAgICBlcnJvclNjb3Blcy0+Z2VuZXJhdGVFcnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6
Ok91dE9mTWVtb3J5KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgYXV0
byB1c2FnZSA9IE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+Ojpmcm9tUmF3KGRlc2Ny
aXB0b3IudXNhZ2UpOwotICAgIGlmICghdmFsaWRhdGVCdWZmZXJVc2FnZShkZXZpY2UuZ2V0KCks
IHVzYWdlKSkKKyAgICBpZiAoIXZhbGlkYXRlQnVmZmVyVXNhZ2UoZGV2aWNlLmdldCgpLCB1c2Fn
ZSwgZXJyb3JTY29wZXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICAvLyBjb3B5QnVmZmVyVG9CdWZmZXIgY2FsbHMgcmVxdWlyZSA0LWJ5dGUgYWxp
Z25tZW50LiAiVW5tYXBwaW5nIiBhIG1hcHBlZC1vbi1jcmVhdGlvbiBHUFVCdWZmZXIKICAgICAv
LyB0aGF0IGlzIG90aGVyd2lzZSB1bm1hcHBhYmxlIHJlcXVpcmVzIHN1Y2ggYSBjb3B5IHRvIHVw
bG9hZCBkYXRhLgotICAgIGlmIChpc01hcHBlZE9uQ3JlYXRpb24KKyAgICBpZiAoaXNNYXBwZWQg
PT0gR1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpJc01hcHBlZAogICAgICAgICAmJiAhdXNhZ2UuY29u
dGFpbnNBbnkoeyBHUFVCdWZmZXJVc2FnZTo6RmxhZ3M6Ok1hcFdyaXRlLCBHUFVCdWZmZXJVc2Fn
ZTo6RmxhZ3M6Ok1hcFJlYWQgfSkKICAgICAgICAgJiYgZGVzY3JpcHRvci5zaXplICUgNCkgewog
ICAgICAgICBMT0coV2ViR1BVLCAiR1BVQnVmZmVyOjp0cnlDcmVhdGUoKTogRGF0YSBtdXN0IGJl
IGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiA0IGJ5dGVzISIpOwpAQCAtMTAyLDE5ICsxMDIsMjAg
QEAgUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVQnVmZmVyOjp0cnlDcmVhdGUoUmVmPEdQVURldmljZT4m
JiBkZXZpY2UsIGNvbnN0IEdQVUJ1ZmZlckQKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgaWYgKCFtdGxCdWZmZXIpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUJ1ZmZl
cjo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUgTVRMQnVmZmVyISIpOworICAgICAgICBl
cnJvclNjb3Blcy0+Z2VuZXJhdGVFcnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6Ok91dE9mTWVtb3J5
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgR1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVyKSwgV1RGTW92ZShkZXZpY2UpLCBzaXpl
LCB1c2FnZSwgaXNNYXBwZWRPbkNyZWF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQnVmZmVyKFdURk1vdmUobXRsQnVmZmVyKSwgV1RGTW92ZShkZXZpY2UpLCBzaXplLCB1c2Fn
ZSwgaXNNYXBwZWQsIFdURk1vdmUoZXJyb3JTY29wZXMpKSk7CiB9CiAKLUdQVUJ1ZmZlcjo6R1BV
QnVmZmVyKFJldGFpblB0cjxNVExCdWZmZXI+JiYgYnVmZmVyLCBSZWY8R1BVRGV2aWNlPiYmIGRl
dmljZSwgc2l6ZV90IHNpemUsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+IHVzYWdl
LCBib29sIGlzTWFwcGVkKQotICAgIDogbV9wbGF0Zm9ybUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikp
CitHUFVCdWZmZXI6OkdQVUJ1ZmZlcihSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGJ1ZmZlciwgUmVm
PEdQVURldmljZT4mJiBkZXZpY2UsIHNpemVfdCBzaXplLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNh
Z2U6OkZsYWdzPiB1c2FnZSwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIGlzTWFwcGVkLCBSZWY8R1BV
RXJyb3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKFdURk1vdmUo
ZXJyb3JTY29wZXMpKQorICAgICwgbV9wbGF0Zm9ybUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiAg
ICAgLCBtX2RldmljZShXVEZNb3ZlKGRldmljZSkpCiAgICAgLCBtX2J5dGVMZW5ndGgoc2l6ZSkK
ICAgICAsIG1fdXNhZ2UodXNhZ2UpCi0gICAgLCBtX2lzTWFwcGVkRnJvbUNyZWF0aW9uKGlzTWFw
cGVkKQorICAgICwgbV9pc01hcHBlZEZyb21DcmVhdGlvbihpc01hcHBlZCA9PSBHUFVCdWZmZXJN
YXBwZWRPcHRpb246OklzTWFwcGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBp
cGVsaW5lTWV0YWwubW0KaW5kZXggZTgxZjdjYWRkMjcwOGM2Y2RmYWEzZmRmOWIxZWZmNzJlYmE3
ZWY3OS4uMDg4NGYyNzU5NGJhNzU0ZDRiNzc5NzA1Y2FkMDNjZDI5ZjA0YTYxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQ
aXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQpAQCAtMzEsNDUgKzMxLDM3IEBACiAj
aW1wb3J0ICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVEZXZp
Y2UuaCIKICNpbXBvcnQgIkdQVVBpcGVsaW5lTWV0YWxDb252ZXJ0TGF5b3V0LmgiCi0jaW1wb3J0
ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXSExTTFByZXBhcmUuaCIKICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0
aWMgYm9vbCB0cnlTZXRNZXRhbEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5h
bWUsIE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExpYnJhcnksIE1UTENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0IFN0cmluZyYgY29tcHV0ZUVudHJ5UG9pbnRO
YW1lKQorc3RhdGljIGJvb2wgdHJ5U2V0TWV0YWxGdW5jdGlvbnMoY29uc3QgY2hhciogY29uc3Qg
ZnVuY3Rpb25OYW1lLCBNVExMaWJyYXJ5ICpjb21wdXRlTWV0YWxMaWJyYXJ5LCBNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yICptdGxEZXNjcmlwdG9yLCBjb25zdCBTdHJpbmcmIGNvbXB1dGVF
bnRyeVBvaW50TmFtZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewotI2lmIExPR19E
SVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2VuZGlmCi0KICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIWNvbXB1dGVNZXRhbExpYnJh
cnkpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBNVExMaWJyYXJ5IGZvciBjb21wdXRlIHN0
YWdlIGRvZXMgbm90IGV4aXN0ISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIGVycm9yU2NvcGVz
LmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IE1UTExpYnJhcnkgZm9y
IGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIikpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgYXV0byBmdW5jdGlvbiA9IGFkb3B0TlMoW2NvbXB1dGVNZXRhbExpYnJh
cnkgbmV3RnVuY3Rpb25XaXRoTmFtZTpjb21wdXRlRW50cnlQb2ludE5hbWVdKTsKICAgICBpZiAo
IWZ1bmN0aW9uKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogQ2Fubm90IGNyZWF0ZSBjb21w
dXRlIE1UTEZ1bmN0aW9uIFwiJXNcIiEiLCBmdW5jdGlvbk5hbWUsIGNvbXB1dGVFbnRyeVBvaW50
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvciht
YWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0
aW9uIFwiIiwgY29tcHV0ZUVudHJ5UG9pbnROYW1lLCAiXCIhIikpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgW210bERlc2NyaXB0b3Igc2V0Q29tcHV0ZUZ1bmN0aW9uOmZ1
bmN0aW9uLmdldCgpXTsKLSAgICByZXR1cm4gdHJ1ZTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyBPcHRpb25hbDxXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhj
b25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yJiBjb21wdXRlU3RhZ2UsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yKiBtdGxEZXNjcmlwdG9yLCBPcHRpb25hbDxXSExTTDo6Q29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvcj4mIHdobHNsRGVzY3JpcHRvcikKK3N0YXRpYyBPcHRpb25hbDxX
SExTTDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25z
dCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yJiBjb21wdXRl
U3RhZ2UsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBNVExDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yKiBtdGxEZXNjcmlwdG9yLCBPcHRpb25hbDxXSExTTDo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcj4mIHdobHNsRGVzY3JpcHRvciwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewot
I2lmIExPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2VuZGlm
CiAgICAgUmV0YWluUHRyPE1UTExpYnJhcnk+IGNvbXB1dGVMaWJyYXJ5OwogICAgIFN0cmluZyBj
b21wdXRlRW50cnlQb2ludDsKIApAQCAtODMsOCArNzUsMTEgQEAgc3RhdGljIE9wdGlvbmFsPFdI
TFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0
IGZ1bmMKICAgICAgICAgd2hsc2xEZXNjcmlwdG9yLT5lbnRyeVBvaW50TmFtZSA9IGNvbXB1dGVT
dGFnZS5lbnRyeVBvaW50OwogCiAgICAgICAgIGF1dG8gd2hsc2xDb21waWxlUmVzdWx0ID0gV0hM
U0w6OnByZXBhcmUod2hsc2xTb3VyY2UsICp3aGxzbERlc2NyaXB0b3IpOwotICAgICAgICBpZiAo
IXdobHNsQ29tcGlsZVJlc3VsdCkKKyAgICAgICAgaWYgKCF3aGxzbENvbXBpbGVSZXN1bHQpIHsK
KyAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlv
bk5hbWUsICI6IFdITFNMIGNvbXBpbGF0aW9uIGZhaWxlZCEiKSk7CiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisKICAgICAgICAgY29tcHV0ZURpbWVuc2lvbnMg
PSB3aGxzbENvbXBpbGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zOwogCiAgICAgICAgIE5TRXJy
b3IgKmVycm9yID0gbmlsOwpAQCAtMTA1LDggKzEwMCw5IEBAIHN0YXRpYyBPcHRpb25hbDxXSExT
TDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBm
dW5jCiAgICAgICAgIGNvbXB1dGVFbnRyeVBvaW50ID0gY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQ7
CiAgICAgfQogCi0gICAgaWYgKHRyeVNldE1ldGFsRnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29t
cHV0ZUxpYnJhcnkuZ2V0KCksIG10bERlc2NyaXB0b3IsIGNvbXB1dGVFbnRyeVBvaW50KSkKKyAg
ICBpZiAodHJ5U2V0TWV0YWxGdW5jdGlvbnMoZnVuY3Rpb25OYW1lLCBjb21wdXRlTGlicmFyeS5n
ZXQoKSwgbXRsRGVzY3JpcHRvciwgY29tcHV0ZUVudHJ5UG9pbnQsIGVycm9yU2NvcGVzKSkKICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVEaW1lbnNpb25zOworCiAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIH0KIApAQCAtMTE0LDE4ICsxMTAsMTcgQEAgc3RydWN0IENvbnZlcnRSZXN1bHQgewogICAg
IFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yPiBwaXBlbGluZURlc2NyaXB0
b3I7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zOwogfTsK
LXN0YXRpYyBPcHRpb25hbDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQor
CitzdGF0aWMgT3B0aW9uYWw8Q29udmVydFJlc3VsdD4gY29udmVydENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwg
R1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQogewogICAgIFJldGFpblB0cjxNVExDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotCiAgICAgbXRsRGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTENvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3IgbmV3XSk7Ci0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczog
RXJyb3IgY3JlYXRpbmcgTVRMRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICBl
cnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCAiOiBFcnJv
ciBjcmVhdGluZyBNVExEZXNjcmlwdG9yISIpKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTE0MSwxMiArMTM2LDEyIEBAIHN0YXRpYyBPcHRpb25hbDxDb252ZXJ0
UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25z
CiAgICAgICAgIGlmIChhdXRvIGxheW91dCA9IGNvbnZlcnRMYXlvdXQoKmRlc2NyaXB0b3IubGF5
b3V0KSkKICAgICAgICAgICAgIHdobHNsRGVzY3JpcHRvci0+bGF5b3V0ID0gV1RGTW92ZSgqbGF5
b3V0KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEVycm9y
IGNvbnZlcnRpbmcgR1BVUGlwZWxpbmVMYXlvdXQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAg
ICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6
IEVycm9yIGNvbnZlcnRpbmcgR1BVUGlwZWxpbmVMYXlvdXQhIikpOwogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIGNvbXB1
dGVEaW1lbnNpb25zID0gdHJ5U2V0RnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29tcHV0ZVN0YWdl
LCBkZXZpY2UsIG10bERlc2NyaXB0b3IuZ2V0KCksIHdobHNsRGVzY3JpcHRvcikpCisgICAgaWYg
KGF1dG8gY29tcHV0ZURpbWVuc2lvbnMgPSB0cnlTZXRGdW5jdGlvbnMoZnVuY3Rpb25OYW1lLCBj
b21wdXRlU3RhZ2UsIGRldmljZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgd2hsc2xEZXNjcmlwdG9y
LCBlcnJvclNjb3BlcykpCiAgICAgICAgIHJldHVybiB7eyBtdGxEZXNjcmlwdG9yLCAqY29tcHV0
ZURpbWVuc2lvbnMgfX07CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTU2LDE0ICsx
NTEsMTUgQEAgc3RydWN0IENyZWF0ZVJlc3VsdCB7CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQ
aXBlbGluZVN0YXRlPiBwaXBlbGluZVN0YXRlOwogICAgIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cyBjb21wdXRlRGltZW5zaW9uczsKIH07Ci1zdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0
cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorCitzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0
cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAg
ICAgaWYgKCFkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAi
R1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKTogSW52YWxpZCBHUFVEZXZpY2UhIik7Cisg
ICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUs
ICI6IEludmFsaWQgR1BVRGV2aWNlISIpKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICB9CiAKLSAgICBhdXRvIGNvbnZlcnRSZXN1bHQgPSBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIGRlc2NyaXB0b3IsIGRldmljZSk7CisgICAgYXV0byBj
b252ZXJ0UmVzdWx0ID0gY29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25O
YW1lLCBkZXNjcmlwdG9yLCBkZXZpY2UsIGVycm9yU2NvcGVzKTsKICAgICBpZiAoIWNvbnZlcnRS
ZXN1bHQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgQVNTRVJUKGNvbnZlcnRS
ZXN1bHQtPnBpcGVsaW5lRGVzY3JpcHRvcik7CkBAIC0xNzYsNyArMTcyLDcgQEAgc3RhdGljIE9w
dGlvbmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoY29u
c3QgY2hhciogY29uc3QKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICBwaXBlbGluZSA9
IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0NvbXB1dGVQaXBlbGluZVN0YXRl
V2l0aERlc2NyaXB0b3I6bXRsRGVzY3JpcHRvci5nZXQoKSBvcHRpb25zOk1UTFBpcGVsaW5lT3B0
aW9uTm9uZSByZWZsZWN0aW9uOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICBpZiAoIXBpcGVsaW5l
KSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSgp
OiAlcyEiLCBlcnJvciA/IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uLlVURjhTdHJpbmcgOiAi
VW5hYmxlIHRvIGNyZWF0ZSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSEiKTsKKyAgICAgICAgZXJy
b3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogIiwgKGVy
cm9yID8gZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24uVVRGOFN0cmluZyA6ICJVbmFibGUgdG8g
Y3JlYXRlIE1UTENvbXB1dGVQaXBlbGluZVN0YXRlISIpKSk7CiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xODUsMTkgKzE4MSwyMCBAQCBzdGF0aWMgT3B0aW9uYWw8
Q3JlYXRlUmVzdWx0PiB0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFy
KiBjb25zdAogICAgIHJldHVybiB7eyBwaXBlbGluZSwgY29udmVydFJlc3VsdC0+Y29tcHV0ZURp
bWVuc2lvbnMgfX07CiB9CiAKLVJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVUNvbXB1dGVQ
aXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxH
UFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykKIHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBm
dW5jdGlvbk5hbWUgPSAiR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgpIjsKKyAgICBjb25zdCBj
aGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUo
KSI7CiAKLSAgICBhdXRvIGNyZWF0ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGlu
ZVN0YXRlKGZ1bmN0aW9uTmFtZSwgZGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICBhdXRvIGNyZWF0
ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGZ1bmN0aW9uTmFtZSwg
ZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJvclNjb3Blcyk7CiAgICAgaWYgKCFjcmVhdGVSZXN1bHQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVD
b21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBjcmVh
dGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
UFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBj
cmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSkpOwog
fQogCi1HUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8TVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cyBjb21wdXRlRGltZW5zaW9ucykKLSAgICA6IG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RG
TW92ZShwaXBlbGluZSkpCitHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShS
ZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21w
dXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVy
cm9yU2NvcGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShXVEZNb3ZlKGVycm9yU2NvcGVzKSkKKyAg
ICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCiAgICAgLCBt
X2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1lbnNpb25zKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVN
ZXRhbC5tbQppbmRleCBhOWVhM2NiZWU1OGM4Mzk3MzE3Yzc1ODRhZWVmODQxNWMwNzY0NzM2Li4x
NzRkODY0ZGU0MDc4MDUxNWYyYzk3MDI4MjU1NTFhZTJjZjRmYzIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVN
ZXRhbC5tbQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEdQVVF1ZXVlOjpzdWJtaXQoVmVjdG9yPFJl
ZjxHUFVDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kQnVmZmVycykKICAgICAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICB9CiAKLSAgICBpZiAobV9wcmVzZW50VGFzay5oYXNQZW5k
aW5nVGFzaygpIHx8ICFtX2RldmljZS0+c3dhcENoYWluKCkpCisgICAgaWYgKG1fcHJlc2VudFRh
c2suaGFzUGVuZGluZ1Rhc2soKSB8fCAhbV9kZXZpY2UgfHwgIW1fZGV2aWNlLT5zd2FwQ2hhaW4o
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgYSBHUFVTd2FwQ2hhaW4gZXhpc3RzLCBl
bnN1cmUgdGhhdCBhIHByZXNlbnQgaXMgc2NoZWR1bGVkIGFmdGVyIGFsbCBjb21tYW5kIGJ1ZmZl
cnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYmQ2NTFhODExZGM1OWE0NjA1OTU3MGJiZjc1OTFkNDRjYTVmOTNiMC4uMGRj
MjQ3NjJjZGZjNTZhZThmM2M5MzQ5MjBmN2JhMzA2ZDVkNjc4MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
IEBACisyMDE5LTA3LTEyICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkdQVV0gQ29udmVydCBHUFVDb21wdXRlUGlwZWxpbmUgTE9HIHN0YXRlbWVudHMg
dG8gZ2VuZXJhdGUgR1BVRXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhm
aWVsZC4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSBHUFVDb21wdXRlUGlwZWxpbmUg
ZXJyb3JzIGdlbmVyYXRlIGNvcnJlY3RseS4KKyAgICAgICAgUmV3b3JrIGNoZWNrRmFpbCBpbiB0
aGUgV0hMU0wgdGVzdCBoYXJuZXNzIHRvIGNoZWNrIGZvciBHUFVFcnJvci4KKworICAgICAgICAq
IHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvanMv
d2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKHJ1blRlc3RzV2l0aERldmljZSk6IFJ1bnMg
dGVzdHMgaW4gYW4gb2JqZWN0IGFsbCB3aXRoIHRoZSBzYW1lIGRldmljZS4KKyAgICAgICAgKiB3
ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzOiBBZGQgc2hhZGVyIGNvbXBpbGF0aW9uIGVy
cm9yIGNoZWNraW5nLgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2FsbFR5cGVk
RnVuY3Rpb24pOgorICAgICAgICAoSGFybmVzcy5wcm90b3R5cGUuYXN5bmMuY2hlY2tDb21waWxl
RmFpbCk6CisgICAgICAgIChIYXJuZXNzLnByb3RvdHlwZS5hc3luYy5fY2FsbEZ1bmN0aW9uKToK
KyAgICAgICAgKEhhcm5lc3MpOgorICAgICAgICAoYXN5bmMuY2hlY2tGYWlsKToKKyAgICAgICAg
KEhhcm5lc3MucHJvdG90eXBlLl9jYWxsRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHdl
YmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6IFJlbW92ZSBhIFdITFNM
IGNvbXBpbGVyIGJ1Z2d5IHRlc3QuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1z
dHJ1Y3RzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRt
bDoKKworMjAxOS0wNy0xMCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBHUFVFcnJvciBhbmQgZXJyb3Igc2NvcGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk2NTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBBZGQgYSB0ZXN0
IHRvIGNvdmVyIHRoZSBjYXNlcyBvdXRsaW5lZCBpbiB0aGUgV2ViR1BVIGVycm9yIGhhbmRsaW5n
IGRlc2lnbiBkb2MuCisKKyAgICAgICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3QuaHRtbDog
QWRkZWQuCisKIDIwMTktMDctMTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0hMU0xdIERlc3VnYXIgZm9yIGxvb3BzIGFuZCB3aGlsZSBsb29wcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxpbmUtZXJyb3JzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBpcGVsaW5lLWVycm9ycy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVmZGYyYjgyNWMxYmI3MTU3ZGMxM2ExZDhmYWNiZGJm
MzExY2I1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRlLXBp
cGVsaW5lLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgQ29tcHV0
ZSBjb21waWxhdGlvbiBmYWlsZWQgZHVlIHRvIGluY29ycmVjdCBlbnRyeSBwb2ludCBzdHJpbmcu
IAorUEFTUyBDb21wdXRlIHBpcGVsaW5lIGNyZWF0aW9uIHN1Y2NlZWRlZC4gCitQQVNTIE1TTCBw
aXBlbGluZSBjcmVhdGlvbiBmYWlsZWQgZHVlIHRvIGludmFsaWQgR1BVU2hhZGVyTW9kdWxlLiAK
K1BBU1MgTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5
IHBvaW50IHN0cmluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRl
LXBpcGVsaW5lLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbXB1dGUtcGlwZWxp
bmUtZXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhiYmZlMGRjZWZmZjkzNDhiMWYyYmEyYmNkNGIw
YjAyZmQ2NTgyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb21wdXRl
LXBpcGVsaW5lLWVycm9ycy5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0IEVycm9yIFNjb3Blcy48L3RpdGxlPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2xldCB0ZXN0cyA9IHt9OworbGV0IGdvb2RNb2R1bGU7CisKK3Rlc3RzWyJDb21wdXRl
IGNvbXBpbGF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4i
XSA9IGFzeW5jIGRldmljZSA9PiB7CisgICAgY29uc3QgZ29vZFdITFNMID0gYAorW251bXRocmVh
ZHMoMSwgMSwgMSldCitjb21wdXRlIHZvaWQgX2NvbXB1dGVfbWFpbigpIHsgfQorYDsKKyAgICBn
b29kTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IGdvb2RXSExTTCwg
aXNXSExTTDogdHJ1ZSB9KTsKKworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlv
biIpOworCisgICAgZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CisgICAgICAgIGNvbXB1
dGVTdGFnZTogeworICAgICAgICAgICAgbW9kdWxlOiBnb29kTW9kdWxlLAorICAgICAgICAgICAg
ZW50cnlQb2ludDogImNvbXB1dGVfbWFpbiIKKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmV0
dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworfTsKKwordGVzdHNbIkNvbXB1dGUgcGlw
ZWxpbmUgY3JlYXRpb24gc3VjY2VlZGVkLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZp
Y2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAgIGRldmljZS5jcmVhdGVDb21w
dXRlUGlwZWxpbmUoeworICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgIG1vZHVs
ZTogZ29vZE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcG9wTnVsbEVycm9yKGRldmljZSk7Cit9
OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW52YWxpZCBH
UFVTaGFkZXJNb2R1bGUuIl0gPSBhc3luYyBkZXZpY2UgPT4geworICAgIGNvbnN0IGJhZE1TTCA9
IGBUaGlzIGNvZGUgc2hvdWxkIG5vdCBjb21waWxlLmA7CisKKyAgICBkZXZpY2UucHVzaEVycm9y
U2NvcGUoIm5vbmUiKTsKKworICAgIGNvbnN0IGJhZE1TTE1vZHVsZSA9IGRldmljZS5jcmVhdGVT
aGFkZXJNb2R1bGUoeyBjb2RlOiBiYWRNU0wgfSk7CisKKyAgICBhd2FpdCBkZXZpY2UucG9wRXJy
b3JTY29wZSgpOworCisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisK
KyAgICBkZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHsKKyAgICAgICAgY29tcHV0ZVN0YWdl
OiB7CisgICAgICAgICAgICBtb2R1bGU6IGJhZE1TTE1vZHVsZSwKKyAgICAgICAgICAgIGVudHJ5
UG9pbnQ6ICJfY29tcHV0ZV9tYWluIgorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4g
cG9wVmFsaWRhdGlvbkVycm9yKGRldmljZSk7Cit9OworCit0ZXN0c1siTVNMIHBpcGVsaW5lIGNy
ZWF0aW9uIGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IGVudHJ5IHBvaW50IHN0cmluZy4iXSA9IGFz
eW5jIGRldmljZSA9PiB7CisgICAgY29uc3QgZ29vZE1TTCA9IGAKK2tlcm5lbCB2b2lkIF9jb21w
dXRlX21haW4oKSB7IH0KK2A7CisgICAgY29uc3QgbXNsTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNo
YWRlck1vZHVsZSh7IGNvZGU6IGdvb2RNU0wgfSk7CisKKyAgICBkZXZpY2UucHVzaEVycm9yU2Nv
cGUoInZhbGlkYXRpb24iKTsKKworICAgIGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoewor
ICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgIG1vZHVsZTogbXNsTW9kdWxlLAor
ICAgICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21haSIKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgcmV0dXJuIHBvcFZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworfTsKKworcnVuVGVz
dHNXaXRoRGV2aWNlKHRlc3RzKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9lcnJvci1zY29wZXMt
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2NvcGVzLXRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYmE2N2Y4NzYxZjIwYTk4ODk1MGNhMjQzY2MwZjVm
ZjI2YTU5YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2Nv
cGVzLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBDYXB0dXJlIGEg
c2luZ2xlIEdQVVZhbGlkYXRpb24gZXJyb3IuIAorUEFTUyBDYXB0dXJlIGEgc2luZ2xlIEdQVU91
dE9mTWVtb3J5IGVycm9yLiAKK1BBU1MgSWdub3JlIGVycm9ycyBwYXN0IHRoZSBmaXJzdC4gCitQ
QVNTIENhcHR1cmVkIGVycm9ycyBtYXRjaCBlcnJvciBzY29wZSBmaWx0ZXIuIAorUEFTUyBSZWpl
Y3QgcG9wRXJyb3JTY29wZSBpZiBubyBzY29wZSBleGlzdHMuIAorUEFTUyBGaWx0ZXIgJ25vbmUn
IHNob3VsZCBjYXB0dXJlIGJ1dCBub3QgcmVwb3J0IGVycm9ycy4gCitQQVNTIFB1c2ggYW5kIHBv
cCBtYW55IGVycm9yIHNjb3BlcyB3aXRoIG5vIHJlamVjdGlvbnMuIAorUEFTUyBDYXRjaCBtYW55
IGVycm9ycyBpbiBuZXN0ZWQgc2NvcGVzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2Vycm9yLXNjb3Blcy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvZXJyb3Itc2Nv
cGVzLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTZhZmE4ZWRjMWExZTcyNDAyYzY2NjZlNGUzOGY4
ZjMzNThmYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2Vycm9yLXNj
b3Blcy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0IEVycm9yIFNjb3Blcy48L3RpdGxlPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2xldCB0ZXN0cyA9IHt9OworCit0ZXN0c1siQ2FwdHVyZSBhIHNpbmdsZSBHUFVWYWxpZGF0aW9u
IGVycm9yLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUo
InZhbGlkYXRpb24iKTsKKyAgICBjYXVzZVZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworICAgIHJl
dHVybiBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJDYXB0dXJlIGEg
c2luZ2xlIEdQVU91dE9mTWVtb3J5IGVycm9yLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBk
ZXZpY2UucHVzaEVycm9yU2NvcGUoIm91dC1vZi1tZW1vcnkiKTsKKyAgICBjYXVzZU1lbW9yeUVy
cm9yKGRldmljZSk7CisgICAgcmV0dXJuIHBvcE1lbW9yeUVycm9yKGRldmljZSk7Cit9OworCit0
ZXN0c1siSWdub3JlIGVycm9ycyBwYXN0IHRoZSBmaXJzdC4iXSA9IGFzeW5jIGRldmljZSA9PiB7
CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisgICAgZGV2aWNlLnB1
c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7CisgICAgY2F1c2VWYWxpZGF0aW9uRXJyb3IoZGV2
aWNlKTsKKyAgICBjYXVzZVZhbGlkYXRpb25FcnJvcihkZXZpY2UpOworICAgIAorICAgIGNvbnN0
IGVycm9yID0gYXdhaXQgZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICBhc3NlcnRWYWxpZGF0
aW9uRXJyb3IoZXJyb3IpOworCisgICAgcmV0dXJuIHBvcE51bGxFcnJvcihkZXZpY2UpOworfTsK
KwordGVzdHNbIkNhcHR1cmVkIGVycm9ycyBtYXRjaCBlcnJvciBzY29wZSBmaWx0ZXIuIl0gPSBh
c3luYyBkZXZpY2UgPT4geworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgidmFsaWRhdGlvbiIp
OworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgib3V0LW9mLW1lbW9yeSIpOworICAgIGNhdXNl
VmFsaWRhdGlvbkVycm9yKGRldmljZSk7CisKKyAgICBjb25zdCBzaG91bGRCZU51bGwgPSBhd2Fp
dCBkZXZpY2UucG9wRXJyb3JTY29wZSgpOworICAgIGFzc2VydE51bGwoc2hvdWxkQmVOdWxsKTsK
KworICAgIHJldHVybiBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJS
ZWplY3QgcG9wRXJyb3JTY29wZSBpZiBubyBzY29wZSBleGlzdHMuIl0gPSBhc3luYyBkZXZpY2Ug
PT4geworICAgIGNvbnN0IHByb21pc2UgPSBkZXZpY2UucG9wRXJyb3JTY29wZSgpLnRoZW4oKCkg
PT4gYXNzZXJ0X3VucmVhY2hlZCgpLCBhc3luYyBlID0+IHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNl
KGUgPT09IHVuZGVmaW5lZCk7CisgICAgICAgIC8vIFBvcCB0aGUgZXh0cmEgJ25vbmUnIHNjb3Bl
LgorICAgICAgICBhd2FpdCBwb3BOdWxsRXJyb3IoZGV2aWNlKTsKKyAgICB9KTsKKyAgICAvLyAn
cHJvbWlzZScgc2hvdWxkIHN0aWxsIHJlamVjdCBpZiBhIHNjb3BlIGlzIHB1c2hlZCBoZXJlLgor
ICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgibm9uZSIpOworICAgIHJldHVybiBwcm9taXNlOwor
fTsKKwordGVzdHNbIkZpbHRlciAnbm9uZScgc2hvdWxkIGNhcHR1cmUgYnV0IG5vdCByZXBvcnQg
ZXJyb3JzLiJdID0gYXN5bmMgZGV2aWNlID0+IHsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUo
Im91dC1vZi1tZW1vcnkiKTsKKyAgICBkZXZpY2UucHVzaEVycm9yU2NvcGUoIm5vbmUiKTsKKyAg
ICBjYXVzZU1lbW9yeUVycm9yKGRldmljZSk7CisKKyAgICBjb25zdCBzaG91bGRCZU51bGwgPSBh
d2FpdCBkZXZpY2UucG9wRXJyb3JTY29wZSgpOworICAgIGFzc2VydE51bGwoc2hvdWxkQmVOdWxs
KTsKKworICAgIHJldHVybiBwb3BOdWxsRXJyb3IoZGV2aWNlKTsKK307CisKK3Rlc3RzWyJQdXNo
IGFuZCBwb3AgbWFueSBlcnJvciBzY29wZXMgd2l0aCBubyByZWplY3Rpb25zLiJdID0gYXN5bmMg
ZGV2aWNlID0+IHsKKyAgICBjb25zdCBudW1JdGVyYXRpb25zID0gMTI4OworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgbnVtSXRlcmF0aW9uczsgKytpKQorICAgICAgICBkZXZpY2UucHVzaEVycm9y
U2NvcGUoIm91dC1vZi1tZW1vcnkiKTsKKyAgICAKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51
bUl0ZXJhdGlvbnMgLSAxOyArK2kpCisgICAgICAgIGF3YWl0IHBvcE51bGxFcnJvcihkZXZpY2Up
OworCisgICAgcmV0dXJuIHBvcE51bGxFcnJvcihkZXZpY2UpOworfTsKKwordGVzdHNbIkNhdGNo
IG1hbnkgZXJyb3JzIGluIG5lc3RlZCBzY29wZXMuIl0gPSBhc3luYyBkZXZpY2UgPT4geworICAg
IGNvbnN0IG51bUl0ZXJhdGlvbnMgPSAxMjg7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1J
dGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0
aW9uIik7CisgICAgICAgIGNhdXNlVmFsaWRhdGlvbkVycm9yKGRldmljZSk7CisgICAgfQorCisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zIC0gMTsgKytpKQorICAgICAgICBh
d2FpdCBwb3BWYWxpZGF0aW9uRXJyb3IoZGV2aWNlKTsKKworICAgIHJldHVybiBwb3BWYWxpZGF0
aW9uRXJyb3IoZGV2aWNlKTsKK307CisKK3J1blRlc3RzV2l0aERldmljZSh0ZXN0cyk7CisKKy8q
IEhlbHBlciBGdW5jdGlvbnMgKi8KKworY29uc3QgY2F1c2VWYWxpZGF0aW9uRXJyb3IgPSBkZXZp
Y2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IDQsIHVzYWdlOiBHUFVCdWZmZXJVc2Fn
ZS5NQVBfUkVBRCB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURSB9KTsKK2NvbnN0IGNhdXNlTWVt
b3J5RXJyb3IgPSBkZXZpY2UgPT4gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IDk5OTk5OTk5
OTk5LCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuTk9ORSB9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcwppbmRleCA2NDZlODAxYzE2NWQ1YzMwZWE4NTBlOGVhM2ZkOTQwZDAyZjQw
NDlkLi44YTFhZWY1ODM3NjY4YmU1MzRmODA1YmQzYmRkN2Q3N2Y4ZjE5NDM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcworKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMTQ5LDMgKzE0OSw0MyBAQCBh
c3luYyBmdW5jdGlvbiBtYXBXcml0ZURhdGFUb0J1ZmZlcihidWZmZXIsIGRhdGEsIG9mZnNldCA9
IDApIHsKICAgICB3cml0ZUFycmF5LnNldChuZXcgVWludDhBcnJheShkYXRhKSwgb2Zmc2V0KTsK
ICAgICBidWZmZXIudW5tYXAoKTsKIH0KKworLyoqKiBGdW5jdGlvbnMgYmVsb3cgdGhpcyBsaW5l
IHJlcXVpcmUgV1BUIHRlc3RoYXJuZXNzLmpzIGFuZCB0ZXN0aGFybmVzc3JlcG9ydC5qcy4gKioq
LworCitmdW5jdGlvbiBydW5UZXN0c1dpdGhEZXZpY2UodGVzdHMpIHsKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIHZhciBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOworICAgICAgICB9IGNh
dGNoIChlKSB7IC8qIFdlYkdQVSBpcyBub3Qgc3VwcG9ydGVkLiAqLyB9CisgICAgCisgICAgICAg
IGZvciAobGV0IG5hbWUgaW4gdGVzdHMpCisgICAgICAgICAgICBkZXZpY2VQcm9taXNlVGVzdChk
ZXZpY2UsIHRlc3RzW25hbWVdLCBuYW1lKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZGV2aWNl
UHJvbWlzZVRlc3QoZGV2aWNlLCBmdW5jLCBuYW1lKSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5j
ICgpID0+IHsKKyAgICAgICAgaWYgKGRldmljZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gZnVuYyhkZXZpY2UpOwor
ICAgIH0sIG5hbWUpOworfTsKKworLy8gQXNzZXJ0aW5nIGVycm9ycy4KKworY29uc3QgcG9wVmFs
aWRhdGlvbkVycm9yID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJv
ciA9PiBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoZXJyb3IpKTsKK2NvbnN0IHBvcE1lbW9yeUVycm9y
ID0gZGV2aWNlID0+IGRldmljZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJvciA9PiBhc3NlcnRN
ZW1vcnlFcnJvcihlcnJvcikpOworY29uc3QgcG9wTnVsbEVycm9yID0gZGV2aWNlID0+IGRldmlj
ZS5wb3BFcnJvclNjb3BlKCkudGhlbihlcnJvciA9PiBhc3NlcnROdWxsKGVycm9yKSk7Citjb25z
dCBhc3NlcnROdWxsID0gZXJyb3IgPT4geworICAgIGxldCBhc3NlcnRpb25Nc2cgPSAiTm8gZXJy
b3IgZXhwZWN0ZWQhIjsKKyAgICBpZiAoZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkKKyAgICAgICAg
YXNzZXJ0aW9uTXNnICs9ICIgR290OiAiICsgZXJyb3IubWVzc2FnZTsKKyAgICBhc3NlcnRfdHJ1
ZShlcnJvciA9PT0gbnVsbCwgYXNzZXJ0aW9uTXNnKTsKK307Citjb25zdCBhc3NlcnRWYWxpZGF0
aW9uRXJyb3IgPSBlcnJvciA9PiB7CisgICAgbGV0IGFzc2VydGlvbk1zZyA9ICJFeHBlY3RlZCB2
YWxpZGF0aW9uIGVycm9yOiAiOworICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKQorICAg
ICAgICBhc3NlcnRpb25Nc2cgKz0gZXJyb3IubWVzc2FnZTsKKyAgICBhc3NlcnRfdHJ1ZShlcnJv
ciBpbnN0YW5jZW9mIEdQVVZhbGlkYXRpb25FcnJvciwgYXNzZXJ0aW9uTXNnKTsKK307Citjb25z
dCBhc3NlcnRNZW1vcnlFcnJvciA9IGVycm9yID0+IGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNl
b2YgR1BVT3V0T2ZNZW1vcnlFcnJvciwgIkV4cGVjdGVkIG91dC1vZi1tZW1vcnkgZXJyb3IhIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2hsc2wtdGVzdC1oYXJuZXNzLmpz
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dobHNsLXRlc3QtaGFybmVzcy5qcwppbmRleCBjY2U5
ZjlmM2JhMDUxYjZiZTlkYWU3Y2I3Mjk4ZTc4YTllNGUxMTIxLi44ZTYxMDY3OTQxZWViYjMzYjlm
YTNmZGJmYTg4MjIyMmU0NDdmNDZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvanMv
d2hsc2wtdGVzdC1oYXJuZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93aGxzbC10
ZXN0LWhhcm5lc3MuanMKQEAgLTI1Myw3ICsyNTMsNyBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9t
YWluKGRldmljZSBfY29tcHV0ZV9hcmdzJiBhcmdzIFtbYnVmZmVyKDApXV0pCiBgOwogICAgICAg
ICB9CiAgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLl9zaGFkZXJIZWFkZXIgKyBmdW5jdGlvbnMg
KyBlbnRyeVBvaW50Q29kZTsKLSAgICAgICAgdGhpcy5fY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NM
YXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5ncyk7CisgICAgICAgIGF3YWl0IHRoaXMuX2NhbGxG
dW5jdGlvbihjb2RlLCBhcmdzTGF5b3V0cywgYXJnc1Jlc291cmNlQmluZGluZ3MpOwogICAgIAog
ICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IHRoaXMuX3Jlc3Vs
dEJ1ZmZlci5tYXBSZWFkQXN5bmMoKTsKQEAgLTMwMyw2ICszMDMsNDMgQEAga2VybmVsIHZvaWQg
X2NvbXB1dGVfbWFpbihkZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigwKV1dKQog
ICAgICAgICB0aGlzLl9jYWxsRnVuY3Rpb24oY29kZSwgYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJj
ZUJpbmRpbmdzKTsKICAgICB9CiAKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCBtYWxmb3Jt
ZWQgc2hhZGVyIGNvZGUgZG9lcyBub3QgY29tcGlsZS4KKyAgICAgKiBAcGFyYW0ge1N0cmluZ30g
c291cmNlIC0gQ3VzdG9tIGNvZGUgdG8gYmUgdGVzdGVkLgorICAgICAqLworICAgIGFzeW5jIGNo
ZWNrQ29tcGlsZUZhaWwoc291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2RldmljZSA9
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgbGV0
IGVudHJ5UG9pbnRDb2RlOworICAgICAgICBpZiAodGhpcy5pc1dITFNMKSB7CisgICAgICAgICAg
ICBlbnRyeVBvaW50Q29kZSA9IGAKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lk
IF9jb21wdXRlX21haW4oKSB7IH1gOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZW50
cnlQb2ludENvZGUgPSBgCitrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKCkgeyB9YDsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLl9zaGFkZXJIZWFkZXIgKyBzb3VyY2Ug
KyBlbnRyeVBvaW50Q29kZTsKKworICAgICAgICB0aGlzLl9kZXZpY2UucHVzaEVycm9yU2NvcGUo
InZhbGlkYXRpb24iKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IHNoYWRlcnMgPSB0aGlzLl9k
ZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogY29kZSwgaXNXSExTTDogdGhpcy5faXNX
SExTTCB9KTsKKyAgICAKKyAgICAgICAgdGhpcy5fZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZSh7CisgICAgICAgICAgICBjb21wdXRlU3RhZ2U6IHsKKyAgICAgICAgICAgICAgICBtb2R1bGU6
IHNoYWRlcnMsCisgICAgICAgICAgICAgICAgZW50cnlQb2ludDogIl9jb21wdXRlX21haW4iCisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnN0IGVycm9yID0gYXdhaXQg
dGhpcy5fZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICAgICAgaWYgKCFlcnJvcikKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ29tcGlsZXIgZXJyb3I6IHNoYWRlciBjb2RlIGRpZCBu
b3QgZmFpbCB0byBjb21waWxlISIpOworICAgIH0KKwogICAgIGdldCBkZXZpY2UoKSB7IHJldHVy
biB0aGlzLl9kZXZpY2U7IH0KIAogICAgIF9jbGVhclJlc3VsdHMoKQpAQCAtMzU5LDEwICszOTYs
OCBAQCBrZXJuZWwgdm9pZCBfY29tcHV0ZV9tYWluKGRldmljZSBfY29tcHV0ZV9hcmdzJiBhcmdz
IFtbYnVmZmVyKDApXV0pCiAgICAgICAgIHJldHVybiBbYXJnc0xheW91dHMsIGFyZ3NSZXNvdXJj
ZUJpbmRpbmdzLCBhcmdzRGVjbGFyYXRpb25zLCBmdW5jdGlvbkNhbGxBcmdzXTsKICAgICB9CiAK
LSAgICBfY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NMYXlvdXRzLCBhcmdzUmVzb3VyY2VCaW5kaW5n
cykKKyAgICBhc3luYyBfY2FsbEZ1bmN0aW9uKGNvZGUsIGFyZ3NMYXlvdXRzLCBhcmdzUmVzb3Vy
Y2VCaW5kaW5ncykKICAgICB7Ci0gICAgICAgIGNvbnN0IHNoYWRlcnMgPSB0aGlzLl9kZXZpY2Uu
Y3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogY29kZSwgaXNXSExTTDogdGhpcy5faXNXSExTTCB9
KTsKLQogICAgICAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSB0aGlzLl9kZXZpY2UuY3JlYXRl
QmluZEdyb3VwTGF5b3V0KHsKICAgICAgICAgICAgIGJpbmRpbmdzOiBhcmdzTGF5b3V0cwogICAg
ICAgICB9KTsKQEAgLTM3NCw3ICs0MDksMTAgQEAga2VybmVsIHZvaWQgX2NvbXB1dGVfbWFpbihk
ZXZpY2UgX2NvbXB1dGVfYXJncyYgYXJncyBbW2J1ZmZlcigwKV1dKQogICAgICAgICAgICAgYmlu
ZGluZ3M6IGFyZ3NSZXNvdXJjZUJpbmRpbmdzCiAgICAgICAgIH0pOwogCi0gICAgICAgIC8vIEZJ
WE1FOiBDb21waWxlIGVycm9ycyBzaG91bGQgYmUgY2F1Z2h0IGFuZCByZXBvcnRlZCBoZXJlLgor
ICAgICAgICB0aGlzLl9kZXZpY2UucHVzaEVycm9yU2NvcGUoInZhbGlkYXRpb24iKTsKKworICAg
ICAgICBjb25zdCBzaGFkZXJzID0gdGhpcy5fZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNv
ZGU6IGNvZGUsIGlzV0hMU0w6IHRoaXMuX2lzV0hMU0wgfSk7CisgICAgCiAgICAgICAgIGNvbnN0
IHBpcGVsaW5lID0gdGhpcy5fZGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSh7CiAgICAgICAg
ICAgICBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0LAogICAgICAgICAgICAgY29tcHV0ZVN0YWdlOiB7
CkBAIC0zOTEsNiArNDI5LDEwIEBAIGtlcm5lbCB2b2lkIF9jb21wdXRlX21haW4oZGV2aWNlIF9j
b21wdXRlX2FyZ3MmIGFyZ3MgW1tidWZmZXIoMCldXSkKICAgICAgICAgcGFzc0VuY29kZXIuZW5k
UGFzcygpOwogICAgICAgICAKICAgICAgICAgdGhpcy5fZGV2aWNlLmdldFF1ZXVlKCkuc3VibWl0
KFtjb21tYW5kRW5jb2Rlci5maW5pc2goKV0pOworCisgICAgICAgIGNvbnN0IGVycm9yID0gYXdh
aXQgdGhpcy5fZGV2aWNlLnBvcEVycm9yU2NvcGUoKTsKKyAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpOwogICAgIH0KIH0KIApAQCAt
NTA5LDYxICs1NTEsOSBAQCBhc3luYyBmdW5jdGlvbiBjYWxsRmxvYXQ0eDRGdW5jdGlvbihmdW5j
dGlvbnMsIG5hbWUsIGFyZ3MpCiAgICAgcmV0dXJuIChhd2FpdCBoYXJuZXNzLmNhbGxUeXBlZEZ1
bmN0aW9uKFR5cGVzLkZMT0FUNFg0LCBmdW5jdGlvbnMsIG5hbWUsIGFyZ3MpKS5zdWJhcnJheSgw
LCAxNik7CiB9CiAKLWFzeW5jIGZ1bmN0aW9uIGNoZWNrRmFpbChzb3VyY2UpIHsKLSAgICAvLyBG
SVhNRTogTWFrZSB0aGlzIGhhbmRsZSBlcnJvcnMgd2l0aCBwcm9wZXIgbWVzc2FnZXMgb25jZSB3
ZSBpbXBsZW1lbnQgdGhlIEFQSSBmb3IgdGhhdC4KLSAgICBjb25zdCBuYW1lID0gIl9fX190ZXN0
X25hbWVfX19fIjsKLSAgICBjb25zdCBwcm9ncmFtID0gYAotICAgICAgICAke3NvdXJjZX0KLQot
ICAgICAgICBbbnVtdGhyZWFkcygxLCAxLCAxKV0KLSAgICAgICAgY29tcHV0ZSB2b2lkICR7bmFt
ZX0oZGV2aWNlIGludFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQzIHRocmVhZElEIDog
U1ZfRGlzcGF0Y2hUaHJlYWRJRCkgewotICAgICAgICAgICAgYnVmZmVyWzBdID0gMTsKLSAgICAg
ICAgfQotICAgIGA7Ci0gICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsK
LSAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2Rl
OiBwcm9ncmFtLCBpc1dITFNMOiB0cnVlfSk7Ci0gICAgY29uc3QgY29tcHV0ZVN0YWdlID0ge21v
ZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiBuYW1lfTsKLQotICAgIGNvbnN0IGJpbmRH
cm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0
eTogNywgdHlwZTogInN0b3JhZ2UtYnVmZmVyIn1dfTsKLSAgICBjb25zdCBiaW5kR3JvdXBMYXlv
dXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0
b3IpOwotICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlv
dXRzOiBbYmluZEdyb3VwTGF5b3V0XX07Ci0gICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZp
Y2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKLQotICAg
IGNvbnN0IGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgPSB7Y29tcHV0ZVN0YWdlLCBsYXlvdXQ6
IHBpcGVsaW5lTGF5b3V0fTsKLSAgICBjb25zdCBjb21wdXRlUGlwZWxpbmUgPSBkZXZpY2UuY3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IpOwotCi0gICAgY29u
c3Qgc2l6ZSA9IEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiAxOwotCi0gICAgY29uc3Qg
YnVmZmVyRGVzY3JpcHRvciA9IHtzaXplLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRF
IHwgR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfU1JDfTsKLSAgICBjb25zdCBidWZmZXIgPSBkZXZp
Y2UuY3JlYXRlQnVmZmVyKGJ1ZmZlckRlc2NyaXB0b3IpOwotICAgIGNvbnN0IGJ1ZmZlckFycmF5
QnVmZmVyID0gYXdhaXQgYnVmZmVyLm1hcFdyaXRlQXN5bmMoKTsKLSAgICBjb25zdCBidWZmZXJJ
bnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoYnVmZmVyQXJyYXlCdWZmZXIpOwotICAgIGJ1ZmZl
ckludDMyQXJyYXlbMF0gPSAwOwotICAgIGJ1ZmZlci51bm1hcCgpOwotCi0gICAgY29uc3QgcmVz
dWx0c0J1ZmZlckRlc2NyaXB0b3IgPSB7c2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JB
R0UgfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfCBHUFVCdWZmZXJVc2FnZS5NQVBfUkVB
RH07Ci0gICAgY29uc3QgcmVzdWx0c0J1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIocmVzdWx0
c0J1ZmZlckRlc2NyaXB0b3IpOwotCi0gICAgY29uc3QgYnVmZmVyQmluZGluZyA9IHtidWZmZXI6
IHJlc3VsdHNCdWZmZXIsIHNpemV9OwotICAgIGNvbnN0IGJpbmRHcm91cEJpbmRpbmcgPSB7Ymlu
ZGluZzogMCwgcmVzb3VyY2U6IGJ1ZmZlckJpbmRpbmd9OwotICAgIGNvbnN0IGJpbmRHcm91cERl
c2NyaXB0b3IgPSB7bGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbYmluZEdyb3Vw
QmluZGluZ119OwotICAgIGNvbnN0IGJpbmRHcm91cCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXAo
YmluZEdyb3VwRGVzY3JpcHRvcik7Ci0KLSAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmlj
ZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOyAvLyB7fQotICAgIGNvbW1hbmRFbmNvZGVyLmNvcHlC
dWZmZXJUb0J1ZmZlcihidWZmZXIsIDAsIHJlc3VsdHNCdWZmZXIsIDAsIHNpemUpOwotICAgIGNv
bnN0IGNvbXB1dGVQYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luQ29tcHV0ZVBhc3Mo
KTsKLSAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lKTsK
LSAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7Ci0gICAg
Y29tcHV0ZVBhc3NFbmNvZGVyLmRpc3BhdGNoKDEsIDEsIDEpOwotICAgIGNvbXB1dGVQYXNzRW5j
b2Rlci5lbmRQYXNzKCk7Ci0gICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGNvbW1hbmRFbmNvZGVy
LmZpbmlzaCgpOwotICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0p
OwotCi0gICAgY29uc3QgcmVzdWx0c0FycmF5QnVmZmVyID0gYXdhaXQgcmVzdWx0c0J1ZmZlci5t
YXBSZWFkQXN5bmMoKTsKLSAgICBsZXQgcmVzdWx0c0ludDMyQXJyYXkgPSBuZXcgSW50MzJBcnJh
eShyZXN1bHRzQXJyYXlCdWZmZXIpOwotICAgIGlmIChyZXN1bHRzSW50MzJBcnJheVswXSAhPT0g
MCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwcm9ncmFtIGRpZCBub3QgZmFpbCB0byBjb21w
aWxlIik7Ci0gICAgcmVzdWx0c0J1ZmZlci51bm1hcCgpOworYXN5bmMgZnVuY3Rpb24gY2hlY2tG
YWlsKHNvdXJjZSkgCit7CisgICAgcmV0dXJuIChhd2FpdCBoYXJuZXNzLmNoZWNrQ29tcGlsZUZh
aWwoc291cmNlKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQKaW5kZXggZGViNTM0OGQwMzNjMDM0
ODg4ZTFiYjEwMzdmY2Q0ZTEwM2QzYTE5OS4uYjU3ZDMxOTg4NTc2Nzc4OGY3NDdhNmZjZThhNDI2
OWY1OTFjOTU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2
ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVj
dXJzaXZlLXN0cnVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCiBQQVNTIG11dHVh
bGx5UmVjdXJzaXZlU3RydWN0IAotUEFTUyBtdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2lu
dGVyc0Jyb2tlbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vy
c2l2ZS1zdHJ1Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0
cnVjdHMuaHRtbAppbmRleCA4MmYwOGQ0YWU5OThjNWFhOGIxNmU2YjI1MDEwNDdjZmJjODM0ZjBh
Li4zNmVkYzBiMzY0YTQ1Y2U2ODZlYmI0YmRjYzBmOTA4OTk1ZDIyN2ViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMuaHRtbApAQCAtMjQsMjggKzI0
LDI5IEBAIHdobHNsVGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3QgPSBhc3luYyAoKSA9Pgog
ICAgICAgICAKIH0KIAotd2hsc2xUZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2lu
dGVyc0Jyb2tlbiA9IGFzeW5jICgpID0+Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBgCi0gICAgICAg
IHN0cnVjdCBGb28gewotICAgICAgICAgICAgdGhyZWFkIEJhciogYmFyOwotICAgICAgICAgICAg
aW50IGZvbzsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIHRo
cmVhZCBGb28qIGZvbzsKLSAgICAgICAgICAgIGludCBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAg
aW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICBC
YXIgYmFyOwotICAgICAgICAgICAgZm9vLmZvbyA9IDU2NDsKLSAgICAgICAgICAgIGJhci5iYXIg
PSA1MzsKLSAgICAgICAgICAgIHJldHVybiBmb28uYmFyLT5iYXIgLSBiYXIuZm9vLT5mb287Ci0g
ICAgICAgIH0KLSAgICBgOwotICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIDApOwotfQorLy8gRklYTUUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTc2NjogVGhpcyBzaG91bGQgY29tcGlsZS4KKy8vIHdo
bHNsVGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gPSBhc3lu
YyAoKSA9PgorLy8geworLy8gICAgIGxldCBwcm9ncmFtID0gYAorLy8gICAgICAgICBzdHJ1Y3Qg
Rm9vIHsKKy8vICAgICAgICAgICAgIHRocmVhZCBCYXIqIGJhcjsKKy8vICAgICAgICAgICAgIGlu
dCBmb287CisvLyAgICAgICAgIH0KKy8vICAgICAgICAgc3RydWN0IEJhciB7CisvLyAgICAgICAg
ICAgICB0aHJlYWQgRm9vKiBmb287CisvLyAgICAgICAgICAgICBpbnQgYmFyOworLy8gICAgICAg
ICB9CisvLyAgICAgICAgIGludCBmb28oKQorLy8gICAgICAgICB7CisvLyAgICAgICAgICAgICBG
b28gZm9vOworLy8gICAgICAgICAgICAgQmFyIGJhcjsKKy8vICAgICAgICAgICAgIGZvby5mb28g
PSA1NjQ7CisvLyAgICAgICAgICAgICBiYXIuYmFyID0gNTM7CisvLyAgICAgICAgICAgICByZXR1
cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOworLy8gICAgICAgICB9CisvLyAgICAgYDsK
Ky8vICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAwKTsKKy8vIH0KIAogcnVuVGVzdHMod2hsc2xUZXN0cyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVzdC1oYXJuZXNzLXRlc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGEwNzU3N2Q1MDRkOTZkNzdkYmM1NjIzMTQ0OTE2MWUwNTJlMTVjNjAu
LjdhYmI3MWEwMDFmYTg2ZWY5YjlhMjA4YjJmNTQ4ZjU3ZjE0ZjAyNWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlc3QtaGFybmVzcy10ZXN0LWV4cGVjdGVkLnR4
dApAQCAtMzAsNCArMzAsNiBAQCBQQVNTIFJldHVybiBhbiBleHBlY3RlZCBmbG9hdDR4NCB2YWx1
ZS4KIFBBU1MgUmV0dXJuIGFuIGV4cGVjdGVkIGZsb2F0NHg0IHZhbHVlLiAKIFBBU1MgUmV0dXJu
IGFuIGV4cGVjdGVkIGZsb2F0NHg0IHZhbHVlLiAKIFBBU1MgUmV0dXJuIGFuIGV4cGVjdGVkIGZs
b2F0NHg0IHZhbHVlLiAKK1BBU1MgQ29kZSBzaG91bGQgbm90IGNvbXBpbGUsIGFuZCBubyBlcnJv
ciBpcyByZXBvcnRlZC4gCitQQVNTIFN1Y2Nlc3NmdWxseSBjb21waWxpbmcgY29kZSBpbiBjaGVj
a0ZhaWwgaXMgYW4gZXJyb3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtdGVzdC1oYXJuZXNzLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0
LWhhcm5lc3MtdGVzdC5odG1sCmluZGV4IDQ1MjkxNDYyMDcyZWIyMmY1NjliZjYzZTNiZjZiYTc5
NTc2ZTVkNmYuLjM2M2EwYTFiZmQ4N2NhMDljNzlhYzg3YzE3ZDc0ZjI2YTE0ZmVjNDcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXN0LWhhcm5lc3MtdGVzdC5odG1sCkBAIC0x
NzcsNiArMTc3LDE4IEBAIHdobHNsVGVzdHMuZmxvYXQ0eDR0ZXN0cyA9ICgpID0+IHsKICAgICBj
aGVja0FycmF5cygiZmxvYXQ0eDQiLCAicmV0dXJuIGluMFswXTsiLCBbW2Zsb2F0NHg0ZXhwZWN0
ZWRdXSwgZmxvYXQ0eDRleHBlY3RlZCk7CiB9OwogCit3aGxzbFRlc3RzLmNoZWNrRmFpbFRlc3Rz
ID0gKCkgPT4geworICAgIHdlYkdQVVByb21pc2VUZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJu
IGNoZWNrRmFpbChgRG9vcnMgYW5kIGNvcm5lcnMsIGtpZC4gVGhhdCdzIHdoZXJlIHRoZXkgZ2V0
Y2hhLmApOworICAgIH0sICJDb2RlIHNob3VsZCBub3QgY29tcGlsZSwgYW5kIG5vIGVycm9yIGlz
IHJlcG9ydGVkLiIpOworCisgICAgd2ViR1BVUHJvbWlzZVRlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gY2hlY2tGYWlsKCIiKS5jYXRjaChlID0+IHsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGUgaW5zdGFuY2VvZiBFcnJvciwgIkFuIGV4cGVjdGVkIEVycm9yIHdhcyBjYXVnaHQuIik7Cisg
ICAgICAgIH0pOworICAgIH0sICJTdWNjZXNzZnVsbHkgY29tcGlsaW5nIGNvZGUgaW4gY2hlY2tG
YWlsIGlzIGFuIGVycm9yLiIpCit9OworCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKICAgICB0cnkgewogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gd2hsc2xUZXN0
cykgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>