<?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>193457</bug_id>
          
          <creation_ts>2019-01-15 12:52:26 -0800</creation_ts>
          <short_desc>[WebGPU] WebGPUProgrammablePassEncoder::setBindGroup prototype</short_desc>
          <delta_ts>2019-02-04 12:52:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=194182</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494767</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-15 12:52:26 -0800</bug_when>
    <thetext>[WebGPU] WebGPUProgrammablePassEncoder::setBindGroup prototype</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494768</commentid>
    <comment_count>1</comment_count>
      <attachid>359192</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-15 12:53:59 -0800</bug_when>
    <thetext>Created attachment 359192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494771</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-15 12:56:59 -0800</bug_when>
    <thetext>Attachment 359192 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:59:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:63:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:64:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:120:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:119:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 6 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494816</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-15 14:26:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47296678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495131</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-16 11:25:21 -0800</bug_when>
    <thetext>Very rough draft. Not ready for review-review, but comments are appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495219</commentid>
    <comment_count>5</comment_count>
      <attachid>359192</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-16 13:56:16 -0800</bug_when>
    <thetext>Comment on attachment 359192
Patch

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

&gt; Source/WebCore/platform/graphics/gpu/GPUBindGroupLayout.h:55
&gt; +    const ArgumentEncoders&amp; argumentEncoders() const { return m_argumentEncoders; }

I don&apos;t see this type in the tree. Does this patch depend on another patch? The bug doesn&apos;t say it depends on anything.

&gt; Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h:39
&gt; +class GPUDevice; // FIXME: Why is ommitting this throwing &quot;Unknown type name &apos;GPUDevice&apos;&quot; error despite #include &quot;GPUDevice.h&quot;?

This symptom is usually caused by circular #includes.

&gt; Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:60
&gt; +    virtual void useResource(MTLResource *, unsigned long) = 0;

Are you sure that this is allowed to know about Metal types? It isn&apos;t in a subdirectory for a particular platform, and doesn&apos;t have Metal in the name... Consider subclassing or wrapping in #if USE(METAL)

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:70
&gt; +    [argumentEncoder setBuffer:buffer offset:bufferBinding.offset atIndex:index];

Where do you call -[MTLArgumentEncoder setTexture:atIndex:] and -[MTLArgumentEncoder setSamplerState:atIndex]?

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:91
&gt; +        vertexArgumentBuffer = adoptNS([m_device-&gt;platformDevice() newBufferWithLength:encoders.vertex.get().encodedLength options:0]);

This definitely needs to be done in WebGPUDevice.createBindGroup(), not in WebGPUProgrammablePassEncoder.setBindGroup(). The argument buffers should already be created and populated before WebGPUProgrammablePassEncoder.setBindGroup() is called.

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:93
&gt; +        setVertexBuffer(vertexArgumentBuffer.get(), 0, index);

This call (and setFragmentBuffer and setComputeBuffer) should be the only things that this function does.

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:103
&gt; +        // FIXME: Finish support for compute.

👎 Compute should be a first-class citizen

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:129
&gt; +                LOG(WebGPU, &quot;%s: Resource type not yet implemented.&quot;, functionName);

👎 Textures and samplers should be first-class citizens</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495239</commentid>
    <comment_count>6</comment_count>
      <attachid>359192</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-16 14:36:11 -0800</bug_when>
    <thetext>Comment on attachment 359192
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gpu/GPUBindGroupLayout.h:55
&gt;&gt; +    const ArgumentEncoders&amp; argumentEncoders() const { return m_argumentEncoders; }
&gt; 
&gt; I don&apos;t see this type in the tree. Does this patch depend on another patch? The bug doesn&apos;t say it depends on anything.

It&apos;s a struct declared in this same header and already in the code.

&gt;&gt; Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h:39
&gt;&gt; +class GPUDevice; // FIXME: Why is ommitting this throwing &quot;Unknown type name &apos;GPUDevice&apos;&quot; error despite #include &quot;GPUDevice.h&quot;?
&gt; 
&gt; This symptom is usually caused by circular #includes.

Grr. Time to do some graph traversal.

&gt;&gt; Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:60
&gt;&gt; +    virtual void useResource(MTLResource *, unsigned long) = 0;
&gt; 
&gt; Are you sure that this is allowed to know about Metal types? It isn&apos;t in a subdirectory for a particular platform, and doesn&apos;t have Metal in the name... Consider subclassing or wrapping in #if USE(METAL)

I&apos;ll throw them in #if USE(METAL). These functions are used only to support the Metal backend for this class.

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:70
&gt;&gt; +    [argumentEncoder setBuffer:buffer offset:bufferBinding.offset atIndex:index];
&gt; 
&gt; Where do you call -[MTLArgumentEncoder setTexture:atIndex:] and -[MTLArgumentEncoder setSamplerState:atIndex]?

Due to time pressure I&apos;m not supporting textures or samplers in this patch. They will be handled by their own code that deals with resources of those types.

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:91
&gt;&gt; +        vertexArgumentBuffer = adoptNS([m_device-&gt;platformDevice() newBufferWithLength:encoders.vertex.get().encodedLength options:0]);
&gt; 
&gt; This definitely needs to be done in WebGPUDevice.createBindGroup(), not in WebGPUProgrammablePassEncoder.setBindGroup(). The argument buffers should already be created and populated before WebGPUProgrammablePassEncoder.setBindGroup() is called.

a g r e e d. Thanks!

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:103
&gt;&gt; +        // FIXME: Finish support for compute.
&gt; 
&gt; 👎 Compute should be a first-class citizen

:( I guess I&apos;m biased against compute. I feel bad

Compute will be tackled after the WebGPU F2F next week.

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:129
&gt;&gt; +                LOG(WebGPU, &quot;%s: Resource type not yet implemented.&quot;, functionName);
&gt; 
&gt; 👎 Textures and samplers should be first-class citizens

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495335</commentid>
    <comment_count>7</comment_count>
      <attachid>359337</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-16 16:58:14 -0800</bug_when>
    <thetext>Created attachment 359337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495390</commentid>
    <comment_count>8</comment_count>
      <attachid>359350</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-16 21:19:18 -0800</bug_when>
    <thetext>Created attachment 359350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495391</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-16 21:20:44 -0800</bug_when>
    <thetext>Attachment 359350 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:59:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495595</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-17 12:24:20 -0800</bug_when>
    <thetext>TODO:

1) I&apos;m currently creating one set of argument buffers per BindGroupLayout, when there needs to be one set per BindGroupLayoutBinding. 

2) Move MTLBuffer creation out of setBindGroup into BindGroupLayout creation to improve setBindGroup performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495597</commentid>
    <comment_count>11</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-17 12:34:32 -0800</bug_when>
    <thetext>(In reply to Justin Fan from comment #10)
&gt; TODO:
&gt; 
&gt; 1) I&apos;m currently creating one set of argument buffers per BindGroupLayout,
&gt; when there needs to be one set per BindGroupLayoutBinding. 

Ignore this. Confused BindGroupLayout with BindGroup. A unique BindGroup should be backed by a unique (set of) argument buffers, but the whole point of BindGroupLayoutBinding is to combine an entire list of them into one argument buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495911</commentid>
    <comment_count>12</comment_count>
      <attachid>359503</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 10:23:00 -0800</bug_when>
    <thetext>Created attachment 359503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495912</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 10:25:12 -0800</bug_when>
    <thetext>Attachment 359503 did not pass style-queue:


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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495925</commentid>
    <comment_count>14</comment_count>
      <attachid>359508</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 10:49:55 -0800</bug_when>
    <thetext>Created attachment 359508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495926</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 10:52:59 -0800</bug_when>
    <thetext>Attachment 359508 did not pass style-queue:


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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495932</commentid>
    <comment_count>16</comment_count>
      <attachid>359510</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 11:02:27 -0800</bug_when>
    <thetext>Created attachment 359510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495933</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 11:04:55 -0800</bug_when>
    <thetext>Attachment 359510 did not pass style-queue:


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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495961</commentid>
    <comment_count>18</comment_count>
      <attachid>359510</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-01-18 11:50:19 -0800</bug_when>
    <thetext>Comment on attachment 359510
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Support for compute pipelines to follow shortly. 
&gt; +        Texture and sampler resources to follow after their requisite interfaces are implemented. 

I wouldn&apos;t worry about adding these comments.

&gt; Source/WebCore/ChangeLog:25
&gt; +        * platform/graphics/gpu/GPUBindGroupLayout.h: Added ArgumentEncoderBuffer struct to retain ptr tot both MTLArgumentEncoders and their argument MTLBuffers.

Typo tot

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:17048
&gt; +		1CA0C2F621EEDAD200A11860 /* AST */ = {
&gt; +			isa = PBXGroup;
&gt; +			children = (
&gt; +				1C840B9021EC30F900D0500D /* WHLSLAddressSpace.h */,
&gt; +				C21BF72521CD89E200227979 /* WHLSLArrayReferenceType.h */,
&gt; +				C21BF70921CD89CA00227979 /* WHLSLArrayType.h */,
&gt; +				C21BF73021CD89ED00227979 /* WHLSLAssignmentExpression.h */,
&gt; +				C21BF70A21CD89CB00227979 /* WHLSLBaseFunctionAttribute.h */,
&gt; +				C21BF6FA21CD89BE00227979 /* WHLSLBaseSemantic.h */,
&gt; +				C21BF71E21CD89DC00227979 /* WHLSLBlock.h */,
&gt; +				C21BF6F621CD89B700227979 /* WHLSLBooleanLiteral.h */,
&gt; +				C21BF71A21CD89D800227979 /* WHLSLBreak.h */,
&gt; +				C2138A1321DDECD300F516BA /* WHLSLBuiltInSemantic.cpp */,
&gt; +				C21BF72221CD89DF00227979 /* WHLSLBuiltInSemantic.h */,
&gt; +				C21BF71621CD89D500227979 /* WHLSLCallExpression.h */,

What is this change?

&gt; Source/WebCore/platform/graphics/gpu/GPUBindGroupLayout.h:38
&gt;  OBJC_PROTOCOL(MTLArgumentEncoder);
&gt; +OBJC_PROTOCOL(MTLBuffer);

This should probably be inside #if USE(METAL) too

&gt; Source/WebCore/platform/graphics/gpu/GPUBindGroupLayout.h:55
&gt; +        bool operator!() const { return !encoder || !buffer; }

I think this would be better as an isValid() function rather than an operator.

&gt; Source/WebCore/platform/graphics/gpu/GPUBindGroupLayout.h:64
&gt; +    GPUBindGroupLayout(BindingsMapType&amp;&amp;, ArgumentEncoderBuffer&amp;&amp;, ArgumentEncoderBuffer&amp;&amp;, ArgumentEncoderBuffer&amp;&amp;);

You should probably give these parameters names here. The order isn&apos;t obvious.

&gt; Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:63
&gt; +    virtual void useResource(MTLResource *, unsigned long) = 0;
&gt; +
&gt; +    // Render command encoder methods.
&gt; +    virtual void setVertexBuffer(MTLBuffer *, unsigned long, unsigned long) { }
&gt; +    virtual void setFragmentBuffer(MTLBuffer *, unsigned long, unsigned long) { }

MTLFoo are ObjC types, so should be MTLFoo* not MTLFoo *.

&gt; Source/WebCore/platform/graphics/gpu/GPURenderPassEncoder.h:69
&gt; +    void useResource(MTLResource *, unsigned long) final;
&gt; +    void setVertexBuffer(MTLBuffer *, unsigned long, unsigned long) final;
&gt; +    void setFragmentBuffer(MTLBuffer *, unsigned long, unsigned long) final;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495962</commentid>
    <comment_count>19</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 12:07:03 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #18)
&gt; Comment on attachment 359510 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359510&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:17048
&gt; &gt; +		1CA0C2F621EEDAD200A11860 /* AST */ = {
&gt; &gt; +			isa = PBXGroup;
&gt; &gt; +			children = (
&gt; &gt; +				1C840B9021EC30F900D0500D /* WHLSLAddressSpace.h */,
&gt; &gt; +				C21BF72521CD89E200227979 /* WHLSLArrayReferenceType.h */,
&gt; &gt; +				C21BF70921CD89CA00227979 /* WHLSLArrayType.h */,
&gt; &gt; +				C21BF73021CD89ED00227979 /* WHLSLAssignmentExpression.h */,
&gt; &gt; +				C21BF70A21CD89CB00227979 /* WHLSLBaseFunctionAttribute.h */,
&gt; &gt; +				C21BF6FA21CD89BE00227979 /* WHLSLBaseSemantic.h */,
&gt; &gt; +				C21BF71E21CD89DC00227979 /* WHLSLBlock.h */,
&gt; &gt; +				C21BF6F621CD89B700227979 /* WHLSLBooleanLiteral.h */,
&gt; &gt; +				C21BF71A21CD89D800227979 /* WHLSLBreak.h */,
&gt; &gt; +				C2138A1321DDECD300F516BA /* WHLSLBuiltInSemantic.cpp */,
&gt; &gt; +				C21BF72221CD89DF00227979 /* WHLSLBuiltInSemantic.h */,
&gt; &gt; +				C21BF71621CD89D500227979 /* WHLSLCallExpression.h */,
&gt; 
&gt; What is this change?

I think a WHLSL patch didn&apos;t get processed by an upload script to order those in the project file. Wenson came across the same diff when he tried making a WebCore patch earlier.

&gt; &gt; Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:63
&gt; &gt; +    virtual void useResource(MTLResource *, unsigned long) = 0;
&gt; &gt; +
&gt; &gt; +    // Render command encoder methods.
&gt; &gt; +    virtual void setVertexBuffer(MTLBuffer *, unsigned long, unsigned long) { }
&gt; &gt; +    virtual void setFragmentBuffer(MTLBuffer *, unsigned long, unsigned long) { }
&gt; 
&gt; MTLFoo are ObjC types, so should be MTLFoo* not MTLFoo *.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gpu/GPURenderPassEncoder.h:69
&gt; &gt; +    void useResource(MTLResource *, unsigned long) final;
&gt; &gt; +    void setVertexBuffer(MTLBuffer *, unsigned long, unsigned long) final;
&gt; &gt; +    void setFragmentBuffer(MTLBuffer *, unsigned long, unsigned long) final;
&gt; 
&gt; Ditto.

I think you have this jumbled with C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495973</commentid>
    <comment_count>20</comment_count>
      <attachid>359523</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 12:23:49 -0800</bug_when>
    <thetext>Created attachment 359523
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495974</commentid>
    <comment_count>21</comment_count>
      <attachid>359510</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-01-18 12:23:53 -0800</bug_when>
    <thetext>Comment on attachment 359510
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:63
&gt;&gt;&gt; +    virtual void setFragmentBuffer(MTLBuffer *, unsigned long, unsigned long) { }
&gt;&gt; 
&gt;&gt; MTLFoo are ObjC types, so should be MTLFoo* not MTLFoo *.
&gt; 
&gt; I think you have this jumbled with C++.

I do. 100% wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495978</commentid>
    <comment_count>22</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 12:35:21 -0800</bug_when>
    <thetext>Attachment 359523 did not pass style-queue:


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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496001</commentid>
    <comment_count>23</comment_count>
      <attachid>359523</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 13:01:15 -0800</bug_when>
    <thetext>Comment on attachment 359523
Patch for landing

Rejecting attachment 359523 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 359523, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 10 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 15.0 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 22.5 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 33.75 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 50.625 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 75.9375 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 113.90625 seconds...
Logging in as commit-queue@webkit.org...
Received HTTP status 500 loading &quot;None&quot;.  Retrying in 170.859375 seconds...
Logging in as commit-queue@webkit.org...
Traceback (most recent call last):
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&quot;, line 84, in &lt;module&gt;
    main()
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&quot;, line 79, in main
    WebKitPatch(os.path.abspath(__file__)).main()
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 305, in main
    result = command.check_arguments_and_execute(options, args, self)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 123, in check_arguments_and_execute
    return self.execute(options, args, tool) or 0
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/commands/download.py&quot;, line 180, in execute
    patches = self._fetch_list_of_patches_to_process(options, args, tool)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/commands/download.py&quot;, line 224, in _fetch_list_of_patches_to_process
    patch = tool.bugs.fetch_attachment(patch_id, throw_on_access_error=True)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py&quot;, line 552, in fetch_attachment
    bug_id = self.bug_id_for_attachment_id(attachment_id, throw_on_access_error)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py&quot;, line 530, in bug_id_for_attachment_id
    return NetworkTransaction().run(lambda: self.get_bug_id_for_attachment_id(attachment_id, throw_on_access_error))
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 57, in run
    self._check_for_timeout()
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 67, in _check_for_timeout
    raise NetworkTimeout()
webkitpy.common.net.networktransaction.NetworkTimeout: NetworkTimeout

Full output: https://webkit-queues.webkit.org/results/10800438</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496037</commentid>
    <comment_count>24</comment_count>
      <attachid>359541</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-18 14:31:21 -0800</bug_when>
    <thetext>Created attachment 359541
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496050</commentid>
    <comment_count>25</comment_count>
      <attachid>359541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 15:09:44 -0800</bug_when>
    <thetext>Comment on attachment 359541
Patch for landing

Clearing flags on attachment: 359541

Committed r240180: &lt;https://trac.webkit.org/changeset/240180&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496051</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 15:09:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496796</commentid>
    <comment_count>27</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-01-22 09:44:26 -0800</bug_when>
    <thetext>looks like the new test added in https://trac.webkit.org/changeset/240180/webkit 

webgpu/buffer-resource-triangles.html

is failing constantly. diff shows the drawn square is red. 

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=webgpu%2Fbuffer-resource-triangles.html

Diff:
https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r240251%20(8970)/webgpu/buffer-resource-triangles-diffs.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499826</commentid>
    <comment_count>28</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-01-29 17:26:41 -0800</bug_when>
    <thetext>Is there any new progress on this test issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499833</commentid>
    <comment_count>29</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-29 17:49:03 -0800</bug_when>
    <thetext>(In reply to Truitt Savell from comment #28)
&gt; Is there any new progress on this test issue?

I haven&apos;t reproduced the failure on either of my Mac devices, but I have one more thing I want to try. Unfortunately it took me a while to update my laptop (the only device I own with an intel gpu) back to building ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501954</commentid>
    <comment_count>30</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-02-04 12:52:08 -0800</bug_when>
    <thetext>(In reply to Justin Fan from comment #29)
&gt; (In reply to Truitt Savell from comment #28)
&gt; &gt; Is there any new progress on this test issue?
&gt; 
&gt; I haven&apos;t reproduced the failure on either of my Mac devices, but I have one
&gt; more thing I want to try. Unfortunately it took me a while to update my
&gt; laptop (the only device I own with an intel gpu) back to building ToT.
Filed https://bugs.webkit.org/show_bug.cgi?id=194182 to track the test failure since the change cannot be rolled out cleanly anymore.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359192</attachid>
            <date>2019-01-15 12:53:59 -0800</date>
            <delta_ts>2019-01-16 16:58:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190115125358.patch</filename>
            <type>text/plain</type>
            <size>31963</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzOGIwYjdiYTJhOTY1
ODM5MWE2YzE4NzVmMzIxYjE2NzY0ZWJlNy4uMDliYzNmMzcxODBiODJlNDgyYjg4OTYyNjAwNzk3
YjdmZGE2YTNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAxLTE1ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
aW5kR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6bGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6YmluZGluZ3MgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6YXJndW1lbnRFbmNvZGVycyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmRldmljZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0uCisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6
c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
QnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6R1BV
Q29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3Vw
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0Vu
Y29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OkdQVVJlbmRl
clBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1
c2VSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpz
ZXRGcmFnbWVudEJ1ZmZlcik6CisKIDIwMTktMDEtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKFBTT04pIFZpZXcgYmVjb21lcyBibGFuayBh
ZnRlciBjbGljayBhIGNyb3NzLXNpdGUgZG93bmxvYWQgbGluawpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAw
M2E0NWRlNzkwYWY2NTkzZDQ2NzdiODNlZGY4Njc5MDgxYWJlMzNjLi5hY2U5NjQ0NTk2MDAzZmEz
OGNiYzA3YjcxYTVlYjgzM2M2MzNkNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc4Niw2ICsxNzg2
LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5j
cHAKK3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9sZWdhY3kvR1BVTGVnYWN5QnVmZmVyLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2xlZ2FjeS9HUFVMZWdhY3lDb21tYW5kQnVmZmVyLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2xlZ2FjeS9HUFVMZWdhY3lDb21tYW5kUXVldWUuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjBj
YTU1NDhjMTFkYTMwYWUzYmQwNWUzMTY1OWNjMjgwYzczMzJhOC4uYmY4NDdkMTk3NWVjMzQ4MmFl
OTg4MDJiOTkzOWNmZTJmMDFkMWJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU4Niw5ICsyNTg2LDkgQEAKIAkJOTEyNzhE
NUUyMURFREFENjAwQjU3MTg0IC8qIFBhZ2VBdWRpdEFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTI3OEQ1QzIxREVEQUQ1MDBCNTcxODQgLyog
UGFnZUF1ZGl0QWdlbnQuaCAqLzsgfTsKIAkJOTEyNzhENjIyMURFREFGMDAwQjU3MTg0IC8qIFdv
cmtlckF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkxMjc4RDYwMjFERURBRjAwMEI1NzE4NCAvKiBXb3JrZXJBdWRpdEFnZW50LmggKi87
IH07CiAJCTkxNzVDRTVDMjFFMjgxRUQwMERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNF
NTgyMUUyODFFQzAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggKi87IH07Ci0J
CTkxNzVDRTVDMjFFMjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0RE9NT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1ODIx
RTI4MUVDMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLzsgfTsKKwkJOTE3
NUNFNUMyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1ODIxRTI4MUVD
MDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLzsgfTsKIAkJOTE3NUNFNUUy
MUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNFNUEyMUUy
ODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovOyB9
OwotCQk5MTc1Q0U1RTIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2li
aWxpdHlPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkxNzVDRTVBMjFFMjgxRUQwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxp
dHlPYmplY3QuaCAqLzsgfTsKKwkJOTE3NUNFNUUyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3Rv
ckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTE3NUNFNUEyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1
ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovOyB9OwogCQk5MUI4RjBCNTIxOTUzRDY1MDAwQzJC
MDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTFCOEYwQjMyMTk1M0Q2NTAwMEMyQjAwIC8qIENlcnRpZmljYXRl
SW5mb0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5MUI5NTIyNDFGNThBNThGMDA5MzFEQzIgLyogUmVjb3JkaW5nU3dpenpsZVR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MUI5NTIyMjFG
NThBNTgwMDA5MzFEQzIgLyogUmVjb3JkaW5nU3dpenpsZVR5cGVzLmggKi87IH07CiAJCTkxQzlG
MkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAw
OTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY0MjAsMTMgKzY0MjAsMTMgQEAKIAkJMUM2
NjI2MEYxQzZFN0NBNjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRGYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
ODFCOTU2MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4MUI5NTcwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDODFC
OTU4MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRW50cnlQb2ludFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM4NDBCOTAyMUVDMzBGOTAwRDA1MDBEIC8qIFdITFNMQWRkcmVzc1Nw
YWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMQWRkcmVzc1NwYWNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDODQwQjk3MjFFQzQwMDcwMEQwNTAwRCAvKiBXSExTTENoZWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDODQwQjk5MjFFQzQwMDgwMEQwNTAwRCAvKiBXSExTTEdhdGhlckVudHJ5UG9pbnRJ
dGVtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAw
RCAvKiBXSExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEdh
dGhlckVudHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg0
MEI5QjIxRUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdITFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDODFC
OTU4MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRW50cnlQb2ludFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMUM4NDBCOTAyMUVDMzBGOTAwRDA1MDBEIC8qIFdITFNMQWRkcmVzc1Nw
YWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMQWRkcmVzc1NwYWNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDOTA0REY5MEJBOUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBF
dmVudExvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBF
dmVudExvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTE1MERD
MjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM5NCwx
MyArMTAzOTQsMTMgQEAKIAkJOTEyNzhENUYyMURFREFFRjAwQjU3MTg0IC8qIFdvcmtlckF1ZGl0
QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyQXVk
aXRBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMjc4RDYwMjFERURB
RjAwMEI1NzE4NCAvKiBXb3JrZXJBdWRpdEFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlckF1ZGl0QWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTE3NUNFNTcyMUUyODFFQjAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0RE9N
T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE3NUNFNTcyMUUyODFF
QjAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTc1Q0U1NzIxRTI4MUVCMDBERjJDMjggLyogSW5z
cGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjcgLyogSW5zcGVjdG9yQXVkaXRET01PYmpl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01P
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE3NUNFNTgyMUUyODFFQzAw
REYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTE3NUNFNTgyMUUyODFFQzAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0
RE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1
ZGl0RE9NT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTU5MjFF
MjgxRUMwMERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE3NUNFNTky
MUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0QWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxNzVD
RTU5MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3
NUNFNUEyMUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVj
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBdWRpdEFjY2Vz
c2liaWxpdHlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE3NUNFNUEy
MUUyODFFRDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJp
bGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTc1Q0U1QTIxRTI4
MUVEMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9i
amVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MUI4RjBCMzIxOTUzRDY1MDAw
QzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm9CYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkxQjk1MjIyMUY1OEE1ODAwMDkzMURDMiAvKiBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVjb3JkaW5nU3dpenpsZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4OTksNiArMTM4OTksNyBAQAogCQlEMDBGNTk1
NDIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVEZXZpY2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZB
NDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEMDFEMEY5ODIxRUU3N0M3MDA3M0QxNEQgLyogR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDIzMkI1ODIx
Q0I0OUI3MDA5NDgzQjkgLyogR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAyNDU0RDAyMUM0QTQxQzAwQjczNjI4IC8qIEdQVUJpbmRHcm91cExheW91
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDAyQjgzRUQyMUM4Mzk3QTAwRjg1NDczIC8qIFdlYkdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MzcsMTIgKzE2OTM4LDEy
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE1ODRGRTI1MTg2
MzdEQUIwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oICovLAorCQkJCTkx
NzVDRTU5MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwICovLAorCQkJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRp
dEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLywKKwkJCQk5MTc1Q0U1NzIxRTI4MUVCMDBERjJDMjgg
LyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovLAorCQkJCTkxNzVDRTU4MjFFMjgxRUMw
MERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oICovLAogCQkJCUE1ODRGRTM5MTg2
NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAgKi8sCiAJCQkJQTU4NEZF
M0ExODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmggKi8sCi0JCQkJOTE3
NUNFNTkyMUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAqLywKLQkJCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JB
dWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLywKLQkJCQk5MTc1Q0U1NzIxRTI4MUVCMDBERjJD
MjggLyogSlNJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5jcHAgKi8sCi0JCQkJOTE3NUNFNTgyMUUy
ODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLywKIAkJCQk3QTBF
NzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwICovLAog
CQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5o
ICovLAogCQkJKTsKQEAgLTE4MjY5LDYgKzE4MjcwLDcgQEAKIAkJCQlEMDAzMjg4NjIxQzlBNEU1
MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuaCAqLywKIAkJCQlEMDAzMjg4NDIxQzlBMjBE
MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmggKi8sCiAJCQkJMzEyRkY4
QzIyMUE0QzJGMzAwRUIxOTlEIC8qIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmggKi8sCisJ
CQkJRDAxRDBGOTgyMUVFNzdDNzAwNzNEMTREIC8qIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmNwcCAqLywKIAkJCQlEMDMyMTFDRjIxQUM5NTRFMDA3NjNDRjIgLyogR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIuaCAqLywKIAkJCQkzMTJGRjhDMTIxQTRDMkYyMDBFQjE5OUQgLyogR1BVUXVl
dWUuaCAqLywKIAkJCQlEMDAxRDlBOTIxQjBDNjczMDAyM0I5QkMgLyogR1BVUmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudERlc2NyaXB0b3IuaCAqLywKQEAgLTI5NTUyLDcgKzI5NTU0LDkgQEAKIAkJ
CQk5MzMwOURGMjA5OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1QjgxQ0E3MUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxNzVDRTVFMjFFMjgxRUQwMERG
MkMyNyAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkxNzVDRTVFMjFFMjgxRUQwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2li
aWxpdHlPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxNzVDRTVDMjFFMjgxRUQwMERGMkMy
NyAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTE3NUNF
NUMyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QTIyRTg3MDFGMTA0MTg2MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBODFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDODFCOTVDMEU5NzMzMDgwMDI2NkUw
NyAvKiBJbnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk5ODUsOCArMjk5ODks
NiBAQAogCQkJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0MxOTNDMDExRjVFMTEwNTAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhp
bmdRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTYg
LyogSlNJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MTc1Q0U1RTIxRTI4MUVEMDBE
RjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTkxNzVDRTVDMjFFMjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0RE9N
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcxRjEwQzAwREIxMDBBMDI3NkUgLyog
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDcxMEU2MURC
NzAwQzcwMDJEQ0VDMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjhCNDU3NjFEQzQxREJBMDA0NDNDM0YgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAppbmRleCA4MDYxMzgzNjc5NzFkZTZiYWQ1Y2I2
NWFmMTlmNzU1MTBjYzMzMDkyLi4yY2RjMDczNzM2MDExZWFhMDJiMGU2NjM3ZWEyZDQzMTBjNmU3
MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
QmluZEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJpbmRHcm91cC5oCkBAIC00MSw2ICs0MSw5IEBAIGNsYXNzIEdQVUJpbmRHcm91cCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8R1BV
QmluZEdyb3VwPiBjcmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKTsKIAorICAgIGNvbnN0
IEdQVUJpbmRHcm91cExheW91dCYgbGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXQuZ2V0
KCk7IH0KKyAgICBjb25zdCBWZWN0b3I8R1BVQmluZEdyb3VwQmluZGluZz4mIGJpbmRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9iaW5kaW5nczsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdQ
VUJpbmRHcm91cChHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmgK
aW5kZXggZjJhZDg5ZTcwZGYwZjMxZWQ5M2U2Njg0MjE2NTAxYzY3MWQzN2EzZS4uNjI0NDQ0M2Iy
ODdjOTBmZThhOWUxMmI4ZWVlMGU2OGVjNzVlNjg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaApAQCAt
NTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBCaW5kaW5nc01hcFR5cGUgPSBIYXNo
TWFwPHVuc2lnbmVkIGxvbmcgbG9uZywgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZywgV1RGOjpJ
bnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hU
cmFpdHM8dW5zaWduZWQgbG9uZyBsb25nPj47CiAgICAgY29uc3QgQmluZGluZ3NNYXBUeXBlJiBi
aW5kaW5nc01hcCgpIGNvbnN0IHsgcmV0dXJuIG1fYmluZGluZ3NNYXA7IH0KKyAgICBjb25zdCBB
cmd1bWVudEVuY29kZXJzJiBhcmd1bWVudEVuY29kZXJzKCkgY29uc3QgeyByZXR1cm4gbV9hcmd1
bWVudEVuY29kZXJzOyB9CiAKIHByaXZhdGU6CiAgICAgR1BVQmluZEdyb3VwTGF5b3V0KEJpbmRp
bmdzTWFwVHlwZSYmLCBBcmd1bWVudEVuY29kZXJzJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggODFl
OGU5OWUyODA2YTJiZDVkMTYxZDY3MDQyMjliYTM1ZDEyNWZiZi4uYTZiZjU1NDc4Yjg3YjczM2Qx
OGQxNjJkOTZjYWRlY2M4MGUyYzJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVRGV2aWNlLmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgpAQCAtMzUsMjEgKzM2LDIzIEBAIE9CSkNfUFJPVE9DT0woTVRMQ29t
bWFuZEJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1BVRGV2aWNlOwor
Y2xhc3MgR1BVRGV2aWNlOyAvLyBGSVhNRTogV2h5IGlzIG9tbWl0dGluZyB0aGlzIHRocm93aW5n
ICJVbmtub3duIHR5cGUgbmFtZSAnR1BVRGV2aWNlJyIgZXJyb3IgZGVzcGl0ZSAjaW5jbHVkZSAi
R1BVRGV2aWNlLmgiPwogCiB1c2luZyBQbGF0Zm9ybUNvbW1hbmRCdWZmZXIgPSBNVExDb21tYW5k
QnVmZmVyOwogdXNpbmcgUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHIgPSBSZXRhaW5QdHI8
TVRMQ29tbWFuZEJ1ZmZlcj47CiAKIGNsYXNzIEdQVUNvbW1hbmRCdWZmZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxHUFVDb21tYW5kQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxH
UFVDb21tYW5kQnVmZmVyPiBjcmVhdGUoR1BVRGV2aWNlJik7CisgICAgc3RhdGljIFJlZlB0cjxH
UFVDb21tYW5kQnVmZmVyPiBjcmVhdGUoUmVmPEdQVURldmljZT4pOwogCiAgICAgUGxhdGZvcm1D
b21tYW5kQnVmZmVyKiBwbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3Bs
YXRmb3JtQ29tbWFuZEJ1ZmZlci5nZXQoKTsgfQorICAgIFJlZjxHUFVEZXZpY2U+IGRldmljZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlLmNvcHlSZWYoKTsgfQogCiBwcml2YXRlOgotICAgIEdQ
VUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHImJik7CisgICAgR1BV
Q29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciYmLCBSZWY8R1BVRGV2
aWNlPiYmKTsKIAogICAgIFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0UHRyIG1fcGxhdGZvcm1D
b21tYW5kQnVmZmVyOworICAgIFJlZjxHUFVEZXZpY2U+IG1fZGV2aWNlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmNhYjE3N2NhYzRlZmM0NWYxZGM2YWU0NWE5NDNiNGNkYjY1ODY1MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5o
IgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIoUmVmPEdQVURl
dmljZT4mJiBkZXZpY2UpCisgICAgOiBtX2RldmljZShXVEZNb3ZlKGRldmljZSkpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmluZGV4IDk0OGMwYzg4NmE5M2E5NTg1ODE1OTBj
OWE1MmI1NDRhNGJkNzI2ZTUuLjNkYzc4ODYxNzQzYWZhNjRmZTQwOGEwNzUxZmM5MTAzYTE3MWNj
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCkBAIC0yNywxMiArMjcsMTgg
QEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXBCaW5kaW5n
LmgiCisjaW5jbHVkZSAiR1BVRGV2aWNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAorT0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOworT0JKQ19QUk9UT0NPTChNVExC
dWZmZXIpOwogT0JKQ19QUk9UT0NPTChNVExDb21tYW5kRW5jb2Rlcik7CitPQkpDX1BST1RPQ09M
KE1UTFJlc291cmNlKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHUFVCaW5kR3Jv
dXA7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGluZTsKIAogdXNpbmcgUGxhdGZvcm1Qcm9ncmFtbWFi
bGVQYXNzRW5jb2RlciA9IE1UTENvbW1hbmRFbmNvZGVyOwpAQCAtNDIsMTMgKzQ4LDIyIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcigpID0gZGVmYXVs
dDsKIAogICAgIHZvaWQgZW5kUGFzcygpOwotCisgICAgdm9pZCBzZXRCaW5kR3JvdXAoY29uc3Qg
R1BVQmluZEdyb3VwJiwgdW5zaWduZWQgbG9uZyk7CiAgICAgdmlydHVhbCB2b2lkIHNldFBpcGVs
aW5lKFJlZjxHUFVSZW5kZXJQaXBlbGluZT4mJikgPSAwOwogCiBwcm90ZWN0ZWQ6CisgICAgZXhw
bGljaXQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIoUmVmPEdQVURldmljZT4mJik7CiAgICAg
dmlydHVhbCBQbGF0Zm9ybVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKiBwbGF0Zm9ybVBhc3NFbmNv
ZGVyKCkgY29uc3QgPSAwOwogCiBwcml2YXRlOgorICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNl
JiwgdW5zaWduZWQgbG9uZywgY29uc3QgY2hhciogY29uc3QpOworICAgIHZpcnR1YWwgdm9pZCB1
c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBsb25nKSA9IDA7CisKKyAgICAvLyBS
ZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHNldFZlcnRl
eEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykge30KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0RnJhZ21lbnRCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxv
bmcsIHVuc2lnbmVkIGxvbmcpIHt9CisKKyAgICBSZWY8R1BVRGV2aWNlPiBtX2RldmljZTsKICAg
ICBib29sIG1faXNFbmNvZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgK
aW5kZXggNTAxYWEzZDE1MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYxMmMxMi4uMDQyZjdkMDk4
YzgxZjJiOWE2MTBjYjQ3Y2Y0MDVhZjdlNGE5ZjI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgK
QEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVCdWZmZXI7
CiBjbGFzcyBHUFVDb21tYW5kQnVmZmVyOworY2xhc3MgR1BVRGV2aWNlOwogCiBzdHJ1Y3QgR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3I7CiAKQEAgLTU3LDExICs1OCwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVu
c2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgotICAgIEdQVVJlbmRlclBhc3NFbmNvZGVyKFBsYXRm
b3JtUmVuZGVyUGFzc0VuY29kZXJTbWFydFB0ciYmKTsKKyAgICBHUFVSZW5kZXJQYXNzRW5jb2Rl
cihQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHImJiwgUmVmPEdQVURldmljZT4mJik7
CiAgICAgfkdQVVJlbmRlclBhc3NFbmNvZGVyKCkgeyBlbmRQYXNzKCk7IH0gLy8gRW5zdXJlIHRo
YXQgZW5jb2RpbmcgaGFzIGVuZGVkIGJlZm9yZSByZWxlYXNlLgogCiAgICAgUGxhdGZvcm1Qcm9n
cmFtbWFibGVQYXNzRW5jb2RlciogcGxhdGZvcm1QYXNzRW5jb2RlcigpIGNvbnN0IGZpbmFsOwog
CisgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIKKyAgICB2b2lkIHVzZVJlc291cmNl
KE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpIGZpbmFsOworICAgIHZvaWQgc2V0VmVydGV4
QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsK
KyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKSBmaW5hbDsKKwogICAgIFBsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXJTbWFy
dFB0ciBtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXI7CiAgICAgUmVmUHRyPEdQVVJlbmRlclBp
cGVsaW5lPiBtX3BpcGVsaW5lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFs
Lm1tCmluZGV4IDYxMjU5ZDIzNGZiM2ExMjRmOTkxNzg0YTVkOGZkNjg4NzAzN2UyMDguLmM2OWYy
NzcwMGUwNGZlNTRmZWJjZjAyZDNiMGNmY2U4MTdkZDQyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNv
bW1hbmRCdWZmZXJNZXRhbC5tbQpAQCAtMzcsMTQgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0
ZShHUFVEZXZpY2UmIGRldmljZSkKK1JlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5k
QnVmZmVyOjpjcmVhdGUoUmVmPEdQVURldmljZT4gZGV2aWNlKQogewotICAgIGlmICghZGV2aWNl
LnBsYXRmb3JtRGV2aWNlKCkpIHsKKyAgICBpZiAoIWRldmljZS0+cGxhdGZvcm1EZXZpY2UoKSkg
ewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKCk6IEludmFs
aWQgR1BVRGV2aWNlISIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBh
dXRvIGdwdUNvbW1hbmRRdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworICAgIGF1dG8gZ3B1Q29t
bWFuZFF1ZXVlID0gZGV2aWNlLT5nZXRRdWV1ZSgpOwogICAgIGlmICghZ3B1Q29tbWFuZFF1ZXVl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNjMsMTEgKzYzLDEyIEBAIFJlZlB0cjxH
UFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BVRGV2aWNlJiBkZXZp
Y2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgR1BVQ29tbWFuZEJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdQVUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZmZXIpLCBXVEZNb3ZlKGRldmlj
ZSkpKTsKIH0KIAotR1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNv
bW1hbmRCdWZmZXJTbWFydFB0ciYmIGJ1ZmZlcikKK0dQVUNvbW1hbmRCdWZmZXI6OkdQVUNvbW1h
bmRCdWZmZXIoUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHImJiBidWZmZXIsIFJlZjxHUFVE
ZXZpY2U+JiYgZGV2aWNlKQogICAgIDogbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoV1RGTW92ZShi
dWZmZXIpKQorICAgICwgbV9kZXZpY2UoV1RGTW92ZShkZXZpY2UpKQogewogICAgIFVOVVNFRF9Q
QVJBTShtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDJlNjQzNjM4MTQ2YTFiODlj
YTdmOGM5Njg2NjUzZDI3MjVkMzQxOGUuLmQ1MWM1MzE4MGZkNDAyZDM0NzExYThmOGI0MDVlYTM4
YzFmMzY5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlck1ldGFsLm1tCkBAIC0yOCw3ICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAor
I2ltcG9ydCAiR1BVQmluZEdyb3VwLmgiCisjaW1wb3J0ICJHUFVCaW5kR3JvdXBMYXlvdXRCaW5k
aW5nLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorI2lt
cG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00MSw2ICs0NSw5MyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjplbmRQ
YXNzKCkKICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKIH0KIAordm9pZCBHUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVu
Y29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiByZXNvdXJj
ZSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQor
eworICAgIGlmICghYXJndW1lbnRFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczog
Tm8gYXJndW1lbnQgZW5jb2RlciBmb3IgcmVxdWVzdGVkIHN0YWdlIGZvdW5kISIsIGZ1bmN0aW9u
TmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8R1BVQnVmZmVyQmluZGluZz4ocmVzb3VyY2UpKSB7CisgICAgICAgIExPRyhXZWJH
UFUsICIlczogUmVzb3VyY2UgaXMgbm90IGEgYnVmZmVyIHR5cGUhIiwgZnVuY3Rpb25OYW1lKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGJ1ZmZlckJpbmRpbmcgPSBXVEY6
OmdldDxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSk7CisgICAgYXV0byBidWZmZXIgPSBidWZm
ZXJCaW5kaW5nLmJ1ZmZlci0+cGxhdGZvcm1CdWZmZXIoKTsKKworICAgIGlmICghYnVmZmVyKSB7
CisgICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBNVExCdWZmZXIgaW4gR1BVQnVmZmVy
QmluZGluZyEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgW2FyZ3VtZW50RW5jb2RlciBzZXRC
dWZmZXI6YnVmZmVyIG9mZnNldDpidWZmZXJCaW5kaW5nLm9mZnNldCBhdEluZGV4OmluZGV4XTsK
KyAgICB1c2VSZXNvdXJjZShidWZmZXIsIE1UTFJlc291cmNlVXNhZ2VSZWFkKTsKKworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXI6OnNldEJpbmRHcm91cChjb25zdCBHUFVCaW5kR3JvdXAmIGJpbmRHcm91cCwgdW5zaWdu
ZWQgbG9uZyBpbmRleCkKK3sKKyAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAi
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCgpIjsKKyAgICAvLyBDcmVh
dGUgYXJndW1lbnQgYnVmZmVycyBmb3IgZWFjaCBNVExBcmd1bWVudEVuY29kZXIgaW4gdGhlIHBp
cGVsaW5lIGxheW91dC4KKyAgICBpZiAoIW1fZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpKSB7Cisg
ICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBNVExEZXZpY2UhIiwgZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIGVuY29kZXJzID0g
YmluZEdyb3VwLmxheW91dCgpLmFyZ3VtZW50RW5jb2RlcnMoKTsKKyAgICBSZXRhaW5QdHI8TVRM
QnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciwgY29t
cHV0ZUFyZ3VtZW50QnVmZmVyOworCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
CisgICAgaWYgKGVuY29kZXJzLnZlcnRleCkgeworICAgICAgICB2ZXJ0ZXhBcmd1bWVudEJ1ZmZl
ciA9IGFkb3B0TlMoW21fZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIG5ld0J1ZmZlcldpdGhMZW5n
dGg6ZW5jb2RlcnMudmVydGV4LmdldCgpLmVuY29kZWRMZW5ndGggb3B0aW9uczowXSk7CisgICAg
ICAgIFtlbmNvZGVycy52ZXJ0ZXggc2V0QXJndW1lbnRCdWZmZXI6dmVydGV4QXJndW1lbnRCdWZm
ZXIuZ2V0KCkgb2Zmc2V0OjBdOworICAgICAgICBzZXRWZXJ0ZXhCdWZmZXIodmVydGV4QXJndW1l
bnRCdWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKKyAgICB9CisgICAgaWYgKGVuY29kZXJzLmZyYWdt
ZW50KSB7CisgICAgICAgIGZyYWdtZW50QXJndW1lbnRCdWZmZXIgPSBhZG9wdE5TKFttX2Rldmlj
ZS0+cGxhdGZvcm1EZXZpY2UoKSBuZXdCdWZmZXJXaXRoTGVuZ3RoOmVuY29kZXJzLmZyYWdtZW50
LmdldCgpLmVuY29kZWRMZW5ndGggb3B0aW9uczowXSk7CisgICAgICAgIFtlbmNvZGVycy5mcmFn
bWVudCBzZXRBcmd1bWVudEJ1ZmZlcjpmcmFnbWVudEFyZ3VtZW50QnVmZmVyLmdldCgpIG9mZnNl
dDowXTsKKyAgICAgICAgc2V0RnJhZ21lbnRCdWZmZXIoZnJhZ21lbnRBcmd1bWVudEJ1ZmZlci5n
ZXQoKSwgMCwgaW5kZXgpOworICAgIH0KKyAgICBpZiAoZW5jb2RlcnMuY29tcHV0ZSkgeworICAg
ICAgICBjb21wdXRlQXJndW1lbnRCdWZmZXIgPSBhZG9wdE5TKFttX2RldmljZS0+cGxhdGZvcm1E
ZXZpY2UoKSBuZXdCdWZmZXJXaXRoTGVuZ3RoOmVuY29kZXJzLmNvbXB1dGUuZ2V0KCkuZW5jb2Rl
ZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICAgICAgW2VuY29kZXJzLmNvbXB1dGUgc2V0QXJndW1l
bnRCdWZmZXI6Y29tcHV0ZUFyZ3VtZW50QnVmZmVyLmdldCgpIG9mZnNldDowXTsKKyAgICAgICAg
Ly8gRklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgorICAgIH0KKworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICAvLyBTZXQgZWFjaCByZXNvdXJjZSBvbiBlYWNo
IE1UTEFyZ3VtZW50RW5jb2RlciBpdCBzaG91bGQgYmUgdmlzaWJsZSBvbi4KKyAgICBjb25zdCBh
dXRvJiBiaW5kaW5nc01hcCA9IGJpbmRHcm91cC5sYXlvdXQoKS5iaW5kaW5nc01hcCgpOworICAg
IGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7CisgICAg
ICAgIGF1dG8gaXRlcmF0b3IgPSBiaW5kaW5nc01hcC5maW5kKGJpbmRpbmcuYmluZGluZyk7Cisg
ICAgICAgIGlmIChpdGVyYXRvciA9PSBiaW5kaW5nc01hcC5lbmQoKSkgeworICAgICAgICAgICAg
TE9HKFdlYkdQVSwgIiVzOiBHUFVCaW5kR3JvdXBCaW5kaW5nICVsdSBub3QgZm91bmQgaW4gR1BV
QmluZEdyb3VwTGF5b3V0ISIsIGZ1bmN0aW9uTmFtZSwgYmluZGluZy5iaW5kaW5nKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGJpbmRHcm91cExheW91dEJp
bmRpbmcgPSBpdGVyYXRvci0+dmFsdWU7CisKKyAgICAgICAgc3dpdGNoIChiaW5kR3JvdXBMYXlv
dXRCaW5kaW5nLnR5cGUpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3Jl
IHJlc291cmNlIHR5cGVzLCBhbmQgc3VwcG9ydCBjb21wdXRlIHN0YWdlIHJlc291cmNlcy4KKyAg
ICAgICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlVu
aWZvcm1CdWZmZXI6CisgICAgICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6
OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICAgICAgaWYgKGJpbmRH
cm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgp
CisgICAgICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoZW5jb2Rl
cnMudmVydGV4LmdldCgpLCBiaW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0
aW9uTmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlz
aWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGUkFHTUVOVCkKKyAgICAgICAgICAgICAgICAg
ICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihlbmNvZGVycy5mcmFnbWVudC5nZXQoKSwg
YmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IFJlc291cmNlIHR5cGUgbm90IHlldCBpbXBs
ZW1lbnRlZC4iLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0K
aW5kZXggNTU2NTA2M2Y2NDAwYjQwMzg1NDM1M2RhYWM2N2UzNTA1MTQwMTQ3My4uZjczYTk1Mzgx
YjE4NDUxNGY3YTAxNTdhNWRiODNmYWI4ZmYyOGU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJl
bmRlclBhc3NFbmNvZGVyTWV0YWwubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiR1BV
QnVmZmVyLmgiCiAjaW1wb3J0ICJHUFVDb21tYW5kQnVmZmVyLmgiCisjaW1wb3J0ICJHUFVEZXZp
Y2UuaCIKICNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVS
ZW5kZXJQaXBlbGluZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNjUsMTEgKzY2LDEyIEBA
IFJlZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gR1BVUmVuZGVyUGFzc0VuY29kZXI6OmNyZWF0
ZShjb25zdCBHUFVDb21tYW5kQnVmZmVyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92ZSht
dGxFbmNvZGVyKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGFzc0VuY29k
ZXIoV1RGTW92ZShtdGxFbmNvZGVyKSwgYnVmZmVyLmRldmljZSgpKSk7CiB9CiAKLUdQVVJlbmRl
clBhc3NFbmNvZGVyOjpHUFVSZW5kZXJQYXNzRW5jb2RlcihQbGF0Zm9ybVJlbmRlclBhc3NFbmNv
ZGVyU21hcnRQdHImJiBlbmNvZGVyKQotICAgIDogbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVy
KFdURk1vdmUoZW5jb2RlcikpCitHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6R1BVUmVuZGVyUGFzc0Vu
Y29kZXIoUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyJiYgZW5jb2RlciwgUmVmPEdQ
VURldmljZT4mJiBkZXZpY2UpCisgICAgOiBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcihXVEZN
b3ZlKGRldmljZSkpCisgICAgLCBtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92ZShl
bmNvZGVyKSkKIHsKIH0KIApAQCAtMTE4LDYgKzEyMCwyMSBAQCB2b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpkcmF3KHVuc2lnbmVkIGxvbmcgdmVydGV4Q291bnQsIHVuc2lnbmVkIGxvbmcgaW5z
dGFuYwogICAgICAgICBiYXNlSW5zdGFuY2U6Zmlyc3RJbnN0YW5jZV07CiB9CiAKK3ZvaWQgR1BV
UmVuZGVyUGFzc0VuY29kZXI6OnVzZVJlc291cmNlKE1UTFJlc291cmNlICpyZXNvdXJjZSwgTVRM
UmVzb3VyY2VVc2FnZSB1c2FnZSkKK3sKKyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVy
IHVzZVJlc291cmNlOnJlc291cmNlIHVzYWdlOnVzYWdlXTsKK30KKwordm9pZCBHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBs
b25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkKK3sKKyAgICBbbV9wbGF0Zm9ybVJlbmRl
clBhc3NFbmNvZGVyIHNldFZlcnRleEJ1ZmZlcjpidWZmZXIgb2Zmc2V0Om9mZnNldCBhdEluZGV4
OmluZGV4XTsKK30KKwordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0RnJhZ21lbnRCdWZm
ZXIoTVRMQnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGluZGV4KQoreworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0RnJhZ21lbnRC
dWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRleDppbmRleF07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359337</attachid>
            <date>2019-01-16 16:58:14 -0800</date>
            <delta_ts>2019-01-16 21:19:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190116165813.patch</filename>
            <type>text/plain</type>
            <size>40415</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzOGIwYjdiYTJhOTY1
ODM5MWE2YzE4NzVmMzIxYjE2NzY0ZWJlNy4uMDliYzNmMzcxODBiODJlNDgyYjg4OTYyNjAwNzk3
YjdmZGE2YTNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAxLTE1ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
aW5kR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6bGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6YmluZGluZ3MgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6YXJndW1lbnRFbmNvZGVycyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmRldmljZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0uCisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6
c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
QnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6R1BV
Q29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3Vw
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0Vu
Y29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OkdQVVJlbmRl
clBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1
c2VSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpz
ZXRGcmFnbWVudEJ1ZmZlcik6CisKIDIwMTktMDEtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKFBTT04pIFZpZXcgYmVjb21lcyBibGFuayBh
ZnRlciBjbGljayBhIGNyb3NzLXNpdGUgZG93bmxvYWQgbGluawpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaAppbmRleCAwYTA0NzA5NTUzYmQ0ZTlh
Y2FmMmY4YTFhMTQ1OGUxNzEzMWJjYjgzLi41MDRkYTk1MGY1Y2U0MDk3OTMwZWJiYWRhMTMyZDZi
OWI2ZDY5ZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCaW5kR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVC
aW5kR3JvdXAuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFzcyBXZWJHUFVCaW5kR3JvdXAgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJHUFVCaW5kR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCisgICAg
Y29uc3QgR1BVQmluZEdyb3VwKiBiaW5kR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX2JpbmRHcm91
cC5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkdQVUJpbmRHcm91cChSZWZQ
dHI8R1BVQmluZEdyb3VwPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCmluZGV4
IGMxYmM4ZTYwMWQzMzkwMTlmMjYyM2M5ZjU4YmY5MDBmZGQzODliYjIuLmY2ZjVlYTZkMzM0NjU3
NzE5Y2FiNTFiNzhmZDNlMDAxZjgyYWMzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIK
ICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00NCw2ICs0NSwxNiBAQCBSZWY8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gV2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MoKQogICAgIHJldHVybiBtX2NvbW1hbmRCdWZmZXIu
Y29weVJlZigpOwogfQogCit2b2lkIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRC
aW5kR3JvdXAodW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgV2ViR1BVQmluZEdyb3VwJiBiaW5k
R3JvdXApIGNvbnN0Cit7CisgICAgaWYgKCFiaW5kR3JvdXAuYmluZEdyb3VwKCkpIHsKKyAgICAg
ICAgTE9HKFdlYkdQVSwgIldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3Jv
dXAoKTogSW52YWxpZCBXZWJHUFVCaW5kR3JvdXAhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgLy8gRklYTUU6IEFueSB2YWxpZGF0aW9uIChlLmcuIGluZGV4IGR1cGxpY2F0ZXMsIG5v
dCBpbiBwaXBlbGluZSBsYXlvdXQpLgorICAgIHBhc3NFbmNvZGVyKCkuc2V0QmluZEdyb3VwKGlu
ZGV4LCAqYmluZEdyb3VwLmJpbmRHcm91cCgpKTsKK30KKwogdm9pZCBXZWJHUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiYmIHBp
cGVsaW5lKQogewogICAgIHBhc3NFbmNvZGVyKCkuc2V0UGlwZWxpbmUocGlwZWxpbmUtPnJlbmRl
clBpcGVsaW5lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKaW5kZXggZWYxMGMxZGFmZmVk
MjE2NGY0MTBlZDRiNjZjZDQxYTA2YTIyNDJiMi4uYWNmZDFmYmZlNDZmOTQ5Y2Y5ZWMwZWUzZTcy
N2UxOTkzOWFmMTIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCkBAIC0yOCwxMiArMjgs
MTIgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZl
ci5oIgotCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcjsKK2NsYXNzIFdlYkdQVUJpbmRH
cm91cDsKIGNsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lOwogCiBjbGFzcyBXZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVByb2dyYW1tYWJsZVBh
c3NFbmNvZGVyPiB7CkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcigpID0gZGVmYXVsdDsKIAogICAgIFJlZjxXZWJHUFVD
b21tYW5kQnVmZmVyPiBlbmRQYXNzKCk7CisgICAgdm9pZCBzZXRCaW5kR3JvdXAodW5zaWduZWQg
bG9uZywgY29uc3QgV2ViR1BVQmluZEdyb3VwJikgY29uc3Q7CiAgICAgdm9pZCBzZXRQaXBlbGlu
ZShSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+JiYpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlci5pZGwKaW5kZXggMzUzNjFkOTY5ZDM3NGFmZDhlYmExNWVlMjQyNjA5YWJm
OGUwYTI2Yi4uM2FjZDYzOTQ1NjgzYzRlZWQ2ODJmZTUyOGEzMWQyYThjNDdkZDRiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbApAQCAtMjQsMTggKzI0LDE0IEBACiAgKi8KIC8vIGh0
dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gu
d2ViaWRsCiAKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKIFsKICAgICBDb25kaXRpb25h
bD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCiAgICAgU2tpcFZUYWJsZVZh
bGlkYXRpb24KIF0gaW50ZXJmYWNlIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKICAg
ICBXZWJHUFVDb21tYW5kQnVmZmVyIGVuZFBhc3MoKTsKLQotICAgIC8vIEZJWE1FOiBPbmx5IHN1
cHBvcnQgcmVuZGVyIHBpcGVsaW5lcyBmb3IgcHJvdG90eXBlLgotICAgIHZvaWQgc2V0UGlwZWxp
bmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOwotLyogTm90IFlldCBJbXBsZW1lbnRl
ZAotICAgIC8vIEFsbG93ZWQgaW4gYm90aCBjb21wdXRlIGFuZCByZW5kZXIgcGFzc2VzCi0gICAg
Ly8gVE9ETzogc2V0UHVzaENvbnN0YW50cygpID8KLSAgICB2b2lkIHNldEJpbmRHcm91cCh1MzIg
aW5kZXgsIFdlYkdQVUJpbmRHcm91cCBiaW5kR3JvdXApOwotKi8KKyAgICB2b2lkIHNldEJpbmRH
cm91cCh1MzIgaW5kZXgsIFdlYkdQVUJpbmRHcm91cCBiaW5kR3JvdXAvKiwgb3B0aW9uYWwgc2Vx
dWVuY2U8dTMyPiBkeW5hbWljT2Zmc2V0cyovKTsKKyAgICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQ
VVJlbmRlclBpcGVsaW5lIHBpcGVsaW5lKTsgLy8gRklYTUU6IFN1cHBvcnQgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lcy4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDAzYTQ1ZGU3OTBhZjY1OTNkNDY3N2I4
M2VkZjg2NzkwODFhYmUzM2MuLmFjZTk2NDQ1OTYwMDNmYTM4Y2JjMDdiNzFhNWViODMzYzYzM2Q2
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzg2LDYgKzE3ODYsNyBAQCBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
aW5kR3JvdXAuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2xlZ2FjeS9HUFVMZWdhY3lCdWZmZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbGVnYWN5
L0dQVUxlZ2FjeUNvbW1hbmRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbGVnYWN5
L0dQVUxlZ2FjeUNvbW1hbmRRdWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMGNhNTU0OGMxMWRhMzBhZTNiZDA1ZTMx
NjU5Y2MyODBjNzMzMmE4Li5iZjg0N2QxOTc1ZWMzNDgyYWU5ODgwMmI5OTM5Y2ZlMmYwMWQxYmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNTg2LDkgKzI1ODYsOSBAQAogCQk5MTI3OEQ1RTIxREVEQUQ2MDBCNTcxODQgLyog
UGFnZUF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkxMjc4RDVDMjFERURBRDUwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oICovOyB9
OwogCQk5MTI3OEQ2MjIxREVEQUYwMDBCNTcxODQgLyogV29ya2VyQXVkaXRBZ2VudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEyNzhENjAyMURFREFG
MDAwQjU3MTg0IC8qIFdvcmtlckF1ZGl0QWdlbnQuaCAqLzsgfTsKIAkJOTE3NUNFNUMyMUUyODFF
RDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjcgLyog
SW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLzsgfTsKLQkJOTE3NUNFNUMyMUUyODFFRDAwREYy
QzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxNzVDRTU4MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNw
ZWN0b3JBdWRpdERPTU9iamVjdC5oICovOyB9OworCQk5MTc1Q0U1QzIxRTI4MUVEMDBERjJDMjgg
LyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkxNzVDRTU4MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JB
dWRpdERPTU9iamVjdC5oICovOyB9OwogCQk5MTc1Q0U1RTIxRTI4MUVEMDBERjJDMjcgLyogSW5z
cGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjcgLyogSW5zcGVj
dG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi87IH07Ci0JCTkxNzVDRTVFMjFFMjgxRUQw
MERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNFNUEyMUUyODFFRDAw
REYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovOyB9OworCQk5
MTc1Q0U1RTIxRTI4MUVEMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1
Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0
LmggKi87IH07CiAJCTkxQjhGMEI1MjE5NTNENjUwMDBDMkIwMCAvKiBDZXJ0aWZpY2F0ZUluZm9C
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MUI4
RjBCMzIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkxQjk1MjI0MUY1OEE1OEYw
MDkzMURDMiAvKiBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQjk1MjIyMUY1OEE1ODAwMDkzMURDMiAvKiBSZWNv
cmRpbmdTd2l6emxlVHlwZXMuaCAqLzsgfTsKIAkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8q
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNjQyMCwxMyArNjQyMCwxMyBAQAogCQkxQzY2MjYwRjFDNkU3Q0E2MDBBQjUyN0Mg
LyogRm9udEZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZhY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4MUI5NTYwRTk3MzMwODAwMjY2RTA3
IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzgxQjk1NzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM4MUI5NTgwRTk3MzMwODAwMjY2RTA3IC8q
IEluc3BlY3RvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM4NDBCN0QyMUVC
RTBCODAwRDA1MDBEIC8qIFdITFNMRW50cnlQb2ludFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hM
U0xFbnRyeVBvaW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzg0MEI5
MDIxRUMzMEY5MDBEMDUwMEQgLyogV0hMU0xBZGRyZXNzU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0hMU0xBZGRyZXNzU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4NDBC
OTcyMUVDNDAwNzAwRDA1MDBEIC8qIFdITFNMQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4NDBCOTkyMUVDNDAw
ODAwRDA1MDBEIC8qIFdITFNMR2F0aGVyRW50cnlQb2ludEl0ZW1zLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdITFNMR2F0aGVyRW50cnlQb2ludEl0ZW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUM4NDBCOUEyMUVDNDAwOTAwRDA1MDBEIC8qIFdITFNMR2F0aGVyRW50cnlQ
b2ludEl0ZW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMR2F0aGVyRW50cnlQb2ludEl0ZW1zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODQwQjlCMjFFQzQwMDkwMEQwNTAwRCAv
KiBXSExTTENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xDaGVja2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUM4MUI5NTgwRTk3MzMwODAwMjY2RTA3IC8q
IEluc3BlY3RvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUM4NDBCN0QyMUVC
RTBCODAwRDA1MDBEIC8qIFdITFNMRW50cnlQb2ludFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hM
U0xFbnRyeVBvaW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQzg0MEI5
MDIxRUMzMEY5MDBEMDUwMEQgLyogV0hMU0xBZGRyZXNzU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0hMU0xBZGRyZXNzU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDRE
RjkwQkE5RDJDODAwODFFOUQwIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEV2ZW50TG9vcE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50
TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExvb3AuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzk0LDEzICsxMDM5NCwxMyBAQAogCQk5MTI3
OEQ1RjIxREVEQUVGMDBCNTcxODQgLyogV29ya2VyQXVkaXRBZ2VudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJBdWRpdEFnZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEyNzhENjAyMURFREFGMDAwQjU3MTg0IC8qIFdvcmtlckF1
ZGl0QWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyQXVkaXRB
Z2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1NzIxRTI4MUVCMDBE
RjJDMjcgLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5MTc1Q0U1NzIxRTI4MUVCMDBERjJDMjggLyogSlNJbnNwZWN0
b3JBdWRpdERPTU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkxNzVDRTU3MjFFMjgxRUIwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JBdWRpdERP
TU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTU4MjFFMjgx
RUMwMERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjggLyogSlNJbnNwZWN0b3JB
dWRpdERPTU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JBdWRpdERPTU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTc1Q0U1
ODIxRTI4MUVDMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI3IC8qIEluc3Bl
Y3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MTc1Q0U1OTIxRTI4MUVDMDBERjJDMjggLyogSlNJ
bnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI4IC8q
IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjcg
LyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSlNJ
bnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMyOCAvKiBJbnNwZWN0
b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkxQjhGMEIzMjE5NTNENjUwMDBDMkIwMCAvKiBDZXJ0aWZpY2F0ZUlu
Zm9CYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENlcnRpZmljYXRlSW5m
b0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFCOTUyMjIxRjU4QTU4MDAw
OTMxREMyIC8qIFJlY29yZGluZ1N3aXp6bGVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWNvcmRp
bmdTd2l6emxlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFDOUYyRjgx
QUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzg5OSw2ICsxMzg5OSw3IEBACiAJCUQwMEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBX
ZWJHUFVEZXZpY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVURldmljZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5n
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDFBMjdBQzEwQzlCRkQ4MDAw
MjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGFjZVNwbGl0U3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
MUQwRjk4MjFFRTc3QzcwMDczRDE0RCAvKiBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMjMyQjU4MjFDQjQ5QjcwMDk0ODNCOSAvKiBHUFVC
aW5kR3JvdXBMYXlvdXRNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVUJpbmRHcm91
cExheW91dE1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDI0NTREMDIx
QzRBNDFDMDBCNzM2MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQ
VUJpbmRHcm91cExheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJCODNF
RDIxQzgzOTdBMDBGODU0NzMgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNjkzNywxMiArMTY5MzgsMTIgQEAKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTU4NEZFMjUxODYzN0RBQjAwODQzQjEwIC8qIENvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLmggKi8sCisJCQkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI4
IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8sCisJCQkJOTE3NUNF
NUEyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5o
ICovLAorCQkJCTkxNzVDRTU3MjFFMjgxRUIwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdERPTU9i
amVjdC5jcHAgKi8sCisJCQkJOTE3NUNFNTgyMUUyODFFQzAwREYyQzI4IC8qIEluc3BlY3RvckF1
ZGl0RE9NT2JqZWN0LmggKi8sCiAJCQkJQTU4NEZFMzkxODY0RTJEODAwODQzQjEwIC8qIEpTQ29t
bWFuZExpbmVBUElIb3N0LmNwcCAqLywKIAkJCQlBNTg0RkUzQTE4NjRFMkQ4MDA4NDNCMTAgLyog
SlNDb21tYW5kTGluZUFQSUhvc3QuaCAqLywKLQkJCQk5MTc1Q0U1OTIxRTI4MUVDMDBERjJDMjgg
LyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICovLAotCQkJCTkxNzVD
RTVBMjFFMjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVj
dC5oICovLAotCQkJCTkxNzVDRTU3MjFFMjgxRUIwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0
RE9NT2JqZWN0LmNwcCAqLywKLQkJCQk5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjggLyogSlNJbnNw
ZWN0b3JBdWRpdERPTU9iamVjdC5oICovLAogCQkJCTdBMEU3NzFDMTBDMDBEQjEwMEEwMjc2RSAv
KiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MUQxMEMwMERCMTAw
QTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggKi8sCiAJCQkpOwpAQCAtMTgyNjks
NiArMTgyNzAsNyBAQAogCQkJCUQwMDMyODg2MjFDOUE0RTUwMDYyMkFBNiAvKiBHUFVQaXBlbGlu
ZUxheW91dC5oICovLAogCQkJCUQwMDMyODg0MjFDOUEyMEQwMDYyMkFBNiAvKiBHUFVQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhDMjIxQTRDMkYzMDBFQjE5OUQgLyog
R1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAqLywKKwkJCQlEMDFEMEY5ODIxRUU3N0M3MDA3
M0QxNEQgLyogR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwICovLAogCQkJCUQwMzIxMUNG
MjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oICovLAogCQkJ
CTMxMkZGOEMxMjFBNEMyRjIwMEVCMTk5RCAvKiBHUFVRdWV1ZS5oICovLAogCQkJCUQwMDFEOUE5
MjFCMEM2NzMwMDIzQjlCQyAvKiBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50RGVzY3JpcHRv
ci5oICovLApAQCAtMjk1NTIsNyArMjk1NTQsOSBAQAogCQkJCTkzMzA5REYyMDk5RTY0OTIwMDU2
RTU4MSAvKiBJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQTcx
RkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTE3NUNFNUUyMUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTE3NUNFNUUyMUUyODFF
RDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTE3NUNFNUMyMUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0RE9N
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MTc1Q0U1QzIxRTI4MUVEMDBERjJDMjggLyog
SW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZBMjJFODcwMUYx
MDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
QjgxQ0E4MUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUM4MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTk4NSw4ICsyOTk4OSw2IEBACiAJCQkJQTc3OTc5MjkwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0Mw
MTFGNUUxMTA1MDA4OEYzRTYgLyogSlNJbWFnZVNtb290aGluZ1F1YWxpdHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4NjYyOUQzMDlEQTJCNDgwMDk2MzNBNiAvKiBKU0lucHV0RXZlbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTkxNzVDRTVFMjFFMjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1
ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTE3NUNFNUMyMUUy
ODFFRDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBMEU3NzFGMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9z
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NzEwRTYxREI3MDBDNzAwMkRDRUMzIC8qIEpTSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEI0NTc2MURDNDFEQkEw
MDQ0M0MzRiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJp
bmRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRH
cm91cC5oCmluZGV4IDgwNjEzODM2Nzk3MWRlNmJhZDVjYjY1YWYxOWY3NTUxMGNjMzMwOTIuLjJj
ZGMwNzM3MzYwMTFlYWEwMmIwZTY2MzdlYTJkNDMxMGM2ZTczMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKQEAgLTQxLDYg
KzQxLDkgQEAgY2xhc3MgR1BVQmluZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQmluZEdy
b3VwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVCaW5kR3JvdXA+IGNyZWF0ZShHUFVC
aW5kR3JvdXBEZXNjcmlwdG9yJiYpOwogCisgICAgY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0JiBs
YXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dC5nZXQoKTsgfQorICAgIGNvbnN0IFZlY3Rv
cjxHUFVCaW5kR3JvdXBCaW5kaW5nPiYgYmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2JpbmRp
bmdzOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVQmluZEdyb3VwKEdQVUJpbmRHcm91
cERlc2NyaXB0b3ImJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaAppbmRleCBmMmFkODllNzBkZjBmMzFl
ZDkzZTY2ODQyMTY1MDFjNjcxZDM3YTNlLi42MjQ0NDQzYjI4N2M5MGZlOGE5ZTEyYjhlZWUwZTY4
ZWM3NWU2ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dC5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
IAogICAgIHVzaW5nIEJpbmRpbmdzTWFwVHlwZSA9IEhhc2hNYXA8dW5zaWduZWQgbG9uZyBsb25n
LCBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLCBXVEY6OkludEhhc2g8dW5zaWduZWQgbG9uZyBs
b25nPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZCBsb25nIGxv
bmc+PjsKICAgICBjb25zdCBCaW5kaW5nc01hcFR5cGUmIGJpbmRpbmdzTWFwKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaW5kaW5nc01hcDsgfQorICAgIGNvbnN0IEFyZ3VtZW50RW5jb2RlcnMmIGFyZ3Vt
ZW50RW5jb2RlcnMoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50RW5jb2RlcnM7IH0KIAogcHJp
dmF0ZToKICAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYsIEFyZ3VtZW50
RW5jb2RlcnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAppbmRleCA4MWU4ZTk5ZTI4MDZhMmJkNWQxNjFkNjcw
NDIyOWJhMzVkMTI1ZmJmLi4wN2EyNDE2NzM1YWIxOGE3MGM1NjY1ZWE1NjcyMjM5ZjJmNGIwZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29t
bWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21tYW5kQnVmZmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKKyNpbmNsdWRlICJHUFVEZXZpY2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC0z
NSwyMSArMzYsMjEgQEAgT0JKQ19QUk9UT0NPTChNVExDb21tYW5kQnVmZmVyKTsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBHUFVEZXZpY2U7Ci0KIHVzaW5nIFBsYXRmb3JtQ29tbWFu
ZEJ1ZmZlciA9IE1UTENvbW1hbmRCdWZmZXI7CiB1c2luZyBQbGF0Zm9ybUNvbW1hbmRCdWZmZXJT
bWFydFB0ciA9IFJldGFpblB0cjxNVExDb21tYW5kQnVmZmVyPjsKIAogY2xhc3MgR1BVQ29tbWFu
ZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbW1hbmRCdWZmZXI+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IGNyZWF0ZShHUFVEZXZpY2UmKTsK
KyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IGNyZWF0ZShSZWY8R1BVRGV2aWNl
Pik7CiAKICAgICBQbGF0Zm9ybUNvbW1hbmRCdWZmZXIqIHBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1Db21tYW5kQnVmZmVyLmdldCgpOyB9CisgICAgUmVm
PEdQVURldmljZT4gZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2UuY29weVJlZigpOyB9
CiAKIHByaXZhdGU6Ci0gICAgR1BVQ29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJT
bWFydFB0ciYmKTsKKyAgICBHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNt
YXJ0UHRyJiYsIFJlZjxHUFVEZXZpY2U+JiYpOwogCiAgICAgUGxhdGZvcm1Db21tYW5kQnVmZmVy
U21hcnRQdHIgbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXI7CisgICAgUmVmPEdQVURldmljZT4gbV9k
ZXZpY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDExMzI5ZWU4NWU1
MWIwMmJkMzFjODFiM2ZlMmEyMTM5NDMyZDc0ZjMuLjQxNTI0YTU4N2RhYzFlOGFhZjQwN2M4Yjky
NzY0ZTJmZmI2ZWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgi
CiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDM3
NmQwZmU2MmZiZDMzZmJmN2UyZTE2YzA2NGJkYjIyYTA0ZmY0OTcuLjZlNmQ1MTUzMTg1YjhiYWVk
ZTRiMzQ5Y2IwNWEyMzE3Y2JhMThhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI3LDkgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BV
UXVldWUuaCIKLQogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQzLDYgKzQxLDcgQEAgdXNp
bmcgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+OwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiBjbGFzcyBHUFVCdWZmZXI7CitjbGFzcyBHUFVDb21tYW5k
QnVmZmVyOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGlu
ZTsKIGNsYXNzIEdQVVNoYWRlck1vZHVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJjYWIxNzdjYWM0ZWZjNDVmMWRjNmFlNDVhOTQzYjRjZGI2NTg2
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
KFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlKQorICAgIDogbV9kZXZpY2UoV1RGTW92ZShkZXZpY2Up
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCA5NDhjMGM4ODZhOTNh
OTU4NTgxNTkwYzlhNTJiNTQ0YTRiZDcyNmU1Li40YTRiYzc0OWU5ODJlY2UxMTE2MzMzMjc3ZjYx
MjgzZDNkNTlhZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApAQCAtMjcs
MTIgKzI3LDE4IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQmluZEdy
b3VwQmluZGluZy5oIgorI2luY2x1ZGUgIkdQVURldmljZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKK09CSkNfUFJPVE9DT0woTVRMQXJndW1lbnRFbmNvZGVyKTsKK09CSkNfUFJP
VE9DT0woTVRMQnVmZmVyKTsKIE9CSkNfUFJPVE9DT0woTVRMQ29tbWFuZEVuY29kZXIpOworT0JK
Q19QUk9UT0NPTChNVExSZXNvdXJjZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
R1BVQmluZEdyb3VwOwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKIHVzaW5nIFBsYXRmb3Jt
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIgPSBNVExDb21tYW5kRW5jb2RlcjsKQEAgLTQyLDEzICs0
OCwyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIo
KSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGVuZFBhc3MoKTsKLQorICAgIHZvaWQgc2V0QmluZEdy
b3VwKHVuc2lnbmVkIGxvbmcsIGNvbnN0IEdQVUJpbmRHcm91cCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYpID0gMDsKIAogcHJvdGVjdGVk
OgorICAgIGV4cGxpY2l0IEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKFJlZjxHUFVEZXZpY2U+
JiYpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1Qcm9ncmFtbWFibGVQYXNzRW5jb2RlciogcGxhdGZv
cm1QYXNzRW5jb2RlcigpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNldFJlc291
cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRp
bmdSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcsIGNvbnN0IGNoYXIqIGNvbnN0KTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVzb3VyY2UgKiwgdW5zaWduZWQgbG9uZykgPSAwOwor
CisgICAgLy8gUmVuZGVyIGNvbW1hbmQgZW5jb2RlciBtZXRob2RzLgorICAgIHZpcnR1YWwgdm9p
ZCBzZXRWZXJ0ZXhCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxv
bmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKiwg
dW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykgeyB9CisKKyAgICBSZWY8R1BVRGV2aWNlPiBt
X2RldmljZTsKICAgICBib29sIG1faXNFbmNvZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5j
b2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBh
c3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYxMmMx
Mi4uMDQyZjdkMDk4YzgxZjJiOWE2MTBjYjQ3Y2Y0MDVhZjdlNGE5ZjI0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBh
c3NFbmNvZGVyLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBHUFVCdWZmZXI7CiBjbGFzcyBHUFVDb21tYW5kQnVmZmVyOworY2xhc3MgR1BVRGV2aWNlOwog
CiBzdHJ1Y3QgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I7CiAKQEAgLTU3LDExICs1OCwxNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2ln
bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgotICAgIEdQVVJlbmRlclBhc3NF
bmNvZGVyKFBsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXJTbWFydFB0ciYmKTsKKyAgICBHUFVSZW5k
ZXJQYXNzRW5jb2RlcihQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHImJiwgUmVmPEdQ
VURldmljZT4mJik7CiAgICAgfkdQVVJlbmRlclBhc3NFbmNvZGVyKCkgeyBlbmRQYXNzKCk7IH0g
Ly8gRW5zdXJlIHRoYXQgZW5jb2RpbmcgaGFzIGVuZGVkIGJlZm9yZSByZWxlYXNlLgogCiAgICAg
UGxhdGZvcm1Qcm9ncmFtbWFibGVQYXNzRW5jb2RlciogcGxhdGZvcm1QYXNzRW5jb2RlcigpIGNv
bnN0IGZpbmFsOwogCisgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIKKyAgICB2b2lk
IHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpIGZpbmFsOworICAgIHZv
aWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBs
b25nKSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNp
Z25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKKwogICAgIFBsYXRmb3JtUmVuZGVyUGFz
c0VuY29kZXJTbWFydFB0ciBtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXI7CiAgICAgUmVmUHRy
PEdQVVJlbmRlclBpcGVsaW5lPiBtX3BpcGVsaW5lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFu
ZEJ1ZmZlck1ldGFsLm1tCmluZGV4IDYxMjU5ZDIzNGZiM2ExMjRmOTkxNzg0YTVkOGZkNjg4NzAz
N2UyMDguLmM2OWYyNzcwMGUwNGZlNTRmZWJjZjAyZDNiMGNmY2U4MTdkZDQyNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5k
QnVmZmVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQpAQCAtMzcsMTQgKzM3LDE0IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IEdQVUNvbW1hbmRC
dWZmZXI6OmNyZWF0ZShHUFVEZXZpY2UmIGRldmljZSkKK1JlZlB0cjxHUFVDb21tYW5kQnVmZmVy
PiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoUmVmPEdQVURldmljZT4gZGV2aWNlKQogewotICAg
IGlmICghZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkpIHsKKyAgICBpZiAoIWRldmljZS0+cGxhdGZv
cm1EZXZpY2UoKSkgewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVQ29tbWFuZEJ1ZmZlcjo6Y3Jl
YXRlKCk6IEludmFsaWQgR1BVRGV2aWNlISIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBhdXRvIGdwdUNvbW1hbmRRdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworICAg
IGF1dG8gZ3B1Q29tbWFuZFF1ZXVlID0gZGV2aWNlLT5nZXRRdWV1ZSgpOwogICAgIGlmICghZ3B1
Q29tbWFuZFF1ZXVlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNjMsMTEgKzYzLDEy
IEBAIFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BV
RGV2aWNlJiBkZXZpY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgR1BVQ29tbWFuZEJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZmZXIpLCBX
VEZNb3ZlKGRldmljZSkpKTsKIH0KIAotR1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZl
cihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciYmIGJ1ZmZlcikKK0dQVUNvbW1hbmRCdWZm
ZXI6OkdQVUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHImJiBidWZm
ZXIsIFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlKQogICAgIDogbV9wbGF0Zm9ybUNvbW1hbmRCdWZm
ZXIoV1RGTW92ZShidWZmZXIpKQorICAgICwgbV9kZXZpY2UoV1RGTW92ZShkZXZpY2UpKQogewog
ICAgIFVOVVNFRF9QQVJBTShtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDJlNjQz
NjM4MTQ2YTFiODljYTdmOGM5Njg2NjUzZDI3MjVkMzQxOGUuLjE2NmUxMDE2ZmQ2ZGVkOGEyODA5
MjY0NTQzODc1YjA2OTU1MDczMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0yOCw3ICsyOCwxMSBAQAogCiAjaWYgRU5BQkxF
KFdFQkdQVSkKIAorI2ltcG9ydCAiR1BVQmluZEdyb3VwLmgiCisjaW1wb3J0ICJHUFVCaW5kR3Jv
dXBMYXlvdXRCaW5kaW5nLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0IDxNZXRhbC9N
ZXRhbC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00MSw2ICs0NSw5OSBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyOjplbmRQYXNzKCkKICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKIH0KIAordm9pZCBH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihN
VExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BVQmluZGluZ1Jlc291
cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hhciogY29uc3QgZnVu
Y3Rpb25OYW1lKQoreworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShmdW5jdGlv
bk5hbWUpOworI2VuZGlmCisgICAgaWYgKCFhcmd1bWVudEVuY29kZXIpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIiVzOiBObyBhcmd1bWVudCBlbmNvZGVyIGZvciByZXF1ZXN0ZWQgc3RhZ2UgZm91
bmQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
V1RGOjpob2xkc19hbHRlcm5hdGl2ZTxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSkpIHsKKyAg
ICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBidWZmZXIgdHlwZSEiLCBm
dW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgYnVmZmVy
QmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKTsKKyAgICBhdXRv
IGJ1ZmZlciA9IGJ1ZmZlckJpbmRpbmcuYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZlcigpOworCisgICAg
aWYgKCFidWZmZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIE1UTEJ1ZmZl
ciBpbiBHUFVCdWZmZXJCaW5kaW5nISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBbYXJndW1l
bnRFbmNvZGVyIHNldEJ1ZmZlcjpidWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRpbmcub2Zmc2V0IGF0
SW5kZXg6aW5kZXhdOworICAgIHVzZVJlc291cmNlKGJ1ZmZlciwgTVRMUmVzb3VyY2VVc2FnZVJl
YWQpOworCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKwordm9pZCBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGxvbmcgaW5kZXgsIGNv
bnN0IEdQVUJpbmRHcm91cCYgYmluZEdyb3VwKQoreworICAgIGNvbnN0IGNoYXIqIGNvbnN0IGZ1
bmN0aW9uTmFtZSA9ICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKCki
OworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOworI2Vu
ZGlmCisgICAgLy8gQ3JlYXRlIGFyZ3VtZW50IGJ1ZmZlcnMgZm9yIGVhY2ggTVRMQXJndW1lbnRF
bmNvZGVyIGluIHRoZSBwaXBlbGluZSBsYXlvdXQuCisgICAgaWYgKCFtX2RldmljZS0+cGxhdGZv
cm1EZXZpY2UoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgTVRMRGV2aWNl
ISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBh
dXRvJiBlbmNvZGVycyA9IGJpbmRHcm91cC5sYXlvdXQoKS5hcmd1bWVudEVuY29kZXJzKCk7Cisg
ICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gdmVydGV4QXJndW1lbnRCdWZmZXIsIGZyYWdtZW50QXJn
dW1lbnRCdWZmZXIsIGNvbXB1dGVBcmd1bWVudEJ1ZmZlcjsKKworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKworICAgIGlmIChlbmNvZGVycy52ZXJ0ZXgpIHsKKyAgICAgICAgdmVy
dGV4QXJndW1lbnRCdWZmZXIgPSBhZG9wdE5TKFttX2RldmljZS0+cGxhdGZvcm1EZXZpY2UoKSBu
ZXdCdWZmZXJXaXRoTGVuZ3RoOmVuY29kZXJzLnZlcnRleC5nZXQoKS5lbmNvZGVkTGVuZ3RoIG9w
dGlvbnM6MF0pOworICAgICAgICBbZW5jb2RlcnMudmVydGV4IHNldEFyZ3VtZW50QnVmZmVyOnZl
cnRleEFyZ3VtZW50QnVmZmVyLmdldCgpIG9mZnNldDowXTsKKyAgICAgICAgc2V0VmVydGV4QnVm
ZmVyKHZlcnRleEFyZ3VtZW50QnVmZmVyLmdldCgpLCAwLCBpbmRleCk7CisgICAgfQorICAgIGlm
IChlbmNvZGVycy5mcmFnbWVudCkgeworICAgICAgICBmcmFnbWVudEFyZ3VtZW50QnVmZmVyID0g
YWRvcHROUyhbbV9kZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDpl
bmNvZGVycy5mcmFnbWVudC5nZXQoKS5lbmNvZGVkTGVuZ3RoIG9wdGlvbnM6MF0pOworICAgICAg
ICBbZW5jb2RlcnMuZnJhZ21lbnQgc2V0QXJndW1lbnRCdWZmZXI6ZnJhZ21lbnRBcmd1bWVudEJ1
ZmZlci5nZXQoKSBvZmZzZXQ6MF07CisgICAgICAgIHNldEZyYWdtZW50QnVmZmVyKGZyYWdtZW50
QXJndW1lbnRCdWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKKyAgICB9CisgICAgaWYgKGVuY29kZXJz
LmNvbXB1dGUpIHsKKyAgICAgICAgY29tcHV0ZUFyZ3VtZW50QnVmZmVyID0gYWRvcHROUyhbbV9k
ZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDplbmNvZGVycy5jb21w
dXRlLmdldCgpLmVuY29kZWRMZW5ndGggb3B0aW9uczowXSk7CisgICAgICAgIFtlbmNvZGVycy5j
b21wdXRlIHNldEFyZ3VtZW50QnVmZmVyOmNvbXB1dGVBcmd1bWVudEJ1ZmZlci5nZXQoKSBvZmZz
ZXQ6MF07CisgICAgICAgIC8vIEZJWE1FOiBGaW5pc2ggc3VwcG9ydCBmb3IgY29tcHV0ZS4KKyAg
ICB9CisKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgLy8gU2V0IGVhY2gg
cmVzb3VyY2Ugb24gZWFjaCBNVExBcmd1bWVudEVuY29kZXIgaXQgc2hvdWxkIGJlIHZpc2libGUg
b24uCisgICAgY29uc3QgYXV0byYgYmluZGluZ3NNYXAgPSBiaW5kR3JvdXAubGF5b3V0KCkuYmlu
ZGluZ3NNYXAoKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBiaW5kR3JvdXAuYmlu
ZGluZ3MoKSkgeworICAgICAgICBhdXRvIGl0ZXJhdG9yID0gYmluZGluZ3NNYXAuZmluZChiaW5k
aW5nLmJpbmRpbmcpOworICAgICAgICBpZiAoaXRlcmF0b3IgPT0gYmluZGluZ3NNYXAuZW5kKCkp
IHsKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogR1BVQmluZEdyb3VwQmluZGluZyAlbHUg
bm90IGZvdW5kIGluIEdQVUJpbmRHcm91cExheW91dCEiLCBmdW5jdGlvbk5hbWUsIGJpbmRpbmcu
YmluZGluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYXV0byBi
aW5kR3JvdXBMYXlvdXRCaW5kaW5nID0gaXRlcmF0b3ItPnZhbHVlOworCisgICAgICAgIHN3aXRj
aCAoYmluZEdyb3VwTGF5b3V0QmluZGluZy50eXBlKSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG1vcmUgcmVzb3VyY2UgdHlwZXMsIGFuZCBzdXBwb3J0IGNvbXB1dGUgc3RhZ2UgcmVzb3Vy
Y2VzLgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBl
OjpVbmlmb3JtQnVmZmVyOgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6
OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICBpZiAoYmluZEdyb3Vw
TGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRFWCkKKyAg
ICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGVuY29kZXJzLnZlcnRl
eC5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUp
OworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQ
VVNoYWRlclN0YWdlQml0OjpGUkFHTUVOVCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFz
QnVmZmVyT25FbmNvZGVyKGVuY29kZXJzLmZyYWdtZW50LmdldCgpLCBiaW5kaW5nLnJlc291cmNl
LCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBS
ZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFs
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggNTU2NTA2M2Y2NDAwYjQwMzg1NDM1M2RhYWM2N2Uz
NTA1MTQwMTQ3My4uZjczYTk1MzgxYjE4NDUxNGY3YTAxNTdhNWRiODNmYWI4ZmYyOGU3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJl
bmRlclBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2ltcG9ydCAiR1BVQnVmZmVyLmgiCiAjaW1wb3J0ICJHUFVDb21tYW5kQnVmZmVy
LmgiCisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKICNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmgiCiAjaW1wb3J0ICJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgpAQCAtNjUsMTEgKzY2LDEyIEBAIFJlZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gR1BVUmVu
ZGVyUGFzc0VuY29kZXI6OmNyZWF0ZShjb25zdCBHUFVDb21tYW5kQnVmZmVyCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVy
UGFzc0VuY29kZXIoV1RGTW92ZShtdGxFbmNvZGVyKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgR1BVUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92ZShtdGxFbmNvZGVyKSwgYnVmZmVyLmRldmlj
ZSgpKSk7CiB9CiAKLUdQVVJlbmRlclBhc3NFbmNvZGVyOjpHUFVSZW5kZXJQYXNzRW5jb2RlcihQ
bGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHImJiBlbmNvZGVyKQotICAgIDogbV9wbGF0
Zm9ybVJlbmRlclBhc3NFbmNvZGVyKFdURk1vdmUoZW5jb2RlcikpCitHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6R1BVUmVuZGVyUGFzc0VuY29kZXIoUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0
UHRyJiYgZW5jb2RlciwgUmVmPEdQVURldmljZT4mJiBkZXZpY2UpCisgICAgOiBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2RlcihXVEZNb3ZlKGRldmljZSkpCisgICAgLCBtX3BsYXRmb3JtUmVuZGVy
UGFzc0VuY29kZXIoV1RGTW92ZShlbmNvZGVyKSkKIHsKIH0KIApAQCAtMTE4LDYgKzEyMCwyMSBA
QCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KHVuc2lnbmVkIGxvbmcgdmVydGV4Q291
bnQsIHVuc2lnbmVkIGxvbmcgaW5zdGFuYwogICAgICAgICBiYXNlSW5zdGFuY2U6Zmlyc3RJbnN0
YW5jZV07CiB9CiAKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnVzZVJlc291cmNlKE1UTFJl
c291cmNlICpyZXNvdXJjZSwgTVRMUmVzb3VyY2VVc2FnZSB1c2FnZSkKK3sKKyAgICBbbV9wbGF0
Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHVzZVJlc291cmNlOnJlc291cmNlIHVzYWdlOnVzYWdlXTsK
K30KKwordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZl
ciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkKK3sK
KyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldFZlcnRleEJ1ZmZlcjpidWZmZXIg
b2Zmc2V0Om9mZnNldCBhdEluZGV4OmluZGV4XTsKK30KKwordm9pZCBHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6c2V0RnJhZ21lbnRCdWZmZXIoTVRMQnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0LCB1bnNpZ25lZCBsb25nIGluZGV4KQoreworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFz
c0VuY29kZXIgc2V0RnJhZ21lbnRCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRleDpp
bmRleF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRy
aWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRy
aWFuZ2xlLXN0cmlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIzNmQyN2RjN2E4YzQxNDIwNjVlOTE1ZTVk
MzE4MWZkMGQ4MWE0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9idWZm
ZXItcmVzb3VyY2UtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHUFUgSGVsbG8gVHJp
YW5nbGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2ViR1BVIGNvcnJl
Y3RseSByZW5kZXJzIGEgZ3JlZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJ2
ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwiPgorPHA+UGFzcyBpZiBz
cXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0
aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1
bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgc2hhZGVyQ29kZSA9IGAKKyNp
bmNsdWRlIDxtZXRhbF9zdGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0YWw7CisKK3N0
cnVjdCBWZXJ0ZXgKK3sKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlvbl1dOworfTsKKwor
c3RydWN0IEFyZ3VtZW50cyB7CisgICAgZGV2aWNlIFZlcnRleCogdmVydGV4QnVmZmVyOworfTsK
KwordmVydGV4IFZlcnRleCB2ZXJ0ZXhfbWFpbihjb25zdCBkZXZpY2UgQXJndW1lbnRzJiBhcmdz
IFtbYnVmZmVyKDApXV0sIHVpbnQgdmlkIFtbdmVydGV4X2lkXV0pCit7CisgICAgcmV0dXJuIGFy
Z3MudmVydGV4QnVmZmVyW3ZpZF07Cit9CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWlu
KFZlcnRleCB2IFtbc3RhZ2VfaW5dXSkKK3sKKyAgICByZXR1cm4gZmxvYXQ0KDAuMCwgMS4wLCAw
LjAsIDEuMCk7Cit9CitgCisKK2NvbnN0IGJ1ZmZlclNpemUgPSA0ICogNCAqIDQ7CisKK2Z1bmN0
aW9uIGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZpY2UpIHsKKyAgICBjb25zdCBidWZmZXIgPSBkZXZp
Y2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogYnVmZmVyU2l6ZSwgdXNhZ2U6IFdlYkdQVUJ1ZmZlclVz
YWdlLlZFUlRFWCB9KTsKKyAgICAKKyAgICBsZXQgYXJyYXlCdWZmZXIgPSBidWZmZXIubWFwcGlu
ZzsKKyAgICBsZXQgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpOwor
CisgICAgZmxvYXRBcnJheVswXSA9IC0xOworICAgIGZsb2F0QXJyYXlbMV0gPSAxOworICAgIGZs
b2F0QXJyYXlbMl0gPSAwOworICAgIGZsb2F0QXJyYXlbM10gPSAxOworCisgICAgZmxvYXRBcnJh
eVs0XSA9IC0xOworICAgIGZsb2F0QXJyYXlbNV0gPSAtMTsKKyAgICBmbG9hdEFycmF5WzZdID0g
MDsKKyAgICBmbG9hdEFycmF5WzddID0gMTsKKworICAgIGZsb2F0QXJyYXlbOF0gPSAxOworICAg
IGZsb2F0QXJyYXlbOV0gPSAxOworICAgIGZsb2F0QXJyYXlbMTBdID0gMDsKKyAgICBmbG9hdEFy
cmF5WzExXSA9IDE7CisKKyAgICBmbG9hdEFycmF5WzEyXSA9IDE7CisgICAgZmxvYXRBcnJheVsx
M10gPSAtMTsKKyAgICBmbG9hdEFycmF5WzE0XSA9IDA7CisgICAgZmxvYXRBcnJheVsxNV0gPSAx
OworCisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOworICAgIGNvbnN0IGNhbnZh
cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworICAgIGNvbnN0IGNvbnRleHQg
PSBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpOworICAgIC8vIEZJWE1FOiBSZXBs
YWNlIHdpdGggbm9uLU1TTCBzaGFkZXJzLgorICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmlj
ZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBzaGFkZXJDb2RlIH0pOworCisgICAgY29uc3Qg
bGF5b3V0QmluZGluZyA9IHsgYmluZGluZzogMCwgdmlzaWJpbGl0eTogV2ViR1BVU2hhZGVyU3Rh
Z2VCaXQuVkVSVEVYLCB0eXBlOiAidW5pZm9ybUJ1ZmZlciIgfTsKKyAgICBjb25zdCBiaW5kR3Jv
dXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KHsgYmluZGluZ3M6IFtsYXlv
dXRCaW5kaW5nXSB9KTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQ
aXBlbGluZUxheW91dCh7IGJpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlvdXRdIH0pOwor
ICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRl
dmljZSwgcGlwZWxpbmVMYXlvdXQpOworCisgICAgY29uc3QgdmVydGV4QnVmZmVyID0gY3JlYXRl
VmVydGV4QnVmZmVyKGRldmljZSk7CisgICAgY29uc3QgYnVmZmVyQmluZGluZyA9IHsgYnVmZmVy
OiB2ZXJ0ZXhCdWZmZXIsIG9mZnNldDogMCwgc2l6ZTogYnVmZmVyU2l6ZSB9OworICAgIGNvbnN0
IGJpbmRHcm91cEJpbmRpbmcgPSB7IGJpbmRpbmc6IDAsIHJlc291cmNlOiBidWZmZXJCaW5kaW5n
IH07CisgICAgY29uc3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7IGxheW91
dDogYmluZEdyb3VwTGF5b3V0LCBiaW5kaW5nczogW2JpbmRHcm91cEJpbmRpbmddIH0pOworCisg
ICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7Cisg
ICAgY29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21t
YW5kQnVmZmVyKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgYmluZEdyb3VwKTsK
KyAgICBjb25zdCBlbmRDb21tYW5kQnVmZmVyID0gZW5jb2RlQmFzaWNDb21tYW5kcyhwYXNzRW5j
b2RlciwgcGlwZWxpbmUpOworICAgIGNvbnN0IHF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CisK
KyAgICBxdWV1ZS5zdWJtaXQoW2VuZENvbW1hbmRCdWZmZXJdKTsKKyAgICBjb250ZXh0LnByZXNl
bnQoKTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359350</attachid>
            <date>2019-01-16 21:19:18 -0800</date>
            <delta_ts>2019-01-18 10:22:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190116211918.patch</filename>
            <type>text/plain</type>
            <size>29739</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uNmIwM2IwNGVhOTkxZjkwY2EzNDY1N2QyNjJmN2I5
NTIwYjAyZjFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAxLTE1ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
aW5kR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6bGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6YmluZGluZ3MgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6YXJndW1lbnRFbmNvZGVycyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmRldmljZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0uCisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6
c2V0RnJhZ21lbnRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
QnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6R1BV
Q29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3Vw
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0Vu
Y29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OkdQVVJlbmRl
clBhc3NFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1
c2VSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpz
ZXRGcmFnbWVudEJ1ZmZlcik6CisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4IDBhMDQ3MDk1
NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQwOTc5MzBlYmJh
ZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQVUJpbmRHcm91
cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJik7
CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR1BVQmluZEdy
b3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJiMi4uZjZmNWVh
NmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFu
ZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJHUFVCaW5kR3Jv
dXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5kR3JvdXAoKSkg
eworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5kZXggZHVwbGlj
YXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIoKS5zZXRCaW5k
R3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lkIFdlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGluZShwaXBlbGlu
ZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBlZjEw
YzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0NmY5NDljZjll
YzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTI4
LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVDb21t
YW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOworY2xhc3MgV2Vi
R1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIFdlYkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgUmVm
PFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJpbmRHcm91cCh1
bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAgICB2b2lkIHNl
dFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZkOGViYTE1ZWUy
NDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJhOGM0N2RkNGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQsMTQgQEAKICAq
LwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKICAgICBTa2lw
VlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAgLy8gRklYTUU6
IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0gICAgdm9pZCBz
ZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBOb3QgWWV0IElt
cGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJlbmRlciBwYXNz
ZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQgc2V0QmluZEdy
b3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLworICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cC8qLCBvcHRp
b25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQgc2V0UGlwZWxp
bmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3VwcG9ydCBXZWJH
UFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjYxMjQxOTJjZTk0NDUy
ZjZkMWZlNGJiZjMwOWZjZGFjNDFiNDcyYS4uOTEyMjk2MjlhZGU2ZmVhY2E5MmM0YmFlMDljNTc1
OWVlYjNlNjVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3OTEsNiArMTc5MSw3IEBAIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvbGVnYWN5L0dQVUxlZ2FjeUJ1ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9sZWdhY3kvR1BVTGVnYWN5Q29tbWFuZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9sZWdhY3kvR1BVTGVnYWN5Q29tbWFuZFF1ZXVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM0OThmYThhMmJmZWZkNWM3
OTAzMTE1YmYyMzcwODk2NmY5MjQxMTUuLjQzM2QxYmU3NzE0NjFmNzU2MTU0ZTYwNmJkZWJjZGUz
MWRiY2FiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEzOTA4LDYgKzEzOTA4LDcgQEAKIAkJRDAwRjU5NTQyMTcwMUQ4QzAw
MEQ3MURCIC8qIFdlYkdQVURldmljZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVRGV2aWNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNl
U3BsaXRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bh
Y2VTcGxpdFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FD
MTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDAxRDBGOTgyMUVFNzdDNzAwNzNEMTREIC8qIEdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAyMzJCNTgyMUNCNDlCNzAwOTQ4
M0I5IC8qIEdQVUJpbmRHcm91cExheW91dE1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
R1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQwMjQ1NEQwMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5kR3JvdXBMYXlvdXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQwMkI4M0VEMjFDODM5N0EwMEY4NTQ3MyAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Mjc4LDYgKzE4Mjc5LDcgQEAKIAkJCQlEMDAz
Mjg4NjIxQzlBNEU1MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuaCAqLywKIAkJCQlEMDAz
Mjg4NDIxQzlBMjBEMDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmggKi8s
CiAJCQkJMzEyRkY4QzIyMUE0QzJGMzAwRUIxOTlEIC8qIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlw
dG9yLmggKi8sCisJCQkJRDAxRDBGOTgyMUVFNzdDNzAwNzNEMTREIC8qIEdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmNwcCAqLywKIAkJCQlEMDMyMTFDRjIxQUM5NTRFMDA3NjNDRjIgLyogR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCAqLywKIAkJCQkzMTJGRjhDMTIxQTRDMkYyMDBFQjE5
OUQgLyogR1BVUXVldWUuaCAqLywKIAkJCQlEMDAxRDlBOTIxQjBDNjczMDAyM0I5QkMgLyogR1BV
UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2NyaXB0b3IuaCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAppbmRleCA4MDYx
MzgzNjc5NzFkZTZiYWQ1Y2I2NWFmMTlmNzU1MTBjYzMzMDkyLi4yY2RjMDczNzM2MDExZWFhMDJi
MGU2NjM3ZWEyZDQzMTBjNmU3MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oCkBAIC00MSw2ICs0MSw5IEBAIGNsYXNzIEdQ
VUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJpbmRHcm91cD4gewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRv
ciYmKTsKIAorICAgIGNvbnN0IEdQVUJpbmRHcm91cExheW91dCYgbGF5b3V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXQuZ2V0KCk7IH0KKyAgICBjb25zdCBWZWN0b3I8R1BVQmluZEdyb3VwQmlu
ZGluZz4mIGJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9iaW5kaW5nczsgfQorCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IEdQVUJpbmRHcm91cChHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
QmluZEdyb3VwTGF5b3V0LmgKaW5kZXggZjJhZDg5ZTcwZGYwZjMxZWQ5M2U2Njg0MjE2NTAxYzY3
MWQzN2EzZS4uNjI0NDQ0M2IyODdjOTBmZThhOWUxMmI4ZWVlMGU2OGVjNzVlNjg2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExh
eW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXBMYXlvdXQuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBCaW5k
aW5nc01hcFR5cGUgPSBIYXNoTWFwPHVuc2lnbmVkIGxvbmcgbG9uZywgR1BVQmluZEdyb3VwTGF5
b3V0QmluZGluZywgV1RGOjpJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6VW5zaWdu
ZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQgbG9uZyBsb25nPj47CiAgICAgY29uc3Qg
QmluZGluZ3NNYXBUeXBlJiBiaW5kaW5nc01hcCgpIGNvbnN0IHsgcmV0dXJuIG1fYmluZGluZ3NN
YXA7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJzJiBhcmd1bWVudEVuY29kZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9hcmd1bWVudEVuY29kZXJzOyB9CiAKIHByaXZhdGU6CiAgICAgR1BVQmlu
ZEdyb3VwTGF5b3V0KEJpbmRpbmdzTWFwVHlwZSYmLCBBcmd1bWVudEVuY29kZXJzJiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRC
dWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5k
QnVmZmVyLmgKaW5kZXggODFlOGU5OWUyODA2YTJiZDVkMTYxZDY3MDQyMjliYTM1ZDEyNWZiZi4u
MDdhMjQxNjczNWFiMThhNzBjNTY2NWVhNTY3MjIzOWYyZjRiMGVkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BV
RGV2aWNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtMzUsMjEgKzM2LDIxIEBAIE9C
SkNfUFJPVE9DT0woTVRMQ29tbWFuZEJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgR1BVRGV2aWNlOwotCiB1c2luZyBQbGF0Zm9ybUNvbW1hbmRCdWZmZXIgPSBNVExDb21t
YW5kQnVmZmVyOwogdXNpbmcgUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHIgPSBSZXRhaW5Q
dHI8TVRMQ29tbWFuZEJ1ZmZlcj47CiAKIGNsYXNzIEdQVUNvbW1hbmRCdWZmZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVDb21tYW5kQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHUFVDb21tYW5kQnVmZmVyPiBjcmVhdGUoR1BVRGV2aWNlJik7CisgICAgc3RhdGljIFJlZlB0
cjxHUFVDb21tYW5kQnVmZmVyPiBjcmVhdGUoUmVmPEdQVURldmljZT4pOwogCiAgICAgUGxhdGZv
cm1Db21tYW5kQnVmZmVyKiBwbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBt
X3BsYXRmb3JtQ29tbWFuZEJ1ZmZlci5nZXQoKTsgfQorICAgIFJlZjxHUFVEZXZpY2U+IGRldmlj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlLmNvcHlSZWYoKTsgfQogCiBwcml2YXRlOgotICAg
IEdQVUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHImJik7CisgICAg
R1BVQ29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciYmLCBSZWY8R1BV
RGV2aWNlPiYmKTsKIAogICAgIFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0UHRyIG1fcGxhdGZv
cm1Db21tYW5kQnVmZmVyOworICAgIFJlZjxHUFVEZXZpY2U+IG1fZGV2aWNlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmNwcAppbmRleCAxMTMyOWVlODVlNTFiMDJiZDMxYzgxYjNmZTJh
MjEzOTQzMmQ3NGYzLi40MTUyNGE1ODdkYWMxZThhYWY0MDdjOGI5Mjc2NGUyZmZiNmVlMzM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVCdWZmZXJEZXNj
cmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBp
cGVsaW5lTGF5b3V0LmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgi
CiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAppbmRleCAzNzZkMGZlNjJmYmQzM2ZiZjdl
MmUxNmMwNjRiZGIyMmEwNGZmNDk3Li42ZTZkNTE1MzE4NWI4YmFlZGU0YjM0OWNiMDVhMjMxN2Ni
YTE4YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VURldmljZS5oCkBAIC0yNyw5ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5j
bHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVF1ZXVlLmgiCi0KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CkBAIC00Myw2ICs0MSw3IEBAIHVzaW5nIFBsYXRmb3JtRGV2aWNl
U21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMRGV2aWNlPjsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5
b3V0OwogY2xhc3MgR1BVQnVmZmVyOworY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNsYXNzIEdQ
VVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiBjbGFzcyBHUFVTaGFk
ZXJNb2R1bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yY2FiMTc3Y2FjNGVmYzQ1ZjFkYzZhZTQ1YTk0M2I0Y2RiNjU4NjUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcihSZWY8R1BVRGV2aWNlPiYm
IGRldmljZSkKKyAgICA6IG1fZGV2aWNlKFdURk1vdmUoZGV2aWNlKSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyLmgKaW5kZXggOTQ4YzBjODg2YTkzYTk1ODU4MTU5MGM5YTUyYjU0
NGE0YmQ3MjZlNS4uNGE0YmM3NDllOTgyZWNlMTExNjMzMzI3N2Y2MTI4M2QzZDU5YWZlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTI3LDEyICsyNywxOCBAQAogCiAj
aWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKKyNp
bmNsdWRlICJHUFVEZXZpY2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCitPQkpD
X1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BST1RPQ09MKE1UTEJ1ZmZlcik7
CiBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRFbmNvZGVyKTsKK09CSkNfUFJPVE9DT0woTVRMUmVz
b3VyY2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQVUJpbmRHcm91cDsKIGNs
YXNzIEdQVVJlbmRlclBpcGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyID0gTVRMQ29tbWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDgsMjIgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAg
ICAgdm9pZCBlbmRQYXNzKCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25n
LCBjb25zdCBHUFVCaW5kR3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGlwZWxpbmUoUmVm
PEdQVVJlbmRlclBpcGVsaW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKKyAgICBleHBsaWNpdCBH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcihSZWY8R1BVRGV2aWNlPiYmKTsKICAgICB2aXJ0dWFs
IFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFzc0VuY29kZXIoKSBj
b25zdCA9IDA7CiAKIHByaXZhdGU6CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNv
ZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmLCB1bnNp
Z25lZCBsb25nLCBjb25zdCBjaGFyKiBjb25zdCk7CisgICAgdmlydHVhbCB2b2lkIHVzZVJlc291
cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpID0gMDsKKworICAgIC8vIFJlbmRlciBj
b21tYW5kIGVuY29kZXIgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmVydGV4QnVmZmVy
KE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0RnJhZ21lbnRCdWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxvbmcsIHVu
c2lnbmVkIGxvbmcpIHsgfQorCisgICAgUmVmPEdQVURldmljZT4gbV9kZXZpY2U7CiAgICAgYm9v
bCBtX2lzRW5jb2RpbmcgeyB0cnVlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4
IDUwMWFhM2QxNTIxNDcyOTExZjJlMDA4ZmRhZDI2ZDgxMjI2MTJjMTIuLjA0MmY3ZDA5OGM4MWYy
YjlhNjEwY2I0N2NmNDA1YWY3ZTRhOWYyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC00
MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQnVmZmVyOwogY2xh
c3MgR1BVQ29tbWFuZEJ1ZmZlcjsKK2NsYXNzIEdQVURldmljZTsKIAogc3RydWN0IEdQVVJlbmRl
clBhc3NEZXNjcmlwdG9yOwogCkBAIC01NywxMSArNTgsMTYgQEAgcHVibGljOgogICAgIHZvaWQg
ZHJhdyh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25l
ZCBsb25nKTsKIAogcHJpdmF0ZToKLSAgICBHUFVSZW5kZXJQYXNzRW5jb2RlcihQbGF0Zm9ybVJl
bmRlclBhc3NFbmNvZGVyU21hcnRQdHImJik7CisgICAgR1BVUmVuZGVyUGFzc0VuY29kZXIoUGxh
dGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyJiYsIFJlZjxHUFVEZXZpY2U+JiYpOwogICAg
IH5HUFVSZW5kZXJQYXNzRW5jb2RlcigpIHsgZW5kUGFzcygpOyB9IC8vIEVuc3VyZSB0aGF0IGVu
Y29kaW5nIGhhcyBlbmRlZCBiZWZvcmUgcmVsZWFzZS4KIAogICAgIFBsYXRmb3JtUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCBmaW5hbDsKIAorICAg
IC8vIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyCisgICAgdm9pZCB1c2VSZXNvdXJjZShNVExS
ZXNvdXJjZSAqLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZl
cihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykgZmluYWw7CisgICAg
dm9pZCBzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWdu
ZWQgbG9uZykgZmluYWw7CisKICAgICBQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHIg
bV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyOwogICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGlu
ZT4gbV9waXBlbGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQpp
bmRleCA2MTI1OWQyMzRmYjNhMTI0Zjk5MTc4NGE1ZDhmZDY4ODcwMzdlMjA4Li5jNjlmMjc3MDBl
MDRmZTU0ZmViY2YwMmQzYjBjZmNlODE3ZGQ0MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5k
QnVmZmVyTWV0YWwubW0KQEAgLTM3LDE0ICszNywxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BV
RGV2aWNlJiBkZXZpY2UpCitSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEJ1ZmZl
cjo6Y3JlYXRlKFJlZjxHUFVEZXZpY2U+IGRldmljZSkKIHsKLSAgICBpZiAoIWRldmljZS5wbGF0
Zm9ybURldmljZSgpKSB7CisgICAgaWYgKCFkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkpIHsKICAg
ICAgICAgTE9HKFdlYkdQVSwgIkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZSgpOiBJbnZhbGlkIEdQ
VURldmljZSEiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBn
cHVDb21tYW5kUXVldWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKyAgICBhdXRvIGdwdUNvbW1hbmRR
dWV1ZSA9IGRldmljZS0+Z2V0UXVldWUoKTsKICAgICBpZiAoIWdwdUNvbW1hbmRRdWV1ZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTYzLDExICs2MywxMiBAQCBSZWZQdHI8R1BVQ29t
bWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKEdQVURldmljZSYgZGV2aWNlKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEdQVUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZmZXIpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHUFVDb21tYW5kQnVmZmVyKFdURk1vdmUoYnVmZmVyKSwgV1RGTW92ZShkZXZpY2UpKSk7
CiB9CiAKLUdQVUNvbW1hbmRCdWZmZXI6OkdQVUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5k
QnVmZmVyU21hcnRQdHImJiBidWZmZXIpCitHUFVDb21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVm
ZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0UHRyJiYgYnVmZmVyLCBSZWY8R1BVRGV2aWNl
PiYmIGRldmljZSkKICAgICA6IG1fcGxhdGZvcm1Db21tYW5kQnVmZmVyKFdURk1vdmUoYnVmZmVy
KSkKKyAgICAsIG1fZGV2aWNlKFdURk1vdmUoZGV2aWNlKSkKIHsKICAgICBVTlVTRURfUEFSQU0o
bV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0
YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJv
Z3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCAyZTY0MzYzODE0NmExYjg5Y2E3Zjhj
OTY4NjY1M2QyNzI1ZDM0MThlLi4xNjZlMTAxNmZkNmRlZDhhMjgwOTI2NDU0Mzg3NWIwNjk1NTA3
MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJN
ZXRhbC5tbQpAQCAtMjgsNyArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbXBv
cnQgIkdQVUJpbmRHcm91cC5oIgorI2ltcG9ydCAiR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5o
IgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDEsNiArNDUsOTkgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygp
CiAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiB9CiAKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVy
ICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYgcmVzb3VyY2UsIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSkKK3sKKyNp
ZiBMT0dfRElTQUJMRUQKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKKyNlbmRpZgor
ICAgIGlmICghYXJndW1lbnRFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczogTm8g
YXJndW1lbnQgZW5jb2RlciBmb3IgcmVxdWVzdGVkIHN0YWdlIGZvdW5kISIsIGZ1bmN0aW9uTmFt
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8R1BVQnVmZmVyQmluZGluZz4ocmVzb3VyY2UpKSB7CisgICAgICAgIExPRyhXZWJHUFUs
ICIlczogUmVzb3VyY2UgaXMgbm90IGEgYnVmZmVyIHR5cGUhIiwgZnVuY3Rpb25OYW1lKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGJ1ZmZlckJpbmRpbmcgPSBXVEY6Omdl
dDxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSk7CisgICAgYXV0byBidWZmZXIgPSBidWZmZXJC
aW5kaW5nLmJ1ZmZlci0+cGxhdGZvcm1CdWZmZXIoKTsKKworICAgIGlmICghYnVmZmVyKSB7Cisg
ICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBNVExCdWZmZXIgaW4gR1BVQnVmZmVyQmlu
ZGluZyEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgW2FyZ3VtZW50RW5jb2RlciBzZXRCdWZm
ZXI6YnVmZmVyIG9mZnNldDpidWZmZXJCaW5kaW5nLm9mZnNldCBhdEluZGV4OmluZGV4XTsKKyAg
ICB1c2VSZXNvdXJjZShidWZmZXIsIE1UTFJlc291cmNlVXNhZ2VSZWFkKTsKKworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBHUFVCaW5kR3JvdXAm
IGJpbmRHcm91cCkKK3sKKyAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCgpIjsKKyNpZiBMT0dfRElTQUJM
RUQKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKKyNlbmRpZgorICAgIC8vIENyZWF0
ZSBhcmd1bWVudCBidWZmZXJzIGZvciBlYWNoIE1UTEFyZ3VtZW50RW5jb2RlciBpbiB0aGUgcGlw
ZWxpbmUgbGF5b3V0LgorICAgIGlmICghbV9kZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkpIHsKKyAg
ICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIE1UTERldmljZSEiLCBmdW5jdGlvbk5hbWUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgZW5jb2RlcnMgPSBi
aW5kR3JvdXAubGF5b3V0KCkuYXJndW1lbnRFbmNvZGVycygpOworICAgIFJldGFpblB0cjxNVExC
dWZmZXI+IHZlcnRleEFyZ3VtZW50QnVmZmVyLCBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBjb21w
dXRlQXJndW1lbnRCdWZmZXI7CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisK
KyAgICBpZiAoZW5jb2RlcnMudmVydGV4KSB7CisgICAgICAgIHZlcnRleEFyZ3VtZW50QnVmZmVy
ID0gYWRvcHROUyhbbV9kZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0
aDplbmNvZGVycy52ZXJ0ZXguZ2V0KCkuZW5jb2RlZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICAg
ICAgW2VuY29kZXJzLnZlcnRleCBzZXRBcmd1bWVudEJ1ZmZlcjp2ZXJ0ZXhBcmd1bWVudEJ1ZmZl
ci5nZXQoKSBvZmZzZXQ6MF07CisgICAgICAgIHNldFZlcnRleEJ1ZmZlcih2ZXJ0ZXhBcmd1bWVu
dEJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworICAgIH0KKyAgICBpZiAoZW5jb2RlcnMuZnJhZ21l
bnQpIHsKKyAgICAgICAgZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciA9IGFkb3B0TlMoW21fZGV2aWNl
LT5wbGF0Zm9ybURldmljZSgpIG5ld0J1ZmZlcldpdGhMZW5ndGg6ZW5jb2RlcnMuZnJhZ21lbnQu
Z2V0KCkuZW5jb2RlZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICAgICAgW2VuY29kZXJzLmZyYWdt
ZW50IHNldEFyZ3VtZW50QnVmZmVyOmZyYWdtZW50QXJndW1lbnRCdWZmZXIuZ2V0KCkgb2Zmc2V0
OjBdOworICAgICAgICBzZXRGcmFnbWVudEJ1ZmZlcihmcmFnbWVudEFyZ3VtZW50QnVmZmVyLmdl
dCgpLCAwLCBpbmRleCk7CisgICAgfQorICAgIGlmIChlbmNvZGVycy5jb21wdXRlKSB7CisgICAg
ICAgIGNvbXB1dGVBcmd1bWVudEJ1ZmZlciA9IGFkb3B0TlMoW21fZGV2aWNlLT5wbGF0Zm9ybURl
dmljZSgpIG5ld0J1ZmZlcldpdGhMZW5ndGg6ZW5jb2RlcnMuY29tcHV0ZS5nZXQoKS5lbmNvZGVk
TGVuZ3RoIG9wdGlvbnM6MF0pOworICAgICAgICBbZW5jb2RlcnMuY29tcHV0ZSBzZXRBcmd1bWVu
dEJ1ZmZlcjpjb21wdXRlQXJndW1lbnRCdWZmZXIuZ2V0KCkgb2Zmc2V0OjBdOworICAgICAgICAv
LyBGSVhNRTogRmluaXNoIHN1cHBvcnQgZm9yIGNvbXB1dGUuCisgICAgfQorCisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVhY2gg
TVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgorICAgIGNvbnN0IGF1
dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsKKyAgICAg
ICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5nKTsKKyAg
ICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBM
T0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBpbiBHUFVC
aW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gYmluZEdyb3VwTGF5b3V0Qmlu
ZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExheW91
dEJpbmRpbmcudHlwZSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291cmNl
IHR5cGVzLCBhbmQgc3VwcG9ydCBjb21wdXRlIHN0YWdlIHJlc291cmNlcy4KKyAgICAgICAgY2Fz
ZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6VW5pZm9ybUJ1ZmZlcjoK
KyAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U3Rv
cmFnZUJ1ZmZlcjogeworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlz
aWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCisgICAgICAgICAgICAgICAgc2V0
UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihlbmNvZGVycy52ZXJ0ZXguZ2V0KCksIGJpbmRpbmcu
cmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlm
IChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6
RlJBR01FTlQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcihl
bmNvZGVycy5mcmFnbWVudC5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5n
LCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgdHlwZSBub3Qg
eWV0IGltcGxlbWVudGVkLiIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFs
Lm1tCmluZGV4IDU1NjUwNjNmNjQwMGI0MDM4NTQzNTNkYWFjNjdlMzUwNTE0MDE0NzMuLmY3M2E5
NTM4MWIxODQ1MTRmN2EwMTU3YTVkYjgzZmFiOGZmMjhlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1l
dGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbXBvcnQg
IkdQVUJ1ZmZlci5oIgogI2ltcG9ydCAiR1BVQ29tbWFuZEJ1ZmZlci5oIgorI2ltcG9ydCAiR1BV
RGV2aWNlLmgiCiAjaW1wb3J0ICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIgogI2ltcG9ydCAi
R1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKQEAgLTY1LDExICs2Niwx
MiBAQCBSZWZQdHI8R1BVUmVuZGVyUGFzc0VuY29kZXI+IEdQVVJlbmRlclBhc3NFbmNvZGVyOjpj
cmVhdGUoY29uc3QgR1BVQ29tbWFuZEJ1ZmZlcgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBhc3NFbmNvZGVyKFdURk1v
dmUobXRsRW5jb2RlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBhc3NF
bmNvZGVyKFdURk1vdmUobXRsRW5jb2RlciksIGJ1ZmZlci5kZXZpY2UoKSkpOwogfQogCi1HUFVS
ZW5kZXJQYXNzRW5jb2Rlcjo6R1BVUmVuZGVyUGFzc0VuY29kZXIoUGxhdGZvcm1SZW5kZXJQYXNz
RW5jb2RlclNtYXJ0UHRyJiYgZW5jb2RlcikKLSAgICA6IG1fcGxhdGZvcm1SZW5kZXJQYXNzRW5j
b2RlcihXVEZNb3ZlKGVuY29kZXIpKQorR1BVUmVuZGVyUGFzc0VuY29kZXI6OkdQVVJlbmRlclBh
c3NFbmNvZGVyKFBsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXJTbWFydFB0ciYmIGVuY29kZXIsIFJl
ZjxHUFVEZXZpY2U+JiYgZGV2aWNlKQorICAgIDogR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIo
V1RGTW92ZShkZXZpY2UpKQorICAgICwgbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyKFdURk1v
dmUoZW5jb2RlcikpCiB7CiB9CiAKQEAgLTExOCw2ICsxMjAsMjEgQEAgdm9pZCBHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6ZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25n
IGluc3RhbmMKICAgICAgICAgYmFzZUluc3RhbmNlOmZpcnN0SW5zdGFuY2VdOwogfQogCit2b2lk
IEdQVVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqcmVzb3VyY2Us
IE1UTFJlc291cmNlVXNhZ2UgdXNhZ2UpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5j
b2RlciB1c2VSZXNvdXJjZTpyZXNvdXJjZSB1c2FnZTp1c2FnZV07Cit9CisKK3ZvaWQgR1BVUmVu
ZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWdu
ZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZvcm1S
ZW5kZXJQYXNzRW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJ
bmRleDppbmRleF07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50
QnVmZmVyKE1UTEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQg
bG9uZyBpbmRleCkKK3sKKyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldEZyYWdt
ZW50QnVmZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZS1zdHJpcC5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZS1zdHJpcC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmViMzZkMjdkYzdhOGM0MTQyMDY1ZTkxNWU1ZDMxODFmZDBkODFhNDIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFu
Z2xlLXN0cmlwLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdy
ZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0idmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxv
dyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0
MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3Rk
bGliPgorICAgIAordXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4Cit7Cisg
ICAgZmxvYXQ0IHBvc2l0aW9uIFtbcG9zaXRpb25dXTsKK307CisKK3N0cnVjdCBBcmd1bWVudHMg
eworICAgIGRldmljZSBWZXJ0ZXgqIHZlcnRleEJ1ZmZlcjsKK307CisKK3ZlcnRleCBWZXJ0ZXgg
dmVydGV4X21haW4oY29uc3QgZGV2aWNlIEFyZ3VtZW50cyYgYXJncyBbW2J1ZmZlcigwKV1dLCB1
aW50IHZpZCBbW3ZlcnRleF9pZF1dKQoreworICAgIHJldHVybiBhcmdzLnZlcnRleEJ1ZmZlclt2
aWRdOworfQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihWZXJ0ZXggdiBbW3N0YWdl
X2luXV0pCit7CisgICAgcmV0dXJuIGZsb2F0NCgwLjAsIDEuMCwgMC4wLCAxLjApOworfQorYAor
Citjb25zdCBidWZmZXJTaXplID0gNCAqIDQgKiA0OworCitmdW5jdGlvbiBjcmVhdGVWZXJ0ZXhC
dWZmZXIoZGV2aWNlKSB7CisgICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7
IHNpemU6IGJ1ZmZlclNpemUsIHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5WRVJURVggfSk7Cisg
ICAgCisgICAgbGV0IGFycmF5QnVmZmVyID0gYnVmZmVyLm1hcHBpbmc7CisgICAgbGV0IGZsb2F0
QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGFycmF5QnVmZmVyKTsKKworICAgIGZsb2F0QXJyYXlb
MF0gPSAtMTsKKyAgICBmbG9hdEFycmF5WzFdID0gMTsKKyAgICBmbG9hdEFycmF5WzJdID0gMDsK
KyAgICBmbG9hdEFycmF5WzNdID0gMTsKKworICAgIGZsb2F0QXJyYXlbNF0gPSAtMTsKKyAgICBm
bG9hdEFycmF5WzVdID0gLTE7CisgICAgZmxvYXRBcnJheVs2XSA9IDA7CisgICAgZmxvYXRBcnJh
eVs3XSA9IDE7CisKKyAgICBmbG9hdEFycmF5WzhdID0gMTsKKyAgICBmbG9hdEFycmF5WzldID0g
MTsKKyAgICBmbG9hdEFycmF5WzEwXSA9IDA7CisgICAgZmxvYXRBcnJheVsxMV0gPSAxOworCisg
ICAgZmxvYXRBcnJheVsxMl0gPSAxOworICAgIGZsb2F0QXJyYXlbMTNdID0gLTE7CisgICAgZmxv
YXRBcnJheVsxNF0gPSAwOworICAgIGZsb2F0QXJyYXlbMTVdID0gMTsKKworICAgIHJldHVybiBi
dWZmZXI7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0g
YXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJjYW52YXMiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWNDb250
ZXh0KGNhbnZhcywgZGV2aWNlKTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wg
c2hhZGVycy4KKyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9k
dWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKKworICAgIGNvbnN0IGxheW91dEJpbmRpbmcgPSB7
IGJpbmRpbmc6IDAsIHZpc2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwgdHlw
ZTogInVuaWZvcm1CdWZmZXIiIH07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNl
LmNyZWF0ZUJpbmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5b3V0QmluZGluZ10gfSk7Cisg
ICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQoeyBi
aW5kR3JvdXBMYXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XSB9KTsKKyAgICBjb25zdCBwaXBlbGlu
ZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5
b3V0KTsKKworICAgIGNvbnN0IHZlcnRleEJ1ZmZlciA9IGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZp
Y2UpOworICAgIGNvbnN0IGJ1ZmZlckJpbmRpbmcgPSB7IGJ1ZmZlcjogdmVydGV4QnVmZmVyLCBv
ZmZzZXQ6IDAsIHNpemU6IGJ1ZmZlclNpemUgfTsKKyAgICBjb25zdCBiaW5kR3JvdXBCaW5kaW5n
ID0geyBiaW5kaW5nOiAwLCByZXNvdXJjZTogYnVmZmVyQmluZGluZyB9OworICAgIGNvbnN0IGJp
bmRHcm91cCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXAoeyBsYXlvdXQ6IGJpbmRHcm91cExheW91
dCwgYmluZGluZ3M6IFtiaW5kR3JvdXBCaW5kaW5nXSB9KTsKKworICAgIGNvbnN0IGNvbW1hbmRC
dWZmZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEJ1ZmZlcigpOworICAgIGNvbnN0IHBhc3NFbmNv
ZGVyID0gYmVnaW5CYXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZlcik7CisgICAg
cGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7CisgICAgY29uc3QgZW5kQ29t
bWFuZEJ1ZmZlciA9IGVuY29kZUJhc2ljQ29tbWFuZHMocGFzc0VuY29kZXIsIHBpcGVsaW5lKTsK
KyAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworCisgICAgcXVldWUuc3VibWl0
KFtlbmRDb21tYW5kQnVmZmVyXSk7CisgICAgY29udGV4dC5wcmVzZW50KCk7Cit9CisKK3Rlc3Qo
KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359503</attachid>
            <date>2019-01-18 10:23:00 -0800</date>
            <delta_ts>2019-01-18 10:49:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190118102259.patch</filename>
            <type>text/plain</type>
            <size>50042</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uMDIyOTMyNmJmODlhYmU4ZGNjNzk3MTA1ZjUwZDlm
YTE3MDllOWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTAxLTE4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgKFdJUCkgW1dlYkdQVV0g
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyOTY2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFdlYkdQVSBkZXZlbG9wZXJzIHRvIGFzc2ln
biBidWZmZXIgYmluZCBncm91cHMgYW5kIGFjY2VzcyB0aGVtIHZpYSByZW5kZXIgcGlwZWxpbmUu
IAorICAgICAgICBTdXBwb3J0IGZvciBjb21wdXRlIHBpcGVsaW5lcyB0byBmb2xsb3cgc2hvcnRs
eS4gCisgICAgICAgIFRleHR1cmUgYW5kIHNhbXBsZXIgcmVzb3VyY2VzIHRvIGZvbGxvdyBhZnRl
ciB0aGVpciByZXF1aXNpdGUgaW50ZXJmYWNlcyBhcmUgaW1wbGVtZW50ZWQuIAorCisgICAgICAg
IFRlc3Q6IHdlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwOjpiaW5kR3JvdXAgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwOiAKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAg
Y29uc3QpOiBBZGRlZC4gRGVsZWdhdGVzIGNhbGwgdG8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuaDogRW5hYmxlIHNldEJpbmRHcm91cC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGw6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwLmg6IAorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpsYXlv
dXQgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6
OmJpbmRpbmdzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oOiBBZGRlZCBBcmd1bWVudEVuY29kZXJCdWZmZXIgc3RydWN0
IHRvIHJldGFpbiBwdHIgdG90IGJvdGggTVRMQXJndW1lbnRFbmNvZGVycyBhbmQgdGhlaXIgYXJn
dW1lbnQgTVRMQnVmZmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
QXJndW1lbnRFbmNvZGVyQnVmZmVyOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQmluZEdyb3VwTGF5b3V0Ojp2ZXJ0ZXhBcmd1bWVudHMgY29uc3QpOiBBZGRlZC4gR2V0
dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpmcmFnbWVudEFyZ3Vt
ZW50cyBjb25zdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0
Ojpjb21wdXRlQXJndW1lbnRzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IFJlZmFjdG9yZWQgdW5uZWNlc3NhcnkgaGVhZGVyIGlu
Y2x1ZGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOiBkaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRWZXJ0ZXhCdWZmZXIpOiBBZGRlZC4gRGVsZWdhdGVzIHRvIE1UTENvbW1hbmRFbmNvZGVyIGNh
bGwuCisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0RnJh
Z21lbnRCdWZmZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyUGFzc0VuY29kZXIuaDogCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3Jl
YXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKTogUmVwbGFjZSBuZXdFbmNvZGVyKCkuIE5vdyBj
cmVhdGUgYW4gQXJndW1lbnRFbmNvZGVyQnVmZmVyIG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIE1U
TEFyZ3VtZW50RGVzY3JpcHRvcnMsIGlmIGFibGUuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlZmFjdG9yIHRvIHN1cHBvcnQgQXJndW1lbnRFbmNv
ZGVyQnVmZmVycywgYW5kIGFsbG9jYXRlIE1UTEJ1ZmZlcnMgZm9yIGFyZ3VtZW50IGVuY29kZXJz
LgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpHUFVCaW5kR3JvdXBMYXlv
dXQpOiBTdXBwb3J0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlcnMuCisgICAgICAgIChXZWJDb3JlOjpu
ZXdFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChX
ZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9u
RW5jb2Rlcik6IFNldCBhIGJ1ZmZlciByZXNvdXJjZSBvbiB0aGUgTVRMQXJndW1lbnRFbmNvZGVy
LCBhbmQgY2FsbCB1c2VSZXNvdXJjZSBvbiB0aGUgY29tbWFuZCBlbmNvZGVyLgorICAgICAgICAo
V2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCk6IFBhcnNl
cyB0aGUgYmluZCBncm91cCB0byBhc3NpZ24gZWFjaCByZXNvdXJjZSBvbiBpdHMgbWF0Y2hpbmcg
TVRMQXJndW1lbnRFbmNvZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tOiAKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6IFJlc29sdmVzIGNhbGwgZnJvbSBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2RlciB0byBjYWxsIG9uIE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcik6
IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdt
ZW50QnVmZmVyKTogZGl0dG8uCisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4IDBhMDQ3MDk1
NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQwOTc5MzBlYmJh
ZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQVUJpbmRHcm91
cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJik7
CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR1BVQmluZEdy
b3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJiMi4uZjZmNWVh
NmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFu
ZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJHUFVCaW5kR3Jv
dXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5kR3JvdXAoKSkg
eworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5kZXggZHVwbGlj
YXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIoKS5zZXRCaW5k
R3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lkIFdlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGluZShwaXBlbGlu
ZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBlZjEw
YzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0NmY5NDljZjll
YzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTI4
LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVDb21t
YW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOworY2xhc3MgV2Vi
R1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIFdlYkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgUmVm
PFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJpbmRHcm91cCh1
bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAgICB2b2lkIHNl
dFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZkOGViYTE1ZWUy
NDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJhOGM0N2RkNGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQsMTQgQEAKICAq
LwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKICAgICBTa2lw
VlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAgLy8gRklYTUU6
IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0gICAgdm9pZCBz
ZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBOb3QgWWV0IElt
cGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJlbmRlciBwYXNz
ZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQgc2V0QmluZEdy
b3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLworICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cC8qLCBvcHRp
b25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQgc2V0UGlwZWxp
bmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3VwcG9ydCBXZWJH
UFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNDk4ZmE4YTJiZmVmZDVjNzkwMzExNWJmMjM3
MDg5NjZmOTI0MTE1Li4wNmE4YzYyMDkyOTdjZmU1MjVhNTQ3MDI1YjdjNzdmZTcwYWUxMmQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02NDI3LDE3ICs2NDI3LDE2IEBACiAJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAwRCAvKiBX
SExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEdhdGhlckVu
dHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg0MEI5QjIx
RUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0REY5MEJB
OUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFDQTBDMkU0MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyogV0hM
U0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3Rh
Z2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNBMjFFRDlE
RjUwMDY5RDVGMiAvKiBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5QUU1Q0IyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMEMyREUyMUVFQjVGNDAwQTExODYwIC8qIFdITFNMUmVjdXJzaW9uQ2hl
Y2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRTAyMUVFQjVGNTAwQTExODYwIC8qIFdITFNMUmVj
dXJzaW9uQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNr
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0EwQzJFNDIxRUVEMTJBMDBB
MTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIxRUVENkY1MDBBMTE4NjAgLyogV0hMU0xM
aXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUMyMUVFRDZGNjAwQTEx
ODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MUM5QUU1Q0EyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQzlBRTVDQjIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdoWm9t
YmllRmluZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJGNDIxRUVEQUQwMDBBMTE4NjAgLyogV0hM
U0xMb29wQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTExvb3BDaGVja2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjUyMUVFREFEMTAwQTExODYw
IC8qIFdITFNMTG9vcENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMb29wQ2hlY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAg
LyogQVNUICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
Zm9sZGVyOyBwYXRoID0gQVNUOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0ExOUUw
MzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMzIsNiArMTcwMzEsMTAwIEBACiAJCQl0
YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTFDQTBDMkY2MjFFRURBRDIw
MEExMTg2MCAvKiBBU1QgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFjZS5oICov
LAorCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJlbmNlVHlw
ZS5oICovLAorCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5VHlwZS5o
ICovLAorCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1lbnRFeHBy
ZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNMQmFzZUZ1
bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5IC8qIFdI
TFNMQmFzZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5IC8qIFdI
TFNMQmxvY2suaCAqLywKKwkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAyMjc5NzkgLyogV0hMU0xCb29s
ZWFuTGl0ZXJhbC5oICovLAorCQkJCUMyMUJGNzFBMjFDRDg5RDgwMDIyNzk3OSAvKiBXSExTTEJy
ZWFrLmggKi8sCisJCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJBIC8qIFdITFNMQnVpbHRJblNl
bWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAyMjc5NzkgLyogV0hMU0xCdWls
dEluU2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxNjIxQ0Q4OUQ1MDAyMjc5NzkgLyogV0hMU0xD
YWxsRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExT
TENvbW1hRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAvKiBX
SExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIyNzk3
OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJQzIxQkY3MDEyMUNEODlDNDAwMjI3OTc5IC8q
IFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MTgyMUNEODlENzAw
MjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkZCMjFDRDg5QkUw
MDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCisJCQkJQzIxQkY3MjgyMUNEODlFNTAw
MjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudC5oICovLAorCQkJCTFD
ODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBlLmggKi8sCisJCQkJ
QzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0aW9uLmgg
Ki8sCisJCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1i
ZXIuaCAqLywKKwkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlv
bk1lbWJlckxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5NzkgLyogV0hM
U0xFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MDAyMUNEODlDMjAwMjI3OTc5IC8qIFdITFNM
RmFsbHRocm91Z2guaCAqLywKKwkJCQlDMjFCRjczNTIxQ0Q4OUYyMDAyMjc5NzkgLyogV0hMU0xG
bG9hdExpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzODIxREYwM0UxMDA2RTg0NkEgLyogV0hMU0xG
bG9hdExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyog
V0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzQyMUNEODlGMTAwMjI3OTc5
IC8qIFdITFNMRm9yTG9vcC5oICovLAorCQkJCUMyMUJGNzA1MjFDRDg5QzcwMDIyNzk3OSAvKiBX
SExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkQyMUNEODlDMDAwMjI3OTc5
IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAorCQkJCUMyMUJGNkY0MjFDRDg5QjMw
MDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNkZGMjFD
RDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8sCisJCQkJQzIxQkY2RjcyMUNE
ODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmggKi8sCisJCQkJQzIwRjRGNjYy
MURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJCUMyMUJG
NkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNC
NjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcCAqLywK
KwkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUu
aCAqLywKKwkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsRXhwcmVz
c2lvbi5oICovLAorCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3OSAvKiBXSExTTExvZ2ljYWxO
b3RFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MkQyMUNEODlFOTAwMjI3OTc5IC8qIFdITFNM
TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJDMjFDRDg5RTkw
MDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oICovLAorCQkJCTFDMzMyNzcx
MjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICovLAorCQkJCUMyMUJGNzIzMjFD
RDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJ
CQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24u
aCAqLywKKwkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOb2RlLmggKi8sCisJ
CQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVsbExpdGVyYWwuaCAqLywKKwkJ
CQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuY3BwICov
LAorCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFsVHlwZS5o
ICovLAorCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBXSExTTE51bVRocmVhZHNGdW5j
dGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNzJGMjFDRDg5RUMwMDIyNzk3OSAvKiBXSExT
TFBvaW50ZXJUeXBlLmggKi8sCisJCQkJQzIxQkY3MkUyMUNEODlFQTAwMjI3OTc5IC8qIFdITFNM
UHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEIyMUNEODlDQzAwMjI3
OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCisJCQkJQzIxQkY3MUIyMUNEODlEOTAwMjI3OTc5
IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBEMjFD
RDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQkxQ0I2OUIzMjIx
REVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovLAorCQkJCUMyMTM4QTE1
MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuY3BwICovLAorCQkJCUMy
MUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuaCAqLywKKwkJ
CQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1cm4uaCAqLywKKwkJCQlDMjFC
RjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE2
MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5j
cHAgKi8sCisJCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8qIFdITFNMU3BlY2lhbGl6YXRp
b25Db25zdGFudFNlbWFudGljLmggKi8sCisJCQkJQzIxMzhBMTcyMURERUQwRDAwRjUxNkJBIC8q
IFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcwRTIxQ0Q4OUNFMDAy
Mjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxMjIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyNzIxQ0Q4OUU0
MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmggKi8sCisJCQkJQzIxQkY2RkUy
MUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVudC5oICovLAorCQkJCUMyMUJG
NzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2UuaCAqLywKKwkJCQlDMjFCRjcz
MTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFC
RjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhwcmVzc2lvbi5oICovLAorCQkJ
CUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAuaCAqLywKKwkJCQlDMjFCRjcx
RDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCisJCQkJQzI4OEM3MkQyMUM5OTFE
QTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywKKwkJCQlDMjFCRjcxMTIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyOTIxQ0Q4
OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMEY0RjY0MjFE
RkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3BwICovLAorCQkJCUMyMUJGNzFG
MjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuaCAqLywKKwkJCQkxQzMzMjc3
MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5oICovLAorCQkJCUMyMEY0RjY3
MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwuY3BwICovLAor
CQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVy
YWwuaCAqLywKKwkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEgLyogV0hMU0xVbnNpZ25lZElu
dGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzcyMURFRDY2QjAwNkU4NDZBIC8q
IFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjZGQzIxQ0Q4
OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAorCQkJCUMyMUJGNzEwMjFDRDg5RDAwMDIy
Nzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlDMjFCRjcxNDIxQ0Q4
OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudC5oICovLAor
CQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlUmVmZXJlbmNlLmgg
Ki8sCisJCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdITFNMV2hpbGVMb29wLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IEFTVDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTUwOCwxMDAgKzI1NjAxLDYg
QEAKIAkJCXBhdGggPSBXSExTTDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0J
CTFDQTBDMkY2MjFFRURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91
cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExT
TEFkZHJlc3NTcGFjZS5oICovLAotCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExT
TEFycmF5UmVmZXJlbmNlVHlwZS5oICovLAotCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAv
KiBXSExTTEFycmF5VHlwZS5oICovLAotCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBX
SExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3
OTc5IC8qIFdITFNMQmFzZUZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2RkEyMUNE
ODlCRTAwMjI3OTc5IC8qIFdITFNMQmFzZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MUUyMUNE
ODlEQzAwMjI3OTc5IC8qIFdITFNMQmxvY2suaCAqLywKLQkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAy
Mjc5NzkgLyogV0hMU0xCb29sZWFuTGl0ZXJhbC5oICovLAotCQkJCUMyMUJGNzFBMjFDRDg5RDgw
MDIyNzk3OSAvKiBXSExTTEJyZWFrLmggKi8sCi0JCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJB
IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAy
Mjc5NzkgLyogV0hMU0xCdWlsdEluU2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcxNjIxQ0Q4OUQ1
MDAyMjc5NzkgLyogV0hMU0xDYWxsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzA2MjFDRDg5
QzcwMDIyNzk3OSAvKiBXSExTTENvbW1hRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzMzMjFD
RDg5RjAwMDIyNzk3OSAvKiBXSExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJG
NkY1MjFDRDg5QjUwMDIyNzk3OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCi0JCQkJQzIxQkY3MDEy
MUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCi0JCQkJ
QzIxQkY3MTgyMUNEODlENzAwMjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNkZCMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCi0JCQkJ
QzIxQkY3MjgyMUNEODlFNTAwMjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRl
bWVudC5oICovLAotCQkJCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9p
bnRUeXBlLmggKi8sCi0JCQkJQzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVy
YXRpb25EZWZpbml0aW9uLmggKi8sCi0JCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdI
TFNMRW51bWVyYXRpb25NZW1iZXIuaCAqLywKLQkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5Nzkg
LyogV0hMU0xFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaCAqLywKLQkJCQlDMjFCRjcwQzIxQ0Q4
OUNDMDAyMjc5NzkgLyogV0hMU0xFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MDAyMUNEODlD
MjAwMjI3OTc5IC8qIFdITFNMRmFsbHRocm91Z2guaCAqLywKLQkJCQlDMjFCRjczNTIxQ0Q4OUYy
MDAyMjc5NzkgLyogV0hMU0xGbG9hdExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzODIxREYwM0Ux
MDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNDIx
REVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY3
MzQyMUNEODlGMTAwMjI3OTc5IC8qIFdITFNMRm9yTG9vcC5oICovLAotCQkJCUMyMUJGNzA1MjFD
RDg5QzcwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2
RkQyMUNEODlDMDAwMjI3OTc5IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAotCQkJ
CUMyMUJGNkY0MjFDRDg5QjMwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMUJGNkZGMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8s
Ci0JCQkJQzIxQkY2RjcyMUNEODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmgg
Ki8sCi0JCQkJQzIwRjRGNjYyMURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwu
Y3BwICovLAotCQkJCUMyMUJGNkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRl
cmFsLmggKi8sCi0JCQkJMUNCNjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxp
dGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJ
bnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyog
V0hMU0xMb2dpY2FsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3
OSAvKiBXSExTTExvZ2ljYWxOb3RFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MkQyMUNEODlF
OTAwMjI3OTc5IC8qIFdITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNzJDMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5o
ICovLAotCQkJCTFDMzMyNzcxMjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICov
LAotCQkJCUMyMUJGNzIzMjFDRDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVj
bGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRp
dmVUeXBlRGVjbGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyog
V0hMU0xOb2RlLmggKi8sCi0JCQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVs
bExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxs
TGl0ZXJhbFR5cGUuY3BwICovLAotCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExT
TE51bGxMaXRlcmFsVHlwZS5oICovLAotCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBX
SExTTE51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAotCQkJCUMyMUJGNzJGMjFDRDg5
RUMwMDIyNzk3OSAvKiBXSExTTFBvaW50ZXJUeXBlLmggKi8sCi0JCQkJQzIxQkY3MkUyMUNEODlF
QTAwMjI3OTc5IC8qIFdITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIx
QkY3MEIyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCi0JCQkJQzIxQkY3
MUIyMUNEODlEOTAwMjI3OTc5IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICov
LAotCQkJCUMyMUJGNzBEMjFDRDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAq
LywKLQkJCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovLAotCQkJCUMyMTM4QTE1MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50
aWMuY3BwICovLAotCQkJCUMyMUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNl
U2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1
cm4uaCAqLywKLQkJCQlDMjFCRjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5o
ICovLAotCQkJCUMyMTM4QTE2MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9u
Q29uc3RhbnRTZW1hbnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8q
IFdITFNMU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmggKi8sCi0JCQkJQzIxMzhBMTcy
MURERUQwRDAwRjUxNkJBIC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKLQkJCQlD
MjFCRjcwRTIxQ0Q4OUNFMDAyMjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywK
LQkJCQlDMjFCRjcxMjIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKLQkJ
CQlDMjFCRjcyNzIxQ0Q4OUU0MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmgg
Ki8sCi0JCQkJQzIxQkY2RkUyMUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVu
dC5oICovLAotCQkJCUMyMUJGNzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2Uu
aCAqLywKLQkJCQlDMjFCRjczMTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1l
bnQuaCAqLywKLQkJCQlDMjFCRjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhw
cmVzc2lvbi5oICovLAotCQkJCUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAu
aCAqLywKLQkJCQlDMjFCRjcxRDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCi0J
CQkJQzI4OEM3MkQyMUM5OTFEQTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywK
LQkJCQlDMjFCRjcxMTIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywK
LQkJCQlDMjFCRjcyOTIxQ0Q4OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMEY0RjY0MjFERkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3Bw
ICovLAotCQkJCUMyMUJGNzFGMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2Uu
aCAqLywKLQkJCQkxQzMzMjc3MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5o
ICovLAotCQkJCUMyMEY0RjY3MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWwuY3BwICovLAotCQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEg
LyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzcy
MURFRDY2QjAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywK
LQkJCQlDMjFCRjZGQzIxQ0Q4OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAotCQkJCUMy
MUJGNzEwMjFDRDg5RDAwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywK
LQkJCQlDMjFCRjcxNDIxQ0Q4OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9u
c1N0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZh
cmlhYmxlUmVmZXJlbmNlLmggKi8sCi0JCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdI
TFNMV2hpbGVMb29wLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IEFTVDsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07CiAJCUM5NkY1RUJGMUI1ODcyMjYwMDkxRUE5RCAvKiBtZWRpYXNl
c3Npb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oCmlu
ZGV4IDgwNjEzODM2Nzk3MWRlNmJhZDVjYjY1YWYxOWY3NTUxMGNjMzMwOTIuLjJjZGMwNzM3MzYw
MTFlYWEwMmIwZTY2MzdlYTJkNDMxMGM2ZTczMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKQEAgLTQxLDYgKzQxLDkgQEAg
Y2xhc3MgR1BVQmluZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVCaW5kR3JvdXA+IGNyZWF0ZShHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiYpOwogCisgICAgY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0JiBsYXlvdXQoKSBj
b25zdCB7IHJldHVybiBtX2xheW91dC5nZXQoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxHUFVCaW5k
R3JvdXBCaW5kaW5nPiYgYmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2JpbmRpbmdzOyB9CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVQmluZEdyb3VwKEdQVUJpbmRHcm91cERlc2NyaXB0
b3ImJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaAppbmRleCBmMmFkODllNzBkZjBmMzFlZDkzZTY2ODQy
MTY1MDFjNjcxZDM3YTNlLi5kYmIzYTJkNzhlMmY5MzUzMDgzNDM4ZTI2MTVkMjc5NjNiNzc1NGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogCiBPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BS
T1RPQ09MKE1UTEJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMjIgKzQz
LDMxIEBAIGNsYXNzIEdQVURldmljZTsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0IDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6Ci0gICAgc3RydWN0
IEFyZ3VtZW50RW5jb2RlcnMgewotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVy
PiB2ZXJ0ZXg7Ci0gICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50
OwotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlOwotICAgIH07
Ci0KICAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3JlYXRlKGNvbnN0
IEdQVURldmljZSYsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJik7CiAKICAgICB1c2lu
ZyBCaW5kaW5nc01hcFR5cGUgPSBIYXNoTWFwPHVuc2lnbmVkIGxvbmcgbG9uZywgR1BVQmluZEdy
b3VwTGF5b3V0QmluZGluZywgV1RGOjpJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQgbG9uZyBsb25nPj47CiAgICAg
Y29uc3QgQmluZGluZ3NNYXBUeXBlJiBiaW5kaW5nc01hcCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlu
ZGluZ3NNYXA7IH0KKyNpZiBVU0UoTUVUQUwpCisgICAgc3RydWN0IEFyZ3VtZW50RW5jb2RlckJ1
ZmZlciB7CisgICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGVuY29kZXI7Cisg
ICAgICAgIFJldGFpblB0cjxNVExCdWZmZXI+IGJ1ZmZlcjsKKworICAgICAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFlbmNvZGVyIHx8ICFidWZmZXI7IH0KKyAgICB9OworICAg
IGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgdmVydGV4QXJndW1lbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0ZXhBcmd1bWVudHM7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImIGZyYWdtZW50QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50
czsgfQorICAgIGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgY29tcHV0ZUFyZ3VtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50czsgfQorI2VuZGlmIC8vIFVTRShNRVRB
TCkKIAogcHJpdmF0ZToKLSAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYs
IEFyZ3VtZW50RW5jb2RlcnMmJik7CisjaWYgVVNFKE1FVEFMKQorICAgIEdQVUJpbmRHcm91cExh
eW91dChCaW5kaW5nc01hcFR5cGUmJiwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYsIEFyZ3VtZW50
RW5jb2RlckJ1ZmZlciYmLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJik7CiAKKyAgICBBcmd1bWVu
dEVuY29kZXJCdWZmZXIgbV92ZXJ0ZXhBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIG1fZnJhZ21lbnRBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVmZmVyIG1fY29t
cHV0ZUFyZ3VtZW50czsKKyNlbmRpZiAvLyBVU0UoTUVUQUwpCiAgICAgY29uc3QgQmluZGluZ3NN
YXBUeXBlIG1fYmluZGluZ3NNYXA7Ci0gICAgQXJndW1lbnRFbmNvZGVycyBtX2FyZ3VtZW50RW5j
b2RlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDExMzI5ZWU4NWU1
MWIwMmJkMzFjODFiM2ZlMmEyMTM5NDMyZDc0ZjMuLjQxNTI0YTU4N2RhYzFlOGFhZjQwN2M4Yjky
NzY0ZTJmZmI2ZWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgi
CiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDM3
NmQwZmU2MmZiZDMzZmJmN2UyZTE2YzA2NGJkYjIyYTA0ZmY0OTcuLjZlNmQ1MTUzMTg1YjhiYWVk
ZTRiMzQ5Y2IwNWEyMzE3Y2JhMThhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI3LDkgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BV
UXVldWUuaCIKLQogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQzLDYgKzQxLDcgQEAgdXNp
bmcgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+OwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiBjbGFzcyBHUFVCdWZmZXI7CitjbGFzcyBHUFVDb21tYW5k
QnVmZmVyOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGlu
ZTsKIGNsYXNzIEdQVVNoYWRlck1vZHVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKaW5kZXggOTQ4YzBjODg2YTkzYTk1ODU4MTU5MGM5YTUyYjU0NGE0YmQ3MjZlNS4uOTUxYzQz
ODA3NGQ3YjM5MTA0MWNjOTYxNjliZWFhOTQ3NGYyMzk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmgKQEAgLTI3LDEyICsyNywxNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkK
IAorI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCitPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BST1RP
Q09MKE1UTEJ1ZmZlcik7CiBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRFbmNvZGVyKTsKK09CSkNf
UFJPVE9DT0woTVRMUmVzb3VyY2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQ
VUJpbmRHcm91cDsKIGNsYXNzIEdQVVJlbmRlclBpcGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyID0gTVRMQ29tbWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDcs
MjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkg
PSBkZWZhdWx0OwogCiAgICAgdm9pZCBlbmRQYXNzKCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91
cCh1bnNpZ25lZCBsb25nLCBjb25zdCBHUFVCaW5kR3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFz
c0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CisjaWYgVVNFKE1FVEFMKQorICAgIHZv
aWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29u
c3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQgbG9uZywgY29uc3QgY2hhciogY29uc3Qp
OworICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBs
b25nKSA9IDA7CisKKyAgICAvLyBSZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAg
dmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywg
dW5zaWduZWQgbG9uZykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1U
TEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSB7IH0KKyNlbmRpZiAvLyBV
U0UoTUVUQUwpCisKICAgICBib29sIG1faXNFbmNvZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNz
RW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYx
MmMxMi4uYzhlNjg1YThlNTZhODc1NmUwMGEzNjk1ZjkwMDNiYWM2MTc3ODc1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNv
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKQEAgLTYyLDYgKzYyLDEzIEBAIHByaXZhdGU6CiAKICAgICBQbGF0Zm9y
bVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKiBwbGF0Zm9ybVBhc3NFbmNvZGVyKCkgY29uc3QgZmlu
YWw7CiAKKyNpZiBVU0UoTUVUQUwpCisgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIK
KyAgICB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpIGZpbmFs
OworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZl
ciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKKyNlbmRpZiAvLyBVU0Uo
TUVUQUwpCisKICAgICBQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHIgbV9wbGF0Zm9y
bVJlbmRlclBhc3NFbmNvZGVyOwogICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gbV9waXBl
bGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXgg
Zjg5MzFjZTY2MjliMTUwYzZhOTg1M2ExZGE4ZWM0NTdiOWU3NWI0Ny4uNjAyMmM2MmNjMGI2YzIw
YzYwOWMyMmRkNjRlZjUyYTllY2RlNWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBM
YXlvdXRNZXRhbC5tbQpAQCAtNjEsMjEgKzYxLDM4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZEFyZ3Vt
ZW50VG9BcnJheShBcmd1bWVudEFycmF5JiBhcnJheSwgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVz
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotc3RhdGljIFJldGFpblB0cjxN
VExBcmd1bWVudEVuY29kZXI+IG5ld0VuY29kZXIoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEFy
Z3VtZW50QXJyYXkgYXJyYXkpCitzdGF0aWMgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVudEVu
Y29kZXJCdWZmZXIgdHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKGNvbnN0IEdQVURl
dmljZSYgZGV2aWNlLCBBcmd1bWVudEFycmF5IGFycmF5KQogewotICAgIFJldGFpblB0cjxNVExB
cmd1bWVudEVuY29kZXI+IGVuY29kZXI7CisgICAgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVu
dEVuY29kZXJCdWZmZXIgYXJnczsKKwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LSAgICBlbmNvZGVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QXJndW1l
bnRFbmNvZGVyV2l0aEFyZ3VtZW50czphcnJheS5nZXQoKV0pOworICAgIGFyZ3MuZW5jb2RlciA9
IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhB
cmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwot
ICAgIGlmICghZW5jb2RlcikKKyAgICBpZiAoIWFyZ3MuZW5jb2RlcikgewogICAgICAgICBMT0co
V2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0
ZSBNVExBcmd1bWVudEVuY29kZXIhIik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIGFyZ3MuYnVmZmVyID0gYWRvcHRO
UyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDphcmdzLmVuY29k
ZXIuZ2V0KCkuZW5jb2RlZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICBbYXJncy5lbmNvZGVyIHNl
dEFyZ3VtZW50QnVmZmVyOmFyZ3MuYnVmZmVyLmdldCgpIG9mZnNldDowXTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIGlmICghYXJncy5idWZmZXIpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVh
dGUgTVRMQnVmZmVyIGZyb20gTVRMQXJndW1lbnRFbmNvZGVyISIpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KIAotICAgIHJldHVybiBlbmNvZGVyOworICAgIHJldHVybiBhcmdzOwogfTsK
IAogUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Im
JiBkZXNjcmlwdG9yKQogewotICAgIEFyZ3VtZW50QXJyYXkgdmVydGV4QXJndW1lbnRzLCBmcmFn
bWVudEFyZ3VtZW50cywgY29tcHV0ZUFyZ3VtZW50czsKKyAgICBpZiAoIWRldmljZS5wbGF0Zm9y
bURldmljZSgpKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6OnRy
eUNyZWF0ZSgpOiBJbnZhbGlkIE1UTERldmljZSEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgQXJndW1lbnRBcnJheSB2ZXJ0ZXhBcmdzQXJyYXksIGZyYWdtZW50QXJn
c0FycmF5LCBjb21wdXRlQXJnc0FycmF5OwogICAgIEJpbmRpbmdzTWFwVHlwZSBiaW5kaW5nc01h
cDsKIAogICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGRlc2NyaXB0b3IuYmluZGluZ3Mp
IHsKQEAgLTk5LDM0ICsxMTYsMzYgQEAgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmlu
ZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UKICAgICAgICAg
bXRsQXJndW1lbnQuZ2V0KCkuaW5kZXggPSBiaW5kaW5nLmJpbmRpbmc7CiAKICAgICAgICAgaWYg
KGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCi0gICAgICAg
ICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7
CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFn
ZUJpdDo6RlJBR01FTlQpCi0gICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkoZnJhZ21l
bnRBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsKKyAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9B
cnJheShmcmFnbWVudEFyZ3NBcnJheSwgbXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGlu
Zy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkNPTVBVVEUpCi0gICAgICAgICAgICBh
cHBlbmRBcmd1bWVudFRvQXJyYXkoY29tcHV0ZUFyZ3VtZW50cywgbXRsQXJndW1lbnQpOworICAg
ICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGNvbXB1dGVBcmdzQXJyYXksIG10bEFyZ3Vt
ZW50KTsKICAgICB9CiAKLSAgICBBcmd1bWVudEVuY29kZXJzIGVuY29kZXJzOworICAgIEFyZ3Vt
ZW50RW5jb2RlckJ1ZmZlciB2ZXJ0ZXgsIGZyYWdtZW50LCBjb21wdXRlOwogCi0gICAgaWYgKHZl
cnRleEFyZ3VtZW50cykgewotICAgICAgICBpZiAoIShlbmNvZGVycy52ZXJ0ZXggPSBuZXdFbmNv
ZGVyKGRldmljZSwgdmVydGV4QXJndW1lbnRzKSkpCisgICAgaWYgKHZlcnRleEFyZ3NBcnJheSkg
eworICAgICAgICBpZiAoISh2ZXJ0ZXggPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCB2ZXJ0ZXhBcmdzQXJyYXkpKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBpZiAoZnJhZ21lbnRBcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCEoZW5j
b2RlcnMuZnJhZ21lbnQgPSBuZXdFbmNvZGVyKGRldmljZSwgZnJhZ21lbnRBcmd1bWVudHMpKSkK
KyAgICBpZiAoZnJhZ21lbnRBcmdzQXJyYXkpIHsKKyAgICAgICAgaWYgKCEoZnJhZ21lbnQgPSB0
cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZmZXIoZGV2aWNlLCBmcmFnbWVudEFyZ3NBcnJh
eSkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmIChjb21wdXRl
QXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICghKGVuY29kZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVy
KGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQorICAgIGlmIChjb21wdXRlQXJnc0FycmF5KSB7
CisgICAgICAgIGlmICghKGNvbXB1dGUgPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCBjb21wdXRlQXJnc0FycmF5KSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChX
VEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92ZShlbmNvZGVycykpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChXVEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92
ZSh2ZXJ0ZXgpLCBXVEZNb3ZlKGZyYWdtZW50KSwgV1RGTW92ZShjb21wdXRlKSkpOwogfQogCi1H
UFVCaW5kR3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChCaW5kaW5nc01hcFR5cGUmJiBi
aW5kaW5nc01hcCwgQXJndW1lbnRFbmNvZGVycyYmIGVuY29kZXJzKQotICAgIDogbV9iaW5kaW5n
c01hcChXVEZNb3ZlKGJpbmRpbmdzTWFwKSkKLSAgICAsIG1fYXJndW1lbnRFbmNvZGVycyhXVEZN
b3ZlKGVuY29kZXJzKSkKK0dQVUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KEJp
bmRpbmdzTWFwVHlwZSYmIGJpbmRpbmdzTWFwLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJiB2ZXJ0
ZXgsIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYmIGZyYWdtZW50LCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImJiBjb21wdXRlKQorICAgIDogbV92ZXJ0ZXhBcmd1bWVudHMoV1RGTW92ZSh2ZXJ0ZXgpKQor
ICAgICwgbV9mcmFnbWVudEFyZ3VtZW50cyhXVEZNb3ZlKGZyYWdtZW50KSkKKyAgICAsIG1fY29t
cHV0ZUFyZ3VtZW50cyhXVEZNb3ZlKGNvbXB1dGUpKQorICAgICwgbV9iaW5kaW5nc01hcChXVEZN
b3ZlKGJpbmRpbmdzTWFwKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0
YWwubW0KaW5kZXggNjEyNTlkMjM0ZmIzYTEyNGY5OTE3ODRhNWQ4ZmQ2ODg3MDM3ZTIwOC4uOTNl
ZGMxMWE4MGVjYjZhMDY0MThiNTJjMjYxNDYzODMyZjFmNzk2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRh
bC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
Q29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC02OSw3ICs2OSw2IEBAIFJlZlB0cjxHUFVDb21tYW5k
QnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BVRGV2aWNlJiBkZXZpY2UpCiBHUFVD
b21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0
UHRyJiYgYnVmZmVyKQogICAgIDogbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZm
ZXIpKQogewotICAgIFVOVVNFRF9QQVJBTShtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcik7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggMmU2NDM2MzgxNDZhMWI4OWNhN2Y4Yzk2ODY2
NTNkMjcyNWQzNDE4ZS4uNGZmZTM4NzUwYzMzMTRkYjlkMDBkNTJjNDBhMzYxMTA5OGJkYjk1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwu
bW0KQEAgLTI4LDcgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW1wb3J0ICJH
UFVCaW5kR3JvdXAuaCIKKyNpbXBvcnQgIkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCIKKyNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDYg
KzQ1LDg0IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MoKQogICAg
IG1faXNFbmNvZGluZyA9IGZhbHNlOwogfQogCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJn
dW1lbnRFbmNvZGVyLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25l
ZCBsb25nIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUpCit7CisjaWYgTE9H
X0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBp
ZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3Vt
ZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBzdGFnZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IFJlc291cmNlIGlzIG5vdCBhIGJ1ZmZlciB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8R1BV
QnVmZmVyQmluZGluZz4ocmVzb3VyY2UpOworICAgIGF1dG8gYnVmZmVyID0gYnVmZmVyQmluZGlu
Zy5idWZmZXItPnBsYXRmb3JtQnVmZmVyKCk7CisKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgTVRMQnVmZmVyIGluIEdQVUJ1ZmZlckJpbmRpbmch
IiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIFthcmd1bWVudEVuY29kZXIgc2V0QnVmZmVyOmJ1
ZmZlciBvZmZzZXQ6YnVmZmVyQmluZGluZy5vZmZzZXQgYXRJbmRleDppbmRleF07CisgICAgdXNl
UmVzb3VyY2UoYnVmZmVyLCBNVExSZXNvdXJjZVVzYWdlUmVhZCk7CisKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworfQorCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRCaW5kR3JvdXAodW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5k
R3JvdXApCit7CisgICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoKSI7CisjaWYgTE9HX0RJU0FCTEVECisg
ICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKworICAgIGNvbnN0IGF1dG8m
IHZlcnRleEFyZ3MgPSBiaW5kR3JvdXAubGF5b3V0KCkudmVydGV4QXJndW1lbnRzKCk7CisgICAg
Y29uc3QgYXV0byYgZnJhZ21lbnRBcmdzID0gYmluZEdyb3VwLmxheW91dCgpLmZyYWdtZW50QXJn
dW1lbnRzKCk7CisgICAgLy8gRklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgaWYgKHZlcnRleEFyZ3MuYnVm
ZmVyKQorICAgICAgICBzZXRWZXJ0ZXhCdWZmZXIodmVydGV4QXJncy5idWZmZXIuZ2V0KCksIDAs
IGluZGV4KTsKKyAgICBpZiAoZnJhZ21lbnRBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0RnJhZ21l
bnRCdWZmZXIoZnJhZ21lbnRBcmdzLmJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworCisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVh
Y2ggTVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgorICAgIGNvbnN0
IGF1dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsKKyAg
ICAgICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5nKTsK
KyAgICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7CisgICAgICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBpbiBH
UFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gYmluZEdyb3VwTGF5b3V0
QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExh
eW91dEJpbmRpbmcudHlwZSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291
cmNlIHR5cGVzLgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpVbmlmb3JtQnVmZmVyOgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJp
bmRpbmc6OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICBpZiAoYmlu
ZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRF
WCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFy
Z3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5j
dGlvbk5hbWUpOworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJp
bGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGUkFHTUVOVCkKKyAgICAgICAgICAgICAgICBzZXRS
ZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBiaW5k
aW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBSZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNz
RW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggNTU2NTA2M2Y2NDAwYjQwMzg1
NDM1M2RhYWM2N2UzNTA1MTQwMTQ3My4uZDBiMWQ2OWM5ZmVjYTcyODViZWQzYjViYzM1M2FiMTY1
OGY1MzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0K
QEAgLTExOCw2ICsxMTgsMjEgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyh1bnNp
Z25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmMKICAgICAgICAgYmFz
ZUluc3RhbmNlOmZpcnN0SW5zdGFuY2VdOwogfQogCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVy
Ojp1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqcmVzb3VyY2UsIE1UTFJlc291cmNlVXNhZ2UgdXNh
Z2UpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciB1c2VSZXNvdXJjZTpyZXNv
dXJjZSB1c2FnZTp1c2FnZV07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZl
cnRleEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2ln
bmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciBzZXRW
ZXJ0ZXhCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRleDppbmRleF07Cit9CisKK3Zv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqYnVm
ZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkKK3sKKyAgICBb
bV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldEZyYWdtZW50QnVmZmVyOmJ1ZmZlciBvZmZz
ZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4NTYyNTRmNmI1MDA1NTA1ZjhhMWRk
M2MzYzk2MWU4NzkwMWQ3YzEuLmE2NTIzMzVkMjAxZGU3NDZkYzBmMDUwNjZkYmNmMmM5YmYwMThh
MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0wMS0xOCAgSnVzdGluIEZhbiAgPGp1c3Rp
bl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIChXSVApIFtXZWJHUFVdIFdlYkdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ3Mjk2Njc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERyYXcgMyB0cmlhbmdsZXMgdmlhIFdlYkdQVSB0byBjcmVhdGUgYSBncmVlbiBz
cXVhcmUgY2FudmFzLCB3aXRoIHJlZmVyZW5jZS4KKyAgICAgICAgRWFjaCB2ZXJ0ZXggaXMgc3Rv
cmVkIGluIGl0cyBvd24gV2ViR1BVQnVmZmVyIGFuZCB0aGV5IGFyZSBtaXgvbWF0Y2hlZCBwZXIg
YmluZCBncm91cC4KKyAgICAgICAgVGhpcyB0ZXN0cyBtdWx0aXBsZSByZXNvdXJjZSBiaW5kaW5n
cyBpbiBvbmUgYmluZCBncm91cCBhcyB3ZWxsIGFzIHNldHRpbmcgbXVsdGlwbGUgCisgICAgICAg
IGJpbmQgZ3JvdXBzIHBlciBkcmF3IGNhbGwgYW5kIHBlciBjb21tYW5kIGVuY29kZXIuIAorCisg
ICAgICAgICogd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuIFJlZmVyZW5jZSBnZW5lcmF0ZWQgdXNpbmcgMkQgY2FudmFzLgorICAgICAgICAqIHdl
YmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWw6IEFkZGVkLiAKKyAgICAgICAgICAg
ICAgICAxKSBEcmF3IHRvcCB0d28gdHJpYW5nbGVzIHVzaW5nIHR3byBiaW5kIGdyb3VwcyBpbiBv
bmUgZHJhdyBjYWxsLgorICAgICAgICAgICAgICAgIDIpIFN3YXAgZmlyc3QgYmluZCBncm91cCBh
bmQgaXNzdWUgc2Vjb25kIGRyYXcgY2FsbCB0byBkcmF3IG1pZGRsZSB0cmlhbmdsZS4KKyAgICAg
ICAgKiB3ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKGNyZWF0ZUJhc2lj
UGlwZWxpbmUpOiBOb3cgaGFuZGxlcyBuZXcgcHJpbWl0aXZlIHRvcG9sb2dpZXMuCisKIDIwMTkt
MDEtMTYgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgR1RLIGFuZCBXUEUgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ODZmMTNlODEyMDM5N2E1Y2M2MzM2YzllMmE0ODVlNzc4YmE5OTMyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlh
bmdsZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5IVE1MIFJlZmVyZW5jZSBGaWxlPC90aXRsZT4K
KzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4K
KzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2Nv
bnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29u
dGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdy
Z2IoMCwgMjU1LCAwKSc7Citjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNzExNWJhNmNiYTJjNzg1MGEzYmU3Yjk2MjlkZDgzODFjNGJjNjU4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMu
aHRtbApAQCAtMCwwICsxLDE3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZh
cy4iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1l
eHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0
ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFz
PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAgIAor
dXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4IHsKKyAgICBmbG9hdDQgcG9z
aXRpb24gW1twb3NpdGlvbl1dOworfTsKKworc3RydWN0IFZlcnRleEFyZ3VtZW50cyB7CisgICAg
ZGV2aWNlIFZlcnRleCogdjA7CisgICAgZGV2aWNlIFZlcnRleCogdjE7CisgICAgZGV2aWNlIFZl
cnRleCogdjI7Cit9OworCit2ZXJ0ZXggVmVydGV4IHZlcnRleF9tYWluKAorICAgIGNvbnN0IGRl
dmljZSBWZXJ0ZXhBcmd1bWVudHMmIGFyZ3MwIFtbYnVmZmVyKDApXV0sCisgICAgY29uc3QgZGV2
aWNlIFZlcnRleEFyZ3VtZW50cyYgYXJnczEgW1tidWZmZXIoMSldXSwKKyAgICB1aW50IHZpZCBb
W3ZlcnRleF9pZF1dKQoreworICAgIHN3aXRjaCAodmlkKQorICAgIHsKKyAgICAgICAgY2FzZSAw
OiByZXR1cm4gYXJnczAudjBbMF07CisgICAgICAgIGNhc2UgMTogcmV0dXJuIGFyZ3MwLnYxWzBd
OworICAgICAgICBjYXNlIDI6IHJldHVybiBhcmdzMC52MlswXTsKKyAgICAgICAgY2FzZSAzOiBy
ZXR1cm4gYXJnczEudjBbMF07CisgICAgICAgIGNhc2UgNDogcmV0dXJuIGFyZ3MxLnYxWzBdOwor
ICAgICAgICBkZWZhdWx0OiByZXR1cm4gYXJnczEudjJbMF07CisgICAgfQorfQorCitzdHJ1Y3Qg
RnJhZ21lbnRBcmd1bWVudHMgeworICAgIGRldmljZSBmbG9hdDQqIGNvbG9yOworfTsKKworZnJh
Z21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oY29uc3QgZGV2aWNlIEZyYWdtZW50QXJndW1lbnRz
JiBhcmdzIFtbYnVmZmVyKDApXV0pCit7CisgICAgcmV0dXJuIGFyZ3MuY29sb3JbMF07Cit9Citg
CisKK2NvbnN0IGJpbmRpbmdOdW1zID0geworICAgIFVMOiAwLAorICAgIFVNOiAxLAorICAgIFVS
OiAyLAorICAgIExMOiAzLAorICAgIExSOiA0LAorICAgIEc6IDUKK307CisKK2Z1bmN0aW9uIGNy
ZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZE51bSwgc3RhZ2UgPSBXZWJHUFVT
aGFkZXJTdGFnZUJpdC5WRVJURVgpIHsKKyAgICByZXR1cm4geworICAgICAgICBiaW5kaW5nOiBi
aW5kTnVtLAorICAgICAgICB2aXNpYmlsaXR5OiBzdGFnZSwKKyAgICAgICAgdHlwZTogInVuaWZv
cm1CdWZmZXIiCisgICAgfTsKK30KKworY29uc3QgYnVmZmVyU2l6ZSA9IDQgKiA0OworCisvLyBG
SVhNRTogS2VlcCB1cCB0byBkYXRlIHdpdGggYnVmZmVyIHVwbG9hZCBkZWNpc2lvbnMuCitmdW5j
dGlvbiBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCBhLCBiKSB7CisgICAgY29uc3QgYnVmZmVy
ID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IGJ1ZmZlclNpemUsIHVzYWdlOiBXZWJHUFVC
dWZmZXJVc2FnZS5VTklGT1JNIH0pOworICAgIAorICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYnVm
ZmVyLm1hcHBpbmc7CisgICAgY29uc3QgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoYXJy
YXlCdWZmZXIpOworCisgICAgZmxvYXRBcnJheVswXSA9IGE7CisgICAgZmxvYXRBcnJheVsxXSA9
IGI7CisgICAgZmxvYXRBcnJheVsyXSA9IDA7CisgICAgZmxvYXRBcnJheVszXSA9IDE7CisKKyAg
ICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXJCaW5kaW5nKGJ1ZmZl
cikgeworICAgIHJldHVybiB7CisgICAgICAgIGJ1ZmZlcjogYnVmZmVyLAorICAgICAgICBvZmZz
ZXQ6IDAsCisgICAgICAgIHNpemU6IGJ1ZmZlclNpemUKKyAgICB9OworfQorCithc3luYyBmdW5j
dGlvbiB0ZXN0KCkgeworICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7
CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7Cisg
ICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSk7Cisg
ICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAgY29uc3Qgc2hh
ZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUg
fSk7CisKKyAgICAvLyBDcmVhdGUgdmVydGV4IGRhdGEgV2ViR1BVQnVmZmVycy4KKyAgICBjb25z
dCB1cHBlckxlZnQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAtMSwgMSk7CisgICAgY29u
c3QgdXBwZXJNaWRkbGUgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAwLCAxKTsKKyAgICBj
b25zdCB1cHBlclJpZ2h0ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgMSk7CisgICAg
Y29uc3QgbG93ZXJMZWZ0ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgLTEsIC0xKTsKKyAg
ICBjb25zdCBsb3dlclJpZ2h0ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgLTEpOwor
CisgICAgLy8gQ29sb3IgZGF0YSBidWZmZXIuCisgICAgY29uc3QgZ3JlZW4gPSBjcmVhdGVGbG9h
dDRCdWZmZXIoZGV2aWNlLCAwLCAxKTsKKworICAgIC8vIENyZWF0ZSBidWZmZXIgV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZ3MuCisgICAgY29uc3QgbGF5b3V0VUwgPSBjcmVhdGVVbmlmb3Jt
QnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLlVMKTsKKyAgICBjb25zdCBsYXlvdXRV
TSA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuVU0pOwor
ICAgIGNvbnN0IGxheW91dFVSID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChi
aW5kaW5nTnVtcy5VUik7CisgICAgY29uc3QgbGF5b3V0TEwgPSBjcmVhdGVVbmlmb3JtQnVmZmVy
QmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLkxMKTsKKyAgICBjb25zdCBsYXlvdXRMUiA9IGNy
ZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTFIpOworICAgIGNv
bnN0IGxheW91dEcgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdO
dW1zLkcsIFdlYkdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5UKTsKKworICAgIC8vIFdlYkdQVUJp
bmRHcm91cExheW91dHMKKyAgICBjb25zdCBsZWZ0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5j
cmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVMLCBsYXlvdXRVTSwgbGF5
b3V0TEwsIGxheW91dEddIH0pOworICAgIGNvbnN0IHJpZ2h0VHJpYW5nbGVCR0xheW91dCA9IGRl
dmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVSLCBsYXlvdXRV
TSwgbGF5b3V0TFJdIH0pOworICAgIGNvbnN0IG1pZGRsZVRyaWFuZ2xlQkdMYXlvdXQgPSBkZXZp
Y2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KHsgYmluZGluZ3M6IFtsYXlvdXRVTSwgbGF5b3V0TEws
IGxheW91dExSLCBsYXlvdXRHXSB9KTsKKworICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGFu
ZCBXZWJHUFVSZW5kZXJQaXBlbGluZQorICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNl
LmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHsgYmluZEdyb3VwTGF5b3V0czogW2xlZnRUcmlhbmdsZUJH
TGF5b3V0LCBtaWRkbGVUcmlhbmdsZUJHTGF5b3V0LCByaWdodFRyaWFuZ2xlQkdMYXlvdXRdIH0p
OworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUs
IGRldmljZSwgcGlwZWxpbmVMYXlvdXQsIG51bGwsICJ0cmlhbmdsZUxpc3QiKTsKKworICAgIC8v
IFdlYkdQVUJ1ZmZlckJpbmRpbmdzCisgICAgY29uc3QgYmluZGluZ1VMID0gY3JlYXRlQnVmZmVy
QmluZGluZyh1cHBlckxlZnQpOworICAgIGNvbnN0IGJpbmRpbmdVTSA9IGNyZWF0ZUJ1ZmZlckJp
bmRpbmcodXBwZXJNaWRkbGUpOworICAgIGNvbnN0IGJpbmRpbmdVUiA9IGNyZWF0ZUJ1ZmZlckJp
bmRpbmcodXBwZXJSaWdodCk7CisgICAgY29uc3QgYmluZGluZ0xMID0gY3JlYXRlQnVmZmVyQmlu
ZGluZyhsb3dlckxlZnQpOworICAgIGNvbnN0IGJpbmRpbmdMUiA9IGNyZWF0ZUJ1ZmZlckJpbmRp
bmcobG93ZXJSaWdodCk7CisgICAgY29uc3QgYmluZGluZ0cgPSBjcmVhdGVCdWZmZXJCaW5kaW5n
KGdyZWVuKTsKKyAgICAKKyAgICAvLyBXZWJHUFVCaW5kR3JvdXBCaW5kaW5ncworICAgIGNvbnN0
IGJnQmluZGluZ1VMID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5VTCwgcmVzb3VyY2U6IGJpbmRp
bmdVTCB9OworICAgIGNvbnN0IGJnQmluZGluZ1VNID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5V
TSwgcmVzb3VyY2U6IGJpbmRpbmdVTSB9OworICAgIGNvbnN0IGJnQmluZGluZ1VSID0geyBiaW5k
aW5nOiBiaW5kaW5nTnVtcy5VUiwgcmVzb3VyY2U6IGJpbmRpbmdVUiB9OworICAgIGNvbnN0IGJn
QmluZGluZ0xMID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5MTCwgcmVzb3VyY2U6IGJpbmRpbmdM
TCB9OworICAgIGNvbnN0IGJnQmluZGluZ0xSID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5MUiwg
cmVzb3VyY2U6IGJpbmRpbmdMUiB9OworICAgIGNvbnN0IGJnQmluZGluZ0cgPSB7IGJpbmRpbmc6
IGJpbmRpbmdOdW1zLkcsIHJlc291cmNlOiBiaW5kaW5nRyB9OworCisgICAgLy8gV2ViR1BVQmlu
ZEdyb3VwcworICAgIGNvbnN0IGxlZnRUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91
cCh7IAorICAgICAgICBsYXlvdXQ6IGxlZnRUcmlhbmdsZUJHTGF5b3V0LCAKKyAgICAgICAgYmlu
ZGluZ3M6IFtiZ0JpbmRpbmdVTCwgYmdCaW5kaW5nVU0sIGJnQmluZGluZ0xMLCBiZ0JpbmRpbmdH
XSAKKyAgICB9KTsKKyAgICBjb25zdCByaWdodFRyaWFuZ2xlQkcgPSBkZXZpY2UuY3JlYXRlQmlu
ZEdyb3VwKHsKKyAgICAgICAgbGF5b3V0OiByaWdodFRyaWFuZ2xlQkdMYXlvdXQsCisgICAgICAg
IGJpbmRpbmdzOiBbYmdCaW5kaW5nVVIsIGJnQmluZGluZ1VNLCBiZ0JpbmRpbmdMUl0KKyAgICB9
KTsKKyAgICBjb25zdCBtaWRkbGVUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7
CisgICAgICAgIGxheW91dDogbWlkZGxlVHJpYW5nbGVCR0xheW91dCwKKyAgICAgICAgYmluZGlu
Z3M6IFtiZ0JpbmRpbmdVTSwgYmdCaW5kaW5nTEwsIGJnQmluZGluZ0xSLCBiZ0JpbmRpbmdHXQor
ICAgIH0pOworCisgICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5k
QnVmZmVyKCk7CisgICAgY29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhj
b250ZXh0LCBjb21tYW5kQnVmZmVyKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRQaXBlbGluZShwaXBl
bGluZSk7CisKKyAgICAvLyBEcmF3IHVwcGVyIHRyaWFuZ2xlcy4KKyAgICBwYXNzRW5jb2Rlci5z
ZXRCaW5kR3JvdXAoMCwgbGVmdFRyaWFuZ2xlQkcpOworICAgIHBhc3NFbmNvZGVyLnNldEJpbmRH
cm91cCgxLCByaWdodFRyaWFuZ2xlQkcpOworICAgIHBhc3NFbmNvZGVyLmRyYXcoNiwgMSwgMCwg
MCk7CisgICAgLy8gRHJhdyBsb3dlciB0cmlhbmdsZS4KKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5k
R3JvdXAoMCwgbWlkZGxlVHJpYW5nbGVCRyk7CisgICAgcGFzc0VuY29kZXIuZHJhdygzLCAxLCAw
LCAwKTsKKworICAgIGNvbnN0IGVuZENvbW1hbmRCdWZmZXIgPSBwYXNzRW5jb2Rlci5lbmRQYXNz
KCk7CisgICAgY29uc3QgcXVldWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKyAgICBxdWV1ZS5zdWJt
aXQoW2VuZENvbW1hbmRCdWZmZXJdKTsKKyAgICBjb250ZXh0LnByZXNlbnQoKTsKK30KKwordGVz
dCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93
ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwppbmRleCBjNzUzMDJiZTg5MjlkZmRlZjBjMjAy
OWU1MzZhMGNkOGRhNmRlMGI5Li43NjdmOTQ2NTIxYTRhZDIyMjEzZjkyZjBkNGZjYjU3MjBjODI2
MzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5q
cworKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMTIs
NyArMTIsNyBAQCBmdW5jdGlvbiBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpIHsK
ICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShz
aGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXNjcmlwdG9y
KSB7CitmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBw
aXBlbGluZUxheW91dCwgaW5wdXRTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5ID0g
InRyaWFuZ2xlU3RyaXAiKSB7CiAgICAgY29uc3QgdmVydGV4U3RhZ2VEZXNjcmlwdG9yID0gewog
ICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRl
eF9tYWluIiAKQEAgLTI2LDEzICsyNiwxNSBAQCBmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5l
KHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRTdGF0ZURlcwogICAg
IGNvbnN0IHBpcGVsaW5lRGVzY3JpcHRvciA9IHsKICAgICAgICAgdmVydGV4U3RhZ2U6IHZlcnRl
eFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURl
c2NyaXB0b3IsCi0gICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVTdHJpcCIsCi0g
ICAgICAgIGlucHV0U3RhdGU6IGlucHV0U3RhdGVEZXNjcmlwdG9yCisgICAgICAgIHByaW1pdGl2
ZVRvcG9sb2d5OiBwcmltaXRpdmVUb3BvbG9neQogICAgIH07CiAKICAgICBpZiAocGlwZWxpbmVM
YXlvdXQpCiAgICAgICAgIHBpcGVsaW5lRGVzY3JpcHRvci5sYXlvdXQgPSBwaXBlbGluZUxheW91
dDsKIAorICAgIGlmIChpbnB1dFN0YXRlRGVzY3JpcHRvcikKKyAgICAgICAgcGlwZWxpbmVEZXNj
cmlwdG9yLmlucHV0U3RhdGUgPSBpbnB1dFN0YXRlRGVzY3JpcHRvcjsKKwogICAgIHJldHVybiBk
ZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUocGlwZWxpbmVEZXNjcmlwdG9yKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359508</attachid>
            <date>2019-01-18 10:49:55 -0800</date>
            <delta_ts>2019-01-18 11:02:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190118104954.patch</filename>
            <type>text/plain</type>
            <size>50084</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uMDIyOTMyNmJmODlhYmU4ZGNjNzk3MTA1ZjUwZDlm
YTE3MDllOWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTAxLTE4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgKFdJUCkgW1dlYkdQVV0g
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyOTY2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFdlYkdQVSBkZXZlbG9wZXJzIHRvIGFzc2ln
biBidWZmZXIgYmluZCBncm91cHMgYW5kIGFjY2VzcyB0aGVtIHZpYSByZW5kZXIgcGlwZWxpbmUu
IAorICAgICAgICBTdXBwb3J0IGZvciBjb21wdXRlIHBpcGVsaW5lcyB0byBmb2xsb3cgc2hvcnRs
eS4gCisgICAgICAgIFRleHR1cmUgYW5kIHNhbXBsZXIgcmVzb3VyY2VzIHRvIGZvbGxvdyBhZnRl
ciB0aGVpciByZXF1aXNpdGUgaW50ZXJmYWNlcyBhcmUgaW1wbGVtZW50ZWQuIAorCisgICAgICAg
IFRlc3Q6IHdlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwOjpiaW5kR3JvdXAgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwOiAKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAg
Y29uc3QpOiBBZGRlZC4gRGVsZWdhdGVzIGNhbGwgdG8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuaDogRW5hYmxlIHNldEJpbmRHcm91cC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGw6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwLmg6IAorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpsYXlv
dXQgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6
OmJpbmRpbmdzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oOiBBZGRlZCBBcmd1bWVudEVuY29kZXJCdWZmZXIgc3RydWN0
IHRvIHJldGFpbiBwdHIgdG90IGJvdGggTVRMQXJndW1lbnRFbmNvZGVycyBhbmQgdGhlaXIgYXJn
dW1lbnQgTVRMQnVmZmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
QXJndW1lbnRFbmNvZGVyQnVmZmVyOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQmluZEdyb3VwTGF5b3V0Ojp2ZXJ0ZXhBcmd1bWVudHMgY29uc3QpOiBBZGRlZC4gR2V0
dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpmcmFnbWVudEFyZ3Vt
ZW50cyBjb25zdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0
Ojpjb21wdXRlQXJndW1lbnRzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IFJlZmFjdG9yZWQgdW5uZWNlc3NhcnkgaGVhZGVyIGlu
Y2x1ZGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOiBkaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRWZXJ0ZXhCdWZmZXIpOiBBZGRlZC4gRGVsZWdhdGVzIHRvIE1UTENvbW1hbmRFbmNvZGVyIGNh
bGwuCisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0RnJh
Z21lbnRCdWZmZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyUGFzc0VuY29kZXIuaDogCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3Jl
YXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKTogUmVwbGFjZSBuZXdFbmNvZGVyKCkuIE5vdyBj
cmVhdGUgYW4gQXJndW1lbnRFbmNvZGVyQnVmZmVyIG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIE1U
TEFyZ3VtZW50RGVzY3JpcHRvcnMsIGlmIGFibGUuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlZmFjdG9yIHRvIHN1cHBvcnQgQXJndW1lbnRFbmNv
ZGVyQnVmZmVycywgYW5kIGFsbG9jYXRlIE1UTEJ1ZmZlcnMgZm9yIGFyZ3VtZW50IGVuY29kZXJz
LgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpHUFVCaW5kR3JvdXBMYXlv
dXQpOiBTdXBwb3J0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlcnMuCisgICAgICAgIChXZWJDb3JlOjpu
ZXdFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChX
ZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9u
RW5jb2Rlcik6IFNldCBhIGJ1ZmZlciByZXNvdXJjZSBvbiB0aGUgTVRMQXJndW1lbnRFbmNvZGVy
LCBhbmQgY2FsbCB1c2VSZXNvdXJjZSBvbiB0aGUgY29tbWFuZCBlbmNvZGVyLgorICAgICAgICAo
V2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCk6IFBhcnNl
cyB0aGUgYmluZCBncm91cCB0byBhc3NpZ24gZWFjaCByZXNvdXJjZSBvbiBpdHMgbWF0Y2hpbmcg
TVRMQXJndW1lbnRFbmNvZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tOiAKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6IFJlc29sdmVzIGNhbGwgZnJvbSBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2RlciB0byBjYWxsIG9uIE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcik6
IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdt
ZW50QnVmZmVyKTogZGl0dG8uCisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4IDBhMDQ3MDk1
NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQwOTc5MzBlYmJh
ZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQVUJpbmRHcm91
cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJik7
CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR1BVQmluZEdy
b3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJiMi4uZjZmNWVh
NmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFu
ZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJHUFVCaW5kR3Jv
dXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5kR3JvdXAoKSkg
eworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5kZXggZHVwbGlj
YXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIoKS5zZXRCaW5k
R3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lkIFdlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGluZShwaXBlbGlu
ZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBlZjEw
YzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0NmY5NDljZjll
YzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTI4
LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVDb21t
YW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOworY2xhc3MgV2Vi
R1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIFdlYkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgUmVm
PFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJpbmRHcm91cCh1
bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAgICB2b2lkIHNl
dFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZkOGViYTE1ZWUy
NDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJhOGM0N2RkNGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQsMTQgQEAKICAq
LwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKICAgICBTa2lw
VlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAgLy8gRklYTUU6
IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0gICAgdm9pZCBz
ZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBOb3QgWWV0IElt
cGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJlbmRlciBwYXNz
ZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQgc2V0QmluZEdy
b3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLworICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cC8qLCBvcHRp
b25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQgc2V0UGlwZWxp
bmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3VwcG9ydCBXZWJH
UFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNDk4ZmE4YTJiZmVmZDVjNzkwMzExNWJmMjM3
MDg5NjZmOTI0MTE1Li4wNmE4YzYyMDkyOTdjZmU1MjVhNTQ3MDI1YjdjNzdmZTcwYWUxMmQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02NDI3LDE3ICs2NDI3LDE2IEBACiAJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAwRCAvKiBX
SExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEdhdGhlckVu
dHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg0MEI5QjIx
RUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0REY5MEJB
OUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFDQTBDMkU0MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyogV0hM
U0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3Rh
Z2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNBMjFFRDlE
RjUwMDY5RDVGMiAvKiBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5QUU1Q0IyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMEMyREUyMUVFQjVGNDAwQTExODYwIC8qIFdITFNMUmVjdXJzaW9uQ2hl
Y2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRTAyMUVFQjVGNTAwQTExODYwIC8qIFdITFNMUmVj
dXJzaW9uQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNr
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0EwQzJFNDIxRUVEMTJBMDBB
MTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIxRUVENkY1MDBBMTE4NjAgLyogV0hMU0xM
aXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUMyMUVFRDZGNjAwQTEx
ODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MUM5QUU1Q0EyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQzlBRTVDQjIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdoWm9t
YmllRmluZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJGNDIxRUVEQUQwMDBBMTE4NjAgLyogV0hM
U0xMb29wQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTExvb3BDaGVja2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjUyMUVFREFEMTAwQTExODYw
IC8qIFdITFNMTG9vcENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMb29wQ2hlY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAg
LyogQVNUICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
Zm9sZGVyOyBwYXRoID0gQVNUOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0ExOUUw
MzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMzIsNiArMTcwMzEsMTAwIEBACiAJCQl0
YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTFDQTBDMkY2MjFFRURBRDIw
MEExMTg2MCAvKiBBU1QgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFjZS5oICov
LAorCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJlbmNlVHlw
ZS5oICovLAorCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5VHlwZS5o
ICovLAorCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1lbnRFeHBy
ZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNMQmFzZUZ1
bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5IC8qIFdI
TFNMQmFzZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5IC8qIFdI
TFNMQmxvY2suaCAqLywKKwkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAyMjc5NzkgLyogV0hMU0xCb29s
ZWFuTGl0ZXJhbC5oICovLAorCQkJCUMyMUJGNzFBMjFDRDg5RDgwMDIyNzk3OSAvKiBXSExTTEJy
ZWFrLmggKi8sCisJCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJBIC8qIFdITFNMQnVpbHRJblNl
bWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAyMjc5NzkgLyogV0hMU0xCdWls
dEluU2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxNjIxQ0Q4OUQ1MDAyMjc5NzkgLyogV0hMU0xD
YWxsRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExT
TENvbW1hRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAvKiBX
SExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIyNzk3
OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJQzIxQkY3MDEyMUNEODlDNDAwMjI3OTc5IC8q
IFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MTgyMUNEODlENzAw
MjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkZCMjFDRDg5QkUw
MDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCisJCQkJQzIxQkY3MjgyMUNEODlFNTAw
MjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudC5oICovLAorCQkJCTFD
ODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBlLmggKi8sCisJCQkJ
QzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0aW9uLmgg
Ki8sCisJCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1i
ZXIuaCAqLywKKwkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlv
bk1lbWJlckxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5NzkgLyogV0hM
U0xFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MDAyMUNEODlDMjAwMjI3OTc5IC8qIFdITFNM
RmFsbHRocm91Z2guaCAqLywKKwkJCQlDMjFCRjczNTIxQ0Q4OUYyMDAyMjc5NzkgLyogV0hMU0xG
bG9hdExpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzODIxREYwM0UxMDA2RTg0NkEgLyogV0hMU0xG
bG9hdExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyog
V0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzQyMUNEODlGMTAwMjI3OTc5
IC8qIFdITFNMRm9yTG9vcC5oICovLAorCQkJCUMyMUJGNzA1MjFDRDg5QzcwMDIyNzk3OSAvKiBX
SExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkQyMUNEODlDMDAwMjI3OTc5
IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAorCQkJCUMyMUJGNkY0MjFDRDg5QjMw
MDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNkZGMjFD
RDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8sCisJCQkJQzIxQkY2RjcyMUNE
ODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmggKi8sCisJCQkJQzIwRjRGNjYy
MURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJCUMyMUJG
NkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNC
NjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcCAqLywK
KwkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUu
aCAqLywKKwkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsRXhwcmVz
c2lvbi5oICovLAorCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3OSAvKiBXSExTTExvZ2ljYWxO
b3RFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MkQyMUNEODlFOTAwMjI3OTc5IC8qIFdITFNM
TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJDMjFDRDg5RTkw
MDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oICovLAorCQkJCTFDMzMyNzcx
MjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICovLAorCQkJCUMyMUJGNzIzMjFD
RDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJ
CQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24u
aCAqLywKKwkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOb2RlLmggKi8sCisJ
CQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVsbExpdGVyYWwuaCAqLywKKwkJ
CQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuY3BwICov
LAorCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFsVHlwZS5o
ICovLAorCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBXSExTTE51bVRocmVhZHNGdW5j
dGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNzJGMjFDRDg5RUMwMDIyNzk3OSAvKiBXSExT
TFBvaW50ZXJUeXBlLmggKi8sCisJCQkJQzIxQkY3MkUyMUNEODlFQTAwMjI3OTc5IC8qIFdITFNM
UHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEIyMUNEODlDQzAwMjI3
OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCisJCQkJQzIxQkY3MUIyMUNEODlEOTAwMjI3OTc5
IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBEMjFD
RDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQkxQ0I2OUIzMjIx
REVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovLAorCQkJCUMyMTM4QTE1
MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuY3BwICovLAorCQkJCUMy
MUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuaCAqLywKKwkJ
CQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1cm4uaCAqLywKKwkJCQlDMjFC
RjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE2
MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5j
cHAgKi8sCisJCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8qIFdITFNMU3BlY2lhbGl6YXRp
b25Db25zdGFudFNlbWFudGljLmggKi8sCisJCQkJQzIxMzhBMTcyMURERUQwRDAwRjUxNkJBIC8q
IFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcwRTIxQ0Q4OUNFMDAy
Mjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxMjIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyNzIxQ0Q4OUU0
MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmggKi8sCisJCQkJQzIxQkY2RkUy
MUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVudC5oICovLAorCQkJCUMyMUJG
NzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2UuaCAqLywKKwkJCQlDMjFCRjcz
MTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFC
RjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhwcmVzc2lvbi5oICovLAorCQkJ
CUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAuaCAqLywKKwkJCQlDMjFCRjcx
RDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCisJCQkJQzI4OEM3MkQyMUM5OTFE
QTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywKKwkJCQlDMjFCRjcxMTIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyOTIxQ0Q4
OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMEY0RjY0MjFE
RkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3BwICovLAorCQkJCUMyMUJGNzFG
MjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuaCAqLywKKwkJCQkxQzMzMjc3
MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5oICovLAorCQkJCUMyMEY0RjY3
MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwuY3BwICovLAor
CQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVy
YWwuaCAqLywKKwkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEgLyogV0hMU0xVbnNpZ25lZElu
dGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzcyMURFRDY2QjAwNkU4NDZBIC8q
IFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjZGQzIxQ0Q4
OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAorCQkJCUMyMUJGNzEwMjFDRDg5RDAwMDIy
Nzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlDMjFCRjcxNDIxQ0Q4
OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudC5oICovLAor
CQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlUmVmZXJlbmNlLmgg
Ki8sCisJCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdITFNMV2hpbGVMb29wLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IEFTVDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTUwOCwxMDAgKzI1NjAxLDYg
QEAKIAkJCXBhdGggPSBXSExTTDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0J
CTFDQTBDMkY2MjFFRURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91
cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExT
TEFkZHJlc3NTcGFjZS5oICovLAotCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExT
TEFycmF5UmVmZXJlbmNlVHlwZS5oICovLAotCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAv
KiBXSExTTEFycmF5VHlwZS5oICovLAotCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBX
SExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3
OTc5IC8qIFdITFNMQmFzZUZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2RkEyMUNE
ODlCRTAwMjI3OTc5IC8qIFdITFNMQmFzZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MUUyMUNE
ODlEQzAwMjI3OTc5IC8qIFdITFNMQmxvY2suaCAqLywKLQkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAy
Mjc5NzkgLyogV0hMU0xCb29sZWFuTGl0ZXJhbC5oICovLAotCQkJCUMyMUJGNzFBMjFDRDg5RDgw
MDIyNzk3OSAvKiBXSExTTEJyZWFrLmggKi8sCi0JCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJB
IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAy
Mjc5NzkgLyogV0hMU0xCdWlsdEluU2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcxNjIxQ0Q4OUQ1
MDAyMjc5NzkgLyogV0hMU0xDYWxsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzA2MjFDRDg5
QzcwMDIyNzk3OSAvKiBXSExTTENvbW1hRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzMzMjFD
RDg5RjAwMDIyNzk3OSAvKiBXSExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJG
NkY1MjFDRDg5QjUwMDIyNzk3OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCi0JCQkJQzIxQkY3MDEy
MUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCi0JCQkJ
QzIxQkY3MTgyMUNEODlENzAwMjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNkZCMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCi0JCQkJ
QzIxQkY3MjgyMUNEODlFNTAwMjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRl
bWVudC5oICovLAotCQkJCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9p
bnRUeXBlLmggKi8sCi0JCQkJQzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVy
YXRpb25EZWZpbml0aW9uLmggKi8sCi0JCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdI
TFNMRW51bWVyYXRpb25NZW1iZXIuaCAqLywKLQkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5Nzkg
LyogV0hMU0xFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaCAqLywKLQkJCQlDMjFCRjcwQzIxQ0Q4
OUNDMDAyMjc5NzkgLyogV0hMU0xFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MDAyMUNEODlD
MjAwMjI3OTc5IC8qIFdITFNMRmFsbHRocm91Z2guaCAqLywKLQkJCQlDMjFCRjczNTIxQ0Q4OUYy
MDAyMjc5NzkgLyogV0hMU0xGbG9hdExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzODIxREYwM0Ux
MDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNDIx
REVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY3
MzQyMUNEODlGMTAwMjI3OTc5IC8qIFdITFNMRm9yTG9vcC5oICovLAotCQkJCUMyMUJGNzA1MjFD
RDg5QzcwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2
RkQyMUNEODlDMDAwMjI3OTc5IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAotCQkJ
CUMyMUJGNkY0MjFDRDg5QjMwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMUJGNkZGMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8s
Ci0JCQkJQzIxQkY2RjcyMUNEODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmgg
Ki8sCi0JCQkJQzIwRjRGNjYyMURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwu
Y3BwICovLAotCQkJCUMyMUJGNkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRl
cmFsLmggKi8sCi0JCQkJMUNCNjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxp
dGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJ
bnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyog
V0hMU0xMb2dpY2FsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3
OSAvKiBXSExTTExvZ2ljYWxOb3RFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MkQyMUNEODlF
OTAwMjI3OTc5IC8qIFdITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNzJDMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5o
ICovLAotCQkJCTFDMzMyNzcxMjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICov
LAotCQkJCUMyMUJGNzIzMjFDRDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVj
bGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRp
dmVUeXBlRGVjbGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyog
V0hMU0xOb2RlLmggKi8sCi0JCQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVs
bExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxs
TGl0ZXJhbFR5cGUuY3BwICovLAotCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExT
TE51bGxMaXRlcmFsVHlwZS5oICovLAotCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBX
SExTTE51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAotCQkJCUMyMUJGNzJGMjFDRDg5
RUMwMDIyNzk3OSAvKiBXSExTTFBvaW50ZXJUeXBlLmggKi8sCi0JCQkJQzIxQkY3MkUyMUNEODlF
QTAwMjI3OTc5IC8qIFdITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIx
QkY3MEIyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCi0JCQkJQzIxQkY3
MUIyMUNEODlEOTAwMjI3OTc5IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICov
LAotCQkJCUMyMUJGNzBEMjFDRDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAq
LywKLQkJCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovLAotCQkJCUMyMTM4QTE1MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50
aWMuY3BwICovLAotCQkJCUMyMUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNl
U2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1
cm4uaCAqLywKLQkJCQlDMjFCRjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5o
ICovLAotCQkJCUMyMTM4QTE2MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9u
Q29uc3RhbnRTZW1hbnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8q
IFdITFNMU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmggKi8sCi0JCQkJQzIxMzhBMTcy
MURERUQwRDAwRjUxNkJBIC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKLQkJCQlD
MjFCRjcwRTIxQ0Q4OUNFMDAyMjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywK
LQkJCQlDMjFCRjcxMjIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKLQkJ
CQlDMjFCRjcyNzIxQ0Q4OUU0MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmgg
Ki8sCi0JCQkJQzIxQkY2RkUyMUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVu
dC5oICovLAotCQkJCUMyMUJGNzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2Uu
aCAqLywKLQkJCQlDMjFCRjczMTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1l
bnQuaCAqLywKLQkJCQlDMjFCRjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhw
cmVzc2lvbi5oICovLAotCQkJCUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAu
aCAqLywKLQkJCQlDMjFCRjcxRDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCi0J
CQkJQzI4OEM3MkQyMUM5OTFEQTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywK
LQkJCQlDMjFCRjcxMTIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywK
LQkJCQlDMjFCRjcyOTIxQ0Q4OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMEY0RjY0MjFERkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3Bw
ICovLAotCQkJCUMyMUJGNzFGMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2Uu
aCAqLywKLQkJCQkxQzMzMjc3MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5o
ICovLAotCQkJCUMyMEY0RjY3MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWwuY3BwICovLAotCQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEg
LyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzcy
MURFRDY2QjAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywK
LQkJCQlDMjFCRjZGQzIxQ0Q4OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAotCQkJCUMy
MUJGNzEwMjFDRDg5RDAwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywK
LQkJCQlDMjFCRjcxNDIxQ0Q4OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9u
c1N0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZh
cmlhYmxlUmVmZXJlbmNlLmggKi8sCi0JCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdI
TFNMV2hpbGVMb29wLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IEFTVDsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07CiAJCUM5NkY1RUJGMUI1ODcyMjYwMDkxRUE5RCAvKiBtZWRpYXNl
c3Npb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oCmlu
ZGV4IDgwNjEzODM2Nzk3MWRlNmJhZDVjYjY1YWYxOWY3NTUxMGNjMzMwOTIuLjJjZGMwNzM3MzYw
MTFlYWEwMmIwZTY2MzdlYTJkNDMxMGM2ZTczMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKQEAgLTQxLDYgKzQxLDkgQEAg
Y2xhc3MgR1BVQmluZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVCaW5kR3JvdXA+IGNyZWF0ZShHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiYpOwogCisgICAgY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0JiBsYXlvdXQoKSBj
b25zdCB7IHJldHVybiBtX2xheW91dC5nZXQoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxHUFVCaW5k
R3JvdXBCaW5kaW5nPiYgYmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2JpbmRpbmdzOyB9CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVQmluZEdyb3VwKEdQVUJpbmRHcm91cERlc2NyaXB0
b3ImJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaAppbmRleCBmMmFkODllNzBkZjBmMzFlZDkzZTY2ODQy
MTY1MDFjNjcxZDM3YTNlLi5kYmIzYTJkNzhlMmY5MzUzMDgzNDM4ZTI2MTVkMjc5NjNiNzc1NGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogCiBPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BS
T1RPQ09MKE1UTEJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMjIgKzQz
LDMxIEBAIGNsYXNzIEdQVURldmljZTsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0IDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6Ci0gICAgc3RydWN0
IEFyZ3VtZW50RW5jb2RlcnMgewotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVy
PiB2ZXJ0ZXg7Ci0gICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50
OwotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlOwotICAgIH07
Ci0KICAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3JlYXRlKGNvbnN0
IEdQVURldmljZSYsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJik7CiAKICAgICB1c2lu
ZyBCaW5kaW5nc01hcFR5cGUgPSBIYXNoTWFwPHVuc2lnbmVkIGxvbmcgbG9uZywgR1BVQmluZEdy
b3VwTGF5b3V0QmluZGluZywgV1RGOjpJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQgbG9uZyBsb25nPj47CiAgICAg
Y29uc3QgQmluZGluZ3NNYXBUeXBlJiBiaW5kaW5nc01hcCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlu
ZGluZ3NNYXA7IH0KKyNpZiBVU0UoTUVUQUwpCisgICAgc3RydWN0IEFyZ3VtZW50RW5jb2RlckJ1
ZmZlciB7CisgICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGVuY29kZXI7Cisg
ICAgICAgIFJldGFpblB0cjxNVExCdWZmZXI+IGJ1ZmZlcjsKKworICAgICAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFlbmNvZGVyIHx8ICFidWZmZXI7IH0KKyAgICB9OworICAg
IGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgdmVydGV4QXJndW1lbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0ZXhBcmd1bWVudHM7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImIGZyYWdtZW50QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50
czsgfQorICAgIGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgY29tcHV0ZUFyZ3VtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50czsgfQorI2VuZGlmIC8vIFVTRShNRVRB
TCkKIAogcHJpdmF0ZToKLSAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYs
IEFyZ3VtZW50RW5jb2RlcnMmJik7CisjaWYgVVNFKE1FVEFMKQorICAgIEdQVUJpbmRHcm91cExh
eW91dChCaW5kaW5nc01hcFR5cGUmJiwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYsIEFyZ3VtZW50
RW5jb2RlckJ1ZmZlciYmLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJik7CiAKKyAgICBBcmd1bWVu
dEVuY29kZXJCdWZmZXIgbV92ZXJ0ZXhBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIG1fZnJhZ21lbnRBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVmZmVyIG1fY29t
cHV0ZUFyZ3VtZW50czsKKyNlbmRpZiAvLyBVU0UoTUVUQUwpCiAgICAgY29uc3QgQmluZGluZ3NN
YXBUeXBlIG1fYmluZGluZ3NNYXA7Ci0gICAgQXJndW1lbnRFbmNvZGVycyBtX2FyZ3VtZW50RW5j
b2RlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDExMzI5ZWU4NWU1
MWIwMmJkMzFjODFiM2ZlMmEyMTM5NDMyZDc0ZjMuLjQxNTI0YTU4N2RhYzFlOGFhZjQwN2M4Yjky
NzY0ZTJmZmI2ZWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgi
CiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDM3
NmQwZmU2MmZiZDMzZmJmN2UyZTE2YzA2NGJkYjIyYTA0ZmY0OTcuLjZlNmQ1MTUzMTg1YjhiYWVk
ZTRiMzQ5Y2IwNWEyMzE3Y2JhMThhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI3LDkgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BV
UXVldWUuaCIKLQogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQzLDYgKzQxLDcgQEAgdXNp
bmcgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+OwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiBjbGFzcyBHUFVCdWZmZXI7CitjbGFzcyBHUFVDb21tYW5k
QnVmZmVyOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGlu
ZTsKIGNsYXNzIEdQVVNoYWRlck1vZHVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKaW5kZXggOTQ4YzBjODg2YTkzYTk1ODU4MTU5MGM5YTUyYjU0NGE0YmQ3MjZlNS4uOTUxYzQz
ODA3NGQ3YjM5MTA0MWNjOTYxNjliZWFhOTQ3NGYyMzk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmgKQEAgLTI3LDEyICsyNywxNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkK
IAorI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCitPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BST1RP
Q09MKE1UTEJ1ZmZlcik7CiBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRFbmNvZGVyKTsKK09CSkNf
UFJPVE9DT0woTVRMUmVzb3VyY2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQ
VUJpbmRHcm91cDsKIGNsYXNzIEdQVVJlbmRlclBpcGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyID0gTVRMQ29tbWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDcs
MjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkg
PSBkZWZhdWx0OwogCiAgICAgdm9pZCBlbmRQYXNzKCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91
cCh1bnNpZ25lZCBsb25nLCBjb25zdCBHUFVCaW5kR3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFz
c0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CisjaWYgVVNFKE1FVEFMKQorICAgIHZv
aWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29u
c3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQgbG9uZywgY29uc3QgY2hhciogY29uc3Qp
OworICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBs
b25nKSA9IDA7CisKKyAgICAvLyBSZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAg
dmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywg
dW5zaWduZWQgbG9uZykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1U
TEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSB7IH0KKyNlbmRpZiAvLyBV
U0UoTUVUQUwpCisKICAgICBib29sIG1faXNFbmNvZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNz
RW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYx
MmMxMi4uYzhlNjg1YThlNTZhODc1NmUwMGEzNjk1ZjkwMDNiYWM2MTc3ODc1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNv
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKQEAgLTYyLDYgKzYyLDEzIEBAIHByaXZhdGU6CiAKICAgICBQbGF0Zm9y
bVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKiBwbGF0Zm9ybVBhc3NFbmNvZGVyKCkgY29uc3QgZmlu
YWw7CiAKKyNpZiBVU0UoTUVUQUwpCisgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIK
KyAgICB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpIGZpbmFs
OworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZl
ciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKKyNlbmRpZiAvLyBVU0Uo
TUVUQUwpCisKICAgICBQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHIgbV9wbGF0Zm9y
bVJlbmRlclBhc3NFbmNvZGVyOwogICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gbV9waXBl
bGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXgg
Zjg5MzFjZTY2MjliMTUwYzZhOTg1M2ExZGE4ZWM0NTdiOWU3NWI0Ny4uNjAyMmM2MmNjMGI2YzIw
YzYwOWMyMmRkNjRlZjUyYTllY2RlNWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBM
YXlvdXRNZXRhbC5tbQpAQCAtNjEsMjEgKzYxLDM4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZEFyZ3Vt
ZW50VG9BcnJheShBcmd1bWVudEFycmF5JiBhcnJheSwgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVz
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotc3RhdGljIFJldGFpblB0cjxN
VExBcmd1bWVudEVuY29kZXI+IG5ld0VuY29kZXIoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEFy
Z3VtZW50QXJyYXkgYXJyYXkpCitzdGF0aWMgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVudEVu
Y29kZXJCdWZmZXIgdHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKGNvbnN0IEdQVURl
dmljZSYgZGV2aWNlLCBBcmd1bWVudEFycmF5IGFycmF5KQogewotICAgIFJldGFpblB0cjxNVExB
cmd1bWVudEVuY29kZXI+IGVuY29kZXI7CisgICAgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVu
dEVuY29kZXJCdWZmZXIgYXJnczsKKwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LSAgICBlbmNvZGVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QXJndW1l
bnRFbmNvZGVyV2l0aEFyZ3VtZW50czphcnJheS5nZXQoKV0pOworICAgIGFyZ3MuZW5jb2RlciA9
IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhB
cmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwot
ICAgIGlmICghZW5jb2RlcikKKyAgICBpZiAoIWFyZ3MuZW5jb2RlcikgewogICAgICAgICBMT0co
V2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0
ZSBNVExBcmd1bWVudEVuY29kZXIhIik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIGFyZ3MuYnVmZmVyID0gYWRvcHRO
UyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDphcmdzLmVuY29k
ZXIuZ2V0KCkuZW5jb2RlZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICBbYXJncy5lbmNvZGVyIHNl
dEFyZ3VtZW50QnVmZmVyOmFyZ3MuYnVmZmVyLmdldCgpIG9mZnNldDowXTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIGlmICghYXJncy5idWZmZXIpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVh
dGUgTVRMQnVmZmVyIGZyb20gTVRMQXJndW1lbnRFbmNvZGVyISIpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KIAotICAgIHJldHVybiBlbmNvZGVyOworICAgIHJldHVybiBhcmdzOwogfTsK
IAogUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Im
JiBkZXNjcmlwdG9yKQogewotICAgIEFyZ3VtZW50QXJyYXkgdmVydGV4QXJndW1lbnRzLCBmcmFn
bWVudEFyZ3VtZW50cywgY29tcHV0ZUFyZ3VtZW50czsKKyAgICBpZiAoIWRldmljZS5wbGF0Zm9y
bURldmljZSgpKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6OnRy
eUNyZWF0ZSgpOiBJbnZhbGlkIE1UTERldmljZSEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgQXJndW1lbnRBcnJheSB2ZXJ0ZXhBcmdzQXJyYXksIGZyYWdtZW50QXJn
c0FycmF5LCBjb21wdXRlQXJnc0FycmF5OwogICAgIEJpbmRpbmdzTWFwVHlwZSBiaW5kaW5nc01h
cDsKIAogICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGRlc2NyaXB0b3IuYmluZGluZ3Mp
IHsKQEAgLTk5LDM0ICsxMTYsMzYgQEAgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmlu
ZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UKICAgICAgICAg
bXRsQXJndW1lbnQuZ2V0KCkuaW5kZXggPSBiaW5kaW5nLmJpbmRpbmc7CiAKICAgICAgICAgaWYg
KGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCi0gICAgICAg
ICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7
CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFn
ZUJpdDo6RlJBR01FTlQpCi0gICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkoZnJhZ21l
bnRBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsKKyAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9B
cnJheShmcmFnbWVudEFyZ3NBcnJheSwgbXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGlu
Zy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkNPTVBVVEUpCi0gICAgICAgICAgICBh
cHBlbmRBcmd1bWVudFRvQXJyYXkoY29tcHV0ZUFyZ3VtZW50cywgbXRsQXJndW1lbnQpOworICAg
ICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGNvbXB1dGVBcmdzQXJyYXksIG10bEFyZ3Vt
ZW50KTsKICAgICB9CiAKLSAgICBBcmd1bWVudEVuY29kZXJzIGVuY29kZXJzOworICAgIEFyZ3Vt
ZW50RW5jb2RlckJ1ZmZlciB2ZXJ0ZXgsIGZyYWdtZW50LCBjb21wdXRlOwogCi0gICAgaWYgKHZl
cnRleEFyZ3VtZW50cykgewotICAgICAgICBpZiAoIShlbmNvZGVycy52ZXJ0ZXggPSBuZXdFbmNv
ZGVyKGRldmljZSwgdmVydGV4QXJndW1lbnRzKSkpCisgICAgaWYgKHZlcnRleEFyZ3NBcnJheSkg
eworICAgICAgICBpZiAoISh2ZXJ0ZXggPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCB2ZXJ0ZXhBcmdzQXJyYXkpKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBpZiAoZnJhZ21lbnRBcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCEoZW5j
b2RlcnMuZnJhZ21lbnQgPSBuZXdFbmNvZGVyKGRldmljZSwgZnJhZ21lbnRBcmd1bWVudHMpKSkK
KyAgICBpZiAoZnJhZ21lbnRBcmdzQXJyYXkpIHsKKyAgICAgICAgaWYgKCEoZnJhZ21lbnQgPSB0
cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZmZXIoZGV2aWNlLCBmcmFnbWVudEFyZ3NBcnJh
eSkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmIChjb21wdXRl
QXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICghKGVuY29kZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVy
KGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQorICAgIGlmIChjb21wdXRlQXJnc0FycmF5KSB7
CisgICAgICAgIGlmICghKGNvbXB1dGUgPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCBjb21wdXRlQXJnc0FycmF5KSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChX
VEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92ZShlbmNvZGVycykpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChXVEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92
ZSh2ZXJ0ZXgpLCBXVEZNb3ZlKGZyYWdtZW50KSwgV1RGTW92ZShjb21wdXRlKSkpOwogfQogCi1H
UFVCaW5kR3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChCaW5kaW5nc01hcFR5cGUmJiBi
aW5kaW5nc01hcCwgQXJndW1lbnRFbmNvZGVycyYmIGVuY29kZXJzKQotICAgIDogbV9iaW5kaW5n
c01hcChXVEZNb3ZlKGJpbmRpbmdzTWFwKSkKLSAgICAsIG1fYXJndW1lbnRFbmNvZGVycyhXVEZN
b3ZlKGVuY29kZXJzKSkKK0dQVUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KEJp
bmRpbmdzTWFwVHlwZSYmIGJpbmRpbmdzTWFwLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJiB2ZXJ0
ZXgsIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYmIGZyYWdtZW50LCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImJiBjb21wdXRlKQorICAgIDogbV92ZXJ0ZXhBcmd1bWVudHMoV1RGTW92ZSh2ZXJ0ZXgpKQor
ICAgICwgbV9mcmFnbWVudEFyZ3VtZW50cyhXVEZNb3ZlKGZyYWdtZW50KSkKKyAgICAsIG1fY29t
cHV0ZUFyZ3VtZW50cyhXVEZNb3ZlKGNvbXB1dGUpKQorICAgICwgbV9iaW5kaW5nc01hcChXVEZN
b3ZlKGJpbmRpbmdzTWFwKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0
YWwubW0KaW5kZXggNjEyNTlkMjM0ZmIzYTEyNGY5OTE3ODRhNWQ4ZmQ2ODg3MDM3ZTIwOC4uOTNl
ZGMxMWE4MGVjYjZhMDY0MThiNTJjMjYxNDYzODMyZjFmNzk2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRh
bC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
Q29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC02OSw3ICs2OSw2IEBAIFJlZlB0cjxHUFVDb21tYW5k
QnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BVRGV2aWNlJiBkZXZpY2UpCiBHUFVD
b21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0
UHRyJiYgYnVmZmVyKQogICAgIDogbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZm
ZXIpKQogewotICAgIFVOVVNFRF9QQVJBTShtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcik7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggMmU2NDM2MzgxNDZhMWI4OWNhN2Y4Yzk2ODY2
NTNkMjcyNWQzNDE4ZS4uNGZmZTM4NzUwYzMzMTRkYjlkMDBkNTJjNDBhMzYxMTA5OGJkYjk1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwu
bW0KQEAgLTI4LDcgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW1wb3J0ICJH
UFVCaW5kR3JvdXAuaCIKKyNpbXBvcnQgIkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCIKKyNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDYg
KzQ1LDg0IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MoKQogICAg
IG1faXNFbmNvZGluZyA9IGZhbHNlOwogfQogCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJn
dW1lbnRFbmNvZGVyLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25l
ZCBsb25nIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUpCit7CisjaWYgTE9H
X0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBp
ZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3Vt
ZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBzdGFnZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IFJlc291cmNlIGlzIG5vdCBhIGJ1ZmZlciB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8R1BV
QnVmZmVyQmluZGluZz4ocmVzb3VyY2UpOworICAgIGF1dG8gYnVmZmVyID0gYnVmZmVyQmluZGlu
Zy5idWZmZXItPnBsYXRmb3JtQnVmZmVyKCk7CisKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgTVRMQnVmZmVyIGluIEdQVUJ1ZmZlckJpbmRpbmch
IiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIFthcmd1bWVudEVuY29kZXIgc2V0QnVmZmVyOmJ1
ZmZlciBvZmZzZXQ6YnVmZmVyQmluZGluZy5vZmZzZXQgYXRJbmRleDppbmRleF07CisgICAgdXNl
UmVzb3VyY2UoYnVmZmVyLCBNVExSZXNvdXJjZVVzYWdlUmVhZCk7CisKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworfQorCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRCaW5kR3JvdXAodW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5k
R3JvdXApCit7CisgICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoKSI7CisjaWYgTE9HX0RJU0FCTEVECisg
ICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKworICAgIGNvbnN0IGF1dG8m
IHZlcnRleEFyZ3MgPSBiaW5kR3JvdXAubGF5b3V0KCkudmVydGV4QXJndW1lbnRzKCk7CisgICAg
Y29uc3QgYXV0byYgZnJhZ21lbnRBcmdzID0gYmluZEdyb3VwLmxheW91dCgpLmZyYWdtZW50QXJn
dW1lbnRzKCk7CisgICAgLy8gRklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgaWYgKHZlcnRleEFyZ3MuYnVm
ZmVyKQorICAgICAgICBzZXRWZXJ0ZXhCdWZmZXIodmVydGV4QXJncy5idWZmZXIuZ2V0KCksIDAs
IGluZGV4KTsKKyAgICBpZiAoZnJhZ21lbnRBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0RnJhZ21l
bnRCdWZmZXIoZnJhZ21lbnRBcmdzLmJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworCisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVh
Y2ggTVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgorICAgIGNvbnN0
IGF1dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsKKyAg
ICAgICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5nKTsK
KyAgICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7CisgICAgICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBpbiBH
UFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gYmluZEdyb3VwTGF5b3V0
QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExh
eW91dEJpbmRpbmcudHlwZSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291
cmNlIHR5cGVzLgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpVbmlmb3JtQnVmZmVyOgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJp
bmRpbmc6OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICBpZiAoYmlu
ZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRF
WCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFy
Z3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5j
dGlvbk5hbWUpOworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJp
bGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGUkFHTUVOVCkKKyAgICAgICAgICAgICAgICBzZXRS
ZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBiaW5k
aW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBSZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNz
RW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggNTU2NTA2M2Y2NDAwYjQwMzg1
NDM1M2RhYWM2N2UzNTA1MTQwMTQ3My4uNmM4ODlmN2YyN2MwMTNmOTFkYTBiNjQwY2NjMTRkZTY1
NGIxMTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0K
QEAgLTExOCw2ICsxMTgsMjUgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyh1bnNp
Z25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmMKICAgICAgICAgYmFz
ZUluc3RhbmNlOmZpcnN0SW5zdGFuY2VdOwogfQogCisjaWYgVVNFKE1FVEFMKQorCit2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqcmVzb3VyY2UsIE1U
TFJlc291cmNlVXNhZ2UgdXNhZ2UpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rl
ciB1c2VSZXNvdXJjZTpyZXNvdXJjZSB1c2FnZTp1c2FnZV07Cit9CisKK3ZvaWQgR1BVUmVuZGVy
UGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQg
bG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZvcm1SZW5k
ZXJQYXNzRW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRl
eDppbmRleF07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50QnVm
ZmVyKE1UTEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9u
ZyBpbmRleCkKK3sKKyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldEZyYWdtZW50
QnVmZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCisjZW5kaWYg
Ly8gVVNFKE1FVEFMKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGU4NTYyNTRmNmI1MDA1NTA1ZjhhMWRkM2MzYzk2MWU4NzkwMWQ3
YzEuLmE2NTIzMzVkMjAxZGU3NDZkYzBmMDUwNjZkYmNmMmM5YmYwMThhMjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOS0wMS0xOCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29t
PgorCisgICAgICAgIChXSVApIFtXZWJHUFVdIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRCaW5kR3JvdXAgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM0NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mjk2Njc4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyYXcg
MyB0cmlhbmdsZXMgdmlhIFdlYkdQVSB0byBjcmVhdGUgYSBncmVlbiBzcXVhcmUgY2FudmFzLCB3
aXRoIHJlZmVyZW5jZS4KKyAgICAgICAgRWFjaCB2ZXJ0ZXggaXMgc3RvcmVkIGluIGl0cyBvd24g
V2ViR1BVQnVmZmVyIGFuZCB0aGV5IGFyZSBtaXgvbWF0Y2hlZCBwZXIgYmluZCBncm91cC4KKyAg
ICAgICAgVGhpcyB0ZXN0cyBtdWx0aXBsZSByZXNvdXJjZSBiaW5kaW5ncyBpbiBvbmUgYmluZCBn
cm91cCBhcyB3ZWxsIGFzIHNldHRpbmcgbXVsdGlwbGUgCisgICAgICAgIGJpbmQgZ3JvdXBzIHBl
ciBkcmF3IGNhbGwgYW5kIHBlciBjb21tYW5kIGVuY29kZXIuIAorCisgICAgICAgICogd2ViZ3B1
L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuIFJlZmVyZW5j
ZSBnZW5lcmF0ZWQgdXNpbmcgMkQgY2FudmFzLgorICAgICAgICAqIHdlYmdwdS9idWZmZXItcmVz
b3VyY2UtdHJpYW5nbGVzLmh0bWw6IEFkZGVkLiAKKyAgICAgICAgICAgICAgICAxKSBEcmF3IHRv
cCB0d28gdHJpYW5nbGVzIHVzaW5nIHR3byBiaW5kIGdyb3VwcyBpbiBvbmUgZHJhdyBjYWxsLgor
ICAgICAgICAgICAgICAgIDIpIFN3YXAgZmlyc3QgYmluZCBncm91cCBhbmQgaXNzdWUgc2Vjb25k
IGRyYXcgY2FsbCB0byBkcmF3IG1pZGRsZSB0cmlhbmdsZS4KKyAgICAgICAgKiB3ZWJncHUvanMv
d2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKGNyZWF0ZUJhc2ljUGlwZWxpbmUpOiBOb3cg
aGFuZGxlcyBuZXcgcHJpbWl0aXZlIHRvcG9sb2dpZXMuCisKIDIwMTktMDEtMTYgIEFsaWNpYSBC
b3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RL
IGFuZCBXUEUgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUv
YnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ODZmMTNlODEyMDM5N2E1Y2M2MzM2YzllMmE0ODVlNzc4YmE5OTMyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5IVE1MIFJlZmVyZW5jZSBGaWxlPC90aXRsZT4KKzxwPlBhc3MgaWYgc3F1
YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9
IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IGNhbnZhcyA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29udGV4dCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCcyZCcpOworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2IoMCwgMjU1LCAwKSc7
Citjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cis8
L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzExNWJh
NmNiYTJjNzg1MGEzYmU3Yjk2MjlkZDgzODFjNGJjNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApAQCAtMCwwICsx
LDE3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVs
PSJtYXRjaCIgaHJlZj0iYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sIj4K
KzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4K
KzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9
ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRl
ckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAgIAordXNpbmcgbmFtZXNwYWNl
IG1ldGFsOworCitzdHJ1Y3QgVmVydGV4IHsKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlv
bl1dOworfTsKKworc3RydWN0IFZlcnRleEFyZ3VtZW50cyB7CisgICAgZGV2aWNlIFZlcnRleCog
djA7CisgICAgZGV2aWNlIFZlcnRleCogdjE7CisgICAgZGV2aWNlIFZlcnRleCogdjI7Cit9Owor
Cit2ZXJ0ZXggVmVydGV4IHZlcnRleF9tYWluKAorICAgIGNvbnN0IGRldmljZSBWZXJ0ZXhBcmd1
bWVudHMmIGFyZ3MwIFtbYnVmZmVyKDApXV0sCisgICAgY29uc3QgZGV2aWNlIFZlcnRleEFyZ3Vt
ZW50cyYgYXJnczEgW1tidWZmZXIoMSldXSwKKyAgICB1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQor
eworICAgIHN3aXRjaCAodmlkKQorICAgIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gYXJnczAu
djBbMF07CisgICAgICAgIGNhc2UgMTogcmV0dXJuIGFyZ3MwLnYxWzBdOworICAgICAgICBjYXNl
IDI6IHJldHVybiBhcmdzMC52MlswXTsKKyAgICAgICAgY2FzZSAzOiByZXR1cm4gYXJnczEudjBb
MF07CisgICAgICAgIGNhc2UgNDogcmV0dXJuIGFyZ3MxLnYxWzBdOworICAgICAgICBkZWZhdWx0
OiByZXR1cm4gYXJnczEudjJbMF07CisgICAgfQorfQorCitzdHJ1Y3QgRnJhZ21lbnRBcmd1bWVu
dHMgeworICAgIGRldmljZSBmbG9hdDQqIGNvbG9yOworfTsKKworZnJhZ21lbnQgZmxvYXQ0IGZy
YWdtZW50X21haW4oY29uc3QgZGV2aWNlIEZyYWdtZW50QXJndW1lbnRzJiBhcmdzIFtbYnVmZmVy
KDApXV0pCit7CisgICAgcmV0dXJuIGFyZ3MuY29sb3JbMF07Cit9CitgCisKK2NvbnN0IGJpbmRp
bmdOdW1zID0geworICAgIFVMOiAwLAorICAgIFVNOiAxLAorICAgIFVSOiAyLAorICAgIExMOiAz
LAorICAgIExSOiA0LAorICAgIEc6IDUKK307CisKK2Z1bmN0aW9uIGNyZWF0ZVVuaWZvcm1CdWZm
ZXJCaW5kR3JvdXBMYXlvdXQoYmluZE51bSwgc3RhZ2UgPSBXZWJHUFVTaGFkZXJTdGFnZUJpdC5W
RVJURVgpIHsKKyAgICByZXR1cm4geworICAgICAgICBiaW5kaW5nOiBiaW5kTnVtLAorICAgICAg
ICB2aXNpYmlsaXR5OiBzdGFnZSwKKyAgICAgICAgdHlwZTogInVuaWZvcm1CdWZmZXIiCisgICAg
fTsKK30KKworY29uc3QgYnVmZmVyU2l6ZSA9IDQgKiA0OworCisvLyBGSVhNRTogS2VlcCB1cCB0
byBkYXRlIHdpdGggYnVmZmVyIHVwbG9hZCBkZWNpc2lvbnMuCitmdW5jdGlvbiBjcmVhdGVGbG9h
dDRCdWZmZXIoZGV2aWNlLCBhLCBiKSB7CisgICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0
ZUJ1ZmZlcih7IHNpemU6IGJ1ZmZlclNpemUsIHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5VTklG
T1JNIH0pOworICAgIAorICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYnVmZmVyLm1hcHBpbmc7Cisg
ICAgY29uc3QgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpOworCisg
ICAgZmxvYXRBcnJheVswXSA9IGE7CisgICAgZmxvYXRBcnJheVsxXSA9IGI7CisgICAgZmxvYXRB
cnJheVsyXSA9IDA7CisgICAgZmxvYXRBcnJheVszXSA9IDE7CisKKyAgICByZXR1cm4gYnVmZmVy
OworfQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXJCaW5kaW5nKGJ1ZmZlcikgeworICAgIHJldHVy
biB7CisgICAgICAgIGJ1ZmZlcjogYnVmZmVyLAorICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAg
IHNpemU6IGJ1ZmZlclNpemUKKyAgICB9OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CisgICAgY29uc3QgY2Fu
dmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CisgICAgY29uc3QgY29udGV4
dCA9IGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSk7CisgICAgLy8gRklYTUU6IFJl
cGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2
aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUgfSk7CisKKyAgICAvLyBD
cmVhdGUgdmVydGV4IGRhdGEgV2ViR1BVQnVmZmVycy4KKyAgICBjb25zdCB1cHBlckxlZnQgPSBj
cmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAtMSwgMSk7CisgICAgY29uc3QgdXBwZXJNaWRkbGUg
PSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAwLCAxKTsKKyAgICBjb25zdCB1cHBlclJpZ2h0
ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgMSk7CisgICAgY29uc3QgbG93ZXJMZWZ0
ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgLTEsIC0xKTsKKyAgICBjb25zdCBsb3dlclJp
Z2h0ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgLTEpOworCisgICAgLy8gQ29sb3Ig
ZGF0YSBidWZmZXIuCisgICAgY29uc3QgZ3JlZW4gPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNl
LCAwLCAxKTsKKworICAgIC8vIENyZWF0ZSBidWZmZXIgV2ViR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZ3MuCisgICAgY29uc3QgbGF5b3V0VUwgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3Vw
TGF5b3V0KGJpbmRpbmdOdW1zLlVMKTsKKyAgICBjb25zdCBsYXlvdXRVTSA9IGNyZWF0ZVVuaWZv
cm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuVU0pOworICAgIGNvbnN0IGxheW91
dFVSID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVtcy5VUik7
CisgICAgY29uc3QgbGF5b3V0TEwgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0
KGJpbmRpbmdOdW1zLkxMKTsKKyAgICBjb25zdCBsYXlvdXRMUiA9IGNyZWF0ZVVuaWZvcm1CdWZm
ZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTFIpOworICAgIGNvbnN0IGxheW91dEcgPSBj
cmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLkcsIFdlYkdQVVNo
YWRlclN0YWdlQml0LkZSQUdNRU5UKTsKKworICAgIC8vIFdlYkdQVUJpbmRHcm91cExheW91dHMK
KyAgICBjb25zdCBsZWZ0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBM
YXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVMLCBsYXlvdXRVTSwgbGF5b3V0TEwsIGxheW91dEdd
IH0pOworICAgIGNvbnN0IHJpZ2h0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5k
R3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVSLCBsYXlvdXRVTSwgbGF5b3V0TFJdIH0p
OworICAgIGNvbnN0IG1pZGRsZVRyaWFuZ2xlQkdMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdy
b3VwTGF5b3V0KHsgYmluZGluZ3M6IFtsYXlvdXRVTSwgbGF5b3V0TEwsIGxheW91dExSLCBsYXlv
dXRHXSB9KTsKKworICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGFuZCBXZWJHUFVSZW5kZXJQ
aXBlbGluZQorICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5l
TGF5b3V0KHsgYmluZEdyb3VwTGF5b3V0czogW2xlZnRUcmlhbmdsZUJHTGF5b3V0LCBtaWRkbGVU
cmlhbmdsZUJHTGF5b3V0LCByaWdodFRyaWFuZ2xlQkdMYXlvdXRdIH0pOworICAgIGNvbnN0IHBp
cGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxp
bmVMYXlvdXQsIG51bGwsICJ0cmlhbmdsZUxpc3QiKTsKKworICAgIC8vIFdlYkdQVUJ1ZmZlckJp
bmRpbmdzCisgICAgY29uc3QgYmluZGluZ1VMID0gY3JlYXRlQnVmZmVyQmluZGluZyh1cHBlckxl
ZnQpOworICAgIGNvbnN0IGJpbmRpbmdVTSA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcodXBwZXJNaWRk
bGUpOworICAgIGNvbnN0IGJpbmRpbmdVUiA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcodXBwZXJSaWdo
dCk7CisgICAgY29uc3QgYmluZGluZ0xMID0gY3JlYXRlQnVmZmVyQmluZGluZyhsb3dlckxlZnQp
OworICAgIGNvbnN0IGJpbmRpbmdMUiA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcobG93ZXJSaWdodCk7
CisgICAgY29uc3QgYmluZGluZ0cgPSBjcmVhdGVCdWZmZXJCaW5kaW5nKGdyZWVuKTsKKyAgICAK
KyAgICAvLyBXZWJHUFVCaW5kR3JvdXBCaW5kaW5ncworICAgIGNvbnN0IGJnQmluZGluZ1VMID0g
eyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5VTCwgcmVzb3VyY2U6IGJpbmRpbmdVTCB9OworICAgIGNv
bnN0IGJnQmluZGluZ1VNID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5VTSwgcmVzb3VyY2U6IGJp
bmRpbmdVTSB9OworICAgIGNvbnN0IGJnQmluZGluZ1VSID0geyBiaW5kaW5nOiBiaW5kaW5nTnVt
cy5VUiwgcmVzb3VyY2U6IGJpbmRpbmdVUiB9OworICAgIGNvbnN0IGJnQmluZGluZ0xMID0geyBi
aW5kaW5nOiBiaW5kaW5nTnVtcy5MTCwgcmVzb3VyY2U6IGJpbmRpbmdMTCB9OworICAgIGNvbnN0
IGJnQmluZGluZ0xSID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5MUiwgcmVzb3VyY2U6IGJpbmRp
bmdMUiB9OworICAgIGNvbnN0IGJnQmluZGluZ0cgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLkcs
IHJlc291cmNlOiBiaW5kaW5nRyB9OworCisgICAgLy8gV2ViR1BVQmluZEdyb3VwcworICAgIGNv
bnN0IGxlZnRUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7IAorICAgICAgICBs
YXlvdXQ6IGxlZnRUcmlhbmdsZUJHTGF5b3V0LCAKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRp
bmdVTCwgYmdCaW5kaW5nVU0sIGJnQmluZGluZ0xMLCBiZ0JpbmRpbmdHXSAKKyAgICB9KTsKKyAg
ICBjb25zdCByaWdodFRyaWFuZ2xlQkcgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKHsKKyAgICAg
ICAgbGF5b3V0OiByaWdodFRyaWFuZ2xlQkdMYXlvdXQsCisgICAgICAgIGJpbmRpbmdzOiBbYmdC
aW5kaW5nVVIsIGJnQmluZGluZ1VNLCBiZ0JpbmRpbmdMUl0KKyAgICB9KTsKKyAgICBjb25zdCBt
aWRkbGVUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7CisgICAgICAgIGxheW91
dDogbWlkZGxlVHJpYW5nbGVCR0xheW91dCwKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRpbmdV
TSwgYmdCaW5kaW5nTEwsIGJnQmluZGluZ0xSLCBiZ0JpbmRpbmdHXQorICAgIH0pOworCisgICAg
Y29uc3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7CisgICAg
Y29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5k
QnVmZmVyKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRQaXBlbGluZShwaXBlbGluZSk7CisKKyAgICAv
LyBEcmF3IHVwcGVyIHRyaWFuZ2xlcy4KKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwg
bGVmdFRyaWFuZ2xlQkcpOworICAgIHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgxLCByaWdodFRy
aWFuZ2xlQkcpOworICAgIHBhc3NFbmNvZGVyLmRyYXcoNiwgMSwgMCwgMCk7CisgICAgLy8gRHJh
dyBsb3dlciB0cmlhbmdsZS4KKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgbWlkZGxl
VHJpYW5nbGVCRyk7CisgICAgcGFzc0VuY29kZXIuZHJhdygzLCAxLCAwLCAwKTsKKworICAgIGNv
bnN0IGVuZENvbW1hbmRCdWZmZXIgPSBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisgICAgY29uc3Qg
cXVldWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKyAgICBxdWV1ZS5zdWJtaXQoW2VuZENvbW1hbmRC
dWZmZXJdKTsKKyAgICBjb250ZXh0LnByZXNlbnQoKTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcwppbmRleCBjNzUzMDJiZTg5MjlkZmRlZjBjMjAyOWU1MzZhMGNkOGRhNmRl
MGI5Li43NjdmOTQ2NTIxYTRhZDIyMjEzZjkyZjBkNGZjYjU3MjBjODI2MzE3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcworKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMTIsNyArMTIsNyBAQCBmdW5j
dGlvbiBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpIHsKICAgICByZXR1cm4gY29u
dGV4dDsKIH0KIAotZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRl
dmljZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXNjcmlwdG9yKSB7CitmdW5jdGlvbiBj
cmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwg
aW5wdXRTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5ID0gInRyaWFuZ2xlU3RyaXAi
KSB7CiAgICAgY29uc3QgdmVydGV4U3RhZ2VEZXNjcmlwdG9yID0gewogICAgICAgICBtb2R1bGU6
IHNoYWRlck1vZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWluIiAKQEAgLTI2
LDEzICsyNiwxNSBAQCBmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwg
ZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRTdGF0ZURlcwogICAgIGNvbnN0IHBpcGVsaW5l
RGVzY3JpcHRvciA9IHsKICAgICAgICAgdmVydGV4U3RhZ2U6IHZlcnRleFN0YWdlRGVzY3JpcHRv
ciwKICAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCi0gICAg
ICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVTdHJpcCIsCi0gICAgICAgIGlucHV0U3Rh
dGU6IGlucHV0U3RhdGVEZXNjcmlwdG9yCisgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiBwcmlt
aXRpdmVUb3BvbG9neQogICAgIH07CiAKICAgICBpZiAocGlwZWxpbmVMYXlvdXQpCiAgICAgICAg
IHBpcGVsaW5lRGVzY3JpcHRvci5sYXlvdXQgPSBwaXBlbGluZUxheW91dDsKIAorICAgIGlmIChp
bnB1dFN0YXRlRGVzY3JpcHRvcikKKyAgICAgICAgcGlwZWxpbmVEZXNjcmlwdG9yLmlucHV0U3Rh
dGUgPSBpbnB1dFN0YXRlRGVzY3JpcHRvcjsKKwogICAgIHJldHVybiBkZXZpY2UuY3JlYXRlUmVu
ZGVyUGlwZWxpbmUocGlwZWxpbmVEZXNjcmlwdG9yKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359510</attachid>
            <date>2019-01-18 11:02:27 -0800</date>
            <delta_ts>2019-01-18 14:31:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193457-20190118110226.patch</filename>
            <type>text/plain</type>
            <size>50081</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uMDIyOTMyNmJmODlhYmU4ZGNjNzk3MTA1ZjUwZDlm
YTE3MDllOWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTAxLTE4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgKFdJUCkgW1dlYkdQVV0g
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyOTY2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFdlYkdQVSBkZXZlbG9wZXJzIHRvIGFzc2ln
biBidWZmZXIgYmluZCBncm91cHMgYW5kIGFjY2VzcyB0aGVtIHZpYSByZW5kZXIgcGlwZWxpbmUu
IAorICAgICAgICBTdXBwb3J0IGZvciBjb21wdXRlIHBpcGVsaW5lcyB0byBmb2xsb3cgc2hvcnRs
eS4gCisgICAgICAgIFRleHR1cmUgYW5kIHNhbXBsZXIgcmVzb3VyY2VzIHRvIGZvbGxvdyBhZnRl
ciB0aGVpciByZXF1aXNpdGUgaW50ZXJmYWNlcyBhcmUgaW1wbGVtZW50ZWQuIAorCisgICAgICAg
IFRlc3Q6IHdlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwOjpiaW5kR3JvdXAgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwOiAKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAg
Y29uc3QpOiBBZGRlZC4gRGVsZWdhdGVzIGNhbGwgdG8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuaDogRW5hYmxlIHNldEJpbmRHcm91cC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGw6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwLmg6IAorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpsYXlv
dXQgY29uc3QpOiBBZGRlZCBnZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6
OmJpbmRpbmdzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oOiBBZGRlZCBBcmd1bWVudEVuY29kZXJCdWZmZXIgc3RydWN0
IHRvIHJldGFpbiBwdHIgdG90IGJvdGggTVRMQXJndW1lbnRFbmNvZGVycyBhbmQgdGhlaXIgYXJn
dW1lbnQgTVRMQnVmZmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
QXJndW1lbnRFbmNvZGVyQnVmZmVyOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQmluZEdyb3VwTGF5b3V0Ojp2ZXJ0ZXhBcmd1bWVudHMgY29uc3QpOiBBZGRlZC4gR2V0
dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpmcmFnbWVudEFyZ3Vt
ZW50cyBjb25zdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0
Ojpjb21wdXRlQXJndW1lbnRzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IFJlZmFjdG9yZWQgdW5uZWNlc3NhcnkgaGVhZGVyIGlu
Y2x1ZGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOiBkaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRWZXJ0ZXhCdWZmZXIpOiBBZGRlZC4gRGVsZWdhdGVzIHRvIE1UTENvbW1hbmRFbmNvZGVyIGNh
bGwuCisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0RnJh
Z21lbnRCdWZmZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyUGFzc0VuY29kZXIuaDogCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3Jl
YXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKTogUmVwbGFjZSBuZXdFbmNvZGVyKCkuIE5vdyBj
cmVhdGUgYW4gQXJndW1lbnRFbmNvZGVyQnVmZmVyIG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIE1U
TEFyZ3VtZW50RGVzY3JpcHRvcnMsIGlmIGFibGUuCisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlZmFjdG9yIHRvIHN1cHBvcnQgQXJndW1lbnRFbmNv
ZGVyQnVmZmVycywgYW5kIGFsbG9jYXRlIE1UTEJ1ZmZlcnMgZm9yIGFyZ3VtZW50IGVuY29kZXJz
LgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpHUFVCaW5kR3JvdXBMYXlv
dXQpOiBTdXBwb3J0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlcnMuCisgICAgICAgIChXZWJDb3JlOjpu
ZXdFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChX
ZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9u
RW5jb2Rlcik6IFNldCBhIGJ1ZmZlciByZXNvdXJjZSBvbiB0aGUgTVRMQXJndW1lbnRFbmNvZGVy
LCBhbmQgY2FsbCB1c2VSZXNvdXJjZSBvbiB0aGUgY29tbWFuZCBlbmNvZGVyLgorICAgICAgICAo
V2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCk6IFBhcnNl
cyB0aGUgYmluZCBncm91cCB0byBhc3NpZ24gZWFjaCByZXNvdXJjZSBvbiBpdHMgbWF0Y2hpbmcg
TVRMQXJndW1lbnRFbmNvZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tOiAKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6IFJlc29sdmVzIGNhbGwgZnJvbSBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2RlciB0byBjYWxsIG9uIE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcik6
IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdt
ZW50QnVmZmVyKTogZGl0dG8uCisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4IDBhMDQ3MDk1
NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQwOTc5MzBlYmJh
ZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQVUJpbmRHcm91
cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJik7
CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR1BVQmluZEdy
b3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJiMi4uZjZmNWVh
NmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJuIG1fY29tbWFu
ZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJHUFVCaW5kR3Jv
dXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5kR3JvdXAoKSkg
eworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5kZXggZHVwbGlj
YXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIoKS5zZXRCaW5k
R3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lkIFdlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGluZShwaXBlbGlu
ZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBlZjEw
YzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0NmY5NDljZjll
YzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgKQEAgLTI4
LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVDb21t
YW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOworY2xhc3MgV2Vi
R1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIFdlYkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgUmVm
PFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJpbmRHcm91cCh1
bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAgICB2b2lkIHNl
dFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZkOGViYTE1ZWUy
NDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJhOGM0N2RkNGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQsMTQgQEAKICAq
LwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKICAgICBTa2lw
VlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAgLy8gRklYTUU6
IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0gICAgdm9pZCBz
ZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBOb3QgWWV0IElt
cGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJlbmRlciBwYXNz
ZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQgc2V0QmluZEdy
b3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLworICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cC8qLCBvcHRp
b25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQgc2V0UGlwZWxp
bmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3VwcG9ydCBXZWJH
UFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNDk4ZmE4YTJiZmVmZDVjNzkwMzExNWJmMjM3
MDg5NjZmOTI0MTE1Li4wNmE4YzYyMDkyOTdjZmU1MjVhNTQ3MDI1YjdjNzdmZTcwYWUxMmQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02NDI3LDE3ICs2NDI3LDE2IEBACiAJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAwRCAvKiBX
SExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEdhdGhlckVu
dHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg0MEI5QjIx
RUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0REY5MEJB
OUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFDQTBDMkU0MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyogV0hM
U0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3Rh
Z2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNBMjFFRDlE
RjUwMDY5RDVGMiAvKiBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5QUU1Q0IyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMEMyREUyMUVFQjVGNDAwQTExODYwIC8qIFdITFNMUmVjdXJzaW9uQ2hl
Y2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRTAyMUVFQjVGNTAwQTExODYwIC8qIFdITFNMUmVj
dXJzaW9uQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNr
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0EwQzJFNDIxRUVEMTJBMDBB
MTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIxRUVENkY1MDBBMTE4NjAgLyogV0hMU0xM
aXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUMyMUVFRDZGNjAwQTEx
ODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdI
TFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MUM5QUU1Q0EyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQzlBRTVDQjIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdoWm9t
YmllRmluZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJGNDIxRUVEQUQwMDBBMTE4NjAgLyogV0hM
U0xMb29wQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTExvb3BDaGVja2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjUyMUVFREFEMTAwQTExODYw
IC8qIFdITFNMTG9vcENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMb29wQ2hlY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAg
LyogQVNUICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
Zm9sZGVyOyBwYXRoID0gQVNUOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0ExOUUw
MzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMzIsNiArMTcwMzEsMTAwIEBACiAJCQl0
YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTFDQTBDMkY2MjFFRURBRDIw
MEExMTg2MCAvKiBBU1QgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFjZS5oICov
LAorCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJlbmNlVHlw
ZS5oICovLAorCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5VHlwZS5o
ICovLAorCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1lbnRFeHBy
ZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNMQmFzZUZ1
bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5IC8qIFdI
TFNMQmFzZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5IC8qIFdI
TFNMQmxvY2suaCAqLywKKwkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAyMjc5NzkgLyogV0hMU0xCb29s
ZWFuTGl0ZXJhbC5oICovLAorCQkJCUMyMUJGNzFBMjFDRDg5RDgwMDIyNzk3OSAvKiBXSExTTEJy
ZWFrLmggKi8sCisJCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJBIC8qIFdITFNMQnVpbHRJblNl
bWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAyMjc5NzkgLyogV0hMU0xCdWls
dEluU2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxNjIxQ0Q4OUQ1MDAyMjc5NzkgLyogV0hMU0xD
YWxsRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExT
TENvbW1hRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAvKiBX
SExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIyNzk3
OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJQzIxQkY3MDEyMUNEODlDNDAwMjI3OTc5IC8q
IFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MTgyMUNEODlENzAw
MjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkZCMjFDRDg5QkUw
MDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCisJCQkJQzIxQkY3MjgyMUNEODlFNTAw
MjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudC5oICovLAorCQkJCTFD
ODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBlLmggKi8sCisJCQkJ
QzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0aW9uLmgg
Ki8sCisJCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1i
ZXIuaCAqLywKKwkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlv
bk1lbWJlckxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5NzkgLyogV0hM
U0xFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MDAyMUNEODlDMjAwMjI3OTc5IC8qIFdITFNM
RmFsbHRocm91Z2guaCAqLywKKwkJCQlDMjFCRjczNTIxQ0Q4OUYyMDAyMjc5NzkgLyogV0hMU0xG
bG9hdExpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzODIxREYwM0UxMDA2RTg0NkEgLyogV0hMU0xG
bG9hdExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyog
V0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzQyMUNEODlGMTAwMjI3OTc5
IC8qIFdITFNMRm9yTG9vcC5oICovLAorCQkJCUMyMUJGNzA1MjFDRDg5QzcwMDIyNzk3OSAvKiBX
SExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkQyMUNEODlDMDAwMjI3OTc5
IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAorCQkJCUMyMUJGNkY0MjFDRDg5QjMw
MDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNkZGMjFD
RDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8sCisJCQkJQzIxQkY2RjcyMUNE
ODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmggKi8sCisJCQkJQzIwRjRGNjYy
MURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJCUMyMUJG
NkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNC
NjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcCAqLywK
KwkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUu
aCAqLywKKwkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsRXhwcmVz
c2lvbi5oICovLAorCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3OSAvKiBXSExTTExvZ2ljYWxO
b3RFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MkQyMUNEODlFOTAwMjI3OTc5IC8qIFdITFNM
TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJDMjFDRDg5RTkw
MDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oICovLAorCQkJCTFDMzMyNzcx
MjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICovLAorCQkJCUMyMUJGNzIzMjFD
RDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJ
CQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24u
aCAqLywKKwkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOb2RlLmggKi8sCisJ
CQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVsbExpdGVyYWwuaCAqLywKKwkJ
CQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuY3BwICov
LAorCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFsVHlwZS5o
ICovLAorCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBXSExTTE51bVRocmVhZHNGdW5j
dGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNzJGMjFDRDg5RUMwMDIyNzk3OSAvKiBXSExT
TFBvaW50ZXJUeXBlLmggKi8sCisJCQkJQzIxQkY3MkUyMUNEODlFQTAwMjI3OTc5IC8qIFdITFNM
UHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEIyMUNEODlDQzAwMjI3
OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCisJCQkJQzIxQkY3MUIyMUNEODlEOTAwMjI3OTc5
IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBEMjFD
RDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQkxQ0I2OUIzMjIx
REVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovLAorCQkJCUMyMTM4QTE1
MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuY3BwICovLAorCQkJCUMy
MUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuaCAqLywKKwkJ
CQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1cm4uaCAqLywKKwkJCQlDMjFC
RjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE2
MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5j
cHAgKi8sCisJCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8qIFdITFNMU3BlY2lhbGl6YXRp
b25Db25zdGFudFNlbWFudGljLmggKi8sCisJCQkJQzIxMzhBMTcyMURERUQwRDAwRjUxNkJBIC8q
IFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcwRTIxQ0Q4OUNFMDAy
Mjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxMjIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyNzIxQ0Q4OUU0
MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmggKi8sCisJCQkJQzIxQkY2RkUy
MUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVudC5oICovLAorCQkJCUMyMUJG
NzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2UuaCAqLywKKwkJCQlDMjFCRjcz
MTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFC
RjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhwcmVzc2lvbi5oICovLAorCQkJ
CUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAuaCAqLywKKwkJCQlDMjFCRjcx
RDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCisJCQkJQzI4OEM3MkQyMUM5OTFE
QTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywKKwkJCQlDMjFCRjcxMTIxQ0Q4
OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyOTIxQ0Q4
OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMEY0RjY0MjFE
RkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3BwICovLAorCQkJCUMyMUJGNzFG
MjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuaCAqLywKKwkJCQkxQzMzMjc3
MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5oICovLAorCQkJCUMyMEY0RjY3
MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwuY3BwICovLAor
CQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVy
YWwuaCAqLywKKwkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEgLyogV0hMU0xVbnNpZ25lZElu
dGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzcyMURFRDY2QjAwNkU4NDZBIC8q
IFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjZGQzIxQ0Q4
OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAorCQkJCUMyMUJGNzEwMjFDRDg5RDAwMDIy
Nzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlDMjFCRjcxNDIxQ0Q4
OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudC5oICovLAor
CQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlUmVmZXJlbmNlLmgg
Ki8sCisJCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdITFNMV2hpbGVMb29wLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IEFTVDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTUwOCwxMDAgKzI1NjAxLDYg
QEAKIAkJCXBhdGggPSBXSExTTDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0J
CTFDQTBDMkY2MjFFRURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91
cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExT
TEFkZHJlc3NTcGFjZS5oICovLAotCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExT
TEFycmF5UmVmZXJlbmNlVHlwZS5oICovLAotCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAv
KiBXSExTTEFycmF5VHlwZS5oICovLAotCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBX
SExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3
OTc5IC8qIFdITFNMQmFzZUZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2RkEyMUNE
ODlCRTAwMjI3OTc5IC8qIFdITFNMQmFzZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MUUyMUNE
ODlEQzAwMjI3OTc5IC8qIFdITFNMQmxvY2suaCAqLywKLQkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAy
Mjc5NzkgLyogV0hMU0xCb29sZWFuTGl0ZXJhbC5oICovLAotCQkJCUMyMUJGNzFBMjFDRDg5RDgw
MDIyNzk3OSAvKiBXSExTTEJyZWFrLmggKi8sCi0JCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJB
IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAy
Mjc5NzkgLyogV0hMU0xCdWlsdEluU2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcxNjIxQ0Q4OUQ1
MDAyMjc5NzkgLyogV0hMU0xDYWxsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzA2MjFDRDg5
QzcwMDIyNzk3OSAvKiBXSExTTENvbW1hRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzMzMjFD
RDg5RjAwMDIyNzk3OSAvKiBXSExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJG
NkY1MjFDRDg5QjUwMDIyNzk3OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCi0JCQkJQzIxQkY3MDEy
MUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCi0JCQkJ
QzIxQkY3MTgyMUNEODlENzAwMjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNkZCMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCi0JCQkJ
QzIxQkY3MjgyMUNEODlFNTAwMjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRl
bWVudC5oICovLAotCQkJCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9p
bnRUeXBlLmggKi8sCi0JCQkJQzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVy
YXRpb25EZWZpbml0aW9uLmggKi8sCi0JCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdI
TFNMRW51bWVyYXRpb25NZW1iZXIuaCAqLywKLQkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5Nzkg
LyogV0hMU0xFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaCAqLywKLQkJCQlDMjFCRjcwQzIxQ0Q4
OUNDMDAyMjc5NzkgLyogV0hMU0xFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MDAyMUNEODlD
MjAwMjI3OTc5IC8qIFdITFNMRmFsbHRocm91Z2guaCAqLywKLQkJCQlDMjFCRjczNTIxQ0Q4OUYy
MDAyMjc5NzkgLyogV0hMU0xGbG9hdExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzODIxREYwM0Ux
MDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNDIx
REVENjNBMDA2RTg0NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY3
MzQyMUNEODlGMTAwMjI3OTc5IC8qIFdITFNMRm9yTG9vcC5oICovLAotCQkJCUMyMUJGNzA1MjFD
RDg5QzcwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCi0JCQkJQzIxQkY2
RkQyMUNEODlDMDAwMjI3OTc5IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAotCQkJ
CUMyMUJGNkY0MjFDRDg5QjMwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMUJGNkZGMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8s
Ci0JCQkJQzIxQkY2RjcyMUNEODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmgg
Ki8sCi0JCQkJQzIwRjRGNjYyMURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwu
Y3BwICovLAotCQkJCUMyMUJGNkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRl
cmFsLmggKi8sCi0JCQkJMUNCNjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxp
dGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJ
bnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyog
V0hMU0xMb2dpY2FsRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3
OSAvKiBXSExTTExvZ2ljYWxOb3RFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MkQyMUNEODlF
OTAwMjI3OTc5IC8qIFdITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAotCQkJ
CUMyMUJGNzJDMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5o
ICovLAotCQkJCTFDMzMyNzcxMjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICov
LAotCQkJCUMyMUJGNzIzMjFDRDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVj
bGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRp
dmVUeXBlRGVjbGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyog
V0hMU0xOb2RlLmggKi8sCi0JCQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVs
bExpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxs
TGl0ZXJhbFR5cGUuY3BwICovLAotCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExT
TE51bGxMaXRlcmFsVHlwZS5oICovLAotCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBX
SExTTE51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAotCQkJCUMyMUJGNzJGMjFDRDg5
RUMwMDIyNzk3OSAvKiBXSExTTFBvaW50ZXJUeXBlLmggKi8sCi0JCQkJQzIxQkY3MkUyMUNEODlF
QTAwMjI3OTc5IC8qIFdITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIx
QkY3MEIyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCi0JCQkJQzIxQkY3
MUIyMUNEODlEOTAwMjI3OTc5IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICov
LAotCQkJCUMyMUJGNzBEMjFDRDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAq
LywKLQkJCQkxQ0I2OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5o
ICovLAotCQkJCUMyMTM4QTE1MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50
aWMuY3BwICovLAotCQkJCUMyMUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNl
U2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1
cm4uaCAqLywKLQkJCQlDMjFCRjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5o
ICovLAotCQkJCUMyMTM4QTE2MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9u
Q29uc3RhbnRTZW1hbnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8q
IFdITFNMU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmggKi8sCi0JCQkJQzIxMzhBMTcy
MURERUQwRDAwRjUxNkJBIC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKLQkJCQlD
MjFCRjcwRTIxQ0Q4OUNFMDAyMjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywK
LQkJCQlDMjFCRjcxMjIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKLQkJ
CQlDMjFCRjcyNzIxQ0Q4OUU0MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmgg
Ki8sCi0JCQkJQzIxQkY2RkUyMUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVu
dC5oICovLAotCQkJCUMyMUJGNzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2Uu
aCAqLywKLQkJCQlDMjFCRjczMTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1l
bnQuaCAqLywKLQkJCQlDMjFCRjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhw
cmVzc2lvbi5oICovLAotCQkJCUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAu
aCAqLywKLQkJCQlDMjFCRjcxRDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCi0J
CQkJQzI4OEM3MkQyMUM5OTFEQTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywK
LQkJCQlDMjFCRjcxMTIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywK
LQkJCQlDMjFCRjcyOTIxQ0Q4OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICov
LAotCQkJCUMyMEY0RjY0MjFERkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3Bw
ICovLAotCQkJCUMyMUJGNzFGMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2Uu
aCAqLywKLQkJCQkxQzMzMjc3MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5o
ICovLAotCQkJCUMyMEY0RjY3MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWwuY3BwICovLAotCQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEg
LyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzcy
MURFRDY2QjAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywK
LQkJCQlDMjFCRjZGQzIxQ0Q4OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAotCQkJCUMy
MUJGNzEwMjFDRDg5RDAwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywK
LQkJCQlDMjFCRjcxNDIxQ0Q4OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9u
c1N0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZh
cmlhYmxlUmVmZXJlbmNlLmggKi8sCi0JCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdI
TFNMV2hpbGVMb29wLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IEFTVDsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07CiAJCUM5NkY1RUJGMUI1ODcyMjYwMDkxRUE5RCAvKiBtZWRpYXNl
c3Npb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oCmlu
ZGV4IDgwNjEzODM2Nzk3MWRlNmJhZDVjYjY1YWYxOWY3NTUxMGNjMzMwOTIuLjJjZGMwNzM3MzYw
MTFlYWEwMmIwZTY2MzdlYTJkNDMxMGM2ZTczMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKQEAgLTQxLDYgKzQxLDkgQEAg
Y2xhc3MgR1BVQmluZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVCaW5kR3JvdXA+IGNyZWF0ZShHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiYpOwogCisgICAgY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0JiBsYXlvdXQoKSBj
b25zdCB7IHJldHVybiBtX2xheW91dC5nZXQoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxHUFVCaW5k
R3JvdXBCaW5kaW5nPiYgYmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2JpbmRpbmdzOyB9CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVQmluZEdyb3VwKEdQVUJpbmRHcm91cERlc2NyaXB0
b3ImJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaAppbmRleCBmMmFkODllNzBkZjBmMzFlZDkzZTY2ODQy
MTY1MDFjNjcxZDM3YTNlLi5kYmIzYTJkNzhlMmY5MzUzMDgzNDM4ZTI2MTVkMjc5NjNiNzc1NGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUJpbmRHcm91cExheW91dC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogCiBPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BS
T1RPQ09MKE1UTEJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMjIgKzQz
LDMxIEBAIGNsYXNzIEdQVURldmljZTsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0IDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6Ci0gICAgc3RydWN0
IEFyZ3VtZW50RW5jb2RlcnMgewotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVy
PiB2ZXJ0ZXg7Ci0gICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50
OwotICAgICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlOwotICAgIH07
Ci0KICAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3JlYXRlKGNvbnN0
IEdQVURldmljZSYsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJik7CiAKICAgICB1c2lu
ZyBCaW5kaW5nc01hcFR5cGUgPSBIYXNoTWFwPHVuc2lnbmVkIGxvbmcgbG9uZywgR1BVQmluZEdy
b3VwTGF5b3V0QmluZGluZywgV1RGOjpJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQgbG9uZyBsb25nPj47CiAgICAg
Y29uc3QgQmluZGluZ3NNYXBUeXBlJiBiaW5kaW5nc01hcCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlu
ZGluZ3NNYXA7IH0KKyNpZiBVU0UoTUVUQUwpCisgICAgc3RydWN0IEFyZ3VtZW50RW5jb2RlckJ1
ZmZlciB7CisgICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IGVuY29kZXI7Cisg
ICAgICAgIFJldGFpblB0cjxNVExCdWZmZXI+IGJ1ZmZlcjsKKworICAgICAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFlbmNvZGVyIHx8ICFidWZmZXI7IH0KKyAgICB9OworICAg
IGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgdmVydGV4QXJndW1lbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0ZXhBcmd1bWVudHM7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImIGZyYWdtZW50QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50
czsgfQorICAgIGNvbnN0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYgY29tcHV0ZUFyZ3VtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50czsgfQorI2VuZGlmIC8vIFVTRShNRVRB
TCkKIAogcHJpdmF0ZToKLSAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYs
IEFyZ3VtZW50RW5jb2RlcnMmJik7CisjaWYgVVNFKE1FVEFMKQorICAgIEdQVUJpbmRHcm91cExh
eW91dChCaW5kaW5nc01hcFR5cGUmJiwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYsIEFyZ3VtZW50
RW5jb2RlckJ1ZmZlciYmLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJik7CiAKKyAgICBBcmd1bWVu
dEVuY29kZXJCdWZmZXIgbV92ZXJ0ZXhBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIG1fZnJhZ21lbnRBcmd1bWVudHM7CisgICAgQXJndW1lbnRFbmNvZGVyQnVmZmVyIG1fY29t
cHV0ZUFyZ3VtZW50czsKKyNlbmRpZiAvLyBVU0UoTUVUQUwpCiAgICAgY29uc3QgQmluZGluZ3NN
YXBUeXBlIG1fYmluZGluZ3NNYXA7Ci0gICAgQXJndW1lbnRFbmNvZGVycyBtX2FyZ3VtZW50RW5j
b2RlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDExMzI5ZWU4NWU1
MWIwMmJkMzFjODFiM2ZlMmEyMTM5NDMyZDc0ZjMuLjQxNTI0YTU4N2RhYzFlOGFhZjQwN2M4Yjky
NzY0ZTJmZmI2ZWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgi
CiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDM3
NmQwZmU2MmZiZDMzZmJmN2UyZTE2YzA2NGJkYjIyYTA0ZmY0OTcuLjZlNmQ1MTUzMTg1YjhiYWVk
ZTRiMzQ5Y2IwNWEyMzE3Y2JhMThhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTI3LDkgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BV
UXVldWUuaCIKLQogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQzLDYgKzQxLDcgQEAgdXNp
bmcgUGxhdGZvcm1EZXZpY2VTbWFydFB0ciA9IFJldGFpblB0cjxNVExEZXZpY2U+OwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiBjbGFzcyBHUFVCdWZmZXI7CitjbGFzcyBHUFVDb21tYW5k
QnVmZmVyOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGlu
ZTsKIGNsYXNzIEdQVVNoYWRlck1vZHVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKaW5kZXggOTQ4YzBjODg2YTkzYTk1ODU4MTU5MGM5YTUyYjU0NGE0YmQ3MjZlNS4uOTUxYzQz
ODA3NGQ3YjM5MTA0MWNjOTYxNjliZWFhOTQ3NGYyMzk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmgKQEAgLTI3LDEyICsyNywxNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkK
IAorI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCitPQkpDX1BST1RPQ09MKE1UTEFyZ3VtZW50RW5jb2Rlcik7CitPQkpDX1BST1RP
Q09MKE1UTEJ1ZmZlcik7CiBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRFbmNvZGVyKTsKK09CSkNf
UFJPVE9DT0woTVRMUmVzb3VyY2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQ
VUJpbmRHcm91cDsKIGNsYXNzIEdQVVJlbmRlclBpcGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyID0gTVRMQ29tbWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDcs
MjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkg
PSBkZWZhdWx0OwogCiAgICAgdm9pZCBlbmRQYXNzKCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91
cCh1bnNpZ25lZCBsb25nLCBjb25zdCBHUFVCaW5kR3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFz
c0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CisjaWYgVVNFKE1FVEFMKQorICAgIHZv
aWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29u
c3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQgbG9uZywgY29uc3QgY2hhciogY29uc3Qp
OworICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBs
b25nKSA9IDA7CisKKyAgICAvLyBSZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAg
dmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywg
dW5zaWduZWQgbG9uZykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1U
TEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSB7IH0KKyNlbmRpZiAvLyBV
U0UoTUVUQUwpCisKICAgICBib29sIG1faXNFbmNvZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNz
RW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYx
MmMxMi4uYzhlNjg1YThlNTZhODc1NmUwMGEzNjk1ZjkwMDNiYWM2MTc3ODc1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNv
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKQEAgLTYyLDYgKzYyLDEzIEBAIHByaXZhdGU6CiAKICAgICBQbGF0Zm9y
bVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKiBwbGF0Zm9ybVBhc3NFbmNvZGVyKCkgY29uc3QgZmlu
YWw7CiAKKyNpZiBVU0UoTUVUQUwpCisgICAgLy8gR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIK
KyAgICB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkIGxvbmcpIGZpbmFs
OworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1
bnNpZ25lZCBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZl
ciAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKKyNlbmRpZiAvLyBVU0Uo
TUVUQUwpCisKICAgICBQbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyU21hcnRQdHIgbV9wbGF0Zm9y
bVJlbmRlclBhc3NFbmNvZGVyOwogICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gbV9waXBl
bGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXgg
Zjg5MzFjZTY2MjliMTUwYzZhOTg1M2ExZGE4ZWM0NTdiOWU3NWI0Ny4uNjAyMmM2MmNjMGI2YzIw
YzYwOWMyMmRkNjRlZjUyYTllY2RlNWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBM
YXlvdXRNZXRhbC5tbQpAQCAtNjEsMjEgKzYxLDM4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZEFyZ3Vt
ZW50VG9BcnJheShBcmd1bWVudEFycmF5JiBhcnJheSwgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVz
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotc3RhdGljIFJldGFpblB0cjxN
VExBcmd1bWVudEVuY29kZXI+IG5ld0VuY29kZXIoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEFy
Z3VtZW50QXJyYXkgYXJyYXkpCitzdGF0aWMgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVudEVu
Y29kZXJCdWZmZXIgdHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKGNvbnN0IEdQVURl
dmljZSYgZGV2aWNlLCBBcmd1bWVudEFycmF5IGFycmF5KQogewotICAgIFJldGFpblB0cjxNVExB
cmd1bWVudEVuY29kZXI+IGVuY29kZXI7CisgICAgR1BVQmluZEdyb3VwTGF5b3V0OjpBcmd1bWVu
dEVuY29kZXJCdWZmZXIgYXJnczsKKwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LSAgICBlbmNvZGVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QXJndW1l
bnRFbmNvZGVyV2l0aEFyZ3VtZW50czphcnJheS5nZXQoKV0pOworICAgIGFyZ3MuZW5jb2RlciA9
IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhB
cmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwot
ICAgIGlmICghZW5jb2RlcikKKyAgICBpZiAoIWFyZ3MuZW5jb2RlcikgewogICAgICAgICBMT0co
V2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0
ZSBNVExBcmd1bWVudEVuY29kZXIhIik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIGFyZ3MuYnVmZmVyID0gYWRvcHRO
UyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDphcmdzLmVuY29k
ZXIuZ2V0KCkuZW5jb2RlZExlbmd0aCBvcHRpb25zOjBdKTsKKyAgICBbYXJncy5lbmNvZGVyIHNl
dEFyZ3VtZW50QnVmZmVyOmFyZ3MuYnVmZmVyLmdldCgpIG9mZnNldDowXTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIGlmICghYXJncy5idWZmZXIpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVh
dGUgTVRMQnVmZmVyIGZyb20gTVRMQXJndW1lbnRFbmNvZGVyISIpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KIAotICAgIHJldHVybiBlbmNvZGVyOworICAgIHJldHVybiBhcmdzOwogfTsK
IAogUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Im
JiBkZXNjcmlwdG9yKQogewotICAgIEFyZ3VtZW50QXJyYXkgdmVydGV4QXJndW1lbnRzLCBmcmFn
bWVudEFyZ3VtZW50cywgY29tcHV0ZUFyZ3VtZW50czsKKyAgICBpZiAoIWRldmljZS5wbGF0Zm9y
bURldmljZSgpKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6OnRy
eUNyZWF0ZSgpOiBJbnZhbGlkIE1UTERldmljZSEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgQXJndW1lbnRBcnJheSB2ZXJ0ZXhBcmdzQXJyYXksIGZyYWdtZW50QXJn
c0FycmF5LCBjb21wdXRlQXJnc0FycmF5OwogICAgIEJpbmRpbmdzTWFwVHlwZSBiaW5kaW5nc01h
cDsKIAogICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGRlc2NyaXB0b3IuYmluZGluZ3Mp
IHsKQEAgLTk5LDM0ICsxMTYsMzYgQEAgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmlu
ZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UKICAgICAgICAg
bXRsQXJndW1lbnQuZ2V0KCkuaW5kZXggPSBiaW5kaW5nLmJpbmRpbmc7CiAKICAgICAgICAgaWYg
KGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCi0gICAgICAg
ICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7
CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkodmVydGV4QXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgICAgIGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFn
ZUJpdDo6RlJBR01FTlQpCi0gICAgICAgICAgICBhcHBlbmRBcmd1bWVudFRvQXJyYXkoZnJhZ21l
bnRBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsKKyAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9B
cnJheShmcmFnbWVudEFyZ3NBcnJheSwgbXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGlu
Zy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkNPTVBVVEUpCi0gICAgICAgICAgICBh
cHBlbmRBcmd1bWVudFRvQXJyYXkoY29tcHV0ZUFyZ3VtZW50cywgbXRsQXJndW1lbnQpOworICAg
ICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGNvbXB1dGVBcmdzQXJyYXksIG10bEFyZ3Vt
ZW50KTsKICAgICB9CiAKLSAgICBBcmd1bWVudEVuY29kZXJzIGVuY29kZXJzOworICAgIEFyZ3Vt
ZW50RW5jb2RlckJ1ZmZlciB2ZXJ0ZXgsIGZyYWdtZW50LCBjb21wdXRlOwogCi0gICAgaWYgKHZl
cnRleEFyZ3VtZW50cykgewotICAgICAgICBpZiAoIShlbmNvZGVycy52ZXJ0ZXggPSBuZXdFbmNv
ZGVyKGRldmljZSwgdmVydGV4QXJndW1lbnRzKSkpCisgICAgaWYgKHZlcnRleEFyZ3NBcnJheSkg
eworICAgICAgICBpZiAoISh2ZXJ0ZXggPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCB2ZXJ0ZXhBcmdzQXJyYXkpKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBpZiAoZnJhZ21lbnRBcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCEoZW5j
b2RlcnMuZnJhZ21lbnQgPSBuZXdFbmNvZGVyKGRldmljZSwgZnJhZ21lbnRBcmd1bWVudHMpKSkK
KyAgICBpZiAoZnJhZ21lbnRBcmdzQXJyYXkpIHsKKyAgICAgICAgaWYgKCEoZnJhZ21lbnQgPSB0
cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZmZXIoZGV2aWNlLCBmcmFnbWVudEFyZ3NBcnJh
eSkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmIChjb21wdXRl
QXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICghKGVuY29kZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVy
KGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQorICAgIGlmIChjb21wdXRlQXJnc0FycmF5KSB7
CisgICAgICAgIGlmICghKGNvbXB1dGUgPSB0cnlDcmVhdGVBcmd1bWVudEVuY29kZXJBbmRCdWZm
ZXIoZGV2aWNlLCBjb21wdXRlQXJnc0FycmF5KSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChX
VEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92ZShlbmNvZGVycykpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdQVUJpbmRHcm91cExheW91dChXVEZNb3ZlKGJpbmRpbmdzTWFwKSwgV1RGTW92
ZSh2ZXJ0ZXgpLCBXVEZNb3ZlKGZyYWdtZW50KSwgV1RGTW92ZShjb21wdXRlKSkpOwogfQogCi1H
UFVCaW5kR3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChCaW5kaW5nc01hcFR5cGUmJiBi
aW5kaW5nc01hcCwgQXJndW1lbnRFbmNvZGVycyYmIGVuY29kZXJzKQotICAgIDogbV9iaW5kaW5n
c01hcChXVEZNb3ZlKGJpbmRpbmdzTWFwKSkKLSAgICAsIG1fYXJndW1lbnRFbmNvZGVycyhXVEZN
b3ZlKGVuY29kZXJzKSkKK0dQVUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KEJp
bmRpbmdzTWFwVHlwZSYmIGJpbmRpbmdzTWFwLCBBcmd1bWVudEVuY29kZXJCdWZmZXImJiB2ZXJ0
ZXgsIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciYmIGZyYWdtZW50LCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImJiBjb21wdXRlKQorICAgIDogbV92ZXJ0ZXhBcmd1bWVudHMoV1RGTW92ZSh2ZXJ0ZXgpKQor
ICAgICwgbV9mcmFnbWVudEFyZ3VtZW50cyhXVEZNb3ZlKGZyYWdtZW50KSkKKyAgICAsIG1fY29t
cHV0ZUFyZ3VtZW50cyhXVEZNb3ZlKGNvbXB1dGUpKQorICAgICwgbV9iaW5kaW5nc01hcChXVEZN
b3ZlKGJpbmRpbmdzTWFwKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0
YWwubW0KaW5kZXggNjEyNTlkMjM0ZmIzYTEyNGY5OTE3ODRhNWQ4ZmQ2ODg3MDM3ZTIwOC4uOTNl
ZGMxMWE4MGVjYjZhMDY0MThiNTJjMjYxNDYzODMyZjFmNzk2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRh
bC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
Q29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC02OSw3ICs2OSw2IEBAIFJlZlB0cjxHUFVDb21tYW5k
QnVmZmVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGUoR1BVRGV2aWNlJiBkZXZpY2UpCiBHUFVD
b21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0
UHRyJiYgYnVmZmVyKQogICAgIDogbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoV1RGTW92ZShidWZm
ZXIpKQogewotICAgIFVOVVNFRF9QQVJBTShtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcik7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggMmU2NDM2MzgxNDZhMWI4OWNhN2Y4Yzk2ODY2
NTNkMjcyNWQzNDE4ZS4uNGZmZTM4NzUwYzMzMTRkYjlkMDBkNTJjNDBhMzYxMTA5OGJkYjk1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwu
bW0KQEAgLTI4LDcgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW1wb3J0ICJH
UFVCaW5kR3JvdXAuaCIKKyNpbXBvcnQgIkdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCIKKyNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDYg
KzQ1LDg0IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MoKQogICAg
IG1faXNFbmNvZGluZyA9IGZhbHNlOwogfQogCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJn
dW1lbnRFbmNvZGVyLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25l
ZCBsb25nIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUpCit7CisjaWYgTE9H
X0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBp
ZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3Vt
ZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBzdGFnZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IFJlc291cmNlIGlzIG5vdCBhIGJ1ZmZlciB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8R1BV
QnVmZmVyQmluZGluZz4ocmVzb3VyY2UpOworICAgIGF1dG8gYnVmZmVyID0gYnVmZmVyQmluZGlu
Zy5idWZmZXItPnBsYXRmb3JtQnVmZmVyKCk7CisKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgTVRMQnVmZmVyIGluIEdQVUJ1ZmZlckJpbmRpbmch
IiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIFthcmd1bWVudEVuY29kZXIgc2V0QnVmZmVyOmJ1
ZmZlciBvZmZzZXQ6YnVmZmVyQmluZGluZy5vZmZzZXQgYXRJbmRleDppbmRleF07CisgICAgdXNl
UmVzb3VyY2UoYnVmZmVyLCBNVExSZXNvdXJjZVVzYWdlUmVhZCk7CisKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworfQorCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRCaW5kR3JvdXAodW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5k
R3JvdXApCit7CisgICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoKSI7CisjaWYgTE9HX0RJU0FCTEVECisg
ICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKworICAgIGNvbnN0IGF1dG8m
IHZlcnRleEFyZ3MgPSBiaW5kR3JvdXAubGF5b3V0KCkudmVydGV4QXJndW1lbnRzKCk7CisgICAg
Y29uc3QgYXV0byYgZnJhZ21lbnRBcmdzID0gYmluZEdyb3VwLmxheW91dCgpLmZyYWdtZW50QXJn
dW1lbnRzKCk7CisgICAgLy8gRklYTUU6IEZpbmlzaCBzdXBwb3J0IGZvciBjb21wdXRlLgorCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgaWYgKHZlcnRleEFyZ3MuYnVm
ZmVyKQorICAgICAgICBzZXRWZXJ0ZXhCdWZmZXIodmVydGV4QXJncy5idWZmZXIuZ2V0KCksIDAs
IGluZGV4KTsKKyAgICBpZiAoZnJhZ21lbnRBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0RnJhZ21l
bnRCdWZmZXIoZnJhZ21lbnRBcmdzLmJ1ZmZlci5nZXQoKSwgMCwgaW5kZXgpOworCisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVh
Y2ggTVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgorICAgIGNvbnN0
IGF1dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdzTWFwKCk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKCkpIHsKKyAg
ICAgICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5iaW5kaW5nKTsK
KyAgICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7CisgICAgICAgICAg
ICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBmb3VuZCBpbiBH
UFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRpbmcpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gYmluZEdyb3VwTGF5b3V0
QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExh
eW91dEJpbmRpbmcudHlwZSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291
cmNlIHR5cGVzLgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpVbmlmb3JtQnVmZmVyOgorICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJp
bmRpbmc6OkJpbmRpbmdUeXBlOjpTdG9yYWdlQnVmZmVyOiB7CisgICAgICAgICAgICBpZiAoYmlu
ZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRF
WCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFy
Z3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5j
dGlvbk5hbWUpOworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJp
bGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGUkFHTUVOVCkKKyAgICAgICAgICAgICAgICBzZXRS
ZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBiaW5k
aW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBSZXNvdXJjZSB0eXBlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIiwgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNz
RW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggNTU2NTA2M2Y2NDAwYjQwMzg1
NDM1M2RhYWM2N2UzNTA1MTQwMTQ3My4uNTk0YTMzNzBhODQ0OWYxZDdiOWYyZDc4ZmE4MmY3Zjk5
MjY3MjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0K
QEAgLTExOCw2ICsxMTgsMjUgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyh1bnNp
Z25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmMKICAgICAgICAgYmFz
ZUluc3RhbmNlOmZpcnN0SW5zdGFuY2VdOwogfQogCisjaWYgVVNFKE1FVEFMKQorCit2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAqcmVzb3VyY2UsIHVu
c2lnbmVkIGxvbmcgdXNhZ2UpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciB1
c2VSZXNvdXJjZTpyZXNvdXJjZSB1c2FnZTp1c2FnZV07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFz
c0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5zaWduZWQgbG9u
ZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZvcm1SZW5kZXJQ
YXNzRW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyIG9mZnNldDpvZmZzZXQgYXRJbmRleDpp
bmRleF07Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEZyYWdtZW50QnVmZmVy
KE1UTEJ1ZmZlciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBp
bmRleCkKK3sKKyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldEZyYWdtZW50QnVm
ZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCisjZW5kaWYgLy8g
VVNFKE1FVEFMKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCR1BVKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGU4NTYyNTRmNmI1MDA1NTA1ZjhhMWRkM2MzYzk2MWU4NzkwMWQ3YzEu
LmE2NTIzMzVkMjAxZGU3NDZkYzBmMDUwNjZkYmNmMmM5YmYwMThhMjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxOS0wMS0xOCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgor
CisgICAgICAgIChXSVApIFtXZWJHUFVdIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpz
ZXRCaW5kR3JvdXAgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTM0NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mjk2Njc4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyYXcgMyB0
cmlhbmdsZXMgdmlhIFdlYkdQVSB0byBjcmVhdGUgYSBncmVlbiBzcXVhcmUgY2FudmFzLCB3aXRo
IHJlZmVyZW5jZS4KKyAgICAgICAgRWFjaCB2ZXJ0ZXggaXMgc3RvcmVkIGluIGl0cyBvd24gV2Vi
R1BVQnVmZmVyIGFuZCB0aGV5IGFyZSBtaXgvbWF0Y2hlZCBwZXIgYmluZCBncm91cC4KKyAgICAg
ICAgVGhpcyB0ZXN0cyBtdWx0aXBsZSByZXNvdXJjZSBiaW5kaW5ncyBpbiBvbmUgYmluZCBncm91
cCBhcyB3ZWxsIGFzIHNldHRpbmcgbXVsdGlwbGUgCisgICAgICAgIGJpbmQgZ3JvdXBzIHBlciBk
cmF3IGNhbGwgYW5kIHBlciBjb21tYW5kIGVuY29kZXIuIAorCisgICAgICAgICogd2ViZ3B1L2J1
ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuIFJlZmVyZW5jZSBn
ZW5lcmF0ZWQgdXNpbmcgMkQgY2FudmFzLgorICAgICAgICAqIHdlYmdwdS9idWZmZXItcmVzb3Vy
Y2UtdHJpYW5nbGVzLmh0bWw6IEFkZGVkLiAKKyAgICAgICAgICAgICAgICAxKSBEcmF3IHRvcCB0
d28gdHJpYW5nbGVzIHVzaW5nIHR3byBiaW5kIGdyb3VwcyBpbiBvbmUgZHJhdyBjYWxsLgorICAg
ICAgICAgICAgICAgIDIpIFN3YXAgZmlyc3QgYmluZCBncm91cCBhbmQgaXNzdWUgc2Vjb25kIGRy
YXcgY2FsbCB0byBkcmF3IG1pZGRsZSB0cmlhbmdsZS4KKyAgICAgICAgKiB3ZWJncHUvanMvd2Vi
Z3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKGNyZWF0ZUJhc2ljUGlwZWxpbmUpOiBOb3cgaGFu
ZGxlcyBuZXcgcHJpbWl0aXZlIHRvcG9sb2dpZXMuCisKIDIwMTktMDEtMTYgIEFsaWNpYSBCb3lh
IEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGFu
ZCBXUEUgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYnVm
ZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1
L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODZm
MTNlODEyMDM5N2E1Y2M2MzM2YzllMmE0ODVlNzc4YmE5OTMyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5IVE1MIFJlZmVyZW5jZSBGaWxlPC90aXRsZT4KKzxwPlBhc3MgaWYgc3F1YXJl
IGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQw
MCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IGNhbnZhcyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpOworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2IoMCwgMjU1LCAwKSc7Citj
b250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cis8L3Nj
cmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzExNWJhNmNi
YTJjNzg1MGEzYmU3Yjk2MjlkZDgzODFjNGJjNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApAQCAtMCwwICsxLDE3
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj0iYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sIj4KKzxw
PlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxj
YW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9Impz
L3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRlckNv
ZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAgIAordXNpbmcgbmFtZXNwYWNlIG1l
dGFsOworCitzdHJ1Y3QgVmVydGV4IHsKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlvbl1d
OworfTsKKworc3RydWN0IFZlcnRleEFyZ3VtZW50cyB7CisgICAgZGV2aWNlIFZlcnRleCogdjA7
CisgICAgZGV2aWNlIFZlcnRleCogdjE7CisgICAgZGV2aWNlIFZlcnRleCogdjI7Cit9OworCit2
ZXJ0ZXggVmVydGV4IHZlcnRleF9tYWluKAorICAgIGNvbnN0IGRldmljZSBWZXJ0ZXhBcmd1bWVu
dHMmIGFyZ3MwIFtbYnVmZmVyKDApXV0sCisgICAgY29uc3QgZGV2aWNlIFZlcnRleEFyZ3VtZW50
cyYgYXJnczEgW1tidWZmZXIoMSldXSwKKyAgICB1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQorewor
ICAgIHN3aXRjaCAodmlkKQorICAgIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gYXJnczAudjBb
MF07CisgICAgICAgIGNhc2UgMTogcmV0dXJuIGFyZ3MwLnYxWzBdOworICAgICAgICBjYXNlIDI6
IHJldHVybiBhcmdzMC52MlswXTsKKyAgICAgICAgY2FzZSAzOiByZXR1cm4gYXJnczEudjBbMF07
CisgICAgICAgIGNhc2UgNDogcmV0dXJuIGFyZ3MxLnYxWzBdOworICAgICAgICBkZWZhdWx0OiBy
ZXR1cm4gYXJnczEudjJbMF07CisgICAgfQorfQorCitzdHJ1Y3QgRnJhZ21lbnRBcmd1bWVudHMg
eworICAgIGRldmljZSBmbG9hdDQqIGNvbG9yOworfTsKKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdt
ZW50X21haW4oY29uc3QgZGV2aWNlIEZyYWdtZW50QXJndW1lbnRzJiBhcmdzIFtbYnVmZmVyKDAp
XV0pCit7CisgICAgcmV0dXJuIGFyZ3MuY29sb3JbMF07Cit9CitgCisKK2NvbnN0IGJpbmRpbmdO
dW1zID0geworICAgIFVMOiAwLAorICAgIFVNOiAxLAorICAgIFVSOiAyLAorICAgIExMOiAzLAor
ICAgIExSOiA0LAorICAgIEc6IDUKK307CisKK2Z1bmN0aW9uIGNyZWF0ZVVuaWZvcm1CdWZmZXJC
aW5kR3JvdXBMYXlvdXQoYmluZE51bSwgc3RhZ2UgPSBXZWJHUFVTaGFkZXJTdGFnZUJpdC5WRVJU
RVgpIHsKKyAgICByZXR1cm4geworICAgICAgICBiaW5kaW5nOiBiaW5kTnVtLAorICAgICAgICB2
aXNpYmlsaXR5OiBzdGFnZSwKKyAgICAgICAgdHlwZTogInVuaWZvcm1CdWZmZXIiCisgICAgfTsK
K30KKworY29uc3QgYnVmZmVyU2l6ZSA9IDQgKiA0OworCisvLyBGSVhNRTogS2VlcCB1cCB0byBk
YXRlIHdpdGggYnVmZmVyIHVwbG9hZCBkZWNpc2lvbnMuCitmdW5jdGlvbiBjcmVhdGVGbG9hdDRC
dWZmZXIoZGV2aWNlLCBhLCBiKSB7CisgICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1
ZmZlcih7IHNpemU6IGJ1ZmZlclNpemUsIHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5VTklGT1JN
IH0pOworICAgIAorICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYnVmZmVyLm1hcHBpbmc7CisgICAg
Y29uc3QgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpOworCisgICAg
ZmxvYXRBcnJheVswXSA9IGE7CisgICAgZmxvYXRBcnJheVsxXSA9IGI7CisgICAgZmxvYXRBcnJh
eVsyXSA9IDA7CisgICAgZmxvYXRBcnJheVszXSA9IDE7CisKKyAgICByZXR1cm4gYnVmZmVyOwor
fQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXJCaW5kaW5nKGJ1ZmZlcikgeworICAgIHJldHVybiB7
CisgICAgICAgIGJ1ZmZlcjogYnVmZmVyLAorICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAgIHNp
emU6IGJ1ZmZlclNpemUKKyAgICB9OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CisgICAgY29uc3QgY2FudmFz
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CisgICAgY29uc3QgY29udGV4dCA9
IGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSk7CisgICAgLy8gRklYTUU6IFJlcGxh
Y2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNl
LmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUgfSk7CisKKyAgICAvLyBDcmVh
dGUgdmVydGV4IGRhdGEgV2ViR1BVQnVmZmVycy4KKyAgICBjb25zdCB1cHBlckxlZnQgPSBjcmVh
dGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAtMSwgMSk7CisgICAgY29uc3QgdXBwZXJNaWRkbGUgPSBj
cmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAwLCAxKTsKKyAgICBjb25zdCB1cHBlclJpZ2h0ID0g
Y3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgMSk7CisgICAgY29uc3QgbG93ZXJMZWZ0ID0g
Y3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgLTEsIC0xKTsKKyAgICBjb25zdCBsb3dlclJpZ2h0
ID0gY3JlYXRlRmxvYXQ0QnVmZmVyKGRldmljZSwgMSwgLTEpOworCisgICAgLy8gQ29sb3IgZGF0
YSBidWZmZXIuCisgICAgY29uc3QgZ3JlZW4gPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNlLCAw
LCAxKTsKKworICAgIC8vIENyZWF0ZSBidWZmZXIgV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGlu
Z3MuCisgICAgY29uc3QgbGF5b3V0VUwgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5
b3V0KGJpbmRpbmdOdW1zLlVMKTsKKyAgICBjb25zdCBsYXlvdXRVTSA9IGNyZWF0ZVVuaWZvcm1C
dWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuVU0pOworICAgIGNvbnN0IGxheW91dFVS
ID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVtcy5VUik7Cisg
ICAgY29uc3QgbGF5b3V0TEwgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJp
bmRpbmdOdW1zLkxMKTsKKyAgICBjb25zdCBsYXlvdXRMUiA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJC
aW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTFIpOworICAgIGNvbnN0IGxheW91dEcgPSBjcmVh
dGVVbmlmb3JtQnVmZmVyQmluZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLkcsIFdlYkdQVVNoYWRl
clN0YWdlQml0LkZSQUdNRU5UKTsKKworICAgIC8vIFdlYkdQVUJpbmRHcm91cExheW91dHMKKyAg
ICBjb25zdCBsZWZ0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlv
dXQoeyBiaW5kaW5nczogW2xheW91dFVMLCBsYXlvdXRVTSwgbGF5b3V0TEwsIGxheW91dEddIH0p
OworICAgIGNvbnN0IHJpZ2h0VHJpYW5nbGVCR0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3Jv
dXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91dFVSLCBsYXlvdXRVTSwgbGF5b3V0TFJdIH0pOwor
ICAgIGNvbnN0IG1pZGRsZVRyaWFuZ2xlQkdMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3Vw
TGF5b3V0KHsgYmluZGluZ3M6IFtsYXlvdXRVTSwgbGF5b3V0TEwsIGxheW91dExSLCBsYXlvdXRH
XSB9KTsKKworICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGFuZCBXZWJHUFVSZW5kZXJQaXBl
bGluZQorICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5
b3V0KHsgYmluZEdyb3VwTGF5b3V0czogW2xlZnRUcmlhbmdsZUJHTGF5b3V0LCBtaWRkbGVUcmlh
bmdsZUJHTGF5b3V0LCByaWdodFRyaWFuZ2xlQkdMYXlvdXRdIH0pOworICAgIGNvbnN0IHBpcGVs
aW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxpbmVM
YXlvdXQsIG51bGwsICJ0cmlhbmdsZUxpc3QiKTsKKworICAgIC8vIFdlYkdQVUJ1ZmZlckJpbmRp
bmdzCisgICAgY29uc3QgYmluZGluZ1VMID0gY3JlYXRlQnVmZmVyQmluZGluZyh1cHBlckxlZnQp
OworICAgIGNvbnN0IGJpbmRpbmdVTSA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcodXBwZXJNaWRkbGUp
OworICAgIGNvbnN0IGJpbmRpbmdVUiA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcodXBwZXJSaWdodCk7
CisgICAgY29uc3QgYmluZGluZ0xMID0gY3JlYXRlQnVmZmVyQmluZGluZyhsb3dlckxlZnQpOwor
ICAgIGNvbnN0IGJpbmRpbmdMUiA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmcobG93ZXJSaWdodCk7Cisg
ICAgY29uc3QgYmluZGluZ0cgPSBjcmVhdGVCdWZmZXJCaW5kaW5nKGdyZWVuKTsKKyAgICAKKyAg
ICAvLyBXZWJHUFVCaW5kR3JvdXBCaW5kaW5ncworICAgIGNvbnN0IGJnQmluZGluZ1VMID0geyBi
aW5kaW5nOiBiaW5kaW5nTnVtcy5VTCwgcmVzb3VyY2U6IGJpbmRpbmdVTCB9OworICAgIGNvbnN0
IGJnQmluZGluZ1VNID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5VTSwgcmVzb3VyY2U6IGJpbmRp
bmdVTSB9OworICAgIGNvbnN0IGJnQmluZGluZ1VSID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5V
UiwgcmVzb3VyY2U6IGJpbmRpbmdVUiB9OworICAgIGNvbnN0IGJnQmluZGluZ0xMID0geyBiaW5k
aW5nOiBiaW5kaW5nTnVtcy5MTCwgcmVzb3VyY2U6IGJpbmRpbmdMTCB9OworICAgIGNvbnN0IGJn
QmluZGluZ0xSID0geyBiaW5kaW5nOiBiaW5kaW5nTnVtcy5MUiwgcmVzb3VyY2U6IGJpbmRpbmdM
UiB9OworICAgIGNvbnN0IGJnQmluZGluZ0cgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLkcsIHJl
c291cmNlOiBiaW5kaW5nRyB9OworCisgICAgLy8gV2ViR1BVQmluZEdyb3VwcworICAgIGNvbnN0
IGxlZnRUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7IAorICAgICAgICBsYXlv
dXQ6IGxlZnRUcmlhbmdsZUJHTGF5b3V0LCAKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRpbmdV
TCwgYmdCaW5kaW5nVU0sIGJnQmluZGluZ0xMLCBiZ0JpbmRpbmdHXSAKKyAgICB9KTsKKyAgICBj
b25zdCByaWdodFRyaWFuZ2xlQkcgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKHsKKyAgICAgICAg
bGF5b3V0OiByaWdodFRyaWFuZ2xlQkdMYXlvdXQsCisgICAgICAgIGJpbmRpbmdzOiBbYmdCaW5k
aW5nVVIsIGJnQmluZGluZ1VNLCBiZ0JpbmRpbmdMUl0KKyAgICB9KTsKKyAgICBjb25zdCBtaWRk
bGVUcmlhbmdsZUJHID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7CisgICAgICAgIGxheW91dDog
bWlkZGxlVHJpYW5nbGVCR0xheW91dCwKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRpbmdVTSwg
YmdCaW5kaW5nTEwsIGJnQmluZGluZ0xSLCBiZ0JpbmRpbmdHXQorICAgIH0pOworCisgICAgY29u
c3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7CisgICAgY29u
c3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5kQnVm
ZmVyKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRQaXBlbGluZShwaXBlbGluZSk7CisKKyAgICAvLyBE
cmF3IHVwcGVyIHRyaWFuZ2xlcy4KKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgbGVm
dFRyaWFuZ2xlQkcpOworICAgIHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgxLCByaWdodFRyaWFu
Z2xlQkcpOworICAgIHBhc3NFbmNvZGVyLmRyYXcoNiwgMSwgMCwgMCk7CisgICAgLy8gRHJhdyBs
b3dlciB0cmlhbmdsZS4KKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgbWlkZGxlVHJp
YW5nbGVCRyk7CisgICAgcGFzc0VuY29kZXIuZHJhdygzLCAxLCAwLCAwKTsKKworICAgIGNvbnN0
IGVuZENvbW1hbmRCdWZmZXIgPSBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisgICAgY29uc3QgcXVl
dWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKyAgICBxdWV1ZS5zdWJtaXQoW2VuZENvbW1hbmRCdWZm
ZXJdKTsKKyAgICBjb250ZXh0LnByZXNlbnQoKTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1
L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1
bmN0aW9ucy5qcwppbmRleCBjNzUzMDJiZTg5MjlkZmRlZjBjMjAyOWU1MzZhMGNkOGRhNmRlMGI5
Li43NjdmOTQ2NTIxYTRhZDIyMjEzZjkyZjBkNGZjYjU3MjBjODI2MzE3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0
cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlv
biBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpIHsKICAgICByZXR1cm4gY29udGV4
dDsKIH0KIAotZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmlj
ZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXNjcmlwdG9yKSB7CitmdW5jdGlvbiBjcmVh
dGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5w
dXRTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5ID0gInRyaWFuZ2xlU3RyaXAiKSB7
CiAgICAgY29uc3QgdmVydGV4U3RhZ2VEZXNjcmlwdG9yID0gewogICAgICAgICBtb2R1bGU6IHNo
YWRlck1vZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWluIiAKQEAgLTI2LDEz
ICsyNiwxNSBAQCBmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2
aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRTdGF0ZURlcwogICAgIGNvbnN0IHBpcGVsaW5lRGVz
Y3JpcHRvciA9IHsKICAgICAgICAgdmVydGV4U3RhZ2U6IHZlcnRleFN0YWdlRGVzY3JpcHRvciwK
ICAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCi0gICAgICAg
IHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVTdHJpcCIsCi0gICAgICAgIGlucHV0U3RhdGU6
IGlucHV0U3RhdGVEZXNjcmlwdG9yCisgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiBwcmltaXRp
dmVUb3BvbG9neQogICAgIH07CiAKICAgICBpZiAocGlwZWxpbmVMYXlvdXQpCiAgICAgICAgIHBp
cGVsaW5lRGVzY3JpcHRvci5sYXlvdXQgPSBwaXBlbGluZUxheW91dDsKIAorICAgIGlmIChpbnB1
dFN0YXRlRGVzY3JpcHRvcikKKyAgICAgICAgcGlwZWxpbmVEZXNjcmlwdG9yLmlucHV0U3RhdGUg
PSBpbnB1dFN0YXRlRGVzY3JpcHRvcjsKKwogICAgIHJldHVybiBkZXZpY2UuY3JlYXRlUmVuZGVy
UGlwZWxpbmUocGlwZWxpbmVEZXNjcmlwdG9yKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359523</attachid>
            <date>2019-01-18 12:23:49 -0800</date>
            <delta_ts>2019-01-18 14:31:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193457-20190118122348.patch</filename>
            <type>text/plain</type>
            <size>51481</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uMmVhZjU5ODBhMzJlYzNhNDUwNGQ0ZGNhMWRmZjFj
ZTMyNGM0ODNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTE4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgKFdJUCkgW1dlYkdQVV0g
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyOTY2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVh
biBKYWNrc29uLgorCisgICAgICAgIEVuYWJsZSBXZWJHUFUgZGV2ZWxvcGVycyB0byBhc3NpZ24g
YnVmZmVyIGJpbmQgZ3JvdXBzIGFuZCBhY2Nlc3MgdGhlbSB2aWEgcmVuZGVyIHBpcGVsaW5lLiAK
KworICAgICAgICBUZXN0OiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVUJpbmRHcm91cDo6YmluZEdyb3VwIGNvbnN0KTogQWRkZWQgZ2V0dGVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNw
cDogCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwIGNvbnN0KTogQWRkZWQuIERlbGVnYXRlcyBjYWxsIHRvIEdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmg6IEVuYWJsZSBzZXRCaW5kR3JvdXAuCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsOiBkaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oOiAKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRH
cm91cDo6bGF5b3V0IGNvbnN0KTogQWRkZWQgZ2V0dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BV
QmluZEdyb3VwOjpiaW5kaW5ncyBjb25zdCk6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDogQWRkZWQgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIHN0cnVjdCB0byByZXRhaW4gcHRyIHRvIGJvdGggTVRMQXJndW1lbnRFbmNvZGVycyBhbmQg
dGhlaXIgYXJndW1lbnQgTVRMQnVmZmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91
cExheW91dDo6QXJndW1lbnRFbmNvZGVyQnVmZmVyOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0Ojp2ZXJ0ZXhBcmd1bWVudHMgY29uc3QpOiBB
ZGRlZC4gR2V0dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpmcmFn
bWVudEFyZ3VtZW50cyBjb25zdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdy
b3VwTGF5b3V0Ojpjb21wdXRlQXJndW1lbnRzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IFJlZmFjdG9yZWQgdW5uZWNlc3Nhcnkg
aGVhZGVyIGluY2x1ZGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5oOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOiBBZGRlZC4gRGVsZWdhdGVzIHRvIE1UTENvbW1hbmRF
bmNvZGVyIGNhbGwuCisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6c2V0RnJhZ21lbnRCdWZmZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaDogCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKTogUmVwbGFjZSBuZXdFbmNvZGVy
KCkuIE5vdyBjcmVhdGUgYW4gQXJndW1lbnRFbmNvZGVyQnVmZmVyIG9iamVjdCBmcm9tIGFuIGFy
cmF5IG9mIE1UTEFyZ3VtZW50RGVzY3JpcHRvcnMsIGlmIGFibGUuCisgICAgICAgIChXZWJDb3Jl
OjpHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlZmFjdG9yIHRvIHN1cHBvcnQgQXJn
dW1lbnRFbmNvZGVyQnVmZmVycywgYW5kIGFsbG9jYXRlIE1UTEJ1ZmZlcnMgZm9yIGFyZ3VtZW50
IGVuY29kZXJzLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpHUFVCaW5k
R3JvdXBMYXlvdXQpOiBTdXBwb3J0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlcnMuCisgICAgICAgIChX
ZWJDb3JlOjpuZXdFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VB
c0J1ZmZlck9uRW5jb2Rlcik6IFNldCBhIGJ1ZmZlciByZXNvdXJjZSBvbiB0aGUgTVRMQXJndW1l
bnRFbmNvZGVyLCBhbmQgY2FsbCB1c2VSZXNvdXJjZSBvbiB0aGUgY29tbWFuZCBlbmNvZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91
cCk6IFBhcnNlcyB0aGUgYmluZCBncm91cCB0byBhc3NpZ24gZWFjaCByZXNvdXJjZSBvbiBpdHMg
bWF0Y2hpbmcgTVRMQXJndW1lbnRFbmNvZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tOiAKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6IFJlc29sdmVzIGNhbGwgZnJv
bSBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB0byBjYWxsIG9uIE1UTFJlbmRlckNvbW1hbmRF
bmNvZGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6
OnNldEZyYWdtZW50QnVmZmVyKTogZGl0dG8uCisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxq
dXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1
ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4
IDBhMDQ3MDk1NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQw
OTc5MzBlYmJhZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQ
VUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRH
cm91cD4mJik7CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsg
cmV0dXJuIG1fYmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vi
R1BVQmluZEdyb3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5jcHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJi
Mi4uZjZmNWVhNmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKICNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldl
YkdQVUJpbmRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVm
ZmVyPiBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJu
IG1fY29tbWFuZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJH
UFVCaW5kR3JvdXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5k
R3JvdXAoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXI6OnNldEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5k
ZXggZHVwbGljYXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIo
KS5zZXRCaW5kR3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lk
IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGlu
ZShwaXBlbGluZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApp
bmRleCBlZjEwYzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0
NmY5NDljZjllYzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJX
ZWJHUFVDb21tYW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOwor
Y2xhc3MgV2ViR1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNs
YXNzIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0Owog
CiAgICAgUmVmPFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJp
bmRHcm91cCh1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAg
ICB2b2lkIHNldFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZk
OGViYTE1ZWUyNDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJh
OGM0N2RkNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQs
MTQgQEAKICAqLwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwog
WwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwK
ICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAg
Ly8gRklYTUU6IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0g
ICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBO
b3QgWWV0IEltcGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJl
bmRlciBwYXNzZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLwor
ICAgIHZvaWQgc2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91
cC8qLCBvcHRpb25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQg
c2V0UGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3Vw
cG9ydCBXZWJHUFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDg3YTdl
YWYxOWYwOTkwNzFkYjdkM2FmMGE4ZDE0YTAwZWU5MmE1OGEuLjJiOWE3MjMwMmRjMWVlZTc3MWJj
ZTlkMWMwNTZlOTRlNzkxOTIxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBGSVhNRTogTGFzdCBhcmd1bWVudCBzaG91bGQgYmUgVmVjdG9yPHVu
c2lnbmVkIGxvbmc+LiBXaHkgaXMgdGhlIGdlbmVyYXRlZCBjb2RlIGluY29ycmVjdGx5IGFzc3Vt
aW5nIHRoZSBJREwgd2FudHMgYSBzZXF1ZW5jZTx1bnNpZ25lZCBpbnQ+PwogICAgIHZvaWQgc2V0
VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+
JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVu
c2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOworICAgIHZvaWQgZHJh
dyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmNlQ291bnQs
IHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2lnbmVkIGxvbmcgZmlyc3RJbnN0YW5jZSk7
CiAKIHByaXZhdGU6CiAgICAgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIoUmVmPFdlYkdQVUNvbW1h
bmRCdWZmZXI+JiYsIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzQ5OGZhOGEy
YmZlZmQ1Yzc5MDMxMTViZjIzNzA4OTY2ZjkyNDExNS4uMDZhOGM2MjA5Mjk3Y2ZlNTI1YTU0NzAy
NWI3Yzc3ZmU3MGFlMTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQyNywxNyArNjQyNywxNiBAQAogCQkxQzg0MEI5QTIx
RUM0MDA5MDBEMDUwMEQgLyogV0hMU0xHYXRoZXJFbnRyeVBvaW50SXRlbXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xHYXRoZXJFbnRyeVBvaW50SXRlbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM4NDBCOUIyMUVDNDAwOTAwRDA1MDBEIC8qIFdITFNMQ2hlY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzkwNERGOTBCQTlEMkM4MDA4MUU5RDAgLyogVmVyc2lvbi54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBWZXJzaW9uLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNDIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5j
dGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3Rh
Z2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMEMyRTUyMUVF
RDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzlBRTVDQTIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdoWm9tYmllRmluZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNCMjFFRDlERjUwMDY5RDVGMiAvKiBXSExTTEhp
Z2hab21iaWVGaW5kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkRFMjFFRUI1RjQwMEExMTg2MCAv
KiBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xSZWN1cnNpb25D
aGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkUwMjFFRUI1RjUw
MEExMTg2MCAvKiBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0hMU0xSZWN1cnNpb25DaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNBMEMyRTQyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQTBDMkU1MjFFRUQxMkEwMEExMTg2MCAvKiBXSExT
TEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFn
ZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUEyMUVFRDZG
NTAwQTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMTGl0ZXJhbFR5cGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QTBDMkVDMjFFRUQ2RjYwMEExMTg2MCAvKiBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFDOUFFNUNBMjFFRDlERjUwMDY5RDVGMiAvKiBXSExTTEhpZ2ha
b21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUM5QUU1Q0IyMUVEOURGNTAwNjlE
NUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEhpZ2ha
b21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjQyMUVF
REFEMDAwQTExODYwIC8qIFdITFNMTG9vcENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0hMU0xMb29wQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBD
MkY1MjFFRURBRDEwMEExMTg2MCAvKiBXSExTTExvb3BDaGVja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdITFNMTG9vcENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMEMy
RjYyMUVFREFEMjAwQTExODYwIC8qIEFTVCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgcGF0aCA9IEFTVDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEV2ZW50TG9vcE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8q
IEV2ZW50TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExvb3Au
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDMyLDYg
KzE3MDMxLDEwMCBAQAogCQkJdGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9Owor
CQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAgLyogQVNUICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzg0MEI5MDIxRUMzMEY5MDBEMDUwMEQgLyogV0hM
U0xBZGRyZXNzU3BhY2UuaCAqLywKKwkJCQlDMjFCRjcyNTIxQ0Q4OUUyMDAyMjc5NzkgLyogV0hM
U0xBcnJheVJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQlDMjFCRjcwOTIxQ0Q4OUNBMDAyMjc5Nzkg
LyogV0hMU0xBcnJheVR5cGUuaCAqLywKKwkJCQlDMjFCRjczMDIxQ0Q4OUVEMDAyMjc5NzkgLyog
V0hMU0xBc3NpZ25tZW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBBMjFDRDg5Q0IwMDIy
Nzk3OSAvKiBXSExTTEJhc2VGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNkZBMjFD
RDg5QkUwMDIyNzk3OSAvKiBXSExTTEJhc2VTZW1hbnRpYy5oICovLAorCQkJCUMyMUJGNzFFMjFD
RDg5REMwMDIyNzk3OSAvKiBXSExTTEJsb2NrLmggKi8sCisJCQkJQzIxQkY2RjYyMUNEODlCNzAw
MjI3OTc5IC8qIFdITFNMQm9vbGVhbkxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcxQTIxQ0Q4OUQ4
MDAyMjc5NzkgLyogV0hMU0xCcmVhay5oICovLAorCQkJCUMyMTM4QTEzMjFEREVDRDMwMEY1MTZC
QSAvKiBXSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAgKi8sCisJCQkJQzIxQkY3MjIyMUNEODlERjAw
MjI3OTc5IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MTYyMUNEODlE
NTAwMjI3OTc5IC8qIFdITFNMQ2FsbEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjcwNjIxQ0Q4
OUM3MDAyMjc5NzkgLyogV0hMU0xDb21tYUV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjczMzIx
Q0Q4OUYwMDAyMjc5NzkgLyogV0hMU0xDb25zdGFudEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFC
RjZGNTIxQ0Q4OUI1MDAyMjc5NzkgLyogV0hMU0xDb250aW51ZS5oICovLAorCQkJCUMyMUJGNzAx
MjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERlcmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJ
CUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTERvdEV4cHJlc3Npb24uaCAqLywKKwkJ
CQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hMU0xEb1doaWxlTG9vcC5oICovLAorCQkJ
CUMyMUJGNzI4MjFDRDg5RTUwMDIyNzk3OSAvKiBXSExTTEVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0
ZW1lbnQuaCAqLywKKwkJCQkxQzg0MEI3RDIxRUJFMEI4MDBEMDUwMEQgLyogV0hMU0xFbnRyeVBv
aW50VHlwZS5oICovLAorCQkJCUMyMUJGNzIwMjFDRDg5REQwMDIyNzk3OSAvKiBXSExTTEVudW1l
cmF0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNzI2MjFDRDg5RTMwMDIyNzk3OSAvKiBX
SExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8sCisJCQkJQzIxQkY3MDIyMUNEODlDNDAwMjI3OTc5
IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJMaXRlcmFsLmggKi8sCisJCQkJQzIxQkY3MEMyMUNE
ODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzAwMjFDRDg5
QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8sCisJCQkJQzIxQkY3MzUyMUNEODlG
MjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCMzgyMURGMDNF
MTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzQy
MURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovLAorCQkJCUMyMUJG
NzM0MjFDRDg5RjEwMDIyNzk3OSAvKiBXSExTTEZvckxvb3AuaCAqLywKKwkJCQlDMjFCRjcwNTIx
Q0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJG
NkZEMjFDRDg5QzAwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJ
CQlDMjFCRjZGNDIxQ0Q4OUIzMDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkRlZmluaXRpb24uaCAq
LywKKwkJCQlDMjFCRjZGRjIxQ0Q4OUMyMDAyMjc5NzkgLyogV0hMU0xJZlN0YXRlbWVudC5oICov
LAorCQkJCUMyMUJGNkY3MjFDRDg5QjkwMDIyNzk3OSAvKiBXSExTTEluZGV4RXhwcmVzc2lvbi5o
ICovLAorCQkJCUMyMEY0RjY2MjFERkYyMzYwMDcwQzQ1QSAvKiBXSExTTEludGVnZXJMaXRlcmFs
LmNwcCAqLywKKwkJCQlDMjFCRjZGODIxQ0Q4OUJCMDAyMjc5NzkgLyogV0hMU0xJbnRlZ2VyTGl0
ZXJhbC5oICovLAorCQkJCTFDQjY5QjM5MjFERjAzRjMwMDZFODQ2QSAvKiBXSExTTEludGVnZXJM
aXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzUyMURFRDY0OTAwNkU4NDZBIC8qIFdITFNM
SW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzIyMUNEODlFRjAwMjI3OTc5IC8q
IFdITFNMTG9naWNhbEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjcxNTIxQ0Q4OUQ0MDAyMjc5
NzkgLyogV0hMU0xMb2dpY2FsTm90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJEMjFDRDg5
RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VBcnJheVJlZmVyZW5jZUV4cHJlc3Npb24uaCAqLywKKwkJ
CQlDMjFCRjcyQzIxQ0Q4OUU5MDAyMjc5NzkgLyogV0hMU0xNYWtlUG9pbnRlckV4cHJlc3Npb24u
aCAqLywKKwkJCQkxQzMzMjc3MTIxQ0YwQkUxMDAwREM5RjIgLyogV0hMU0xOYW1lZFR5cGUuaCAq
LywKKwkJCQlDMjFCRjcyMzIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOYXRpdmVGdW5jdGlvbkRl
Y2xhcmF0aW9uLmggKi8sCisJCQkJQzIxQkY3MkEyMUNEODlFNzAwMjI3OTc5IC8qIFdITFNMTmF0
aXZlVHlwZURlY2xhcmF0aW9uLmggKi8sCisJCQkJQzIxQkY3MjQyMUNEODlFMTAwMjI3OTc5IC8q
IFdITFNMTm9kZS5oICovLAorCQkJCUMyMUJGNzA3MjFDRDg5QzgwMDIyNzk3OSAvKiBXSExTTE51
bGxMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCM0EyMURGMDQwMzAwNkU4NDZBIC8qIFdITFNMTnVs
bExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNjIxREVENjU3MDA2RTg0NkEgLyogV0hM
U0xOdWxsTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjcyMTIxQ0Q4OURFMDAyMjc5NzkgLyog
V0hMU0xOdW1UaHJlYWRzRnVuY3Rpb25BdHRyaWJ1dGUuaCAqLywKKwkJCQlDMjFCRjcyRjIxQ0Q4
OUVDMDAyMjc5NzkgLyogV0hMU0xQb2ludGVyVHlwZS5oICovLAorCQkJCUMyMUJGNzJFMjFDRDg5
RUEwMDIyNzk3OSAvKiBXSExTTFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5oICovLAorCQkJCUMy
MUJGNzBCMjFDRDg5Q0MwMDIyNzk3OSAvKiBXSExTTFF1YWxpZmllci5oICovLAorCQkJCUMyMUJG
NzFCMjFDRDg5RDkwMDIyNzk3OSAvKiBXSExTTFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uaCAq
LywKKwkJCQlDMjFCRjcwRDIxQ0Q4OUNEMDAyMjc5NzkgLyogV0hMU0xSZWZlcmVuY2VUeXBlLmgg
Ki8sCisJCQkJMUNCNjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUu
aCAqLywKKwkJCQlDMjEzOEExNTIxRERFQ0U5MDBGNTE2QkEgLyogV0hMU0xSZXNvdXJjZVNlbWFu
dGljLmNwcCAqLywKKwkJCQlDMjFCRjcwODIxQ0Q4OUM5MDAyMjc5NzkgLyogV0hMU0xSZXNvdXJj
ZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MDMyMUNEODlDNTAwMjI3OTc5IC8qIFdITFNMUmV0
dXJuLmggKi8sCisJCQkJQzIxQkY2RjkyMUNEODlCRDAwMjI3OTc5IC8qIFdITFNMU2VtYW50aWMu
aCAqLywKKwkJCQlDMjEzOEExNjIxRERFQ0ZCMDBGNTE2QkEgLyogV0hMU0xTcGVjaWFsaXphdGlv
bkNvbnN0YW50U2VtYW50aWMuY3BwICovLAorCQkJCUMyMUJGNzM2MjFDRDg5RjMwMDIyNzk3OSAv
KiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE3
MjFEREVEMEQwMEY1MTZCQSAvKiBXSExTTFN0YWdlSW5PdXRTZW1hbnRpYy5jcHAgKi8sCisJCQkJ
QzIxQkY3MEUyMUNEODlDRTAwMjI3OTc5IC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmggKi8s
CisJCQkJQzIxQkY3MTIyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNMU3RhdGVtZW50LmggKi8sCisJ
CQkJQzIxQkY3MjcyMUNEODlFNDAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRGVmaW5pdGlvbi5o
ICovLAorCQkJCUMyMUJGNkZFMjFDRDg5QzEwMDIyNzk3OSAvKiBXSExTTFN0cnVjdHVyZUVsZW1l
bnQuaCAqLywKKwkJCQlDMjFCRjcxOTIxQ0Q4OUQ3MDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hDYXNl
LmggKi8sCisJCQkJQzIxQkY3MzEyMUNEODlFRTAwMjI3OTc5IC8qIFdITFNMU3dpdGNoU3RhdGVt
ZW50LmggKi8sCisJCQkJQzIxQkY3MUMyMUNEODlEQTAwMjI3OTc5IC8qIFdITFNMVGVybmFyeUV4
cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjZGMzIxQ0Q4OUFEMDAyMjc5NzkgLyogV0hMU0xUcmFw
LmggKi8sCisJCQkJQzIxQkY3MUQyMUNEODlEQjAwMjI3OTc5IC8qIFdITFNMVHlwZS5oICovLAor
CQkJCUMyODhDNzJEMjFDOTkxREEwMDJERjVDQSAvKiBXSExTTFR5cGVBcmd1bWVudC5jcHAgKi8s
CisJCQkJQzIxQkY3MTEyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNMVHlwZUFyZ3VtZW50LmggKi8s
CisJCQkJQzIxQkY3MjkyMUNEODlFNjAwMjI3OTc5IC8qIFdITFNMVHlwZURlZmluaXRpb24uaCAq
LywKKwkJCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0NUEgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmNw
cCAqLywKKwkJCQlDMjFCRjcxRjIxQ0Q4OURDMDAyMjc5NzkgLyogV0hMU0xUeXBlUmVmZXJlbmNl
LmggKi8sCisJCQkJMUMzMzI3NzIyMUNGMEQyRTAwMERDOUYyIC8qIFdITFNMVW5uYW1lZFR5cGUu
aCAqLywKKwkJCQlDMjBGNEY2NzIxREZGM0E3MDA3MEM0NUEgLyogV0hMU0xVbnNpZ25lZEludGVn
ZXJMaXRlcmFsLmNwcCAqLywKKwkJCQlDMjFCRjcyQjIxQ0Q4OUU4MDAyMjc5NzkgLyogV0hMU0xV
bnNpZ25lZEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCM0IyMURGMDQxRTAwNkU4NDZB
IC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuY3BwICovLAorCQkJCTFDQjY5QjM3
MjFERUQ2NkIwMDZFODQ2QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlLmggKi8s
CisJCQkJQzIxQkY2RkMyMUNEODlCRjAwMjI3OTc5IC8qIFdITFNMVmFsdWUuaCAqLywKKwkJCQlD
MjFCRjcxMDIxQ0Q4OUQwMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uLmggKi8s
CisJCQkJQzIxQkY3MTQyMUNEODlEMzAwMjI3OTc5IC8qIFdITFNMVmFyaWFibGVEZWNsYXJhdGlv
bnNTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcxMzIxQ0Q4OUQyMDAyMjc5NzkgLyogV0hMU0xW
YXJpYWJsZVJlZmVyZW5jZS5oICovLAorCQkJCUMyMUJGNzA0MjFDRDg5QzYwMDIyNzk3OSAvKiBX
SExTTFdoaWxlTG9vcC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBBU1Q7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkxQ0RENDQ2NjBCQTlDODAwMDBGOTAxNDcgLyogQ29uZmln
dXJhdGlvbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MjU1MDgsMTAwICsyNTYwMSw2IEBACiAJCQlwYXRoID0gV0hMU0w7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAgLyogQVNUICovID0g
ewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQkxQzg0MEI5MDIxRUMz
MEY5MDBEMDUwMEQgLyogV0hMU0xBZGRyZXNzU3BhY2UuaCAqLywKLQkJCQlDMjFCRjcyNTIxQ0Q4
OUUyMDAyMjc5NzkgLyogV0hMU0xBcnJheVJlZmVyZW5jZVR5cGUuaCAqLywKLQkJCQlDMjFCRjcw
OTIxQ0Q4OUNBMDAyMjc5NzkgLyogV0hMU0xBcnJheVR5cGUuaCAqLywKLQkJCQlDMjFCRjczMDIx
Q0Q4OUVEMDAyMjc5NzkgLyogV0hMU0xBc3NpZ25tZW50RXhwcmVzc2lvbi5oICovLAotCQkJCUMy
MUJGNzBBMjFDRDg5Q0IwMDIyNzk3OSAvKiBXSExTTEJhc2VGdW5jdGlvbkF0dHJpYnV0ZS5oICov
LAotCQkJCUMyMUJGNkZBMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTEJhc2VTZW1hbnRpYy5oICov
LAotCQkJCUMyMUJGNzFFMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTEJsb2NrLmggKi8sCi0JCQkJ
QzIxQkY2RjYyMUNEODlCNzAwMjI3OTc5IC8qIFdITFNMQm9vbGVhbkxpdGVyYWwuaCAqLywKLQkJ
CQlDMjFCRjcxQTIxQ0Q4OUQ4MDAyMjc5NzkgLyogV0hMU0xCcmVhay5oICovLAotCQkJCUMyMTM4
QTEzMjFEREVDRDMwMEY1MTZCQSAvKiBXSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAgKi8sCi0JCQkJ
QzIxQkY3MjIyMUNEODlERjAwMjI3OTc5IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmggKi8sCi0J
CQkJQzIxQkY3MTYyMUNEODlENTAwMjI3OTc5IC8qIFdITFNMQ2FsbEV4cHJlc3Npb24uaCAqLywK
LQkJCQlDMjFCRjcwNjIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xDb21tYUV4cHJlc3Npb24uaCAq
LywKLQkJCQlDMjFCRjczMzIxQ0Q4OUYwMDAyMjc5NzkgLyogV0hMU0xDb25zdGFudEV4cHJlc3Np
b24uaCAqLywKLQkJCQlDMjFCRjZGNTIxQ0Q4OUI1MDAyMjc5NzkgLyogV0hMU0xDb250aW51ZS5o
ICovLAotCQkJCUMyMUJGNzAxMjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERlcmVmZXJlbmNlRXhw
cmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTERvdEV4
cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hMU0xEb1do
aWxlTG9vcC5oICovLAotCQkJCUMyMUJGNzI4MjFDRDg5RTUwMDIyNzk3OSAvKiBXSExTTEVmZmVj
dGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQuaCAqLywKLQkJCQkxQzg0MEI3RDIxRUJFMEI4MDBEMDUw
MEQgLyogV0hMU0xFbnRyeVBvaW50VHlwZS5oICovLAotCQkJCUMyMUJGNzIwMjFDRDg5REQwMDIy
Nzk3OSAvKiBXSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oICovLAotCQkJCUMyMUJGNzI2MjFD
RDg5RTMwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8sCi0JCQkJQzIxQkY3
MDIyMUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJMaXRlcmFsLmggKi8s
Ci0JCQkJQzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICovLAot
CQkJCUMyMUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8sCi0J
CQkJQzIxQkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8sCi0J
CQkJMUNCNjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5jcHAg
Ki8sCi0JCQkJMUNCNjlCMzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlw
ZS5oICovLAotCQkJCUMyMUJGNzM0MjFDRDg5RjEwMDIyNzk3OSAvKiBXSExTTEZvckxvb3AuaCAq
LywKLQkJCQlDMjFCRjcwNTIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkF0dHJpYnV0
ZS5oICovLAotCQkJCUMyMUJGNkZEMjFDRDg5QzAwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVj
bGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjZGNDIxQ0Q4OUIzMDAyMjc5NzkgLyogV0hMU0xGdW5j
dGlvbkRlZmluaXRpb24uaCAqLywKLQkJCQlDMjFCRjZGRjIxQ0Q4OUMyMDAyMjc5NzkgLyogV0hM
U0xJZlN0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNkY3MjFDRDg5QjkwMDIyNzk3OSAvKiBXSExT
TEluZGV4RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMEY0RjY2MjFERkYyMzYwMDcwQzQ1QSAvKiBX
SExTTEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFCRjZGODIxQ0Q4OUJCMDAyMjc5Nzkg
LyogV0hMU0xJbnRlZ2VyTGl0ZXJhbC5oICovLAotCQkJCTFDQjY5QjM5MjFERjAzRjMwMDZFODQ2
QSAvKiBXSExTTEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzUyMURFRDY0
OTAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY3MzIy
MUNEODlFRjAwMjI3OTc5IC8qIFdITFNMTG9naWNhbEV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFC
RjcxNTIxQ0Q4OUQ0MDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsTm90RXhwcmVzc2lvbi5oICovLAot
CQkJCUMyMUJGNzJEMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VBcnJheVJlZmVyZW5jZUV4
cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcyQzIxQ0Q4OUU5MDAyMjc5NzkgLyogV0hMU0xNYWtl
UG9pbnRlckV4cHJlc3Npb24uaCAqLywKLQkJCQkxQzMzMjc3MTIxQ0YwQkUxMDAwREM5RjIgLyog
V0hMU0xOYW1lZFR5cGUuaCAqLywKLQkJCQlDMjFCRjcyMzIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hM
U0xOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MkEyMUNEODlFNzAw
MjI3OTc5IC8qIFdITFNMTmF0aXZlVHlwZURlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MjQy
MUNEODlFMTAwMjI3OTc5IC8qIFdITFNMTm9kZS5oICovLAotCQkJCUMyMUJGNzA3MjFDRDg5Qzgw
MDIyNzk3OSAvKiBXSExTTE51bGxMaXRlcmFsLmggKi8sCi0JCQkJMUNCNjlCM0EyMURGMDQwMzAw
NkU4NDZBIC8qIFdITFNMTnVsbExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNjIxREVE
NjU3MDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjcyMTIx
Q0Q4OURFMDAyMjc5NzkgLyogV0hMU0xOdW1UaHJlYWRzRnVuY3Rpb25BdHRyaWJ1dGUuaCAqLywK
LQkJCQlDMjFCRjcyRjIxQ0Q4OUVDMDAyMjc5NzkgLyogV0hMU0xQb2ludGVyVHlwZS5oICovLAot
CQkJCUMyMUJGNzJFMjFDRDg5RUEwMDIyNzk3OSAvKiBXSExTTFByb3BlcnR5QWNjZXNzRXhwcmVz
c2lvbi5oICovLAotCQkJCUMyMUJGNzBCMjFDRDg5Q0MwMDIyNzk3OSAvKiBXSExTTFF1YWxpZmll
ci5oICovLAotCQkJCUMyMUJGNzFCMjFDRDg5RDkwMDIyNzk3OSAvKiBXSExTTFJlYWRNb2RpZnlX
cml0ZUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcwRDIxQ0Q4OUNEMDAyMjc5NzkgLyogV0hM
U0xSZWZlcmVuY2VUeXBlLmggKi8sCi0JCQkJMUNCNjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdI
TFNMUmVzb2x2YWJsZVR5cGUuaCAqLywKLQkJCQlDMjEzOEExNTIxRERFQ0U5MDBGNTE2QkEgLyog
V0hMU0xSZXNvdXJjZVNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcwODIxQ0Q4OUM5MDAyMjc5
NzkgLyogV0hMU0xSZXNvdXJjZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MDMyMUNEODlDNTAw
MjI3OTc5IC8qIFdITFNMUmV0dXJuLmggKi8sCi0JCQkJQzIxQkY2RjkyMUNEODlCRDAwMjI3OTc5
IC8qIFdITFNMU2VtYW50aWMuaCAqLywKLQkJCQlDMjEzOEExNjIxRERFQ0ZCMDBGNTE2QkEgLyog
V0hMU0xTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuY3BwICovLAotCQkJCUMyMUJGNzM2
MjFDRDg5RjMwMDIyNzk3OSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5o
ICovLAotCQkJCUMyMTM4QTE3MjFEREVEMEQwMEY1MTZCQSAvKiBXSExTTFN0YWdlSW5PdXRTZW1h
bnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MEUyMUNEODlDRTAwMjI3OTc5IC8qIFdITFNMU3RhZ2VJ
bk91dFNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MTIyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNM
U3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MjcyMUNEODlFNDAwMjI3OTc5IC8qIFdITFNMU3Ry
dWN0dXJlRGVmaW5pdGlvbi5oICovLAotCQkJCUMyMUJGNkZFMjFDRDg5QzEwMDIyNzk3OSAvKiBX
SExTTFN0cnVjdHVyZUVsZW1lbnQuaCAqLywKLQkJCQlDMjFCRjcxOTIxQ0Q4OUQ3MDAyMjc5Nzkg
LyogV0hMU0xTd2l0Y2hDYXNlLmggKi8sCi0JCQkJQzIxQkY3MzEyMUNEODlFRTAwMjI3OTc5IC8q
IFdITFNMU3dpdGNoU3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MUMyMUNEODlEQTAwMjI3OTc5
IC8qIFdITFNMVGVybmFyeUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGMzIxQ0Q4OUFEMDAy
Mjc5NzkgLyogV0hMU0xUcmFwLmggKi8sCi0JCQkJQzIxQkY3MUQyMUNEODlEQjAwMjI3OTc5IC8q
IFdITFNMVHlwZS5oICovLAotCQkJCUMyODhDNzJEMjFDOTkxREEwMDJERjVDQSAvKiBXSExTTFR5
cGVBcmd1bWVudC5jcHAgKi8sCi0JCQkJQzIxQkY3MTEyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNM
VHlwZUFyZ3VtZW50LmggKi8sCi0JCQkJQzIxQkY3MjkyMUNEODlFNjAwMjI3OTc5IC8qIFdITFNM
VHlwZURlZmluaXRpb24uaCAqLywKLQkJCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0NUEgLyogV0hM
U0xUeXBlUmVmZXJlbmNlLmNwcCAqLywKLQkJCQlDMjFCRjcxRjIxQ0Q4OURDMDAyMjc5NzkgLyog
V0hMU0xUeXBlUmVmZXJlbmNlLmggKi8sCi0JCQkJMUMzMzI3NzIyMUNGMEQyRTAwMERDOUYyIC8q
IFdITFNMVW5uYW1lZFR5cGUuaCAqLywKLQkJCQlDMjBGNEY2NzIxREZGM0E3MDA3MEM0NUEgLyog
V0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFCRjcyQjIxQ0Q4OUU4
MDAyMjc5NzkgLyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmggKi8sCi0JCQkJMUNCNjlC
M0IyMURGMDQxRTAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuY3Bw
ICovLAotCQkJCTFDQjY5QjM3MjFERUQ2NkIwMDZFODQ2QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY2RkMyMUNEODlCRjAwMjI3OTc5IC8qIFdITFNM
VmFsdWUuaCAqLywKLQkJCQlDMjFCRjcxMDIxQ0Q4OUQwMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJs
ZURlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MTQyMUNEODlEMzAwMjI3OTc5IC8qIFdITFNM
VmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQuaCAqLywKLQkJCQlDMjFCRjcxMzIxQ0Q4OUQy
MDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZVJlZmVyZW5jZS5oICovLAotCQkJCUMyMUJGNzA0MjFD
RDg5QzYwMDIyNzk3OSAvKiBXSExTTFdoaWxlTG9vcC5oICovLAotCQkJKTsKLQkJCXBhdGggPSBB
U1Q7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlDOTZGNUVCRjFCNTg3MjI2
MDA5MUVBOUQgLyogbWVkaWFzZXNzaW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXAuaAppbmRleCA4MDYxMzgzNjc5NzFkZTZiYWQ1Y2I2NWFmMTlmNzU1MTBj
YzMzMDkyLi4yY2RjMDczNzM2MDExZWFhMDJiMGU2NjM3ZWEyZDQzMTBjNmU3MzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5o
CkBAIC00MSw2ICs0MSw5IEBAIGNsYXNzIEdQVUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBj
cmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKTsKIAorICAgIGNvbnN0IEdQVUJpbmRHcm91
cExheW91dCYgbGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXQuZ2V0KCk7IH0KKyAgICBj
b25zdCBWZWN0b3I8R1BVQmluZEdyb3VwQmluZGluZz4mIGJpbmRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9iaW5kaW5nczsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdQVUJpbmRHcm91cChH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXggZjJhZDg5
ZTcwZGYwZjMxZWQ5M2U2Njg0MjE2NTAxYzY3MWQzN2EzZS4uOWQ2MDlhYzk5Y2E1NDMwNTgyNjMz
YzFjNGZjOTkwZTJkMDVkNjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaApAQCAtMzQsNyArMzQsMTAg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
CisjaWYgVVNFKE1FVEFMKQogT0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOworT0JK
Q19QUk9UT0NPTChNVExCdWZmZXIpOworI2VuZGlmIC8vIFVTRShNRVRBTCkKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00MiwyMiArNDUsMzEgQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVCaW5kR3JvdXBMYXlv
dXQ+IHsKIHB1YmxpYzoKLSAgICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVycyB7Ci0gICAgICAgIFJl
dGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleDsKLSAgICAgICAgUmV0YWluUHRyPE1U
TEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnQ7Ci0gICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVu
dEVuY29kZXI+IGNvbXB1dGU7Ci0gICAgfTsKLQogICAgIHN0YXRpYyBSZWZQdHI8R1BVQmluZEdy
b3VwTGF5b3V0PiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciYmKTsKIAogICAgIHVzaW5nIEJpbmRpbmdzTWFwVHlwZSA9IEhhc2hNYXA8dW5z
aWduZWQgbG9uZyBsb25nLCBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLCBXVEY6OkludEhhc2g8
dW5zaWduZWQgbG9uZyBsb25nPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1
bnNpZ25lZCBsb25nIGxvbmc+PjsKICAgICBjb25zdCBCaW5kaW5nc01hcFR5cGUmIGJpbmRpbmdz
TWFwKCkgY29uc3QgeyByZXR1cm4gbV9iaW5kaW5nc01hcDsgfQorI2lmIFVTRShNRVRBTCkKKyAg
ICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVyQnVmZmVyIHsKKyAgICAgICAgUmV0YWluUHRyPE1UTEFy
Z3VtZW50RW5jb2Rlcj4gZW5jb2RlcjsKKyAgICAgICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gYnVm
ZmVyOworCisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGVuY29kZXIgJiYg
YnVmZmVyOyB9CisgICAgfTsKKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZmZXImIHZlcnRl
eEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4QXJndW1lbnRzOyB9CisgICAgY29u
c3QgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiBmcmFnbWVudEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhZ21lbnRBcmd1bWVudHM7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImIGNvbXB1dGVBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmd1bWVudHM7
IH0KKyNlbmRpZiAvLyBVU0UoTUVUQUwpCiAKIHByaXZhdGU6Ci0gICAgR1BVQmluZEdyb3VwTGF5
b3V0KEJpbmRpbmdzTWFwVHlwZSYmLCBBcmd1bWVudEVuY29kZXJzJiYpOworI2lmIFVTRShNRVRB
TCkKKyAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYsIEFyZ3VtZW50RW5j
b2RlckJ1ZmZlciYmIHZlcnRleCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgZnJhZ21lbnQsIEFy
Z3VtZW50RW5jb2RlckJ1ZmZlciYmIGNvbXB1dGUpOwogCisgICAgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIG1fdmVydGV4QXJndW1lbnRzOworICAgIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciBtX2ZyYWdt
ZW50QXJndW1lbnRzOworICAgIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciBtX2NvbXB1dGVBcmd1bWVu
dHM7CisjZW5kaWYgLy8gVVNFKE1FVEFMKQogICAgIGNvbnN0IEJpbmRpbmdzTWFwVHlwZSBtX2Jp
bmRpbmdzTWFwOwotICAgIEFyZ3VtZW50RW5jb2RlcnMgbV9hcmd1bWVudEVuY29kZXJzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAppbmRleCAxMTMyOWVlODVlNTFiMDJiZDMxYzgx
YjNmZTJhMjEzOTQzMmQ3NGYzLi40MTUyNGE1ODdkYWMxZThhYWY0MDdjOGI5Mjc2NGUyZmZiNmVl
MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVCdWZm
ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IkdQVVBpcGVsaW5lTGF5b3V0LmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAppbmRleCAzNzZkMGZlNjJmYmQz
M2ZiZjdlMmUxNmMwNjRiZGIyMmEwNGZmNDk3Li42ZTZkNTE1MzE4NWI4YmFlZGU0YjM0OWNiMDVh
MjMxN2NiYTE4YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5oCkBAIC0yNyw5ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQog
Ci0jaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVF1ZXVlLmgiCi0K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00Myw2ICs0MSw3IEBAIHVzaW5nIFBsYXRmb3Jt
RGV2aWNlU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMRGV2aWNlPjsKIAogY2xhc3MgR1BVQmluZEdy
b3VwTGF5b3V0OwogY2xhc3MgR1BVQnVmZmVyOworY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNs
YXNzIEdQVVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiBjbGFzcyBH
UFVTaGFkZXJNb2R1bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmluZGV4IDk0
OGMwYzg4NmE5M2E5NTg1ODE1OTBjOWE1MmI1NDRhNGJkNzI2ZTUuLmFjNDk4ZWZlYTY3ZjYwOGZl
NjliODU2NWNhOWI5ZGM2MGU5NWEzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
ci5oCkBAIC0yNywxMiArMjcsMTkgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRl
ICJHUFVCaW5kR3JvdXBCaW5kaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAor
T0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOworI2lmIFVTRShNRVRBTCkKK09CSkNf
UFJPVE9DT0woTVRMQnVmZmVyKTsKIE9CSkNfUFJPVE9DT0woTVRMQ29tbWFuZEVuY29kZXIpOwor
T0JKQ19QUk9UT0NPTChNVExSZXNvdXJjZSk7CisjZW5kaWYgLy8gVVNFKE1FVEFMKQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQVUJpbmRHcm91cDsKIGNsYXNzIEdQVVJlbmRlclBp
cGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyID0gTVRMQ29t
bWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDksMjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBlbmRQYXNz
KCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nLCBjb25zdCBHUFVCaW5k
R3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVs
aW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZh
dGU6CisjaWYgVVNFKE1FVEFMKQorICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihNVExBcmd1bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWdu
ZWQgbG9uZywgY29uc3QgY2hhciogY29uc3QpOworICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJj
ZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBsb25nKSA9IDA7CisKKyAgICAvLyBSZW5kZXIgY29t
bWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihN
VExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykgeyB9CisgICAgdmlydHVh
bCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNp
Z25lZCBsb25nKSB7IH0KKyNlbmRpZiAvLyBVU0UoTUVUQUwpCisKICAgICBib29sIG1faXNFbmNv
ZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1
MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYxMmMxMi4uMWVkYmI3NmUwMzYwNDBjOTgzZDc0MGZk
ZTE4ZDg1YjAwMTU0MTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTU0LDcgKzU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYm
KSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0
b3I8UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7Ci0gICAgdm9p
ZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2ln
bmVkIGxvbmcpOworICAgIHZvaWQgZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNp
Z25lZCBsb25nIGluc3RhbmNlQ291bnQsIHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2ln
bmVkIGxvbmcgZmlyc3RJbnN0YW5jZSk7CiAKIHByaXZhdGU6CiAgICAgR1BVUmVuZGVyUGFzc0Vu
Y29kZXIoUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyJiYpOwpAQCAtNjIsNiArNjIs
MTMgQEAgcHJpdmF0ZToKIAogICAgIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBs
YXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCBmaW5hbDsKIAorI2lmIFVTRShNRVRBTCkKKyAgICAv
LyBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcgorICAgIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVz
b3VyY2UgKiwgdW5zaWduZWQgbG9uZyB1c2FnZSkgZmluYWw7CisgICAgdm9pZCBzZXRWZXJ0ZXhC
dWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGlu
ZGV4KSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNp
Z25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkgZmluYWw7CisjZW5kaWYgLy8g
VVNFKE1FVEFMKQorCiAgICAgUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyIG1fcGxh
dGZvcm1SZW5kZXJQYXNzRW5jb2RlcjsKICAgICBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IG1f
cGlwZWxpbmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmlu
ZGV4IGY4OTMxY2U2NjI5YjE1MGM2YTk4NTNhMWRhOGVjNDU3YjllNzViNDcuLjEzYjhmODA2Njhk
N2I5NjM3ZjdjZWMxMzg4ZWUxZWFjMDY5NDMzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdy
b3VwTGF5b3V0TWV0YWwubW0KQEAgLTYxLDIxICs2MSwzOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRB
cmd1bWVudFRvQXJyYXkoQXJndW1lbnRBcnJheSYgYXJyYXksIFJldGFpblB0cjxNVExBcmd1bWVu
dERlcwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8TVRMQXJndW1lbnRFbmNvZGVyPiBuZXdFbmNvZGVyKGNvbnN0IEdQVURldmljZSYgZGV2aWNl
LCBBcmd1bWVudEFycmF5IGFycmF5KQorc3RhdGljIEdQVUJpbmRHcm91cExheW91dDo6QXJndW1l
bnRFbmNvZGVyQnVmZmVyIHRyeUNyZWF0ZUFyZ3VtZW50RW5jb2RlckFuZEJ1ZmZlcihjb25zdCBH
UFVEZXZpY2UmIGRldmljZSwgQXJndW1lbnRBcnJheSBhcnJheSkKIHsKLSAgICBSZXRhaW5QdHI8
TVRMQXJndW1lbnRFbmNvZGVyPiBlbmNvZGVyOworICAgIEdQVUJpbmRHcm91cExheW91dDo6QXJn
dW1lbnRFbmNvZGVyQnVmZmVyIGFyZ3M7CisKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7Ci0gICAgZW5jb2RlciA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0Fy
Z3VtZW50RW5jb2RlcldpdGhBcmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKKyAgICBhcmdzLmVuY29k
ZXIgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdBcmd1bWVudEVuY29kZXJX
aXRoQXJndW1lbnRzOmFycmF5LmdldCgpXSk7CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKLSAgICBpZiAoIWVuY29kZXIpCisgICAgaWYgKCFhcmdzLmVuY29kZXIpIHsKICAgICAgICAg
TE9HKFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBj
cmVhdGUgTVRMQXJndW1lbnRFbmNvZGVyISIpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0K
KworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBhcmdzLmJ1ZmZlciA9IGFk
b3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0J1ZmZlcldpdGhMZW5ndGg6YXJncy5l
bmNvZGVyLmdldCgpLmVuY29kZWRMZW5ndGggb3B0aW9uczowXSk7CisgICAgW2FyZ3MuZW5jb2Rl
ciBzZXRBcmd1bWVudEJ1ZmZlcjphcmdzLmJ1ZmZlci5nZXQoKSBvZmZzZXQ6MF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBpZiAoIWFyZ3MuYnVmZmVyKSB7CisgICAgICAg
IExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSgpOiBVbmFibGUgdG8g
Y3JlYXRlIE1UTEJ1ZmZlciBmcm9tIE1UTEFyZ3VtZW50RW5jb2RlciEiKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CiAKLSAgICByZXR1cm4gZW5jb2RlcjsKKyAgICByZXR1cm4gYXJnczsK
IH07CiAKIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVUJpbmRHcm91cExheW91dDo6dHJ5
Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yJiYgZGVzY3JpcHRvcikKIHsKLSAgICBBcmd1bWVudEFycmF5IHZlcnRleEFyZ3VtZW50cywg
ZnJhZ21lbnRBcmd1bWVudHMsIGNvbXB1dGVBcmd1bWVudHM7CisgICAgaWYgKCFkZXZpY2UucGxh
dGZvcm1EZXZpY2UoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0
Ojp0cnlDcmVhdGUoKTogSW52YWxpZCBNVExEZXZpY2UhIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIEFyZ3VtZW50QXJyYXkgdmVydGV4QXJnc0FycmF5LCBmcmFnbWVu
dEFyZ3NBcnJheSwgY29tcHV0ZUFyZ3NBcnJheTsKICAgICBCaW5kaW5nc01hcFR5cGUgYmluZGlu
Z3NNYXA7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBkZXNjcmlwdG9yLmJpbmRp
bmdzKSB7CkBAIC05OSwzNCArMTE2LDM2IEBAIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQ
VUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiAgICAg
ICAgIG10bEFyZ3VtZW50LmdldCgpLmluZGV4ID0gYmluZGluZy5iaW5kaW5nOwogCiAgICAgICAg
IGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6VkVSVEVYKQotICAg
ICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KHZlcnRleEFyZ3VtZW50cywgbXRsQXJndW1l
bnQpOworICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KHZlcnRleEFyZ3NBcnJheSwg
bXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVy
U3RhZ2VCaXQ6OkZSQUdNRU5UKQotICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGZy
YWdtZW50QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVu
dFRvQXJyYXkoZnJhZ21lbnRBcmdzQXJyYXksIG10bEFyZ3VtZW50KTsKICAgICAgICAgaWYgKGJp
bmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpDT01QVVRFKQotICAgICAgICAg
ICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGNvbXB1dGVBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsK
KyAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9BcnJheShjb21wdXRlQXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgfQogCi0gICAgQXJndW1lbnRFbmNvZGVycyBlbmNvZGVyczsKKyAgICBB
cmd1bWVudEVuY29kZXJCdWZmZXIgdmVydGV4LCBmcmFnbWVudCwgY29tcHV0ZTsKIAotICAgIGlm
ICh2ZXJ0ZXhBcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCEoZW5jb2RlcnMudmVydGV4ID0gbmV3
RW5jb2RlcihkZXZpY2UsIHZlcnRleEFyZ3VtZW50cykpKQorICAgIGlmICh2ZXJ0ZXhBcmdzQXJy
YXkpIHsKKyAgICAgICAgaWYgKCEodmVydGV4ID0gdHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5k
QnVmZmVyKGRldmljZSwgdmVydGV4QXJnc0FycmF5KSkuaXNWYWxpZCgpKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmIChmcmFnbWVudEFyZ3VtZW50cykgewotICAg
ICAgICBpZiAoIShlbmNvZGVycy5mcmFnbWVudCA9IG5ld0VuY29kZXIoZGV2aWNlLCBmcmFnbWVu
dEFyZ3VtZW50cykpKQorICAgIGlmIChmcmFnbWVudEFyZ3NBcnJheSkgeworICAgICAgICBpZiAo
IShmcmFnbWVudCA9IHRyeUNyZWF0ZUFyZ3VtZW50RW5jb2RlckFuZEJ1ZmZlcihkZXZpY2UsIGZy
YWdtZW50QXJnc0FycmF5KSkuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQotICAgIGlmIChjb21wdXRlQXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICghKGVuY29k
ZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVyKGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQorICAg
IGlmIChjb21wdXRlQXJnc0FycmF5KSB7CisgICAgICAgIGlmICghKGNvbXB1dGUgPSB0cnlDcmVh
dGVBcmd1bWVudEVuY29kZXJBbmRCdWZmZXIoZGV2aWNlLCBjb21wdXRlQXJnc0FycmF5KSkuaXNW
YWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHUFVCaW5kR3JvdXBMYXlvdXQoV1RGTW92ZShiaW5kaW5nc01hcCksIFdU
Rk1vdmUoZW5jb2RlcnMpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVCaW5kR3JvdXBM
YXlvdXQoV1RGTW92ZShiaW5kaW5nc01hcCksIFdURk1vdmUodmVydGV4KSwgV1RGTW92ZShmcmFn
bWVudCksIFdURk1vdmUoY29tcHV0ZSkpKTsKIH0KIAotR1BVQmluZEdyb3VwTGF5b3V0OjpHUFVC
aW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYgYmluZGluZ3NNYXAsIEFyZ3VtZW50RW5j
b2RlcnMmJiBlbmNvZGVycykKLSAgICA6IG1fYmluZGluZ3NNYXAoV1RGTW92ZShiaW5kaW5nc01h
cCkpCi0gICAgLCBtX2FyZ3VtZW50RW5jb2RlcnMoV1RGTW92ZShlbmNvZGVycykpCitHUFVCaW5k
R3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChCaW5kaW5nc01hcFR5cGUmJiBiaW5kaW5n
c01hcCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgdmVydGV4LCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImJiBmcmFnbWVudCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgY29tcHV0ZSkKKyAgICA6IG1f
dmVydGV4QXJndW1lbnRzKFdURk1vdmUodmVydGV4KSkKKyAgICAsIG1fZnJhZ21lbnRBcmd1bWVu
dHMoV1RGTW92ZShmcmFnbWVudCkpCisgICAgLCBtX2NvbXB1dGVBcmd1bWVudHMoV1RGTW92ZShj
b21wdXRlKSkKKyAgICAsIG1fYmluZGluZ3NNYXAoV1RGTW92ZShiaW5kaW5nc01hcCkpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCmluZGV4IDYxMjU5ZDIzNGZi
M2ExMjRmOTkxNzg0YTVkOGZkNjg4NzAzN2UyMDguLjkzZWRjMTFhODBlY2I2YTA2NDE4YjUyYzI2
MTQ2MzgzMmYxZjc5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQpA
QCAtNjksNyArNjksNiBAQCBSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEJ1ZmZl
cjo6Y3JlYXRlKEdQVURldmljZSYgZGV2aWNlKQogR1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFu
ZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciYmIGJ1ZmZlcikKICAgICA6IG1f
cGxhdGZvcm1Db21tYW5kQnVmZmVyKFdURk1vdmUoYnVmZmVyKSkKIHsKLSAgICBVTlVTRURfUEFS
QU0obV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1t
CmluZGV4IDJlNjQzNjM4MTQ2YTFiODljYTdmOGM5Njg2NjUzZDI3MjVkMzQxOGUuLjRmZmUzODc1
MGMzMzE0ZGI5ZDAwZDUyYzQwYTM2MTEwOThiZGI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
ck1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0yOCw3ICsyOCwxMSBAQAog
CiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2ltcG9ydCAiR1BVQmluZEdyb3VwLmgiCisjaW1wb3J0
ICJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw2ICs0NSw4NCBAQCB2b2lkIEdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsK
IH0KIAordm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BV
QmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hh
ciogY29uc3QgZnVuY3Rpb25OYW1lKQoreworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9Q
QVJBTShmdW5jdGlvbk5hbWUpOworI2VuZGlmCisgICAgaWYgKCFhcmd1bWVudEVuY29kZXIpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBObyBhcmd1bWVudCBlbmNvZGVyIGZvciByZXF1ZXN0
ZWQgc3RhZ2UgZm91bmQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxHUFVCdWZmZXJCaW5kaW5nPihyZXNv
dXJjZSkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBidWZm
ZXIgdHlwZSEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byYgYnVmZmVyQmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNl
KTsKKyAgICBhdXRvIGJ1ZmZlciA9IGJ1ZmZlckJpbmRpbmcuYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZl
cigpOworCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZh
bGlkIE1UTEJ1ZmZlciBpbiBHUFVCdWZmZXJCaW5kaW5nISIsIGZ1bmN0aW9uTmFtZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisK
KyAgICBbYXJndW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjpidWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRp
bmcub2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworICAgIHVzZVJlc291cmNlKGJ1ZmZlciwgTVRMUmVz
b3VyY2VVc2FnZVJlYWQpOworCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKwor
dm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGxv
bmcgaW5kZXgsIGNvbnN0IEdQVUJpbmRHcm91cCYgYmluZEdyb3VwKQoreworICAgIGNvbnN0IGNo
YXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwKCkiOworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShmdW5jdGlv
bk5hbWUpOworI2VuZGlmCisKKyAgICBjb25zdCBhdXRvJiB2ZXJ0ZXhBcmdzID0gYmluZEdyb3Vw
LmxheW91dCgpLnZlcnRleEFyZ3VtZW50cygpOworICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50QXJn
cyA9IGJpbmRHcm91cC5sYXlvdXQoKS5mcmFnbWVudEFyZ3VtZW50cygpOworICAgIC8vIEZJWE1F
OiBGaW5pc2ggc3VwcG9ydCBmb3IgY29tcHV0ZS4KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKworICAgIGlmICh2ZXJ0ZXhBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0VmVydGV4
QnVmZmVyKHZlcnRleEFyZ3MuYnVmZmVyLmdldCgpLCAwLCBpbmRleCk7CisgICAgaWYgKGZyYWdt
ZW50QXJncy5idWZmZXIpCisgICAgICAgIHNldEZyYWdtZW50QnVmZmVyKGZyYWdtZW50QXJncy5i
dWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKKworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisKKyAgICAvLyBTZXQgZWFjaCByZXNvdXJjZSBvbiBlYWNoIE1UTEFyZ3VtZW50RW5jb2RlciBp
dCBzaG91bGQgYmUgdmlzaWJsZSBvbi4KKyAgICBjb25zdCBhdXRvJiBiaW5kaW5nc01hcCA9IGJp
bmRHcm91cC5sYXlvdXQoKS5iaW5kaW5nc01hcCgpOworICAgIGZvciAoY29uc3QgYXV0byYgYmlu
ZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBi
aW5kaW5nc01hcC5maW5kKGJpbmRpbmcuYmluZGluZyk7CisgICAgICAgIGlmIChpdGVyYXRvciA9
PSBiaW5kaW5nc01hcC5lbmQoKSkgeworICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBHUFVC
aW5kR3JvdXBCaW5kaW5nICVsdSBub3QgZm91bmQgaW4gR1BVQmluZEdyb3VwTGF5b3V0ISIsIGZ1
bmN0aW9uTmFtZSwgYmluZGluZy5iaW5kaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBhdXRvIGJpbmRHcm91cExheW91dEJpbmRpbmcgPSBpdGVyYXRvci0+dmFs
dWU7CisKKyAgICAgICAgc3dpdGNoIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnR5cGUpIHsKKyAg
ICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbW9yZSByZXNvdXJjZSB0eXBlcy4KKyAgICAgICAgY2Fz
ZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6VW5pZm9ybUJ1ZmZlcjoK
KyAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U3Rv
cmFnZUJ1ZmZlcjogeworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlz
aWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCisgICAgICAgICAgICAgICAgc2V0
UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIGJpbmRp
bmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAg
IGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJp
dDo6RlJBR01FTlQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5i
aW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgdHlw
ZSBub3QgeWV0IGltcGxlbWVudGVkLiIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rl
ck1ldGFsLm1tCmluZGV4IDU1NjUwNjNmNjQwMGI0MDM4NTQzNTNkYWFjNjdlMzUwNTE0MDE0NzMu
LjU5NGEzMzcwYTg0NDlmMWQ3YjlmMmQ3OGZhODJmN2Y5OTI2NzI0N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5j
b2Rlck1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0xMTgsNiArMTE4LDI1IEBAIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhDb3VudCwg
dW5zaWduZWQgbG9uZyBpbnN0YW5jCiAgICAgICAgIGJhc2VJbnN0YW5jZTpmaXJzdEluc3RhbmNl
XTsKIH0KIAorI2lmIFVTRShNRVRBTCkKKwordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dXNl
UmVzb3VyY2UoTVRMUmVzb3VyY2UgKnJlc291cmNlLCB1bnNpZ25lZCBsb25nIHVzYWdlKQorewor
ICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgdXNlUmVzb3VyY2U6cmVzb3VyY2UgdXNh
Z2U6dXNhZ2VdOworfQorCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXIoTVRMQnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGluZGV4KQoreworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0VmVydGV4QnVm
ZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCit2b2lkIEdQVVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5z
aWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZv
cm1SZW5kZXJQYXNzRW5jb2RlciBzZXRGcmFnbWVudEJ1ZmZlcjpidWZmZXIgb2Zmc2V0Om9mZnNl
dCBhdEluZGV4OmluZGV4XTsKK30KKworI2VuZGlmIC8vIFVTRShNRVRBTCkKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODU2MjU0
ZjZiNTAwNTUwNWY4YTFkZDNjM2M5NjFlODc5MDFkN2MxLi4zMWUzNWMwMTI4ZWZmZWIxYzI3ZjM3
MjZlZjdjZGNlNzNlZjU4MWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDEtMTggIEp1
c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICAoV0lQKSBbV2ViR1BV
XSBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwIHByb3RvdHlwZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDU3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI5NjY3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBE
ZWFuIEphY2tzb24uCisKKyAgICAgICAgRHJhdyAzIHRyaWFuZ2xlcyB2aWEgV2ViR1BVIHRvIGNy
ZWF0ZSBhIGdyZWVuIHNxdWFyZSBjYW52YXMsIHdpdGggcmVmZXJlbmNlLgorICAgICAgICBFYWNo
IHZlcnRleCBpcyBzdG9yZWQgaW4gaXRzIG93biBXZWJHUFVCdWZmZXIgYW5kIHRoZXkgYXJlIG1p
eC9tYXRjaGVkIHBlciBiaW5kIGdyb3VwLgorICAgICAgICBUaGlzIHRlc3RzIG11bHRpcGxlIHJl
c291cmNlIGJpbmRpbmdzIGluIG9uZSBiaW5kIGdyb3VwIGFzIHdlbGwgYXMgc2V0dGluZyBtdWx0
aXBsZSAKKyAgICAgICAgYmluZCBncm91cHMgcGVyIGRyYXcgY2FsbCBhbmQgcGVyIGNvbW1hbmQg
ZW5jb2Rlci4gCisKKyAgICAgICAgKiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1l
eHBlY3RlZC5odG1sOiBBZGRlZC4gUmVmZXJlbmNlIGdlbmVyYXRlZCB1c2luZyAyRCBjYW52YXMu
CisgICAgICAgICogd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbDogQWRkZWQu
IAorICAgICAgICAgICAgICAgIDEpIERyYXcgdG9wIHR3byB0cmlhbmdsZXMgdXNpbmcgdHdvIGJp
bmQgZ3JvdXBzIGluIG9uZSBkcmF3IGNhbGwuCisgICAgICAgICAgICAgICAgMikgU3dhcCBmaXJz
dCBiaW5kIGdyb3VwIGFuZCBpc3N1ZSBzZWNvbmQgZHJhdyBjYWxsIHRvIGRyYXcgbWlkZGxlIHRy
aWFuZ2xlLgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOgorICAgICAg
ICAoY3JlYXRlQmFzaWNQaXBlbGluZSk6IE5vdyBoYW5kbGVzIG5ldyBwcmltaXRpdmUgdG9wb2xv
Z2llcy4KKwogMjAxOS0wMS0xNiAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgYW5kIFdQRSB0ZXN0IGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xl
cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NmYxM2U4MTIwMzk3YTVjYzYzMzZjOWUyYTQ4
NWU3NzhiYTk5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVy
LXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkhUTUwgUmVmZXJlbmNl
IEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRl
bHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+
Cis8c2NyaXB0PgorY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFz
Iik7Citjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnRleHQu
ZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDApJzsKK2NvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2Ut
dHJpYW5nbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFu
Z2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MTE1YmE2Y2JhMmM3ODUwYTNiZTdiOTYyOWRkODM4MWM0
YmM2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291
cmNlLXRyaWFuZ2xlcy5odG1sCkBAIC0wLDAgKzEsMTc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHUFUgSGVsbG8gVHJpYW5nbGVzPC90aXRs
ZT4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2ViR1BVIGNvcnJlY3RseSByZW5kZXJz
IGEgZ3JlZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJidWZmZXItcmVzb3Vy
Y2UtdHJpYW5nbGVzLWV4cGVjdGVkLmh0bWwiPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJl
bG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9
IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgc2hhZGVyQ29kZSA9IGAKKyNpbmNsdWRlIDxtZXRhbF9z
dGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0YWw7CisKK3N0cnVjdCBWZXJ0ZXggewor
ICAgIGZsb2F0NCBwb3NpdGlvbiBbW3Bvc2l0aW9uXV07Cit9OworCitzdHJ1Y3QgVmVydGV4QXJn
dW1lbnRzIHsKKyAgICBkZXZpY2UgVmVydGV4KiB2MDsKKyAgICBkZXZpY2UgVmVydGV4KiB2MTsK
KyAgICBkZXZpY2UgVmVydGV4KiB2MjsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4X21haW4o
CisgICAgY29uc3QgZGV2aWNlIFZlcnRleEFyZ3VtZW50cyYgYXJnczAgW1tidWZmZXIoMCldXSwK
KyAgICBjb25zdCBkZXZpY2UgVmVydGV4QXJndW1lbnRzJiBhcmdzMSBbW2J1ZmZlcigxKV1dLAor
ICAgIHVpbnQgdmlkIFtbdmVydGV4X2lkXV0pCit7CisgICAgc3dpdGNoICh2aWQpCisgICAgewor
ICAgICAgICBjYXNlIDA6IHJldHVybiBhcmdzMC52MFswXTsKKyAgICAgICAgY2FzZSAxOiByZXR1
cm4gYXJnczAudjFbMF07CisgICAgICAgIGNhc2UgMjogcmV0dXJuIGFyZ3MwLnYyWzBdOworICAg
ICAgICBjYXNlIDM6IHJldHVybiBhcmdzMS52MFswXTsKKyAgICAgICAgY2FzZSA0OiByZXR1cm4g
YXJnczEudjFbMF07CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBhcmdzMS52MlswXTsKKyAgICB9
Cit9CisKK3N0cnVjdCBGcmFnbWVudEFyZ3VtZW50cyB7CisgICAgZGV2aWNlIGZsb2F0NCogY29s
b3I7Cit9OworCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihjb25zdCBkZXZpY2UgRnJh
Z21lbnRBcmd1bWVudHMmIGFyZ3MgW1tidWZmZXIoMCldXSkKK3sKKyAgICByZXR1cm4gYXJncy5j
b2xvclswXTsKK30KK2AKKworY29uc3QgYmluZGluZ051bXMgPSB7CisgICAgVUw6IDAsCisgICAg
VU06IDEsCisgICAgVVI6IDIsCisgICAgTEw6IDMsCisgICAgTFI6IDQsCisgICAgRzogNQorfTsK
KworZnVuY3Rpb24gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kTnVtLCBz
dGFnZSA9IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCkgeworICAgIHJldHVybiB7CisgICAg
ICAgIGJpbmRpbmc6IGJpbmROdW0sCisgICAgICAgIHZpc2liaWxpdHk6IHN0YWdlLAorICAgICAg
ICB0eXBlOiAidW5pZm9ybUJ1ZmZlciIKKyAgICB9OworfQorCitjb25zdCBidWZmZXJTaXplID0g
NCAqIDQ7CisKKy8vIEZJWE1FOiBLZWVwIHVwIHRvIGRhdGUgd2l0aCBidWZmZXIgdXBsb2FkIGRl
Y2lzaW9ucy4KK2Z1bmN0aW9uIGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIGEsIGIpIHsKKyAg
ICBjb25zdCBidWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogYnVmZmVyU2l6ZSwg
dXNhZ2U6IFdlYkdQVUJ1ZmZlclVzYWdlLlVOSUZPUk0gfSk7CisgICAgCisgICAgY29uc3QgYXJy
YXlCdWZmZXIgPSBidWZmZXIubWFwcGluZzsKKyAgICBjb25zdCBmbG9hdEFycmF5ID0gbmV3IEZs
b2F0MzJBcnJheShhcnJheUJ1ZmZlcik7CisKKyAgICBmbG9hdEFycmF5WzBdID0gYTsKKyAgICBm
bG9hdEFycmF5WzFdID0gYjsKKyAgICBmbG9hdEFycmF5WzJdID0gMDsKKyAgICBmbG9hdEFycmF5
WzNdID0gMTsKKworICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJ1ZmZl
ckJpbmRpbmcoYnVmZmVyKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgYnVmZmVyOiBidWZmZXIs
CisgICAgICAgIG9mZnNldDogMCwKKyAgICAgICAgc2l6ZTogYnVmZmVyU2l6ZQorICAgIH07Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0
QmFzaWNEZXZpY2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJjYW52YXMiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZh
cywgZGV2aWNlKTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVycy4K
KyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29k
ZTogc2hhZGVyQ29kZSB9KTsKKworICAgIC8vIENyZWF0ZSB2ZXJ0ZXggZGF0YSBXZWJHUFVCdWZm
ZXJzLgorICAgIGNvbnN0IHVwcGVyTGVmdCA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIC0x
LCAxKTsKKyAgICBjb25zdCB1cHBlck1pZGRsZSA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2Us
IDAsIDEpOworICAgIGNvbnN0IHVwcGVyUmlnaHQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNl
LCAxLCAxKTsKKyAgICBjb25zdCBsb3dlckxlZnQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNl
LCAtMSwgLTEpOworICAgIGNvbnN0IGxvd2VyUmlnaHQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2
aWNlLCAxLCAtMSk7CisKKyAgICAvLyBDb2xvciBkYXRhIGJ1ZmZlci4KKyAgICBjb25zdCBncmVl
biA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIDAsIDEpOworCisgICAgLy8gQ3JlYXRlIGJ1
ZmZlciBXZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5ncy4KKyAgICBjb25zdCBsYXlvdXRVTCA9
IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuVUwpOworICAg
IGNvbnN0IGxheW91dFVNID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5k
aW5nTnVtcy5VTSk7CisgICAgY29uc3QgbGF5b3V0VVIgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmlu
ZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLlVSKTsKKyAgICBjb25zdCBsYXlvdXRMTCA9IGNyZWF0
ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTEwpOworICAgIGNvbnN0
IGxheW91dExSID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVt
cy5MUik7CisgICAgY29uc3QgbGF5b3V0RyA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBM
YXlvdXQoYmluZGluZ051bXMuRywgV2ViR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQpOworCisg
ICAgLy8gV2ViR1BVQmluZEdyb3VwTGF5b3V0cworICAgIGNvbnN0IGxlZnRUcmlhbmdsZUJHTGF5
b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5b3V0VUws
IGxheW91dFVNLCBsYXlvdXRMTCwgbGF5b3V0R10gfSk7CisgICAgY29uc3QgcmlnaHRUcmlhbmds
ZUJHTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5
b3V0VVIsIGxheW91dFVNLCBsYXlvdXRMUl0gfSk7CisgICAgY29uc3QgbWlkZGxlVHJpYW5nbGVC
R0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91
dFVNLCBsYXlvdXRMTCwgbGF5b3V0TFIsIGxheW91dEddIH0pOworCisgICAgLy8gV2ViR1BVUGlw
ZWxpbmVMYXlvdXQgYW5kIFdlYkdQVVJlbmRlclBpcGVsaW5lCisgICAgY29uc3QgcGlwZWxpbmVM
YXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQoeyBiaW5kR3JvdXBMYXlvdXRzOiBb
bGVmdFRyaWFuZ2xlQkdMYXlvdXQsIG1pZGRsZVRyaWFuZ2xlQkdMYXlvdXQsIHJpZ2h0VHJpYW5n
bGVCR0xheW91dF0gfSk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5l
KHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgbnVsbCwgInRyaWFuZ2xlTGlz
dCIpOworCisgICAgLy8gV2ViR1BVQnVmZmVyQmluZGluZ3MKKyAgICBjb25zdCBiaW5kaW5nVUwg
PSBjcmVhdGVCdWZmZXJCaW5kaW5nKHVwcGVyTGVmdCk7CisgICAgY29uc3QgYmluZGluZ1VNID0g
Y3JlYXRlQnVmZmVyQmluZGluZyh1cHBlck1pZGRsZSk7CisgICAgY29uc3QgYmluZGluZ1VSID0g
Y3JlYXRlQnVmZmVyQmluZGluZyh1cHBlclJpZ2h0KTsKKyAgICBjb25zdCBiaW5kaW5nTEwgPSBj
cmVhdGVCdWZmZXJCaW5kaW5nKGxvd2VyTGVmdCk7CisgICAgY29uc3QgYmluZGluZ0xSID0gY3Jl
YXRlQnVmZmVyQmluZGluZyhsb3dlclJpZ2h0KTsKKyAgICBjb25zdCBiaW5kaW5nRyA9IGNyZWF0
ZUJ1ZmZlckJpbmRpbmcoZ3JlZW4pOworICAgIAorICAgIC8vIFdlYkdQVUJpbmRHcm91cEJpbmRp
bmdzCisgICAgY29uc3QgYmdCaW5kaW5nVUwgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLlVMLCBy
ZXNvdXJjZTogYmluZGluZ1VMIH07CisgICAgY29uc3QgYmdCaW5kaW5nVU0gPSB7IGJpbmRpbmc6
IGJpbmRpbmdOdW1zLlVNLCByZXNvdXJjZTogYmluZGluZ1VNIH07CisgICAgY29uc3QgYmdCaW5k
aW5nVVIgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLlVSLCByZXNvdXJjZTogYmluZGluZ1VSIH07
CisgICAgY29uc3QgYmdCaW5kaW5nTEwgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLkxMLCByZXNv
dXJjZTogYmluZGluZ0xMIH07CisgICAgY29uc3QgYmdCaW5kaW5nTFIgPSB7IGJpbmRpbmc6IGJp
bmRpbmdOdW1zLkxSLCByZXNvdXJjZTogYmluZGluZ0xSIH07CisgICAgY29uc3QgYmdCaW5kaW5n
RyA9IHsgYmluZGluZzogYmluZGluZ051bXMuRywgcmVzb3VyY2U6IGJpbmRpbmdHIH07CisKKyAg
ICAvLyBXZWJHUFVCaW5kR3JvdXBzCisgICAgY29uc3QgbGVmdFRyaWFuZ2xlQkcgPSBkZXZpY2Uu
Y3JlYXRlQmluZEdyb3VwKHsgCisgICAgICAgIGxheW91dDogbGVmdFRyaWFuZ2xlQkdMYXlvdXQs
IAorICAgICAgICBiaW5kaW5nczogW2JnQmluZGluZ1VMLCBiZ0JpbmRpbmdVTSwgYmdCaW5kaW5n
TEwsIGJnQmluZGluZ0ddIAorICAgIH0pOworICAgIGNvbnN0IHJpZ2h0VHJpYW5nbGVCRyA9IGRl
dmljZS5jcmVhdGVCaW5kR3JvdXAoeworICAgICAgICBsYXlvdXQ6IHJpZ2h0VHJpYW5nbGVCR0xh
eW91dCwKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRpbmdVUiwgYmdCaW5kaW5nVU0sIGJnQmlu
ZGluZ0xSXQorICAgIH0pOworICAgIGNvbnN0IG1pZGRsZVRyaWFuZ2xlQkcgPSBkZXZpY2UuY3Jl
YXRlQmluZEdyb3VwKHsKKyAgICAgICAgbGF5b3V0OiBtaWRkbGVUcmlhbmdsZUJHTGF5b3V0LAor
ICAgICAgICBiaW5kaW5nczogW2JnQmluZGluZ1VNLCBiZ0JpbmRpbmdMTCwgYmdCaW5kaW5nTFIs
IGJnQmluZGluZ0ddCisgICAgfSk7CisKKyAgICBjb25zdCBjb21tYW5kQnVmZmVyID0gZGV2aWNl
LmNyZWF0ZUNvbW1hbmRCdWZmZXIoKTsKKyAgICBjb25zdCBwYXNzRW5jb2RlciA9IGJlZ2luQmFz
aWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpOworICAgIHBhc3NFbmNvZGVyLnNl
dFBpcGVsaW5lKHBpcGVsaW5lKTsKKworICAgIC8vIERyYXcgdXBwZXIgdHJpYW5nbGVzLgorICAg
IHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBsZWZ0VHJpYW5nbGVCRyk7CisgICAgcGFzc0Vu
Y29kZXIuc2V0QmluZEdyb3VwKDEsIHJpZ2h0VHJpYW5nbGVCRyk7CisgICAgcGFzc0VuY29kZXIu
ZHJhdyg2LCAxLCAwLCAwKTsKKyAgICAvLyBEcmF3IGxvd2VyIHRyaWFuZ2xlLgorICAgIHBhc3NF
bmNvZGVyLnNldEJpbmRHcm91cCgwLCBtaWRkbGVUcmlhbmdsZUJHKTsKKyAgICBwYXNzRW5jb2Rl
ci5kcmF3KDMsIDEsIDAsIDApOworCisgICAgY29uc3QgZW5kQ29tbWFuZEJ1ZmZlciA9IHBhc3NF
bmNvZGVyLmVuZFBhc3MoKTsKKyAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOwor
ICAgIHF1ZXVlLnN1Ym1pdChbZW5kQ29tbWFuZEJ1ZmZlcl0pOworICAgIGNvbnRleHQucHJlc2Vu
dCgpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyBi
L0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGM3NTMwMmJl
ODkyOWRmZGVmMGMyMDI5ZTUzNmEwY2Q4ZGE2ZGUwYjkuLjc2N2Y5NDY1MjFhNGFkMjIyMTNmOTJm
MGQ0ZmNiNTcyMGM4MjYzMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJn
cHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rp
b25zLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUJhc2ljQ29udGV4dChjYW52
YXMsIGRldmljZSkgewogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1mdW5jdGlvbiBjcmVhdGVC
YXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRT
dGF0ZURlc2NyaXB0b3IpIHsKK2Z1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9k
dWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRvciwgcHJpbWl0
aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGVTdHJpcCIpIHsKICAgICBjb25zdCB2ZXJ0ZXhTdGFnZURl
c2NyaXB0b3IgPSB7CiAgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAgICBlbnRy
eVBvaW50OiAidmVydGV4X21haW4iIApAQCAtMjYsMTMgKzI2LDE1IEBAIGZ1bmN0aW9uIGNyZWF0
ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1
dFN0YXRlRGVzCiAgICAgY29uc3QgcGlwZWxpbmVEZXNjcmlwdG9yID0gewogICAgICAgICB2ZXJ0
ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBmcmFnbWVudFN0YWdlOiBm
cmFnbWVudFN0YWdlRGVzY3JpcHRvciwKLSAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlh
bmdsZVN0cmlwIiwKLSAgICAgICAgaW5wdXRTdGF0ZTogaW5wdXRTdGF0ZURlc2NyaXB0b3IKKyAg
ICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6IHByaW1pdGl2ZVRvcG9sb2d5CiAgICAgfTsKIAogICAg
IGlmIChwaXBlbGluZUxheW91dCkKICAgICAgICAgcGlwZWxpbmVEZXNjcmlwdG9yLmxheW91dCA9
IHBpcGVsaW5lTGF5b3V0OwogCisgICAgaWYgKGlucHV0U3RhdGVEZXNjcmlwdG9yKQorICAgICAg
ICBwaXBlbGluZURlc2NyaXB0b3IuaW5wdXRTdGF0ZSA9IGlucHV0U3RhdGVEZXNjcmlwdG9yOwor
CiAgICAgcmV0dXJuIGRldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZShwaXBlbGluZURlc2NyaXB0
b3IpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359541</attachid>
            <date>2019-01-18 14:31:21 -0800</date>
            <delta_ts>2019-01-18 15:09:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193457-20190118143120.patch</filename>
            <type>text/plain</type>
            <size>51481</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRkOWQ1MGZlNjM2Mjg4
MTk1ZjQ1OGViNTE4NDg1MTllYzY1YTk5My4uMmVhZjU5ODBhMzJlYzNhNDUwNGQ0ZGNhMWRmZjFj
ZTMyNGM0ODNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTE4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgKFdJUCkgW1dlYkdQVV0g
V2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCBwcm90b3R5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyOTY2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVh
biBKYWNrc29uLgorCisgICAgICAgIEVuYWJsZSBXZWJHUFUgZGV2ZWxvcGVycyB0byBhc3NpZ24g
YnVmZmVyIGJpbmQgZ3JvdXBzIGFuZCBhY2Nlc3MgdGhlbSB2aWEgcmVuZGVyIHBpcGVsaW5lLiAK
KworICAgICAgICBUZXN0OiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVUJpbmRHcm91cDo6YmluZEdyb3VwIGNvbnN0KTogQWRkZWQgZ2V0dGVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNw
cDogCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwIGNvbnN0KTogQWRkZWQuIERlbGVnYXRlcyBjYWxsIHRvIEdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyLmg6IEVuYWJsZSBzZXRCaW5kR3JvdXAuCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsOiBkaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oOiAKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRH
cm91cDo6bGF5b3V0IGNvbnN0KTogQWRkZWQgZ2V0dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BV
QmluZEdyb3VwOjpiaW5kaW5ncyBjb25zdCk6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaDogQWRkZWQgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIHN0cnVjdCB0byByZXRhaW4gcHRyIHRvIGJvdGggTVRMQXJndW1lbnRFbmNvZGVycyBhbmQg
dGhlaXIgYXJndW1lbnQgTVRMQnVmZmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91
cExheW91dDo6QXJndW1lbnRFbmNvZGVyQnVmZmVyOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0Ojp2ZXJ0ZXhBcmd1bWVudHMgY29uc3QpOiBB
ZGRlZC4gR2V0dGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpmcmFn
bWVudEFyZ3VtZW50cyBjb25zdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdy
b3VwTGF5b3V0Ojpjb21wdXRlQXJndW1lbnRzIGNvbnN0KTogZGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IFJlZmFjdG9yZWQgdW5uZWNlc3Nhcnkg
aGVhZGVyIGluY2x1ZGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5oOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIpOiBBZGRlZC4gRGVsZWdhdGVzIHRvIE1UTENvbW1hbmRF
bmNvZGVyIGNhbGwuCisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6c2V0RnJhZ21lbnRCdWZmZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaDogCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5kQnVmZmVyKTogUmVwbGFjZSBuZXdFbmNvZGVy
KCkuIE5vdyBjcmVhdGUgYW4gQXJndW1lbnRFbmNvZGVyQnVmZmVyIG9iamVjdCBmcm9tIGFuIGFy
cmF5IG9mIE1UTEFyZ3VtZW50RGVzY3JpcHRvcnMsIGlmIGFibGUuCisgICAgICAgIChXZWJDb3Jl
OjpHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlZmFjdG9yIHRvIHN1cHBvcnQgQXJn
dW1lbnRFbmNvZGVyQnVmZmVycywgYW5kIGFsbG9jYXRlIE1UTEJ1ZmZlcnMgZm9yIGFyZ3VtZW50
IGVuY29kZXJzLgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpHUFVCaW5k
R3JvdXBMYXlvdXQpOiBTdXBwb3J0IEFyZ3VtZW50RW5jb2RlckJ1ZmZlcnMuCisgICAgICAgIChX
ZWJDb3JlOjpuZXdFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFuZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VB
c0J1ZmZlck9uRW5jb2Rlcik6IFNldCBhIGJ1ZmZlciByZXNvdXJjZSBvbiB0aGUgTVRMQXJndW1l
bnRFbmNvZGVyLCBhbmQgY2FsbCB1c2VSZXNvdXJjZSBvbiB0aGUgY29tbWFuZCBlbmNvZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldEJpbmRHcm91
cCk6IFBhcnNlcyB0aGUgYmluZCBncm91cCB0byBhc3NpZ24gZWFjaCByZXNvdXJjZSBvbiBpdHMg
bWF0Y2hpbmcgTVRMQXJndW1lbnRFbmNvZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tOiAKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjp1c2VSZXNvdXJjZSk6IFJlc29sdmVzIGNhbGwgZnJv
bSBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB0byBjYWxsIG9uIE1UTFJlbmRlckNvbW1hbmRF
bmNvZGVyLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRl
eEJ1ZmZlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6
OnNldEZyYWdtZW50QnVmZmVyKTogZGl0dG8uCisKIDIwMTktMDEtMTYgIEp1c3RpbiBGYW4gIDxq
dXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgdmVydGV4LWJ1
ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sIHRvIGFjdHVhbGx5IHVzZSB2ZXJ0ZXggYnVmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCmluZGV4
IDBhMDQ3MDk1NTNiZDRlOWFjYWYyZjhhMWExNDU4ZTE3MTMxYmNiODMuLjUwNGRhOTUwZjVjZTQw
OTc5MzBlYmJhZGExMzJkNmI5YjZkNjlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIFdlYkdQ
VUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJpbmRHcm91cD4gewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmUHRyPEdQVUJpbmRH
cm91cD4mJik7CiAKKyAgICBjb25zdCBHUFVCaW5kR3JvdXAqIGJpbmRHcm91cCgpIGNvbnN0IHsg
cmV0dXJuIG1fYmluZEdyb3VwLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vi
R1BVQmluZEdyb3VwKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5jcHAKaW5kZXggYzFiYzhlNjAxZDMzOTAxOWYyNjIzYzlmNThiZjkwMGZkZDM4OWJi
Mi4uZjZmNWVhNmQzMzQ2NTc3MTljYWI1MWI3OGZkM2UwMDFmODJhYzMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKICNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIldl
YkdQVUJpbmRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDE2IEBAIFJlZjxXZWJHUFVDb21tYW5kQnVm
ZmVyPiBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6ZW5kUGFzcygpCiAgICAgcmV0dXJu
IG1fY29tbWFuZEJ1ZmZlci5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgV2ViR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBXZWJH
UFVCaW5kR3JvdXAmIGJpbmRHcm91cCkgY29uc3QKK3sKKyAgICBpZiAoIWJpbmRHcm91cC5iaW5k
R3JvdXAoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXI6OnNldEJpbmRHcm91cCgpOiBJbnZhbGlkIFdlYkdQVUJpbmRHcm91cCEiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogQW55IHZhbGlkYXRpb24gKGUuZy4gaW5k
ZXggZHVwbGljYXRlcywgbm90IGluIHBpcGVsaW5lIGxheW91dCkuCisgICAgcGFzc0VuY29kZXIo
KS5zZXRCaW5kR3JvdXAoaW5kZXgsICpiaW5kR3JvdXAuYmluZEdyb3VwKCkpOworfQorCiB2b2lk
IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUpCiB7CiAgICAgcGFzc0VuY29kZXIoKS5zZXRQaXBlbGlu
ZShwaXBlbGluZS0+cmVuZGVyUGlwZWxpbmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApp
bmRleCBlZjEwYzFkYWZmZWQyMTY0ZjQxMGVkNGI2NmNkNDFhMDZhMjI0MmIyLi5hY2ZkMWZiZmU0
NmY5NDljZjllYzBlZTNlNzI3ZTE5OTM5YWYxMjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJX
ZWJHUFVDb21tYW5kQnVmZmVyLmgiCi0KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOwor
Y2xhc3MgV2ViR1BVQmluZEdyb3VwOwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNs
YXNzIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI+IHsKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0Owog
CiAgICAgUmVmPFdlYkdQVUNvbW1hbmRCdWZmZXI+IGVuZFBhc3MoKTsKKyAgICB2b2lkIHNldEJp
bmRHcm91cCh1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJHUFVCaW5kR3JvdXAmKSBjb25zdDsKICAg
ICB2b2lkIHNldFBpcGVsaW5lKFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4mJik7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmlkbAppbmRleCAzNTM2MWQ5NjlkMzc0YWZk
OGViYTE1ZWUyNDI2MDlhYmY4ZTBhMjZiLi4zYWNkNjM5NDU2ODNjNGVlZDY4MmZlNTI4YTMxZDJh
OGM0N2RkNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC0yNCwxOCArMjQs
MTQgQEAKICAqLwogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKIAordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwog
WwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwK
ICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV2ViR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIgewogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgZW5kUGFzcygpOwotCi0gICAg
Ly8gRklYTUU6IE9ubHkgc3VwcG9ydCByZW5kZXIgcGlwZWxpbmVzIGZvciBwcm90b3R5cGUuCi0g
ICAgdm9pZCBzZXRQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSk7Ci0vKiBO
b3QgWWV0IEltcGxlbWVudGVkCi0gICAgLy8gQWxsb3dlZCBpbiBib3RoIGNvbXB1dGUgYW5kIHJl
bmRlciBwYXNzZXMKLSAgICAvLyBUT0RPOiBzZXRQdXNoQ29uc3RhbnRzKCkgPwotICAgIHZvaWQg
c2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91cCk7Ci0qLwor
ICAgIHZvaWQgc2V0QmluZEdyb3VwKHUzMiBpbmRleCwgV2ViR1BVQmluZEdyb3VwIGJpbmRHcm91
cC8qLCBvcHRpb25hbCBzZXF1ZW5jZTx1MzI+IGR5bmFtaWNPZmZzZXRzKi8pOworICAgIHZvaWQg
c2V0UGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmUgcGlwZWxpbmUpOyAvLyBGSVhNRTogU3Vw
cG9ydCBXZWJHUFVDb21wdXRlUGlwZWxpbmVzLgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDg3YTdl
YWYxOWYwOTkwNzFkYjdkM2FmMGE4ZDE0YTAwZWU5MmE1OGEuLjJiOWE3MjMwMmRjMWVlZTc3MWJj
ZTlkMWMwNTZlOTRlNzkxOTIxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBGSVhNRTogTGFzdCBhcmd1bWVudCBzaG91bGQgYmUgVmVjdG9yPHVu
c2lnbmVkIGxvbmc+LiBXaHkgaXMgdGhlIGdlbmVyYXRlZCBjb2RlIGluY29ycmVjdGx5IGFzc3Vt
aW5nIHRoZSBJREwgd2FudHMgYSBzZXF1ZW5jZTx1bnNpZ25lZCBpbnQ+PwogICAgIHZvaWQgc2V0
VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+
JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVu
c2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOworICAgIHZvaWQgZHJh
dyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25lZCBsb25nIGluc3RhbmNlQ291bnQs
IHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2lnbmVkIGxvbmcgZmlyc3RJbnN0YW5jZSk7
CiAKIHByaXZhdGU6CiAgICAgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIoUmVmPFdlYkdQVUNvbW1h
bmRCdWZmZXI+JiYsIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzQ5OGZhOGEy
YmZlZmQ1Yzc5MDMxMTViZjIzNzA4OTY2ZjkyNDExNS4uMDZhOGM2MjA5Mjk3Y2ZlNTI1YTU0NzAy
NWI3Yzc3ZmU3MGFlMTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQyNywxNyArNjQyNywxNiBAQAogCQkxQzg0MEI5QTIx
RUM0MDA5MDBEMDUwMEQgLyogV0hMU0xHYXRoZXJFbnRyeVBvaW50SXRlbXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xHYXRoZXJFbnRyeVBvaW50SXRlbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM4NDBCOUIyMUVDNDAwOTAwRDA1MDBEIC8qIFdITFNMQ2hlY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzkwNERGOTBCQTlEMkM4MDA4MUU5RDAgLyogVmVyc2lvbi54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBWZXJzaW9uLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNDIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5j
dGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3Rh
Z2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMEMyRTUyMUVF
RDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzlBRTVDQTIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdoWm9tYmllRmluZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNCMjFFRDlERjUwMDY5RDVGMiAvKiBXSExTTEhp
Z2hab21iaWVGaW5kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkRFMjFFRUI1RjQwMEExMTg2MCAv
KiBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xSZWN1cnNpb25D
aGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkUwMjFFRUI1RjUw
MEExMTg2MCAvKiBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0hMU0xSZWN1cnNpb25DaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNBMEMyRTQyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQTBDMkU1MjFFRUQxMkEwMEExMTg2MCAvKiBXSExT
TEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFn
ZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUEyMUVFRDZG
NTAwQTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMTGl0ZXJhbFR5cGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QTBDMkVDMjFFRUQ2RjYwMEExMTg2MCAvKiBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFDOUFFNUNBMjFFRDlERjUwMDY5RDVGMiAvKiBXSExTTEhpZ2ha
b21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUM5QUU1Q0IyMUVEOURGNTAwNjlE
NUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEhpZ2ha
b21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjQyMUVF
REFEMDAwQTExODYwIC8qIFdITFNMTG9vcENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0hMU0xMb29wQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBD
MkY1MjFFRURBRDEwMEExMTg2MCAvKiBXSExTTExvb3BDaGVja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdITFNMTG9vcENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMEMy
RjYyMUVFREFEMjAwQTExODYwIC8qIEFTVCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgcGF0aCA9IEFTVDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEV2ZW50TG9vcE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8q
IEV2ZW50TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExvb3Au
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDMyLDYg
KzE3MDMxLDEwMCBAQAogCQkJdGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9Owor
CQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAgLyogQVNUICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzg0MEI5MDIxRUMzMEY5MDBEMDUwMEQgLyogV0hM
U0xBZGRyZXNzU3BhY2UuaCAqLywKKwkJCQlDMjFCRjcyNTIxQ0Q4OUUyMDAyMjc5NzkgLyogV0hM
U0xBcnJheVJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQlDMjFCRjcwOTIxQ0Q4OUNBMDAyMjc5Nzkg
LyogV0hMU0xBcnJheVR5cGUuaCAqLywKKwkJCQlDMjFCRjczMDIxQ0Q4OUVEMDAyMjc5NzkgLyog
V0hMU0xBc3NpZ25tZW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBBMjFDRDg5Q0IwMDIy
Nzk3OSAvKiBXSExTTEJhc2VGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNkZBMjFD
RDg5QkUwMDIyNzk3OSAvKiBXSExTTEJhc2VTZW1hbnRpYy5oICovLAorCQkJCUMyMUJGNzFFMjFD
RDg5REMwMDIyNzk3OSAvKiBXSExTTEJsb2NrLmggKi8sCisJCQkJQzIxQkY2RjYyMUNEODlCNzAw
MjI3OTc5IC8qIFdITFNMQm9vbGVhbkxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcxQTIxQ0Q4OUQ4
MDAyMjc5NzkgLyogV0hMU0xCcmVhay5oICovLAorCQkJCUMyMTM4QTEzMjFEREVDRDMwMEY1MTZC
QSAvKiBXSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAgKi8sCisJCQkJQzIxQkY3MjIyMUNEODlERjAw
MjI3OTc5IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MTYyMUNEODlE
NTAwMjI3OTc5IC8qIFdITFNMQ2FsbEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjcwNjIxQ0Q4
OUM3MDAyMjc5NzkgLyogV0hMU0xDb21tYUV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjczMzIx
Q0Q4OUYwMDAyMjc5NzkgLyogV0hMU0xDb25zdGFudEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFC
RjZGNTIxQ0Q4OUI1MDAyMjc5NzkgLyogV0hMU0xDb250aW51ZS5oICovLAorCQkJCUMyMUJGNzAx
MjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERlcmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJ
CUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTERvdEV4cHJlc3Npb24uaCAqLywKKwkJ
CQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hMU0xEb1doaWxlTG9vcC5oICovLAorCQkJ
CUMyMUJGNzI4MjFDRDg5RTUwMDIyNzk3OSAvKiBXSExTTEVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0
ZW1lbnQuaCAqLywKKwkJCQkxQzg0MEI3RDIxRUJFMEI4MDBEMDUwMEQgLyogV0hMU0xFbnRyeVBv
aW50VHlwZS5oICovLAorCQkJCUMyMUJGNzIwMjFDRDg5REQwMDIyNzk3OSAvKiBXSExTTEVudW1l
cmF0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNzI2MjFDRDg5RTMwMDIyNzk3OSAvKiBX
SExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8sCisJCQkJQzIxQkY3MDIyMUNEODlDNDAwMjI3OTc5
IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJMaXRlcmFsLmggKi8sCisJCQkJQzIxQkY3MEMyMUNE
ODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzAwMjFDRDg5
QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8sCisJCQkJQzIxQkY3MzUyMUNEODlG
MjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCMzgyMURGMDNF
MTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzQy
MURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5oICovLAorCQkJCUMyMUJG
NzM0MjFDRDg5RjEwMDIyNzk3OSAvKiBXSExTTEZvckxvb3AuaCAqLywKKwkJCQlDMjFCRjcwNTIx
Q0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJG
NkZEMjFDRDg5QzAwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJ
CQlDMjFCRjZGNDIxQ0Q4OUIzMDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkRlZmluaXRpb24uaCAq
LywKKwkJCQlDMjFCRjZGRjIxQ0Q4OUMyMDAyMjc5NzkgLyogV0hMU0xJZlN0YXRlbWVudC5oICov
LAorCQkJCUMyMUJGNkY3MjFDRDg5QjkwMDIyNzk3OSAvKiBXSExTTEluZGV4RXhwcmVzc2lvbi5o
ICovLAorCQkJCUMyMEY0RjY2MjFERkYyMzYwMDcwQzQ1QSAvKiBXSExTTEludGVnZXJMaXRlcmFs
LmNwcCAqLywKKwkJCQlDMjFCRjZGODIxQ0Q4OUJCMDAyMjc5NzkgLyogV0hMU0xJbnRlZ2VyTGl0
ZXJhbC5oICovLAorCQkJCTFDQjY5QjM5MjFERjAzRjMwMDZFODQ2QSAvKiBXSExTTEludGVnZXJM
aXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzUyMURFRDY0OTAwNkU4NDZBIC8qIFdITFNM
SW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzIyMUNEODlFRjAwMjI3OTc5IC8q
IFdITFNMTG9naWNhbEV4cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjcxNTIxQ0Q4OUQ0MDAyMjc5
NzkgLyogV0hMU0xMb2dpY2FsTm90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJEMjFDRDg5
RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VBcnJheVJlZmVyZW5jZUV4cHJlc3Npb24uaCAqLywKKwkJ
CQlDMjFCRjcyQzIxQ0Q4OUU5MDAyMjc5NzkgLyogV0hMU0xNYWtlUG9pbnRlckV4cHJlc3Npb24u
aCAqLywKKwkJCQkxQzMzMjc3MTIxQ0YwQkUxMDAwREM5RjIgLyogV0hMU0xOYW1lZFR5cGUuaCAq
LywKKwkJCQlDMjFCRjcyMzIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOYXRpdmVGdW5jdGlvbkRl
Y2xhcmF0aW9uLmggKi8sCisJCQkJQzIxQkY3MkEyMUNEODlFNzAwMjI3OTc5IC8qIFdITFNMTmF0
aXZlVHlwZURlY2xhcmF0aW9uLmggKi8sCisJCQkJQzIxQkY3MjQyMUNEODlFMTAwMjI3OTc5IC8q
IFdITFNMTm9kZS5oICovLAorCQkJCUMyMUJGNzA3MjFDRDg5QzgwMDIyNzk3OSAvKiBXSExTTE51
bGxMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCM0EyMURGMDQwMzAwNkU4NDZBIC8qIFdITFNMTnVs
bExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNjIxREVENjU3MDA2RTg0NkEgLyogV0hM
U0xOdWxsTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjcyMTIxQ0Q4OURFMDAyMjc5NzkgLyog
V0hMU0xOdW1UaHJlYWRzRnVuY3Rpb25BdHRyaWJ1dGUuaCAqLywKKwkJCQlDMjFCRjcyRjIxQ0Q4
OUVDMDAyMjc5NzkgLyogV0hMU0xQb2ludGVyVHlwZS5oICovLAorCQkJCUMyMUJGNzJFMjFDRDg5
RUEwMDIyNzk3OSAvKiBXSExTTFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5oICovLAorCQkJCUMy
MUJGNzBCMjFDRDg5Q0MwMDIyNzk3OSAvKiBXSExTTFF1YWxpZmllci5oICovLAorCQkJCUMyMUJG
NzFCMjFDRDg5RDkwMDIyNzk3OSAvKiBXSExTTFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uaCAq
LywKKwkJCQlDMjFCRjcwRDIxQ0Q4OUNEMDAyMjc5NzkgLyogV0hMU0xSZWZlcmVuY2VUeXBlLmgg
Ki8sCisJCQkJMUNCNjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUu
aCAqLywKKwkJCQlDMjEzOEExNTIxRERFQ0U5MDBGNTE2QkEgLyogV0hMU0xSZXNvdXJjZVNlbWFu
dGljLmNwcCAqLywKKwkJCQlDMjFCRjcwODIxQ0Q4OUM5MDAyMjc5NzkgLyogV0hMU0xSZXNvdXJj
ZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MDMyMUNEODlDNTAwMjI3OTc5IC8qIFdITFNMUmV0
dXJuLmggKi8sCisJCQkJQzIxQkY2RjkyMUNEODlCRDAwMjI3OTc5IC8qIFdITFNMU2VtYW50aWMu
aCAqLywKKwkJCQlDMjEzOEExNjIxRERFQ0ZCMDBGNTE2QkEgLyogV0hMU0xTcGVjaWFsaXphdGlv
bkNvbnN0YW50U2VtYW50aWMuY3BwICovLAorCQkJCUMyMUJGNzM2MjFDRDg5RjMwMDIyNzk3OSAv
KiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE3
MjFEREVEMEQwMEY1MTZCQSAvKiBXSExTTFN0YWdlSW5PdXRTZW1hbnRpYy5jcHAgKi8sCisJCQkJ
QzIxQkY3MEUyMUNEODlDRTAwMjI3OTc5IC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmggKi8s
CisJCQkJQzIxQkY3MTIyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNMU3RhdGVtZW50LmggKi8sCisJ
CQkJQzIxQkY3MjcyMUNEODlFNDAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRGVmaW5pdGlvbi5o
ICovLAorCQkJCUMyMUJGNkZFMjFDRDg5QzEwMDIyNzk3OSAvKiBXSExTTFN0cnVjdHVyZUVsZW1l
bnQuaCAqLywKKwkJCQlDMjFCRjcxOTIxQ0Q4OUQ3MDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hDYXNl
LmggKi8sCisJCQkJQzIxQkY3MzEyMUNEODlFRTAwMjI3OTc5IC8qIFdITFNMU3dpdGNoU3RhdGVt
ZW50LmggKi8sCisJCQkJQzIxQkY3MUMyMUNEODlEQTAwMjI3OTc5IC8qIFdITFNMVGVybmFyeUV4
cHJlc3Npb24uaCAqLywKKwkJCQlDMjFCRjZGMzIxQ0Q4OUFEMDAyMjc5NzkgLyogV0hMU0xUcmFw
LmggKi8sCisJCQkJQzIxQkY3MUQyMUNEODlEQjAwMjI3OTc5IC8qIFdITFNMVHlwZS5oICovLAor
CQkJCUMyODhDNzJEMjFDOTkxREEwMDJERjVDQSAvKiBXSExTTFR5cGVBcmd1bWVudC5jcHAgKi8s
CisJCQkJQzIxQkY3MTEyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNMVHlwZUFyZ3VtZW50LmggKi8s
CisJCQkJQzIxQkY3MjkyMUNEODlFNjAwMjI3OTc5IC8qIFdITFNMVHlwZURlZmluaXRpb24uaCAq
LywKKwkJCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0NUEgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmNw
cCAqLywKKwkJCQlDMjFCRjcxRjIxQ0Q4OURDMDAyMjc5NzkgLyogV0hMU0xUeXBlUmVmZXJlbmNl
LmggKi8sCisJCQkJMUMzMzI3NzIyMUNGMEQyRTAwMERDOUYyIC8qIFdITFNMVW5uYW1lZFR5cGUu
aCAqLywKKwkJCQlDMjBGNEY2NzIxREZGM0E3MDA3MEM0NUEgLyogV0hMU0xVbnNpZ25lZEludGVn
ZXJMaXRlcmFsLmNwcCAqLywKKwkJCQlDMjFCRjcyQjIxQ0Q4OUU4MDAyMjc5NzkgLyogV0hMU0xV
bnNpZ25lZEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlCM0IyMURGMDQxRTAwNkU4NDZB
IC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuY3BwICovLAorCQkJCTFDQjY5QjM3
MjFERUQ2NkIwMDZFODQ2QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlLmggKi8s
CisJCQkJQzIxQkY2RkMyMUNEODlCRjAwMjI3OTc5IC8qIFdITFNMVmFsdWUuaCAqLywKKwkJCQlD
MjFCRjcxMDIxQ0Q4OUQwMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uLmggKi8s
CisJCQkJQzIxQkY3MTQyMUNEODlEMzAwMjI3OTc5IC8qIFdITFNMVmFyaWFibGVEZWNsYXJhdGlv
bnNTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcxMzIxQ0Q4OUQyMDAyMjc5NzkgLyogV0hMU0xW
YXJpYWJsZVJlZmVyZW5jZS5oICovLAorCQkJCUMyMUJGNzA0MjFDRDg5QzYwMDIyNzk3OSAvKiBX
SExTTFdoaWxlTG9vcC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBBU1Q7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkxQ0RENDQ2NjBCQTlDODAwMDBGOTAxNDcgLyogQ29uZmln
dXJhdGlvbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MjU1MDgsMTAwICsyNTYwMSw2IEBACiAJCQlwYXRoID0gV0hMU0w7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAgLyogQVNUICovID0g
ewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQkxQzg0MEI5MDIxRUMz
MEY5MDBEMDUwMEQgLyogV0hMU0xBZGRyZXNzU3BhY2UuaCAqLywKLQkJCQlDMjFCRjcyNTIxQ0Q4
OUUyMDAyMjc5NzkgLyogV0hMU0xBcnJheVJlZmVyZW5jZVR5cGUuaCAqLywKLQkJCQlDMjFCRjcw
OTIxQ0Q4OUNBMDAyMjc5NzkgLyogV0hMU0xBcnJheVR5cGUuaCAqLywKLQkJCQlDMjFCRjczMDIx
Q0Q4OUVEMDAyMjc5NzkgLyogV0hMU0xBc3NpZ25tZW50RXhwcmVzc2lvbi5oICovLAotCQkJCUMy
MUJGNzBBMjFDRDg5Q0IwMDIyNzk3OSAvKiBXSExTTEJhc2VGdW5jdGlvbkF0dHJpYnV0ZS5oICov
LAotCQkJCUMyMUJGNkZBMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTEJhc2VTZW1hbnRpYy5oICov
LAotCQkJCUMyMUJGNzFFMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTEJsb2NrLmggKi8sCi0JCQkJ
QzIxQkY2RjYyMUNEODlCNzAwMjI3OTc5IC8qIFdITFNMQm9vbGVhbkxpdGVyYWwuaCAqLywKLQkJ
CQlDMjFCRjcxQTIxQ0Q4OUQ4MDAyMjc5NzkgLyogV0hMU0xCcmVhay5oICovLAotCQkJCUMyMTM4
QTEzMjFEREVDRDMwMEY1MTZCQSAvKiBXSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAgKi8sCi0JCQkJ
QzIxQkY3MjIyMUNEODlERjAwMjI3OTc5IC8qIFdITFNMQnVpbHRJblNlbWFudGljLmggKi8sCi0J
CQkJQzIxQkY3MTYyMUNEODlENTAwMjI3OTc5IC8qIFdITFNMQ2FsbEV4cHJlc3Npb24uaCAqLywK
LQkJCQlDMjFCRjcwNjIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xDb21tYUV4cHJlc3Npb24uaCAq
LywKLQkJCQlDMjFCRjczMzIxQ0Q4OUYwMDAyMjc5NzkgLyogV0hMU0xDb25zdGFudEV4cHJlc3Np
b24uaCAqLywKLQkJCQlDMjFCRjZGNTIxQ0Q4OUI1MDAyMjc5NzkgLyogV0hMU0xDb250aW51ZS5o
ICovLAotCQkJCUMyMUJGNzAxMjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERlcmVmZXJlbmNlRXhw
cmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTERvdEV4
cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hMU0xEb1do
aWxlTG9vcC5oICovLAotCQkJCUMyMUJGNzI4MjFDRDg5RTUwMDIyNzk3OSAvKiBXSExTTEVmZmVj
dGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQuaCAqLywKLQkJCQkxQzg0MEI3RDIxRUJFMEI4MDBEMDUw
MEQgLyogV0hMU0xFbnRyeVBvaW50VHlwZS5oICovLAotCQkJCUMyMUJGNzIwMjFDRDg5REQwMDIy
Nzk3OSAvKiBXSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oICovLAotCQkJCUMyMUJGNzI2MjFD
RDg5RTMwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8sCi0JCQkJQzIxQkY3
MDIyMUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJMaXRlcmFsLmggKi8s
Ci0JCQkJQzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICovLAot
CQkJCUMyMUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8sCi0J
CQkJQzIxQkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8sCi0J
CQkJMUNCNjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5jcHAg
Ki8sCi0JCQkJMUNCNjlCMzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlw
ZS5oICovLAotCQkJCUMyMUJGNzM0MjFDRDg5RjEwMDIyNzk3OSAvKiBXSExTTEZvckxvb3AuaCAq
LywKLQkJCQlDMjFCRjcwNTIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xGdW5jdGlvbkF0dHJpYnV0
ZS5oICovLAotCQkJCUMyMUJGNkZEMjFDRDg5QzAwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVj
bGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjZGNDIxQ0Q4OUIzMDAyMjc5NzkgLyogV0hMU0xGdW5j
dGlvbkRlZmluaXRpb24uaCAqLywKLQkJCQlDMjFCRjZGRjIxQ0Q4OUMyMDAyMjc5NzkgLyogV0hM
U0xJZlN0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNkY3MjFDRDg5QjkwMDIyNzk3OSAvKiBXSExT
TEluZGV4RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMEY0RjY2MjFERkYyMzYwMDcwQzQ1QSAvKiBX
SExTTEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFCRjZGODIxQ0Q4OUJCMDAyMjc5Nzkg
LyogV0hMU0xJbnRlZ2VyTGl0ZXJhbC5oICovLAotCQkJCTFDQjY5QjM5MjFERjAzRjMwMDZFODQ2
QSAvKiBXSExTTEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzUyMURFRDY0
OTAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY3MzIy
MUNEODlFRjAwMjI3OTc5IC8qIFdITFNMTG9naWNhbEV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFC
RjcxNTIxQ0Q4OUQ0MDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsTm90RXhwcmVzc2lvbi5oICovLAot
CQkJCUMyMUJGNzJEMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VBcnJheVJlZmVyZW5jZUV4
cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcyQzIxQ0Q4OUU5MDAyMjc5NzkgLyogV0hMU0xNYWtl
UG9pbnRlckV4cHJlc3Npb24uaCAqLywKLQkJCQkxQzMzMjc3MTIxQ0YwQkUxMDAwREM5RjIgLyog
V0hMU0xOYW1lZFR5cGUuaCAqLywKLQkJCQlDMjFCRjcyMzIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hM
U0xOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MkEyMUNEODlFNzAw
MjI3OTc5IC8qIFdITFNMTmF0aXZlVHlwZURlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MjQy
MUNEODlFMTAwMjI3OTc5IC8qIFdITFNMTm9kZS5oICovLAotCQkJCUMyMUJGNzA3MjFDRDg5Qzgw
MDIyNzk3OSAvKiBXSExTTE51bGxMaXRlcmFsLmggKi8sCi0JCQkJMUNCNjlCM0EyMURGMDQwMzAw
NkU4NDZBIC8qIFdITFNMTnVsbExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNjIxREVE
NjU3MDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjcyMTIx
Q0Q4OURFMDAyMjc5NzkgLyogV0hMU0xOdW1UaHJlYWRzRnVuY3Rpb25BdHRyaWJ1dGUuaCAqLywK
LQkJCQlDMjFCRjcyRjIxQ0Q4OUVDMDAyMjc5NzkgLyogV0hMU0xQb2ludGVyVHlwZS5oICovLAot
CQkJCUMyMUJGNzJFMjFDRDg5RUEwMDIyNzk3OSAvKiBXSExTTFByb3BlcnR5QWNjZXNzRXhwcmVz
c2lvbi5oICovLAotCQkJCUMyMUJGNzBCMjFDRDg5Q0MwMDIyNzk3OSAvKiBXSExTTFF1YWxpZmll
ci5oICovLAotCQkJCUMyMUJGNzFCMjFDRDg5RDkwMDIyNzk3OSAvKiBXSExTTFJlYWRNb2RpZnlX
cml0ZUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcwRDIxQ0Q4OUNEMDAyMjc5NzkgLyogV0hM
U0xSZWZlcmVuY2VUeXBlLmggKi8sCi0JCQkJMUNCNjlCMzIyMURFRDQwQjAwNkU4NDZBIC8qIFdI
TFNMUmVzb2x2YWJsZVR5cGUuaCAqLywKLQkJCQlDMjEzOEExNTIxRERFQ0U5MDBGNTE2QkEgLyog
V0hMU0xSZXNvdXJjZVNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcwODIxQ0Q4OUM5MDAyMjc5
NzkgLyogV0hMU0xSZXNvdXJjZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MDMyMUNEODlDNTAw
MjI3OTc5IC8qIFdITFNMUmV0dXJuLmggKi8sCi0JCQkJQzIxQkY2RjkyMUNEODlCRDAwMjI3OTc5
IC8qIFdITFNMU2VtYW50aWMuaCAqLywKLQkJCQlDMjEzOEExNjIxRERFQ0ZCMDBGNTE2QkEgLyog
V0hMU0xTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuY3BwICovLAotCQkJCUMyMUJGNzM2
MjFDRDg5RjMwMDIyNzk3OSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5o
ICovLAotCQkJCUMyMTM4QTE3MjFEREVEMEQwMEY1MTZCQSAvKiBXSExTTFN0YWdlSW5PdXRTZW1h
bnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MEUyMUNEODlDRTAwMjI3OTc5IC8qIFdITFNMU3RhZ2VJ
bk91dFNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MTIyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNM
U3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MjcyMUNEODlFNDAwMjI3OTc5IC8qIFdITFNMU3Ry
dWN0dXJlRGVmaW5pdGlvbi5oICovLAotCQkJCUMyMUJGNkZFMjFDRDg5QzEwMDIyNzk3OSAvKiBX
SExTTFN0cnVjdHVyZUVsZW1lbnQuaCAqLywKLQkJCQlDMjFCRjcxOTIxQ0Q4OUQ3MDAyMjc5Nzkg
LyogV0hMU0xTd2l0Y2hDYXNlLmggKi8sCi0JCQkJQzIxQkY3MzEyMUNEODlFRTAwMjI3OTc5IC8q
IFdITFNMU3dpdGNoU3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MUMyMUNEODlEQTAwMjI3OTc5
IC8qIFdITFNMVGVybmFyeUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGMzIxQ0Q4OUFEMDAy
Mjc5NzkgLyogV0hMU0xUcmFwLmggKi8sCi0JCQkJQzIxQkY3MUQyMUNEODlEQjAwMjI3OTc5IC8q
IFdITFNMVHlwZS5oICovLAotCQkJCUMyODhDNzJEMjFDOTkxREEwMDJERjVDQSAvKiBXSExTTFR5
cGVBcmd1bWVudC5jcHAgKi8sCi0JCQkJQzIxQkY3MTEyMUNEODlEMTAwMjI3OTc5IC8qIFdITFNM
VHlwZUFyZ3VtZW50LmggKi8sCi0JCQkJQzIxQkY3MjkyMUNEODlFNjAwMjI3OTc5IC8qIFdITFNM
VHlwZURlZmluaXRpb24uaCAqLywKLQkJCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0NUEgLyogV0hM
U0xUeXBlUmVmZXJlbmNlLmNwcCAqLywKLQkJCQlDMjFCRjcxRjIxQ0Q4OURDMDAyMjc5NzkgLyog
V0hMU0xUeXBlUmVmZXJlbmNlLmggKi8sCi0JCQkJMUMzMzI3NzIyMUNGMEQyRTAwMERDOUYyIC8q
IFdITFNMVW5uYW1lZFR5cGUuaCAqLywKLQkJCQlDMjBGNEY2NzIxREZGM0E3MDA3MEM0NUEgLyog
V0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFCRjcyQjIxQ0Q4OUU4
MDAyMjc5NzkgLyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmggKi8sCi0JCQkJMUNCNjlC
M0IyMURGMDQxRTAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuY3Bw
ICovLAotCQkJCTFDQjY5QjM3MjFERUQ2NkIwMDZFODQ2QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY2RkMyMUNEODlCRjAwMjI3OTc5IC8qIFdITFNM
VmFsdWUuaCAqLywKLQkJCQlDMjFCRjcxMDIxQ0Q4OUQwMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJs
ZURlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MTQyMUNEODlEMzAwMjI3OTc5IC8qIFdITFNM
VmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQuaCAqLywKLQkJCQlDMjFCRjcxMzIxQ0Q4OUQy
MDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZVJlZmVyZW5jZS5oICovLAotCQkJCUMyMUJGNzA0MjFD
RDg5QzYwMDIyNzk3OSAvKiBXSExTTFdoaWxlTG9vcC5oICovLAotCQkJKTsKLQkJCXBhdGggPSBB
U1Q7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlDOTZGNUVCRjFCNTg3MjI2
MDA5MUVBOUQgLyogbWVkaWFzZXNzaW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXAuaAppbmRleCA4MDYxMzgzNjc5NzFkZTZiYWQ1Y2I2NWFmMTlmNzU1MTBj
YzMzMDkyLi4yY2RjMDczNzM2MDExZWFhMDJiMGU2NjM3ZWEyZDQzMTBjNmU3MzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5o
CkBAIC00MSw2ICs0MSw5IEBAIGNsYXNzIEdQVUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUJpbmRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBj
cmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKTsKIAorICAgIGNvbnN0IEdQVUJpbmRHcm91
cExheW91dCYgbGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXQuZ2V0KCk7IH0KKyAgICBj
b25zdCBWZWN0b3I8R1BVQmluZEdyb3VwQmluZGluZz4mIGJpbmRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9iaW5kaW5nczsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdQVUJpbmRHcm91cChH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXggZjJhZDg5
ZTcwZGYwZjMxZWQ5M2U2Njg0MjE2NTAxYzY3MWQzN2EzZS4uOWQ2MDlhYzk5Y2E1NDMwNTgyNjMz
YzFjNGZjOTkwZTJkMDVkNjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuaApAQCAtMzQsNyArMzQsMTAg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
CisjaWYgVVNFKE1FVEFMKQogT0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOworT0JK
Q19QUk9UT0NPTChNVExCdWZmZXIpOworI2VuZGlmIC8vIFVTRShNRVRBTCkKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00MiwyMiArNDUsMzEgQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBjbGFz
cyBHUFVCaW5kR3JvdXBMYXlvdXQgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVCaW5kR3JvdXBMYXlv
dXQ+IHsKIHB1YmxpYzoKLSAgICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVycyB7Ci0gICAgICAgIFJl
dGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleDsKLSAgICAgICAgUmV0YWluUHRyPE1U
TEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnQ7Ci0gICAgICAgIFJldGFpblB0cjxNVExBcmd1bWVu
dEVuY29kZXI+IGNvbXB1dGU7Ci0gICAgfTsKLQogICAgIHN0YXRpYyBSZWZQdHI8R1BVQmluZEdy
b3VwTGF5b3V0PiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciYmKTsKIAogICAgIHVzaW5nIEJpbmRpbmdzTWFwVHlwZSA9IEhhc2hNYXA8dW5z
aWduZWQgbG9uZyBsb25nLCBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLCBXVEY6OkludEhhc2g8
dW5zaWduZWQgbG9uZyBsb25nPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1
bnNpZ25lZCBsb25nIGxvbmc+PjsKICAgICBjb25zdCBCaW5kaW5nc01hcFR5cGUmIGJpbmRpbmdz
TWFwKCkgY29uc3QgeyByZXR1cm4gbV9iaW5kaW5nc01hcDsgfQorI2lmIFVTRShNRVRBTCkKKyAg
ICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVyQnVmZmVyIHsKKyAgICAgICAgUmV0YWluUHRyPE1UTEFy
Z3VtZW50RW5jb2Rlcj4gZW5jb2RlcjsKKyAgICAgICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gYnVm
ZmVyOworCisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGVuY29kZXIgJiYg
YnVmZmVyOyB9CisgICAgfTsKKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZmZXImIHZlcnRl
eEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4QXJndW1lbnRzOyB9CisgICAgY29u
c3QgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiBmcmFnbWVudEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhZ21lbnRBcmd1bWVudHM7IH0KKyAgICBjb25zdCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImIGNvbXB1dGVBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmd1bWVudHM7
IH0KKyNlbmRpZiAvLyBVU0UoTUVUQUwpCiAKIHByaXZhdGU6Ci0gICAgR1BVQmluZEdyb3VwTGF5
b3V0KEJpbmRpbmdzTWFwVHlwZSYmLCBBcmd1bWVudEVuY29kZXJzJiYpOworI2lmIFVTRShNRVRB
TCkKKyAgICBHUFVCaW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYsIEFyZ3VtZW50RW5j
b2RlckJ1ZmZlciYmIHZlcnRleCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgZnJhZ21lbnQsIEFy
Z3VtZW50RW5jb2RlckJ1ZmZlciYmIGNvbXB1dGUpOwogCisgICAgQXJndW1lbnRFbmNvZGVyQnVm
ZmVyIG1fdmVydGV4QXJndW1lbnRzOworICAgIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciBtX2ZyYWdt
ZW50QXJndW1lbnRzOworICAgIEFyZ3VtZW50RW5jb2RlckJ1ZmZlciBtX2NvbXB1dGVBcmd1bWVu
dHM7CisjZW5kaWYgLy8gVVNFKE1FVEFMKQogICAgIGNvbnN0IEJpbmRpbmdzTWFwVHlwZSBtX2Jp
bmRpbmdzTWFwOwotICAgIEFyZ3VtZW50RW5jb2RlcnMgbV9hcmd1bWVudEVuY29kZXJzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAppbmRleCAxMTMyOWVlODVlNTFiMDJiZDMxYzgx
YjNmZTJhMjEzOTQzMmQ3NGYzLi40MTUyNGE1ODdkYWMxZThhYWY0MDdjOGI5Mjc2NGUyZmZiNmVl
MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
RGV2aWNlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVCdWZm
ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IkdQVVBpcGVsaW5lTGF5b3V0LmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAppbmRleCAzNzZkMGZlNjJmYmQz
M2ZiZjdlMmUxNmMwNjRiZGIyMmEwNGZmNDk3Li42ZTZkNTE1MzE4NWI4YmFlZGU0YjM0OWNiMDVh
MjMxN2NiYTE4YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5oCkBAIC0yNyw5ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQog
Ci0jaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVF1ZXVlLmgiCi0K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00Myw2ICs0MSw3IEBAIHVzaW5nIFBsYXRmb3Jt
RGV2aWNlU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMRGV2aWNlPjsKIAogY2xhc3MgR1BVQmluZEdy
b3VwTGF5b3V0OwogY2xhc3MgR1BVQnVmZmVyOworY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNs
YXNzIEdQVVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiBjbGFzcyBH
UFVTaGFkZXJNb2R1bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmluZGV4IDk0
OGMwYzg4NmE5M2E5NTg1ODE1OTBjOWE1MmI1NDRhNGJkNzI2ZTUuLmFjNDk4ZWZlYTY3ZjYwOGZl
NjliODU2NWNhOWI5ZGM2MGU5NWEzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
ci5oCkBAIC0yNywxMiArMjcsMTkgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRl
ICJHUFVCaW5kR3JvdXBCaW5kaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAor
T0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOworI2lmIFVTRShNRVRBTCkKK09CSkNf
UFJPVE9DT0woTVRMQnVmZmVyKTsKIE9CSkNfUFJPVE9DT0woTVRMQ29tbWFuZEVuY29kZXIpOwor
T0JKQ19QUk9UT0NPTChNVExSZXNvdXJjZSk7CisjZW5kaWYgLy8gVVNFKE1FVEFMKQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQVUJpbmRHcm91cDsKIGNsYXNzIEdQVVJlbmRlclBp
cGVsaW5lOwogCiB1c2luZyBQbGF0Zm9ybVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyID0gTVRMQ29t
bWFuZEVuY29kZXI7CkBAIC00MiwxMyArNDksMjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBlbmRQYXNz
KCk7Ci0KKyAgICB2b2lkIHNldEJpbmRHcm91cCh1bnNpZ25lZCBsb25nLCBjb25zdCBHUFVCaW5k
R3JvdXAmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVs
aW5lPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIFBsYXRmb3JtUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXIqIHBsYXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCA9IDA7CiAKIHByaXZh
dGU6CisjaWYgVVNFKE1FVEFMKQorICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihNVExBcmd1bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWdu
ZWQgbG9uZywgY29uc3QgY2hhciogY29uc3QpOworICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJj
ZShNVExSZXNvdXJjZSAqLCB1bnNpZ25lZCBsb25nKSA9IDA7CisKKyAgICAvLyBSZW5kZXIgY29t
bWFuZCBlbmNvZGVyIG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHNldFZlcnRleEJ1ZmZlcihN
VExCdWZmZXIgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykgeyB9CisgICAgdmlydHVh
bCB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNpZ25lZCBsb25nLCB1bnNp
Z25lZCBsb25nKSB7IH0KKyNlbmRpZiAvLyBVU0UoTUVUQUwpCisKICAgICBib29sIG1faXNFbmNv
ZGluZyB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggNTAxYWEzZDE1
MjE0NzI5MTFmMmUwMDhmZGFkMjZkODEyMjYxMmMxMi4uMWVkYmI3NmUwMzYwNDBjOTgzZDc0MGZk
ZTE4ZDg1YjAwMTU0MTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTU0LDcgKzU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYm
KSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0
b3I8UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7Ci0gICAgdm9p
ZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2ln
bmVkIGxvbmcpOworICAgIHZvaWQgZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNp
Z25lZCBsb25nIGluc3RhbmNlQ291bnQsIHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2ln
bmVkIGxvbmcgZmlyc3RJbnN0YW5jZSk7CiAKIHByaXZhdGU6CiAgICAgR1BVUmVuZGVyUGFzc0Vu
Y29kZXIoUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyJiYpOwpAQCAtNjIsNiArNjIs
MTMgQEAgcHJpdmF0ZToKIAogICAgIFBsYXRmb3JtUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIqIHBs
YXRmb3JtUGFzc0VuY29kZXIoKSBjb25zdCBmaW5hbDsKIAorI2lmIFVTRShNRVRBTCkKKyAgICAv
LyBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcgorICAgIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVz
b3VyY2UgKiwgdW5zaWduZWQgbG9uZyB1c2FnZSkgZmluYWw7CisgICAgdm9pZCBzZXRWZXJ0ZXhC
dWZmZXIoTVRMQnVmZmVyICosIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGlu
ZGV4KSBmaW5hbDsKKyAgICB2b2lkIHNldEZyYWdtZW50QnVmZmVyKE1UTEJ1ZmZlciAqLCB1bnNp
Z25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCkgZmluYWw7CisjZW5kaWYgLy8g
VVNFKE1FVEFMKQorCiAgICAgUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlclNtYXJ0UHRyIG1fcGxh
dGZvcm1SZW5kZXJQYXNzRW5jb2RlcjsKICAgICBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IG1f
cGlwZWxpbmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCmlu
ZGV4IGY4OTMxY2U2NjI5YjE1MGM2YTk4NTNhMWRhOGVjNDU3YjllNzViNDcuLjEzYjhmODA2Njhk
N2I5NjM3ZjdjZWMxMzg4ZWUxZWFjMDY5NDMzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdy
b3VwTGF5b3V0TWV0YWwubW0KQEAgLTYxLDIxICs2MSwzOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRB
cmd1bWVudFRvQXJyYXkoQXJndW1lbnRBcnJheSYgYXJyYXksIFJldGFpblB0cjxNVExBcmd1bWVu
dERlcwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8TVRMQXJndW1lbnRFbmNvZGVyPiBuZXdFbmNvZGVyKGNvbnN0IEdQVURldmljZSYgZGV2aWNl
LCBBcmd1bWVudEFycmF5IGFycmF5KQorc3RhdGljIEdQVUJpbmRHcm91cExheW91dDo6QXJndW1l
bnRFbmNvZGVyQnVmZmVyIHRyeUNyZWF0ZUFyZ3VtZW50RW5jb2RlckFuZEJ1ZmZlcihjb25zdCBH
UFVEZXZpY2UmIGRldmljZSwgQXJndW1lbnRBcnJheSBhcnJheSkKIHsKLSAgICBSZXRhaW5QdHI8
TVRMQXJndW1lbnRFbmNvZGVyPiBlbmNvZGVyOworICAgIEdQVUJpbmRHcm91cExheW91dDo6QXJn
dW1lbnRFbmNvZGVyQnVmZmVyIGFyZ3M7CisKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7Ci0gICAgZW5jb2RlciA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0Fy
Z3VtZW50RW5jb2RlcldpdGhBcmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKKyAgICBhcmdzLmVuY29k
ZXIgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdBcmd1bWVudEVuY29kZXJX
aXRoQXJndW1lbnRzOmFycmF5LmdldCgpXSk7CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKLSAgICBpZiAoIWVuY29kZXIpCisgICAgaWYgKCFhcmdzLmVuY29kZXIpIHsKICAgICAgICAg
TE9HKFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBj
cmVhdGUgTVRMQXJndW1lbnRFbmNvZGVyISIpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0K
KworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBhcmdzLmJ1ZmZlciA9IGFk
b3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0J1ZmZlcldpdGhMZW5ndGg6YXJncy5l
bmNvZGVyLmdldCgpLmVuY29kZWRMZW5ndGggb3B0aW9uczowXSk7CisgICAgW2FyZ3MuZW5jb2Rl
ciBzZXRBcmd1bWVudEJ1ZmZlcjphcmdzLmJ1ZmZlci5nZXQoKSBvZmZzZXQ6MF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBpZiAoIWFyZ3MuYnVmZmVyKSB7CisgICAgICAg
IExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSgpOiBVbmFibGUgdG8g
Y3JlYXRlIE1UTEJ1ZmZlciBmcm9tIE1UTEFyZ3VtZW50RW5jb2RlciEiKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CiAKLSAgICByZXR1cm4gZW5jb2RlcjsKKyAgICByZXR1cm4gYXJnczsK
IH07CiAKIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVUJpbmRHcm91cExheW91dDo6dHJ5
Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yJiYgZGVzY3JpcHRvcikKIHsKLSAgICBBcmd1bWVudEFycmF5IHZlcnRleEFyZ3VtZW50cywg
ZnJhZ21lbnRBcmd1bWVudHMsIGNvbXB1dGVBcmd1bWVudHM7CisgICAgaWYgKCFkZXZpY2UucGxh
dGZvcm1EZXZpY2UoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0
Ojp0cnlDcmVhdGUoKTogSW52YWxpZCBNVExEZXZpY2UhIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIEFyZ3VtZW50QXJyYXkgdmVydGV4QXJnc0FycmF5LCBmcmFnbWVu
dEFyZ3NBcnJheSwgY29tcHV0ZUFyZ3NBcnJheTsKICAgICBCaW5kaW5nc01hcFR5cGUgYmluZGlu
Z3NNYXA7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBkZXNjcmlwdG9yLmJpbmRp
bmdzKSB7CkBAIC05OSwzNCArMTE2LDM2IEBAIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQ
VUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiAgICAg
ICAgIG10bEFyZ3VtZW50LmdldCgpLmluZGV4ID0gYmluZGluZy5iaW5kaW5nOwogCiAgICAgICAg
IGlmIChiaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6VkVSVEVYKQotICAg
ICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KHZlcnRleEFyZ3VtZW50cywgbXRsQXJndW1l
bnQpOworICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KHZlcnRleEFyZ3NBcnJheSwg
bXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVy
U3RhZ2VCaXQ6OkZSQUdNRU5UKQotICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGZy
YWdtZW50QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVu
dFRvQXJyYXkoZnJhZ21lbnRBcmdzQXJyYXksIG10bEFyZ3VtZW50KTsKICAgICAgICAgaWYgKGJp
bmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpDT01QVVRFKQotICAgICAgICAg
ICAgYXBwZW5kQXJndW1lbnRUb0FycmF5KGNvbXB1dGVBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsK
KyAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50VG9BcnJheShjb21wdXRlQXJnc0FycmF5LCBtdGxB
cmd1bWVudCk7CiAgICAgfQogCi0gICAgQXJndW1lbnRFbmNvZGVycyBlbmNvZGVyczsKKyAgICBB
cmd1bWVudEVuY29kZXJCdWZmZXIgdmVydGV4LCBmcmFnbWVudCwgY29tcHV0ZTsKIAotICAgIGlm
ICh2ZXJ0ZXhBcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCEoZW5jb2RlcnMudmVydGV4ID0gbmV3
RW5jb2RlcihkZXZpY2UsIHZlcnRleEFyZ3VtZW50cykpKQorICAgIGlmICh2ZXJ0ZXhBcmdzQXJy
YXkpIHsKKyAgICAgICAgaWYgKCEodmVydGV4ID0gdHJ5Q3JlYXRlQXJndW1lbnRFbmNvZGVyQW5k
QnVmZmVyKGRldmljZSwgdmVydGV4QXJnc0FycmF5KSkuaXNWYWxpZCgpKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmIChmcmFnbWVudEFyZ3VtZW50cykgewotICAg
ICAgICBpZiAoIShlbmNvZGVycy5mcmFnbWVudCA9IG5ld0VuY29kZXIoZGV2aWNlLCBmcmFnbWVu
dEFyZ3VtZW50cykpKQorICAgIGlmIChmcmFnbWVudEFyZ3NBcnJheSkgeworICAgICAgICBpZiAo
IShmcmFnbWVudCA9IHRyeUNyZWF0ZUFyZ3VtZW50RW5jb2RlckFuZEJ1ZmZlcihkZXZpY2UsIGZy
YWdtZW50QXJnc0FycmF5KSkuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQotICAgIGlmIChjb21wdXRlQXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICghKGVuY29k
ZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVyKGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQorICAg
IGlmIChjb21wdXRlQXJnc0FycmF5KSB7CisgICAgICAgIGlmICghKGNvbXB1dGUgPSB0cnlDcmVh
dGVBcmd1bWVudEVuY29kZXJBbmRCdWZmZXIoZGV2aWNlLCBjb21wdXRlQXJnc0FycmF5KSkuaXNW
YWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHUFVCaW5kR3JvdXBMYXlvdXQoV1RGTW92ZShiaW5kaW5nc01hcCksIFdU
Rk1vdmUoZW5jb2RlcnMpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVCaW5kR3JvdXBM
YXlvdXQoV1RGTW92ZShiaW5kaW5nc01hcCksIFdURk1vdmUodmVydGV4KSwgV1RGTW92ZShmcmFn
bWVudCksIFdURk1vdmUoY29tcHV0ZSkpKTsKIH0KIAotR1BVQmluZEdyb3VwTGF5b3V0OjpHUFVC
aW5kR3JvdXBMYXlvdXQoQmluZGluZ3NNYXBUeXBlJiYgYmluZGluZ3NNYXAsIEFyZ3VtZW50RW5j
b2RlcnMmJiBlbmNvZGVycykKLSAgICA6IG1fYmluZGluZ3NNYXAoV1RGTW92ZShiaW5kaW5nc01h
cCkpCi0gICAgLCBtX2FyZ3VtZW50RW5jb2RlcnMoV1RGTW92ZShlbmNvZGVycykpCitHUFVCaW5k
R3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChCaW5kaW5nc01hcFR5cGUmJiBiaW5kaW5n
c01hcCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgdmVydGV4LCBBcmd1bWVudEVuY29kZXJCdWZm
ZXImJiBmcmFnbWVudCwgQXJndW1lbnRFbmNvZGVyQnVmZmVyJiYgY29tcHV0ZSkKKyAgICA6IG1f
dmVydGV4QXJndW1lbnRzKFdURk1vdmUodmVydGV4KSkKKyAgICAsIG1fZnJhZ21lbnRBcmd1bWVu
dHMoV1RGTW92ZShmcmFnbWVudCkpCisgICAgLCBtX2NvbXB1dGVBcmd1bWVudHMoV1RGTW92ZShj
b21wdXRlKSkKKyAgICAsIG1fYmluZGluZ3NNYXAoV1RGTW92ZShiaW5kaW5nc01hcCkpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCmluZGV4IDYxMjU5ZDIzNGZi
M2ExMjRmOTkxNzg0YTVkOGZkNjg4NzAzN2UyMDguLjkzZWRjMTFhODBlY2I2YTA2NDE4YjUyYzI2
MTQ2MzgzMmYxZjc5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQpA
QCAtNjksNyArNjksNiBAQCBSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEJ1ZmZl
cjo6Y3JlYXRlKEdQVURldmljZSYgZGV2aWNlKQogR1BVQ29tbWFuZEJ1ZmZlcjo6R1BVQ29tbWFu
ZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciYmIGJ1ZmZlcikKICAgICA6IG1f
cGxhdGZvcm1Db21tYW5kQnVmZmVyKFdURk1vdmUoYnVmZmVyKSkKIHsKLSAgICBVTlVTRURfUEFS
QU0obV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1t
CmluZGV4IDJlNjQzNjM4MTQ2YTFiODljYTdmOGM5Njg2NjUzZDI3MjVkMzQxOGUuLjRmZmUzODc1
MGMzMzE0ZGI5ZDAwZDUyYzQwYTM2MTEwOThiZGI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
ck1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0yOCw3ICsyOCwxMSBAQAog
CiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2ltcG9ydCAiR1BVQmluZEdyb3VwLmgiCisjaW1wb3J0
ICJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw2ICs0NSw4NCBAQCB2b2lkIEdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkKICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsK
IH0KIAordm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BV
QmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hh
ciogY29uc3QgZnVuY3Rpb25OYW1lKQoreworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9Q
QVJBTShmdW5jdGlvbk5hbWUpOworI2VuZGlmCisgICAgaWYgKCFhcmd1bWVudEVuY29kZXIpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBObyBhcmd1bWVudCBlbmNvZGVyIGZvciByZXF1ZXN0
ZWQgc3RhZ2UgZm91bmQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxHUFVCdWZmZXJCaW5kaW5nPihyZXNv
dXJjZSkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBidWZm
ZXIgdHlwZSEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byYgYnVmZmVyQmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNl
KTsKKyAgICBhdXRvIGJ1ZmZlciA9IGJ1ZmZlckJpbmRpbmcuYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZl
cigpOworCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZh
bGlkIE1UTEJ1ZmZlciBpbiBHUFVCdWZmZXJCaW5kaW5nISIsIGZ1bmN0aW9uTmFtZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisK
KyAgICBbYXJndW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjpidWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRp
bmcub2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworICAgIHVzZVJlc291cmNlKGJ1ZmZlciwgTVRMUmVz
b3VyY2VVc2FnZVJlYWQpOworCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKwor
dm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGxv
bmcgaW5kZXgsIGNvbnN0IEdQVUJpbmRHcm91cCYgYmluZEdyb3VwKQoreworICAgIGNvbnN0IGNo
YXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwKCkiOworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShmdW5jdGlv
bk5hbWUpOworI2VuZGlmCisKKyAgICBjb25zdCBhdXRvJiB2ZXJ0ZXhBcmdzID0gYmluZEdyb3Vw
LmxheW91dCgpLnZlcnRleEFyZ3VtZW50cygpOworICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50QXJn
cyA9IGJpbmRHcm91cC5sYXlvdXQoKS5mcmFnbWVudEFyZ3VtZW50cygpOworICAgIC8vIEZJWE1F
OiBGaW5pc2ggc3VwcG9ydCBmb3IgY29tcHV0ZS4KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKworICAgIGlmICh2ZXJ0ZXhBcmdzLmJ1ZmZlcikKKyAgICAgICAgc2V0VmVydGV4
QnVmZmVyKHZlcnRleEFyZ3MuYnVmZmVyLmdldCgpLCAwLCBpbmRleCk7CisgICAgaWYgKGZyYWdt
ZW50QXJncy5idWZmZXIpCisgICAgICAgIHNldEZyYWdtZW50QnVmZmVyKGZyYWdtZW50QXJncy5i
dWZmZXIuZ2V0KCksIDAsIGluZGV4KTsKKworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisKKyAgICAvLyBTZXQgZWFjaCByZXNvdXJjZSBvbiBlYWNoIE1UTEFyZ3VtZW50RW5jb2RlciBp
dCBzaG91bGQgYmUgdmlzaWJsZSBvbi4KKyAgICBjb25zdCBhdXRvJiBiaW5kaW5nc01hcCA9IGJp
bmRHcm91cC5sYXlvdXQoKS5iaW5kaW5nc01hcCgpOworICAgIGZvciAoY29uc3QgYXV0byYgYmlu
ZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBi
aW5kaW5nc01hcC5maW5kKGJpbmRpbmcuYmluZGluZyk7CisgICAgICAgIGlmIChpdGVyYXRvciA9
PSBiaW5kaW5nc01hcC5lbmQoKSkgeworICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBHUFVC
aW5kR3JvdXBCaW5kaW5nICVsdSBub3QgZm91bmQgaW4gR1BVQmluZEdyb3VwTGF5b3V0ISIsIGZ1
bmN0aW9uTmFtZSwgYmluZGluZy5iaW5kaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBhdXRvIGJpbmRHcm91cExheW91dEJpbmRpbmcgPSBpdGVyYXRvci0+dmFs
dWU7CisKKyAgICAgICAgc3dpdGNoIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnR5cGUpIHsKKyAg
ICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbW9yZSByZXNvdXJjZSB0eXBlcy4KKyAgICAgICAgY2Fz
ZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6VW5pZm9ybUJ1ZmZlcjoK
KyAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U3Rv
cmFnZUJ1ZmZlcjogeworICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlz
aWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCisgICAgICAgICAgICAgICAgc2V0
UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIGJpbmRp
bmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAg
IGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJp
dDo6RlJBR01FTlQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5i
aW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgdHlw
ZSBub3QgeWV0IGltcGxlbWVudGVkLiIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rl
ck1ldGFsLm1tCmluZGV4IDU1NjUwNjNmNjQwMGI0MDM4NTQzNTNkYWFjNjdlMzUwNTE0MDE0NzMu
LjU5NGEzMzcwYTg0NDlmMWQ3YjlmMmQ3OGZhODJmN2Y5OTI2NzI0N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5j
b2Rlck1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0xMTgsNiArMTE4LDI1IEBAIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhDb3VudCwg
dW5zaWduZWQgbG9uZyBpbnN0YW5jCiAgICAgICAgIGJhc2VJbnN0YW5jZTpmaXJzdEluc3RhbmNl
XTsKIH0KIAorI2lmIFVTRShNRVRBTCkKKwordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dXNl
UmVzb3VyY2UoTVRMUmVzb3VyY2UgKnJlc291cmNlLCB1bnNpZ25lZCBsb25nIHVzYWdlKQorewor
ICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgdXNlUmVzb3VyY2U6cmVzb3VyY2UgdXNh
Z2U6dXNhZ2VdOworfQorCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZm
ZXIoTVRMQnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGluZGV4KQoreworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0VmVydGV4QnVm
ZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworfQorCit2b2lkIEdQVVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRGcmFnbWVudEJ1ZmZlcihNVExCdWZmZXIgKmJ1ZmZlciwgdW5z
aWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgW21fcGxhdGZv
cm1SZW5kZXJQYXNzRW5jb2RlciBzZXRGcmFnbWVudEJ1ZmZlcjpidWZmZXIgb2Zmc2V0Om9mZnNl
dCBhdEluZGV4OmluZGV4XTsKK30KKworI2VuZGlmIC8vIFVTRShNRVRBTCkKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODU2MjU0
ZjZiNTAwNTUwNWY4YTFkZDNjM2M5NjFlODc5MDFkN2MxLi4zMWUzNWMwMTI4ZWZmZWIxYzI3ZjM3
MjZlZjdjZGNlNzNlZjU4MWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDEtMTggIEp1
c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICAoV0lQKSBbV2ViR1BV
XSBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwIHByb3RvdHlwZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDU3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI5NjY3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBE
ZWFuIEphY2tzb24uCisKKyAgICAgICAgRHJhdyAzIHRyaWFuZ2xlcyB2aWEgV2ViR1BVIHRvIGNy
ZWF0ZSBhIGdyZWVuIHNxdWFyZSBjYW52YXMsIHdpdGggcmVmZXJlbmNlLgorICAgICAgICBFYWNo
IHZlcnRleCBpcyBzdG9yZWQgaW4gaXRzIG93biBXZWJHUFVCdWZmZXIgYW5kIHRoZXkgYXJlIG1p
eC9tYXRjaGVkIHBlciBiaW5kIGdyb3VwLgorICAgICAgICBUaGlzIHRlc3RzIG11bHRpcGxlIHJl
c291cmNlIGJpbmRpbmdzIGluIG9uZSBiaW5kIGdyb3VwIGFzIHdlbGwgYXMgc2V0dGluZyBtdWx0
aXBsZSAKKyAgICAgICAgYmluZCBncm91cHMgcGVyIGRyYXcgY2FsbCBhbmQgcGVyIGNvbW1hbmQg
ZW5jb2Rlci4gCisKKyAgICAgICAgKiB3ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy1l
eHBlY3RlZC5odG1sOiBBZGRlZC4gUmVmZXJlbmNlIGdlbmVyYXRlZCB1c2luZyAyRCBjYW52YXMu
CisgICAgICAgICogd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbDogQWRkZWQu
IAorICAgICAgICAgICAgICAgIDEpIERyYXcgdG9wIHR3byB0cmlhbmdsZXMgdXNpbmcgdHdvIGJp
bmQgZ3JvdXBzIGluIG9uZSBkcmF3IGNhbGwuCisgICAgICAgICAgICAgICAgMikgU3dhcCBmaXJz
dCBiaW5kIGdyb3VwIGFuZCBpc3N1ZSBzZWNvbmQgZHJhdyBjYWxsIHRvIGRyYXcgbWlkZGxlIHRy
aWFuZ2xlLgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOgorICAgICAg
ICAoY3JlYXRlQmFzaWNQaXBlbGluZSk6IE5vdyBoYW5kbGVzIG5ldyBwcmltaXRpdmUgdG9wb2xv
Z2llcy4KKwogMjAxOS0wMS0xNiAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgYW5kIFdQRSB0ZXN0IGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xl
cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NmYxM2U4MTIwMzk3YTVjYzYzMzZjOWUyYTQ4
NWU3NzhiYTk5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVy
LXJlc291cmNlLXRyaWFuZ2xlcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkhUTUwgUmVmZXJlbmNl
IEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRl
bHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+
Cis8c2NyaXB0PgorY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFz
Iik7Citjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnRleHQu
ZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDApJzsKK2NvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2Ut
dHJpYW5nbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFu
Z2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MTE1YmE2Y2JhMmM3ODUwYTNiZTdiOTYyOWRkODM4MWM0
YmM2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291
cmNlLXRyaWFuZ2xlcy5odG1sCkBAIC0wLDAgKzEsMTc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHUFUgSGVsbG8gVHJpYW5nbGVzPC90aXRs
ZT4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2ViR1BVIGNvcnJlY3RseSByZW5kZXJz
IGEgZ3JlZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJidWZmZXItcmVzb3Vy
Y2UtdHJpYW5nbGVzLWV4cGVjdGVkLmh0bWwiPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJl
bG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9
IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgc2hhZGVyQ29kZSA9IGAKKyNpbmNsdWRlIDxtZXRhbF9z
dGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0YWw7CisKK3N0cnVjdCBWZXJ0ZXggewor
ICAgIGZsb2F0NCBwb3NpdGlvbiBbW3Bvc2l0aW9uXV07Cit9OworCitzdHJ1Y3QgVmVydGV4QXJn
dW1lbnRzIHsKKyAgICBkZXZpY2UgVmVydGV4KiB2MDsKKyAgICBkZXZpY2UgVmVydGV4KiB2MTsK
KyAgICBkZXZpY2UgVmVydGV4KiB2MjsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4X21haW4o
CisgICAgY29uc3QgZGV2aWNlIFZlcnRleEFyZ3VtZW50cyYgYXJnczAgW1tidWZmZXIoMCldXSwK
KyAgICBjb25zdCBkZXZpY2UgVmVydGV4QXJndW1lbnRzJiBhcmdzMSBbW2J1ZmZlcigxKV1dLAor
ICAgIHVpbnQgdmlkIFtbdmVydGV4X2lkXV0pCit7CisgICAgc3dpdGNoICh2aWQpCisgICAgewor
ICAgICAgICBjYXNlIDA6IHJldHVybiBhcmdzMC52MFswXTsKKyAgICAgICAgY2FzZSAxOiByZXR1
cm4gYXJnczAudjFbMF07CisgICAgICAgIGNhc2UgMjogcmV0dXJuIGFyZ3MwLnYyWzBdOworICAg
ICAgICBjYXNlIDM6IHJldHVybiBhcmdzMS52MFswXTsKKyAgICAgICAgY2FzZSA0OiByZXR1cm4g
YXJnczEudjFbMF07CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBhcmdzMS52MlswXTsKKyAgICB9
Cit9CisKK3N0cnVjdCBGcmFnbWVudEFyZ3VtZW50cyB7CisgICAgZGV2aWNlIGZsb2F0NCogY29s
b3I7Cit9OworCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihjb25zdCBkZXZpY2UgRnJh
Z21lbnRBcmd1bWVudHMmIGFyZ3MgW1tidWZmZXIoMCldXSkKK3sKKyAgICByZXR1cm4gYXJncy5j
b2xvclswXTsKK30KK2AKKworY29uc3QgYmluZGluZ051bXMgPSB7CisgICAgVUw6IDAsCisgICAg
VU06IDEsCisgICAgVVI6IDIsCisgICAgTEw6IDMsCisgICAgTFI6IDQsCisgICAgRzogNQorfTsK
KworZnVuY3Rpb24gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kTnVtLCBz
dGFnZSA9IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCkgeworICAgIHJldHVybiB7CisgICAg
ICAgIGJpbmRpbmc6IGJpbmROdW0sCisgICAgICAgIHZpc2liaWxpdHk6IHN0YWdlLAorICAgICAg
ICB0eXBlOiAidW5pZm9ybUJ1ZmZlciIKKyAgICB9OworfQorCitjb25zdCBidWZmZXJTaXplID0g
NCAqIDQ7CisKKy8vIEZJWE1FOiBLZWVwIHVwIHRvIGRhdGUgd2l0aCBidWZmZXIgdXBsb2FkIGRl
Y2lzaW9ucy4KK2Z1bmN0aW9uIGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIGEsIGIpIHsKKyAg
ICBjb25zdCBidWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogYnVmZmVyU2l6ZSwg
dXNhZ2U6IFdlYkdQVUJ1ZmZlclVzYWdlLlVOSUZPUk0gfSk7CisgICAgCisgICAgY29uc3QgYXJy
YXlCdWZmZXIgPSBidWZmZXIubWFwcGluZzsKKyAgICBjb25zdCBmbG9hdEFycmF5ID0gbmV3IEZs
b2F0MzJBcnJheShhcnJheUJ1ZmZlcik7CisKKyAgICBmbG9hdEFycmF5WzBdID0gYTsKKyAgICBm
bG9hdEFycmF5WzFdID0gYjsKKyAgICBmbG9hdEFycmF5WzJdID0gMDsKKyAgICBmbG9hdEFycmF5
WzNdID0gMTsKKworICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJ1ZmZl
ckJpbmRpbmcoYnVmZmVyKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgYnVmZmVyOiBidWZmZXIs
CisgICAgICAgIG9mZnNldDogMCwKKyAgICAgICAgc2l6ZTogYnVmZmVyU2l6ZQorICAgIH07Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0
QmFzaWNEZXZpY2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJjYW52YXMiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZh
cywgZGV2aWNlKTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVycy4K
KyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29k
ZTogc2hhZGVyQ29kZSB9KTsKKworICAgIC8vIENyZWF0ZSB2ZXJ0ZXggZGF0YSBXZWJHUFVCdWZm
ZXJzLgorICAgIGNvbnN0IHVwcGVyTGVmdCA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIC0x
LCAxKTsKKyAgICBjb25zdCB1cHBlck1pZGRsZSA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2Us
IDAsIDEpOworICAgIGNvbnN0IHVwcGVyUmlnaHQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNl
LCAxLCAxKTsKKyAgICBjb25zdCBsb3dlckxlZnQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2aWNl
LCAtMSwgLTEpOworICAgIGNvbnN0IGxvd2VyUmlnaHQgPSBjcmVhdGVGbG9hdDRCdWZmZXIoZGV2
aWNlLCAxLCAtMSk7CisKKyAgICAvLyBDb2xvciBkYXRhIGJ1ZmZlci4KKyAgICBjb25zdCBncmVl
biA9IGNyZWF0ZUZsb2F0NEJ1ZmZlcihkZXZpY2UsIDAsIDEpOworCisgICAgLy8gQ3JlYXRlIGJ1
ZmZlciBXZWJHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5ncy4KKyAgICBjb25zdCBsYXlvdXRVTCA9
IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuVUwpOworICAg
IGNvbnN0IGxheW91dFVNID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5k
aW5nTnVtcy5VTSk7CisgICAgY29uc3QgbGF5b3V0VVIgPSBjcmVhdGVVbmlmb3JtQnVmZmVyQmlu
ZEdyb3VwTGF5b3V0KGJpbmRpbmdOdW1zLlVSKTsKKyAgICBjb25zdCBsYXlvdXRMTCA9IGNyZWF0
ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBMYXlvdXQoYmluZGluZ051bXMuTEwpOworICAgIGNvbnN0
IGxheW91dExSID0gY3JlYXRlVW5pZm9ybUJ1ZmZlckJpbmRHcm91cExheW91dChiaW5kaW5nTnVt
cy5MUik7CisgICAgY29uc3QgbGF5b3V0RyA9IGNyZWF0ZVVuaWZvcm1CdWZmZXJCaW5kR3JvdXBM
YXlvdXQoYmluZGluZ051bXMuRywgV2ViR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQpOworCisg
ICAgLy8gV2ViR1BVQmluZEdyb3VwTGF5b3V0cworICAgIGNvbnN0IGxlZnRUcmlhbmdsZUJHTGF5
b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5b3V0VUws
IGxheW91dFVNLCBsYXlvdXRMTCwgbGF5b3V0R10gfSk7CisgICAgY29uc3QgcmlnaHRUcmlhbmds
ZUJHTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbbGF5
b3V0VVIsIGxheW91dFVNLCBsYXlvdXRMUl0gfSk7CisgICAgY29uc3QgbWlkZGxlVHJpYW5nbGVC
R0xheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91
dFVNLCBsYXlvdXRMTCwgbGF5b3V0TFIsIGxheW91dEddIH0pOworCisgICAgLy8gV2ViR1BVUGlw
ZWxpbmVMYXlvdXQgYW5kIFdlYkdQVVJlbmRlclBpcGVsaW5lCisgICAgY29uc3QgcGlwZWxpbmVM
YXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQoeyBiaW5kR3JvdXBMYXlvdXRzOiBb
bGVmdFRyaWFuZ2xlQkdMYXlvdXQsIG1pZGRsZVRyaWFuZ2xlQkdMYXlvdXQsIHJpZ2h0VHJpYW5n
bGVCR0xheW91dF0gfSk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5l
KHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgbnVsbCwgInRyaWFuZ2xlTGlz
dCIpOworCisgICAgLy8gV2ViR1BVQnVmZmVyQmluZGluZ3MKKyAgICBjb25zdCBiaW5kaW5nVUwg
PSBjcmVhdGVCdWZmZXJCaW5kaW5nKHVwcGVyTGVmdCk7CisgICAgY29uc3QgYmluZGluZ1VNID0g
Y3JlYXRlQnVmZmVyQmluZGluZyh1cHBlck1pZGRsZSk7CisgICAgY29uc3QgYmluZGluZ1VSID0g
Y3JlYXRlQnVmZmVyQmluZGluZyh1cHBlclJpZ2h0KTsKKyAgICBjb25zdCBiaW5kaW5nTEwgPSBj
cmVhdGVCdWZmZXJCaW5kaW5nKGxvd2VyTGVmdCk7CisgICAgY29uc3QgYmluZGluZ0xSID0gY3Jl
YXRlQnVmZmVyQmluZGluZyhsb3dlclJpZ2h0KTsKKyAgICBjb25zdCBiaW5kaW5nRyA9IGNyZWF0
ZUJ1ZmZlckJpbmRpbmcoZ3JlZW4pOworICAgIAorICAgIC8vIFdlYkdQVUJpbmRHcm91cEJpbmRp
bmdzCisgICAgY29uc3QgYmdCaW5kaW5nVUwgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLlVMLCBy
ZXNvdXJjZTogYmluZGluZ1VMIH07CisgICAgY29uc3QgYmdCaW5kaW5nVU0gPSB7IGJpbmRpbmc6
IGJpbmRpbmdOdW1zLlVNLCByZXNvdXJjZTogYmluZGluZ1VNIH07CisgICAgY29uc3QgYmdCaW5k
aW5nVVIgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLlVSLCByZXNvdXJjZTogYmluZGluZ1VSIH07
CisgICAgY29uc3QgYmdCaW5kaW5nTEwgPSB7IGJpbmRpbmc6IGJpbmRpbmdOdW1zLkxMLCByZXNv
dXJjZTogYmluZGluZ0xMIH07CisgICAgY29uc3QgYmdCaW5kaW5nTFIgPSB7IGJpbmRpbmc6IGJp
bmRpbmdOdW1zLkxSLCByZXNvdXJjZTogYmluZGluZ0xSIH07CisgICAgY29uc3QgYmdCaW5kaW5n
RyA9IHsgYmluZGluZzogYmluZGluZ051bXMuRywgcmVzb3VyY2U6IGJpbmRpbmdHIH07CisKKyAg
ICAvLyBXZWJHUFVCaW5kR3JvdXBzCisgICAgY29uc3QgbGVmdFRyaWFuZ2xlQkcgPSBkZXZpY2Uu
Y3JlYXRlQmluZEdyb3VwKHsgCisgICAgICAgIGxheW91dDogbGVmdFRyaWFuZ2xlQkdMYXlvdXQs
IAorICAgICAgICBiaW5kaW5nczogW2JnQmluZGluZ1VMLCBiZ0JpbmRpbmdVTSwgYmdCaW5kaW5n
TEwsIGJnQmluZGluZ0ddIAorICAgIH0pOworICAgIGNvbnN0IHJpZ2h0VHJpYW5nbGVCRyA9IGRl
dmljZS5jcmVhdGVCaW5kR3JvdXAoeworICAgICAgICBsYXlvdXQ6IHJpZ2h0VHJpYW5nbGVCR0xh
eW91dCwKKyAgICAgICAgYmluZGluZ3M6IFtiZ0JpbmRpbmdVUiwgYmdCaW5kaW5nVU0sIGJnQmlu
ZGluZ0xSXQorICAgIH0pOworICAgIGNvbnN0IG1pZGRsZVRyaWFuZ2xlQkcgPSBkZXZpY2UuY3Jl
YXRlQmluZEdyb3VwKHsKKyAgICAgICAgbGF5b3V0OiBtaWRkbGVUcmlhbmdsZUJHTGF5b3V0LAor
ICAgICAgICBiaW5kaW5nczogW2JnQmluZGluZ1VNLCBiZ0JpbmRpbmdMTCwgYmdCaW5kaW5nTFIs
IGJnQmluZGluZ0ddCisgICAgfSk7CisKKyAgICBjb25zdCBjb21tYW5kQnVmZmVyID0gZGV2aWNl
LmNyZWF0ZUNvbW1hbmRCdWZmZXIoKTsKKyAgICBjb25zdCBwYXNzRW5jb2RlciA9IGJlZ2luQmFz
aWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpOworICAgIHBhc3NFbmNvZGVyLnNl
dFBpcGVsaW5lKHBpcGVsaW5lKTsKKworICAgIC8vIERyYXcgdXBwZXIgdHJpYW5nbGVzLgorICAg
IHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBsZWZ0VHJpYW5nbGVCRyk7CisgICAgcGFzc0Vu
Y29kZXIuc2V0QmluZEdyb3VwKDEsIHJpZ2h0VHJpYW5nbGVCRyk7CisgICAgcGFzc0VuY29kZXIu
ZHJhdyg2LCAxLCAwLCAwKTsKKyAgICAvLyBEcmF3IGxvd2VyIHRyaWFuZ2xlLgorICAgIHBhc3NF
bmNvZGVyLnNldEJpbmRHcm91cCgwLCBtaWRkbGVUcmlhbmdsZUJHKTsKKyAgICBwYXNzRW5jb2Rl
ci5kcmF3KDMsIDEsIDAsIDApOworCisgICAgY29uc3QgZW5kQ29tbWFuZEJ1ZmZlciA9IHBhc3NF
bmNvZGVyLmVuZFBhc3MoKTsKKyAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOwor
ICAgIHF1ZXVlLnN1Ym1pdChbZW5kQ29tbWFuZEJ1ZmZlcl0pOworICAgIGNvbnRleHQucHJlc2Vu
dCgpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyBi
L0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGM3NTMwMmJl
ODkyOWRmZGVmMGMyMDI5ZTUzNmEwY2Q4ZGE2ZGUwYjkuLjc2N2Y5NDY1MjFhNGFkMjIyMTNmOTJm
MGQ0ZmNiNTcyMGM4MjYzMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJn
cHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rp
b25zLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUJhc2ljQ29udGV4dChjYW52
YXMsIGRldmljZSkgewogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1mdW5jdGlvbiBjcmVhdGVC
YXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBwaXBlbGluZUxheW91dCwgaW5wdXRT
dGF0ZURlc2NyaXB0b3IpIHsKK2Z1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9k
dWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRvciwgcHJpbWl0
aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGVTdHJpcCIpIHsKICAgICBjb25zdCB2ZXJ0ZXhTdGFnZURl
c2NyaXB0b3IgPSB7CiAgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAgICBlbnRy
eVBvaW50OiAidmVydGV4X21haW4iIApAQCAtMjYsMTMgKzI2LDE1IEBAIGZ1bmN0aW9uIGNyZWF0
ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1
dFN0YXRlRGVzCiAgICAgY29uc3QgcGlwZWxpbmVEZXNjcmlwdG9yID0gewogICAgICAgICB2ZXJ0
ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBmcmFnbWVudFN0YWdlOiBm
cmFnbWVudFN0YWdlRGVzY3JpcHRvciwKLSAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlh
bmdsZVN0cmlwIiwKLSAgICAgICAgaW5wdXRTdGF0ZTogaW5wdXRTdGF0ZURlc2NyaXB0b3IKKyAg
ICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6IHByaW1pdGl2ZVRvcG9sb2d5CiAgICAgfTsKIAogICAg
IGlmIChwaXBlbGluZUxheW91dCkKICAgICAgICAgcGlwZWxpbmVEZXNjcmlwdG9yLmxheW91dCA9
IHBpcGVsaW5lTGF5b3V0OwogCisgICAgaWYgKGlucHV0U3RhdGVEZXNjcmlwdG9yKQorICAgICAg
ICBwaXBlbGluZURlc2NyaXB0b3IuaW5wdXRTdGF0ZSA9IGlucHV0U3RhdGVEZXNjcmlwdG9yOwor
CiAgICAgcmV0dXJuIGRldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZShwaXBlbGluZURlc2NyaXB0
b3IpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>