<?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>169535</bug_id>
          
          <creation_ts>2017-03-12 19:34:08 -0700</creation_ts>
          <short_desc>WebGPU Backend</short_desc>
          <delta_ts>2017-03-13 00:12:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167952</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287002</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-12 19:34:08 -0700</bug_when>
    <thetext>WebGPU Backend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287003</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-12 19:34:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/31002364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287005</commentid>
    <comment_count>2</comment_count>
      <attachid>304216</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-12 19:40:40 -0700</bug_when>
    <thetext>Created attachment 304216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287008</commentid>
    <comment_count>3</comment_count>
      <attachid>304216</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-12 19:59:49 -0700</bug_when>
    <thetext>Comment on attachment 304216
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/GPUBufferMetal.mm:45
&gt; +    m_buffer = (MTLBuffer *)[device-&gt;platformDevice() newBufferWithBytes:data-&gt;baseAddress() length:data-&gt;byteLength() options:MTLResourceOptionCPUCacheModeDefault];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPUCommandQueueMetal.mm:45
&gt; +    m_commandQueue = (MTLCommandQueue *)[device-&gt;platformDevice() newCommandQueue];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPUDepthStencilDescriptorMetal.mm:42
&gt; +    m_depthStencilDescriptor = (MTLDepthStencilDescriptor *)[MTLDepthStencilDescriptor new];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPUDepthStencilStateMetal.mm:46
&gt; +    m_depthStencilState = (MTLDepthStencilState *)[device-&gt;platformDevice() newDepthStencilStateWithDescriptor:descriptor-&gt;platformDepthStencilDescriptor()];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPUFunctionMetal.mm:44
&gt; +    m_function = (MTLFunction *)[library-&gt;platformLibrary() newFunctionWithName:name];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPULibraryMetal.mm:46
&gt; +    m_library = (MTLLibrary *)[device-&gt;platformDevice() newLibraryWithSource:sourceCode options:nil error:&amp;error];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPassColorAttachmentDescriptorMetal.mm:52
&gt; +    MTLRenderPassColorAttachmentDescriptor *colorAttachmentDescriptor = static_cast&lt;MTLRenderPassColorAttachmentDescriptor*&gt;(m_renderPassAttachmentDescriptor.get());

space: static_cast&lt;MTLRenderPassColorAttachmentDescriptor *&gt;

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPassColorAttachmentDescriptorMetal.mm:72
&gt; +    return static_cast&lt;MTLRenderPassColorAttachmentDescriptor*&gt;(platformRenderPassAttachmentDescriptor());

space: static_cast&lt;MTLRenderPassColorAttachmentDescriptor *&gt;

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPassDepthAttachmentDescriptorMetal.mm:52
&gt; +    MTLRenderPassDepthAttachmentDescriptor *depthAttachmentDescriptor = static_cast&lt;MTLRenderPassDepthAttachmentDescriptor*&gt;(m_renderPassAttachmentDescriptor.get());

space: static_cast&lt;MTLRenderPassDepthAttachmentDescriptor *&gt;

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPassDepthAttachmentDescriptorMetal.mm:67
&gt; +    return static_cast&lt;MTLRenderPassDepthAttachmentDescriptor*&gt;(platformRenderPassAttachmentDescriptor());

space: static_cast&lt;MTLRenderPassDepthAttachmentDescriptor *&gt;

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPassDescriptorMetal.mm:43
&gt; +    m_renderPassDescriptor = (MTLRenderPassDescriptor *)[MTLRenderPassDescriptor new];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPipelineDescriptorMetal.mm:43
&gt; +    m_renderPipelineDescriptor = (MTLRenderPipelineDescriptor *)[MTLRenderPipelineDescriptor new];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPURenderPipelineStateMetal.mm:46
&gt; +    m_renderPipelineState = (MTLRenderPipelineState *)[device-&gt;platformDevice() newRenderPipelineStateWithDescriptor:descriptor-&gt;platformRenderPipelineDescriptor() error:nil];

adoptNS()?

&gt; Source/WebCore/platform/graphics/cocoa/GPUTextureMetal.mm:47
&gt; +    m_texture = (MTLTexture *)[device-&gt;platformDevice() newTextureWithDescriptor:descriptor-&gt;platformTextureDescriptor()];

adoptNS()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287017</commentid>
    <comment_count>4</comment_count>
      <attachid>304216</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-12 20:26:50 -0700</bug_when>
    <thetext>Comment on attachment 304216
Patch

Confirmed with Dean out-of-band that adoptNS() was needed. Will check in patch with adoptNS() wrapped in the places I marked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287020</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-12 20:41:35 -0700</bug_when>
    <thetext>Committed r213780.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287058</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-13 00:11:29 -0700</bug_when>
    <thetext>*** Bug 169367 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287060</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-13 00:11:57 -0700</bug_when>
    <thetext>*** Bug 169368 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287062</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-13 00:12:00 -0700</bug_when>
    <thetext>*** Bug 169370 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287064</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-13 00:12:03 -0700</bug_when>
    <thetext>*** Bug 169372 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304216</attachid>
            <date>2017-03-12 19:40:40 -0700</date>
            <delta_ts>2017-03-12 20:41:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169535-20170313134026.patch</filename>
            <type>text/plain</type>
            <size>211740</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2UzMmYyYzFiYmY1YTY3
YjZjNTE2MDhhMjI1MDhkMmY2NzVhNmUzOS4uOGY3NThlMzk3Njk5MWE1ODhhZGI5ZmQ1ZTA4Mzhh
ZmRlMmM5MmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyNyBAQAorMjAxNy0wMy0xMiAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR1BVIEJhY2tlbmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTUzNQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzEwMDIzNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRmlsbCBpbiB0aGUgcmVtYWluZGVyIG9mIHRoZSBXZWJH
UFUgYmFja2VuZC4gVGhpcyBpcyBlZmZlY3RpdmVseQorICAgICAgICBhIEMrKyByZXByZXNlbnRh
dGlvbiBvZiB0aGUgTWV0YWwgQVBJLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVURyYXdhYmxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURyYXdhYmxlOjpXZWJHUFVEcmF3YWJsZSk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR1BVRHJhd2FibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VURyYXdhYmxlOjp0ZXh0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6
R1BVQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6cGxhdGZvcm1CdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRh
bC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVRnVuY3Rpb25NZXRhbC5tbS4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6
OkdQVUNvbW1hbmRCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6
cGxhdGZvcm1Db21tYW5kQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZm
ZXI6OnByZXNlbnREcmF3YWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVQ29tbWFuZFF1ZXVlTWV0YWwubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dQVUZ1bmN0aW9uTWV0YWwubW0uCisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21tYW5kUXVldWU6OkdQVUNvbW1hbmRRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVDb21tYW5kUXVldWU6OmxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRRdWV1
ZTo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZFF1ZXVlOjpwbGF0Zm9y
bUNvbW1hbmRRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVRGVw
dGhTdGVuY2lsRGVzY3JpcHRvck1ldGFsLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0uCisgICAgICAgIChXZWJD
b3JlOjpHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6OmRlcHRoV3Jp
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6
OnNldERlcHRoV3JpdGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3I6OmRlcHRoQ29tcGFyZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VURlcHRoU3RlbmNpbERlc2NyaXB0b3I6OnNldERlcHRoQ29tcGFyZUZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6OnBsYXRmb3JtRGVwdGhTdGVu
Y2lsRGVzY3JpcHRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVRGVw
dGhTdGVuY2lsU3RhdGVNZXRhbC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR1BVRnVuY3Rpb25NZXRhbC5tbS4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVURlcHRoU3RlbmNpbFN0YXRlOjpHUFVEZXB0aFN0ZW5jaWxTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVEZXB0aFN0ZW5jaWxTdGF0ZTo6bGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGVwdGhTdGVuY2lsU3RhdGU6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURl
cHRoU3RlbmNpbFN0YXRlOjpwbGF0Zm9ybURlcHRoU3RlbmNpbFN0YXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEcmF3YWJsZU1ldGFsLm1tOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVGdW5jdGlvbk1ldGFsLm1t
LgorICAgICAgICAoV2ViQ29yZTo6R1BVRHJhd2FibGU6OkdQVURyYXdhYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVURyYXdhYmxlOjpyZWxlYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURy
YXdhYmxlOjpwbGF0Zm9ybURyYXdhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURyYXdhYmxl
OjpwbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQ
VUZ1bmN0aW9uTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVGdW5jdGlvbjo6R1BVRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6R1BVRnVuY3Rpb246OnBsYXRmb3JtRnVuY3Rpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUxpYnJhcnlNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVUxpYnJhcnk6OkdQVUxpYnJhcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVTGlicmFyeTo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVTGlicmFy
eTo6cGxhdGZvcm1MaWJyYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
UFVSZW5kZXJDb21tYW5kRW5jb2Rlck1ldGFsLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyOjpHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcik6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0UmVuZGVyUGlwZWxpbmVT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0RGVw
dGhTdGVuY2lsU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQ29tbWFuZEVuY29k
ZXI6OnNldFZlcnRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5k
RW5jb2Rlcjo6c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVy
Q29tbWFuZEVuY29kZXI6OmRyYXdQcmltaXRpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVS
ZW5kZXJDb21tYW5kRW5jb2Rlcjo6cGxhdGZvcm1SZW5kZXJDb21tYW5kRW5jb2Rlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNj
cmlwdG9yTWV0YWwubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpsb2Fk
QWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3Jp
cHRvcjo6c2V0TG9hZEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzQXR0
YWNobWVudERlc2NyaXB0b3I6OnN0b3JlQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcjo6c2V0U3RvcmVBY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6R1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpzZXRUZXh0dXJlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcjo6cGxh
dGZvcm1SZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yTWV0
YWwubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudERlc2NyaXB0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERl
c2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dERlc2NyaXB0b3I6OmNsZWFyQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnNldENsZWFyQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnBsYXRmb3JtUmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yTWV0YWwu
bW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVu
dERlc2NyaXB0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRGVw
dGhBdHRhY2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2Ny
aXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERl
c2NyaXB0b3I6OmNsZWFyRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0Rl
cHRoQXR0YWNobWVudERlc2NyaXB0b3I6OnNldENsZWFyRGVwdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I6OnBsYXRmb3JtUmVuZGVy
UGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yTWV0YWwubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OkdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOjpj
b2xvckF0dGFjaG1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yOjpkZXB0aEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0Rl
c2NyaXB0b3I6OnBsYXRmb3JtUmVuZGVyUGFzc0Rlc2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3Jp
cHRvck1ldGFsLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HUFVMaWJyYXJ5TWV0YWwubW0uCisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
aXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OkdQVVJlbmRl
clBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpH
UFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnBpeGVsRm9ybWF0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3Jp
cHRvcjo6c2V0UGl4ZWxGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxp
bmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOjpwbGF0Zm9ybVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yTWV0YWwubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpk
ZXB0aEF0dGFjaG1lbnRQaXhlbEZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3I6OnNldERlcHRoQXR0YWNobWVudFBpeGVsRm9ybWF0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6c2V0VmVydGV4RnVuY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpzZXRG
cmFnbWVudEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvcjo6Y29sb3JBdHRhY2htZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3I6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvcjo6cGxhdGZvcm1SZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBpcGVsaW5lU3RhdGVNZXRh
bC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVVGV4dHVyZU1ldGFsLm1tLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVT
dGF0ZTo6R1BVUmVuZGVyUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJQaXBlbGluZVN0YXRlOjpsYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBl
bGluZVN0YXRlOjpzZXRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGlu
ZVN0YXRlOjpwbGF0Zm9ybVJlbmRlclBpcGVsaW5lU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW06CisgICAgICAgIChX
ZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6R1BVVGV4dHVyZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OnBsYXRmb3JtVGV4dHVyZURlc2Ny
aXB0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVNZXRh
bC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OkdQVVRleHR1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6cGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbW1hbmRCdWZmZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVQnVmZmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRC
dWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjp+R1BV
Q29tbWFuZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjb21t
aXQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlUmVuZGVyQ29t
bWFuZEVuY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6cHJlc2Vu
dERyYXdhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1
ZmZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVVGV4dHVyZS5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5k
UXVldWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQnVmZmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRRdWV1ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRRdWV1ZTo6fkdQVUNvbW1hbmRRdWV1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kUXVldWU6OmNyZWF0ZUNvbW1hbmRCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZFF1ZXVlOjpsYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVDb21tYW5kUXVldWU6OnNldExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZFF1ZXVlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVMaWJyYXJ5LmguCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5jcHAuCisg
ICAgICAgIChXZWJDb3JlOjpHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6fkdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRv
cjo6ZGVwdGhXcml0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVuY2ls
RGVzY3JpcHRvcjo6c2V0RGVwdGhXcml0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
RGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6ZGVwdGhDb21wYXJlRnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6R1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6c2V0RGVwdGhDb21wYXJlRnVuY3Rp
b24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXB0aFN0ZW5jaWxEZXNj
cmlwdG9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVUZXh0dXJlLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRo
U3RlbmNpbFN0YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpHUFVEZXB0aFN0ZW5j
aWxTdGF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNpbFN0YXRl
Ojp+R1BVRGVwdGhTdGVuY2lsU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVu
Y2lsU3RhdGU6OmxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURlcHRoU3RlbmNpbFN0YXRl
OjpzZXRMYWJlbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3Rl
bmNpbFN0YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVMaWJyYXJ5LmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZUNvbW1hbmRRdWV1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmdldEZyYW1lYnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2U6Om1hcmtMYXllckNvbXBvc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
RGV2aWNlOjpjcmVhdGVDb21tYW5kUXVldWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpnZXRGcmFtZWJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURyYXdhYmxlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpH
UFVEcmF3YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURyYXdhYmxlOjp+R1BV
RHJhd2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRHJhd2FibGU6OnJlbGVhc2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEcmF3YWJsZS5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFbnVtcy5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVGdW5jdGlvbk1ldGFsLm1tLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVGdW5jdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVMaWJyYXJ5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVTGlicmFyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVMaWJyYXJ5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
UmVuZGVyQ29tbWFuZEVuY29kZXI6On5HUFVSZW5kZXJDb21tYW5kRW5jb2Rlcik6CisgICAgICAg
IChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0UmVuZGVyUGlwZWxpbmVTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0RGVwdGhT
dGVuY2lsU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6
OnNldFZlcnRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJDb21tYW5kRW5j
b2Rlcjo6c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQ29t
bWFuZEVuY29kZXI6OmRyYXdQcmltaXRpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmguCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJl
LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRv
cjo6fkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OkdQVVJlbmRlclBhc3NBdHRhY2ht
ZW50RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzQXR0YWNobWVu
dERlc2NyaXB0b3I6OmxvYWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFz
c0F0dGFjaG1lbnREZXNjcmlwdG9yOjpzZXRMb2FkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcjo6c3RvcmVBY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpzZXRTdG9yZUFj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0
b3I6OnNldFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5k
ZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNj
cmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudERlc2NyaXB0b3I6OkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yOjp+R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OmNsZWFyQ29s
b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2Ny
aXB0b3I6OnNldENsZWFyQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3Jp
cHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVUZXh0dXJlLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXB0aEF0
dGFjaG1lbnREZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVy
UGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I6OkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1l
bnREZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXB0aEF0dGFj
aG1lbnREZXNjcmlwdG9yOjp+R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0
b3I6OmNsZWFyRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0RlcHRoQXR0
YWNobWVudERlc2NyaXB0b3I6OnNldENsZWFyRGVwdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5o
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRv
ci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCdWZmZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjo6fkdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yOjpkZXB0aEF0dGFjaG1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Iu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
VGV4dHVyZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0
YWNobWVudERlc2NyaXB0b3I6On5HUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2Ny
aXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1l
bnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNj
cmlwdG9yOjpwaXhlbEZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGlu
ZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnNldFBpeGVsRm9ybWF0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNj
cmlwdG9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVUZXh0dXJlLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjp+R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6ZGVwdGhBdHRhY2ht
ZW50UGl4ZWxGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yOjpzZXREZXB0aEF0dGFjaG1lbnRQaXhlbEZvcm1hdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OnNldFZlcnRleEZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6c2V0RnJhZ21lbnRGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmNv
bG9yQXR0YWNobWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUxpYnJhcnkuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVMaWJyYXJ5LmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBpcGVsaW5lU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVSZW5kZXJQaXBlbGluZVN0YXRlOjp+R1BVUmVuZGVyUGlwZWxpbmVTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZVN0YXRlOjpsYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJQaXBlbGluZVN0YXRlOjpzZXRMYWJlbCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lU3RhdGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUxpYnJhcnkuaC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVUZXh0dXJlOjpjcmVhdGVGcm9tRHJhd2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
VGV4dHVyZTo6Y3JlYXRlRnJvbUV4aXN0aW5nVGV4dHVyZSk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5oOgorCiAyMDE3LTAzLTExICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHUFUgcHJvdG90eXBlIC0gRnJv
bnQtRW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZDg0MTZiOTFiMjcxM2U5NGIyMDAwNzA5NWI2ZmIxN2FiYmNlM2ZmZi4uNDQ1
ZTI1Y2EzYmE4NmVlODdkZmFmYWVmOGVlYmIwNTI0YTY2NDE2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4MCw2ICsxMzgw
LDQ2IEBACiAJCTMxNkJEQkI0MUU3MzU3QjAwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRv
ck1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2QkRCQjMxRTczNTdCMDAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0g
Ki87IH07CiAJCTMxNkJEQkI3MUU3MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZC
REJCNTFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovOyB9Owog
CQkzMTZCREJCODFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkI2MUU3MzU3
Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQkJCMUU3Mzg4MDYwMERFMEQ1QSAv
KiBHUFVDb21tYW5kUXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2QkRCQjkxRTczODgwNjAwREUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5j
cHAgKi87IH07CisJCTMxNkJEQkJDMUU3Mzg4MDYwMERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkJB
MUU3Mzg4MDYwMERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTZCREJCRTFFNzM4ODEzMDBERTBENUEg
LyogR1BVQ29tbWFuZFF1ZXVlTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJCRDFFNzM4ODEzMDBERTBENUEgLyogR1BVQ29tbWFuZFF1
ZXVlTWV0YWwubW0gKi87IH07CisJCTMxNkJEQkM3MUU3NUYwODIwMERFMEQ1QSAvKiBHUFVDb21t
YW5kQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkJEQkM0MUU3NUVFMjQwMERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyLmNwcCAqLzsg
fTsKKwkJMzE2QkRCQzgxRTc1RjA4RDAwREUwRDVBIC8qIEdQVUNvbW1hbmRCdWZmZXJNZXRhbC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkM2
MUU3NUVFM0QwMERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gKi87IH07CisJCTMx
NkJEQkNDMUU3NUYxN0IwMERFMEQ1QSAvKiBHUFVEcmF3YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJDQTFFNzVGMTc2MDBERTBENUEg
LyogR1BVRHJhd2FibGUuY3BwICovOyB9OworCQkzMTZCREJDRDFFNzVGMTg0MDBERTBENUEgLyog
R1BVRHJhd2FibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkJEQkNCMUU3NUYxNzYwMERFMEQ1QSAvKiBHUFVEcmF3YWJsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQkNFMUU3NUYxOEEw
MERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJDNTFFNzVFRTI0MDBERTBENUEgLyogR1BVQ29tbWFu
ZEJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTMxNkJEQkNGMUU3NUYxOTkwMERFMEQ1QSAvKiBHUFVEcmF3YWJsZU1ldGFsLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCQzkxRTc1RjE2
MjAwREUwRDVBIC8qIEdQVURyYXdhYmxlTWV0YWwubW0gKi87IH07CisJCTMxNkJEQkQyMUU3NUY3
QjIwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJEMDFFNzVGN0FFMDBERTBENUEg
LyogR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwICovOyB9OworCQkzMTZCREJEMzFFNzVGN0I2
MDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkQxMUU3NUY3QUUwMERFMEQ1QSAvKiBH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTMxNkJEQkQ1MUU3NUY3Q0YwMERFMEQ1QSAvKiBHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvck1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2QkRCRDQxRTc1RjdDQTAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NEZXNj
cmlwdG9yTWV0YWwubW0gKi87IH07CisJCTMxNkJEQkQ3MUU3NjEyQzgwMERFMEQ1QSAvKiBHUFVS
ZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCRDYxRTc2MTJDNDAwREUwRDVB
IC8qIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yTWV0YWwubW0gKi87IH07
CisJCTMxNkJEQkRBMUU3NjEyRTAwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2ht
ZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTZCREJEODFFNzYxMkRCMDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudERlc2NyaXB0b3IuY3BwICovOyB9OworCQkzMTZCREJEQjFFNzYxMkUyMDBERTBENUEg
LyogR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkQ5MUU3NjEyREIwMERFMEQ1
QSAvKiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQkRFMUU3NjEzNzIw
MERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCREMxRTc2MTM2QzAw
REUwRDVBIC8qIEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgKi87IH07CisJ
CTMxNkJEQkRGMUU3NjEzNzUwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2Ny
aXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NkJEQkREMUU3NjEzNkMwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0
b3IuaCAqLzsgfTsKKwkJMzE2QkRCRTExRTc2MUNCOTAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NB
dHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCRTAxRTc2MUNCNTAwREUwRDVBIC8qIEdQVVJlbmRlclBh
c3NBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tICovOyB9OworCQkzMTZCREJFNDFFNzYxRjA1
MDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkUzMUU3NjFF
RkYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQkU1
MUU3NjFGMEEwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZC
REJFMjFFNzYxRUZGMDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2Ny
aXB0b3IuY3BwICovOyB9OworCQkzMTZCREJFNzFFNzYxRjJFMDBERTBENUEgLyogR1BVUmVuZGVy
UGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkU2MUU3NjFGMjcwMERFMEQ1QSAvKiBH
UFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tICovOyB9OworCQkz
MTZCREJFQTFFNzYyNDQ5MDBERTBENUEgLyogR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCRTgxRTc2
MjQ0MzAwREUwRDVBIC8qIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcCAqLzsgfTsKKwkJMzE2
QkRCRUIxRTc2MjQ0RDAwREUwRDVBIC8qIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJFOTFFNzYyNDQ0
MDBERTBENUEgLyogR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTZCREJFRDFFNzYyNDgyMDBERTBENUEg
LyogR1BVUmVuZGVyQ29tbWFuZEVuY29kZXJNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkVDMUU3NjI0NkIwMERFMEQ1QSAvKiBHUFVS
ZW5kZXJDb21tYW5kRW5jb2Rlck1ldGFsLm1tICovOyB9OworCQkzMTZCREJGMDFFNzYyOTIwMDBE
RTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkVGMUU3NjI5MUIwMERFMEQ1QSAvKiBHUFVEZXB0
aFN0ZW5jaWxTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTMxNkJEQkYxMUU3NjI5MjUwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZC
REJFRTFFNzYyOTFCMDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwICovOyB9Owor
CQkzMTZCREJGMzFFNzYyOTNDMDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkYy
MUU3NjI5MzcwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZU1ldGFsLm1tICovOyB9Owor
CQkzMTZCREJGNjFFNzYyQUQxMDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJG
NDFFNzYyQUNEMDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5jcHAgKi87IH07
CisJCTMxNkJEQkY3MUU3NjJBRDUwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJG
NTFFNzYyQUNEMDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQkY5MUU3NjJC
RjQwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJGODFFNzYyQkVGMDBE
RTBENUEgLyogR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvck1ldGFsLm1tICovOyB9OworCQkzMTZC
REJGQjFFNzYyRDA0MDBERTBENUEgLyogR1BVRW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkZBMUU3NjJEMDQwMERFMEQ1QSAvKiBHUFVF
bnVtcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTMxNkJEQzAwMUU3NjJGNUQwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRC
RkMxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi87
IH07CisJCTMxNkJEQzAxMUU3NjJGNjEwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJE
QkZFMUU3NjJGNTcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmNwcCAqLzsgfTsK
KwkJMzE2QkRDMDIxRTc2MkY2NDAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRC
RkQxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQzAzMUU3
NjJGNjkwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJGRjFFNzYyRjU3MDBERTBENUEg
LyogR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTMxNkJEQzA2MUU3NjJGODMwMERFMEQ1QSAvKiBHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3JNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQzA0MUU3NjJGN0UwMERFMEQ1QSAvKiBHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3JNZXRhbC5tbSAqLzsgfTsKKwkJMzE2QkRDMDcxRTc2MkY4NjAwREUw
RDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lU3RhdGVNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQzA1MUU3NjJGN0UwMERFMEQ1QSAvKiBH
UFVSZW5kZXJQaXBlbGluZVN0YXRlTWV0YWwubW0gKi87IH07CisJCTMxNkJEQzBCMUU3NjM0NEUw
MERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3JNZXRh
bC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJE
QzBBMUU3NjM0MzYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERl
c2NyaXB0b3JNZXRhbC5tbSAqLzsgfTsKKwkJMzE2QkRDMEMxRTc2MzRDRjAwREUwRDVBIC8qIEdQ
VVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREMwODFFNzYzNDI3MDBERTBE
NUEgLyogR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCAqLzsg
fTsKKwkJMzE2QkRDMEQxRTc2MzREMjAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2QkRDMDkxRTc2MzQyNzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5l
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTMxNkZFMDcxMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tl
eWZyYW1lUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTZGRTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuY3BwICov
OyB9OwogCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZFMEU2
Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5oICovOyB9OwogCQkzMTZGRTA3MzBF
NkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAv
KiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpAQCAtODgxNCw2ICs4ODU0LDQ2IEBACiAJ
CTMxNkJEQkIzMUU3MzU3QjAwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvck1ldGFsLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVVGV4dHVyZURlc2Ny
aXB0b3JNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2QkRCQjUxRTcz
NTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2QkRCQjYxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1
cmVEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVRleHR1
cmVEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkI5MUU3
Mzg4MDYwMERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR1BVQ29tbWFuZFF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE2QkRCQkExRTczODgwNjAwREUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVDb21tYW5kUXVldWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCQkQxRTczODgxMzAwREUwRDVBIC8qIEdQ
VUNvbW1hbmRRdWV1ZU1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR1BVQ29tbWFuZFF1ZXVlTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxNkJEQkM0MUU3NUVFMjQwMERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUNvbW1hbmRCdWZmZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJDNTFFNzVFRTI0MDBERTBENUEgLyog
R1BVQ29tbWFuZEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVD
b21tYW5kQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkM2MUU3
NUVFM0QwMERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVDb21tYW5kQnVmZmVyTWV0YWwubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkM5MUU3NUYxNjIwMERFMEQ1QSAvKiBHUFVE
cmF3YWJsZU1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
R1BVRHJhd2FibGVNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRC
Q0ExRTc1RjE3NjAwREUwRDVBIC8qIEdQVURyYXdhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdQVURyYXdhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzE2QkRCQ0IxRTc1RjE3NjAwREUwRDVBIC8qIEdQVURyYXdhYmxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVURyYXdhYmxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxNkJEQkQwMUU3NUY3QUUwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
NkJEQkQxMUU3NUY3QUUwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJENDFFNzVGN0NBMDBERTBENUEgLyog
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3JNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yTWV0YWwubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkQ2MUU3NjEyQzQwMERFMEQ1QSAvKiBHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2Ny
aXB0b3JNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCRDgxRTc2
MTJEQjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzE2QkRCRDkxRTc2MTJEQjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnRE
ZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxNkJEQkRDMUU3NjEzNkMwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUmVu
ZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzE2QkRCREQxRTc2MTM2QzAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NBdHRhY2htZW50
RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVSZW5kZXJQ
YXNzQXR0YWNobWVudERlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzE2QkRCRTAxRTc2MUNCNTAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3Jp
cHRvck1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BV
UmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxNkJEQkUyMUU3NjFFRkYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVw
dGhBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkUzMUU3NjFFRkYwMERFMEQ1QSAvKiBHUFVS
ZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJFNjFFNzYxRjI3MDBERTBENUEgLyog
R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1l
bnREZXNjcmlwdG9yTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJE
QkU4MUU3NjI0NDMwMERFMEQ1QSAvKiBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkU5MUU3NjI0NDQwMERFMEQ1
QSAvKiBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTZCREJFQzFFNzYyNDZCMDBERTBENUEgLyogR1BVUmVuZGVyQ29tbWFuZEVuY29k
ZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVJl
bmRlckNvbW1hbmRFbmNvZGVyTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxNkJEQkVFMUU3NjI5MUIwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkVGMUU3NjI5MUIwMERFMEQ1
QSAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTZCREJGMjFFNzYyOTM3MDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVURlcHRoU3RlbmNp
bFN0YXRlTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkY0MUU3
NjJBQ0QwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJGNTFFNzYyQUNEMDBERTBENUEg
LyogR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxNkJEQkY4MUU3NjJCRUYwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNj
cmlwdG9yTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBH
UFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxNkJEQkZBMUU3NjJEMDQwMERFMEQ1QSAvKiBHUFVFbnVtcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVFbnVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTZCREJGQzFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
NkJEQkZEMUU3NjJGNTcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkZFMUU3NjJGNTcwMERF
MEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTZCREJGRjFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlw
ZWxpbmVTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVSZW5kZXJQ
aXBlbGluZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQzA0MUU3
NjJGN0UwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3JNZXRhbC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvck1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREMwNTFF
NzYyRjdFMDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZU1ldGFsLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZU1l
dGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREMwODFFNzYzNDI3MDBE
RTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVJlbmRlclBpcGVsaW5lQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxNkJEQzA5MUU3NjM0MjcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNo
bWVudERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUmVu
ZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxNkJEQzBBMUU3NjM0MzYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGlu
ZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3Jp
cHRvck1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTA2RDBFNkND
QkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NLZXlmcmFtZVJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4
IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NTU0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODkwNCw0NCArODk4NCw0NCBAQAogCQkzMUEwODkwMTFFNzM3QjREMDAzQjY2MDkgLyog
V2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMUEwODkwMjFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVVGV4dHVyZURlc2Ny
aXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVGV4dHVyZURl
c2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MDMxRTczN0I0
RDAwM0I2NjA5IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTMxQTA4OTFCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVUJ1ZmZlci5jcHA7
IHBhdGggPSBKU1dlYkdQVUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTMxQTA4OTFEMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdQVUJ1ZmZlci5oOyBwYXRoID0gSlNXZWJHUFVC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MUUxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOyBwYXRoID0gSlNXZWJH
UFVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5
MjAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuaDsgcGF0aCA9IEpT
V2ViR1BVQ29tbWFuZEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEw
ODkyMTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kUXVldWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVDb21tYW5kUXVldWUuY3BwOyBw
YXRoID0gSlNXZWJHUFVDb21tYW5kUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkzMUEwODkyMzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kUXVldWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHUFVDb21tYW5kUXVldWUuaDsg
cGF0aCA9IEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMxQTA4OTI0MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2Ny
aXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVE
ZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcDsgcGF0aCA9IEpTV2ViR1BVRGVwdGhTdGVuY2lsRGVz
Y3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTI2MUU3MzhE
NTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmg7
IHBhdGggPSBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MjcxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRGVwdGhT
dGVuY2lsU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNX
ZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHA7IHBhdGggPSBKU1dlYkdQVURlcHRoU3RlbmNpbFN0
YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MjkxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSlNXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOyBwYXRoID0gSlNXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEw
ODkyQTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEcmF3YWJsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVURyYXdhYmxlLmNwcDsgcGF0aCA9IEpT
V2ViR1BVRHJhd2FibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODky
QzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEcmF3YWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBKU1dlYkdQVURyYXdhYmxlLmg7IHBhdGggPSBKU1dlYkdQVURyYXdh
YmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTJEMUU3MzhENTkwMDNC
NjYwOSAvKiBKU1dlYkdQVUZ1bmN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEpTV2ViR1BVRnVuY3Rpb24uY3BwOyBwYXRoID0gSlNXZWJHUFVGdW5jdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTJGMUU3MzhENTkwMDNCNjYw
OSAvKiBKU1dlYkdQVUZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTV2ViR1BVRnVuY3Rpb24uaDsgcGF0aCA9IEpTV2ViR1BVRnVuY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MzAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BV
TGlicmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQ
VUxpYnJhcnkuY3BwOyBwYXRoID0gSlNXZWJHUFVMaWJyYXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MzIxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVTGlicmFy
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdQVUxpYnJhcnkuaDsg
cGF0aCA9IEpTV2ViR1BVTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkz
MUEwODkzMzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVVJlbmRlckNv
bW1hbmRFbmNvZGVyLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODkzNTFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBKU1dlYkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmg7IHBhdGggPSBKU1dlYkdQ
VVJlbmRlckNvbW1hbmRFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
QTA4OTM2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVSZW5kZXJpbmdDb250
ZXh0LmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTM4MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJl
bmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJH
UFVSZW5kZXJpbmdDb250ZXh0Lmg7IHBhdGggPSBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5MzkxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNj
cmlwdG9yLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5M0IxRTczOEQ1OTAwM0I2
NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNj
cmlwdG9yLmg7IHBhdGggPSBKU1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODkzQzFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVVJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnREZXNjcmlwdG9yLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEw
ODkzRTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdQVVJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmg7IHBhdGggPSBKU1dlYkdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTMxQTA4OTNGMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBhc3NEZXB0
aEF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEpTV2ViR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IuY3BwOyBw
YXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTQxMUU3MzhENTkwMDNCNjYwOSAvKiBK
U1dlYkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERl
c2NyaXB0b3IuaDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2Ny
aXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5NDIxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHA7
IHBhdGggPSBKU1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzFBMDg5NDQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODk0NTFFNzM4RDU5MDAz
QjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVSZW5kZXJQ
aXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5k
ZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkzMUEwODk0NzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQ
aXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gSlNXZWJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0
b3IuaDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTQ4MUU3MzhENTkwMDNC
NjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTRBMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oOyBwYXRoID0gSlNXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMzFBMDg5NEIxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVVJlbmRl
clBpcGVsaW5lU3RhdGUuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg5NEQxRTczOEQ1OTAwM0I2NjA5
IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaDsgcGF0aCA9IEpTV2ViR1BV
UmVuZGVyUGlwZWxpbmVTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEw
ODk0RTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR1BVVGV4dHVyZS5jcHA7IHBhdGggPSBKU1dl
YkdQVVRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODk1MDFF
NzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEpTV2ViR1BVVGV4dHVyZS5oOyBwYXRoID0gSlNXZWJHUFVUZXh0dXJlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OTUxMUU3MzhENTkwMDNCNjYwOSAv
KiBKU1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwOyBwYXRoID0gSlNXZWJH
UFVUZXh0dXJlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
QTA4OTUzMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3Iu
aDsgcGF0aCA9IEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzFBMDg5MUIxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVQnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MUQxRTczOEQ1OTAwM0I2NjA5
IC8qIEpTV2ViR1BVQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViR1BVQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4OTFFMUU3
MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MjAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YkdQVUNvbW1hbmRCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5
MjExRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MjMxRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQ29tbWFuZFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViR1BVQ29tbWFuZFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4
OTI0MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVEZXB0aFN0ZW5j
aWxEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MjYx
RTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MjcxRTczOEQ1OTAwM0I2
NjA5IC8qIEpTV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4OTI5MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzFBMDg5MkExRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRHJhd2FibGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVEcmF3YWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4OTJDMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVURyYXdhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BV
RHJhd2FibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MkQxRTczOEQ1
OTAwM0I2NjA5IC8qIEpTV2ViR1BVRnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJHUFVGdW5jdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxQTA4OTJGMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUZ1bmN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BVRnVuY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5MzAxRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVTGlicmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYkdQVUxpYnJhcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEwODkz
MjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVMaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BVTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUEwODkzMzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJDb21tYW5k
RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQ
VVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzFBMDg5MzUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJDb21tYW5k
RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEwODkzNjFFNzM4RDU5
MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4OTM4MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVVJlbmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQTA4OTM5MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxQTA4OTNCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBh
c3NBdHRhY2htZW50RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUEwODkzQzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5M0UxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEw
ODkzRjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5NDExRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEwODk0MjFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5NDQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2Vi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUEwODk0NTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGlu
ZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEwODk0NzFFNzM4RDU5MDAz
QjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQaXBlbGlu
ZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzFBMDg5NDgxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzFBMDg5NEExRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTA4
OTRCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQaXBlbGlu
ZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5NEQxRTczOEQ1
OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5NEUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2Vi
R1BVVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdQVVRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEwODk1MDFF
NzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR1BVVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMUEwODk1MTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVRleHR1
cmVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMDg5NTMx
RTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUE3OTVDMTE4ODhCNzI0MDAzODJGOTAgLyogQU5H
TEVJbnN0YW5jZWRBcnJheXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMUE3OTVDMjE4ODhCNzI0MDAzODJGOTAgLyogQU5HTEVJbnN0YW5jZWRBcnJheXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVJbnN0YW5jZWRBcnJheXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBNzk1QzMxODg4QjcyNDAwMzgyRjkwIC8qIEFO
R0xFSW5zdGFuY2VkQXJyYXlzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBTkdMRUluc3Rh
bmNlZEFycmF5cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzc5OCwxNiAr
MTc4NzgsNDMgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTMxNkJEQkE3MUU3MUZBOTMwMERFMEQ1
QSAvKiBHUFVCdWZmZXIuY3BwICovLAogCQkJCTMxNkJEQkE4MUU3MUZBOTMwMERFMEQ1QSAvKiBH
UFVCdWZmZXIuaCAqLywKKwkJCQkzMTZCREJDNDFFNzVFRTI0MDBERTBENUEgLyogR1BVQ29tbWFu
ZEJ1ZmZlci5jcHAgKi8sCisJCQkJMzE2QkRCQzUxRTc1RUUyNDAwREUwRDVBIC8qIEdQVUNvbW1h
bmRCdWZmZXIuaCAqLywKKwkJCQkzMTZCREJCOTFFNzM4ODA2MDBERTBENUEgLyogR1BVQ29tbWFu
ZFF1ZXVlLmNwcCAqLywKKwkJCQkzMTZCREJCQTFFNzM4ODA2MDBERTBENUEgLyogR1BVQ29tbWFu
ZFF1ZXVlLmggKi8sCisJCQkJMzE2QkRCRjQxRTc2MkFDRDAwREUwRDVBIC8qIEdQVURlcHRoU3Rl
bmNpbERlc2NyaXB0b3IuY3BwICovLAorCQkJCTMxNkJEQkY1MUU3NjJBQ0QwMERFMEQ1QSAvKiBH
UFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmggKi8sCisJCQkJMzE2QkRCRUUxRTc2MjkxQjAwREUw
RDVBIC8qIEdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcCAqLywKKwkJCQkzMTZCREJFRjFFNzYyOTFC
MDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCAqLywKIAkJCQkzMTZCREI4NDFFNkUw
QTIxMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTZCREI4NTFFNkUwQTIxMDBE
RTBENUEgLyogR1BVRGV2aWNlLmggKi8sCisJCQkJMzE2QkRCQ0ExRTc1RjE3NjAwREUwRDVBIC8q
IEdQVURyYXdhYmxlLmNwcCAqLywKKwkJCQkzMTZCREJDQjFFNzVGMTc2MDBERTBENUEgLyogR1BV
RHJhd2FibGUuaCAqLywKKwkJCQkzMTZCREJGQTFFNzYyRDA0MDBERTBENUEgLyogR1BVRW51bXMu
aCAqLywKIAkJCQkzMTZCREI5MjFFNzBDODk3MDBERTBENUEgLyogR1BVRnVuY3Rpb24uY3BwICov
LAogCQkJCTMxNkJEQjkzMUU3MEM4OTcwMERFMEQ1QSAvKiBHUFVGdW5jdGlvbi5oICovLAogCQkJ
CTMxNkJEQjk4MUU3MENCQkYwMERFMEQ1QSAvKiBHUFVMaWJyYXJ5LmNwcCAqLywKIAkJCQkzMTZC
REI5OTFFNzBDQkJGMDBERTBENUEgLyogR1BVTGlicmFyeS5oICovLAotCQkJCTMxNkJEQkI1MUU3
MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAgKi8sCi0JCQkJMzE2QkRC
QjYxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8sCisJCQkJMzE2
QkRCRTgxRTc2MjQ0MzAwREUwRDVBIC8qIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcCAqLywK
KwkJCQkzMTZCREJFOTFFNzYyNDQ0MDBERTBENUEgLyogR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIu
aCAqLywKKwkJCQkzMTZCREJEQzFFNzYxMzZDMDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0F0dGFj
aG1lbnREZXNjcmlwdG9yLmNwcCAqLywKKwkJCQkzMTZCREJERDFFNzYxMzZDMDBERTBENUEgLyog
R1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmggKi8sCisJCQkJMzE2QkRCRDgxRTc2
MTJEQjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNw
cCAqLywKKwkJCQkzMTZCREJEOTFFNzYxMkRCMDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudERlc2NyaXB0b3IuaCAqLywKKwkJCQkzMTZCREJFMjFFNzYxRUZGMDBERTBENUEg
LyogR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IuY3BwICovLAorCQkJCTMx
NkJEQkUzMUU3NjFFRkYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVz
Y3JpcHRvci5oICovLAorCQkJCTMxNkJEQkQwMUU3NUY3QUUwMERFMEQ1QSAvKiBHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvci5jcHAgKi8sCisJCQkJMzE2QkRCRDExRTc1RjdBRTAwREUwRDVBIC8qIEdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yLmggKi8sCisJCQkJMzE2QkRDMDgxRTc2MzQyNzAwREUwRDVB
IC8qIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgKi8sCisJ
CQkJMzE2QkRDMDkxRTc2MzQyNzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvci5oICovLAorCQkJCTMxNkJEQkZDMUU3NjJGNTcwMERFMEQ1QSAvKiBH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwICovLAorCQkJCTMxNkJEQkZEMUU3NjJGNTcw
MERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCAqLywKKwkJCQkzMTZCREJG
RTFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5jcHAgKi8sCisJCQkJ
MzE2QkRCRkYxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaCAqLywK
IAkJCQkzMTZCREJBRjFFNzM1NEJCMDBERTBENUEgLyogR1BVVGV4dHVyZS5jcHAgKi8sCiAJCQkJ
MzE2QkRCQjAxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuaCAqLywKKwkJCQkzMTZCREJC
NTFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovLAorCQkJCTMx
NkJEQkI2MUU3MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovLAogCQkJ
CTQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBE
ODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUw
MDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTIyOTQwLDkgKzIzMDQ3LDIyIEBACiAJ
CQkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAqLywKIAkJCQlCNTMy
MEQ2QTEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tICovLAogCQkJ
CTMxNkJEQkE1MUU3MUZBNkYwMERFMEQ1QSAvKiBHUFVCdWZmZXJNZXRhbC5tbSAqLywKKwkJCQkz
MTZCREJDNjFFNzVFRTNEMDBERTBENUEgLyogR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tICovLAor
CQkJCTMxNkJEQkJEMUU3Mzg4MTMwMERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWVNZXRhbC5tbSAq
LywKIAkJCQkzMTZCREI4ODFFNkUxNDFDMDBERTBENUEgLyogR1BVRGV2aWNlTWV0YWwubW0gKi8s
CisJCQkJMzE2QkRCRjgxRTc2MkJFRjAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0
b3JNZXRhbC5tbSAqLywKKwkJCQkzMTZCREJGMjFFNzYyOTM3MDBERTBENUEgLyogR1BVRGVwdGhT
dGVuY2lsU3RhdGVNZXRhbC5tbSAqLywKKwkJCQkzMTZCREJDOTFFNzVGMTYyMDBERTBENUEgLyog
R1BVRHJhd2FibGVNZXRhbC5tbSAqLywKIAkJCQkzMTZCREI5NjFFNzBDQTI0MDBERTBENUEgLyog
R1BVRnVuY3Rpb25NZXRhbC5tbSAqLywKIAkJCQkzMTZCREI5QzFFNzBDRDkwMDBERTBENUEgLyog
R1BVTGlicmFyeU1ldGFsLm1tICovLAorCQkJCTMxNkJEQkVDMUU3NjI0NkIwMERFMEQ1QSAvKiBH
UFVSZW5kZXJDb21tYW5kRW5jb2Rlck1ldGFsLm1tICovLAorCQkJCTMxNkJEQkUwMUU3NjFDQjUw
MERFMEQ1QSAvKiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbSAqLywK
KwkJCQkzMTZCREJENjFFNzYxMkM0MDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudERlc2NyaXB0b3JNZXRhbC5tbSAqLywKKwkJCQkzMTZCREJFNjFFNzYxRjI3MDBERTBENUEg
LyogR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbSAqLywKKwkJ
CQkzMTZCREJENDFFNzVGN0NBMDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3JNZXRh
bC5tbSAqLywKKwkJCQkzMTZCREMwQTFFNzYzNDM2MDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxp
bmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yTWV0YWwubW0gKi8sCisJCQkJMzE2QkRDMDQxRTc2
MkY3RTAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvck1ldGFsLm1tICovLAor
CQkJCTMxNkJEQzA1MUU3NjJGN0UwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRlTWV0
YWwubW0gKi8sCiAJCQkJMzE2QkRCQjMxRTczNTdCMDAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNj
cmlwdG9yTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCQUQxRTczNTQ5QzAwREUwRDVBIC8qIEdQVVRl
eHR1cmVNZXRhbC5tbSAqLywKIAkJCQkyRDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJm
YWNlLmggKi8sCkBAIC0yMjk1NCw4ICsyMzA3NCw4IEBACiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAw
MDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQky
RDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAqLywKIAkJ
CQkyRDNFRjQ0NzE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gKi8s
Ci0JCQkJMzE2QkRCODkxRTZFMTUzMDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLm1tICovLAogCQkJ
CTMxNkJEQjhBMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5oICovLAorCQkJCTMxNkJE
Qjg5MUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5tbSAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjYxNDMsNiArMjYyNjMs
NyBAQAogCQkJCTA3OUQwODZCMTYyRjIxRjkwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCNzExNkQxRDg5OUU2MzAwOUYwRkZC
IC8qIENhcHR1cmVEZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjcxMTZGMUQ4OTlFNjMw
MDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2
QkRCRTQxRTc2MUYwNTAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI0RjE4QkU5ODQ5MDA2Q0VCQ0MgLyog
Q2FwdHVyaW5nSW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzczNDE1MTk3Nzg5
NkQwMDQ2QkZDNSAvKiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNjlF
MDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjYy
NDAsNiArMjYzNjEsNyBAQAogCQkJCTUxMDZEN0JFMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0
TWVudUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIx
RCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2MDI3Q0FE
MEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTMxNkJEQkNEMUU3NUYxODQwMERFMEQ1QSAvKiBHUFVEcmF3YWJsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0FERTcyMjYxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1OUNCODM3MTkyREE5MTkwMDEyQkM2NCAvKiBDb250cm9sU3Rh
dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyOTEyQjAyNjc2MDBDMUEzNTkgLyogQ29u
dm9sdmVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjMzNSw2ICsyNjQ1Nyw3IEBACiAJCQkJ
OTQ0NzZCREIxREZDQUMwMzAwNjkwRTIzIC8qIENTU0RlZmVycmVkUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQkIwQzVCODE3QkJENjI5MDAzRDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0Zv
bnRGYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREJEMzFFNzVGN0I2MDBERTBENUEgLyog
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQwOUVCREIxMTZC
N0VFNzEwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzI2MDE3QTQxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2MzYyLDYgKzI2NDg1LDcgQEAKIAkJCQkzMTI4OEU3NTBFMzAw
NUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3
NzJFMTMxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk0NkQzNzRBMUQ2RDA2MjgwMDc3MDg0RiAvKiBDU1NNYXJrdXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMxNkJEQkYwMUU3NjI5MjAwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5j
aWxTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMDMwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU01lZGlhUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0QkUzQTExQjMwRjZCNzAwMTQx
OTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTRFODM5NTEx
REZCMkEwRTAwN0JDNkE3IC8qIENTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MjYzODEsNiArMjY1MDUsNyBAQAogCQkJCUE4MEU2Q0U2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQ
cmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZD
NTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
MEU2Q0ZGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMzE2QkRCREYxRTc2MTM3NTAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVz
Y3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzhEMDJCQzYxNTRBMThERjAwQjYyRDA1IC8q
IENTU1Byb3BlcnR5QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODBGNDA5RDEy
QjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ2
RDM3NDYxRDZEMDFENDAwNzcwODRGIC8qIENTU1Byb3BlcnR5UGFyc2VyLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2NTgyLDkgKzI2NzA3LDExIEBACiAJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNERjMy
IC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUY2MEIxMTE1N0Y2
ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTExRTA2
N0VFMUU2MjQ2RTUwMDE2MkQxNiAvKiBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxNkJEQkNFMUU3NUYxOEEwMERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENjE2QTQ4NjE2MDA5NzVBMjUgLyogRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENDQkI0OTE1MUY4MzE2
MDBBQjdDRTkgLyogRE9NV2luZG93V2ViRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEQTJFMTE0MzEyMUUwMDBEODE3RSAvKiBET01XcmFwcGVyV29ybGQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTMxNkJEQzAzMUU3NjJGNjkwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0E4MDYxNTFFMDNCNTFDMDA4QTFGMjYgLyogRG91Ymxl
UmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMTc2MkU0MTc2Njg2RUEwMEQ4MzZBOCAvKiBE
b3duU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNF
IC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDUyLDYgKzI3MTc5LDcgQEAK
IAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNv
dXJjZUNHLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREJGQjFFNzYyRDA0MDBERTBENUEgLyog
R1BVRW51bXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2Rjc1NkIzMUIzQjY2RjcwMDA1REQ3OSAv
KiBJbW11dGFibGVORkEuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2Rjc1NkI1MUIzQjY4RjIwMDA1
REQ3OSAvKiBJbW11dGFibGVORkFOb2RlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2
RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LywKQEAgLTI3MjI0LDYgKzI3MzUyLDcgQEAKIAkJCQlGQzU0RDA1ODE2QTc2NzZFMDA1NzVFNEQg
LyogSlNDU1NTdXBwb3J0c1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDRFOTE3MUM0NjI4
NzIwMDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCRTY3MTBDMUQ1QUVCMjUwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzE2QkRCRjcxRTc2MkFENTAwREUwRDVBIC8qIEdQVURlcHRo
U3RlbmNpbERlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4MUEw
MEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOTM3QzBC
NzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRTgyRjkwMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3MzI3LDYgKzI3NDU2LDcgQEAKIAkJCQk5M0I3MEQ2QTA5RUIwQzdDMDA5RDg0
NjggLyogSlNFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMEZFRjM3MkIzN0M1
M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUZDN0RD
MjZDRkUyNTYzMjAwQjg1QUU0IC8qIEpTRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTMxNkJEQzAyMUU3NjJGNjQwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50
VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzE0QUNFQzEwODkyMDg2MDAwRjBF
NTYgLyogSlNFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRDMzMjFBM0E4
QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY5
Niw2ICsyNzgyNiw3IEBACiAJCQkJQjJGQTNEQjEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTnVt
YmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQjUwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREI3MEFCNzVBNkYw
MDBFNUFDNCAvKiBKU1NWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxNkJEQzBEMUU3
NjM0RDIwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREI5MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdGhTZWdBcmNBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREJCMEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1BhdGhTZWdBcmNSZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREJE
MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDbG9zZVBhdGguaCBpbiBIZWFkZXJzICov
LApAQCAtMjg1MDEsNiArMjg2MzIsNyBAQAogCQkJCTJCMzY1Qzg0MTUyNTExOUUwMDkxRDI3QiAv
KiBSZW5kZXJTVkdFbGxpcHNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0MwOTJCQzEyRDlFNEVF
MDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDM2NzA4QzUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMzE2QkRCREIxRTc2MTJFMjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3ND
b2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhDNzEy
RDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzY3MDhDOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHSW1hZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4NTRCMDE1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuaCBpbiBIZWFkZXJzICovLApAQCAtMjg1NTIsNiArMjg2ODQsNyBAQAogCQkJCUJFMjA1MDdF
MThBNDU4QzIwMDgwNjQ3RSAvKiBSZW5kZXJWVFRDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
NzFERkU0MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4OUNDQzUzMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2QkRCQkMxRTczODgwNjAwREUwRDVBIC8qIEdQVUNv
bW1hbmRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGNTEyQ0UxRDg3M0U0NzAwMUQ2Nzgw
IC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlFMEEwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OUNDMEI1NDE4QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODY1NCw2ICsyODc4Nyw3IEBACiAJCQkJNDk5OEFFRDIx
M0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDhBNDg0NzgwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUUzRTRFMkE4MUUzQjE3MTAwMDIzQkI4QSAvKiBTY3JpcHRFbGVt
ZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2QkRCRUIxRTc2
MjQ0RDAwREUwRDVBIC8qIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTFDOUQ5QjBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMDY2RTQwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEds
b2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUz
IC8qIFNjcmlwdE1vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDEwOCw2ICszMDI0
Miw3IEBACiAJCQkJRkQzMTYwOEMxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjAyNDEyQjAyNjc2MDBDMUEzNTkgLyogQmlxdWFkRFNQS2VybmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQzU0RjA0MTM5OUIwREEwMDhEOTExNyAvKiBCaXF1
YWRGaWx0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQkRBMUU3NjEyRTAwMERF
MEQ1QSAvKiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjAyNjEyQjAyNjc2MDBDMUEzNTkgLyogQmlxdWFkUHJvY2Vzc29y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBCaXRt
YXBJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUZGQzQ1NDFENUU4MUNCMDAyNjdBNjYg
LyogQmxhY2tsaXN0VXBkYXRlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMzAxNzgsNiArMzAzMTMs
NyBAQAogCQkJCUUxQThFNTY2MTc1NTJCMkEwMDc0ODhFNyAvKiBDRlVSTEV4dHJhcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5N0JDNjlEQzE1MDVGMDc2MDAxQjc0QUMgLyogQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTVGRkUxMkIwMjY3NjAwQzFBMzU5
IC8qIENoYW5uZWxNZXJnZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQzA3MUU3
NjJGODYwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0YXRlTWV0YWwubW0gaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjAwMTEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbFNwbGl0dGVyTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTUwQjY5RjA5OURGMDI3MDA5MEQ3ODEgLyogQ2hh
cmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzI2REMwQzA5REFENUQ2MDBBRkM4
NDcgLyogQ2hhcnNldERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDMzMSw2ICszMDQ2Nyw3
IEBACiAJCQkJQkMwMkE2NDYwRTA5QUFFOTAwNEI2RDJCIC8qIENTU0Z1bmN0aW9uVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U0RTEwREFBQ0UwRjAwOUZEQzkxIC8qIENTU0dyYWRp
ZW50VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTExMDAzMzAxQzlBQzNERTAwNDEyREQw
IC8qIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRC
RUQxRTc2MjQ4MjAwREUwRDVBIC8qIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyTWV0YWwubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDRDdEQkIyODE4Q0ExOUE0MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVO
YW1lc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1
NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZC
Rjg5MDQ1MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0zMDU0MCw2ICszMDY3Nyw3IEBACiAJCQkJOTMzMDlERTMwOTlFNjQ5MjAwNTZFNTgx
IC8qIEVkaXRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCQUI2QzZEMTI1NTA2MzEw
MDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEIzMDQzQ0Mw
QUUwMzczQjAwQTgyNjQ3IC8qIEVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJG
MTFFNzYyOTI1MDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOUI1NUVFRTkxQjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNBMzhCNEIwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRvckNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEMTNEM0EwQ0VBOTM0NjAwRDg5NDY2IC8qIEVkaXRv
cklPUy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzA1NzcsNiArMzA3MTUsNyBAQAogCQkJCTZFNjdE
MkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDdFMjc2ODE2MDM2RURDMDBFRTJBRkIgLyog
RXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCRDIxRTc1
RjdCMjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTcyRjFBREEyMUEzOTA0REMwMDAxNEUxOCAvKiBFWFRGcmFnRGVwdGguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1
cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI3QUZFRDQxQTJFQTZBRTAwMDQ0MkU4IC8q
IEVYVHNSR0IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDgwNSw2ICszMDk0NCw3IEBACiAJCQkJ
QTgxMzY5RTEwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxMZWdlbmRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4RUE3OUZDMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MTElFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzIxMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MTGlu
a0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCRTExRTc2MUNCOTAwREUwRDVB
IC8qIEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThFQTdEMzIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxNYXBFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4RUE3Q0FDMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MTWFycXVl
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEzQTQwQ0Q2MzMxMDAwRkFEQTc1
IC8qIEhUTUxNZWRpYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDkyNSw2ICszMTA2
NSw3IEBACiAJCQkJMUE3MUQ1N0IwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0
T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5
IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZC
REMwMDFFNzYyRjVEMDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyNzUzNTZGMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTAzOSw2ICszMTE4MCw3IEBACiAJ
CQkJN0M2NTIzMTcxRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTk2QThDMUQxQTBEREQwMEI4Njc2OCAvKiBKU0FwcGxl
UGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M2
NTIzMTkxRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkzMTZCREJDQzFFNzVGMTdCMDBERTBENUEgLyogR1BVRHJhd2FibGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M2NTc5RjExRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQ
YXlQYXltZW50UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUU5NkE4RTFEMUEwRERE
MDBCODY3NjggLyogSlNBcHBsZVBheVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFF
OTZBOTAxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3Rl
ZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzExNjUsNiArMzEzMDcsNyBAQAogCQkJCTJF
MDg4OEQ0MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQzM2Q0JEMEVCMDgwNjIwMDc0MTBCQyAvKiBKU0RPTUdsb2JhbE9iamVjdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzJCREQzRDE3QzdGOThDMDAzOEZGMTUgLyogSlNET01HbG9i
YWxPYmplY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQkNGMUU3NUYxOTkwMERF
MEQ1QSAvKiBHUFVEcmF3YWJsZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRjcw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTRE9NSW1wbGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDEzOEY4NTcxRDI1M0YwODAwMUNCNjFFIC8qIEpTRE9NSXRlcmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTlEMjQ4MDYwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTE5OSw2ICszMTM0Miw3IEBACiAJCQkJNjVERjMxRjkw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzJF
RDU1NTBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzE2QkRCRjkxRTc2MkJGNDAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3JNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4Mzc4
NDA5Rjg1RDFDMDBCODVBRTQgLyogSlNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VG
QUY0RTBDMzE3RTY5MDBGQTgxRjYgLyogSlNFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTMxMzgzLDYgKzMxNTI3LDcgQEAKIAkJCQkyRDlCRjcyMzFEQkZEQUNEMDA3QTdEOTkgLyog
SlNNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NEExREJGRERG
RjAwN0E3RDk5IC8qIEpTTWVkaWFLZXlTZXNzaW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNERjRCNzFEMUUwMUUxMUEwMEUyMzVBMiAvKiBKU01lZGlhS2V5U2Vzc2lvblR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCRTUxRTc2MUYwQTAwREUwRDVBIC8qIEdQVVJlbmRl
clBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
RjRCNzJCMUUwM0M2M0UwMEUyMzVBMiAvKiBKU01lZGlhS2V5c1JlcXVpcmVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEOUJGNzI0MURCRkRBRDAwMDdBN0Q5OSAvKiBKU01lZGlhS2V5U3Rh
dHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzI1MURCRkRBRDMwMDdBN0Q5OSAv
KiBKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzE0NDYsNiAr
MzE1OTEsNyBAQAogCQkJCTA3MDRBNDE1MUQ2RjM5RkIwMDg2RENEQiAvKiBKU092ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAw
N0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJC
MjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxNkJEQzA2MUU3NjJGODMwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3JNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUIxMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU1Bhbm5lck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTUxQTgxREYxNzI5
OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Iz
OEZENTExQ0NGOTM4OTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTMxODM1LDYgKzMxOTgxLDcgQEAKIAkJCQlFNTVGNDk3QTE1MUI4ODgwMDBCQjY3
REIgLyogTGVuZ3RoRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODcxNjZGMUM4
NjlEODMwMDRGRjBERSAvKiBMZW5ndGhQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVG
MjBDRTFCRDRBMjQxMDAxMjhFNUQgLyogTGVuZ3RoU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzMTZCREMwQjFFNzYzNDRFMDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFj
aG1lbnREZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTUwODAzNjFFM0Yw
MEFEMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDgzNjQxRTQzMjVBMDAwNjIxRTkyIC8qIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTc2MTJBRjFFM0E5OTQwMDBDM0Q4MUQgLyogTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxODk2LDYgKzMyMDQz
LDcgQEAKIAkJCQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRo
TUxVbmRlck92ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkU5MTJEQTI1
RTgxMkFGODBBQyAvKiBNYXRoT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRC
RDUxRTc1RjdDRjAwREUwRDVBIC8qIEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yTWV0YWwubW0gaW4g
U291cmNlcyAqLywKIAkJCQk0OUQ1REMyQjBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTExQzYwRUY4NkQ0NzAw
OUQwQ0FGIC8qIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0JDOERBQzFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjA2Nyw2ICszMjIxNSw3IEBACiAJCQkJMUE1NjlEMEQw
RDdFMkI4MjAwN0MzOTgzIC8qIG5wcnVudGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkY1
MkUxMTE0QTAxMzRGMDBBQ0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQlGNTVCM0RDNzEyNTFGMTJEMDAzRUYyNjkgLyogTnVtYmVySW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQkU3MUU3NjFGMkUwMERFMEQ1QSAvKiBHUFVSZW5k
ZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE1NjlEMTMwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfY2xhc3MubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQTU2OUQxNjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19pbnN0YW5jZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNTY5RDE4MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX3J1bnRpbWUu
bW0gaW4gU291cmNlcyAqLywKQEAgLTMyMjg0LDYgKzMyNDMzLDcgQEAKIAkJCQkwRjU2MDI5MDBF
NEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
MzkwNDZENzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MQmxvY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDM5MDQ2RDkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNl
ZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJDODFFNzVGMDhEMDBERTBENUEgLyogR1BV
Q29tbWFuZEJ1ZmZlck1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2RDkxMkRBMjVF
ODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQzOTA0NkRCMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk3QjFFNzM4RDVBMDAzQjY2MDkgLyogSlNXZWJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyNDUzLDYgKzMy
NjAzLDcgQEAKIAkJCQlGRDMxNjAzNTEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjdENTM3MEY4QUFCMUQwMEU0
MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJFQTFFNzYy
NDQ5MDBERTBENUEgLyogR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM4QUUzNEUxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTVEOTI1QjY3MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxBbGlnbm1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNj
cm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzI1NTcsNiArMzI3MDgsNyBAQAog
CQkJCTUxMzI3RDYxMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTQ0NENCRDUxRDg2MEM4QjAwNzNBMDc0IC8qIFNpemVzQXR0cmlidXRlUGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk0NDRDQkQzMUQ4NjBDOEIwMDczQTA3NCAvKiBT
aXplc0NhbGNQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRDMDExRTc2MkY2MTAw
REUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDlFOTExQ0MwRUY4NkQ0NzAwOUQwQ0FGIC8qIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE1MEY5RjIxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1i
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUExQjAxRDFFNTQyMzlFMDA3RjM3Njkg
LyogSlNET01HdWFyZGVkT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzI1NzAsNiArMzI3
MjIsNyBAQAogCQkJCTU3QzdBNjk0MUU1NzhBQ0EwMEM2N0Q3MSAvKiBCYXNpY0NyZWRlbnRpYWwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ1MzkwNDcwRUFGRDYzNzAwMzY5NUM4IC8qIFNvdW5k
SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNEIzMDQzQzkwQUUwMzcxRDAwQTgyNjQ3IC8qIFNv
dW5kTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCRjMxRTc2MjkzQzAwREUwRDVBIC8q
IEdQVURlcHRoU3RlbmNpbFN0YXRlTWV0YWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NEE4MUYz
RDBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0QzQTQ5NjExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDNBNDk2NDE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTMyNTk0LDYgKzMyNzQ3LDcgQEAKIAkJCQkxQTIyNDY0OTBDQzk4
RERCMDBDMDUyNDAgLyogU1FMaXRlRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U0
NzRFMjAxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCNUE2ODQyNDBGRkFCRUFBMDBEMjQ2ODkgLyogU1FMaXRlRmlsZVN5c3Rl
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJERTFFNzYxMzcyMDBERTBENUEgLyogR1BV
UmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
MkJEQjRBMUM0NTZGRjUwMDY0OTRERiAvKiBTUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTExRUMxMkYxQzUwQUJGNTAwMzJGOTgzIC8qIFNRTGl0ZUlEQkN1cnNv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFQzEyQjFDNTBBQkJGMDAzMkY5ODMgLyogU1FM
aXRlSURCVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjY1Myw2ICszMjgwNyw3
IEBACiAJCQkJRTRCQkVENEMxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFNDk0NkVBRTE1NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NjFENjVEMUJCMEM3RjAwMENCNTY0NSAvKiBTdHls
ZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQkM3MUU3NUYwODIwMERFMEQ1QSAv
KiBHUFVDb21tYW5kQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ3QTNBQzMxQzVFQUJCRTAwQ0NCRkE3IC8qIFN0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4RUE4MDBEMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzI3MDIsNiArMzI4NTcsNyBAQAogCQkJCUIyMjI3OThG
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJENzFFNzYxMkM4
MDBERTBENUEgLyogR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5NzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwOEZCMTdDMTEzQkM3RTkxMDAwNDAwODYgLyogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTMyNzgxLDYgKzMyOTM3LDcgQEAKIAkJCQlCMjIyN0E0QTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyQTFGMkIwMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTREMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCRjYxRTc2MkFEMTAwREUwRDVB
IC8qIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgz
M0M3Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDMzlDMzczMUREQkI4QzEwMEZFRkIyOSAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyMjI3QTU2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjgxNyw2ICszMjk3NCw3IEBACiAJCQkJN0Mz
OUMzNzYxRERCQjkwRDAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjIyMjdBQjcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1N0eWxlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FCQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHU1ZH
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREJCQjFFNzM4ODA2MDBERTBENUEg
LyogR1BVQ29tbWFuZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUJEMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdTd2l0Y2hFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
MjI3QUMwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdTeW1ib2xFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyMjI3QUM0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTMyODQ3LDYgKzMzMDA1LDcgQEAKIAkJCQlFNDUzOTBBRTBFQUZGNEI1MDAz
Njk1QzggLyogU3lzdGVtTWVtb3J5SU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTA3RkJE
MThFMEExNkEwMDQ2OTlGQSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNEQTA3RkMxMThFMEEyMkIwMDQ2OTlGQSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCQkUxRTczODgxMzAwREUwRDVBIC8qIEdQVUNv
bW1hbmRRdWV1ZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ1OTc1QjQxOTYzNUYxMTAw
RDAwODc4IC8qIFN5c3RlbVZlcnNpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NjNFQjYyMjFC
ODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RENTEyNTFGMTJEMDAzRUYyNjkgLyogVGVsZXBob25lSW5wdXRUeXBlLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMzMwMTAsNiArMzMxNjksNyBAQAogCQkJCTdBRjlCMjA1MThDRkIyREYwMEM2
NEJFRiAvKiBWVFRSZWdpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTM4Njg1MThE
Q0MxNDUwMEI4MjYzRCAvKiBWVFRTY2FubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExNDgz
MkIxMTg3RjYxRTEwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzE2QkRDMEMxRTc2MzRDRjAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJCMzE4N0Y2Mjkx
MDBEQTYzQTYgLyogV0FLQ2xpcFZpZXcubSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkI1MTg3
RjYyRkMwMERBNjNBNiAvKiBXQUtSZXNwb25kZXIubSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgz
MkI3MTg3RjYzNkMwMERBNjNBNiAvKiBXQUtTY3JvbGxWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5jcHAKaW5kZXggOGYz
Y2Y4ZWJlY2E1YTRkYTg5Yjk5OGVjNTA4MzMwNDM3ZDlmZThlOS4uNTRiNjQ5YjM3NjZiNTA0Zjcz
YTE3N2IzOWQ3OTM4YzBhNjFjNTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR1BVRHJhd2FibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdQVURyYXdhYmxlLmNwcApAQCAtMjgsOSArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIAotLyogRklYTUU6IFdlYkdQVSAtIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAjaW5jbHVkZSAi
R1BVRHJhd2FibGUuaCIKLSAqLwogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKICNpbmNsdWRlICJX
ZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZS5oIgpAQCAt
NDksNyArNDcsNyBAQCBXZWJHUFVEcmF3YWJsZTo6V2ViR1BVRHJhd2FibGUoV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCkKICAgICBpZiAoIW1fZHJhd2FibGUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJlZlB0cjxHUFVUZXh0dXJlPiBkcmF3YWJsZVRleHR1cmUgPSBHUFVUZXh0dXJl
OjpjcmVhdGVGcm9tRXhpc3RpbmdUZXh0dXJlKG1fZHJhd2FibGUtPnRleHR1cmUoKSk7CisgICAg
UmVmUHRyPEdQVVRleHR1cmU+IGRyYXdhYmxlVGV4dHVyZSA9IEdQVVRleHR1cmU6OmNyZWF0ZUZy
b21EcmF3YWJsZShtX2RyYXdhYmxlLmdldCgpKTsKICAgICBtX3RleHR1cmUgPSBXZWJHUFVUZXh0
dXJlOjpjcmVhdGVGcm9tRHJhd2FibGVUZXh0dXJlKGNvbnRleHQsIGRyYXdhYmxlVGV4dHVyZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVURyYXdh
YmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5oCmluZGV4
IDYxMzBiOTk3ZmZhN2U2NmNhYWUxNmYwZDc0ZjM2YjU2MmRhN2E3ZWEuLmJjYzFmOGJjNjM3MWNk
ZDFkZGRhMTJkNWJlMzhkYWQ4OTI4ZjM5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVURyYXdhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR1BVRHJhd2FibGUuaApAQCAtMzEsMTMgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0vLyBGSVhNRTogV2ViR1BVIC0gU3R1YiBpbXBsZW1lbnRhdGlvbiAtIG5vdCBpbXBs
ZW1lbnRlZCB5ZXQuCi0vLyBjbGFzcyBHUFVEcmF3YWJsZTsKLWNsYXNzIEdQVURyYXdhYmxlIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVRHJhd2FibGU+IHsKLXB1YmxpYzoKLSAgICBHUFVUZXh0dXJl
KiB0ZXh0dXJlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotfTsKLS8vIEZJWE1FOiBXZWJHUFUgLSBF
bmQgc3R1Yi4KK2NsYXNzIEdQVURyYXdhYmxlOwogY2xhc3MgV2ViR1BVVGV4dHVyZTsKIAogY2xh
c3MgV2ViR1BVRHJhd2FibGUgOiBwdWJsaWMgV2ViR1BVT2JqZWN0IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0K
aW5kZXggMmFjZDdkMzhjZjkzNjk5ZDhkNjRkNDQ3ZDZlY2YxZDU3YmJjMTdiZi4uOGRlZDU2YjZi
YjE2NjUzOWYxYTU0Mzk5ZmJhMGQxYzMxMjBlZGI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0KQEAgLTIz
LDggKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVC
dWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKQEAgLTQyLDcgKzQyLDcgQEAgR1BVQnVm
ZmVyOjpHUFVCdWZmZXIoR1BVRGV2aWNlKiBkZXZpY2UsIEFycmF5QnVmZmVyVmlldyogZGF0YSkK
ICAgICBpZiAoIWRldmljZSB8fCAhZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIHx8ICFkYXRhKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2J1ZmZlciA9IChNVExCdWZmZXIqKVtkZXZpY2UtPnBs
YXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aEJ5dGVzOmRhdGEtPmJhc2VBZGRyZXNzKCkgbGVu
Z3RoOmRhdGEtPmJ5dGVMZW5ndGgoKSBvcHRpb25zOk1UTFJlc291cmNlT3B0aW9uQ1BVQ2FjaGVN
b2RlRGVmYXVsdF07CisgICAgbV9idWZmZXIgPSAoTVRMQnVmZmVyICopW2RldmljZS0+cGxhdGZv
cm1EZXZpY2UoKSBuZXdCdWZmZXJXaXRoQnl0ZXM6ZGF0YS0+YmFzZUFkZHJlc3MoKSBsZW5ndGg6
ZGF0YS0+Ynl0ZUxlbmd0aCgpIG9wdGlvbnM6TVRMUmVzb3VyY2VPcHRpb25DUFVDYWNoZU1vZGVE
ZWZhdWx0XTsKIH0KIAogdW5zaWduZWQgbG9uZyBHUFVCdWZmZXI6Omxlbmd0aCgpIGNvbnN0CkBA
IC02NSw3ICs2NSw3IEBAIFJlZlB0cjxBcnJheUJ1ZmZlcj4gR1BVQnVmZmVyOjpjb250ZW50cygp
CiAgICAgcmV0dXJuIG1fY29udGVudHM7CiB9CiAKLU1UTEJ1ZmZlciogR1BVQnVmZmVyOjpwbGF0
Zm9ybUJ1ZmZlcigpCitNVExCdWZmZXIgKkdQVUJ1ZmZlcjo6cGxhdGZvcm1CdWZmZXIoKQogewog
ICAgIHJldHVybiBtX2J1ZmZlci5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMTlmMmUwNWE0ODZlNTBiMmFmNDFjMTk0MGQ0MTYyMmMzOGViZmRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQg
IkdQVUNvbW1hbmRRdWV1ZS5oIgorI2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJHUFVE
cmF3YWJsZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQVUNvbW1hbmRCdWZmZXI6OkdQVUNvbW1hbmRC
dWZmZXIoR1BVQ29tbWFuZFF1ZXVlKiBxdWV1ZSkKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVQ29t
bWFuZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcigpIik7CisKKyAgICBpZiAoIXF1ZXVlIHx8ICFx
dWV1ZS0+cGxhdGZvcm1Db21tYW5kUXVldWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b21tYW5kQnVmZmVyID0gKE1UTENvbW1hbmRCdWZmZXIgKilbcXVldWUtPnBsYXRmb3JtQ29tbWFu
ZFF1ZXVlKCkgY29tbWFuZEJ1ZmZlcl07Cit9CisKK01UTENvbW1hbmRCdWZmZXIgKkdQVUNvbW1h
bmRCdWZmZXI6OnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpCit7CisgICAgcmV0dXJuIG1fY29tbWFu
ZEJ1ZmZlci5nZXQoKTsKK30KKwordm9pZCBHUFVDb21tYW5kQnVmZmVyOjpwcmVzZW50RHJhd2Fi
bGUoR1BVRHJhd2FibGUqIGRyYXdhYmxlKQoreworICAgIGlmICghbV9jb21tYW5kQnVmZmVyIHx8
ICFkcmF3YWJsZS0+cGxhdGZvcm1EcmF3YWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBb
bV9jb21tYW5kQnVmZmVyIHByZXNlbnREcmF3YWJsZTpzdGF0aWNfY2FzdDxpZDxNVExEcmF3YWJs
ZT4+KGRyYXdhYmxlLT5wbGF0Zm9ybURyYXdhYmxlKCkpXTsKKyAgICBkcmF3YWJsZS0+cmVsZWFz
ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tbWFuZFF1ZXVlTWV0
YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21tYW5k
UXVldWVNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmY2MzUyZGFhNmFjZjhiMjQ0ODQxZDVjMWQ2MDk1
YTQzMDlhOWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR1BVQ29tbWFuZFF1ZXVlTWV0YWwubW0KQEAgLTAsMCArMSw2OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiR1BVQ29tbWFuZFF1ZXVlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVDb21tYW5kUXVldWU6
OkdQVUNvbW1hbmRRdWV1ZShHUFVEZXZpY2UqIGRldmljZSkKK3sKKyAgICBMT0coV2ViR1BVLCAi
R1BVQ29tbWFuZFF1ZXVlOjpHUFVDb21tYW5kUXVldWUoKSIpOworCisgICAgaWYgKCFkZXZpY2Ug
fHwgIWRldmljZS0+cGxhdGZvcm1EZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b21tYW5kUXVldWUgPSAoTVRMQ29tbWFuZFF1ZXVlICopW2RldmljZS0+cGxhdGZvcm1EZXZpY2Uo
KSBuZXdDb21tYW5kUXVldWVdOworfQorCitTdHJpbmcgR1BVQ29tbWFuZFF1ZXVlOjpsYWJlbCgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbW1hbmRRdWV1ZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CisKKyAgICByZXR1cm4gW21fY29tbWFuZFF1ZXVlIGxhYmVsXTsKK30KKwordm9p
ZCBHUFVDb21tYW5kUXVldWU6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCit7CisgICAg
QVNTRVJUKG1fY29tbWFuZFF1ZXVlKTsKKyAgICBbbV9jb21tYW5kUXVldWUgc2V0TGFiZWw6bGFi
ZWxdOworfQorICAgIAorTVRMQ29tbWFuZFF1ZXVlICpHUFVDb21tYW5kUXVldWU6OnBsYXRmb3Jt
Q29tbWFuZFF1ZXVlKCkKK3sKKyAgICByZXR1cm4gbV9jb21tYW5kUXVldWUuZ2V0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yTWV0
YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM2Nzg4M2E0MmM5ZmY5NjNlZTYw
YThjM2E3M2RjYWRmYmJiNTgxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3JNZXRhbC5tbQpA
QCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlw
dG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1wb3J0ICJHUFVFbnVtcy5oIgorI2lt
cG9ydCAiTG9nZ2luZy5oIgorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6OkdQVURlcHRoU3RlbmNpbERl
c2NyaXB0b3IoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9y
OjpHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yKCkiKTsKKworICAgIG1fZGVwdGhTdGVuY2lsRGVz
Y3JpcHRvciA9IChNVExEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yICopW01UTERlcHRoU3RlbmNpbERl
c2NyaXB0b3IgbmV3XTsKK30KKworYm9vbCBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpkZXB0
aFdyaXRlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2RlcHRoU3RlbmNpbERlc2NyaXB0
b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBbbV9kZXB0aFN0ZW5jaWxE
ZXNjcmlwdG9yIGlzRGVwdGhXcml0ZUVuYWJsZWRdOworfQorCit2b2lkIEdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3I6OnNldERlcHRoV3JpdGVFbmFibGVkKGJvb2wgbmV3RGVwdGhXcml0ZUVuYWJs
ZWQpCit7CisgICAgQVNTRVJUKG1fZGVwdGhTdGVuY2lsRGVzY3JpcHRvcik7CisgICAgW21fZGVw
dGhTdGVuY2lsRGVzY3JpcHRvciBzZXREZXB0aFdyaXRlRW5hYmxlZDpuZXdEZXB0aFdyaXRlRW5h
YmxlZF07Cit9CisKK0dQVUNvbXBhcmVGdW5jdGlvbiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9y
OjpkZXB0aENvbXBhcmVGdW5jdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2RlcHRoU3RlbmNp
bERlc2NyaXB0b3IpCisgICAgICAgIHJldHVybiBHUFVDb21wYXJlRnVuY3Rpb246Ok5ldmVyOwor
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUNvbXBhcmVGdW5jdGlvbj4oW21fZGVwdGhTdGVu
Y2lsRGVzY3JpcHRvciBkZXB0aENvbXBhcmVGdW5jdGlvbl0pOworfQorCit2b2lkIEdQVURlcHRo
U3RlbmNpbERlc2NyaXB0b3I6OnNldERlcHRoQ29tcGFyZUZ1bmN0aW9uKEdQVUNvbXBhcmVGdW5j
dGlvbiBuZXdGdW5jdGlvbikKK3sKKyAgICBBU1NFUlQobV9kZXB0aFN0ZW5jaWxEZXNjcmlwdG9y
KTsKKyAgICBbbV9kZXB0aFN0ZW5jaWxEZXNjcmlwdG9yIHNldERlcHRoQ29tcGFyZUZ1bmN0aW9u
OnN0YXRpY19jYXN0PE1UTENvbXBhcmVGdW5jdGlvbj4obmV3RnVuY3Rpb24pXTsKK30KKworTVRM
RGVwdGhTdGVuY2lsRGVzY3JpcHRvciAqR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6cGxhdGZv
cm1EZXB0aFN0ZW5jaWxEZXNjcmlwdG9yKCkKK3sKKyAgICByZXR1cm4gbV9kZXB0aFN0ZW5jaWxE
ZXNjcmlwdG9yLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVRGVw
dGhTdGVuY2lsU3RhdGVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dQVURlcHRoU3RlbmNpbFN0YXRlTWV0YWwubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZhODYyYzBl
MjZkNzc5YzU5YWIzN2UyZmNmNWY4NTc5NjkyYWNjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVURlcHRoU3RlbmNpbFN0YXRlTWV0
YWwubW0KQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVRGVwdGhTdGVuY2ls
U3RhdGUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3IuaCIKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5o
IgorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQ
VURlcHRoU3RlbmNpbFN0YXRlOjpHUFVEZXB0aFN0ZW5jaWxTdGF0ZShHUFVEZXZpY2UqIGRldmlj
ZSwgR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvciogZGVzY3JpcHRvcikKK3sKKyAgICBMT0coV2Vi
R1BVLCAiR1BVRGVwdGhTdGVuY2lsU3RhdGU6OkdQVURlcHRoU3RlbmNpbFN0YXRlKCkiKTsKKwor
ICAgIGlmICghZGV2aWNlIHx8ICFkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgfHwgIWRlc2NyaXB0
b3IgfHwgIWRlc2NyaXB0b3ItPnBsYXRmb3JtRGVwdGhTdGVuY2lsRGVzY3JpcHRvcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2RlcHRoU3RlbmNpbFN0YXRlID0gKE1UTERlcHRoU3RlbmNp
bFN0YXRlICopW2RldmljZS0+cGxhdGZvcm1EZXZpY2UoKSBuZXdEZXB0aFN0ZW5jaWxTdGF0ZVdp
dGhEZXNjcmlwdG9yOmRlc2NyaXB0b3ItPnBsYXRmb3JtRGVwdGhTdGVuY2lsRGVzY3JpcHRvcigp
XTsKK30KKworU3RyaW5nIEdQVURlcHRoU3RlbmNpbFN0YXRlOjpsYWJlbCgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2RlcHRoU3RlbmNpbFN0YXRlKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKKworICAgIHJldHVybiBbbV9kZXB0aFN0ZW5jaWxTdGF0ZSBsYWJlbF07Cit9CisKK3ZvaWQg
R1BVRGVwdGhTdGVuY2lsU3RhdGU6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCit7Cisg
ICAgQVNTRVJUKG1fZGVwdGhTdGVuY2lsU3RhdGUpOworICAgIFttX2RlcHRoU3RlbmNpbFN0YXRl
IHNldExhYmVsOmxhYmVsXTsKK30KKyAgICAKK01UTERlcHRoU3RlbmNpbFN0YXRlICpHUFVEZXB0
aFN0ZW5jaWxTdGF0ZTo6cGxhdGZvcm1EZXB0aFN0ZW5jaWxTdGF0ZSgpCit7CisgICAgcmV0dXJu
IG1fZGVwdGhTdGVuY2lsU3RhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVEcmF3YWJsZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR1BVRHJhd2FibGVNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTQ5NGI2M2EzZWVmOWIy
ODdkYTJiMDk5YTMyYjg4NjU5Nzg0MTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVRHJhd2FibGVNZXRhbC5tbQpAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVEcmF3YWJsZS5oIgorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNp
bXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVEcmF3YWJsZTo6R1BVRHJhd2FibGUoR1BVRGV2
aWNlKiBkZXZpY2UpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVURyYXdhYmxlOjpHUFVEcmF3YWJs
ZSgpIik7CisKKyAgICBpZiAoIWRldmljZSB8fCAhZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2RyYXdhYmxlID0gKE1UTERyYXdhYmxlICopW3N0YXRp
Y19jYXN0PENBTWV0YWxMYXllcio+KGRldmljZS0+cGxhdGZvcm1MYXllcigpKSBuZXh0RHJhd2Fi
bGVdOworfQorCit2b2lkIEdQVURyYXdhYmxlOjpyZWxlYXNlKCkKK3sKKyAgICBMT0coV2ViR1BV
LCAiTWV0YWxEcmF3YWJsZTo6cmVsZWFzZSgpIik7CisgICAgbV9kcmF3YWJsZSA9IG51bGxwdHI7
Cit9CisgICAgCitNVExEcmF3YWJsZSAqR1BVRHJhd2FibGU6OnBsYXRmb3JtRHJhd2FibGUoKQor
eworICAgIHJldHVybiBtX2RyYXdhYmxlLmdldCgpOworfQorCitNVExUZXh0dXJlICpHUFVEcmF3
YWJsZTo6cGxhdGZvcm1UZXh0dXJlKCkKK3sKKyAgICBpZiAoIW1fZHJhd2FibGUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiAoTVRMVGV4dHVyZSAqKVsoaWQ8Q0FNZXRhbERy
YXdhYmxlPiltX2RyYXdhYmxlLmdldCgpIHRleHR1cmVdOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR1BVRnVuY3Rpb25NZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dQVUZ1bmN0aW9uTWV0YWwubW0KaW5kZXggMWY5MzUxMTkyNWJjZmQx
N2QyZDhlMWMyY2IyNjE0NWVhYTc5MDhlNy4uZDk4ZjEyOTY4YTk4ZGQwYjVlODA2OWI5MTYzZDFh
OWE3NzY2ZTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR1BVRnVuY3Rpb25NZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HUFVGdW5jdGlvbk1ldGFsLm1tCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHUFVGdW5j
dGlvbi5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVGdW5jdGlvbi5oIgogCiAj
aWYgRU5BQkxFKFdFQkdQVSkKIApAQCAtNDEsNyArNDEsNyBAQCBHUFVGdW5jdGlvbjo6R1BVRnVu
Y3Rpb24oR1BVTGlicmFyeSogbGlicmFyeSwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmICgh
bGlicmFyeSB8fCAhbGlicmFyeS0+cGxhdGZvcm1MaWJyYXJ5KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fZnVuY3Rpb24gPSAoTVRMRnVuY3Rpb24qKVtsaWJyYXJ5LT5wbGF0Zm9ybUxpYnJh
cnkoKSBuZXdGdW5jdGlvbldpdGhOYW1lOm5hbWVdOworICAgIG1fZnVuY3Rpb24gPSAoTVRMRnVu
Y3Rpb24gKilbbGlicmFyeS0+cGxhdGZvcm1MaWJyYXJ5KCkgbmV3RnVuY3Rpb25XaXRoTmFtZTpu
YW1lXTsKIH0KIAogU3RyaW5nIEdQVUZ1bmN0aW9uOjpuYW1lKCkgY29uc3QKQEAgLTUyLDcgKzUy
LDcgQEAgU3RyaW5nIEdQVUZ1bmN0aW9uOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gW21fZnVu
Y3Rpb24gbmFtZV07CiB9CiAKLU1UTEZ1bmN0aW9uKiBHUFVGdW5jdGlvbjo6cGxhdGZvcm1GdW5j
dGlvbigpCitNVExGdW5jdGlvbiAqR1BVRnVuY3Rpb246OnBsYXRmb3JtRnVuY3Rpb24oKQogewog
ICAgIHJldHVybiBtX2Z1bmN0aW9uLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVTGlicmFyeU1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVTGlicmFyeU1ldGFsLm1tCmluZGV4IGE4
YTQ1ZDZkMTFlMGEyZDc0MTVlYjMxNmM2NmIxMWJhZTdjZTcyNWUuLmMwNWM0MTBlOWIzNzMwOGM0
ZmEzNjc3ODVmOGIzNzdkOTFkYjMwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dQVUxpYnJhcnlNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVMaWJyYXJ5TWV0YWwubW0KQEAgLTIzLDggKzIz
LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkdQVUxpYnJhcnkuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVTGlicmFy
eS5oIgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIApAQCAtNDMsNyArNDMsNyBAQCBHUFVMaWJyYXJ5
OjpHUFVMaWJyYXJ5KEdQVURldmljZSogZGV2aWNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIE5TRXJyb3IgKmVycm9yID0gW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOkAiY29tLmFwcGxlLldlYktpdC5HUFUiIGNvZGU6MSB1c2VySW5mbzpuaWxdOwot
ICAgIG1fbGlicmFyeSA9IChNVExMaWJyYXJ5KilbZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIG5l
d0xpYnJhcnlXaXRoU291cmNlOnNvdXJjZUNvZGUgb3B0aW9uczpuaWwgZXJyb3I6JmVycm9yXTsK
KyAgICBtX2xpYnJhcnkgPSAoTVRMTGlicmFyeSAqKVtkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkg
bmV3TGlicmFyeVdpdGhTb3VyY2U6c291cmNlQ29kZSBvcHRpb25zOm5pbCBlcnJvcjomZXJyb3Jd
OwogICAgIGlmICghbV9saWJyYXJ5KQogICAgICAgICBMT0coV2ViR1BVLCAiQ29tcGlsYXRpb24g
ZXJyb3I6ICVzIiwgW1tlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRGOFN0cmluZ10pOwog
fQpAQCAtNTgsOSArNTgsNyBAQCBTdHJpbmcgR1BVTGlicmFyeTo6bGFiZWwoKSBjb25zdAogCiB2
b2lkIEdQVUxpYnJhcnk6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYg
KCFtX2xpYnJhcnkpCi0gICAgICAgIHJldHVybjsKLQorICAgIEFTU0VSVChtX2xpYnJhcnkpOwog
ICAgIFttX2xpYnJhcnkgc2V0TGFiZWw6bGFiZWxdOwogfQogCkBAIC03OCw3ICs3Niw3IEBAIFZl
Y3RvcjxTdHJpbmc+IEdQVUxpYnJhcnk6OmZ1bmN0aW9uTmFtZXMoKQogICAgIHJldHVybiBuYW1l
czsKIH0KIAotTVRMTGlicmFyeSogR1BVTGlicmFyeTo6cGxhdGZvcm1MaWJyYXJ5KCkKK01UTExp
YnJhcnkgKkdQVUxpYnJhcnk6OnBsYXRmb3JtTGlicmFyeSgpCiB7CiAgICAgcmV0dXJuIG1fbGli
cmFyeS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVVJlbmRlckNvbW1hbmRFbmNvZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVSZW5kZXJDb21tYW5kRW5jb2Rlck1ldGFsLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmNjYwNTg4MDM2MzU0YjAzYzJiZTU2ZTI2MzNlNjExMGQ2MWE0ZTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
UFVSZW5kZXJDb21tYW5kRW5jb2Rlck1ldGFsLm1tCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2ltcG9ydCAiR1BVQnVmZmVyLmgiCisjaW1wb3J0ICJHUFVDb21tYW5kQnVmZmVyLmgi
CisjaW1wb3J0ICJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIgorI2ltcG9ydCAiR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IuaCIKKyNpbXBvcnQgIkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaCIKKyNpbXBv
cnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6R1BVUmVuZGVyQ29tbWFuZEVuY29k
ZXIoR1BVQ29tbWFuZEJ1ZmZlciogYnVmZmVyLCBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciogZGVz
Y3JpcHRvcikKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6OkdQ
VVJlbmRlckNvbW1hbmRFbmNvZGVyKCkiKTsKKworICAgIGlmICghYnVmZmVyIHx8ICFidWZmZXIt
PnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIHx8ICFkZXNjcmlwdG9yIHx8ICFkZXNjcmlwdG9yLT5w
bGF0Zm9ybVJlbmRlclBhc3NEZXNjcmlwdG9yKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cmVuZGVyQ29tbWFuZEVuY29kZXIgPSAoTVRMUmVuZGVyQ29tbWFuZEVuY29kZXIgKilbYnVmZmVy
LT5wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSByZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlw
dG9yOmRlc2NyaXB0b3ItPnBsYXRmb3JtUmVuZGVyUGFzc0Rlc2NyaXB0b3IoKV07Cit9CisKK3Zv
aWQgR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6OnNldFJlbmRlclBpcGVsaW5lU3RhdGUoR1BVUmVu
ZGVyUGlwZWxpbmVTdGF0ZSogcmVuZGVyUGlwZWxpbmVTdGF0ZSkKK3sKKyAgICBpZiAoIW1fcmVu
ZGVyQ29tbWFuZEVuY29kZXIgfHwgIXJlbmRlclBpcGVsaW5lU3RhdGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIFttX3JlbmRlckNvbW1hbmRFbmNvZGVyIHNldFJlbmRlclBpcGVsaW5lU3RhdGU6
c3RhdGljX2Nhc3Q8aWQ8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4+KHJlbmRlclBpcGVsaW5lU3Rh
dGUtPnBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTdGF0ZSgpKV07Cit9CisKK3ZvaWQgR1BVUmVuZGVy
Q29tbWFuZEVuY29kZXI6OnNldERlcHRoU3RlbmNpbFN0YXRlKEdQVURlcHRoU3RlbmNpbFN0YXRl
KiBkZXB0aFN0ZW5jaWxTdGF0ZSkKK3sKKyAgICBpZiAoIW1fcmVuZGVyQ29tbWFuZEVuY29kZXIg
fHwgIWRlcHRoU3RlbmNpbFN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbbV9yZW5kZXJD
b21tYW5kRW5jb2RlciBzZXREZXB0aFN0ZW5jaWxTdGF0ZTpzdGF0aWNfY2FzdDxpZDxNVExEZXB0
aFN0ZW5jaWxTdGF0ZT4+KGRlcHRoU3RlbmNpbFN0YXRlLT5wbGF0Zm9ybURlcHRoU3RlbmNpbFN0
YXRlKCkpXTsKK30KKwordm9pZCBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0VmVydGV4QnVm
ZmVyKEdQVUJ1ZmZlciogYnVmZmVyLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQor
eworICAgIGlmICghbV9yZW5kZXJDb21tYW5kRW5jb2RlciB8fCAhYnVmZmVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbbV9yZW5kZXJDb21tYW5kRW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6c3Rh
dGljX2Nhc3Q8aWQ8TVRMQnVmZmVyPj4oYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZlcigpKSBvZmZzZXQ6
b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCit2b2lkIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVy
OjpzZXRGcmFnbWVudEJ1ZmZlcihHUFVCdWZmZXIqIGJ1ZmZlciwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoIW1fcmVuZGVyQ29tbWFuZEVuY29kZXIgfHwgIWJ1
ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fcmVuZGVyQ29tbWFuZEVuY29kZXIgc2V0
RnJhZ21lbnRCdWZmZXI6c3RhdGljX2Nhc3Q8aWQ8TVRMQnVmZmVyPj4oYnVmZmVyLT5wbGF0Zm9y
bUJ1ZmZlcigpKSBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCit2b2lkIEdQVVJl
bmRlckNvbW1hbmRFbmNvZGVyOjpkcmF3UHJpbWl0aXZlcyh1bnNpZ25lZCB0eXBlLCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgY291bnQpCit7CisgICAgaWYgKCFtX3JlbmRlckNvbW1hbmRFbmNv
ZGVyIHx8ICFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fcmVuZGVyQ29tbWFuZEVu
Y29kZXIgZHJhd1ByaW1pdGl2ZXM6c3RhdGljX2Nhc3Q8TVRMUHJpbWl0aXZlVHlwZT4odHlwZSkg
dmVydGV4U3RhcnQ6c3RhcnQgdmVydGV4Q291bnQ6Y291bnRdOworfQorCit2b2lkIEdQVVJlbmRl
ckNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZygpCit7CisgICAgW21fcmVuZGVyQ29tbWFuZEVu
Y29kZXIgZW5kRW5jb2RpbmddOworfQorCitNVExSZW5kZXJDb21tYW5kRW5jb2RlciAqR1BVUmVu
ZGVyQ29tbWFuZEVuY29kZXI6OnBsYXRmb3JtUmVuZGVyQ29tbWFuZEVuY29kZXIoKQoreworICAg
IHJldHVybiBtX3JlbmRlckNvbW1hbmRFbmNvZGVyLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yTWV0YWwubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQYXNzQXR0
YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzcxMmM5OWZlYjRiY2FhMzYy
YTM3OTdiZTE5MzFiMjhkN2E0MjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9y
TWV0YWwubW0KQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVUmVuZGVyUGFz
c0F0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1wb3J0
ICJHUFVUZXh0dXJlLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnRE
ZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IoTVRMUmVuZGVyUGFz
c0F0dGFjaG1lbnREZXNjcmlwdG9yICphdHRhY2htZW50RGVzY3JpcHRvcikKK3sKKyAgICBMT0co
V2ViR1BVLCAiR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNz
QXR0YWNobWVudERlc2NyaXB0b3IoKSIpOworCisgICAgbV9yZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3IgPSBhdHRhY2htZW50RGVzY3JpcHRvcjsKK30KKwordW5zaWduZWQgbG9uZyBHUFVS
ZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OmxvYWRBY3Rpb24oKSBjb25zdAoreworICAg
IGlmICghbV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IpCisgICAgICAgIHJldHVybiAw
OyAvLyBGSVhNRTogV2ViR1BVIC0gVGhlcmUgaXMgcHJvYmFibHkgYSByZWFsIHZhbHVlIGZvciB0
aGlzLgorCisgICAgcmV0dXJuIFttX3JlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvciBsb2Fk
QWN0aW9uXTsKK30KKwordm9pZCBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OnNl
dExvYWRBY3Rpb24odW5zaWduZWQgbG9uZyBuZXdMb2FkQWN0aW9uKQoreworICAgIGlmICghbV9y
ZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFtt
X3JlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvciBzZXRMb2FkQWN0aW9uOnN0YXRpY19jYXN0
PE1UTExvYWRBY3Rpb24+KG5ld0xvYWRBY3Rpb24pXTsKK30KKwordW5zaWduZWQgbG9uZyBHUFVS
ZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OnN0b3JlQWN0aW9uKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fcmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4g
MDsgLy8gRklYTUU6IFdlYkdQVSAtIFRoZXJlIGlzIHByb2JhYmx5IGEgcmVhbCB2YWx1ZSBmb3Ig
dGhpcy4KKworICAgIHJldHVybiBbbV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3Igc3Rv
cmVBY3Rpb25dOworfQorCit2b2lkIEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcjo6
c2V0U3RvcmVBY3Rpb24odW5zaWduZWQgbG9uZyBuZXdTdG9yZUFjdGlvbikKK3sKKyAgICBpZiAo
IW1fcmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAg
ICBbbV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3Igc2V0U3RvcmVBY3Rpb246c3RhdGlj
X2Nhc3Q8TVRMU3RvcmVBY3Rpb24+KG5ld1N0b3JlQWN0aW9uKV07Cit9CisKK3ZvaWQgR1BVUmVu
ZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpzZXRUZXh0dXJlKFJlZlB0cjxHUFVUZXh0dXJl
PiB0ZXh0dXJlKQoreworICAgIGlmICghbV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3Ip
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbbV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2Ny
aXB0b3Igc2V0VGV4dHVyZTpzdGF0aWNfY2FzdDxpZDxNVExUZXh0dXJlPj4odGV4dHVyZS0+cGxh
dGZvcm1UZXh0dXJlKCkpXTsKK30KKworTVRMUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9y
ICpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OnBsYXRmb3JtUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjcmlwdG9yKCkKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJQYXNzQXR0YWNobWVu
dERlc2NyaXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVS
ZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERl
c2NyaXB0b3JNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmJlNjcyZDQzZjMxZDkwNTg1NDE2NWFjMzEw
ODFlZWFkY2QyYmM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3JNZXRh
bC5tbQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2ltcG9y
dCAiR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisjaW1wb3J0ICJMb2dnaW5n
LmgiCisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UmVmUHRyPEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiBHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6Y3JlYXRlKE1UTFJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnREZXNjcmlwdG9yICpjb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKQoreworICAgIFJl
ZlB0cjxHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9
IGFkb3B0UmVmKG5ldyBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcihjb2xv
ckF0dGFjaG1lbnREZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9CisKK0dQ
VVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcihNVExSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRv
ciAqYXR0YWNobWVudERlc2NyaXB0b3IpCisgICAgOiBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3IoYXR0YWNobWVudERlc2NyaXB0b3IpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVVJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvcigpIik7Cit9CisKK1ZlY3RvcjxmbG9hdD4gR1BVUmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudERlc2NyaXB0b3I6OmNsZWFyQ29sb3IoKSBjb25zdAoreworICAgIE1UTFJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yICpjb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yID0gc3RhdGljX2Nhc3Q8TVRMUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3Iq
PihtX3JlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5nZXQoKSk7CisgICAgaWYgKCFjb2xv
ckF0dGFjaG1lbnREZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4gVmVjdG9yPGZsb2F0PigpOwor
CisgICAgTVRMQ2xlYXJDb2xvciBjb2xvciA9IFtjb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yIGNs
ZWFyQ29sb3JdOworICAgIHJldHVybiBWZWN0b3I8ZmxvYXQ+KHtzdGF0aWNfY2FzdDxmbG9hdD4o
Y29sb3IucmVkKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yLmdyZWVuKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGNvbG9yLmJsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3IuYWxwaGEpfSk7Cit9
CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnNldENsZWFy
Q29sb3IoY29uc3QgVmVjdG9yPGZsb2F0PiYgbmV3Q2xlYXJDb2xvcikKK3sKKyAgICBNVExSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvciAqY29sb3JBdHRhY2htZW50RGVzY3JpcHRv
ciA9IHBsYXRmb3JtUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IoKTsKKyAgICBp
ZiAoIWNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgfHwgbmV3Q2xlYXJDb2xvci5zaXplKCkgIT0g
NCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTVRMQ2xlYXJDb2xvciBjbGVhckNvbG9yID0gTVRM
Q2xlYXJDb2xvck1ha2UobmV3Q2xlYXJDb2xvclswXSwgbmV3Q2xlYXJDb2xvclsxXSwgbmV3Q2xl
YXJDb2xvclsyXSwgbmV3Q2xlYXJDb2xvclszXSk7CisgICAgW2NvbG9yQXR0YWNobWVudERlc2Ny
aXB0b3Igc2V0Q2xlYXJDb2xvcjpjbGVhckNvbG9yXTsKK30KKworTVRMUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudERlc2NyaXB0b3IgKkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yOjpwbGF0Zm9ybVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKCkKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8TVRMUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0
b3IqPihwbGF0Zm9ybVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcigpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNj
cmlwdG9yTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
UFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ5N2VmOGU5NTEwN2ZkZmZlYjQ4ZDc3MjQxNDc3MDlkZjk0OTk1YTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQYXNz
RGVwdGhBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1wb3J0ICJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3IuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8TWV0YWwvTWV0YWwu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BVUmVuZGVyUGFzc0RlcHRoQXR0
YWNobWVudERlc2NyaXB0b3I+IEdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9y
OjpjcmVhdGUoTVRMUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IgKmRlcHRoQXR0
YWNobWVudERlc2NyaXB0b3IpCit7CisgICAgUmVmUHRyPEdQVVJlbmRlclBhc3NEZXB0aEF0dGFj
aG1lbnREZXNjcmlwdG9yPiBkZXNjcmlwdG9yID0gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBhc3NE
ZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKGRlcHRoQXR0YWNobWVudERlc2NyaXB0b3IpKTsKKyAg
ICByZXR1cm4gZGVzY3JpcHRvcjsKK30KKworR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERl
c2NyaXB0b3I6OkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKE1UTFJlbmRl
clBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yICphdHRhY2htZW50RGVzY3JpcHRvcikKKyAg
ICA6IEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcihhdHRhY2htZW50RGVzY3JpcHRv
cikKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2Ny
aXB0b3I6OkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKCkiKTsKK30KKwor
ZG91YmxlIEdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yOjpjbGVhckRlcHRo
KCkgY29uc3QKK3sKKyAgICBNVExSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvciAq
ZGVwdGhBdHRhY2htZW50RGVzY3JpcHRvciA9IHN0YXRpY19jYXN0PE1UTFJlbmRlclBhc3NEZXB0
aEF0dGFjaG1lbnREZXNjcmlwdG9yKj4obV9yZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3Iu
Z2V0KCkpOworICAgIGlmICghZGVwdGhBdHRhY2htZW50RGVzY3JpcHRvcikKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gW2RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IgY2xlYXJEZXB0
aF07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I6OnNl
dENsZWFyRGVwdGgoZG91YmxlIG5ld0NsZWFyRGVwdGgpCit7CisgICAgTVRMUmVuZGVyUGFzc0Rl
cHRoQXR0YWNobWVudERlc2NyaXB0b3IgKmRlcHRoQXR0YWNobWVudERlc2NyaXB0b3IgPSBwbGF0
Zm9ybVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKCk7CisgICAgW2RlcHRoQXR0
YWNobWVudERlc2NyaXB0b3Igc2V0Q2xlYXJEZXB0aDpuZXdDbGVhckRlcHRoXTsKK30KKworTVRM
UmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IgKkdQVVJlbmRlclBhc3NEZXB0aEF0
dGFjaG1lbnREZXNjcmlwdG9yOjpwbGF0Zm9ybVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNj
cmlwdG9yKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TVRMUmVuZGVyUGFzc0RlcHRoQXR0
YWNobWVudERlc2NyaXB0b3IqPihwbGF0Zm9ybVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRv
cigpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBhc3NEZXNj
cmlwdG9yTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
UFVSZW5kZXJQYXNzRGVzY3JpcHRvck1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwMWRlODQ5YmQ4YTAz
OTIyYmNhZjlhOThiZTg0ZDk2OTAzNTgyNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvck1ldGFs
Lm1tCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNj
cmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1wb3J0ICJHUFVSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5oIgorI2ltcG9ydCAiR1BVUmVuZGVyUGFzc0RlcHRo
QXR0YWNobWVudERlc2NyaXB0b3IuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvcjo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IoKQoreworICAgIExPRyhXZWJHUFUsICJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvcjo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IoKSIpOworCisg
ICAgbV9yZW5kZXJQYXNzRGVzY3JpcHRvciA9IChNVExSZW5kZXJQYXNzRGVzY3JpcHRvciAqKVtN
VExSZW5kZXJQYXNzRGVzY3JpcHRvciBuZXddOworfQorCitWZWN0b3I8UmVmUHRyPEdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPj4gR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6
OmNvbG9yQXR0YWNobWVudHMoKQoreworICAgIGlmICghbV9yZW5kZXJQYXNzRGVzY3JpcHRvcikK
KyAgICAgICAgcmV0dXJuIFZlY3RvcjxSZWZQdHI8R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dERlc2NyaXB0b3I+PigpOworCisgICAgVmVjdG9yPFJlZlB0cjxHUFVSZW5kZXJQYXNzQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcj4+IHBsYXRmb3JtQ29sb3JBdHRhY2htZW50czsKKyAgICBwbGF0
Zm9ybUNvbG9yQXR0YWNobWVudHMuYXBwZW5kKEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnRE
ZXNjcmlwdG9yOjpjcmVhdGUoW1ttX3JlbmRlclBhc3NEZXNjcmlwdG9yIGNvbG9yQXR0YWNobWVu
dHNdIG9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDowXSkpOworICAgIHJldHVybiBwbGF0Zm9ybUNv
bG9yQXR0YWNobWVudHM7Cit9CisKK1JlZlB0cjxHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50
RGVzY3JpcHRvcj4gR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmRlcHRoQXR0YWNobWVudCgpCit7
CisgICAgaWYgKCFtX3JlbmRlclBhc3NEZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmICghbV9kZXB0aEF0dGFjaG1lbnQpCisgICAgICAgIG1fZGVwdGhBdHRhY2ht
ZW50ID0gR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I6OmNyZWF0ZShbbV9y
ZW5kZXJQYXNzRGVzY3JpcHRvciBkZXB0aEF0dGFjaG1lbnRdKTsKKyAgICAKKyAgICByZXR1cm4g
bV9kZXB0aEF0dGFjaG1lbnQ7Cit9CisKK01UTFJlbmRlclBhc3NEZXNjcmlwdG9yICpHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvcjo6cGxhdGZvcm1SZW5kZXJQYXNzRGVzY3JpcHRvcigpCit7CisgICAg
cmV0dXJuIG1fcmVuZGVyUGFzc0Rlc2NyaXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3JN
ZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRl
clBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvck1ldGFsLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2
NjI3ZjZmNDQ2ZGI2OTY5ZGUyMzMxM2YzNzVjZGNlMTMzZTQ1MDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQaXBlbGlu
ZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3JNZXRhbC5tbQpAQCAtMCwwICsxLDcxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Iu
aCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9y
dCA8TWV0YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BVUmVu
ZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiBHUFVSZW5kZXJQaXBlbGluZUNv
bG9yQXR0YWNobWVudERlc2NyaXB0b3I6OmNyZWF0ZShNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0
YWNobWVudERlc2NyaXB0b3IgKmF0dGFjaG1lbnREZXNjcmlwdG9yKQoreworICAgIFJlZlB0cjxH
UFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBh
ZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKGF0
dGFjaG1lbnREZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9CisKK0dQVVJl
bmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGlwZWxpbmVD
b2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKE1UTFJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvciAqYXR0YWNobWVudERlc2NyaXB0b3IpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQ
VVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGlwZWxp
bmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKCkiKTsKKworICAgIG1fcmVuZGVyUGlwZWxpbmVD
b2xvckF0dGFjaG1lbnREZXNjcmlwdG9yID0gYXR0YWNobWVudERlc2NyaXB0b3I7Cit9CisKK3Vu
c2lnbmVkIGxvbmcgR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOjpw
aXhlbEZvcm1hdCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3JlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7IC8vIEZJWE1FOiBXZWJHUFUgLSBU
aGVyZSBpcyBwcm9iYWJseSBhIHJlYWwgdmFsdWUgZm9yIHRoaXMuCisKKyAgICByZXR1cm4gW21f
cmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yIHBpeGVsRm9ybWF0XTsKK30K
Kwordm9pZCBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnNldFBp
eGVsRm9ybWF0KHVuc2lnbmVkIGxvbmcgbmV3UGl4ZWxGb3JtYXQpCit7CisgICAgQVNTRVJUKG1f
cmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKTsKKyAgICBbbV9yZW5kZXJQ
aXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3Igc2V0UGl4ZWxGb3JtYXQ6c3RhdGljX2Nh
c3Q8TVRMUGl4ZWxGb3JtYXQ+KG5ld1BpeGVsRm9ybWF0KV07Cit9CisKK01UTFJlbmRlclBpcGVs
aW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvciAqR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFj
aG1lbnREZXNjcmlwdG9yOjpwbGF0Zm9ybVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVz
Y3JpcHRvcigpCit7CisgICAgcmV0dXJuIG1fcmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnRE
ZXNjcmlwdG9yLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3JNZXRhbC5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWIyMzExNzAzNTgwMjY1MWVhMjY2ZWYyZGVmMWI4ZGM2ZWJjYWM1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yTWV0YWwubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW1wb3J0ICJHUFVGdW5jdGlvbi5oIgorI2ltcG9ydCAiR1BVUmVuZGVyUGlwZWxpbmVD
b2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNpbXBv
cnQgPE1ldGFsL01ldGFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yOjpHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IoKQoreworICAgIExP
RyhXZWJHUFUsICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvcigpIik7CisKKyAgICBtX3JlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA9IChNVExS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgKilbTVRMUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIG5l
d107Cit9CisKK3Vuc2lnbmVkIGxvbmcgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpkZXB0
aEF0dGFjaG1lbnRQaXhlbEZvcm1hdCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3JlbmRlclBpcGVs
aW5lRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFttX3JlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciBkZXB0aEF0dGFjaG1lbnRQaXhlbEZvcm1hdF07Cit9CisKK3ZvaWQg
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpzZXREZXB0aEF0dGFjaG1lbnRQaXhlbEZvcm1h
dCh1bnNpZ25lZCBsb25nIG5ld1BpeGVsRm9ybWF0KQoreworICAgIEFTU0VSVChtX3JlbmRlclBp
cGVsaW5lRGVzY3JpcHRvcik7CisgICAgW21fcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIHNldERl
cHRoQXR0YWNobWVudFBpeGVsRm9ybWF0OnN0YXRpY19jYXN0PE1UTFBpeGVsRm9ybWF0PihuZXdQ
aXhlbEZvcm1hdCldOworfQorCit2b2lkIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6c2V0
VmVydGV4RnVuY3Rpb24oUmVmUHRyPEdQVUZ1bmN0aW9uPiBuZXdGdW5jdGlvbikKK3sKKyAgICBB
U1NFUlQobV9yZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpOworICAgIFttX3JlbmRlclBpcGVsaW5l
RGVzY3JpcHRvciBzZXRWZXJ0ZXhGdW5jdGlvbjooaWQ8TVRMRnVuY3Rpb24+KW5ld0Z1bmN0aW9u
LT5wbGF0Zm9ybUZ1bmN0aW9uKCldOworfQorCit2b2lkIEdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvcjo6c2V0RnJhZ21lbnRGdW5jdGlvbihSZWZQdHI8R1BVRnVuY3Rpb24+IG5ld0Z1bmN0aW9u
KQoreworICAgIEFTU0VSVChtX3JlbmRlclBpcGVsaW5lRGVzY3JpcHRvcik7CisgICAgW21fcmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yIHNldEZyYWdtZW50RnVuY3Rpb246KGlkPE1UTEZ1bmN0aW9u
PiluZXdGdW5jdGlvbi0+cGxhdGZvcm1GdW5jdGlvbigpXTsKK30KKworVmVjdG9yPFJlZlB0cjxH
UFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I+PiBHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3I6OmNvbG9yQXR0YWNobWVudHMoKQoreworICAgIGlmICghbV9yZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IpCisgICAgICAgIHJldHVybiBWZWN0b3I8UmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcj4+KCk7CisKKyAgICBWZWN0b3I8UmVm
UHRyPEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcj4+IHBsYXRmb3Jt
Q29sb3JBdHRhY2htZW50czsKKyAgICBwbGF0Zm9ybUNvbG9yQXR0YWNobWVudHMuYXBwZW5kKEdQ
VVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6Y3JlYXRlKFtbbV9yZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IgY29sb3JBdHRhY2htZW50c10gb2JqZWN0QXRJbmRleGVkU3Vi
c2NyaXB0OjBdKSk7CisgICAgcmV0dXJuIHBsYXRmb3JtQ29sb3JBdHRhY2htZW50czsKK30KKwor
dm9pZCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1f
cmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBbbV9yZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IgcmVzZXRdOworfQorCitNVExSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IgKkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6cGxhdGZvcm1SZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IoKQoreworICAgIHJldHVybiBtX3JlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5n
ZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVJlbmRlclBpcGVsaW5l
U3RhdGVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQ
VVJlbmRlclBpcGVsaW5lU3RhdGVNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTg2MzNiZTMzMTgwNmUy
NzFmMTBkM2M0YTNkMjkxMzg0MzdjNjZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZU1ldGFsLm1t
CkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkdQVVJlbmRlclBpcGVsaW5lU3Rh
dGUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2lt
cG9ydCAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgi
CisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BV
UmVuZGVyUGlwZWxpbmVTdGF0ZTo6R1BVUmVuZGVyUGlwZWxpbmVTdGF0ZShHUFVEZXZpY2UqIGRl
dmljZSwgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKiBkZXNjcmlwdG9yKQoreworICAgIExP
RyhXZWJHUFUsICJHUFVSZW5kZXJQaXBlbGluZVN0YXRlOjpHUFVSZW5kZXJQaXBlbGluZVN0YXRl
KCkiKTsKKworICAgIGlmICghZGV2aWNlIHx8ICFkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgfHwg
IWRlc2NyaXB0b3IgfHwgIWRlc2NyaXB0b3ItPnBsYXRmb3JtUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVuZGVyUGlwZWxpbmVTdGF0ZSA9IChN
VExSZW5kZXJQaXBlbGluZVN0YXRlICopW2RldmljZS0+cGxhdGZvcm1EZXZpY2UoKSBuZXdSZW5k
ZXJQaXBlbGluZVN0YXRlV2l0aERlc2NyaXB0b3I6ZGVzY3JpcHRvci0+cGxhdGZvcm1SZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IoKSBlcnJvcjpuaWxdOworfQorCitTdHJpbmcgR1BVUmVuZGVyUGlw
ZWxpbmVTdGF0ZTo6bGFiZWwoKSBjb25zdAoreworICAgIGlmICghbV9yZW5kZXJQaXBlbGluZVN0
YXRlKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVybiBbbV9yZW5k
ZXJQaXBlbGluZVN0YXRlIGxhYmVsXTsKK30KKwordm9pZCBHUFVSZW5kZXJQaXBlbGluZVN0YXRl
OjpzZXRMYWJlbChjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIEFTU0VSVChtX3JlbmRlclBp
cGVsaW5lU3RhdGUpOworICAgIFttX3JlbmRlclBpcGVsaW5lU3RhdGUgc2V0TGFiZWw6bGFiZWxd
OworfQorICAgIAorTVRMUmVuZGVyUGlwZWxpbmVTdGF0ZSAqR1BVUmVuZGVyUGlwZWxpbmVTdGF0
ZTo6cGxhdGZvcm1SZW5kZXJQaXBlbGluZVN0YXRlKCkKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJQ
aXBlbGluZVN0YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
VGV4dHVyZURlc2NyaXB0b3JNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0KaW5kZXggYWVkODE3MzM0MmMy
MzAwZmIzNjA2OTU1OWFmMDUxNjRmYzhhMTRiMS4uYTM4NzdjNzQxZjdjMTAzNGZjNGRmYjhkYzg2
YzAxOGRmMmZmMzQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR1BVVGV4dHVyZURlc2NyaXB0b3JNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVUZXh0dXJlRGVzY3JpcHRvck1ldGFsLm1tCkBA
IC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIgorI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIgogCiAjaWYgRU5BQkxFKFdFQkdQVSkK
IApAQCAtMzgsNyArMzgsNyBAQCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6R1BVVGV4dHVyZURlc2Ny
aXB0b3IodW5zaWduZWQgbG9uZyBwaXhlbEZvcm1hdCwgdW5zaWduZWQgbAogewogICAgIExPRyhX
ZWJHUFUsICJHUFVUZXh0dXJlRGVzY3JpcHRvcjo6R1BVVGV4dHVyZURlc2NyaXB0b3IoKSIpOwog
Ci0gICAgbV90ZXh0dXJlRGVzY3JpcHRvciA9IChNVExUZXh0dXJlRGVzY3JpcHRvciopW01UTFRl
eHR1cmVEZXNjcmlwdG9yIHRleHR1cmUyRERlc2NyaXB0b3JXaXRoUGl4ZWxGb3JtYXQ6c3RhdGlj
X2Nhc3Q8TVRMUGl4ZWxGb3JtYXQ+KHBpeGVsRm9ybWF0KSB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVp
Z2h0IG1pcG1hcHBlZDptaXBtYXBwZWRdOworICAgIG1fdGV4dHVyZURlc2NyaXB0b3IgPSAoTVRM
VGV4dHVyZURlc2NyaXB0b3IgKilbTVRMVGV4dHVyZURlc2NyaXB0b3IgdGV4dHVyZTJERGVzY3Jp
cHRvcldpdGhQaXhlbEZvcm1hdDpzdGF0aWNfY2FzdDxNVExQaXhlbEZvcm1hdD4ocGl4ZWxGb3Jt
YXQpIHdpZHRoOndpZHRoIGhlaWdodDpoZWlnaHQgbWlwbWFwcGVkOm1pcG1hcHBlZF07CiB9CiAK
IHVuc2lnbmVkIGxvbmcgR1BVVGV4dHVyZURlc2NyaXB0b3I6OndpZHRoKCkgY29uc3QKQEAgLTEx
OSw3ICsxMTksNyBAQCB2b2lkIEdQVVRleHR1cmVEZXNjcmlwdG9yOjpzZXRVc2FnZSh1bnNpZ25l
ZCBsb25nIG5ld1VzYWdlKQogICAgIFttX3RleHR1cmVEZXNjcmlwdG9yIHNldFVzYWdlOm5ld1Vz
YWdlXTsKIH0KIAotTVRMVGV4dHVyZURlc2NyaXB0b3IqIEdQVVRleHR1cmVEZXNjcmlwdG9yOjpw
bGF0Zm9ybVRleHR1cmVEZXNjcmlwdG9yKCkKK01UTFRleHR1cmVEZXNjcmlwdG9yICpHUFVUZXh0
dXJlRGVzY3JpcHRvcjo6cGxhdGZvcm1UZXh0dXJlRGVzY3JpcHRvcigpCiB7CiAgICAgcmV0dXJu
IG1fdGV4dHVyZURlc2NyaXB0b3IuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0KaW5kZXggNjU0
Zjk3NjljNTQ4ZGNhMTcwYTkyZmE2NTE3ZDZiYTBiZThiNDI5OC4uZGMyMWZmODI5ODZkM2JjNmQ2
OTQ3ZjUzZTE1ZGZkN2Y1MzE4YTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR1BVVGV4dHVyZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQpAQCAtMjMsMTIgKzIz
LDEzIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJHUFVUZXh0dXJlLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkdQVVRleHR1
cmUuaCIKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbXBvcnQgIkdQVURldmljZS5oIgorI2lt
cG9ydCAiR1BVRHJhd2FibGUuaCIKICNpbXBvcnQgIkdQVVRleHR1cmVEZXNjcmlwdG9yLmgiCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCiAKQEAgLTQzLDE2ICs0NCwxMyBAQCBHUFVUZXh0dXJlOjpHUFVU
ZXh0dXJlKEdQVURldmljZSogZGV2aWNlLCBHUFVUZXh0dXJlRGVzY3JpcHRvciogZGVzY3JpcHRv
cikKICAgICBpZiAoIWRldmljZSB8fCAhZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIHx8ICFkZXNj
cmlwdG9yIHx8ICFkZXNjcmlwdG9yLT5wbGF0Zm9ybVRleHR1cmVEZXNjcmlwdG9yKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fdGV4dHVyZSA9IChNVExUZXh0dXJlKilbZGV2aWNlLT5wbGF0
Zm9ybURldmljZSgpIG5ld1RleHR1cmVXaXRoRGVzY3JpcHRvcjpkZXNjcmlwdG9yLT5wbGF0Zm9y
bVRleHR1cmVEZXNjcmlwdG9yKCldOworICAgIG1fdGV4dHVyZSA9IChNVExUZXh0dXJlICopW2Rl
dmljZS0+cGxhdGZvcm1EZXZpY2UoKSBuZXdUZXh0dXJlV2l0aERlc2NyaXB0b3I6ZGVzY3JpcHRv
ci0+cGxhdGZvcm1UZXh0dXJlRGVzY3JpcHRvcigpXTsKIH0KIAotR1BVVGV4dHVyZTo6R1BVVGV4
dHVyZShHUFVUZXh0dXJlKiBvdGhlcikKK0dQVVRleHR1cmU6OkdQVVRleHR1cmUoR1BVRHJhd2Fi
bGUqIG90aGVyKQogewogICAgIExPRyhXZWJHUFUsICJHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKCki
KTsKIAotICAgIGlmICghb3RoZXIgfHwgIW90aGVyLT5wbGF0Zm9ybVRleHR1cmUoKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgbV90ZXh0dXJlID0gb3RoZXItPnBsYXRmb3JtVGV4dHVyZSgpOwog
fQogCkBAIC03NCw3ICs3Miw3IEBAIHVuc2lnbmVkIGxvbmcgR1BVVGV4dHVyZTo6aGVpZ2h0KCkg
Y29uc3QKICAgICByZXR1cm4gdGV4dHVyZS5oZWlnaHQ7CiB9CiAKLU1UTFRleHR1cmUqIEdQVVRl
eHR1cmU6OnBsYXRmb3JtVGV4dHVyZSgpCitNVExUZXh0dXJlICpHUFVUZXh0dXJlOjpwbGF0Zm9y
bVRleHR1cmUoKQogewogICAgIHJldHVybiBtX3RleHR1cmUuZ2V0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuY3BwCmluZGV4IDEx
NzIxODlmODdjZmEwOTdkZjNlMmJmYTlhZjY1ZGE2ZTZkYWE4YzEuLmZjYThmMTFkYzYyYjZiYjYw
MDZhZjcxMWQ4YzI0MjcxNGEyYTY5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBF
TkFCTEUoV0VCR1BVKQogCi0jaW1wb3J0ICJHUFVEZXZpY2UuaCIKLSNpbXBvcnQgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlci5oCmluZGV4IGQ2N2I0YWZkNDVhY2U3NjQ3YjA0YjBiMTVjNDM3MzFlNzA1
ZjAzNDYuLjcyNzNhMmM0Y2M1ZDUwYWNlMzZmZTRmOGJkZDgwMGMxNGJhNjQ0Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxBcnJheUJ1ZmZl
cj4gY29udGVudHMoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JU
IE1UTEJ1ZmZlciogcGxhdGZvcm1CdWZmZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBNVExCdWZm
ZXIgKnBsYXRmb3JtQnVmZmVyKCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYTBhZGMzNjI2YTNjYWI0NmRmNjdhOGMxZWQxYmQ5ZDkxMjA1NDRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
R1BVQ29tbWFuZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQ
VUNvbW1hbmRRdWV1ZS5oIgorI2luY2x1ZGUgIkdQVURldmljZS5oIgorI2luY2x1ZGUgIkdQVVJl
bmRlckNvbW1hbmRFbmNvZGVyLmgiCisjaW5jbHVkZSAiR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRy
PEdQVUNvbW1hbmRCdWZmZXI+IEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZShHUFVDb21tYW5kUXVl
dWUqIHF1ZXVlKQoreworICAgIFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBidWZmZXIgPSBhZG9w
dFJlZihuZXcgR1BVQ29tbWFuZEJ1ZmZlcihxdWV1ZSkpOworICAgIHJldHVybiBidWZmZXI7Cit9
CisKK0dQVUNvbW1hbmRCdWZmZXI6On5HUFVDb21tYW5kQnVmZmVyKCkKK3sKKyAgICBMT0coV2Vi
R1BVLCAiR1BVQ29tbWFuZEJ1ZmZlcjo6fkdQVUNvbW1hbmRCdWZmZXIoKSIpOworfQorCit2b2lk
IEdQVUNvbW1hbmRCdWZmZXI6OmNvbW1pdCgpCit7Cit9CisKK1JlZlB0cjxHUFVSZW5kZXJDb21t
YW5kRW5jb2Rlcj4gR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlUmVuZGVyQ29tbWFuZEVuY29kZXIo
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IqIGRlc2NyaXB0b3IpCit7CisgICAgcmV0dXJuIEdQVVJl
bmRlckNvbW1hbmRFbmNvZGVyOjpjcmVhdGUodGhpcywgZGVzY3JpcHRvcik7Cit9CisKKyNpZiAh
UExBVEZPUk0oQ09DT0EpCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OnByZXNlbnREcmF3YWJsZShH
UFVEcmF3YWJsZSopCit7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tbWFuZEJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhY2Q3NTQzOWYyYjIyZjhmNjQ5ZWE2ZmUy
MGUzZjAzYjBmMDIyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTVRMQ29tbWFuZEJ1ZmZlcjsKKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVUNvbW1hbmRRdWV1ZTsKK2NsYXNzIEdQVURyYXdh
YmxlOworY2xhc3MgR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI7CitjbGFzcyBHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvcjsKKworY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUNvbW1hbmRCdWZmZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbW1h
bmRCdWZmZXI+IGNyZWF0ZShHUFVDb21tYW5kUXVldWUqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+
R1BVQ29tbWFuZEJ1ZmZlcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXQoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXNlbnREcmF3YWJsZShHUFVEcmF3YWJsZSopOwor
CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyPiBjcmVh
dGVSZW5kZXJDb21tYW5kRW5jb2RlcihHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciopOworCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMQ29tbWFuZEJ1ZmZlciAqcGxh
dGZvcm1Db21tYW5kQnVmZmVyKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHUFVDb21tYW5k
QnVmZmVyKEdQVUNvbW1hbmRRdWV1ZSopOworICAgIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFJldGFpblB0cjxNVExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXI7CisjZW5kaWYKK307
CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kUXVldWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRRdWV1ZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWUzNTdiMmFjMDgxMzMxZDdmNTEyNjQwZTkyYjhkMjljMmIxOTVlNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21t
YW5kUXVldWUuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR1BVQ29t
bWFuZFF1ZXVlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVQ29tbWFu
ZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkdQVURldmljZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BVQ29tbWFuZFF1ZXVlPiBHUFVDb21t
YW5kUXVldWU6OmNyZWF0ZShHUFVEZXZpY2UqIGRldmljZSkKK3sKKyAgICBSZWZQdHI8R1BVQ29t
bWFuZFF1ZXVlPiBxdWV1ZSA9IGFkb3B0UmVmKG5ldyBHUFVDb21tYW5kUXVldWUoZGV2aWNlKSk7
CisgICAgcmV0dXJuIHF1ZXVlOworfQorCitHUFVDb21tYW5kUXVldWU6On5HUFVDb21tYW5kUXVl
dWUoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVDb21tYW5kUXVldWU6On5HUFVDb21tYW5kUXVl
dWUoKSIpOworfQorCitSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZFF1ZXVlOjpj
cmVhdGVDb21tYW5kQnVmZmVyKCkKK3sKKyAgICByZXR1cm4gR1BVQ29tbWFuZEJ1ZmZlcjo6Y3Jl
YXRlKHRoaXMpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorU3RyaW5nIEdQVUNvbW1hbmRR
dWV1ZTo6bGFiZWwoKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCit2
b2lkIEdQVUNvbW1hbmRRdWV1ZTo6c2V0TGFiZWwoY29uc3QgU3RyaW5nJikKK3sKK30KKyNlbmRp
ZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRRdWV1ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRRdWV1ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJhMTllNzI1MGZhYmIxYjg1ZTE3M2E3YzM2MWY5YjhmZTkwZGM4ZGQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZFF1
ZXVlLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lm
IFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBNVExDb21tYW5kUXVldWU7CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVDb21tYW5kQnVmZmVyOworY2xhc3MgR1BV
RGV2aWNlOworCitjbGFzcyBHUFVDb21tYW5kUXVldWUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVD
b21tYW5kUXVldWU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbW1hbmRRdWV1
ZT4gY3JlYXRlKEdQVURldmljZSopOworICAgIFdFQkNPUkVfRVhQT1JUIH5HUFVDb21tYW5kUXVl
dWUoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBsYWJlbCgpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJik7CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gY3JlYXRlQ29tbWFuZEJ1ZmZlcigpOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMQ29tbWFuZFF1ZXVl
ICpwbGF0Zm9ybUNvbW1hbmRRdWV1ZSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR1BVQ29t
bWFuZFF1ZXVlKEdQVURldmljZSopOworICAgIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJl
dGFpblB0cjxNVExDb21tYW5kUXVldWU+IG1fY29tbWFuZFF1ZXVlOworI2VuZGlmCit9OworICAg
IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGVwdGhTdGVuY2lsRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyYzY1YzE2NzE4YjU4ZWRhNjFjMzczMGMyYWE1MDBm
YTc3Y2YwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaCIKKworI2lmIEVO
QUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxHUFVEZXB0aFN0ZW5jaWxEZXNj
cmlwdG9yPiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpjcmVhdGUoKQoreworICAgIFJlZlB0
cjxHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yPiBkZXNjcmlwdG9yID0gYWRvcHRSZWYobmV3IEdQ
VURlcHRoU3RlbmNpbERlc2NyaXB0b3IoKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9CisK
K0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6On5HUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yKCkK
K3sKKyAgICBMT0coV2ViR1BVLCAiR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6fkdQVURlcHRo
U3RlbmNpbERlc2NyaXB0b3IoKSIpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorYm9vbCBH
UFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpkZXB0aFdyaXRlRW5hYmxlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3I6OnNl
dERlcHRoV3JpdGVFbmFibGVkKGJvb2wpCit7Cit9CisKK0dQVUNvbXBhcmVGdW5jdGlvbiBHUFVE
ZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOjpkZXB0aENvbXBhcmVGdW5jdGlvbigpIGNvbnN0Cit7Cit9
CisKK3ZvaWQgR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjo6c2V0RGVwdGhDb21wYXJlRnVuY3Rp
b24oR1BVQ29tcGFyZUZ1bmN0aW9uKQoreworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OWM0NTMxZThmYTc3ZGMxOTlhMmY4N2MxMjRkYjE1YjFjZDM1ZmQxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3IuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVRW51bXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTVRMRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjsKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVURlcHRoU3RlbmNpbERlc2Ny
aXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yPiBjcmVh
dGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+R1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcigpOwor
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZXB0aFdyaXRlRW5hYmxlZCgpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVwdGhXcml0ZUVuYWJsZWQoYm9vbCk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBHUFVDb21wYXJlRnVuY3Rpb24gZGVwdGhDb21wYXJlRnVuY3Rpb24oKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlcHRoQ29tcGFyZUZ1bmN0aW9uKEdQ
VUNvbXBhcmVGdW5jdGlvbik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXRUJDT1JFX0VY
UE9SVCBNVExEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yICpwbGF0Zm9ybURlcHRoU3RlbmNpbERlc2Ny
aXB0b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0
b3IoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2ls
RGVzY3JpcHRvcj4gbV9kZXB0aFN0ZW5jaWxEZXNjcmlwdG9yOworI2VuZGlmCit9OworICAgIAor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42OTY1ZDlkZmMxY2MzODEwMzIzYjE5MjQ2ZDdiNzc5MGUyZTRiYzEwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
cHRoU3RlbmNpbFN0YXRlLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVk
ZSAiR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVURldmljZS5oIgor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BV
RGVwdGhTdGVuY2lsU3RhdGU+IEdQVURlcHRoU3RlbmNpbFN0YXRlOjpjcmVhdGUoR1BVRGV2aWNl
KiBkZXZpY2UsIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IqIGRlc2NyaXB0b3IpCit7CisgICAg
UmVmUHRyPEdQVURlcHRoU3RlbmNpbFN0YXRlPiBzdGF0ZSA9IGFkb3B0UmVmKG5ldyBHUFVEZXB0
aFN0ZW5jaWxTdGF0ZShkZXZpY2UsIGRlc2NyaXB0b3IpKTsKKyAgICByZXR1cm4gc3RhdGU7Cit9
CisKK0dQVURlcHRoU3RlbmNpbFN0YXRlOjp+R1BVRGVwdGhTdGVuY2lsU3RhdGUoKQoreworICAg
IExPRyhXZWJHUFUsICJHUFVEZXB0aFN0ZW5jaWxTdGF0ZTo6fkdQVURlcHRoU3RlbmNpbFN0YXRl
KCkiKTsKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK1N0cmluZyBHUFVEZXB0aFN0ZW5jaWxT
dGF0ZTo6bGFiZWwoKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCit2
b2lkIEdQVURlcHRoU3RlbmNpbFN0YXRlOjpzZXRMYWJlbChjb25zdCBTdHJpbmcmKQoreworfQor
I2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGVwdGhTdGVuY2lsU3RhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXB0aFN0ZW5jaWxT
dGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk4ZDQwMjg0YWY2M2FjNTBhMTg4ZjA2ZWUzYmU5YjNlNDNhNmY1
ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRGVwdGhTdGVuY2lsU3RhdGUuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE1UTERlcHRo
U3RlbmNpbFN0YXRlOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BV
RGV2aWNlOworY2xhc3MgR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvcjsKKworY2xhc3MgR1BVRGVw
dGhTdGVuY2lsU3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXB0aFN0ZW5jaWxTdGF0ZT4g
eworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BVRGVwdGhTdGVuY2lsU3RhdGU+IGNyZWF0
ZShHUFVEZXZpY2UqLCBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yKik7CisgICAgV0VCQ09SRV9F
WFBPUlQgfkdQVURlcHRoU3RlbmNpbFN0YXRlKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgbGFiZWwoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExhYmVsKGNvbnN0
IFN0cmluZyYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRM
RGVwdGhTdGVuY2lsU3RhdGUgKnBsYXRmb3JtRGVwdGhTdGVuY2lsU3RhdGUoKTsKKyNlbmRpZgor
Citwcml2YXRlOgorICAgIEdQVURlcHRoU3RlbmNpbFN0YXRlKEdQVURldmljZSosIEdQVURlcHRo
U3RlbmNpbERlc2NyaXB0b3IqKTsKKyAgICAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRh
aW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+IG1fZGVwdGhTdGVuY2lsU3RhdGU7CisjZW5kaWYK
K307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKaW5kZXggZmUzZTZi
OGQ4ZGRkOTNmMWJmZGZiZTdlZDQwNDA3MzFhYmUyNmUwMS4uYTE1NjUyMjdlYzA2YzE3YWZmYTI5
NjlhYzRjNjY3YThiMjdiNWJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpZiBFTkFCTEUo
V0VCR1BVKQogCiAjaW5jbHVkZSAiR1BVQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVQ29tbWFuZFF1
ZXVlLmgiCisjaW5jbHVkZSAiR1BVRHJhd2FibGUuaCIKICNpbmNsdWRlICJHUFVMaWJyYXJ5Lmgi
CiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVEZXNjcmlwdG9y
LmgiCkBAIC01Niw2ICs1OCwxMSBAQCBHUFVEZXZpY2U6On5HUFVEZXZpY2UoKQogICAgIExPRyhX
ZWJHUFUsICJHUFVEZXZpY2U6On5HUFVEZXZpY2UoKSIpOwogfQogCitSZWZQdHI8R1BVQ29tbWFu
ZFF1ZXVlPiBHUFVEZXZpY2U6OmNyZWF0ZUNvbW1hbmRRdWV1ZSgpCit7CisgICAgcmV0dXJuIEdQ
VUNvbW1hbmRRdWV1ZTo6Y3JlYXRlKHRoaXMpOworfQorCiBSZWZQdHI8R1BVTGlicmFyeT4gR1BV
RGV2aWNlOjpjcmVhdGVMaWJyYXJ5KGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSkKIHsKICAgICBy
ZXR1cm4gR1BVTGlicmFyeTo6Y3JlYXRlKHRoaXMsIHNvdXJjZUNvZGUpOwpAQCAtNzEsNiArNzgs
MTEgQEAgUmVmUHRyPEdQVVRleHR1cmU+IEdQVURldmljZTo6Y3JlYXRlVGV4dHVyZShHUFVUZXh0
dXJlRGVzY3JpcHRvciogZGVzY3JpcHRvcikKICAgICByZXR1cm4gR1BVVGV4dHVyZTo6Y3JlYXRl
KHRoaXMsIGRlc2NyaXB0b3IpOwogfQogCitSZWZQdHI8R1BVRHJhd2FibGU+IEdQVURldmljZTo6
Z2V0RnJhbWVidWZmZXIoKQoreworICAgIHJldHVybiBHUFVEcmF3YWJsZTo6Y3JlYXRlKHRoaXMp
OworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCiBHUFVEZXZpY2U6OkdQVURldmljZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5k
ZXggZThjYTNhNjhkODE3MGM2ZDVmMDU0NmQ4NTYwYjlkMGFjMmYyY2UzNS4uN2MzZTNhYmQ5ZjAz
YTM5NDRlMjI2ZWEyMGJhOWRmZjA0NjRlZWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaApAQCAtNDcsMTAgKzQ3LDggQEAgdHlwZWRl
ZiB2b2lkIFBsYXRmb3JtR1BVRGV2aWNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBH
UFVCdWZmZXI7Ci0vLyBGSVhNRTogV2ViR1BVIC0gU3R1YiBpbXBsZW1lbnRhdGlvbiAtIG5vdCBp
bXBsZW1lbnRlZCB5ZXQuCiBjbGFzcyBHUFVDb21tYW5kUXVldWU7CiBjbGFzcyBHUFVEcmF3YWJs
ZTsKLS8vIEZJWE1FOiBXZWJHUFUgLSBFbmQgc3R1Yi4KIGNsYXNzIEdQVUxpYnJhcnk7CiBjbGFz
cyBHUFVUZXh0dXJlOwogY2xhc3MgR1BVVGV4dHVyZURlc2NyaXB0b3I7CkBAIC02OSwxNSArNjcs
MTQgQEAgcHVibGljOgogCiAgICAgV2ViR1BVTGF5ZXIqIGxheWVyKCkgeyByZXR1cm4gbV9sYXll
ci5nZXQoKTsgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQVUNvbW1hbmRRdWV1ZT4g
Y3JlYXRlQ29tbWFuZFF1ZXVlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQVUxpYnJh
cnk+IGNyZWF0ZUxpYnJhcnkoY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWZQdHI8R1BVQnVmZmVyPiBjcmVhdGVCdWZmZXJGcm9tRGF0YShBcnJheUJ1ZmZl
clZpZXcqIGRhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxHUFVUZXh0dXJlPiBjcmVh
dGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yKik7CiAKLSAgICAvLyBGSVhNRTogV2ViR1BV
IC0gU3R1YiBpbXBsZW1lbnRhdGlvbiAtIG5vdCBpbXBsZW1lbnRlZCB5ZXQuCi0gICAgR1BVQ29t
bWFuZFF1ZXVlKiBjcmVhdGVDb21tYW5kUXVldWUoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAg
R1BVRHJhd2FibGUqIGdldEZyYW1lYnVmZmVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFJl
ZlB0cjxHUFVEcmF3YWJsZT4gZ2V0RnJhbWVidWZmZXIoKTsKKwogICAgIHZvaWQgbWFya0xheWVy
Q29tcG9zaXRlZCgpIHsgfQotICAgIC8vIEZJWE1FOiBXZWJHUFUgLSBFbmQgc3R1Yi4KIAogcHJp
dmF0ZToKICAgICBHUFVEZXZpY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEcmF3YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRHJhd2FibGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2M2E3NWQxYjE4MzZl
NmI0ZTE0OTk2NmMwYTg4NzA0OWEwY2E0YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRHJhd2FibGUuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR1BVRHJhd2FibGUuaCIKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVRGV2aWNl
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0
cjxHUFVEcmF3YWJsZT4gR1BVRHJhd2FibGU6OmNyZWF0ZShHUFVEZXZpY2UqIGRldmljZSkKK3sK
KyAgICBSZWZQdHI8R1BVRHJhd2FibGU+IGRyYXdhYmxlID0gYWRvcHRSZWYobmV3IEdQVURyYXdh
YmxlKGRldmljZSkpOworICAgIHJldHVybiBkcmF3YWJsZTsKK30KKworR1BVRHJhd2FibGU6On5H
UFVEcmF3YWJsZSgpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVURyYXdhYmxlOjp+R1BVRHJhd2Fi
bGUoKSIpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBHUFVEcmF3YWJsZTo6cmVs
ZWFzZSgpCit7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEcmF3
YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURyYXdhYmxl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2NhMmJjZjAwMTQ1NDA2MzNkNDZlNzEyNzExYmVhM2Y3Yjk4ZWJhMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEcmF3YWJsZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xB
U1MgTVRMRHJhd2FibGU7CitPQkpDX0NMQVNTIE1UTFRleHR1cmU7CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVUZXh0dXJlOworY2xhc3MgR1BVRGV2aWNlOworCitj
bGFzcyBHUFVEcmF3YWJsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVURyYXdhYmxlPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVEcmF3YWJsZT4gY3JlYXRlKEdQVURldmljZSopOwor
ICAgIFdFQkNPUkVfRVhQT1JUIH5HUFVEcmF3YWJsZSgpOworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZWxlYXNlKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXRUJDT1JFX0VYUE9S
VCBNVExEcmF3YWJsZSAqcGxhdGZvcm1EcmF3YWJsZSgpOworICAgIC8vIEZJWE1FOiBXZWJHUFUg
LSBub3QgYWxsIGRyYXdhYmxlcyBzaG91bGQgaGF2ZSB0aGlzLiBPbmx5IHRoZSBmcmFtZWJ1ZmZl
ci4KKyAgICBXRUJDT1JFX0VYUE9SVCBNVExUZXh0dXJlICpwbGF0Zm9ybVRleHR1cmUoKTsKKyNl
bmRpZgorCitwcml2YXRlOgorICAgIEdQVURyYXdhYmxlKEdQVURldmljZSopOworICAgIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIFJldGFpblB0cjxNVExEcmF3YWJsZT4gbV9kcmF3YWJsZTsK
KyNlbmRpZgorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVudW1zLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRW51bXMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYWNlNjJkNTEwZjU3ZDg3Y2FmYWMxM2RjMGI3ZWMyYTMxNjgzZGViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVudW1zLmgKQEAg
LTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIEdQVUNvbXBhcmVGdW5jdGlvbiB7CisgICAgTmV2ZXIgPSAwLAor
ICAgIExlc3MgPSAxLAorICAgIEVxdWFsID0gMiwKKyAgICBMZXNzRXF1YWwgPSAzLAorICAgIEdy
ZWF0ZXIgPSA0LAorICAgIE5vdEVxdWFsID0gNSwKKyAgICBHcmVhdGVyRXF1YWwgPSA2LAorICAg
IEFsd2F5cyA9IDcKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUZ1bmN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRnVuY3Rpb24uaAppbmRl
eCBmY2VjMzFkM2JhNTkyNjJkZWI0MDczMzI5Y2RjM2M3NDdiY2JiZDliLi43ZDdmZGYxNWNmMjEx
NDBjMzUyNjE3NTQxNGIxZmVmM2Y0NWViZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRnVuY3Rpb24uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG5hbWUoKSBjb25zdDsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIE1UTEZ1bmN0aW9uKiBwbGF0Zm9ybUZ1bmN0
aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgTVRMRnVuY3Rpb24gKnBsYXRmb3JtRnVuY3Rpb24o
KTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUxpYnJhcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUxpYnJhcnkuY3BwCmluZGV4IGVhODQ1Y2NkZWIxN2FhNDQ0YzlkMmNh
ZjM1ODlmZjM5MTlmODNlYzguLjE3OTM5YzAyNzA2NzI5YjdmZDNkOWM0ZmRiM2FiNjc2Y2NlMzVh
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVM
aWJyYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
TGlicmFyeS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNp
bXBvcnQgIkdQVURldmljZS5oIgotI2ltcG9ydCAiR1BVRnVuY3Rpb24uaCIKLSNpbXBvcnQgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJHUFVGdW5jdGlvbi5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVTGlicmFyeS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUxpYnJhcnkuaAppbmRleCA3
ODg4N2FkNGQzNGIxYTU2N2EwOGE3MTkwNmI2NGY4ZjNmMTEyZGY2Li45ODViOTZlYjBiNDlmYzBk
MmRiYjljY2YzZDJlZjhmOTA2M2UwN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVTGlicmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVMaWJyYXJ5LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxHUFVGdW5jdGlvbj4gZnVuY3Rpb25XaXRoTmFtZShj
b25zdCBTdHJpbmcmKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JU
IE1UTExpYnJhcnkqIHBsYXRmb3JtTGlicmFyeSgpOworICAgIFdFQkNPUkVfRVhQT1JUIE1UTExp
YnJhcnkgKnBsYXRmb3JtTGlicmFyeSgpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyQ29tbWFuZEVu
Y29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
ckNvbW1hbmRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDE5MDQ0ZjhmM2U0NTIwMDZiN2UxNDNi
MDk1M2ZjZGEyZTlhYzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDc2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1
ZGUgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcj4gR1BV
UmVuZGVyQ29tbWFuZEVuY29kZXI6OmNyZWF0ZShHUFVDb21tYW5kQnVmZmVyKiBidWZmZXIsIEdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yKiBkZXNjcmlwdG9yKQoreworICAgIFJlZlB0cjxHUFVSZW5k
ZXJDb21tYW5kRW5jb2Rlcj4gZW5jb2RlciA9IGFkb3B0UmVmKG5ldyBHUFVSZW5kZXJDb21tYW5k
RW5jb2RlcihidWZmZXIsIGRlc2NyaXB0b3IpKTsKKyAgICByZXR1cm4gZW5jb2RlcjsKK30KKwor
R1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6On5HUFVSZW5kZXJDb21tYW5kRW5jb2RlcigpCit7Cisg
ICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyOjp+R1BVUmVuZGVyQ29tbWFu
ZEVuY29kZXIoKSIpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBHUFVSZW5kZXJD
b21tYW5kRW5jb2Rlcjo6c2V0UmVuZGVyUGlwZWxpbmVTdGF0ZShHUFVSZW5kZXJQaXBlbGluZVN0
YXRlKikKK3sKK30KKwordm9pZCBHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcjo6c2V0RGVwdGhTdGVu
Y2lsU3RhdGUoR1BVRGVwdGhTdGVuY2lsU3RhdGUqKQoreworfQorCit2b2lkIEdQVVJlbmRlckNv
bW1hbmRFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoR1BVQnVmZmVyKiwgdW5zaWduZWQsIHVuc2ln
bmVkKQoreworfQorCit2b2lkIEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyOjpzZXRGcmFnbWVudEJ1
ZmZlcihHUFVCdWZmZXIqLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgR1BVUmVu
ZGVyQ29tbWFuZEVuY29kZXI6OmRyYXdQcmltaXRpdmVzKHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5z
aWduZWQpCit7Cit9CisKK3ZvaWQgR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6OmVuZEVuY29kaW5n
KCkKK3sKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlckNv
bW1hbmRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyQ29tbWFuZEVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzhlZGQyYWJlYjNkODBlYmE2ZjQ0
ZGNkYmQ2ZDY4OGNiY2FkMWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBNVExSZW5kZXJDb21tYW5kRW5jb2Rl
cjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVUJ1ZmZlcjsKK2Ns
YXNzIEdQVUNvbW1hbmRCdWZmZXI7CitjbGFzcyBHUFVEZXB0aFN0ZW5jaWxTdGF0ZTsKK2NsYXNz
IEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZTsK
KworY2xhc3MgR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVS
ZW5kZXJDb21tYW5kRW5jb2Rlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BVUmVu
ZGVyQ29tbWFuZEVuY29kZXI+IGNyZWF0ZShHUFVDb21tYW5kQnVmZmVyKiwgR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+R1BVUmVuZGVyQ29tbWFuZEVuY29k
ZXIoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVuZGVyUGlwZWxpbmVTdGF0ZShH
UFVSZW5kZXJQaXBlbGluZVN0YXRlKik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXB0
aFN0ZW5jaWxTdGF0ZShHUFVEZXB0aFN0ZW5jaWxTdGF0ZSopOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0VmVydGV4QnVmZmVyKEdQVUJ1ZmZlciosIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgaW5kZXgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RnJhZ21lbnRCdWZmZXIoR1BV
QnVmZmVyKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBpbmRleCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3UHJpbWl0aXZlcyh1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgY291bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5kRW5jb2RpbmcoKTsK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdFQkNPUkVfRVhQT1JUIE1UTFJlbmRlckNvbW1h
bmRFbmNvZGVyICpwbGF0Zm9ybVJlbmRlckNvbW1hbmRFbmNvZGVyKCk7CisjZW5kaWYKKworcHJp
dmF0ZToKKyAgICBHUFVSZW5kZXJDb21tYW5kRW5jb2RlcihHUFVDb21tYW5kQnVmZmVyKiwgR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IqKTsKKyAgICAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBS
ZXRhaW5QdHI8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IG1fcmVuZGVyQ29tbWFuZEVuY29kZXI7
CisjZW5kaWYKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNz
QXR0YWNobWVudERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTk5ZTM3NzI2MjNjYjE3YjRhMWYwZjcyNmVhZGUzY2I5ZDY4YWJhNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzQXR0
YWNobWVudERlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6
On5HUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IoKQoreworICAgIExPRyhXZWJHUFUs
ICJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6On5HUFVSZW5kZXJQYXNzQXR0YWNo
bWVudERlc2NyaXB0b3IoKSIpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorR1BVUmVuZGVy
UGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0
b3IoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0
b3I6OkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcigpIik7Cit9CisKK3Vuc2lnbmVk
IGxvbmcgR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpsb2FkQWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3I6OnNldExvYWRBY3Rpb24odW5zaWduZWQgbG9uZykKK3sKK30KKwordW5zaWduZWQg
bG9uZyBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I6OnN0b3JlQWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3I6OnNldFN0b3JlQWN0aW9uKHVuc2lnbmVkIGxvbmcpCit7Cit9CisKK3ZvaWQgR1BV
UmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yOjpzZXRUZXh0dXJlKFJlZlB0cjxHUFVUZXh0
dXJlPikKK3sKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNkNDg4NTY5ZDBhY2E5NTQ4YWYyMWFjZDVjNWVmZWE4OGY0ZGQ0OTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
T0JKQ19DTEFTUyBNVExSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I7CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVUZXh0dXJlOworCitjbGFzcyBHUFVSZW5k
ZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVSZW5kZXJQ
YXNzQXR0YWNobWVudERlc2NyaXB0b3I+IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCB+
R1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yKCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB1bnNpZ25lZCBsb25nIGxvYWRBY3Rpb24oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldExvYWRBY3Rpb24odW5zaWduZWQgbG9uZyk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB1
bnNpZ25lZCBsb25nIHN0b3JlQWN0aW9uKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTdG9yZUFjdGlvbih1bnNpZ25lZCBsb25nKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VGV4dHVyZShSZWZQdHI8R1BVVGV4dHVyZT4pOworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgV0VCQ09SRV9FWFBPUlQgTVRMUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yICpw
bGF0Zm9ybVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcigpOworI2VuZGlmCisKK3Byb3Rl
Y3RlZDoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3IoTVRMUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yICopOworICAgIFJldGFp
blB0cjxNVExSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3I+IG1fcmVuZGVyUGFzc0F0dGFj
aG1lbnREZXNjcmlwdG9yOworI2Vsc2UKKyAgICBHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2Ny
aXB0b3IoKTsKKyNlbmRpZgorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRv
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWM3MTUyZTNlYmUyZTA0MDcyZjBhNDBlN2QyNWI3ZjExNGY0NTcy
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVz
Y3JpcHRvci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVJlbmRlclBh
c3NBdHRhY2htZW50RGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRGT1JNKENPQ09BKQorUmVmUHRyPEdQVVJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvcjo6Y3JlYXRlKCkKK3sKKyAgICBSZWZQdHI8R1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudERlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IoKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9
CisKK0dQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvcigpCisgICAgOiBHUFVSZW5kZXJQYXNzQXR0YWNobWVu
dERlc2NyaXB0b3IoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3Io
KSIpOworfQorI2VuZGlmCisKK0dQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
Ojp+R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IoKQoreworICAgIExPRyhX
ZWJHUFUsICJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6fkdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKCkiKTsKK30KKworI2lmICFQTEFURk9STShD
T0NPQSkKK1ZlY3RvcjxmbG9hdD4gR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0
b3I6OmNsZWFyQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBWZWN0b3I8ZmxvYXQ+KCk7Cit9
CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnNldENsZWFy
Q29sb3IoY29uc3QgVmVjdG9yPGZsb2F0PiYpCit7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnREZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwN2FiOTM3YjlhNjhmZTU4ZTc4MzA5
MjQ2MjA0NGVhMDk1MmU4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5o
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJH
UFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpD
X0NMQVNTIE1UTFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yOworI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dERlc2NyaXB0b3IgOiBwdWJsaWMgR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yIHsK
K3B1YmxpYzoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiBjcmVhdGUoTVRMUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudERlc2NyaXB0b3IgKik7CisjZWxzZQorICAgIHN0YXRpYyBSZWZQdHI8R1BVUmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I+IGNyZWF0ZSgpOworI2VuZGlmCisgICAg
V0VCQ09SRV9FWFBPUlQgfkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKCk7
CisKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8ZmxvYXQ+IGNsZWFyQ29sb3IoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENsZWFyQ29sb3IoY29uc3QgVmVjdG9yPGZsb2F0
PiYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMUmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgKnBsYXRmb3JtUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudERlc2NyaXB0b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIEdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKE1UTFJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yICopOworI2Vsc2UKKyAgICBHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcigpOworI2VuZGlmCit9OworICAgIAorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NE
ZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTRlNDU3ZDQ3NjA2NWIw
OWMyMzZlNTM5MjllNzM5MDc0YzE2YTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNj
cmlwdG9yLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVJlbmRl
clBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCitSZWZQdHI8R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I+IEdQVVJl
bmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yOjpjcmVhdGUoKQoreworICAgIFJlZlB0
cjxHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9IGFk
b3B0UmVmKG5ldyBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvcigpKTsKKyAg
ICByZXR1cm4gZGVzY3JpcHRvcjsKK30KKworR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERl
c2NyaXB0b3I6OkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKCkKKyAgICA6
IEdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvcigpCit7CisgICAgTE9HKFdlYkdQVSwg
IkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yOjpHUFVSZW5kZXJQYXNzRGVw
dGhBdHRhY2htZW50RGVzY3JpcHRvcigpIik7Cit9CisjZW5kaWYKKworR1BVUmVuZGVyUGFzc0Rl
cHRoQXR0YWNobWVudERlc2NyaXB0b3I6On5HUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVz
Y3JpcHRvcigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1l
bnREZXNjcmlwdG9yOjp+R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IoKSIp
OworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorZG91YmxlIEdQVVJlbmRlclBhc3NEZXB0aEF0
dGFjaG1lbnREZXNjcmlwdG9yOjpjbGVhckRlcHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKwordm9pZCBHUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvcjo6c2V0Q2xl
YXJEZXB0aChkb3VibGUpCit7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNj
cmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIwZWNkNDA3NjFlZGZmMmYyN2RjNjlmOTUwMGY1OWQ5MjNl
OWM0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVSZW5kZXJQYXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEs
NjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVSZW5kZXJQYXNz
QXR0YWNobWVudERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE1UTFJl
bmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yOworI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3Ig
OiBwdWJsaWMgR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBhc3NEZXB0aEF0
dGFjaG1lbnREZXNjcmlwdG9yPiBjcmVhdGUoTVRMUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERl
c2NyaXB0b3IgKik7CisjZWxzZQorICAgIHN0YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGFzc0RlcHRo
QXR0YWNobWVudERlc2NyaXB0b3I+IGNyZWF0ZSgpOworI2VuZGlmCisgICAgV0VCQ09SRV9FWFBP
UlQgfkdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKCk7CisKKyAgICBkb3Vi
bGUgY2xlYXJEZXB0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0Q2xlYXJEZXB0aChkb3VibGUpOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMUmVuZGVyUGFzc0Rl
cHRoQXR0YWNobWVudERlc2NyaXB0b3IgKnBsYXRmb3JtUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVu
dERlc2NyaXB0b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIEdQVVJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yKE1UTFJlbmRlclBhc3NE
ZXB0aEF0dGFjaG1lbnREZXNjcmlwdG9yICopOworI2Vsc2UKKyAgICBHUFVSZW5kZXJQYXNzRGVw
dGhBdHRhY2htZW50RGVzY3JpcHRvcigpOworI2VuZGlmCit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mOWY5OTYzZGFlNDk1MzY2Y2UxNWE5NThjN2JmMGE1ZDRkOGViOWY2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBh
c3NEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVk
ZSAiR1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPEdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yPiBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjo6Y3JlYXRlKCkKK3sKKyAgICBSZWZQ
dHI8R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBhZG9wdFJlZihuZXcgR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IoKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9CisKK0dQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yOjp+R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IoKQoreworICAg
IExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjo6fkdQVVJlbmRlclBhc3NEZXNj
cmlwdG9yKCkiKTsKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK1JlZlB0cjxHUFVSZW5kZXJQ
YXNzRGVwdGhBdHRhY2htZW50RGVzY3JpcHRvcj4gR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmRl
cHRoQXR0YWNobWVudCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzZhYzc5YjZlYTIzMzBiZTBiYTA5MTFhZDBmMTdiYjA5NzU3ZTA4MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE1UTFJlbmRlclBhc3NEZXNjcmlw
dG9yOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVUmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3I7CitjbGFzcyBHUFVSZW5kZXJQYXNzRGVwdGhBdHRh
Y2htZW50RGVzY3JpcHRvcjsKKworY2xhc3MgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcj4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGNyZWF0ZSgpOworICAgIFdFQkNP
UkVfRVhQT1JUIH5HUFVSZW5kZXJQYXNzRGVzY3JpcHRvcigpOworCisgICAgVmVjdG9yPFJlZlB0
cjxHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcj4+IGNvbG9yQXR0YWNobWVu
dHMoKTsKKyAgICBSZWZQdHI8R1BVUmVuZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I+
IGRlcHRoQXR0YWNobWVudCgpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9F
WFBPUlQgTVRMUmVuZGVyUGFzc0Rlc2NyaXB0b3IgKnBsYXRmb3JtUmVuZGVyUGFzc0Rlc2NyaXB0
b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yKCk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TVRMUmVuZGVyUGFzc0Rlc2Ny
aXB0b3I+IG1fcmVuZGVyUGFzc0Rlc2NyaXB0b3I7CisjZW5kaWYKKyAgICBSZWZQdHI8R1BVUmVu
ZGVyUGFzc0RlcHRoQXR0YWNobWVudERlc2NyaXB0b3I+IG1fZGVwdGhBdHRhY2htZW50OworfTsK
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YWY0MTE5ODdlMjQzZTMyZTFiY2IyNGY0NjYxNTQyZDNhYWIzNjI1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBp
cGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0
b3IuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQVVJlbmRlclBp
cGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6fkdQVVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBpcGVs
aW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6fkdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvcigpIik7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitHUFVSZW5k
ZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OkdQVVJlbmRlclBpcGVsaW5lQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvcigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBp
cGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjo6R1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0
dGFjaG1lbnREZXNjcmlwdG9yKCkiKTsKK30KKwordW5zaWduZWQgbG9uZyBHUFVSZW5kZXJQaXBl
bGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwordm9pZCBHUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERl
c2NyaXB0b3I6OnNldFBpeGVsRm9ybWF0KHVuc2lnbmVkIGxvbmcpCit7Cit9CisjZW5kaWYKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVu
dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWMx
YTcwNWQyNzkxM2I4ZTA4YTUyNzQ5YmJmYzg3OTM1NWUyNzU5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9STShDT0NP
QSkKK09CSkNfQ0xBU1MgTVRMUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
OworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVVGV4dHVyZTsKKwor
Y2xhc3MgR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yIDogcHVibGlj
IFJlZkNvdW50ZWQ8R1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiB7
CitwdWJsaWM6CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc3RhdGljIFJlZlB0cjxHUFVSZW5k
ZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I+IGNyZWF0ZShNVExSZW5kZXJQaXBl
bGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgKik7CisjZWxzZQorICAgIHN0YXRpYyBSZWZQ
dHI8R1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPiBjcmVhdGUoKTsK
KyNlbmRpZgorCisgICAgV0VCQ09SRV9FWFBPUlQgfkdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRh
Y2htZW50RGVzY3JpcHRvcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9uZyBw
aXhlbEZvcm1hdCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UGl4ZWxGb3Jt
YXQodW5zaWduZWQgbG9uZyk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXRUJDT1JFX0VY
UE9SVCBNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3IgKnBsYXRmb3Jt
UmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yKCk7CisjZW5kaWYKKworcHJv
dGVjdGVkOgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcihNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2Ny
aXB0b3IgKik7CisgICAgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50
RGVzY3JpcHRvcj4gbV9yZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3I7Cisj
ZWxzZQorICAgIEdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2htZW50RGVzY3JpcHRvcigpOwor
I2VuZGlmCit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzg5ODQyZDIwMzcy
ZjlmMWM4YjA0YzUxNjg1MzY5NDgyZGFiYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNw
cApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUZ1bmN0
aW9uLmgiCisjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlw
dG9yLmgiCisjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
PiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OmNyZWF0ZSgpCit7CisgICAgUmVmUHRyPEdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9IGFkb3B0UmVmKG5ldyBHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IoKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3I7Cit9CisK
K0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6fkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
cigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6fkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcigpIik7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0Ep
Cit1bnNpZ25lZCBsb25nIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6ZGVwdGhBdHRhY2ht
ZW50UGl4ZWxGb3JtYXQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OnNldERlcHRoQXR0YWNobWVudFBpeGVsRm9ybWF0
KHVuc2lnbmVkIGxvbmcpCit7Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
OjpzZXRWZXJ0ZXhGdW5jdGlvbihSZWZQdHI8R1BVRnVuY3Rpb24+KQoreworfQorCit2b2lkIEdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6c2V0RnJhZ21lbnRGdW5jdGlvbihSZWZQdHI8R1BV
RnVuY3Rpb24+KQoreworfQorCitWZWN0b3I8UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcj4+IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6Y29sb3JB
dHRhY2htZW50cygpCit7CisgICAgcmV0dXJuIFZlY3RvcjxSZWZQdHI8R1BVUmVuZGVyUGlwZWxp
bmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yPj4oKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMwMmYxZmMwYzhlYzAwNWU5YjIxZWVmOTQ4ODFkNjFkOTdlMzFjMmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUVudW1zLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorT0JK
Q19DTEFTUyBNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHUFVGdW5jdGlvbjsKK2NsYXNzIEdQVVJlbmRlclBpcGVsaW5l
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvcjsKKworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+
IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIH5HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGV4RnVuY3Rpb24oUmVmUHRy
PEdQVUZ1bmN0aW9uPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGcmFnbWVudEZ1bmN0
aW9uKFJlZlB0cjxHUFVGdW5jdGlvbj4pOworCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQg
bG9uZyBkZXB0aEF0dGFjaG1lbnRQaXhlbEZvcm1hdCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0RGVwdGhBdHRhY2htZW50UGl4ZWxGb3JtYXQodW5zaWduZWQgbG9uZyk7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lQ29sb3JB
dHRhY2htZW50RGVzY3JpcHRvcj4+IGNvbG9yQXR0YWNobWVudHMoKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVzZXQoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdFQkNPUkVf
RVhQT1JUIE1UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciAqcGxhdGZvcm1SZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvcigpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJldGFpblB0cjxNVExSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3I+IG1fcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOworI2VuZGlm
Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVTdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlw
ZWxpbmVTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZlZTM4Y2MyMTIwMjNmMjc1M2Q4ZjNjZGExNzk0
YWFkNWE0NWQwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZVN0YXRlLmNwcApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaCIKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lU3RhdGU+IEdQVVJlbmRlclBpcGVs
aW5lU3RhdGU6OmNyZWF0ZShHUFVEZXZpY2UqIGRldmljZSwgR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yKiBkZXNjcmlwdG9yKQoreworICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZVN0YXRl
PiBzdGF0ZSA9IGFkb3B0UmVmKG5ldyBHUFVSZW5kZXJQaXBlbGluZVN0YXRlKGRldmljZSwgZGVz
Y3JpcHRvcikpOworICAgIHJldHVybiBzdGF0ZTsKK30KKworR1BVUmVuZGVyUGlwZWxpbmVTdGF0
ZTo6fkdQVVJlbmRlclBpcGVsaW5lU3RhdGUoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVSZW5k
ZXJQaXBlbGluZVN0YXRlOjp+R1BVUmVuZGVyUGlwZWxpbmVTdGF0ZSgpIik7Cit9CisKKyNpZiAh
UExBVEZPUk0oQ09DT0EpCitTdHJpbmcgR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZTo6bGFiZWwoKSBj
b25zdAoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCit2b2lkIEdQVVJlbmRlclBp
cGVsaW5lU3RhdGU6OnNldExhYmVsKGNvbnN0IFN0cmluZyYpCit7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZVN0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNhN2E2M2QxYzY1MTNlYmI0OTc1YTU3MjhiMjhiZjc5YjdhM2Q1MmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVu
ZGVyUGlwZWxpbmVTdGF0ZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTVRMUmVuZGVyUGlwZWxp
bmVTdGF0ZTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVURldmlj
ZTsKK2NsYXNzIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjsKKworY2xhc3MgR1BVUmVuZGVy
UGlwZWxpbmVTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVJlbmRlclBpcGVsaW5lU3RhdGU+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lU3RhdGU+IGNy
ZWF0ZShHUFVEZXZpY2UqLCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IqKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB+R1BVUmVuZGVyUGlwZWxpbmVTdGF0ZSgpOworCisgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYWJl
bChjb25zdCBTdHJpbmcmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdFQkNPUkVfRVhQ
T1JUIE1UTFJlbmRlclBpcGVsaW5lU3RhdGUgKnBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTdGF0ZSgp
OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZShHUFVEZXZp
Y2UqLCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IqKTsKKyAgICAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gbV9yZW5kZXJQaXBl
bGluZVN0YXRlOworI2VuZGlmCit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
VGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4
dHVyZS5jcHAKaW5kZXggMWVmMjcwMzQ2MTg2YjJjYWE4NGE4M2FmMzA1N2VmYWU3ZTljOWVjMC4u
NDc3MTRjMTgwMzlhYWYzZWMyMGVhM2UwMGNhMjlhOGYxNmZiZWFiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmNwcApAQCAtMjgs
OCArMjgsOSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2ltcG9ydCAiR1BVRGV2aWNlLmgi
Ci0jaW1wb3J0ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAi
R1BVRHJhd2FibGUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzksNyArNDAsNyBAQCBSZWZQdHI8R1BVVGV4dHVyZT4gR1BVVGV4dHVyZTo6Y3Jl
YXRlKEdQVURldmljZSogZGV2aWNlLCBHUFVUZXh0dXJlRGVzY3JpcHRvciogZAogICAgIHJldHVy
biB0ZXh0dXJlOwogfQogCi1SZWZQdHI8R1BVVGV4dHVyZT4gR1BVVGV4dHVyZTo6Y3JlYXRlRnJv
bUV4aXN0aW5nVGV4dHVyZShHUFVUZXh0dXJlKiBvdGhlcikKK1JlZlB0cjxHUFVUZXh0dXJlPiBH
UFVUZXh0dXJlOjpjcmVhdGVGcm9tRHJhd2FibGUoR1BVRHJhd2FibGUqIG90aGVyKQogewogICAg
IFJlZlB0cjxHUFVUZXh0dXJlPiB0ZXh0dXJlID0gYWRvcHRSZWYobmV3IEdQVVRleHR1cmUob3Ro
ZXIpKTsKICAgICByZXR1cm4gdGV4dHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5oCmluZGV4IDhkNTQ4MTg0ZTA4OTExYzhiNGZjNWQy
MThmNTBiNmY1MzBmZmQwODEuLjI4OTRiNGVhZGMwZWRkNTUxZTAzOWJlZGExYzcxZjk4MzY1OTNk
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVU
ZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRl
eHR1cmUuaApAQCAtMzgsMjQgKzM4LDI2IEBAIE9CSkNfQ0xBU1MgTVRMVGV4dHVyZTsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVRGV2aWNlOworY2xhc3MgR1BVRHJhd2FibGU7CiBj
bGFzcyBHUFVUZXh0dXJlRGVzY3JpcHRvcjsKIAogY2xhc3MgR1BVVGV4dHVyZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEdQVVRleHR1cmU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVRl
eHR1cmU+IGNyZWF0ZShHUFVEZXZpY2UqLCBHUFVUZXh0dXJlRGVzY3JpcHRvciopOwotICAgIHN0
YXRpYyBSZWZQdHI8R1BVVGV4dHVyZT4gY3JlYXRlRnJvbUV4aXN0aW5nVGV4dHVyZShHUFVUZXh0
dXJlKik7CisgICAgc3RhdGljIFJlZlB0cjxHUFVUZXh0dXJlPiBjcmVhdGVGcm9tRHJhd2FibGUo
R1BVRHJhd2FibGUqKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIH5HUFVUZXh0dXJlKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBsb25nIHdpZHRoKCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdW5zaWduZWQgbG9uZyBoZWlnaHQoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIFdFQkNPUkVfRVhQT1JUIE1UTFRleHR1cmUqIHBsYXRmb3JtVGV4dHVyZSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIE1UTFRleHR1cmUgKnBsYXRmb3JtVGV4dHVyZSgpOwogI2VuZGlm
CiAKIHByaXZhdGU6CiAgICAgR1BVVGV4dHVyZShHUFVEZXZpY2UqLCBHUFVUZXh0dXJlRGVzY3Jp
cHRvciopOwotICAgIEdQVVRleHR1cmUoR1BVVGV4dHVyZSopOworICAgIEdQVVRleHR1cmUoR1BV
RHJhd2FibGUqKTsKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TVRM
VGV4dHVyZT4gbV90ZXh0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKaW5kZXggZmVkNGU4
MTMwZTgxMjI5N2UwYmE5ZDkzNWE3ZDBkM2VkYWM2ZjExNi4uODBjZTEyZGQ3ZWYwYzhkNGMzNWNm
NTQ4ZDc0MGE1MzM1YmZiZDBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwCkBAIC0yOCw3
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNj
cmlwdG9yLmgKaW5kZXggMzg2YTdkZjUwYjM0ODZiNTUxY2JlM2E4MGYyNmFhNjlkYzczZjA2Yy4u
N2UyMWJhMjhhODZjNmMwMDk5MTcwMjMwZDU0YmNhNWJkMWJmNGU5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNj
cmlwdG9yLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VXNhZ2UodW5zaWduZWQgbG9uZyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBX
RUJDT1JFX0VYUE9SVCBNVExUZXh0dXJlRGVzY3JpcHRvciogcGxhdGZvcm1UZXh0dXJlRGVzY3Jp
cHRvcigpOworICAgIFdFQkNPUkVfRVhQT1JUIE1UTFRleHR1cmVEZXNjcmlwdG9yICpwbGF0Zm9y
bVRleHR1cmVEZXNjcmlwdG9yKCk7CiAjZW5kaWYKIAogcHJpdmF0ZToK
</data>

          </attachment>
      

    </bug>

</bugzilla>