<?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>202031</bug_id>
          
          <creation_ts>2019-09-19 22:36:50 -0700</creation_ts>
          <short_desc>Web Inspector: Canvas: modifications to shader modules can be shared between vertex/fragment shaders</short_desc>
          <delta_ts>2019-10-08 16:27:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201675</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572650</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-19 22:36:50 -0700</bug_when>
    <thetext># STEPS TO REPRODUCE:
1. inspect &lt;https://webkit.org/demos/webgpu/compute-boids.html&gt;
2. select Render Pipeline 1 (the same shader module is used for the vertex and fragment shaders)
3. edit the vertex shader
4. refresh both shaders
 =&gt; the fragment shaders update to reflect the changes made to the vertex shader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572674</commentid>
    <comment_count>1</comment_count>
      <attachid>379219</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-20 00:25:54 -0700</bug_when>
    <thetext>Created attachment 379219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573947</commentid>
    <comment_count>2</comment_count>
      <attachid>379219</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-24 22:14:54 -0700</bug_when>
    <thetext>Comment on attachment 379219
Patch

After speaking with Saam, he suggested that if the vertex and fragment shaders both shared the same shader module, we shouldn&apos;t use a split content view and instead update both the vertex and fragment shaders at the same time.  I think this is a great idea, as it handles the case where there are utility functions that are shared between the vertex and fragment shaders, so that any edits are shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577563</commentid>
    <comment_count>3</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-07 16:40:01 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 202341 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577565</commentid>
    <comment_count>4</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-07 16:40:31 -0700</bug_when>
    <thetext>Oops, wrong bug :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577683</commentid>
    <comment_count>5</comment_count>
      <attachid>380408</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 00:26:21 -0700</bug_when>
    <thetext>Created attachment 380408
Patch

Needs tests, but the UI is all there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577685</commentid>
    <comment_count>6</comment_count>
      <attachid>380409</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 00:29:38 -0700</bug_when>
    <thetext>Created attachment 380409
Patch

Rebase (still needs tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577686</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-10-08 00:30:19 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577890</commentid>
    <comment_count>8</comment_count>
      <attachid>380452</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 12:52:38 -0700</bug_when>
    <thetext>Created attachment 380452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577950</commentid>
    <comment_count>9</comment_count>
      <attachid>380452</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 14:29:00 -0700</bug_when>
    <thetext>Comment on attachment 380452
Patch

Ah, I forgot to adjust the test expectations so that &apos;inspector/canvas/updateShader-webgpu-sharedVertexFragment.html&apos; doesn&apos;t get run on non-WebGPU-supporting platforms :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577951</commentid>
    <comment_count>10</comment_count>
      <attachid>380452</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-08 14:34:26 -0700</bug_when>
    <thetext>Comment on attachment 380452
Patch

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

&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:283
&gt; +    auto payload = Inspector::Protocol::Canvas::ShaderProgram::create()
&gt; +        .setProgramId(m_identifier)
&gt; +        .setProgramType(programType.value())
&gt; +        .setCanvasId(m_canvas.identifier())
&gt; +        .release();

Did you swap to Java here? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577961</commentid>
    <comment_count>11</comment_count>
      <attachid>380467</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 14:43:24 -0700</bug_when>
    <thetext>Created attachment 380467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577962</commentid>
    <comment_count>12</comment_count>
      <attachid>380452</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 14:44:20 -0700</bug_when>
    <thetext>Comment on attachment 380452
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:283
&gt;&gt; +        .release();
&gt; 
&gt; Did you swap to Java here? :)

lol.  This is typical Web Inspector style :P
The code that generates these objects is pretty awesome too!  Makes some really clever usage of C++ templates to ensure that the required properties get added in the right order =D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577978</commentid>
    <comment_count>13</comment_count>
      <attachid>380467</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 15:23:36 -0700</bug_when>
    <thetext>Comment on attachment 380467
Patch

I&apos;m cq+ this now, since bugzilla EWS won&apos;t run any of the WebGPU tests anyways :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578000</commentid>
    <comment_count>14</comment_count>
      <attachid>380467</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 16:16:06 -0700</bug_when>
    <thetext>Comment on attachment 380467
Patch

Clearing flags on attachment: 380467

Committed r250874: &lt;https://trac.webkit.org/changeset/250874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578001</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 16:16:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578007</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-08 16:27:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/56097158&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379219</attachid>
            <date>2019-09-20 00:25:54 -0700</date>
            <delta_ts>2019-10-08 00:26:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202031-20190920162553.patch</filename>
            <type>text/plain</type>
            <size>13579</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZTAzZDYyNGZhMWU1NGRkMjFlNjI5YTZlYThjYzk3OTdhNjY2N2Y4Li45
MTc3MDc2OWE0OWIwMmE1NjhlYmNlODRkMDhhMGQ1NTZmNzk3YTQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTktMDktMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogbW9kaWZpY2F0aW9ucyB0byBzaGFk
ZXIgbW9kdWxlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdmVydGV4L2ZyYWdtZW50IHNoYWRlcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAzMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBp
bnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUuaHRtbAorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKToKKworICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVy
UGlwZWxpbmU6OmR1cGxpY2F0ZVNoYXJlZFNoYWRlck1vZHVsZUlmTmVlZGVkKTogQWRkZWQuCisK
IDIwMTktMDktMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IENhbnZhczogc2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmUuY3BwCmluZGV4IGZlOTU3ZjU3MGEyZjE2YzczZGY5MjI5MTQzN2ViZmFiZTNiN2ZjMDQuLjFi
NTkzYTVmYjAzOWMxNTEyZDIxMmJmZGViMTAyYTJhMGZlMzgwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKQEAg
LTMyLDcgKzMyLDEwIEBACiAjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVQ
cm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGlu
ZS5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJX
ZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAKQEAgLTUzLDYgKzU2LDE5IEBAIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpX
ZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRl
CiAKIFdlYkdQVVJlbmRlclBpcGVsaW5lOjp+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CiAKK3ZvaWQgV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmR1cGxpY2F0ZVNoYXJlZFNoYWRlck1v
ZHVsZUlmTmVlZGVkKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmICghbV92
ZXJ0ZXhTaGFkZXIgfHwgIW1fZnJhZ21lbnRTaGFkZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8mIGZyYWdtZW50TW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZTsK
KyAgICBpZiAoZnJhZ21lbnRNb2R1bGUgIT0gbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5tb2R1bGUp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50U291cmNlID0gZnJh
Z21lbnRNb2R1bGUtPnNvdXJjZSgpOworICAgIGZyYWdtZW50TW9kdWxlID0gV2ViR1BVU2hhZGVy
TW9kdWxlOjpjcmVhdGUoR1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgp
LCB7IGZyYWdtZW50U291cmNlIH0pLCBmcmFnbWVudFNvdXJjZSk7Cit9CisKIGJvb2wgV2ViR1BV
UmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkKIHsK
ICAgICBpZiAobV9yZW5kZXJQaXBlbGluZSAmJiBtX3ZlcnRleFNoYWRlcikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKaW5k
ZXggYjJiODA5NDBlNWZjMmFlMGIzYTc5YWJhNTM1NGQxM2Q5MDA0M2I4MS4uMTgwM2E3OWVlMmY5
YzE0MTY2MTYxYTFiNTBkYzg5M2ZjZTQyYjcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCkBAIC01MCw2ICs1MCw3IEBA
IHB1YmxpYzoKICAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4
U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXI7IH0KICAgICBPcHRpb25hbDxX
ZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVy
biBtX2ZyYWdtZW50U2hhZGVyOyB9CiAKKyAgICB2b2lkIGR1cGxpY2F0ZVNoYXJlZFNoYWRlck1v
ZHVsZUlmTmVlZGVkKGNvbnN0IFdlYkdQVURldmljZSYpOwogICAgIGJvb2wgcmVjb21waWxlKGNv
bnN0IFdlYkdQVURldmljZSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCmluZGV4IGIzZGY5MDk3N2QxY2Q4
ZDg3NmMyOWU3ZjUxYjFjNjgxMzBhZGEwYjAuLmUyYTU4NDFmNmMzZGRjMzgwNzMyMzk1NTEzZTFl
YzE0NjllMWY1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5jcHAKQEAgLTIxNSw2ICsyMTUsOSBAQCBib29sIEluc3BlY3RvclNo
YWRlclByb2dyYW06OnVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNo
YWRlclR5cAogICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxp
bmU+IHBpcGVsaW5lV3JhcHBlcikgewogICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUgPSBwaXBl
bGluZVdyYXBwZXIuZ2V0KCk7CiAgICAgICAgICAgICBpZiAoYXV0byogZGV2aWNlID0gbV9jYW52
YXMuZGV2aWNlQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzPFdlYkdQVVJlbmRl
clBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICAgICAgICAgIGRvd25jYXN0PFdlYkdQ
VVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkuZHVwbGljYXRlU2hhcmVkU2hhZGVyTW9kdWxlSWZO
ZWVkZWQoKmRldmljZSk7CisKICAgICAgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXJEYXRhID0g
c2hhZGVyRm9yVHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gbW9kdWxlID0gc2hhZGVyRGF0YS52YWx1ZSgpLm1vZHVsZSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kdWxlLT51cGRhdGUoKmRldmljZSwgc291cmNlKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA5MmEwNTY4MTg1MThlOGJjMGNlZWMyOWFiNzIwMzQxZTE4YmMyMzk3Li4yYTIzNDVjYzY2NzVj
OGYxNmRmMjE3ODAxOGU5YjVjNDJkYTY2NDhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTkt
MDktMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IENhbnZhczogbW9kaWZpY2F0aW9ucyB0byBzaGFkZXIgbW9kdWxlcyBjYW4gYmUg
c2hhcmVkIGJldHdlZW4gdmVydGV4L2ZyYWdtZW50IHNoYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVT
aGFkZXItd2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXItd2ViZ3B1LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanM6CisKIDIwMTktMDktMTkgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IENhbnZhczogc2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMt
d2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVy
UHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGJjY2ZlM2FiNWQyMTdhNzQwYjU4MTUy
N2JmOGIxMzA4ZjNhZmNlZmQuLmJkZTRlMGM5ZGE1MjJjYmRhZjg5NjgwZTY3ZmZmMTY3Y2M2Njk1
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKQEAg
LTYsMjAgKzYsMjAgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiB9CiAKLWNvbnN0IGNvbXB1dGVTaGFkZXJTb3VyY2UgPSBgCit3aW5k
b3cuY29tcHV0ZVNoYWRlclNvdXJjZSA9IGAKIFtudW10aHJlYWRzKDIsIDEsIDEpXQogY29tcHV0
ZSB2b2lkIGNvbXB1dGVTaGFkZXIoZGV2aWNlIGZsb2F0W10gYnVmZmVyIDogcmVnaXN0ZXIodTAp
LCBmbG9hdDMgdGhyZWFkSUQgOiBTVl9EaXNwYXRjaFRocmVhZElEKSB7CiAgICAgYnVmZmVyW3Vp
bnQodGhyZWFkSUQueCldID0gYnVmZmVyW3VpbnQodGhyZWFkSUQueCldICogMi4wOwogfQogYDsK
IAotY29uc3QgdmVydGV4U2hhZGVyU291cmNlID0gYAord2luZG93LnZlcnRleFNoYWRlclNvdXJj
ZSA9IGAKIHZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IGF0dHJp
YnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlvbiB7CiAgICAgcmV0
dXJuIHBvc2l0aW9uOwogfQogYDsKIAotY29uc3QgZnJhZ21lbnRTaGFkZXJTb3VyY2UgPSBgCit3
aW5kb3cuZnJhZ21lbnRTaGFkZXJTb3VyY2UgPSBgCiBmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRT
aGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgewogICAg
IHJldHVybiBwb3NpdGlvbjsKIH0KQEAgLTI3LDcgKzI3LDcgQEAgZnJhZ21lbnQgZmxvYXQ0IGZy
YWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNWX1Bvc2l0aW9uKSA6IFNWX1RhcmdldCAw
IHsKIAogbGV0IGRldmljZSA9IG51bGw7CiAKLWFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvbXB1dGVQ
aXBlbGluZShjb21wdXRlQ29kZSA9IGNvbXB1dGVTaGFkZXJTb3VyY2UpIHsKK3dpbmRvdy5jcmVh
dGVDb21wdXRlUGlwZWxpbmUgPSBhc3luYyBmdW5jdGlvbihjb21wdXRlQ29kZSA9IGNvbXB1dGVT
aGFkZXJTb3VyY2UpIHsKICAgICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvY29tcHV0ZS5o
dG1sLgogCiAgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVs
ZSh7Y29kZTogY29tcHV0ZUNvZGV9KTsKQEAgLTM5LDE1ICszOSwxNSBAQCBhc3luYyBmdW5jdGlv
biBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZUNvZGUgPSBjb21wdXRlU2hhZGVyU291cmNl
KSB7CiAgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlv
dXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKIAogICAgIGRldmljZS5jcmVhdGVDb21wdXRl
UGlwZWxpbmUoe2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0pOwotfQorfTsK
IAotYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUodmVydGV4Q29kZSA9IHZlcnRl
eFNoYWRlclNvdXJjZSwgZnJhZ21lbnRDb2RlID0gZnJhZ21lbnRTaGFkZXJTb3VyY2UpIHsKK3dp
bmRvdy5jcmVhdGVSZW5kZXJQaXBlbGluZSA9IGFzeW5jIGZ1bmN0aW9uKHZlcnRleENvZGUgPSB2
ZXJ0ZXhTaGFkZXJTb3VyY2UsIGZyYWdtZW50Q29kZSA9IGZyYWdtZW50U2hhZGVyU291cmNlKSB7
CiAgICAgLy8gQ29waWVkIGZyb20gd2ViZ3B1L3dobHNsL3dobHNsLmh0bWwuCiAKICAgICBjb25z
dCB2ZXJ0ZXhTaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiB2
ZXJ0ZXhDb2RlfSk7CiAgICAgY29uc3QgdmVydGV4U3RhZ2UgPSB7bW9kdWxlOiB2ZXJ0ZXhTaGFk
ZXJNb2R1bGUsIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhTaGFkZXIifTsKIAotICAgIGNvbnN0IGZyYWdt
ZW50U2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTogZnJhZ21l
bnRDb2RlfSk7CisgICAgY29uc3QgZnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBmcmFnbWVudENvZGUg
PyBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiBmcmFnbWVudENvZGV9KSA6IHZlcnRl
eFNoYWRlck1vZHVsZTsKICAgICBjb25zdCBmcmFnbWVudFN0YWdlID0ge21vZHVsZTogZnJhZ21l
bnRTaGFkZXJNb2R1bGUsIGVudHJ5UG9pbnQ6ICJmcmFnbWVudFNoYWRlciJ9OwogCiAgICAgY29u
c3QgcHJpbWl0aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGUtc3RyaXAiOwpAQCAtNzAsMTYgKzcwLDE2
IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5lKHZlcnRleENvZGUgPSB2ZXJ0
ZXhTaGFkZXJTb3VyY2UsIGZyYWdtZW50Q29kCiAgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBk
ZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKIAog
ICAgIGRldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZSh7dmVydGV4U3RhZ2UsIGZyYWdtZW50U3Rh
Z2UsIHByaW1pdGl2ZVRvcG9sb2d5LCByYXN0ZXJpemF0aW9uU3RhdGUsIGNvbG9yU3RhdGVzLCBk
ZXB0aFN0ZW5jaWxTdGF0ZSwgdmVydGV4SW5wdXQsIHNhbXBsZUNvdW50OiAxLCBsYXlvdXQ6IHBp
cGVsaW5lTGF5b3V0fSk7Ci19Cit9OwogCi1mdW5jdGlvbiBkZWxldGVEZXZpY2UoKSB7Cit3aW5k
b3cuZGVsZXRlRGV2aWNlID0gZnVuY3Rpb24oKSB7CiAgICAgZGV2aWNlID0gbnVsbDsKICAgICAv
LyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lz
ZSB0aGUgZnJvbnRlbmQKICAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29u
dHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwotfQorfTsKIAotYXN5bmMgZnVuY3Rpb24gbG9hZCgp
IHsKK3dpbmRvdy5sb2FkID0gYXN5bmMgZnVuY3Rpb24oKSB7CiAgICAgbGV0IGFkYXB0ZXIgPSBh
d2FpdCBuYXZpZ2F0b3IuZ3B1LnJlcXVlc3RBZGFwdGVyKCk7CiAgICAgZGV2aWNlID0gYXdhaXQg
YWRhcHRlci5yZXF1ZXN0RGV2aWNlKCk7CiAKQEAgLTkyLDcgKzkyLDcgQEAgYXN5bmMgZnVuY3Rp
b24gbG9hZCgpIHsKICAgICAgICAgYXdhaXQgYmVmb3JlVGVzdCgpOwogCiAgICAgcnVuVGVzdCgp
OwotfQorfTsKIAogVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgaWYg
KCFJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dyYW0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LWV4cGVjdGVkLnR4dApp
bmRleCBiYmVkMzcyMjNjNzVjMGZlNTg1NjFlODJhYjBkMTQ5NjVjNGFjYmZlLi5lYTZhMmM1YTc1
NTE1ZjU3M2Y2MTYzNzBhYWU0ZDI2ZmUyMmFkOTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1leHBlY3RlZC50
eHQKQEAgLTI2LDMgKzI2LDggQEAgUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgog
RXJyb3I6IEZhaWxlZCB0byB1cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdp
dmVuIHByb2dyYW1JZAogUEFTUzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCiAKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5TaGFyZWRTaGFkZXIK
K0NyZWF0aW5nIHNoYWRlciBwaXBlbGluZS4uLgorUEFTUzogVmVydGV4IHNvdXJjZSBzaG91bGQg
aGF2ZSBjaGFuZ2VkLgorUEFTUzogRnJhZ21lbnQgc291cmNlIHNob3VsZCBub3QgaGF2ZSBjaGFu
Z2VkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hh
ZGVyLXdlYmdwdS5odG1sCmluZGV4IDRkMmFkZGNmOTk1OWM0YzZmMzk5NTVhODFiNGJjMDkyMWYw
ZGViYjQuLjI3M2FjM2M3NmFjOTFlYmI2MTlhMmQ2MGFhMWNkM2E2MTZkYTYxMWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5o
dG1sCkBAIC0zNSw5ICszNSw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5Db21wdXRlLlZhbGlkIiwKICAgICAgICAgcHJvZ3Jh
bVR5cGU6IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZSwKICAgICAgICAgc2hh
ZGVyVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsCi0gICAgICAgIHNv
dXJjZTogYAorICAgICAgICBzb3VyY2U6IGAvLyBNT0RJRklFRAogW251bXRocmVhZHMoMiwgMSwg
MSldCi1jb21wdXRlIHZvaWQgbmV3Q29tcHV0ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBidWZmZXIg
OiByZWdpc3Rlcih1MCksIGZsb2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3BhdGNoVGhyZWFkSUQpIHsK
K2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lz
dGVyKHUwKSwgZmxvYXQzIHRocmVhZElEIDogU1ZfRGlzcGF0Y2hUaHJlYWRJRCkgewogICAgIGJ1
ZmZlclt1aW50KHRocmVhZElELngpXSA9IGJ1ZmZlclt1aW50KHRocmVhZElELngpXSAqIDIuMDsK
IH0KIGAsCkBAIC01NSw4ICs1NSw4IEBAIGNvbXB1dGUgdm9pZCBuZXdDb21wdXRlU2hhZGVyKGRl
dmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQzIHRocmVhCiAgICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguVmFsaWQiLAogICAgICAg
ICBwcm9ncmFtVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIsCiAgICAg
ICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsCi0gICAg
ICAgIHNvdXJjZTogYAotdmVydGV4IGZsb2F0NCBuZXdWZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0
aW9uIDogYXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9u
IHsKKyAgICAgICAgc291cmNlOiBgLy8gTU9ESUZJRUQKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hh
ZGVyKGZsb2F0NCBwb3NpdGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgx
KSkgOiBTVl9Qb3NpdGlvbiB7CiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogYCwKQEAgLTc0LDgg
Kzc0LDggQEAgdmVydGV4IGZsb2F0NCBuZXdWZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDog
YXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXQKICAgICAgICAgbmFtZTogIkNhbnZhcy51
cGRhdGVTaGFkZXIuV2ViR1BVLkZyYWdtZW50LlZhbGlkIiwKICAgICAgICAgcHJvZ3JhbVR5cGU6
IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAogICAgICAgICBzaGFkZXJUeXBl
OiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsCi0gICAgICAgIHNvdXJjZTog
YAotZnJhZ21lbnQgZmxvYXQ0IG5ld0ZyYWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNW
X1Bvc2l0aW9uKSA6IFNWX1RhcmdldCAwIHsKKyAgICAgICAgc291cmNlOiBgLy8gTU9ESUZJRUQK
K2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudFNoYWRlcihmbG9hdDQgcG9zaXRpb24gOiBTVl9Qb3Np
dGlvbikgOiBTVl9UYXJnZXQgMCB7CiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogYCwKQEAgLTg5
LDYgKzg5LDQ3IEBAIGZyYWdtZW50IGZsb2F0NCBuZXdGcmFnbWVudFNoYWRlcihmbG9hdDQgcG9z
aXRpb24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJnZXQgMCB7CiAgICAgICAgIHNob3VsZFRocm93
OiB0cnVlLAogICAgIH0pOwogCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuU2hhcmVkU2hhZGVyIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJUZXN0IHVwZGF0aW5nIGEgcGlwZWxpbmUgd2hlcmUgdGhlIHNhbWUgc2hhZGVy
IG1vZHVsZSBpcyB1c2VkIGZvciBib3RoIHRoZSB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMu
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgaWYgKCFjYW52YXMpCisgICAg
ICAgICAgICAgICAgdGhyb3cgIk1pc3NpbmcgY2FudmFzIjsKKworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyBzaGFkZXIgcGlwZWxpbmUuLi4iKTsKKyAgICAgICAg
ICAgIGxldCBbc2hhZGVyUHJvZ3JhbUl0ZW1BZGRlZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYXdhaXRF
dmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCksCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUodmVydGV4U2hh
ZGVyU291cmNlICsgZnJhZ21lbnRTaGFkZXJTb3VyY2UsIG51bGwpYCksCisgICAgICAgICAgICBd
KTsKKworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBzaGFkZXJQcm9ncmFtSXRlbUFk
ZGVkRXZlbnQuZGF0YS5pdGVtOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2hh
ZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZSA9PT0gV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5S
ZW5kZXIsICJTaGFkZXIgcHJvZ3JhbSB0eXBlIHNob3VsZCBiZSByZW5kZXIuIik7CisKKyAgICAg
ICAgICAgIGxldCBbb3JpZ2luYWxWZXJ0ZXhTb3VyY2UsIG9yaWdpbmFsRnJhZ21lbnRTb3VyY2Vd
ID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVl
c3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0
U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5T
aGFkZXJUeXBlLkZyYWdtZW50KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBjb25z
dCBzb3VyY2UgPSBgIC8vIE1PRElGSUVECit2ZXJ0ZXggZmxvYXQ0IHZlcnRleFNoYWRlcihmbG9h
dDQgcG9zaXRpb24gOiBhdHRyaWJ1dGUoMCksIGZsb2F0IGkgOiBhdHRyaWJ1dGUoMSkpIDogU1Zf
UG9zaXRpb24geworICAgIHJldHVybiBwb3NpdGlvbjsKK30KK2A7CisgICAgICAgICAgICBhd2Fp
dCBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LCBzb3VyY2UpOworCisgICAgICAgICAgICBs
ZXQgW25ld1ZlcnRleFNvdXJjZSwgbmV3RnJhZ21lbnRTb3VyY2VdID0gYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hh
ZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4
KSwKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRl
clByb2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5v
dFNoYWxsb3dFcXVhbChvcmlnaW5hbFZlcnRleFNvdXJjZSwgbmV3VmVydGV4U291cmNlLCAiVmVy
dGV4IHNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RTaGFsbG93RXF1YWwob3JpZ2luYWxGcmFnbWVudFNvdXJjZSwgbmV3RnJhZ21l
bnRTb3VyY2UsICJGcmFnbWVudCBzb3VyY2Ugc2hvdWxkIG5vdCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0KKyAgICB9KTsKKwogICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwog
fQogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380408</attachid>
            <date>2019-10-08 00:26:21 -0700</date>
            <delta_ts>2019-10-08 00:29:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202031-20191008002620.patch</filename>
            <type>text/plain</type>
            <size>29658</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM2ZDY1NjAyYmNlNmMxZTkwNjk4NzU2Y2FlYzk2
OGJlODQxYmU1ZjguLjI2MzRjYjMyNjZkMDU4NmRmM2FiN2U1ODYzZDZlZjU4MTFhM2JjNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IG1vZGlmaWNhdGlvbnMgdG8gc2hhZGVyIG1vZHVsZXMgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIHZlcnRleC9mcmFnbWVudCBzaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbjoKKyAg
ICAgICAgQ3JlYXRlIGEgZGlzdGluY3QgYFNoYWRlclByb2dyYW1gIHR5cGUgc28gdGhhdCBhZGRp
dGlvbmFsIGRhdGEgY2FuIGJlIGJ1bmRsZWQgYW5kIHNlbnQgdG8KKyAgICAgICAgdGhlIGZyb250
ZW5kIGFzIHBhcnQgb2YgdGhlIGBwcm9ncmFtQ3JlYXRlZGAgZXZlbnQgd2l0aG91dCBoYXZpbmcg
dG8gd29ycnkgYWJvdXQgaGF2aW5nIHRvbworICAgICAgICBtYW55IGFyZ3VtZW50cy4KKwogMjAx
OS0xMC0wMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+CiAKICAgICAg
ICAgW1dpbkNhaXJvXSBSZW1vdGUgSW5zcGVjdG9yIGRvZXNuJ3QgZ3JhY2VmdWxseSBzaHV0ZG93
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDQ0NThlZGE4OTQ4ODZiMDk0NTVkZmNmNzQ1NjdlNTkwNWU4ZjRjNDYu
LmI5N2RlZjdkYTk3ZmQ0MWZkNWI1YTE2Y2QzZGFmMTdiYWI5NGIxYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOCBAQAorMjAxOS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFzOiBtb2RpZmljYXRpb25zIHRvIHNo
YWRlciBtb2R1bGVzIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRl
UGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpy
ZWNvbXBpbGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUp
OgorICAgICAgICBSZWNyZWF0ZSB0aGUgdmVydGV4L2ZyYWdtZW50L2NvbXB1dGUgc2hhZGVyIG1v
ZHVsZShzKSB3aGVuIHJlY29tcGlsaW5nIHNvIHRoYXQgbW9kaWZpY2F0aW9ucworICAgICAgICB0
byBpdCB2aWEgdGhpcyBwaXBlbGluZSBkb24ndCBhZmZlY3Qgb3RoZXIgcGlwZWxpbmVzIHRoYXQg
YWxzbyB1c2UgdGhlIHNhbWUgc2hhZGVyIG1vZHVsZS4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6YnVpbGRPYmplY3RGb3JTaGFkZXJQcm9ncmFtKTogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSk6Cisg
ICAgICAgIEluY2x1ZGUgYXMgcGFydCBvZiB0aGUgYENhbnZhcy5ldmVudC5wcm9ncmFtQ3JlYXRl
ZGAgcGF5bG9hZCBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQorICAgICAgICB2ZXJ0ZXgg
c2hhZGVyIG1vZHVsZSBhbmQgZnJhZ21lbnQgc2hhZGVyIG1vZHVsZSBhcmUgdGhlIHNhbWUgZm9y
IGBXZWJHUFVSZW5kZXJQaXBlbGluZWBzLgorCiAyMDE5LTEwLTA0ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYWRvdyBQYXJ0c10gU3VwcG9ydCAn
ZXhwb3J0cGFydHMnIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNzcwMjVj
MjIzMzYxZDJhMWZmNTRiOWJhZDc3YmJmN2Q3NWEwYjE1ZS4uYWEwYTEyMzcyZTk1MGMzMDVjMzlm
MmQxMjI2ZDNlZTg5MTYyZjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzkgQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogbW9kaWZpY2F0aW9ucyB0byBzaGFkZXIgbW9k
dWxlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdmVydGV4L2ZyYWdtZW50IHNoYWRlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSB2ZXJ0ZXgg
YW5kIGZyYWdtZW50IHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgc291cmNlIG1vZHVsZSBmb3IgYSBX
ZWJHUFUgc2hhZGVyIHBpcGVsaW5lLAorICAgICAgICBvbmx5IGRpc3BsYXkgYSBzaW5nbGUgZWRp
dGFibGUgY29udGVudCB2aWV3IGZvciB0aGF0IHNoYWRlciBwaXBlbGluZSBpbiB0aGUgQ2FudmFz
IFRhYi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanM6
CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0u
cHJvdG90eXBlLmdldCBzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcik6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qczoKKyAgICAgICAg
KFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzOgorICAgICAgICAoV0kuQ2Fu
dmFzT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0ku
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1Db250
ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvbnRlbnQpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUsIC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleC5zaGFyZXMtdmVydGV4LWZyYWdtZW50LXNoYWRl
cik6IEFkZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdtZW50LXNoYWRl
ciksIGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIu
ZnJhZ21lbnQpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsIGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4Om5vdCguc2hhcmVzLXZlcnRleC1m
cmFnbWVudC1zaGFkZXIpKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnNoYWRlci5jb21wdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0
cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LCBib2R5W2Rp
cj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJv
Z3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsIGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4KTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qczoKKyAgICAgICAgUmVwbGFjZSB0
aGUgdmVydGV4L2ZyYWdtZW50IHNwZWNpZmljIE1JTUUgdHlwZXMgd2l0aCBhIG1vcmUgZ2VuZXJh
bCAicmVuZGVyIiBNSU1FIHR5cGUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIwMTktMTAtMDIgIE5pa2l0YSBWYXNpbHlldiAgPG52
YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzOiBmb3Ig
cnVsZXMgdGhhdCBkb24ndCBtYXRjaCBzZWxlY3RlZCBub2RlLCBwcm9wZXJ0eSB2YWx1ZXMgYWx3
YXlzIHNob3cgYXMgaW52YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KaW5kZXggOGFlZTU1ZTE4NDgxNTYxYzIxYmI0NDgx
ODYwNzAwZDJkOTU3N2Y0Zi4uMTc1ZmY0MDlmNjFmOGFiNjdjNTUyNDI4MjMwNDQzYTFhODU5YTM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9D
YW52YXMuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0NhbnZhcy5qc29uCkBAIC01Nyw2ICs1NywxNyBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibWVtb3J5Q29zdCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJNZW1vcnkgdXNhZ2Ugb2YgdGhlIGNhbnZhcyBpbiBieXRlcy4iIH0sCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJiYWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiQ29uc29sZS5DYWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJCYWNrdHJhY2UgdGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlzIGNhbnZh
cyBjb250ZXh0IHdhcyBjcmVhdGVkLiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAiaWQiOiAiU2hhZGVyUHJvZ3JhbSIsCisgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZm9ybWF0aW9u
IGFib3V0IGEgV2ViR0wvV2ViR0wyIHNoYWRlciBwcm9ncmFtIG9yIFdlYkdQVSBzaGFkZXIgcGlw
ZWxpbmUuIiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicHJvZ3JhbVR5cGUiLCAiJHJlZiI6ICJQcm9ncmFtVHlwZSIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAs
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlciIs
ICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSW5k
aWNhdGVzIHdoZXRoZXIgdGhlIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVyIG1vZHVsZXMgYXJl
IHRoZSBzYW1lIG9iamVjdCBmb3IgYSByZW5kZXIgc2hhZGVyIHBpcGxlaW5lIGZvciBhIFdlYkdQ
VSBkZXZpY2UuIiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21t
YW5kcyI6IFsKQEAgLTIyNyw5ICsyMzgsNyBAQAogICAgICAgICB7CiAgICAgICAgICAgICAibmFt
ZSI6ICJwcm9ncmFtQ3JlYXRlZCIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAsCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQi
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtVHlwZSIsICIkcmVmIjogIlBy
b2dyYW1UeXBlIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFkZXJQcm9ncmFtIiwg
IiRyZWYiOiAiU2hhZGVyUHJvZ3JhbSIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAg
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCAzNTM1MzkyMzM1ZjRlZjhjNTQ2NzgwYjczZGIwOWFh
MzAyYWI2OGY0Li4yMDdiMmY1NDcyMjhjZDllNjgyMGYyMjU0MzVhMTg0NzI3MWZiZmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5jcHAKQEAgLTMyLDcgKzMyLDEwIEBACiAjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMu
aCIKICNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUg
IkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIK
KyNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKQEAgLTU2LDYgKzU5LDExIEBAIGJvb2wgV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCiB7
CiAgICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5lICYmIG1fY29tcHV0ZVNoYWRlcikgewogICAgICAg
ICBpZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1fY29tcHV0ZVNoYWRlci52
YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgLy8gUmVjcmVhdGUgdGhlIHNoYWRlciBtb2R1
bGUgc28gdGhhdCBtb2RpZmljYXRpb25zIHRvIGl0IHZpYSB0aGlzIHBpcGVsaW5lIGRvbid0IGFm
ZmVjdAorICAgICAgICAgICAgLy8gb3RoZXIgcGlwZWxpbmVzIHRoYXQgYWxzbyB1c2UgdGhlIHNh
bWUgc2hhZGVyIG1vZHVsZS4KKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIGNvbXB1dGVTb3VyY2Ug
PSB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlLT5zb3VyY2UoKTsKKyAgICAgICAgICAgIHdlYkdQ
VUNvbXB1dGVTaGFkZXJNb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFk
ZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgY29tcHV0ZVNvdXJjZSB9KSwg
Y29tcHV0ZVNvdXJjZSk7CisKICAgICAgICAgICAgIGlmIChhdXRvKiBncHVDb21wdXRlU2hhZGVy
TW9kdWxlID0gd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKICAgICAgICAg
ICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlKG1ha2VS
ZWYoKmdwdUNvbXB1dGVTaGFkZXJNb2R1bGUpLCB7IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgpLmVu
dHJ5UG9pbnQgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLT5y
ZWNvbXBpbGUoZGV2aWNlLmRldmljZSgpLCBXVEZNb3ZlKGNvbXB1dGVTdGFnZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUu
Y3BwCmluZGV4IGZlOTU3ZjU3MGEyZjE2YzczZGY5MjI5MTQzN2ViZmFiZTNiN2ZjMDQuLjkxY2Yy
YjQ5YTJhN2U5YmQ5ZGFiZWY3MjUyODIwNzRiNjE4NmQxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKQEAgLTMy
LDcgKzMyLDEwIEBACiAjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5o
IgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVs
ZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJXZWJH
UFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAKQEAgLTU3LDExICs2MCwyNSBAQCBib29sIFdlYkdQVVJlbmRlclBpcGVsaW5l
OjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCiB7CiAgICAgaWYgKG1fcmVu
ZGVyUGlwZWxpbmUgJiYgbV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAgICAgaWYgKGF1dG8mIHdlYkdQ
VVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7Cisg
ICAgICAgICAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyTW9kdWxlID0gbV9mcmFn
bWVudFNoYWRlciAmJiBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkubW9kdWxlID09IHdlYkdQVVZl
cnRleFNoYWRlck1vZHVsZTsKKworICAgICAgICAgICAgLy8gUmVjcmVhdGUgdGhlIHNoYWRlciBt
b2R1bGUgc28gdGhhdCBtb2RpZmljYXRpb25zIHRvIGl0IHZpYSB0aGlzIHBpcGVsaW5lIGRvbid0
IGFmZmVjdAorICAgICAgICAgICAgLy8gb3RoZXIgcGlwZWxpbmVzIHRoYXQgYWxzbyB1c2UgdGhl
IHNhbWUgc2hhZGVyIG1vZHVsZS4KKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHZlcnRleFNvdXJj
ZSA9IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICB3ZWJH
UFVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFk
ZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgdmVydGV4U291cmNlIH0pLCB2
ZXJ0ZXhTb3VyY2UpOworCiAgICAgICAgICAgICBpZiAoYXV0byogZ3B1VmVydGV4U2hhZGVyTW9k
dWxlID0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgewogICAgICAgICAgICAg
ICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZShtYWtlUmVmKCpn
cHVWZXJ0ZXhTaGFkZXJNb2R1bGUpLCB7IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkuZW50cnlQb2lu
dCB9KTsKICAgICAgICAgICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3I+IGZyYWdtZW50U3RhZ2U7CiAgICAgICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRTaGFk
ZXIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUZyYWdtZW50U2hhZGVy
TW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyTW9kdWxlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlID0gd2ViR1BV
VmVydGV4U2hhZGVyTW9kdWxlOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnRTb3VyY2UgPSB3ZWJH
UFVGcmFnbWVudFNoYWRlck1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNy
ZWF0ZShHUFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgZnJhZ21l
bnRTb3VyY2UgfSksIGZyYWdtZW50U291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUZyYWdtZW50U2hhZGVyTW9k
dWxlID0gd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UgPSBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3IobWFrZVJlZigqZ3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUpLCB7IG1fZnJhZ21lbnRTaGFk
ZXIudmFsdWUoKS5lbnRyeVBvaW50IH0pOwogICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKaW5k
ZXggN2FmNzE5NjMyOGYxMGM2OTYxYmQyN2Y4MzM5MGM5NDdhZWU2MDg0MS4uODZkYjViMzMwZGYw
YTI0ODBiYWQ2YzBmYjljY2NkNTUwMzNjZjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjM1LDQgKzIzNSw1MyBA
QCBib29sIEluc3BlY3RvclNoYWRlclByb2dyYW06OnVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlNoYWRlclR5cAogICAgICk7CiB9CiAKK1JlZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlNoYWRlclByb2dyYW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06OmJ1
aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSgpCit7CisgICAgYm9vbCBzaGFyZXNWZXJ0ZXhGcmFn
bWVudFNoYWRlciA9IGZhbHNlOworCisgICAgdXNpbmcgUHJvZ3JhbVR5cGVUeXBlID0gT3B0aW9u
YWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZT47CisgICAgYXV0byBw
cm9ncmFtVHlwZSA9IFdURjo6c3dpdGNoT24obV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkK
KyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4pIC0+IFBy
b2dyYW1UeXBlVHlwZSB7CisgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6
Q2FudmFzOjpQcm9ncmFtVHlwZTo6UmVuZGVyOworICAgICAgICB9LAorI2VuZGlmCisjaWYgRU5B
QkxFKFdFQkdQVSkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBp
cGVsaW5lPiBwaXBlbGluZVdyYXBwZXIpIC0+IFByb2dyYW1UeXBlVHlwZSB7CisgICAgICAgICAg
ICBhdXRvJiBwaXBlbGluZSA9IHBpcGVsaW5lV3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlm
IChpczxXZWJHUFVDb21wdXRlUGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6Q29tcHV0ZTsK
KyAgICAgICAgICAgIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpKSB7Cisg
ICAgICAgICAgICAgICAgYXV0byYgcmVuZGVyUGlwZWxpbmUgPSBkb3duY2FzdDxXZWJHUFVSZW5k
ZXJQaXBlbGluZT4ocGlwZWxpbmUpOworICAgICAgICAgICAgICAgIGF1dG8gdmVydGV4U2hhZGVy
ID0gcmVuZGVyUGlwZWxpbmUudmVydGV4U2hhZGVyKCk7CisgICAgICAgICAgICAgICAgYXV0byBm
cmFnbWVudFNoYWRlciA9IHJlbmRlclBpcGVsaW5lLmZyYWdtZW50U2hhZGVyKCk7CisgICAgICAg
ICAgICAgICAgaWYgKHZlcnRleFNoYWRlciAmJiBmcmFnbWVudFNoYWRlciAmJiB2ZXJ0ZXhTaGFk
ZXIudmFsdWUoKS5tb2R1bGUgPT0gZnJhZ21lbnRTaGFkZXIudmFsdWUoKS5tb2R1bGUpCisgICAg
ICAgICAgICAgICAgICAgIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlw
ZTo6UmVuZGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICBbJl0gKE1vbm9zdGF0ZSkgLT4gUHJvZ3Jh
bVR5cGVUeXBlIHsKKyNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShXRUJHUFUpCisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICk7CisgICAgaWYgKCFwcm9ncmFtVHlwZSkgewor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5kZXI7CisgICAgfQorCisg
ICAgYXV0byBwYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJQcm9n
cmFtOjpjcmVhdGUoKQorICAgICAgICAuc2V0UHJvZ3JhbUlkKG1faWRlbnRpZmllcikKKyAgICAg
ICAgLnNldFByb2dyYW1UeXBlKHByb2dyYW1UeXBlLnZhbHVlKCkpCisgICAgICAgIC5zZXRDYW52
YXNJZChtX2NhbnZhcy5pZGVudGlmaWVyKCkpCisgICAgICAgIC5yZWxlYXNlKCk7CisgICAgaWYg
KHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAgICBwYXlsb2FkLT5zZXRTaGFyZXNW
ZXJ0ZXhGcmFnbWVudFNoYWRlcih0cnVlKTsKKyAgICByZXR1cm4gcGF5bG9hZDsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtLmgKaW5kZXggZGNkOWViMWZmZmE2OTgxYThkMjkyMjg1ZGExNGI1
NGQ4MjA3NTdhZC4uNmRmMTNkZmZkZWI0MDA0MGZkOGFhODliYmY0MDY1YWU4MDRmYjY2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5o
CkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhpZ2hsaWdodGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9oaWdobGlnaHRlZDsgfQogICAgIHZvaWQgc2V0SGlnaGxpZ2h0ZWQoYm9vbCB2
YWx1ZSkgeyBtX2hpZ2hsaWdodGVkID0gdmFsdWU7IH0KIAorICAgIFJlZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlNoYWRlclByb2dyYW0+IGJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3Jh
bSgpOworCiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJHTCkKICAgICBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtKFdlYkdMUHJvZ3JhbSYsIEluc3BlY3RvckNhbnZhcyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApp
bmRleCAzMDMyMWE2ZjU0MGIwZTQzNmEyZjQzYTBmOWNlNzVlNDM3MTczZDk4Li41Y2I3OGJkZGY4
ODExOWI3YjUxNTZlNzRjMjgxNzEzY2FmMjdjNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtNTY3
LDEwICs1NjcsMTAgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR0xQ
cm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnQKICAgICBpZiAoIWluc3BlY3Rv
ckNhbnZhcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0g
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMp
OwotICAgIFN0cmluZyBwcm9ncmFtSWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50
aWZpZXIoKTsKLSAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1J
ZGVudGlmaWVyLCBXVEZNb3ZlKGluc3BlY3RvclByb2dyYW0pKTsKLSAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHBy
b2dyYW1JZGVudGlmaWVyLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBl
OjpSZW5kZXIpOworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbVJlZiA9IEluc3BlY3RvclNoYWRl
clByb2dyYW06OmNyZWF0ZShwcm9ncmFtLCAqaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBhdXRvJiBp
bnNwZWN0b3JQcm9ncmFtID0gaW5zcGVjdG9yUHJvZ3JhbVJlZi5nZXQoKTsKKyAgICBtX2lkZW50
aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KGluc3BlY3RvclByb2dyYW0uaWRlbnRpZmllcigp
LCBXVEZNb3ZlKGluc3BlY3RvclByb2dyYW1SZWYpKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yUHJvZ3JhbS5idWlsZE9iamVjdEZvclNoYWRlclBy
b2dyYW0oKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKQEAgLTY1MCwxOCArNjUwLDEwIEBAIHZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURl
dmljZSYgZGV2aWNlLCBXZWJHUFVQCiAKICAgICBBU1NFUlQocGlwZWxpbmUuaXNWYWxpZCgpKTsK
IAotICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNy
ZWF0ZShwaXBlbGluZSwgKmluc3BlY3RvckNhbnZhcyk7Ci0gICAgU3RyaW5nIHByb2dyYW1JZGVu
dGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigpOwotICAgIG1faWRlbnRpZmll
clRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVj
dG9yUHJvZ3JhbSkpOwotCi0gICAgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFz
OjpQcm9ncmFtVHlwZT4gcHJvZ3JhbVR5cGU7Ci0gICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBl
bGluZT4ocGlwZWxpbmUpKQotICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OkNvbXB1dGU7Ci0gICAgZWxzZSBpZiAoaXM8V2ViR1BV
UmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkKLSAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5kZXI7Ci0gICAgQVNTRVJUKHBy
b2dyYW1UeXBlKTsKLQotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChp
bnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1U
eXBlLnZhbHVlKCkpOworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbVJlZiA9IEluc3BlY3RvclNo
YWRlclByb2dyYW06OmNyZWF0ZShwaXBlbGluZSwgKmluc3BlY3RvckNhbnZhcyk7CisgICAgYXV0
byYgaW5zcGVjdG9yUHJvZ3JhbSA9IGluc3BlY3RvclByb2dyYW1SZWYuZ2V0KCk7CisgICAgbV9p
ZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNldChpbnNwZWN0b3JQcm9ncmFtLmlkZW50aWZp
ZXIoKSwgV1RGTW92ZShpbnNwZWN0b3JQcm9ncmFtUmVmKSk7CisgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3RvclByb2dyYW0uYnVpbGRPYmplY3RGb3JTaGFk
ZXJQcm9ncmFtKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJv
eVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDQ4NzA1MjE3M2FmZmI1ZmZjY2Q3Y2U2MTE2YmY0NzI3OGNl
MmY5MDUuLmFjZTU4MDM4N2FkMmI3YWMzNjJhYmIwZjZiZmQ4NTBiODE5OTQ0NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtNDY2LDcgKzQ2Niw2IEBAIGxvY2FsaXplZFN0
cmluZ3NbIkVuc3VyZSB0aGF0IG9ubHkgb25lIG1haW4gY29udGVudCBzZWN0aW9uIGlzIHVzZWQg
b24gdGhlIHBhZ2UuCiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCB2YWx1ZXMgZm9yIFx1
MDAyMiVzXHUwMDIyIGFyZSB2YWxpZC4iXSA9ICJFbnN1cmUgdGhhdCB2YWx1ZXMgZm9yIFx1MDAy
MiVzXHUwMDIyIGFyZSB2YWxpZC4iOwogbG9jYWxpemVkU3RyaW5nc1siRW50ZXJlZCBGdWxsLVNj
cmVlbiBNb2RlIl0gPSAiRW50ZXJlZCBGdWxsLVNjcmVlbiBNb2RlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVudGlyZSBSZWNvcmRpbmciXSA9ICJFbnRpcmUgUmVjb3JkaW5nIjsKLWxvY2FsaXplZFN0
cmluZ3NbIkVudHJ5IHBvaW50OiAiXSA9ICJFbnRyeSBwb2ludDogIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVycm9yIl0gPSAiRXJyb3IiOwogbG9jYWxpemVkU3RyaW5nc1siRXJyb3I6ICJdID0gIkVy
cm9yOiAiOwogbG9jYWxpemVkU3RyaW5nc1siRXJyb3JzIl0gPSAiRXJyb3JzIjsKQEAgLTEyMzIs
NiArMTIzMSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZlcmJvc2UiXSA9ICJWZXJib3NlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlZlcnNpb24iXSA9ICJWZXJzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlZlcnRleCJdID0gIlZlcnRleCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXggU2hhZGVyIl0g
PSAiVmVydGV4IFNoYWRlciI7Citsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXgvRnJhZ21lbnQgU2hh
ZGVyIl0gPSAiVmVydGV4L0ZyYWdtZW50IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ5
IEhpZ2giXSA9ICJWZXJ5IEhpZ2giOwogbG9jYWxpemVkU3RyaW5nc1siVmlldyBJbWFnZSJdID0g
IlZpZXcgSW1hZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siVmlldyBSZWNvcmRpbmciXSA9ICJWaWV3
IFJlY29yZGluZyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRleCAzOGYwMWJi
NjY2N2VjMDA4MzA3ZjBlM2Y1MmY0MmRmZTJiZTFmNTgwLi43MzNjMTAwNjYzODI4NmQ0ZDk0NjYx
NWUwNjRhNGZjNzNhZDRhNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAg
LTIzNCwyMCArMjM0LDI4IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhbnZhcy5lbmFibGVFeHRlbnNpb24oZXh0ZW5z
aW9uKTsKICAgICB9CiAKLSAgICBwcm9ncmFtQ3JlYXRlZChjYW52YXNJZGVudGlmaWVyLCBwcm9n
cmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUpCisgICAgcHJvZ3JhbUNyZWF0ZWQoc2hhZGVyUHJv
Z3JhbVBheWxvYWQpCiAgICAgewotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRl
bnRpZmllck1hcC5nZXQoY2FudmFzSWRlbnRpZmllcik7CisgICAgICAgIGxldCBjYW52YXMgPSB0
aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChzaGFkZXJQcm9ncmFtUGF5bG9hZC5jYW52YXNJ
ZCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyk7CiAgICAgICAgIGlmICghY2FudmFz
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9z
aGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5oYXMocHJvZ3JhbUlkZW50aWZpZXIpLCBgU2hhZGVy
UHJvZ3JhbSBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7cHJvZ3JhbUlkZW50aWZpZXJ9LmApOwor
ICAgICAgICBsZXQgcHJvZ3JhbUlkID0gc2hhZGVyUHJvZ3JhbVBheWxvYWQucHJvZ3JhbUlkOwor
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAu
aGFzKHByb2dyYW1JZCksIGBTaGFkZXJQcm9ncmFtIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtw
cm9ncmFtSWR9LmApOwogCi0gICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBwcm9n
cmFtVHlwZWAgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMy4wKTogYENhbnZhcy5TaGFkZXJQcm9ncmFtLnByb2dyYW1UeXBlYCBkaWQgbm90IGV4aXN0
IHlldC4KKyAgICAgICAgbGV0IHByb2dyYW1UeXBlID0gc2hhZGVyUHJvZ3JhbVBheWxvYWQucHJv
Z3JhbVR5cGU7CiAgICAgICAgIGlmICghcHJvZ3JhbVR5cGUpCiAgICAgICAgICAgICBwcm9ncmFt
VHlwZSA9IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOwogCi0gICAgICAgIGxl
dCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIHByb2dy
YW1UeXBlLCBjYW52YXMpOworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworCisgICAgICAgIC8v
IENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogYENhbnZhcy5TaGFkZXJQcm9ncmFtLnNoYXJlc1Zl
cnRleEZyYWdtZW50U2hhZGVyYCBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHNoYWRl
clByb2dyYW1QYXlsb2FkLnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAgICAgICAg
b3B0aW9ucy5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlciA9IHRydWU7CisKKyAgICAgICAgbGV0
IHByb2dyYW0gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbShwcm9ncmFtSWQsIHByb2dyYW1UeXBlLCBj
YW52YXMsIG9wdGlvbnMpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1h
cC5zZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsKIAogICAgICAgICBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcwpp
bmRleCBjOWI2ZTAzMjFmMjIwYjdjYTJjMDUzNDlmYTA2NTEzMjI1MjhlOWJiLi4wMTZkOGIxOGY0
NjhjYzI0OGJiMzMxOTMxNmJhMjhjMDRmYmI3Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcwpA
QCAtMjUsNyArMjUsNyBAQAogCiBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3Jh
bSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIsIHByb2dy
YW1UeXBlLCBjYW52YXMpCisgICAgY29uc3RydWN0b3IoaWRlbnRpZmllciwgcHJvZ3JhbVR5cGUs
IGNhbnZhcywge3NoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyfSA9IHt9KQogICAgIHsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoaWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9i
amVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZSkuaW5jbHVkZXMocHJvZ3JhbVR5
cGUpKTsKQEAgLTM3LDYgKzM3LDEwIEBAIFdJLlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQ
cm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2lkZW50aWZpZXIgPSBpZGVu
dGlmaWVyOwogICAgICAgICB0aGlzLl9wcm9ncmFtVHlwZSA9IHByb2dyYW1UeXBlOwogICAgICAg
ICB0aGlzLl9jYW52YXMgPSBjYW52YXM7CisKKyAgICAgICAgdGhpcy5fc2hhcmVzVmVydGV4RnJh
Z21lbnRTaGFkZXIgPSAhIXNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyOworICAgICAgICBjb25z
b2xlLmFzc2VydCghdGhpcy5fc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgfHwgKHRoaXMuX2Nh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSAmJiB0aGlz
Ll9wcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpKTsKKwog
ICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlOwogICAgIH0KIApAQCAtNzgsNiArODIsNyBA
QCBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVj
dAogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsgfQogICAg
IGdldCBwcm9ncmFtVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3Byb2dyYW1UeXBlOyB9CiAgICAgZ2V0
IGNhbnZhcygpIHsgcmV0dXJuIHRoaXMuX2NhbnZhczsgfQorICAgIGdldCBzaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlcigpIHsgcmV0dXJuIHRoaXMuX3NoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVy
OyB9CiAKICAgICBnZXQgZGlzcGxheU5hbWUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2
ZXIuanMKaW5kZXggNmY1MzU3NDQzNDZmMjA3MTIwY2JlOWU5ZDNjYTI3ZjRjYmVlYTA4Ny4uOGZm
M2ZlNzIwYjczZjIzMGM2ZWQ1ZTcxMDQwMWMzYWM3Y2ZjNDUwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFz
T2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDE2IEBAIFdJLkNhbnZhc09ic2VydmVyID0gY2xhc3Mg
Q2FudmFzT2JzZXJ2ZXIKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5leHRlbnNpb25FbmFibGVk
KGNhbnZhc0lkLCBleHRlbnNpb24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNhbnZh
c0lkLCBwcm9ncmFtSWQsIHByb2dyYW1UeXBlKQorICAgIHByb2dyYW1DcmVhdGVkKHNoYWRlclBy
b2dyYW0pCiAgICAgewotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKGNh
bnZhc0lkLCBwcm9ncmFtSWQsIHByb2dyYW1UeXBlKTsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElU
WSAoaU9TIDEzLjApOiBgc2hhZGVyUHJvZ3JhbWAgcmVwbGFjZWQgYGNhbnZhc0lkYCBhbmQgYHBy
b2dyYW1JZGAuCisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7CisgICAgICAg
ICAgICBzaGFkZXJQcm9ncmFtID0geworICAgICAgICAgICAgICAgIGNhbnZhc0lkOiBhcmd1bWVu
dHNbMF0sCisgICAgICAgICAgICAgICAgcHJvZ3JhbUlkOiBhcmd1bWVudHNbMV0sCisgICAgICAg
ICAgICB9OworICAgICAgICB9CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0
ZWQoc2hhZGVyUHJvZ3JhbSk7CiAgICAgfQogCiAgICAgcHJvZ3JhbURlbGV0ZWQocHJvZ3JhbUlk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29kZU1pcnJvckFkZGl0aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKaW5kZXggOGNlMjgxNTMyZWU5YTU1Njcz
OWRmZmRmMDEyYzE3ZmMxMWU4YjI0OS4uZTEzOTBjZDcxOWY0MzM4Njg2YTdlM2Q3MzVhZjQ0OWQ5
ZWVkYzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCkBAIC02ODUsOCArNjg1
LDcgQEAKIAogICAgIC8vIEZJWE1FOiBBZGQgV0hMU0wgc3BlY2lmaWMgbW9kZXMuCiAgICAgQ29k
ZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtY29tcHV0ZSIsIENvZGVNaXJyb3IucmVz
b2x2ZU1vZGUoIngtc2hhZGVyL3gtdmVydGV4IikpOwotICAgIENvZGVNaXJyb3IuZGVmaW5lTUlN
RSgieC1waXBlbGluZS94LWZyYWdtZW50IiwgQ29kZU1pcnJvci5yZXNvbHZlTW9kZSgieC1zaGFk
ZXIveC1mcmFnbWVudCIpKTsKLSAgICBDb2RlTWlycm9yLmRlZmluZU1JTUUoIngtcGlwZWxpbmUv
eC12ZXJ0ZXgiLCBDb2RlTWlycm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZlcnRleCIpKTsK
KyAgICBDb2RlTWlycm9yLmRlZmluZU1JTUUoIngtcGlwZWxpbmUveC1yZW5kZXIiLCBDb2RlTWly
cm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZlcnRleCIpKTsKIH0pKCk7CiAKIFdJLmNvbXBh
cmVDb2RlTWlycm9yUG9zaXRpb25zID0gZnVuY3Rpb24oYSwgYikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFk
ZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDQ5NmE1ZTUzOWY5NzQyMDI0ODdjODVjODFi
YmJkZWM1OTg5MTViZTYuLjJmNmMwNjY0MzExOTE5Y2MxZGNhOGVkZDA0YzMwZjQ2OTAxNzBkZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1No
YWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcwpAQCAtMzEsMTkg
KzMxLDIwIEBACiAgICAgYm90dG9tOiAwOwogfQogCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9n
cmFtID4gLnNoYWRlci5jb21wdXRlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyLmNvbXB1dGUsCisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52
ZXJ0ZXguc2hhcmVzLXZlcnRleC1mcmFnbWVudC1zaGFkZXIgewogICAgIHJpZ2h0OiAwOwogICAg
IGxlZnQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3Jh
bSA+IC5zaGFkZXIudmVydGV4LAorYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdtZW50LXNoYWRl
ciksCiBib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVy
LmZyYWdtZW50IHsKICAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxlZnQ6IDA7CiB9
CiAKIGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIu
ZnJhZ21lbnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyLnZlcnRleDpub3QoLnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyKSB7
CiAgICAgd2lkdGg6IGNhbGMoNTAlICsgMXB4KTsKICAgICByaWdodDogMDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwppbmRleCBlOTg3ZmU1NmM4NmRiYWU3N2Jh
ZWIwMjE2ZTE3MDIxYjQxNmQ2ZjczLi4xNzc1MWZhNTBlYTlkNTZmMGRhY2M2YzhlZmNmMTJhMTJm
ZTYzYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCkBAIC0z
Miw2ICszMiw3IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclBy
b2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAgICAgICAgIHN1cGVyKHNoYWRl
clByb2dyYW0pOwogCiAgICAgICAgIGxldCBpc1dlYkdQVSA9IHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOwor
ICAgICAgICBsZXQgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgPSBpc1dlYkdQVSAmJiB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyOwogCiAgICAgICAg
IHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0
aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2Fk
RnVsbC5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlv
bkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVBy
aW9yaXR5LkxvdzsKQEAgLTY3LDE4ICs2OCwyMiBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZp
ZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vgog
CiAgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudDoK
ICAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlT
dHJpbmcoIkZyYWdtZW50IFNoYWRlciIpOwotICAgICAgICAgICAgICAgIHRleHRFZGl0b3IubWlt
ZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtZnJhZ21lbnQiIDogIngtc2hhZGVyL3gt
ZnJhZ21lbnQiOworICAgICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQ
VSA/ICJ4LXBpcGVsaW5lL3gtcmVuZGVyIiA6ICJ4LXNoYWRlci94LWZyYWdtZW50IjsKICAgICAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNo
YWRlclR5cGUuVmVydGV4OgotICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4
dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOwotICAgICAgICAgICAgICAg
IHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtdmVydGV4IiA6
ICJ4LXNoYWRlci94LXZlcnRleCI7CisgICAgICAgICAgICAgICAgaWYgKHNoYXJlc1ZlcnRleEZy
YWdtZW50U2hhZGVyKQorICAgICAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRl
eHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleC9GcmFnbWVudCBTaGFkZXIiKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIu
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAgICAgICAgICAg
ICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtcmVuZGVy
IiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9yKTsKICAgICAg
ICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0ZXh0RWRpdG9yLmVsZW1lbnQpOwogICAgICAg
ICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNoYWRlciIsIHNoYWRlclR5cGUpOworICAg
ICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoInNoYXJlcy12ZXJ0ZXgtZnJhZ21l
bnQtc2hhZGVyIiwgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIpOwogCiAgICAgICAgICAgICBy
ZXR1cm4ge2NvbnRhaW5lciwgdGV4dEVkaXRvcn07CiAgICAgICAgIH07CkBAIC05OCw5ICsxMDMs
MTEgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMuX3ZlcnRleENv
bnRhaW5lciA9IHZlcnRleEVkaXRvci5jb250YWluZXI7CiAgICAgICAgICAgICB0aGlzLl92ZXJ0
ZXhFZGl0b3IgPSB2ZXJ0ZXhFZGl0b3IudGV4dEVkaXRvcjsKIAotICAgICAgICAgICAgbGV0IGZy
YWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5G
cmFnbWVudCk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVudENvbnRhaW5lciA9IGZyYWdtZW50
RWRpdG9yLmNvbnRhaW5lcjsKLSAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gZnJh
Z21lbnRFZGl0b3IudGV4dEVkaXRvcjsKKyAgICAgICAgICAgIGlmICghc2hhcmVzVmVydGV4RnJh
Z21lbnRTaGFkZXIpIHsKKyAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnRFZGl0b3IgPSBjcmVh
dGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9mcmFnbWVudENvbnRhaW5lciA9IGZyYWdtZW50RWRpdG9yLmNvbnRhaW5l
cjsKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdtZW50RWRpdG9y
LnRleHRFZGl0b3I7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuX2xhc3RBY3Rp
dmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEy
OCw3ICsxMzUsOCBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQ
cm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIGNhc2UgV0ku
U2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0aGlzLl92ZXJ0
ZXhFZGl0b3Iuc2hvd24oKTsKLSAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3du
KCk7CisgICAgICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhcmVzVmVydGV4
RnJhZ21lbnRTaGFkZXIpCisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3Iuc2hv
d24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTE0NCw3ICsxNTIsOCBA
QCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhFZGl0b3IuaGlk
ZGVuKCk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5oaWRkZW4oKTsKKyAgICAg
ICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNo
YWRlcikKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5oaWRkZW4oKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI3Niw3ICsyODUsOCBAQCBXSS5TaGFk
ZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFt
VHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RT
aGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwgY3JlYXRlQ2Fs
bGJhY2sodGhpcy5fdmVydGV4Q29udGFpbmVyLCB0aGlzLl92ZXJ0ZXhFZGl0b3IpKTsKLSAgICAg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFNoYWRlclNvdXJjZShXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2ZyYWdt
ZW50Q29udGFpbmVyLCB0aGlzLl9mcmFnbWVudEVkaXRvcikpOworICAgICAgICAgICAgaWYgKCF0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAg
ICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFNoYWRlclNvdXJjZShXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2Zy
YWdtZW50Q29udGFpbmVyLCB0aGlzLl9mcmFnbWVudEVkaXRvcikpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380409</attachid>
            <date>2019-10-08 00:29:38 -0700</date>
            <delta_ts>2019-10-08 12:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202031-20191008002938.patch</filename>
            <type>text/plain</type>
            <size>29101</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE2NTFmOGJkOGI4ZDg5NjgyODJjMGNjZjBjMmQ3
ZTQzODk0ZTY5YjcuLmUwZjZjNjMwZjM4NjgxZDAwNGJkMTU3OTVlNTE1YzU3M2NmYzFmMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IG1vZGlmaWNhdGlvbnMgdG8gc2hhZGVyIG1vZHVsZXMgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIHZlcnRleC9mcmFnbWVudCBzaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbjoKKyAg
ICAgICAgQ3JlYXRlIGEgZGlzdGluY3QgYFNoYWRlclByb2dyYW1gIHR5cGUgc28gdGhhdCBhZGRp
dGlvbmFsIGRhdGEgY2FuIGJlIGJ1bmRsZWQgYW5kIHNlbnQgdG8KKyAgICAgICAgdGhlIGZyb250
ZW5kIGFzIHBhcnQgb2YgdGhlIGBwcm9ncmFtQ3JlYXRlZGAgZXZlbnQgd2l0aG91dCBoYXZpbmcg
dG8gd29ycnkgYWJvdXQgaGF2aW5nIHRvbworICAgICAgICBtYW55IGFyZ3VtZW50cy4KKwogMjAx
OS0xMC0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtK
U0NdIENsZWFuIHVwIFRodW5rR2VuZXJhdG9yJ3MgbmF0aXZlQ2FsbFRyYW1wb2xpbmUgZ2VuZXJh
dG9yIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTY4MDQ2NjRjNzY4YmFjM2VkNDRmN2E0ZTc4NTFkZTkw
YTU4MmYwLi44OGJjOGIyZjBmYWVmOTU2MWRlYWMwMDUyNjg4NGU1YWNlNDdlMjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogbW9kaWZpY2F0aW9u
cyB0byBzaGFkZXIgbW9kdWxlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdmVydGV4L2ZyYWdtZW50
IHNoYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBl
bGluZTo6cmVjb21waWxlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVj
b21waWxlKToKKyAgICAgICAgUmVjcmVhdGUgdGhlIHZlcnRleC9mcmFnbWVudC9jb21wdXRlIHNo
YWRlciBtb2R1bGUocykgd2hlbiByZWNvbXBpbGluZyBzbyB0aGF0IG1vZGlmaWNhdGlvbnMKKyAg
ICAgICAgdG8gaXQgdmlhIHRoaXMgcGlwZWxpbmUgZG9uJ3QgYWZmZWN0IG90aGVyIHBpcGVsaW5l
cyB0aGF0IGFsc28gdXNlIHRoZSBzYW1lIHNoYWRlciBtb2R1bGUuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRl
clByb2dyYW06OmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxp
bmUpOgorICAgICAgICBJbmNsdWRlIGFzIHBhcnQgb2YgdGhlIGBDYW52YXMuZXZlbnQucHJvZ3Jh
bUNyZWF0ZWRgIHBheWxvYWQgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUKKyAgICAgICAg
dmVydGV4IHNoYWRlciBtb2R1bGUgYW5kIGZyYWdtZW50IHNoYWRlciBtb2R1bGUgYXJlIHRoZSBz
YW1lIGZvciBgV2ViR1BVUmVuZGVyUGlwZWxpbmVgcy4KKwogMjAxOS0xMC0wNyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgSURMIGZvciByZXF1ZXN0SWRs
ZUNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwMDI1NTkyYTBiNjc3MTBlOGZh
N2IwODM0MzRhYTkxNDMzMzllYzk3Li41MDM3ZDFhY2Y0NTM1MjUxOGZhNTI2MDliNmUxOGQ0N2Y3
YzYzY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxOS0x
MC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQ2FudmFzOiBtb2RpZmljYXRpb25zIHRvIHNoYWRlciBtb2R1bGVzIGNhbiBiZSBz
aGFyZWQgYmV0d2VlbiB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHZlcnRleCBhbmQgZnJhZ21lbnQg
c2hhZGVycyBzaGFyZSB0aGUgc2FtZSBzb3VyY2UgbW9kdWxlIGZvciBhIFdlYkdQVSBzaGFkZXIg
cGlwZWxpbmUsCisgICAgICAgIG9ubHkgZGlzcGxheSBhIHNpbmdsZSBlZGl0YWJsZSBjb250ZW50
IHZpZXcgZm9yIHRoYXQgc2hhZGVyIHBpcGVsaW5lIGluIHRoZSBDYW52YXMgVGFiLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qczoKKyAgICAgICAgKFdJ
LlNoYWRlclByb2dyYW0pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuZ2V0
IHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUucHJvZ3JhbUNyZWF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5DYW52YXNPYnNlcnZlci5w
cm90b3R5cGUucHJvZ3JhbUNyZWF0ZWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFt
Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5zaG93bik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90
eXBlLmhpZGRlbik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90
eXBlLl9yZWZyZXNoQ29udGVudCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TaGFk
ZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXIt
cHJvZ3JhbSA+IC5zaGFkZXIuY29tcHV0ZSwgLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC5zaGFkZXIudmVydGV4LnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyKTogQWRkZWQuCisg
ICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hh
ZGVyLnZlcnRleDpub3QoLnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyKSwgYm9keVtkaXI9
cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCk6IEFk
ZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlci5mcmFnbWVudCwgYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdtZW50LXNoYWRl
cikpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hh
ZGVyLmNvbXB1dGUpOiBEZWxldGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12
aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsIGJvZHlbZGlyPXJ0bF0gLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQpOiBEZWxldGVkLgorICAg
ICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRl
ci5mcmFnbWVudCwgYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4g
LnNoYWRlci52ZXJ0ZXgpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzOgorICAgICAgICBSZXBsYWNlIHRoZSB2ZXJ0ZXgvZnJh
Z21lbnQgc3BlY2lmaWMgTUlNRSB0eXBlcyB3aXRoIGEgbW9yZSBnZW5lcmFsICJyZW5kZXIiIE1J
TUUgdHlwZS4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKwogMjAxOS0xMC0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2V0dGluZ3M6IGVuYWJsZSB0aGUgaW1hZ2UgdHJh
bnNwYXJlbmN5IGdyaWQgYnkgZGVmYXVsdCBhbmQgY3JlYXRlIGEgY2hlY2tib3ggZm9yIGl0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZh
cy5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMu
anNvbgppbmRleCA4YWVlNTVlMTg0ODE1NjFjMjFiYjQ0ODE4NjA3MDBkMmQ5NTc3ZjRmLi4xNzVm
ZjQwOWY2MWY4YWI2N2M1NTI0MjgyMzA0NDNhMWE4NTlhMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KQEAgLTU3LDYg
KzU3LDE3IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZW1vcnlDb3N0IiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk1lbW9yeSB1c2Fn
ZSBvZiB0aGUgY2FudmFzIGluIGJ5dGVzLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImJhY2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb25zb2xl
LkNhbGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJhY2t0cmFj
ZSB0aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgY2FudmFzIGNvbnRleHQgd2FzIGNyZWF0ZWQu
IiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJp
ZCI6ICJTaGFkZXJQcm9ncmFtIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5mb3JtYXRpb24gYWJvdXQgYSBXZWJHTC9XZWJHTDIg
c2hhZGVyIHByb2dyYW0gb3IgV2ViR1BVIHNoYWRlciBwaXBlbGluZS4iLAorICAgICAgICAgICAg
InByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAi
JHJlZiI6ICJQcm9ncmFtSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFt
VHlwZSIsICIkcmVmIjogIlByb2dyYW1UeXBlIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyIiwgInR5cGUiOiAiYm9vbGVhbiIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbmRpY2F0ZXMgd2hldGhlciB0aGUgdmVy
dGV4IGFuZCBmcmFnbWVudCBzaGFkZXIgbW9kdWxlcyBhcmUgdGhlIHNhbWUgb2JqZWN0IGZvciBh
IHJlbmRlciBzaGFkZXIgcGlwbGVpbmUgZm9yIGEgV2ViR1BVIGRldmljZS4iIH0KKyAgICAgICAg
ICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpAQCAtMjI3LDkgKzIz
OCw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1DcmVhdGVkIiwK
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
Y2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCJ9ICwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInByb2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUiIH0KKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInNoYWRlclByb2dyYW0iLCAiJHJlZiI6ICJTaGFkZXJQcm9ncmFt
IiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwCmlu
ZGV4IDM1MzUzOTIzMzVmNGVmOGM1NDY3ODBiNzNkYjA5YWEzMDJhYjY4ZjQuLjIwN2IyZjU0NzIy
OGNkOWU2ODIwZjIyNTQzNWExODQ3MjcxZmJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMzIsNyAr
MzIsMTAgQEAKICNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgogI2luY2x1ZGUgIkdQVVBpcGVs
aW5lLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvci5oIgogI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KIApAQCAtNTYsNiArNTksMTEgQEAgYm9vbCBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OnJlY29t
cGlsZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkKIHsKICAgICBpZiAobV9jb21wdXRlUGlw
ZWxpbmUgJiYgbV9jb21wdXRlU2hhZGVyKSB7CiAgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVDb21w
dXRlU2hhZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAg
ICAgICAgICAvLyBSZWNyZWF0ZSB0aGUgc2hhZGVyIG1vZHVsZSBzbyB0aGF0IG1vZGlmaWNhdGlv
bnMgdG8gaXQgdmlhIHRoaXMgcGlwZWxpbmUgZG9uJ3QgYWZmZWN0CisgICAgICAgICAgICAvLyBv
dGhlciBwaXBlbGluZXMgdGhhdCBhbHNvIHVzZSB0aGUgc2FtZSBzaGFkZXIgbW9kdWxlLgorICAg
ICAgICAgICAgY29uc3QgYXV0byYgY29tcHV0ZVNvdXJjZSA9IHdlYkdQVUNvbXB1dGVTaGFkZXJN
b2R1bGUtPnNvdXJjZSgpOworICAgICAgICAgICAgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9
IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRl
dmljZS5kZXZpY2UoKSwgeyBjb21wdXRlU291cmNlIH0pLCBjb21wdXRlU291cmNlKTsKKwogICAg
ICAgICAgICAgaWYgKGF1dG8qIGdwdUNvbXB1dGVTaGFkZXJNb2R1bGUgPSB3ZWJHUFVDb21wdXRl
U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgewogICAgICAgICAgICAgICAgIEdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvciBjb21wdXRlU3RhZ2UobWFrZVJlZigqZ3B1Q29tcHV0ZVNoYWRlck1v
ZHVsZSksIHsgbV9jb21wdXRlU2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2aWNl
KCksIFdURk1vdmUoY29tcHV0ZVN0YWdlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKaW5kZXggZmU5NTdmNTcwYTJm
MTZjNzNkZjkyMjkxNDM3ZWJmYWJlM2I3ZmMwNC4uOTFjZjJiNDlhMmE3ZTliZDlkYWJlZjcyNTI4
MjA3NGI2MTg2ZDEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMzIsNyArMzIsMTAgQEAKICNpbmNsdWRl
ICJHUFVQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVU2hhZGVy
TW9kdWxlLmgiCisjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNTcsMTEg
KzYwLDI1IEBAIGJvb2wgV2ViR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBXZWJH
UFVEZXZpY2UmIGRldmljZSkKIHsKICAgICBpZiAobV9yZW5kZXJQaXBlbGluZSAmJiBtX3ZlcnRl
eFNoYWRlcikgewogICAgICAgICBpZiAoYXV0byYgd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlID0g
bV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgIGJvb2wgc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyICYmIG1fZnJhZ21l
bnRTaGFkZXIudmFsdWUoKS5tb2R1bGUgPT0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlOworCisg
ICAgICAgICAgICAvLyBSZWNyZWF0ZSB0aGUgc2hhZGVyIG1vZHVsZSBzbyB0aGF0IG1vZGlmaWNh
dGlvbnMgdG8gaXQgdmlhIHRoaXMgcGlwZWxpbmUgZG9uJ3QgYWZmZWN0CisgICAgICAgICAgICAv
LyBvdGhlciBwaXBlbGluZXMgdGhhdCBhbHNvIHVzZSB0aGUgc2FtZSBzaGFkZXIgbW9kdWxlLgor
ICAgICAgICAgICAgY29uc3QgYXV0byYgdmVydGV4U291cmNlID0gd2ViR1BVVmVydGV4U2hhZGVy
TW9kdWxlLT5zb3VyY2UoKTsKKyAgICAgICAgICAgIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9
IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRl
dmljZS5kZXZpY2UoKSwgeyB2ZXJ0ZXhTb3VyY2UgfSksIHZlcnRleFNvdXJjZSk7CisKICAgICAg
ICAgICAgIGlmIChhdXRvKiBncHVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSB3ZWJHUFVWZXJ0ZXhTaGFk
ZXJNb2R1bGUtPm1vZHVsZSgpKSB7CiAgICAgICAgICAgICAgICAgR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlKG1ha2VSZWYoKmdwdVZlcnRleFNoYWRlck1vZHVsZSks
IHsgbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50IH0pOwogICAgICAgICAgICAgICAg
IE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4gZnJhZ21lbnRTdGFnZTsK
ICAgICAgICAgICAgICAgICBpZiAobV9mcmFnbWVudFNoYWRlcikgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byYgd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hh
ZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXJNb2R1bGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBhdXRvJiBmcmFnbWVudFNvdXJjZSA9IHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxl
LT5zb3VyY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJHUFVGcmFnbWVudFNo
YWRlck1vZHVsZSA9IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVsZTo6
dHJ5Q3JlYXRlKGRldmljZS5kZXZpY2UoKSwgeyBmcmFnbWVudFNvdXJjZSB9KSwgZnJhZ21lbnRT
b3VyY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byogZ3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUgPSB3ZWJHUFVGcmFnbWVudFNo
YWRlck1vZHVsZS0+bW9kdWxlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21l
bnRTdGFnZSA9IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihtYWtlUmVmKCpncHVGcmFn
bWVudFNoYWRlck1vZHVsZSksIHsgbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQg
fSk7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAppbmRleCA3YWY3MTk2MzI4ZjEwYzY5NjFi
ZDI3ZjgzMzkwYzk0N2FlZTYwODQxLi44NmRiNWIzMzBkZjBhMjQ4MGJhZDZjMGZiOWNjY2Q1NTAz
M2NmM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uY3BwCkBAIC0yMzUsNCArMjM1LDUzIEBAIGJvb2wgSW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbTo6dXBkYXRlU2hhZGVyKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVy
VHlwCiAgICAgKTsKIH0KIAorUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVy
UHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6YnVpbGRPYmplY3RGb3JTaGFkZXJQcm9n
cmFtKCkKK3sKKyAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gZmFsc2U7CisK
KyAgICB1c2luZyBQcm9ncmFtVHlwZVR5cGUgPSBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29s
OjpDYW52YXM6OlByb2dyYW1UeXBlPjsKKyAgICBhdXRvIHByb2dyYW1UeXBlID0gV1RGOjpzd2l0
Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBbJl0gKHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPikgLT4gUHJvZ3JhbVR5cGVUeXBlIHsKKyAgICAg
ICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpS
ZW5kZXI7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBb
Jl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBl
cikgLT4gUHJvZ3JhbVR5cGVUeXBlIHsKKyAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlw
ZWxpbmVXcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBl
bGluZT4ocGlwZWxpbmUpKQorICAgICAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpDb21wdXRlOworICAgICAgICAgICAgaWYgKGlzPFdl
YkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBy
ZW5kZXJQaXBlbGluZSA9IGRvd25jYXN0PFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSk7
CisgICAgICAgICAgICAgICAgYXV0byB2ZXJ0ZXhTaGFkZXIgPSByZW5kZXJQaXBlbGluZS52ZXJ0
ZXhTaGFkZXIoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGZyYWdtZW50U2hhZGVyID0gcmVuZGVy
UGlwZWxpbmUuZnJhZ21lbnRTaGFkZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAodmVydGV4U2hh
ZGVyICYmIGZyYWdtZW50U2hhZGVyICYmIHZlcnRleFNoYWRlci52YWx1ZSgpLm1vZHVsZSA9PSBm
cmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkKKyAgICAgICAgICAgICAgICAgICAgc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXIgPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5kZXI7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9LAorI2VuZGlm
CisgICAgICAgIFsmXSAoTW9ub3N0YXRlKSAtPiBQcm9ncmFtVHlwZVR5cGUgeworI2lmIEVOQUJM
RShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9
CisgICAgKTsKKyAgICBpZiAoIXByb2dyYW1UeXBlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZh
czo6UHJvZ3JhbVR5cGU6OlJlbmRlcjsKKyAgICB9CisKKyAgICBhdXRvIHBheWxvYWQgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclByb2dyYW06OmNyZWF0ZSgpCisgICAgICAg
IC5zZXRQcm9ncmFtSWQobV9pZGVudGlmaWVyKQorICAgICAgICAuc2V0UHJvZ3JhbVR5cGUocHJv
Z3JhbVR5cGUudmFsdWUoKSkKKyAgICAgICAgLnNldENhbnZhc0lkKG1fY2FudmFzLmlkZW50aWZp
ZXIoKSkKKyAgICAgICAgLnJlbGVhc2UoKTsKKyAgICBpZiAoc2hhcmVzVmVydGV4RnJhZ21lbnRT
aGFkZXIpCisgICAgICAgIHBheWxvYWQtPnNldFNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKHRy
dWUpOworICAgIHJldHVybiBwYXlsb2FkOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaApp
bmRleCBkY2Q5ZWIxZmZmYTY5ODFhOGQyOTIyODVkYTE0YjU0ZDgyMDc1N2FkLi42ZGYxM2RmZmRl
YjQwMDQwZmQ4YWE4OWJiZjQwNjVhZTgwNGZiNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKQEAgLTcxLDYgKzcxLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaGlnaGxpZ2h0ZWQoKSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodGVk
OyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRlZChib29sIHZhbHVlKSB7IG1faGlnaGxpZ2h0ZWQg
PSB2YWx1ZTsgfQogCisgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVy
UHJvZ3JhbT4gYnVpbGRPYmplY3RGb3JTaGFkZXJQcm9ncmFtKCk7CisKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFdFQkdMKQogICAgIEluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR0xQcm9ncmFtJiwg
SW5zcGVjdG9yQ2FudmFzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDMwMzIxYTZmNTQwYjBlNDM2
YTJmNDNhMGY5Y2U3NWU0MzcxNzNkOTguLjVjYjc4YmRkZjg4MTE5YjdiNTE1NmU3NGMyODE3MTNj
YWYyN2M2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ2FudmFzQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC01NjcsMTAgKzU2NywxMCBAQCB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udAogICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
OjpjcmVhdGUocHJvZ3JhbSwgKmluc3BlY3RvckNhbnZhcyk7Ci0gICAgU3RyaW5nIHByb2dyYW1J
ZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigpOwotICAgIG1faWRlbnRp
ZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5z
cGVjdG9yUHJvZ3JhbSkpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRl
ZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIsIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcik7CisgICAgYXV0byBp
bnNwZWN0b3JQcm9ncmFtUmVmID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHByb2dy
YW0sICppbnNwZWN0b3JDYW52YXMpOworICAgIGF1dG8mIGluc3BlY3RvclByb2dyYW0gPSBpbnNw
ZWN0b3JQcm9ncmFtUmVmLmdldCgpOworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3Jh
bS5zZXQoaW5zcGVjdG9yUHJvZ3JhbS5pZGVudGlmaWVyKCksIFdURk1vdmUoaW5zcGVjdG9yUHJv
Z3JhbVJlZikpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNw
ZWN0b3JQcm9ncmFtLmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSgpKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQpAQCAtNjUwLDE4ICs2NTAsMTAgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQVVAK
IAogICAgIEFTU0VSVChwaXBlbGluZS5pc1ZhbGlkKCkpOwogCi0gICAgYXV0byBpbnNwZWN0b3JQ
cm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHBpcGVsaW5lLCAqaW5zcGVj
dG9yQ2FudmFzKTsKLSAgICBTdHJpbmcgcHJvZ3JhbUlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9n
cmFtLT5pZGVudGlmaWVyKCk7Ci0gICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNl
dChwcm9ncmFtSWRlbnRpZmllciwgV1RGTW92ZShpbnNwZWN0b3JQcm9ncmFtKSk7Ci0KLSAgICBP
cHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlPiBwcm9ncmFt
VHlwZTsKLSAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihwaXBlbGluZSkpCi0gICAg
ICAgIHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlw
ZTo6Q29tcHV0ZTsKLSAgICBlbHNlIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxp
bmUpKQotICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6
UHJvZ3JhbVR5cGU6OlJlbmRlcjsKLSAgICBBU1NFUlQocHJvZ3JhbVR5cGUpOwotCi0gICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRp
ZmllcigpLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUudmFsdWUoKSk7CisgICAgYXV0
byBpbnNwZWN0b3JQcm9ncmFtUmVmID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHBp
cGVsaW5lLCAqaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBhdXRvJiBpbnNwZWN0b3JQcm9ncmFtID0g
aW5zcGVjdG9yUHJvZ3JhbVJlZi5nZXQoKTsKKyAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclBy
b2dyYW0uc2V0KGluc3BlY3RvclByb2dyYW0uaWRlbnRpZmllcigpLCBXVEZNb3ZlKGluc3BlY3Rv
clByb2dyYW1SZWYpKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQo
aW5zcGVjdG9yUHJvZ3JhbS5idWlsZE9iamVjdEZvclNoYWRlclByb2dyYW0oKSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BV
UGlwZWxpbmUmIHBpcGVsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXgg
N2ExZjQxMTdmMTE0NGZkNGExMjc0MDA2NDUyOTU0MjI5NDIzYWU4NC4uOWNiY2MyZjk5NTNmZTI3
ZWQ4NWIwMGNhNjA0ZGMyMWRhYzQxMWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCkBAIC0xMjMxLDYgKzEyMzEsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJib3NlIl0gPSAi
VmVyYm9zZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJzaW9uIl0gPSAiVmVyc2lvbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJWZXJ0ZXgiXSA9ICJWZXJ0ZXgiOwogbG9jYWxpemVkU3RyaW5nc1siVmVy
dGV4IFNoYWRlciJdID0gIlZlcnRleCBTaGFkZXIiOworbG9jYWxpemVkU3RyaW5nc1siVmVydGV4
L0ZyYWdtZW50IFNoYWRlciJdID0gIlZlcnRleC9GcmFnbWVudCBTaGFkZXIiOwogbG9jYWxpemVk
U3RyaW5nc1siVmVyeSBIaWdoIl0gPSAiVmVyeSBIaWdoIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZp
ZXcgSW1hZ2UiXSA9ICJWaWV3IEltYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgUmVjb3Jk
aW5nIl0gPSAiVmlldyBSZWNvcmRpbmciOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMK
aW5kZXggMzhmMDFiYjY2NjdlYzAwODMwN2YwZTNmNTJmNDJkZmUyYmUxZjU4MC4uNzMzYzEwMDY2
MzgyODZkNGQ5NDY2MTVlMDY0YTRmYzczYWQ0YTUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNN
YW5hZ2VyLmpzCkBAIC0yMzQsMjAgKzIzNCwyOCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3Mg
Q2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYW52YXMuZW5hYmxlRXh0
ZW5zaW9uKGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWRl
bnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlKQorICAgIHByb2dyYW1DcmVh
dGVkKHNoYWRlclByb2dyYW1QYXlsb2FkKQogICAgIHsKLSAgICAgICAgbGV0IGNhbnZhcyA9IHRo
aXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZpZXIpOworICAgICAgICBs
ZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5nZXQoc2hhZGVyUHJvZ3JhbVBh
eWxvYWQuY2FudmFzSWQpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwogICAgICAg
ICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBjb25zb2xlLmFz
c2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuaGFzKHByb2dyYW1JZGVudGlm
aWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke3Byb2dyYW1JZGVu
dGlmaWVyfS5gKTsKKyAgICAgICAgbGV0IHByb2dyYW1JZCA9IHNoYWRlclByb2dyYW1QYXlsb2Fk
LnByb2dyYW1JZDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3NoYWRlclByb2dyYW1J
ZGVudGlmaWVyTWFwLmhhcyhwcm9ncmFtSWQpLCBgU2hhZGVyUHJvZ3JhbSBhbHJlYWR5IGV4aXN0
cyB3aXRoIGlkICR7cHJvZ3JhbUlkfS5gKTsKIAotICAgICAgICAvLyBDT01QQVRJQklMSVRZIChp
T1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAvLyBDT01Q
QVRJQklMSVRZIChpT1MgMTMuMCk6IGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZWAg
ZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGxldCBwcm9ncmFtVHlwZSA9IHNoYWRlclByb2dy
YW1QYXlsb2FkLnByb2dyYW1UeXBlOwogICAgICAgICBpZiAoIXByb2dyYW1UeXBlKQogICAgICAg
ICAgICAgcHJvZ3JhbVR5cGUgPSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsK
IAotICAgICAgICBsZXQgcHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVu
dGlmaWVyLCBwcm9ncmFtVHlwZSwgY2FudmFzKTsKKyAgICAgICAgbGV0IG9wdGlvbnMgPSB7fTsK
KworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IGBDYW52YXMuU2hhZGVyUHJv
Z3JhbS5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcmAgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAg
ICAgIGlmIChzaGFkZXJQcm9ncmFtUGF5bG9hZC5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcikK
KyAgICAgICAgICAgIG9wdGlvbnMuc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgPSB0cnVlOwor
CisgICAgICAgIGxldCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkLCBw
cm9ncmFtVHlwZSwgY2FudmFzLCBvcHRpb25zKTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3Jh
bUlkZW50aWZpZXJNYXAuc2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAg
ICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9ncmFtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9n
cmFtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRl
clByb2dyYW0uanMKaW5kZXggYzliNmUwMzIxZjIyMGI3Y2EyYzA1MzQ5ZmEwNjUxMzIyNTI4ZTli
Yi4uMDE2ZDhiMThmNDY4Y2MyNDhiYjMzMTkzMTZiYTI4YzA0ZmJiNzI3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRl
clByb2dyYW0uanMKQEAgLTI1LDcgKzI1LDcgQEAKIAogV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNz
IFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKIHsKLSAgICBjb25zdHJ1Y3RvcihpZGVu
dGlmaWVyLCBwcm9ncmFtVHlwZSwgY2FudmFzKQorICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIs
IHByb2dyYW1UeXBlLCBjYW52YXMsIHtzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcn0gPSB7fSkK
ICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkZW50aWZpZXIpOwogICAgICAgICBjb25z
b2xlLmFzc2VydChPYmplY3QudmFsdWVzKFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUpLmluY2x1
ZGVzKHByb2dyYW1UeXBlKSk7CkBAIC0zNyw2ICszNywxMCBAQCBXSS5TaGFkZXJQcm9ncmFtID0g
Y2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKICAgICAgICAgdGhpcy5fcHJvZ3JhbVR5cGUgPSBwcm9ncmFt
VHlwZTsKICAgICAgICAgdGhpcy5fY2FudmFzID0gY2FudmFzOworCisgICAgICAgIHRoaXMuX3No
YXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gISFzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcjsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3NoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVy
IHx8ICh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFUgJiYgdGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUu
UmVuZGVyKSk7CisKICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxzZTsKICAgICB9CiAKQEAg
LTc4LDYgKzgyLDcgQEAgV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0
ZW5kcyBXSS5PYmplY3QKICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50
aWZpZXI7IH0KICAgICBnZXQgcHJvZ3JhbVR5cGUoKSB7IHJldHVybiB0aGlzLl9wcm9ncmFtVHlw
ZTsgfQogICAgIGdldCBjYW52YXMoKSB7IHJldHVybiB0aGlzLl9jYW52YXM7IH0KKyAgICBnZXQg
c2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIoKSB7IHJldHVybiB0aGlzLl9zaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlcjsgfQogCiAgICAgZ2V0IGRpc3BsYXlOYW1lKCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9DYW52YXNP
YnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L0NhbnZhc09ic2VydmVyLmpzCmluZGV4IDZmNTM1NzQ0MzQ2ZjIwNzEyMGNiZTllOWQzY2EyN2Y0
Y2JlZWEwODcuLjhmZjNmZTcyMGI3M2YyMzBjNmVkNWU3MTA0MDFjM2FjN2NmYzQ1MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZh
c09ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0NhbnZhc09ic2VydmVyLmpzCkBAIC02Nyw5ICs2NywxNiBAQCBXSS5DYW52YXNPYnNl
cnZlciA9IGNsYXNzIENhbnZhc09ic2VydmVyCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZXh0
ZW5zaW9uRW5hYmxlZChjYW52YXNJZCwgZXh0ZW5zaW9uKTsKICAgICB9CiAKLSAgICBwcm9ncmFt
Q3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSkKKyAgICBwcm9ncmFtQ3Jl
YXRlZChzaGFkZXJQcm9ncmFtKQogICAgIHsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5wcm9n
cmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSk7CisgICAgICAgIC8v
IENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogYHNoYWRlclByb2dyYW1gIHJlcGxhY2VkIGBjYW52
YXNJZGAgYW5kIGBwcm9ncmFtSWRgLgorICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0g
MikgeworICAgICAgICAgICAgc2hhZGVyUHJvZ3JhbSA9IHsKKyAgICAgICAgICAgICAgICBjYW52
YXNJZDogYXJndW1lbnRzWzBdLAorICAgICAgICAgICAgICAgIHByb2dyYW1JZDogYXJndW1lbnRz
WzFdLAorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnByb2dyYW1DcmVhdGVkKHNoYWRlclByb2dyYW0pOwogICAgIH0KIAogICAgIHByb2dyYW1EZWxl
dGVkKHByb2dyYW1JZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCmluZGV4IDhjZTI4
MTUzMmVlOWE1NTY3MzlkZmZkZjAxMmMxN2ZjMTFlOGIyNDkuLmUxMzkwY2Q3MTlmNDMzODY4NmE3
ZTNkNzM1YWY0NDlkOWVlZGMxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwpA
QCAtNjg1LDggKzY4NSw3IEBACiAKICAgICAvLyBGSVhNRTogQWRkIFdITFNMIHNwZWNpZmljIG1v
ZGVzLgogICAgIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgieC1waXBlbGluZS94LWNvbXB1dGUiLCBD
b2RlTWlycm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZlcnRleCIpKTsKLSAgICBDb2RlTWly
cm9yLmRlZmluZU1JTUUoIngtcGlwZWxpbmUveC1mcmFnbWVudCIsIENvZGVNaXJyb3IucmVzb2x2
ZU1vZGUoIngtc2hhZGVyL3gtZnJhZ21lbnQiKSk7Ci0gICAgQ29kZU1pcnJvci5kZWZpbmVNSU1F
KCJ4LXBpcGVsaW5lL3gtdmVydGV4IiwgQ29kZU1pcnJvci5yZXNvbHZlTW9kZSgieC1zaGFkZXIv
eC12ZXJ0ZXgiKSk7CisgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtcmVu
ZGVyIiwgQ29kZU1pcnJvci5yZXNvbHZlTW9kZSgieC1zaGFkZXIveC12ZXJ0ZXgiKSk7CiB9KSgp
OwogCiBXSS5jb21wYXJlQ29kZU1pcnJvclBvc2l0aW9ucyA9IGZ1bmN0aW9uKGEsIGIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQ
cm9ncmFtQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcwppbmRleCA0OTZhNWU1MzlmOTc0
MjAyNDg3Yzg1YzgxYmJiZGVjNTk4OTE1YmU2Li4yZjZjMDY2NDMxMTkxOWNjMWRjYThlZGQwNGMz
MGY0NjkwMTcwZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5j
c3MKQEAgLTMxLDE5ICszMSwyMCBAQAogICAgIGJvdHRvbTogMDsKIH0KIAotLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuY29tcHV0ZSB7CisuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlLAorLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3Jh
bSA+IC5zaGFkZXIudmVydGV4LnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyIHsKICAgICBy
aWdodDogMDsKICAgICBsZWZ0OiAwOwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleCwKK2JvZHlbZGlyPWx0cl0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4Om5vdCguc2hhcmVzLXZlcnRleC1m
cmFnbWVudC1zaGFkZXIpLAogYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9n
cmFtID4gLnNoYWRlci5mcmFnbWVudCB7CiAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4KTsKICAg
ICBsZWZ0OiAwOwogfQogCiBib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyLmZyYWdtZW50LAotYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggeworYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdt
ZW50LXNoYWRlcikgewogICAgIHdpZHRoOiBjYWxjKDUwJSArIDFweCk7CiAgICAgcmlnaHQ6IDA7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKaW5kZXggZTk4N2Zl
NTZjODZkYmFlNzdiYWViMDIxNmUxNzAyMWI0MTZkNmY3My4uMTc3NTFmYTUwZWE5ZDU2ZjBkYWNj
NmM4ZWZjZjEyYTEyZmU2M2M4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50
Vmlldy5qcwpAQCAtMzIsNiArMzIsNyBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBj
bGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogICAgICAg
ICBzdXBlcihzaGFkZXJQcm9ncmFtKTsKIAogICAgICAgICBsZXQgaXNXZWJHUFUgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdQVTsKKyAgICAgICAgbGV0IHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gaXNX
ZWJHUFUgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRl
cjsKIAogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0ku
QnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAi
SW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1
dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVt
LlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CkBAIC02NywxOCArNjgsMjIgQEAgV0kuU2hhZGVyUHJv
Z3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFYKIAogICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5
cGUuRnJhZ21lbnQ6CiAgICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29u
dGVudCA9IFdJLlVJU3RyaW5nKCJGcmFnbWVudCBTaGFkZXIiKTsKLSAgICAgICAgICAgICAgICB0
ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LWZyYWdtZW50IiA6
ICJ4LXNoYWRlci94LWZyYWdtZW50IjsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVU
eXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LXJlbmRlciIgOiAieC1zaGFkZXIveC1mcmFn
bWVudCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgV0kuU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFkZXJUeXBl
Q29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIiKTsKLSAg
ICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGlu
ZS94LXZlcnRleCIgOiAieC1zaGFkZXIveC12ZXJ0ZXgiOworICAgICAgICAgICAgICAgIGlmIChz
aGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgICAgICAgICAgc2hhZGVyVHlw
ZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJWZXJ0ZXgvRnJhZ21lbnQgU2hh
ZGVyIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzaGFkZXJU
eXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIiKTsK
KyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBl
bGluZS94LXJlbmRlciIgOiAieC1zaGFkZXIveC12ZXJ0ZXgiOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGV4dEVk
aXRvcik7CiAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGV4dEVkaXRvci5lbGVt
ZW50KTsKICAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJzaGFkZXIiLCBzaGFk
ZXJUeXBlKTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCJzaGFyZXMt
dmVydGV4LWZyYWdtZW50LXNoYWRlciIsIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKTsKIAog
ICAgICAgICAgICAgcmV0dXJuIHtjb250YWluZXIsIHRleHRFZGl0b3J9OwogICAgICAgICB9OwpA
QCAtOTgsOSArMTAzLDExIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNo
YWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAgICAgICAgICAgICB0
aGlzLl92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29udGFpbmVyOwogICAgICAgICAg
ICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRFZGl0b3I7CiAKLSAgICAg
ICAgICAgIGxldCBmcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVkaXRvcihXSS5TaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuRnJhZ21lbnQpOwotICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRDb250YWlu
ZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVu
dEVkaXRvciA9IGZyYWdtZW50RWRpdG9yLnRleHRFZGl0b3I7CisgICAgICAgICAgICBpZiAoIXNo
YXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKSB7CisgICAgICAgICAgICAgICAgbGV0IGZyYWdtZW50
RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVu
dCk7CisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRDb250YWluZXIgPSBmcmFnbWVudEVk
aXRvci5jb250YWluZXI7CisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IgPSBm
cmFnbWVudEVkaXRvci50ZXh0RWRpdG9yOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0
aGlzLl9sYXN0QWN0aXZlRWRpdG9yID0gdGhpcy5fdmVydGV4RWRpdG9yOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0xMjgsNyArMTM1LDggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0g
Y2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAg
ICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgogICAgICAgICAg
ICAgdGhpcy5fdmVydGV4RWRpdG9yLnNob3duKCk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVu
dEVkaXRvci5zaG93bigpOworICAgICAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAgICAgICAgICAgIHRoaXMuX2ZyYWdt
ZW50RWRpdG9yLnNob3duKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0x
NDQsNyArMTUyLDggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVy
UHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgICAgICBjYXNlIFdJ
LlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgogICAgICAgICAgICAgdGhpcy5fdmVy
dGV4RWRpdG9yLmhpZGRlbigpOwotICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlk
ZGVuKCk7CisgICAgICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhcmVzVmVy
dGV4RnJhZ21lbnRTaGFkZXIpCisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3Iu
aGlkZGVuKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0yNzYsNyArMjg1
LDggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgICAgICBjYXNlIFdJLlNoYWRlclBy
b2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgogICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0
ZXgsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleENvbnRhaW5lciwgdGhpcy5fdmVydGV4RWRp
dG9yKSk7Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJT
b3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LCBjcmVhdGVDYWxsYmFj
ayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwgdGhpcy5fZnJhZ21lbnRFZGl0b3IpKTsKKyAgICAg
ICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNo
YWRlcikKKyAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFk
ZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LCBjcmVhdGVDYWxs
YmFjayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwgdGhpcy5fZnJhZ21lbnRFZGl0b3IpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380452</attachid>
            <date>2019-10-08 12:52:38 -0700</date>
            <delta_ts>2019-10-08 14:43:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202031-20191008125237.patch</filename>
            <type>text/plain</type>
            <size>42745</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE2NTFmOGJkOGI4ZDg5NjgyODJjMGNjZjBjMmQ3
ZTQzODk0ZTY5YjcuLmUwZjZjNjMwZjM4NjgxZDAwNGJkMTU3OTVlNTE1YzU3M2NmYzFmMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IG1vZGlmaWNhdGlvbnMgdG8gc2hhZGVyIG1vZHVsZXMgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIHZlcnRleC9mcmFnbWVudCBzaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbjoKKyAg
ICAgICAgQ3JlYXRlIGEgZGlzdGluY3QgYFNoYWRlclByb2dyYW1gIHR5cGUgc28gdGhhdCBhZGRp
dGlvbmFsIGRhdGEgY2FuIGJlIGJ1bmRsZWQgYW5kIHNlbnQgdG8KKyAgICAgICAgdGhlIGZyb250
ZW5kIGFzIHBhcnQgb2YgdGhlIGBwcm9ncmFtQ3JlYXRlZGAgZXZlbnQgd2l0aG91dCBoYXZpbmcg
dG8gd29ycnkgYWJvdXQgaGF2aW5nIHRvbworICAgICAgICBtYW55IGFyZ3VtZW50cy4KKwogMjAx
OS0xMC0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtK
U0NdIENsZWFuIHVwIFRodW5rR2VuZXJhdG9yJ3MgbmF0aXZlQ2FsbFRyYW1wb2xpbmUgZ2VuZXJh
dG9yIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTY4MDQ2NjRjNzY4YmFjM2VkNDRmN2E0ZTc4NTFkZTkw
YTU4MmYwLi45Mjc0NjA1YTQ2N2U1Y2NjZDgxMjJlY2Y0ZDg4MzI4YjY5MmEwNDU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogbW9kaWZpY2F0aW9u
cyB0byBzaGFkZXIgbW9kdWxlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdmVydGV4L2ZyYWdtZW50
IHNoYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhG
cmFnbWVudC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxl
cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNv
bXBpbGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpjbG9uZVNoYWRlck1v
ZHVsZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpy
ZWNvbXBpbGUpOgorICAgICAgICBSZWNyZWF0ZSB0aGUgdmVydGV4L2ZyYWdtZW50L2NvbXB1dGUg
c2hhZGVyIG1vZHVsZShzKSB3aGVuIHJlY29tcGlsaW5nIHNvIHRoYXQgbW9kaWZpY2F0aW9ucwor
ICAgICAgICB0byBpdCB2aWEgdGhpcyBwaXBlbGluZSBkb24ndCBhZmZlY3Qgb3RoZXIgcGlwZWxp
bmVzIHRoYXQgYWxzbyB1c2UgdGhlIHNhbWUgc2hhZGVyIG1vZHVsZS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNo
YWRlclByb2dyYW06OmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSk6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR1BVUGlw
ZWxpbmUpOgorICAgICAgICBJbmNsdWRlIGFzIHBhcnQgb2YgdGhlIGBDYW52YXMuZXZlbnQucHJv
Z3JhbUNyZWF0ZWRgIHBheWxvYWQgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUKKyAgICAg
ICAgdmVydGV4IHNoYWRlciBtb2R1bGUgYW5kIGZyYWdtZW50IHNoYWRlciBtb2R1bGUgYXJlIHRo
ZSBzYW1lIGZvciBgV2ViR1BVUmVuZGVyUGlwZWxpbmVgcy4KKwogMjAxOS0xMC0wNyAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgSURMIGZvciByZXF1ZXN0
SWRsZUNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwMDI1NTkyYTBiNjc3MTBl
OGZhN2IwODM0MzRhYTkxNDMzMzllYzk3Li41MDM3ZDFhY2Y0NTM1MjUxOGZhNTI2MDliNmUxOGQ0
N2Y3YzYzY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAx
OS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQ2FudmFzOiBtb2RpZmljYXRpb25zIHRvIHNoYWRlciBtb2R1bGVzIGNhbiBi
ZSBzaGFyZWQgYmV0d2VlbiB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHZlcnRleCBhbmQgZnJhZ21l
bnQgc2hhZGVycyBzaGFyZSB0aGUgc2FtZSBzb3VyY2UgbW9kdWxlIGZvciBhIFdlYkdQVSBzaGFk
ZXIgcGlwZWxpbmUsCisgICAgICAgIG9ubHkgZGlzcGxheSBhIHNpbmdsZSBlZGl0YWJsZSBjb250
ZW50IHZpZXcgZm9yIHRoYXQgc2hhZGVyIHBpcGVsaW5lIGluIHRoZSBDYW52YXMgVGFiLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qczoKKyAgICAgICAg
KFdJLlNoYWRlclByb2dyYW0pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKTogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFz
TWFuYWdlci5wcm90b3R5cGUucHJvZ3JhbUNyZWF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5DYW52YXNPYnNlcnZl
ci5wcm90b3R5cGUucHJvZ3JhbUNyZWF0ZWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5TaGFkZXJQcm9n
cmFtQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5zaG93bik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJv
dG90eXBlLmhpZGRlbik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJv
dG90eXBlLl9yZWZyZXNoQ29udGVudCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIuY29tcHV0ZSwgLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3Jh
bSA+IC5zaGFkZXIudmVydGV4LnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyKTogQWRkZWQu
CisgICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyLnZlcnRleDpub3QoLnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQtc2hhZGVyKSwgYm9keVtk
aXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCk6
IEFkZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9n
cmFtID4gLnNoYWRlci5mcmFnbWVudCwgYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdtZW50LXNo
YWRlcikpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyLmNvbXB1dGUpOiBEZWxldGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsIGJvZHlbZGlyPXJ0bF0gLmNv
bnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQpOiBEZWxldGVkLgor
ICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNo
YWRlci5mcmFnbWVudCwgYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlci52ZXJ0ZXgpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzOgorICAgICAgICBSZXBsYWNlIHRoZSB2ZXJ0ZXgv
ZnJhZ21lbnQgc3BlY2lmaWMgTUlNRSB0eXBlcyB3aXRoIGEgbW9yZSBnZW5lcmFsICJyZW5kZXIi
IE1JTUUgdHlwZS4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qczoKKwogMjAxOS0xMC0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2V0dGluZ3M6IGVuYWJsZSB0aGUgaW1hZ2Ug
dHJhbnNwYXJlbmN5IGdyaWQgYnkgZGVmYXVsdCBhbmQgY3JlYXRlIGEgY2hlY2tib3ggZm9yIGl0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0Nh
bnZhcy5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52
YXMuanNvbgppbmRleCA4YWVlNTVlMTg0ODE1NjFjMjFiYjQ0ODE4NjA3MDBkMmQ5NTc3ZjRmLi4x
NzVmZjQwOWY2MWY4YWI2N2M1NTI0MjgyMzA0NDNhMWE4NTlhMzVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KQEAgLTU3
LDYgKzU3LDE3IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZW1vcnlDb3N0IiwgInR5
cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk1lbW9yeSB1
c2FnZSBvZiB0aGUgY2FudmFzIGluIGJ5dGVzLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJhY2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb25z
b2xlLkNhbGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJhY2t0
cmFjZSB0aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgY2FudmFzIGNvbnRleHQgd2FzIGNyZWF0
ZWQuIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJpZCI6ICJTaGFkZXJQcm9ncmFtIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5mb3JtYXRpb24gYWJvdXQgYSBXZWJHTC9XZWJH
TDIgc2hhZGVyIHByb2dyYW0gb3IgV2ViR1BVIHNoYWRlciBwaXBlbGluZS4iLAorICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQi
LCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9n
cmFtVHlwZSIsICIkcmVmIjogIlByb2dyYW1UeXBlIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbmRpY2F0ZXMgd2hldGhlciB0aGUg
dmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXIgbW9kdWxlcyBhcmUgdGhlIHNhbWUgb2JqZWN0IGZv
ciBhIHJlbmRlciBzaGFkZXIgcGlwbGVpbmUgZm9yIGEgV2ViR1BVIGRldmljZS4iIH0KKyAgICAg
ICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpAQCAtMjI3LDkg
KzIzOCw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1DcmVhdGVk
IiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCJ9ICwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInByb2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUiIH0KKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNoYWRlclByb2dyYW0iLCAiJHJlZiI6ICJTaGFkZXJQcm9n
cmFtIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3Bw
CmluZGV4IDM1MzUzOTIzMzVmNGVmOGM1NDY3ODBiNzNkYjA5YWEzMDJhYjY4ZjQuLjhhOGNmMGQ3
NWQzNGU0MTA3OTZkZGFiZjQ2NzU5NmVhOGNhZGUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMzIs
NyArMzIsMTAgQEAKICNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgogI2luY2x1ZGUgIkdQVVBp
cGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisj
aW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVz
Y3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNo
YWRlck1vZHVsZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KIApAQCAtNTIsMTAgKzU1LDI1IEBAIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6V2ViR1BV
Q29tcHV0ZVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVQ29tCiAKIFdl
YkdQVUNvbXB1dGVQaXBlbGluZTo6fldlYkdQVUNvbXB1dGVQaXBlbGluZSgpID0gZGVmYXVsdDsK
IAorYm9vbCBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBX
ZWJHUFVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBpZiAobV9jb21wdXRlU2hhZGVyKSB7CisgICAg
ICAgIGlmIChhdXRvJiB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVy
LnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBjb21wdXRlU291cmNl
ID0gd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICB3ZWJH
UFVDb21wdXRlU2hhZGVyTW9kdWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoR1BVU2hh
ZGVyTW9kdWxlOjp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IGNvbXB1dGVTb3VyY2UgfSks
IGNvbXB1dGVTb3VyY2UpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6
cmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQogewogICAgIGlmIChtX2NvbXB1
dGVQaXBlbGluZSAmJiBtX2NvbXB1dGVTaGFkZXIpIHsKICAgICAgICAgaWYgKGF1dG8mIHdlYkdQ
VUNvbXB1dGVTaGFkZXJNb2R1bGUgPSBtX2NvbXB1dGVTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsK
KyAgICAgICAgICAgIC8vIFJlY3JlYXRlIHRoZSBzaGFkZXIgbW9kdWxlIHNvIHRoYXQgbW9kaWZp
Y2F0aW9ucyB0byBpdCB2aWEgdGhpcyBwaXBlbGluZSBkb24ndCBhZmZlY3QKKyAgICAgICAgICAg
IC8vIG90aGVyIHBpcGVsaW5lcyB0aGF0IGFsc28gdXNlIHRoZSBzYW1lIHNoYWRlciBtb2R1bGUu
CisKICAgICAgICAgICAgIGlmIChhdXRvKiBncHVDb21wdXRlU2hhZGVyTW9kdWxlID0gd2ViR1BV
Q29tcHV0ZVNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKICAgICAgICAgICAgICAgICBHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlKG1ha2VSZWYoKmdwdUNvbXB1dGVT
aGFkZXJNb2R1bGUpLCB7IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgfSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNl
LmRldmljZSgpLCBXVEZNb3ZlKGNvbXB1dGVTdGFnZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCBjMWE3MTgw
ODQ3OTg3NjU3NmE5OGExOTI3M2FlNjU3MGVhNWY5NTZkLi42NWFlNDExYTMyODVhOGZkOTUwNmIz
MmVkZjZiNjhhNmVhMzY2ZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lKiBjb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7
IHJldHVybiBtX2NvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQogICAgIE9wdGlvbmFsPFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21w
dXRlU2hhZGVyOyB9CiAKKyAgICBib29sIGNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVE
ZXZpY2UmKTsKICAgICBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5o
CmluZGV4IDFlMzIzYzc5YmYxOTgyNTgyMzYyYTczZjhhNjc1ZjEyOGI0YTZmNzEuLmUwMGMwYTQx
NzZhYjVlYTlmZWNiYTU0NGJjM2EwMWMzMDMzODM1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIH07CiAKKyAgICB2aXJ0dWFsIGJvb2wg
Y2xvbmVTaGFkZXJNb2R1bGVzKGNvbnN0IFdlYkdQVURldmljZSYpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgcmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYpID0gMDsKIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmUuY3BwCmluZGV4IGZlOTU3ZjU3MGEyZjE2YzczZGY5MjI5MTQzN2ViZmFiZTNiN2ZjMDQu
LjAyYWFiZGJmMzJhNDVjZTljNDMzZmE4YTdjYTk1NmM1Y2M4NmQ0M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAK
QEAgLTMyLDcgKzMyLDEwIEBACiAjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKICNpbmNsdWRlICJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBl
bGluZS5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIkdQVVNoYWRl
ck1vZHVsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRl
ICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAKQEAgLTUzLDYgKzU2LDMyIEBAIFdlYkdQVVJlbmRlclBpcGVsaW5l
OjpXZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJl
bmRlCiAKIFdlYkdQVVJlbmRlclBpcGVsaW5lOjp+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRl
ZmF1bHQ7CiAKK2Jvb2wgV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyhj
b25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsK
KyAgICAgICAgaWYgKGF1dG8mIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hh
ZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdt
ZW50U2hhZGVyTW9kdWxlID0gbV9mcmFnbWVudFNoYWRlciAmJiBtX2ZyYWdtZW50U2hhZGVyLnZh
bHVlKCkubW9kdWxlID09IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZTsKKworICAgICAgICAgICAg
Y29uc3QgYXV0byYgdmVydGV4U291cmNlID0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlLT5zb3Vy
Y2UoKTsKKyAgICAgICAgICAgIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IFdlYkdQVVNoYWRl
ck1vZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRldmljZS5kZXZpY2Uo
KSwgeyB2ZXJ0ZXhTb3VyY2UgfSksIHZlcnRleFNvdXJjZSk7CisKKyAgICAgICAgICAgIGlmICgh
bV9mcmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg
ICAgICAgaWYgKGF1dG8mIHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlID0gbV9mcmFnbWVudFNo
YWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgICAgIGlmIChzaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlck1vZHVsZSkKKyAgICAgICAgICAgICAgICAgICAgd2ViR1BVRnJhZ21lbnRT
aGFkZXJNb2R1bGUgPSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGU7CisgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50U291cmNlID0g
d2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUtPnNvdXJjZSgpOworICAgICAgICAgICAgICAgICAg
ICB3ZWJHUFVGcmFnbWVudFNoYWRlck1vZHVsZSA9IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRl
KEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRldmljZS5kZXZpY2UoKSwgeyBmcmFnbWVudFNv
dXJjZSB9KSwgZnJhZ21lbnRTb3VyY2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgV2ViR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShj
b25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkKIHsKICAgICBpZiAobV9yZW5kZXJQaXBlbGluZSAm
JiBtX3ZlcnRleFNoYWRlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKaW5kZXggYjJiODA5NDBlNWZjMmFlMGIzYTc5YWJh
NTM1NGQxM2Q5MDA0M2I4MS4uNjJhNzBkMTRjNWYxMGIzYjkxOTM3YjAyZDI1NjkyOTM5YjVmZTI4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVy
UGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQaXBlbGluZS5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxXZWJH
UFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV92
ZXJ0ZXhTaGFkZXI7IH0KICAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4g
ZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVyOyB9CiAKKyAg
ICBib29sIGNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVEZXZpY2UmKTsKICAgICBib29s
IHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAppbmRleCA3
YWY3MTk2MzI4ZjEwYzY5NjFiZDI3ZjgzMzkwYzk0N2FlZTYwODQxLi4xMTUxYmYyYzdlNGVkYzFm
OWFkOTQ5MTk1ZThlYTg0ZDJkYmM4OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCkBAIC0yMTUsMTEgKzIxNSwxMyBAQCBi
b29sIEluc3BlY3RvclNoYWRlclByb2dyYW06OnVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlNoYWRlclR5cAogICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikgewogICAgICAgICAgICAgYXV0byYg
cGlwZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CiAgICAgICAgICAgICBpZiAoYXV0byog
ZGV2aWNlID0gbV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGF1dG8gc2hhZGVyRGF0YSA9IHNoYWRlckZvclR5cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIG1vZHVsZSA9IHNoYWRlckRhdGEudmFsdWUo
KS5tb2R1bGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS0+dXBkYXRlKCpkZXZp
Y2UsIHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZWxpbmUucmVjb21w
aWxlKCpkZXZpY2UpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5jbG9uZVNoYWRlck1vZHVsZXMoKmRldmljZSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyRGF0YSA9IHNoYWRlckZvclR5
cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byBtb2R1bGUgPSBzaGFkZXJEYXRhLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kdWxlLT51cGRhdGUoKmRldmljZSwgc291cmNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocGlwZWxpbmUucmVjb21waWxlKCpkZXZpY2UpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KQEAgLTIzNSw0ICsyMzcsNTMgQEAgYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjp1cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXAK
ICAgICApOwogfQogCitSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJQcm9n
cmFtPiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpidWlsZE9iamVjdEZvclNoYWRlclByb2dyYW0o
KQoreworICAgIGJvb2wgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgPSBmYWxzZTsKKworICAg
IHVzaW5nIFByb2dyYW1UeXBlVHlwZSA9IE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6UHJvZ3JhbVR5cGU+OworICAgIGF1dG8gcHJvZ3JhbVR5cGUgPSBXVEY6OnN3aXRjaE9u
KG1fcHJvZ3JhbSwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+KSAtPiBQcm9ncmFtVHlwZVR5cGUgeworICAgICAgICAg
ICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRl
cjsKKyAgICAgICAgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIFsmXSAo
c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4gcGlwZWxpbmVXcmFwcGVyKSAt
PiBQcm9ncmFtVHlwZVR5cGUgeworICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUgPSBwaXBlbGlu
ZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5l
PihwaXBlbGluZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNhbnZhczo6UHJvZ3JhbVR5cGU6OkNvbXB1dGU7CisgICAgICAgICAgICBpZiAoaXM8V2ViR1BV
UmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHJlbmRl
clBpcGVsaW5lID0gZG93bmNhc3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKTsKKyAg
ICAgICAgICAgICAgICBhdXRvIHZlcnRleFNoYWRlciA9IHJlbmRlclBpcGVsaW5lLnZlcnRleFNo
YWRlcigpOworICAgICAgICAgICAgICAgIGF1dG8gZnJhZ21lbnRTaGFkZXIgPSByZW5kZXJQaXBl
bGluZS5mcmFnbWVudFNoYWRlcigpOworICAgICAgICAgICAgICAgIGlmICh2ZXJ0ZXhTaGFkZXIg
JiYgZnJhZ21lbnRTaGFkZXIgJiYgdmVydGV4U2hhZGVyLnZhbHVlKCkubW9kdWxlID09IGZyYWdt
ZW50U2hhZGVyLnZhbHVlKCkubW9kdWxlKQorICAgICAgICAgICAgICAgICAgICBzaGFyZXNWZXJ0
ZXhGcmFnbWVudFNoYWRlciA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0sCisjZW5kaWYKKyAg
ICAgICAgWyZdIChNb25vc3RhdGUpIC0+IFByb2dyYW1UeXBlVHlwZSB7CisjaWYgRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoV0VCR1BVKQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0KKyAg
ICApOworICAgIGlmICghcHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQ
cm9ncmFtVHlwZTo6UmVuZGVyOworICAgIH0KKworICAgIGF1dG8gcGF5bG9hZCA9IEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKCkKKyAgICAgICAgLnNl
dFByb2dyYW1JZChtX2lkZW50aWZpZXIpCisgICAgICAgIC5zZXRQcm9ncmFtVHlwZShwcm9ncmFt
VHlwZS52YWx1ZSgpKQorICAgICAgICAuc2V0Q2FudmFzSWQobV9jYW52YXMuaWRlbnRpZmllcigp
KQorICAgICAgICAucmVsZWFzZSgpOworICAgIGlmIChzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRl
cikKKyAgICAgICAgcGF5bG9hZC0+c2V0U2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIodHJ1ZSk7
CisgICAgcmV0dXJuIHBheWxvYWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCmluZGV4
IGRjZDllYjFmZmZhNjk4MWE4ZDI5MjI4NWRhMTRiNTRkODIwNzU3YWQuLjZkZjEzZGZmZGViNDAw
NDBmZDhhYTg5YmJmNDA2NWFlODA0ZmI2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaApAQCAtNzEsNiArNzEsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoaWdobGlnaHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faGlnaGxpZ2h0ZWQ7IH0K
ICAgICB2b2lkIHNldEhpZ2hsaWdodGVkKGJvb2wgdmFsdWUpIHsgbV9oaWdobGlnaHRlZCA9IHZh
bHVlOyB9CiAKKyAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJQcm9n
cmFtPiBidWlsZE9iamVjdEZvclNoYWRlclByb2dyYW0oKTsKKwogcHJpdmF0ZToKICNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHTFByb2dyYW0mLCBJbnNw
ZWN0b3JDYW52YXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMzAzMjFhNmY1NDBiMGU0MzZhMmY0
M2EwZjljZTc1ZTQzNzE3M2Q5OC4uNWNiNzhiZGRmODgxMTliN2I1MTU2ZTc0YzI4MTcxM2NhZjI3
YzY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTU2NywxMCArNTY3LDEwIEBAIHZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250CiAgICAgaWYgKCFpbnNwZWN0b3JDYW52YXMpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNy
ZWF0ZShwcm9ncmFtLCAqaW5zcGVjdG9yQ2FudmFzKTsKLSAgICBTdHJpbmcgcHJvZ3JhbUlkZW50
aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlmaWVyKCk7Ci0gICAgbV9pZGVudGlmaWVy
VG9JbnNwZWN0b3JQcm9ncmFtLnNldChwcm9ncmFtSWRlbnRpZmllciwgV1RGTW92ZShpbnNwZWN0
b3JQcm9ncmFtKSk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGlu
c3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmllciwgSW5zcGVjdG9y
OjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6UmVuZGVyKTsKKyAgICBhdXRvIGluc3Bl
Y3RvclByb2dyYW1SZWYgPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocHJvZ3JhbSwg
Kmluc3BlY3RvckNhbnZhcyk7CisgICAgYXV0byYgaW5zcGVjdG9yUHJvZ3JhbSA9IGluc3BlY3Rv
clByb2dyYW1SZWYuZ2V0KCk7CisgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNl
dChpbnNwZWN0b3JQcm9ncmFtLmlkZW50aWZpZXIoKSwgV1RGTW92ZShpbnNwZWN0b3JQcm9ncmFt
UmVmKSk7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3Rv
clByb2dyYW0uYnVpbGRPYmplY3RGb3JTaGFkZXJQcm9ncmFtKCkpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCkBAIC02NTAsMTggKzY1MCwxMCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojpk
aWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgV2ViR1BVUAogCiAg
ICAgQVNTRVJUKHBpcGVsaW5lLmlzVmFsaWQoKSk7CiAKLSAgICBhdXRvIGluc3BlY3RvclByb2dy
YW0gPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocGlwZWxpbmUsICppbnNwZWN0b3JD
YW52YXMpOwotICAgIFN0cmluZyBwcm9ncmFtSWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0t
PmlkZW50aWZpZXIoKTsKLSAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHBy
b2dyYW1JZGVudGlmaWVyLCBXVEZNb3ZlKGluc3BlY3RvclByb2dyYW0pKTsKLQotICAgIE9wdGlv
bmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU+IHByb2dyYW1UeXBl
OwotICAgIGlmIChpczxXZWJHUFVDb21wdXRlUGlwZWxpbmU+KHBpcGVsaW5lKSkKLSAgICAgICAg
cHJvZ3JhbVR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpD
b21wdXRlOwotICAgIGVsc2UgaWYgKGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkp
Ci0gICAgICAgIHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9n
cmFtVHlwZTo6UmVuZGVyOwotICAgIEFTU0VSVChwcm9ncmFtVHlwZSk7Ci0KLSAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVy
KCksIHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZS52YWx1ZSgpKTsKKyAgICBhdXRvIGlu
c3BlY3RvclByb2dyYW1SZWYgPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocGlwZWxp
bmUsICppbnNwZWN0b3JDYW52YXMpOworICAgIGF1dG8mIGluc3BlY3RvclByb2dyYW0gPSBpbnNw
ZWN0b3JQcm9ncmFtUmVmLmdldCgpOworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3Jh
bS5zZXQoaW5zcGVjdG9yUHJvZ3JhbS5pZGVudGlmaWVyKCksIFdURk1vdmUoaW5zcGVjdG9yUHJv
Z3JhbVJlZikpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNw
ZWN0b3JQcm9ncmFtLmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSgpKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBl
bGluZSYgcGlwZWxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3YTFm
NDExN2YxMTQ0ZmQ0YTEyNzQwMDY0NTI5NTQyMjk0MjNhZTg0Li45Y2JjYzJmOTk1M2ZlMjdlZDg1
YjAwY2E2MDRkYzIxZGFjNDExYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
QEAgLTEyMzEsNiArMTIzMSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZlcmJvc2UiXSA9ICJWZXJi
b3NlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZlcnNpb24iXSA9ICJWZXJzaW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlZlcnRleCJdID0gIlZlcnRleCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXgg
U2hhZGVyIl0gPSAiVmVydGV4IFNoYWRlciI7Citsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXgvRnJh
Z21lbnQgU2hhZGVyIl0gPSAiVmVydGV4L0ZyYWdtZW50IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJWZXJ5IEhpZ2giXSA9ICJWZXJ5IEhpZ2giOwogbG9jYWxpemVkU3RyaW5nc1siVmlldyBJ
bWFnZSJdID0gIlZpZXcgSW1hZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siVmlldyBSZWNvcmRpbmci
XSA9ICJWaWV3IFJlY29yZGluZyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRl
eCAzOGYwMWJiNjY2N2VjMDA4MzA3ZjBlM2Y1MmY0MmRmZTJiZTFmNTgwLi43MzNjMTAwNjYzODI4
NmQ0ZDk0NjYxNWUwNjRhNGZjNzNhZDRhNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFn
ZXIuanMKQEAgLTIzNCwyMCArMjM0LDI4IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52
YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhbnZhcy5lbmFibGVFeHRlbnNp
b24oZXh0ZW5zaW9uKTsKICAgICB9CiAKLSAgICBwcm9ncmFtQ3JlYXRlZChjYW52YXNJZGVudGlm
aWVyLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUpCisgICAgcHJvZ3JhbUNyZWF0ZWQo
c2hhZGVyUHJvZ3JhbVBheWxvYWQpCiAgICAgewotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5f
Y2FudmFzSWRlbnRpZmllck1hcC5nZXQoY2FudmFzSWRlbnRpZmllcik7CisgICAgICAgIGxldCBj
YW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChzaGFkZXJQcm9ncmFtUGF5bG9h
ZC5jYW52YXNJZCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyk7CiAgICAgICAgIGlm
ICghY2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCF0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5oYXMocHJvZ3JhbUlkZW50aWZpZXIp
LCBgU2hhZGVyUHJvZ3JhbSBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7cHJvZ3JhbUlkZW50aWZp
ZXJ9LmApOworICAgICAgICBsZXQgcHJvZ3JhbUlkID0gc2hhZGVyUHJvZ3JhbVBheWxvYWQucHJv
Z3JhbUlkOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50
aWZpZXJNYXAuaGFzKHByb2dyYW1JZCksIGBTaGFkZXJQcm9ncmFtIGFscmVhZHkgZXhpc3RzIHdp
dGggaWQgJHtwcm9ncmFtSWR9LmApOwogCi0gICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAx
Myk6IGBwcm9ncmFtVHlwZWAgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxMy4wKTogYENhbnZhcy5TaGFkZXJQcm9ncmFtLnByb2dyYW1UeXBlYCBkaWQg
bm90IGV4aXN0IHlldC4KKyAgICAgICAgbGV0IHByb2dyYW1UeXBlID0gc2hhZGVyUHJvZ3JhbVBh
eWxvYWQucHJvZ3JhbVR5cGU7CiAgICAgICAgIGlmICghcHJvZ3JhbVR5cGUpCiAgICAgICAgICAg
ICBwcm9ncmFtVHlwZSA9IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOwogCi0g
ICAgICAgIGxldCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZp
ZXIsIHByb2dyYW1UeXBlLCBjYW52YXMpOworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworCisg
ICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogYENhbnZhcy5TaGFkZXJQcm9ncmFt
LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyYCBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAg
aWYgKHNoYWRlclByb2dyYW1QYXlsb2FkLnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAg
ICAgICAgICAgb3B0aW9ucy5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlciA9IHRydWU7CisKKyAg
ICAgICAgbGV0IHByb2dyYW0gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbShwcm9ncmFtSWQsIHByb2dy
YW1UeXBlLCBjYW52YXMsIG9wdGlvbnMpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRl
bnRpZmllck1hcC5zZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsKIAogICAgICAgICBj
YW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0u
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJv
Z3JhbS5qcwppbmRleCBjOWI2ZTAzMjFmMjIwYjdjYTJjMDUzNDlmYTA2NTEzMjI1MjhlOWJiLi4w
MTZkOGIxOGY0NjhjYzI0OGJiMzMxOTMxNmJhMjhjMDRmYmI3Mjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJv
Z3JhbS5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hh
ZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGlkZW50aWZp
ZXIsIHByb2dyYW1UeXBlLCBjYW52YXMpCisgICAgY29uc3RydWN0b3IoaWRlbnRpZmllciwgcHJv
Z3JhbVR5cGUsIGNhbnZhcywge3NoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyfSA9IHt9KQogICAg
IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZSkuaW5jbHVkZXMo
cHJvZ3JhbVR5cGUpKTsKQEAgLTM3LDYgKzM3LDEwIEBAIFdJLlNoYWRlclByb2dyYW0gPSBjbGFz
cyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2lkZW50aWZp
ZXIgPSBpZGVudGlmaWVyOwogICAgICAgICB0aGlzLl9wcm9ncmFtVHlwZSA9IHByb2dyYW1UeXBl
OwogICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7CisKKyAgICAgICAgdGhpcy5fc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXIgPSAhIXNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyOworICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgfHwg
KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQ
VSAmJiB0aGlzLl9wcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5k
ZXIpKTsKKwogICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlOwogICAgIH0KIApAQCAtNzgs
NiArODIsNyBAQCBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRz
IFdJLk9iamVjdAogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmll
cjsgfQogICAgIGdldCBwcm9ncmFtVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3Byb2dyYW1UeXBlOyB9
CiAgICAgZ2V0IGNhbnZhcygpIHsgcmV0dXJuIHRoaXMuX2NhbnZhczsgfQorICAgIGdldCBzaGFy
ZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcigpIHsgcmV0dXJuIHRoaXMuX3NoYXJlc1ZlcnRleEZyYWdt
ZW50U2hhZGVyOyB9CiAKICAgICBnZXQgZGlzcGxheU5hbWUoKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2Vy
dmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2Fu
dmFzT2JzZXJ2ZXIuanMKaW5kZXggNmY1MzU3NDQzNDZmMjA3MTIwY2JlOWU5ZDNjYTI3ZjRjYmVl
YTA4Ny4uOGZmM2ZlNzIwYjczZjIzMGM2ZWQ1ZTcxMDQwMWMzYWM3Y2ZjNDUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2Jz
ZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvQ2FudmFzT2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDE2IEBAIFdJLkNhbnZhc09ic2VydmVy
ID0gY2xhc3MgQ2FudmFzT2JzZXJ2ZXIKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5leHRlbnNp
b25FbmFibGVkKGNhbnZhc0lkLCBleHRlbnNpb24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVh
dGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQsIHByb2dyYW1UeXBlKQorICAgIHByb2dyYW1DcmVhdGVk
KHNoYWRlclByb2dyYW0pCiAgICAgewotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnByb2dyYW1D
cmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQsIHByb2dyYW1UeXBlKTsKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDEzLjApOiBgc2hhZGVyUHJvZ3JhbWAgcmVwbGFjZWQgYGNhbnZhc0lk
YCBhbmQgYHByb2dyYW1JZGAuCisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7
CisgICAgICAgICAgICBzaGFkZXJQcm9ncmFtID0geworICAgICAgICAgICAgICAgIGNhbnZhc0lk
OiBhcmd1bWVudHNbMF0sCisgICAgICAgICAgICAgICAgcHJvZ3JhbUlkOiBhcmd1bWVudHNbMV0s
CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucHJv
Z3JhbUNyZWF0ZWQoc2hhZGVyUHJvZ3JhbSk7CiAgICAgfQogCiAgICAgcHJvZ3JhbURlbGV0ZWQo
cHJvZ3JhbUlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKaW5kZXggOGNlMjgxNTMy
ZWU5YTU1NjczOWRmZmRmMDEyYzE3ZmMxMWU4YjI0OS4uZTEzOTBjZDcxOWY0MzM4Njg2YTdlM2Q3
MzVhZjQ0OWQ5ZWVkYzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCkBAIC02
ODUsOCArNjg1LDcgQEAKIAogICAgIC8vIEZJWE1FOiBBZGQgV0hMU0wgc3BlY2lmaWMgbW9kZXMu
CiAgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtY29tcHV0ZSIsIENvZGVN
aXJyb3IucmVzb2x2ZU1vZGUoIngtc2hhZGVyL3gtdmVydGV4IikpOwotICAgIENvZGVNaXJyb3Iu
ZGVmaW5lTUlNRSgieC1waXBlbGluZS94LWZyYWdtZW50IiwgQ29kZU1pcnJvci5yZXNvbHZlTW9k
ZSgieC1zaGFkZXIveC1mcmFnbWVudCIpKTsKLSAgICBDb2RlTWlycm9yLmRlZmluZU1JTUUoIngt
cGlwZWxpbmUveC12ZXJ0ZXgiLCBDb2RlTWlycm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZl
cnRleCIpKTsKKyAgICBDb2RlTWlycm9yLmRlZmluZU1JTUUoIngtcGlwZWxpbmUveC1yZW5kZXIi
LCBDb2RlTWlycm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZlcnRleCIpKTsKIH0pKCk7CiAK
IFdJLmNvbXBhcmVDb2RlTWlycm9yUG9zaXRpb25zID0gZnVuY3Rpb24oYSwgYikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDQ5NmE1ZTUzOWY5NzQyMDI0
ODdjODVjODFiYmJkZWM1OTg5MTViZTYuLjJmNmMwNjY0MzExOTE5Y2MxZGNhOGVkZDA0YzMwZjQ2
OTAxNzBkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcwpA
QCAtMzEsMTkgKzMxLDIwIEBACiAgICAgYm90dG9tOiAwOwogfQogCi0uY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXBy
b2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUsCisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4g
LnNoYWRlci52ZXJ0ZXguc2hhcmVzLXZlcnRleC1mcmFnbWVudC1zaGFkZXIgewogICAgIHJpZ2h0
OiAwOwogICAgIGxlZnQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LAorYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdt
ZW50LXNoYWRlciksCiBib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0g
PiAuc2hhZGVyLmZyYWdtZW50IHsKICAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxl
ZnQ6IDA7CiB9CiAKIGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC5zaGFkZXIuZnJhZ21lbnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXBy
b2dyYW0gPiAuc2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleDpub3QoLnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQt
c2hhZGVyKSB7CiAgICAgd2lkdGg6IGNhbGMoNTAlICsgMXB4KTsKICAgICByaWdodDogMDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1No
YWRlclByb2dyYW1Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwppbmRleCBlOTg3ZmU1NmM4
NmRiYWU3N2JhZWIwMjE2ZTE3MDIxYjQxNmQ2ZjczLi4xNzc1MWZhNTBlYTlkNTZmMGRhY2M2Yzhl
ZmNmMTJhMTJmZTYzYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3
LmpzCkBAIC0zMiw2ICszMiw3IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNz
IFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAgICAgICAgIHN1
cGVyKHNoYWRlclByb2dyYW0pOwogCiAgICAgICAgIGxldCBpc1dlYkdQVSA9IHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR1BVOworICAgICAgICBsZXQgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgPSBpc1dlYkdQ
VSAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyOwog
CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFn
ZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9u
TmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlz
aWJpbGl0eVByaW9yaXR5LkxvdzsKQEAgLTY3LDE4ICs2OCwyMiBAQCBXSS5TaGFkZXJQcm9ncmFt
Q29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50VgogCiAgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5G
cmFnbWVudDoKICAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50
ID0gV0kuVUlTdHJpbmcoIkZyYWdtZW50IFNoYWRlciIpOwotICAgICAgICAgICAgICAgIHRleHRF
ZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtZnJhZ21lbnQiIDogIngt
c2hhZGVyL3gtZnJhZ21lbnQiOworICAgICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUg
PSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtcmVuZGVyIiA6ICJ4LXNoYWRlci94LWZyYWdtZW50
IjsKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OgotICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250
YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOwotICAgICAg
ICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gt
dmVydGV4IiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CisgICAgICAgICAgICAgICAgaWYgKHNoYXJl
c1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29u
dGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleC9GcmFnbWVudCBTaGFkZXIi
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNoYWRlclR5cGVD
b250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAg
ICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5l
L3gtcmVuZGVyIiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9y
KTsKICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0ZXh0RWRpdG9yLmVsZW1lbnQp
OwogICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNoYWRlciIsIHNoYWRlclR5
cGUpOworICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoInNoYXJlcy12ZXJ0
ZXgtZnJhZ21lbnQtc2hhZGVyIiwgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIpOwogCiAgICAg
ICAgICAgICByZXR1cm4ge2NvbnRhaW5lciwgdGV4dEVkaXRvcn07CiAgICAgICAgIH07CkBAIC05
OCw5ICsxMDMsMTEgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVy
UHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMu
X3ZlcnRleENvbnRhaW5lciA9IHZlcnRleEVkaXRvci5jb250YWluZXI7CiAgICAgICAgICAgICB0
aGlzLl92ZXJ0ZXhFZGl0b3IgPSB2ZXJ0ZXhFZGl0b3IudGV4dEVkaXRvcjsKIAotICAgICAgICAg
ICAgbGV0IGZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVudENvbnRhaW5lciA9
IGZyYWdtZW50RWRpdG9yLmNvbnRhaW5lcjsKLSAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRp
dG9yID0gZnJhZ21lbnRFZGl0b3IudGV4dEVkaXRvcjsKKyAgICAgICAgICAgIGlmICghc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXIpIHsKKyAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnRFZGl0
b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudENvbnRhaW5lciA9IGZyYWdtZW50RWRpdG9y
LmNvbnRhaW5lcjsKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdt
ZW50RWRpdG9yLnRleHRFZGl0b3I7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMu
X2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTEyOCw3ICsxMzUsOCBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFz
cyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAg
IGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0
aGlzLl92ZXJ0ZXhFZGl0b3Iuc2hvd24oKTsKLSAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRp
dG9yLnNob3duKCk7CisgICAgICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hh
cmVzVmVydGV4RnJhZ21lbnRTaGFkZXIpCisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRF
ZGl0b3Iuc2hvd24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTE0NCw3
ICsxNTIsOCBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9n
cmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIGNhc2UgV0kuU2hh
ZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhF
ZGl0b3IuaGlkZGVuKCk7Ci0gICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5oaWRkZW4o
KTsKKyAgICAgICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5oaWRk
ZW4oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI3Niw3ICsyODUsOCBA
QCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZS5SZW5kZXI6CiAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwg
Y3JlYXRlQ2FsbGJhY2sodGhpcy5fdmVydGV4Q29udGFpbmVyLCB0aGlzLl92ZXJ0ZXhFZGl0b3Ip
KTsKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFNoYWRlclNvdXJj
ZShXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIGNyZWF0ZUNhbGxiYWNrKHRo
aXMuX2ZyYWdtZW50Q29udGFpbmVyLCB0aGlzLl9mcmFnbWVudEVkaXRvcikpOworICAgICAgICAg
ICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVy
KQorICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFNoYWRlclNv
dXJjZShXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIGNyZWF0ZUNhbGxiYWNr
KHRoaXMuX2ZyYWdtZW50Q29udGFpbmVyLCB0aGlzLl9mcmFnbWVudEVkaXRvcikpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDkxY2M3NjQ2MjljMDJhOGIzODI0
YTY5ZTk5ODY3NjFhODQ5OTY5Li5kZjA3OTI5ZjE4MDUzZGNiZGQ1ZmRiNTU2ZWM2NTdlOWYzODBk
ZDY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogbW9kaWZp
Y2F0aW9ucyB0byBzaGFkZXIgbW9kdWxlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4gdmVydGV4L2Zy
YWdtZW50IHNoYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRl
eEZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvdXBkYXRl
U2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CiAyMDE5LTEwLTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFkZCBJREwgZm9yIHJlcXVlc3RJZGxlQ2FsbGJhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2
YWJjZDAwNjZlNzRjMmRkNGM1MTQ3NmM0ZjcwYzgwYTQ4N2VkOTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVk
VmVydGV4RnJhZ21lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1dlYkdQVSB0ZXN0
cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kIHdoZW4gdGhlIHZlcnRleCBhbmQgZnJh
Z21lbnQgc2hhZGVycyBvZiBhIHJlbmRlciBwaXBlbGluZSBzaGFyZSB0aGUgc2FtZSBtb2R1bGUu
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5T
aGFyZWRWZXJ0ZXhGcmFnbWVudAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVT
aGFkZXIuV2ViR1BVLlNoYXJlZFZlcnRleEZyYWdtZW50LlNpbmdsZVBpcGVsaW5lCitDcmVhdGlu
ZyByZW5kZXIgcGlwZWxpbmUuLi4KK1BBU1M6IFZlcnRleCBhbmQgRnJhZ21lbnQgc2hhZGVyIHNv
dXJjZXMgc2hvdWxkIGJlIHRoZSBzYW1lLgorVXBkYXRpbmcgdmVydGV4IHNoYWRlciBzb3VyY2Uu
Li4KK1BBU1M6IFZlcnRleCBhbmQgRnJhZ21lbnQgc2hhZGVyIHNvdXJjZXMgc2hvdWxkIGJlIHRo
ZSBzYW1lLgorUEFTUzogVmVydGV4IHNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorVXBkYXRp
bmcgZnJhZ21lbnQgc2hhZGVyIHNvdXJjZS4uLgorUEFTUzogVmVydGV4IGFuZCBGcmFnbWVudCBz
aGFkZXIgc291cmNlcyBzaG91bGQgYmUgdGhlIHNhbWUuCitQQVNTOiBGcmFnbWVudCBzb3VyY2Ug
c2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRh
dGVTaGFkZXIuV2ViR1BVLlNoYXJlZFZlcnRleEZyYWdtZW50Lk11bHRpcGxlUGlwZWxpbmVzCitD
cmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4KK0NyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLgor
UEFTUzogQm90aCBwaXBlbGluZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc291cmNlLgorVXBkYXRp
bmcgcGlwZWxpbmUgMSB2ZXJ0ZXggc291cmNlLi4uCitQQVNTOiBTb3VyY2Ugb2YgcGlwZWxpbmUg
MSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorUEFTUzogQm90aCBwaXBlbGluZXMgc2hvdWxkIGhhdmUg
ZGlmZmVyZW50IHNvdXJjZXMuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRl
eEZyYWdtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRkMDJhYjE3ZTkwNWE0Yjc4YTAyNjU1MDQ5YWUy
OGRiMzMxMDg3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCkBAIC0wLDAg
KzEsMTQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdQVUVuYWJsZWQodHJ1ZSk7CisKK2NvbnN0IHJlbmRlclBp
cGVsaW5lU291cmNlID0gYAordmVydGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0
aW9uIDogYXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9u
IHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudFNo
YWRlcihmbG9hdDQgcG9zaXRpb24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJnZXQgMCB7CisgICAg
cmV0dXJuIHBvc2l0aW9uOworfQorYDsKKworbGV0IGRldmljZSA9IG51bGw7CitsZXQgc2hhZGVy
TW9kdWxlID0gbnVsbDsKKworYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUoKSB7
CisgICAgaWYgKCFkZXZpY2UpIHsKKyAgICAgICAgbGV0IGFkYXB0ZXIgPSBhd2FpdCBuYXZpZ2F0
b3IuZ3B1LnJlcXVlc3RBZGFwdGVyKCk7CisgICAgICAgIGRldmljZSA9IGF3YWl0IGFkYXB0ZXIu
cmVxdWVzdERldmljZSgpOworICAgIH0KKworICAgIGlmICghc2hhZGVyTW9kdWxlKQorICAgICAg
ICBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiByZW5kZXJQ
aXBlbGluZVNvdXJjZX0pOworCisgICAgLy8gQ29waWVkIGZyb20gd2ViZ3B1L3dobHNsL3dobHNs
Lmh0bWwuCisgICAgY29uc3QgdmVydGV4U3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVu
dHJ5UG9pbnQ6ICJ2ZXJ0ZXhTaGFkZXIifTsKKyAgICBjb25zdCBmcmFnbWVudFN0YWdlID0ge21v
ZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiAiZnJhZ21lbnRTaGFkZXIifTsKKyAgICBj
b25zdCBwcmltaXRpdmVUb3BvbG9neSA9ICJ0cmlhbmdsZS1zdHJpcCI7CisgICAgY29uc3QgcmFz
dGVyaXphdGlvblN0YXRlID0ge2Zyb250RmFjZTogImN3IiwgY3VsbE1vZGU6ICJub25lIn07Cisg
ICAgY29uc3QgYWxwaGFCbGVuZCA9IHt9OworICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7fTsKKyAg
ICBjb25zdCBjb2xvclN0YXRlcyA9IFt7Zm9ybWF0OiAicmdiYTh1bm9ybSIsIGFscGhhQmxlbmQs
IGNvbG9yQmxlbmQsIHdyaXRlTWFzazogMTV9XTsgLy8gR1BVQ29sb3JXcml0ZS5BTEwKKyAgICBj
b25zdCBkZXB0aFN0ZW5jaWxTdGF0ZSA9IG51bGw7CisgICAgY29uc3QgYXR0cmlidXRlMCA9IHtz
aGFkZXJMb2NhdGlvbjogMCwgZm9ybWF0OiAiZmxvYXQ0In07CisgICAgY29uc3QgYXR0cmlidXRl
MSA9IHtzaGFkZXJMb2NhdGlvbjogMSwgZm9ybWF0OiAiZmxvYXQifTsKKyAgICBjb25zdCBpbnB1
dDAgPSB7c3RyaWRlOiAxNiwgYXR0cmlidXRlU2V0OiBbYXR0cmlidXRlMF19OworICAgIGNvbnN0
IGlucHV0MSA9IHtzdHJpZGU6IDQsIGF0dHJpYnV0ZVNldDogW2F0dHJpYnV0ZTFdfTsKKyAgICBj
b25zdCBpbnB1dHMgPSBbaW5wdXQwLCBpbnB1dDFdOworICAgIGNvbnN0IHZlcnRleElucHV0ID0g
e3ZlcnRleEJ1ZmZlcnM6IGlucHV0c307CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAidW5p
Zm9ybS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVh
dGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAgY29uc3Qg
cGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBM
YXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGlu
ZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworICAgIGRldmljZS5jcmVhdGVSZW5k
ZXJQaXBlbGluZSh7dmVydGV4U3RhZ2UsIGZyYWdtZW50U3RhZ2UsIHByaW1pdGl2ZVRvcG9sb2d5
LCByYXN0ZXJpemF0aW9uU3RhdGUsIGNvbG9yU3RhdGVzLCBkZXB0aFN0ZW5jaWxTdGF0ZSwgdmVy
dGV4SW5wdXQsIHNhbXBsZUNvdW50OiAxLCBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0fSk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5TaGFyZWRWZXJ0ZXhGcmFnbWVu
dCIpOworCisgICAgYXN5bmMgZnVuY3Rpb24gYXdhaXRQcm9ncmFtQ3JlYXRlZCgpIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLiIpOworICAg
ICAgICBsZXQgZXZhbHV0ZVByb21pc2UgPSBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBj
cmVhdGVSZW5kZXJQaXBlbGluZSgpYCk7CisKKyAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzLmxlbmd0aCkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuYXdh
aXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKTsKKworICAgICAgICBs
ZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CisKKyAgICAgICAgbGV0IGl0
ZW1BZGRlZEV2ZW50ID0gYXdhaXQgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmF3YWl0
RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworICAgICAgICBsZXQgc2hhZGVy
UHJvZ3JhbSA9IGl0ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoc2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZSA9PT0gV0kuU2hhZGVyUHJvZ3JhbS5Q
cm9ncmFtVHlwZS5SZW5kZXIsICJTaGFkZXIgcHJvZ3JhbSBzaG91bGQgYmUgYSByZW5kZXIgcGlw
ZWxpbmUuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHNoYWRlclByb2dyYW0uc2hh
cmVzVmVydGV4RnJhZ21lbnRTaGFkZXIsICJTaGFkZXIgcHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHNo
YXJlZCB2ZXJ0ZXggYW5kIGZyYWdtZW50IG1vZHVsZS4iKTsKKworICAgICAgICBhd2FpdCBldmFs
dXRlUHJvbWlzZTsKKyAgICAgICAgcmV0dXJuIHNoYWRlclByb2dyYW07CisgICAgfQorCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5X
ZWJHUFUuU2hhcmVkVmVydGV4RnJhZ21lbnQuU2luZ2xlUGlwZWxpbmUiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgdXBkYXRpbmcgdGhlIHZlcnRleC9mcmFnbWVudCBzaGFkZXIg
d2lsbCBhbHNvIGFmZmVjdCB0aGUgZnJhZ21lbnQvdmVydGV4IHNoYWRlciBpZiB0aGV5IGJvdGgg
dXNlIHRoZSBzYW1lIG1vZHVsZS4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgbGV0IHNoYWRlclByb2dyYW0gPSBhd2FpdCBhd2FpdFByb2dyYW1DcmVhdGVkKCk7CisKKyAg
ICAgICAgICAgIGxldCBbb3JpZ2luYWxWZXJ0ZXhTb3VyY2UsIG9yaWdpbmFsRnJhZ21lbnRTb3Vy
Y2VdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnJl
cXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9n
cmFtLlNoYWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1
ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLkZyYWdtZW50KSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwob3JpZ2luYWxWZXJ0ZXhTb3VyY2UsIG9yaWdp
bmFsRnJhZ21lbnRTb3VyY2UsICJWZXJ0ZXggYW5kIEZyYWdtZW50IHNoYWRlciBzb3VyY2VzIHNo
b3VsZCBiZSB0aGUgc2FtZS4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlVw
ZGF0aW5nIHZlcnRleCBzaGFkZXIgc291cmNlLi4uIik7CisgICAgICAgICAgICBhd2FpdCBDYW52
YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LCAiLy8gTU9ESUZJRUQgVkVSVEVYXG5cbiIgKyBvcmln
aW5hbFZlcnRleFNvdXJjZS5zb3VyY2UpOworCisgICAgICAgICAgICBsZXQgW3ZlcnRleFNvdXJj
ZUFmdGVyVXBkYXRpbmdWZXJ0ZXgsIGZyYWdtZW50U291cmNlQWZ0ZXJVcGRhdGluZ1ZlcnRleF0g
PSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVz
dFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0u
U2hhZGVyVHlwZS5WZXJ0ZXgpLAorICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RT
aGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNo
YWRlclR5cGUuRnJhZ21lbnQpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbCh2ZXJ0ZXhTb3VyY2VBZnRlclVwZGF0aW5nVmVydGV4
LCBmcmFnbWVudFNvdXJjZUFmdGVyVXBkYXRpbmdWZXJ0ZXgsICJWZXJ0ZXggYW5kIEZyYWdtZW50
IHNoYWRlciBzb3VyY2VzIHNob3VsZCBiZSB0aGUgc2FtZS4iKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKHZlcnRleFNvdXJjZUFmdGVyVXBkYXRpbmdW
ZXJ0ZXgsIG9yaWdpbmFsVmVydGV4U291cmNlLCAiVmVydGV4IHNvdXJjZSBzaG91bGQgaGF2ZSBj
aGFuZ2VkLiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVXBkYXRpbmcgZnJh
Z21lbnQgc2hhZGVyIHNvdXJjZS4uLiIpOworICAgICAgICAgICAgYXdhaXQgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5T
aGFkZXJUeXBlLkZyYWdtZW50LCAiLy8gTU9ESUZJRUQgRlJBR01FTlRcblxuIiArIG9yaWdpbmFs
RnJhZ21lbnRTb3VyY2Uuc291cmNlKTsKKworICAgICAgICAgICAgbGV0IFt2ZXJ0ZXhTb3VyY2VB
ZnRlclVwZGF0aW5nRnJhZ21lbnQsIGZyYWdtZW50U291cmNlQWZ0ZXJVcGRhdGluZ0ZyYWdtZW50
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1
ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLlZlcnRleCksCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVz
dFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0u
U2hhZGVyVHlwZS5GcmFnbWVudCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKHZlcnRleFNvdXJjZUFmdGVyVXBkYXRpbmdGcmFn
bWVudCwgZnJhZ21lbnRTb3VyY2VBZnRlclVwZGF0aW5nRnJhZ21lbnQsICJWZXJ0ZXggYW5kIEZy
YWdtZW50IHNoYWRlciBzb3VyY2VzIHNob3VsZCBiZSB0aGUgc2FtZS4iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKGZyYWdtZW50U291cmNlQWZ0ZXJV
cGRhdGluZ0ZyYWdtZW50LCBvcmlnaW5hbEZyYWdtZW50U291cmNlLCAiRnJhZ21lbnQgc291cmNl
IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BV
LlNoYXJlZFZlcnRleEZyYWdtZW50Lk11bHRpcGxlUGlwZWxpbmVzIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IHVwZGF0aW5nIG9uZSBwaXBlbGluZSB3b24ndCBhZmZlY3QgYW55
IG90aGVyIHBpcGVsaW5lcyBpZiB0aGV5IHNoYXJlIHRoZSBzYW1lIG1vZHVsZS4iLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0xID0gYXdhaXQg
YXdhaXRQcm9ncmFtQ3JlYXRlZCgpOworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0yID0g
YXdhaXQgYXdhaXRQcm9ncmFtQ3JlYXRlZCgpOworCisgICAgICAgICAgICBsZXQgW29yaWdpbmFs
VmVydGV4U291cmNlMSwgb3JpZ2luYWxWZXJ0ZXhTb3VyY2UyXSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRl
clByb2dyYW0xLmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgp
LAorICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVy
UHJvZ3JhbTIuaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCks
CisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxv
d0VxdWFsKG9yaWdpbmFsVmVydGV4U291cmNlMSwgb3JpZ2luYWxWZXJ0ZXhTb3VyY2UyLCAiQm90
aCBwaXBlbGluZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc291cmNlLiIpOworCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiVXBkYXRpbmcgcGlwZWxpbmUgMSB2ZXJ0ZXggc291cmNlLi4u
Iik7CisgICAgICAgICAgICBhd2FpdCBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJv
Z3JhbTEuaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwgIi8v
IE1PRElGSUVEIFZFUlRFWFxuXG4iICsgb3JpZ2luYWxWZXJ0ZXhTb3VyY2UxLnNvdXJjZSk7CisK
KyAgICAgICAgICAgIGxldCBbbmV3VmVydGV4U291cmNlMSwgbmV3VmVydGV4U291cmNlMl0gPSBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNo
YWRlclNvdXJjZShzaGFkZXJQcm9ncmFtMS5pZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNo
YWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hh
ZGVyU291cmNlKHNoYWRlclByb2dyYW0yLmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5WZXJ0ZXgpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChvcmlnaW5hbFZlcnRleFNvdXJjZTEsIG5ld1ZlcnRl
eFNvdXJjZTEsICJTb3VyY2Ugb2YgcGlwZWxpbmUgMSBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3VmVydGV4
U291cmNlMSwgbmV3VmVydGV4U291cmNlMiwgIkJvdGggcGlwZWxpbmVzIHNob3VsZCBoYXZlIGRp
ZmZlcmVudCBzb3VyY2VzLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+V2ViR1BVIHRlc3RzIGZvciBDYW52YXMudXBkYXRlU2hhZGVyIGNv
bW1hbmQgd2hlbiB0aGUgdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzIG9mIGEgcmVuZGVyIHBp
cGVsaW5lIHNoYXJlIHRoZSBzYW1lIG1vZHVsZS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380467</attachid>
            <date>2019-10-08 14:43:24 -0700</date>
            <delta_ts>2019-10-08 16:16:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202031-20191008144323.patch</filename>
            <type>text/plain</type>
            <size>48503</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM1NTIwYjUzMmUyYWNhZWMzZGMwODc1NDE4Yjhl
YmE3MjdkMzdlNjAuLmQ5MThjNGI0YzgwN2E3NjJmMjMxODYzYWE2Y2NkNDJlNzEwODgyYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IG1vZGlmaWNhdGlvbnMgdG8gc2hhZGVyIG1vZHVsZXMgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIHZlcnRleC9mcmFnbWVudCBzaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEph
Y2tzb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb246CisgICAg
ICAgIENyZWF0ZSBhIGRpc3RpbmN0IGBTaGFkZXJQcm9ncmFtYCB0eXBlIHNvIHRoYXQgYWRkaXRp
b25hbCBkYXRhIGNhbiBiZSBidW5kbGVkIGFuZCBzZW50IHRvCisgICAgICAgIHRoZSBmcm9udGVu
ZCBhcyBwYXJ0IG9mIHRoZSBgcHJvZ3JhbUNyZWF0ZWRgIGV2ZW50IHdpdGhvdXQgaGF2aW5nIHRv
IHdvcnJ5IGFib3V0IGhhdmluZyB0b28KKyAgICAgICAgbWFueSBhcmd1bWVudHMuCisKIDIwMTkt
MTAtMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlND
XSBGVEwgdm1DYWxsIHNob3VsZCBjaGVjayAjIG9mIGFyZ3VtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEy
NzdkMzQ0MjgzZDZhYzUwZTdkZjM3YTAwOGFmMmQxNTRhNjc0MmYuLjk1NmM0MjJlYTFlMmZkZmQ0
NjhlOTM2YTY5OWI3ODkxNzAyZTJmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
OS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQ2FudmFzOiBtb2RpZmljYXRpb25zIHRvIHNoYWRlciBtb2R1bGVzIGNhbiBi
ZSBzaGFyZWQgYmV0d2VlbiB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21w
dXRlUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVJlbmRlclBpcGVsaW5lOjpjbG9uZVNoYWRlck1vZHVsZXMpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUpOgorICAgICAgICBSZWNyZWF0
ZSB0aGUgdmVydGV4L2ZyYWdtZW50L2NvbXB1dGUgc2hhZGVyIG1vZHVsZShzKSB3aGVuIHJlY29t
cGlsaW5nIHNvIHRoYXQgbW9kaWZpY2F0aW9ucworICAgICAgICB0byBpdCB2aWEgdGhpcyBwaXBl
bGluZSBkb24ndCBhZmZlY3Qgb3RoZXIgcGlwZWxpbmVzIHRoYXQgYWxzbyB1c2UgdGhlIHNhbWUg
c2hhZGVyIG1vZHVsZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9n
cmFtLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OmJ1aWxkT2JqZWN0Rm9y
U2hhZGVyUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUpOgorICAgICAgICBJbmNsdWRlIGFz
IHBhcnQgb2YgdGhlIGBDYW52YXMuZXZlbnQucHJvZ3JhbUNyZWF0ZWRgIHBheWxvYWQgYSBmbGFn
IGluZGljYXRpbmcgd2hldGhlciB0aGUKKyAgICAgICAgdmVydGV4IHNoYWRlciBtb2R1bGUgYW5k
IGZyYWdtZW50IHNoYWRlciBtb2R1bGUgYXJlIHRoZSBzYW1lIGZvciBgV2ViR1BVUmVuZGVyUGlw
ZWxpbmVgcy4KKwogMjAxOS0xMC0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWVkaWFTdHJlYW1UcmFjayBzaG91bGQgYmUgYSBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNsaWVudCBpbnN0ZWFkIG9mIE1lZGlhU3RyZWFtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpp
bmRleCAwMDI1NTkyYTBiNjc3MTBlOGZhN2IwODM0MzRhYTkxNDMzMzllYzk3Li5lMmFmOTUyNGRl
Yjg2ZjNjMjc3ZWUwZGMyN2RlNmM5N2IwOGE5YmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOSBAQAorMjAxOS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFzOiBtb2RpZmljYXRpb25zIHRv
IHNoYWRlciBtb2R1bGVzIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiB2ZXJ0ZXgvZnJhZ21lbnQgc2hh
ZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIElmIHRo
ZSB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgc291cmNlIG1vZHVs
ZSBmb3IgYSBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lLAorICAgICAgICBvbmx5IGRpc3BsYXkgYSBz
aW5nbGUgZWRpdGFibGUgY29udGVudCB2aWV3IGZvciB0aGF0IHNoYWRlciBwaXBlbGluZSBpbiB0
aGUgQ2FudmFzIFRhYi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclBy
b2dyYW0uanM6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdJLlNoYWRl
clByb2dyYW0ucHJvdG90eXBlLmdldCBzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcik6IEFkZGVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qczoK
KyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzOgorICAgICAg
ICAoV0kuQ2FudmFzT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLlNoYWRlclBy
b2dyYW1Db250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOgorICAgICAgICAoV0kuU2hhZGVyUHJv
Z3JhbUNvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOgorICAgICAgICAoV0kuU2hhZGVyUHJv
Z3JhbUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvbnRlbnQpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUsIC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleC5zaGFyZXMtdmVydGV4LWZyYWdt
ZW50LXNoYWRlcik6IEFkZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFyZXMtdmVydGV4LWZyYWdt
ZW50LXNoYWRlciksIGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC5zaGFkZXIuZnJhZ21lbnQpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsIGJvZHlbZGlyPXJ0bF0g
LmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4Om5vdCguc2hhcmVz
LXZlcnRleC1mcmFnbWVudC1zaGFkZXIpKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKGJv
ZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4
LCBib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZy
YWdtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsIGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4KTogRGVsZXRlZC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qczoKKyAgICAgICAg
UmVwbGFjZSB0aGUgdmVydGV4L2ZyYWdtZW50IHNwZWNpZmljIE1JTUUgdHlwZXMgd2l0aCBhIG1v
cmUgZ2VuZXJhbCAicmVuZGVyIiBNSU1FIHR5cGUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIwMTktMTAtMDcgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNldHRpbmdz
OiBlbmFibGUgdGhlIGltYWdlIHRyYW5zcGFyZW5jeSBncmlkIGJ5IGRlZmF1bHQgYW5kIGNyZWF0
ZSBhIGNoZWNrYm94IGZvciBpdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KaW5kZXggOGFlZTU1ZTE4NDgxNTYxYzIxYmI0NDgx
ODYwNzAwZDJkOTU3N2Y0Zi4uMTc1ZmY0MDlmNjFmOGFiNjdjNTUyNDI4MjMwNDQzYTFhODU5YTM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9D
YW52YXMuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0NhbnZhcy5qc29uCkBAIC01Nyw2ICs1NywxNyBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibWVtb3J5Q29zdCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJNZW1vcnkgdXNhZ2Ugb2YgdGhlIGNhbnZhcyBpbiBieXRlcy4iIH0sCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJiYWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiQ29uc29sZS5DYWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJCYWNrdHJhY2UgdGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlzIGNhbnZh
cyBjb250ZXh0IHdhcyBjcmVhdGVkLiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAiaWQiOiAiU2hhZGVyUHJvZ3JhbSIsCisgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZm9ybWF0aW9u
IGFib3V0IGEgV2ViR0wvV2ViR0wyIHNoYWRlciBwcm9ncmFtIG9yIFdlYkdQVSBzaGFkZXIgcGlw
ZWxpbmUuIiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicHJvZ3JhbVR5cGUiLCAiJHJlZiI6ICJQcm9ncmFtVHlwZSIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAs
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlciIs
ICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSW5k
aWNhdGVzIHdoZXRoZXIgdGhlIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVyIG1vZHVsZXMgYXJl
IHRoZSBzYW1lIG9iamVjdCBmb3IgYSByZW5kZXIgc2hhZGVyIHBpcGxlaW5lIGZvciBhIFdlYkdQ
VSBkZXZpY2UuIiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21t
YW5kcyI6IFsKQEAgLTIyNyw5ICsyMzgsNyBAQAogICAgICAgICB7CiAgICAgICAgICAgICAibmFt
ZSI6ICJwcm9ncmFtQ3JlYXRlZCIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAsCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQi
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtVHlwZSIsICIkcmVmIjogIlBy
b2dyYW1UeXBlIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFkZXJQcm9ncmFtIiwg
IiRyZWYiOiAiU2hhZGVyUHJvZ3JhbSIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAg
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCAzNTM1MzkyMzM1ZjRlZjhjNTQ2NzgwYjczZGIwOWFh
MzAyYWI2OGY0Li44YThjZjBkNzVkMzRlNDEwNzk2ZGRhYmY0Njc1OTZlYThjYWRlMzc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5jcHAKQEAgLTMyLDcgKzMyLDEwIEBACiAjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMu
aCIKICNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUg
IkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIK
KyNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKQEAgLTUyLDEwICs1NSwyNSBAQCBXZWJHUFVDb21w
dXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwg
UmVmUHRyPEdQVUNvbQogCiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRlUGlw
ZWxpbmUoKSA9IGRlZmF1bHQ7CiAKK2Jvb2wgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjbG9uZVNo
YWRlck1vZHVsZXMoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7CisgICAgaWYgKG1fY29t
cHV0ZVNoYWRlcikgeworICAgICAgICBpZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVs
ZSA9IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgY29uc3Qg
YXV0byYgY29tcHV0ZVNvdXJjZSA9IHdlYkdQVUNvbXB1dGVTaGFkZXJNb2R1bGUtPnNvdXJjZSgp
OworICAgICAgICAgICAgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IFdlYkdQVVNoYWRlck1v
ZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRldmljZS5kZXZpY2UoKSwg
eyBjb21wdXRlU291cmNlIH0pLCBjb21wdXRlU291cmNlKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBXZWJH
UFVDb21wdXRlUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkK
IHsKICAgICBpZiAobV9jb21wdXRlUGlwZWxpbmUgJiYgbV9jb21wdXRlU2hhZGVyKSB7CiAgICAg
ICAgIGlmIChhdXRvJiB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVy
LnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAvLyBSZWNyZWF0ZSB0aGUgc2hhZGVyIG1v
ZHVsZSBzbyB0aGF0IG1vZGlmaWNhdGlvbnMgdG8gaXQgdmlhIHRoaXMgcGlwZWxpbmUgZG9uJ3Qg
YWZmZWN0CisgICAgICAgICAgICAvLyBvdGhlciBwaXBlbGluZXMgdGhhdCBhbHNvIHVzZSB0aGUg
c2FtZSBzaGFkZXIgbW9kdWxlLgorCiAgICAgICAgICAgICBpZiAoYXV0byogZ3B1Q29tcHV0ZVNo
YWRlck1vZHVsZSA9IHdlYkdQVUNvbXB1dGVTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKSB7CiAgICAg
ICAgICAgICAgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIGNvbXB1dGVTdGFnZSht
YWtlUmVmKCpncHVDb21wdXRlU2hhZGVyTW9kdWxlKSwgeyBtX2NvbXB1dGVTaGFkZXIudmFsdWUo
KS5lbnRyeVBvaW50IH0pOwogICAgICAgICAgICAgICAgIHJldHVybiBtX2NvbXB1dGVQaXBlbGlu
ZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgV1RGTW92ZShjb21wdXRlU3RhZ2UpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBl
bGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lLmgKaW5kZXggYzFhNzE4MDg0Nzk4NzY1NzZhOThhMTkyNzNhZTY1NzBlYTVmOTU2ZC4uNjVh
ZTQxMWEzMjg1YThmZDk1MDZiMzJlZGY2YjY4YTZlYTM2NmZlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSogY29tcHV0
ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KICAg
ICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29tcHV0ZVNoYWRlcjsgfQogCisgICAgYm9vbCBjbG9uZVNoYWRlck1v
ZHVsZXMoY29uc3QgV2ViR1BVRGV2aWNlJik7CiAgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2Vi
R1BVRGV2aWNlJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmUuaAppbmRleCAzYjM0YTRlYjA2NWNiMDQxOTgyZTkxMzBiZGE2MjUw
NzY1YjNhYjkwLi5jNDFhMWE5MDNkMmUzNDMxYWU4ZDhkN2FiMjk1YzM3YTI3MDBmMzFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgZW50cnlQb2ludDsKICAgICB9Owog
CisgICAgdmlydHVhbCBib29sIGNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVEZXZpY2Um
KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKSA9
IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAppbmRleCBmZTk1N2Y1NzBhMmYxNmM3M2RmOTIy
OTE0MzdlYmZhYmUzYjdmYzA0Li4wMmFhYmRiZjMyYTQ1Y2U5YzQzM2ZhOGE3Y2E5NTZjNWNjODZk
NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UmVuZGVyUGlwZWxpbmUuY3BwCkBAIC0zMiw3ICszMiwxMCBAQAogI2luY2x1ZGUgIkdQVVBpcGVs
aW5lLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGUuaCIK
KyNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BV
RGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC01Myw2ICs1NiwzMiBAQCBX
ZWJHUFVSZW5kZXJQaXBlbGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBk
ZXZpY2UsIFJlZlB0cjxHUFVSZW5kZQogCiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6fldlYkdQVVJl
bmRlclBpcGVsaW5lKCkgPSBkZWZhdWx0OwogCitib29sIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpj
bG9uZVNoYWRlck1vZHVsZXMoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7CisgICAgaWYg
KG1fdmVydGV4U2hhZGVyKSB7CisgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVWZXJ0ZXhTaGFkZXJN
b2R1bGUgPSBtX3ZlcnRleFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgYm9v
bCBzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlck1vZHVsZSA9IG1fZnJhZ21lbnRTaGFkZXIgJiYg
bV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSA9PSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1
bGU7CisKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHZlcnRleFNvdXJjZSA9IHdlYkdQVVZlcnRl
eFNoYWRlck1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICB3ZWJHUFVWZXJ0ZXhTaGFkZXJN
b2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFkZXJNb2R1bGU6OnRyeUNy
ZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgdmVydGV4U291cmNlIH0pLCB2ZXJ0ZXhTb3VyY2UpOwor
CisgICAgICAgICAgICBpZiAoIW1fZnJhZ21lbnRTaGFkZXIpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVGcmFnbWVudFNoYWRlck1v
ZHVsZSA9IG1fZnJhZ21lbnRTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXJNb2R1bGUpCisgICAgICAgICAgICAgICAg
ICAgIHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlID0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxl
OworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRv
JiBmcmFnbWVudFNvdXJjZSA9IHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlLT5zb3VyY2UoKTsK
KyAgICAgICAgICAgICAgICAgICAgd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBXZWJHUFVT
aGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2
aWNlKCksIHsgZnJhZ21lbnRTb3VyY2UgfSksIGZyYWdtZW50U291cmNlKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFdlYkdQVVJlbmRlclBp
cGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCiB7CiAgICAgaWYg
KG1fcmVuZGVyUGlwZWxpbmUgJiYgbV92ZXJ0ZXhTaGFkZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCmluZGV4IGIyYjgw
OTQwZTVmYzJhZTBiM2E3OWFiYTUzNTRkMTNkOTAwNDNiODEuLjYyYTcwZDE0YzVmMTBiM2I5MTkz
N2IwMmQyNTY5MjkzOWI1ZmUyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6
CiAgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyOyB9CiAgICAgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudFNoYWRlcjsgfQogCisgICAgYm9vbCBjbG9uZVNoYWRlck1vZHVsZXMoY29uc3QgV2ViR1BV
RGV2aWNlJik7CiAgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJik7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbS5jcHAKaW5kZXggN2FmNzE5NjMyOGYxMGM2OTYxYmQyN2Y4MzM5MGM5NDdhZWU2MDg0
MS4uMTE1MWJmMmM3ZTRlZGMxZjlhZDk0OTE5NWU4ZWE4NGQyZGJjODkzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAt
MjE1LDExICsyMTUsMTMgQEAgYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjp1cGRhdGVTaGFk
ZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXAKICAgICAgICAgWyZdIChz
dGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPiBwaXBlbGluZVdyYXBwZXIpIHsK
ICAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVyLmdldCgpOwogICAg
ICAgICAgICAgaWYgKGF1dG8qIGRldmljZSA9IG1fY2FudmFzLmRldmljZUNvbnRleHQoKSkgewot
ICAgICAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlckRhdGEgPSBzaGFkZXJGb3JUeXBlKHBpcGVs
aW5lLCBzaGFkZXJUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBtb2R1bGUg
PSBzaGFkZXJEYXRhLnZhbHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
b2R1bGUtPnVwZGF0ZSgqZGV2aWNlLCBzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHBpcGVsaW5lLnJlY29tcGlsZSgqZGV2aWNlKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAocGlwZWxpbmUuY2xvbmVTaGFk
ZXJNb2R1bGVzKCpkZXZpY2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHNoYWRl
ckRhdGEgPSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gbW9kdWxlID0gc2hhZGVyRGF0YS52YWx1ZSgpLm1vZHVs
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS0+dXBkYXRlKCpkZXZpY2Us
IHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpcGVsaW5lLnJlY29t
cGlsZSgqZGV2aWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yMzUsNCArMjM3LDUzIEBAIGJvb2wg
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNhbnZhczo6U2hhZGVyVHlwCiAgICAgKTsKIH0KIAorUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNhbnZhczo6U2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6YnVpbGRPYmpl
Y3RGb3JTaGFkZXJQcm9ncmFtKCkKK3sKKyAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hh
ZGVyID0gZmFsc2U7CisKKyAgICB1c2luZyBQcm9ncmFtVHlwZVR5cGUgPSBPcHRpb25hbDxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlPjsKKyAgICBhdXRvIHByb2dyYW1U
eXBlID0gV1RGOjpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAg
ICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPikgLT4gUHJvZ3JhbVR5
cGVUeXBlIHsKKyAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6
OlByb2dyYW1UeXBlOjpSZW5kZXI7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VC
R1BVKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+
IHBpcGVsaW5lV3JhcHBlcikgLT4gUHJvZ3JhbVR5cGVUeXBlIHsKKyAgICAgICAgICAgIGF1dG8m
IHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYgKGlzPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICAgICAgICAgIHJldHVybiBJ
bnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpDb21wdXRlOworICAgICAg
ICAgICAgaWYgKGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpIHsKKyAgICAgICAg
ICAgICAgICBhdXRvJiByZW5kZXJQaXBlbGluZSA9IGRvd25jYXN0PFdlYkdQVVJlbmRlclBpcGVs
aW5lPihwaXBlbGluZSk7CisgICAgICAgICAgICAgICAgYXV0byB2ZXJ0ZXhTaGFkZXIgPSByZW5k
ZXJQaXBlbGluZS52ZXJ0ZXhTaGFkZXIoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGZyYWdtZW50
U2hhZGVyID0gcmVuZGVyUGlwZWxpbmUuZnJhZ21lbnRTaGFkZXIoKTsKKyAgICAgICAgICAgICAg
ICBpZiAodmVydGV4U2hhZGVyICYmIGZyYWdtZW50U2hhZGVyICYmIHZlcnRleFNoYWRlci52YWx1
ZSgpLm1vZHVsZSA9PSBmcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkKKyAgICAgICAgICAg
ICAgICAgICAgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIgPSB0cnVlOworICAgICAgICAgICAg
ICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5k
ZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
ICAgICB9LAorI2VuZGlmCisgICAgICAgIFsmXSAoTW9ub3N0YXRlKSAtPiBQcm9ncmFtVHlwZVR5
cGUgeworI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgICAgICB9CisgICAgKTsKKyAgICBpZiAoIXByb2dyYW1UeXBlKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcjsKKyAgICB9CisKKyAgICBhdXRv
IHBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclByb2dyYW06OmNy
ZWF0ZSgpCisgICAgICAgIC5zZXRQcm9ncmFtSWQobV9pZGVudGlmaWVyKQorICAgICAgICAuc2V0
UHJvZ3JhbVR5cGUocHJvZ3JhbVR5cGUudmFsdWUoKSkKKyAgICAgICAgLnNldENhbnZhc0lkKG1f
Y2FudmFzLmlkZW50aWZpZXIoKSkKKyAgICAgICAgLnJlbGVhc2UoKTsKKyAgICBpZiAoc2hhcmVz
VmVydGV4RnJhZ21lbnRTaGFkZXIpCisgICAgICAgIHBheWxvYWQtPnNldFNoYXJlc1ZlcnRleEZy
YWdtZW50U2hhZGVyKHRydWUpOworICAgIHJldHVybiBwYXlsb2FkOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uaAppbmRleCBkY2Q5ZWIxZmZmYTY5ODFhOGQyOTIyODVkYTE0YjU0ZDgyMDc1
N2FkLi42ZGYxM2RmZmRlYjQwMDQwZmQ4YWE4OWJiZjQwNjVhZTgwNGZiNjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKQEAgLTcx
LDYgKzcxLDggQEAgcHVibGljOgogICAgIGJvb2wgaGlnaGxpZ2h0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2hpZ2hsaWdodGVkOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRlZChib29sIHZhbHVlKSB7
IG1faGlnaGxpZ2h0ZWQgPSB2YWx1ZTsgfQogCisgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNhbnZhczo6U2hhZGVyUHJvZ3JhbT4gYnVpbGRPYmplY3RGb3JTaGFkZXJQcm9ncmFtKCk7CisK
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIEluc3BlY3RvclNoYWRlclByb2dyYW0o
V2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2FudmFzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDIx
YjNiNmNhNWMwNjgyZjZjNjJiNjEwY2E4YmU5ODUyNTYxZmI1YTQuLmY5MWEzNzM2OWI1Nzc2NjAx
MWE3ZjZjNjRiNThkNGMyOTBiN2M1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC01NjgsMTAgKzU2
OCwxMCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHTFByb2dyYW0o
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udAogICAgIGlmICghaW5zcGVjdG9yQ2FudmFz
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocHJvZ3JhbSwgKmluc3BlY3RvckNhbnZhcyk7Ci0gICAg
U3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigp
OwotICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZp
ZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlk
ZW50aWZpZXIsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRl
cik7CisgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtUmVmID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6Y3JlYXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMpOworICAgIGF1dG8mIGluc3BlY3Rv
clByb2dyYW0gPSBpbnNwZWN0b3JQcm9ncmFtUmVmLmdldCgpOworICAgIG1faWRlbnRpZmllclRv
SW5zcGVjdG9yUHJvZ3JhbS5zZXQoaW5zcGVjdG9yUHJvZ3JhbS5pZGVudGlmaWVyKCksIFdURk1v
dmUoaW5zcGVjdG9yUHJvZ3JhbVJlZikpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9n
cmFtQ3JlYXRlZChpbnNwZWN0b3JQcm9ncmFtLmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSgp
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHTFByb2dy
YW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQpAQCAtNjUxLDE4ICs2NTEsMTAgQEAgdm9pZCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBk
ZXZpY2UsIFdlYkdQVVAKIAogICAgIEFTU0VSVChwaXBlbGluZS5pc1ZhbGlkKCkpOwogCi0gICAg
YXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHBp
cGVsaW5lLCAqaW5zcGVjdG9yQ2FudmFzKTsKLSAgICBTdHJpbmcgcHJvZ3JhbUlkZW50aWZpZXIg
PSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlmaWVyKCk7Ci0gICAgbV9pZGVudGlmaWVyVG9JbnNw
ZWN0b3JQcm9ncmFtLnNldChwcm9ncmFtSWRlbnRpZmllciwgV1RGTW92ZShpbnNwZWN0b3JQcm9n
cmFtKSk7Ci0KLSAgICBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dy
YW1UeXBlPiBwcm9ncmFtVHlwZTsKLSAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihw
aXBlbGluZSkpCi0gICAgICAgIHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2Fu
dmFzOjpQcm9ncmFtVHlwZTo6Q29tcHV0ZTsKLSAgICBlbHNlIGlmIChpczxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4ocGlwZWxpbmUpKQotICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcjsKLSAgICBBU1NFUlQocHJvZ3JhbVR5
cGUpOwotCi0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3Rv
ckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUudmFs
dWUoKSk7CisgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtUmVmID0gSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbTo6Y3JlYXRlKHBpcGVsaW5lLCAqaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBhdXRvJiBpbnNw
ZWN0b3JQcm9ncmFtID0gaW5zcGVjdG9yUHJvZ3JhbVJlZi5nZXQoKTsKKyAgICBtX2lkZW50aWZp
ZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KGluc3BlY3RvclByb2dyYW0uaWRlbnRpZmllcigpLCBX
VEZNb3ZlKGluc3BlY3RvclByb2dyYW1SZWYpKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+
cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yUHJvZ3JhbS5idWlsZE9iamVjdEZvclNoYWRlclByb2dy
YW0oKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR1BV
UGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKaW5kZXggN2ExZjQxMTdmMTE0NGZkNGExMjc0MDA2NDUyOTU0MjI5NDIzYWU4NC4u
OWNiY2MyZjk5NTNmZTI3ZWQ4NWIwMGNhNjA0ZGMyMWRhYzQxMWJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMjMxLDYgKzEyMzEsNyBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJWZXJib3NlIl0gPSAiVmVyYm9zZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJzaW9uIl0gPSAi
VmVyc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXgiXSA9ICJWZXJ0ZXgiOwogbG9jYWxp
emVkU3RyaW5nc1siVmVydGV4IFNoYWRlciJdID0gIlZlcnRleCBTaGFkZXIiOworbG9jYWxpemVk
U3RyaW5nc1siVmVydGV4L0ZyYWdtZW50IFNoYWRlciJdID0gIlZlcnRleC9GcmFnbWVudCBTaGFk
ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siVmVyeSBIaWdoIl0gPSAiVmVyeSBIaWdoIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlZpZXcgSW1hZ2UiXSA9ICJWaWV3IEltYWdlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlZpZXcgUmVjb3JkaW5nIl0gPSAiVmlldyBSZWNvcmRpbmciOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanMKaW5kZXggMzhmMDFiYjY2NjdlYzAwODMwN2YwZTNmNTJmNDJkZmUyYmUx
ZjU4MC4uNzMzYzEwMDY2MzgyODZkNGQ5NDY2MTVlMDY0YTRmYzczYWQ0YTUwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFz
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0yMzQsMjAgKzIzNCwyOCBAQCBXSS5DYW52YXNN
YW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBj
YW52YXMuZW5hYmxlRXh0ZW5zaW9uKGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNy
ZWF0ZWQoY2FudmFzSWRlbnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlKQor
ICAgIHByb2dyYW1DcmVhdGVkKHNoYWRlclByb2dyYW1QYXlsb2FkKQogICAgIHsKLSAgICAgICAg
bGV0IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZp
ZXIpOworICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5nZXQo
c2hhZGVyUHJvZ3JhbVBheWxvYWQuY2FudmFzSWQpOwogICAgICAgICBjb25zb2xlLmFzc2VydChj
YW52YXMpOwogICAgICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuaGFz
KHByb2dyYW1JZGVudGlmaWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFkeSBleGlzdHMgd2l0aCBp
ZCAke3Byb2dyYW1JZGVudGlmaWVyfS5gKTsKKyAgICAgICAgbGV0IHByb2dyYW1JZCA9IHNoYWRl
clByb2dyYW1QYXlsb2FkLnByb2dyYW1JZDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMu
X3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmhhcyhwcm9ncmFtSWQpLCBgU2hhZGVyUHJvZ3Jh
bSBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7cHJvZ3JhbUlkfS5gKTsKIAotICAgICAgICAvLyBD
T01QQVRJQklMSVRZIChpT1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBub3QgZXhpc3QgeWV0Lgor
ICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IGBDYW52YXMuU2hhZGVyUHJvZ3Jh
bS5wcm9ncmFtVHlwZWAgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGxldCBwcm9ncmFtVHlw
ZSA9IHNoYWRlclByb2dyYW1QYXlsb2FkLnByb2dyYW1UeXBlOwogICAgICAgICBpZiAoIXByb2dy
YW1UeXBlKQogICAgICAgICAgICAgcHJvZ3JhbVR5cGUgPSBXSS5TaGFkZXJQcm9ncmFtLlByb2dy
YW1UeXBlLlJlbmRlcjsKIAotICAgICAgICBsZXQgcHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9n
cmFtKHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSwgY2FudmFzKTsKKyAgICAgICAgbGV0
IG9wdGlvbnMgPSB7fTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IGBD
YW52YXMuU2hhZGVyUHJvZ3JhbS5zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcmAgZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgIGlmIChzaGFkZXJQcm9ncmFtUGF5bG9hZC5zaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgIG9wdGlvbnMuc2hhcmVzVmVydGV4RnJhZ21lbnRT
aGFkZXIgPSB0cnVlOworCisgICAgICAgIGxldCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dy
YW0ocHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSwgY2FudmFzLCBvcHRpb25zKTsKICAgICAgICAgdGhp
cy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuc2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJv
Z3JhbSk7CiAKICAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9n
cmFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9TaGFkZXJQcm9ncmFtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanMKaW5kZXggYzliNmUwMzIxZjIyMGI3Y2EyYzA1MzQ5
ZmEwNjUxMzIyNTI4ZTliYi4uMDE2ZDhiMThmNDY4Y2MyNDhiYjMzMTkzMTZiYTI4YzA0ZmJiNzI3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1NoYWRlclByb2dyYW0uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanMKQEAgLTI1LDcgKzI1LDcgQEAKIAogV0kuU2hhZGVy
UHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKIHsKLSAgICBj
b25zdHJ1Y3RvcihpZGVudGlmaWVyLCBwcm9ncmFtVHlwZSwgY2FudmFzKQorICAgIGNvbnN0cnVj
dG9yKGlkZW50aWZpZXIsIHByb2dyYW1UeXBlLCBjYW52YXMsIHtzaGFyZXNWZXJ0ZXhGcmFnbWVu
dFNoYWRlcn0gPSB7fSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkZW50aWZpZXIp
OwogICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFNoYWRlclByb2dyYW0uUHJv
Z3JhbVR5cGUpLmluY2x1ZGVzKHByb2dyYW1UeXBlKSk7CkBAIC0zNyw2ICszNywxMCBAQCBXSS5T
aGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICAgICAgdGhpcy5fcHJvZ3Jh
bVR5cGUgPSBwcm9ncmFtVHlwZTsKICAgICAgICAgdGhpcy5fY2FudmFzID0gY2FudmFzOworCisg
ICAgICAgIHRoaXMuX3NoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gISFzaGFyZXNWZXJ0ZXhG
cmFnbWVudFNoYWRlcjsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3NoYXJlc1ZlcnRl
eEZyYWdtZW50U2hhZGVyIHx8ICh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHUFUgJiYgdGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyKSk7CisKICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxz
ZTsKICAgICB9CiAKQEAgLTc4LDYgKzgyLDcgQEAgV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNo
YWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0
dXJuIHRoaXMuX2lkZW50aWZpZXI7IH0KICAgICBnZXQgcHJvZ3JhbVR5cGUoKSB7IHJldHVybiB0
aGlzLl9wcm9ncmFtVHlwZTsgfQogICAgIGdldCBjYW52YXMoKSB7IHJldHVybiB0aGlzLl9jYW52
YXM7IH0KKyAgICBnZXQgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIoKSB7IHJldHVybiB0aGlz
Ll9zaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcjsgfQogCiAgICAgZ2V0IGRpc3BsYXlOYW1lKCkK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Q
cm90b2NvbC9DYW52YXNPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCmluZGV4IDZmNTM1NzQ0MzQ2ZjIwNzEy
MGNiZTllOWQzY2EyN2Y0Y2JlZWEwODcuLjhmZjNmZTcyMGI3M2YyMzBjNmVkNWU3MTA0MDFjM2Fj
N2NmYzQ1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCkBAIC02Nyw5ICs2NywxNiBA
QCBXSS5DYW52YXNPYnNlcnZlciA9IGNsYXNzIENhbnZhc09ic2VydmVyCiAgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIuZXh0ZW5zaW9uRW5hYmxlZChjYW52YXNJZCwgZXh0ZW5zaW9uKTsKICAgICB9
CiAKLSAgICBwcm9ncmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSkK
KyAgICBwcm9ncmFtQ3JlYXRlZChzaGFkZXJQcm9ncmFtKQogICAgIHsKLSAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5wcm9ncmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlw
ZSk7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogYHNoYWRlclByb2dyYW1g
IHJlcGxhY2VkIGBjYW52YXNJZGAgYW5kIGBwcm9ncmFtSWRgLgorICAgICAgICBpZiAoYXJndW1l
bnRzLmxlbmd0aCA9PT0gMikgeworICAgICAgICAgICAgc2hhZGVyUHJvZ3JhbSA9IHsKKyAgICAg
ICAgICAgICAgICBjYW52YXNJZDogYXJndW1lbnRzWzBdLAorICAgICAgICAgICAgICAgIHByb2dy
YW1JZDogYXJndW1lbnRzWzFdLAorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKHNoYWRlclByb2dyYW0pOwogICAgIH0KIAog
ICAgIHByb2dyYW1EZWxldGVkKHByb2dyYW1JZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25z
LmpzCmluZGV4IDhjZTI4MTUzMmVlOWE1NTY3MzlkZmZkZjAxMmMxN2ZjMTFlOGIyNDkuLmUxMzkw
Y2Q3MTlmNDMzODY4NmE3ZTNkNzM1YWY0NDlkOWVlZGMxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJv
ckFkZGl0aW9ucy5qcwpAQCAtNjg1LDggKzY4NSw3IEBACiAKICAgICAvLyBGSVhNRTogQWRkIFdI
TFNMIHNwZWNpZmljIG1vZGVzLgogICAgIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgieC1waXBlbGlu
ZS94LWNvbXB1dGUiLCBDb2RlTWlycm9yLnJlc29sdmVNb2RlKCJ4LXNoYWRlci94LXZlcnRleCIp
KTsKLSAgICBDb2RlTWlycm9yLmRlZmluZU1JTUUoIngtcGlwZWxpbmUveC1mcmFnbWVudCIsIENv
ZGVNaXJyb3IucmVzb2x2ZU1vZGUoIngtc2hhZGVyL3gtZnJhZ21lbnQiKSk7Ci0gICAgQ29kZU1p
cnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtdmVydGV4IiwgQ29kZU1pcnJvci5yZXNvbHZl
TW9kZSgieC1zaGFkZXIveC12ZXJ0ZXgiKSk7CisgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4
LXBpcGVsaW5lL3gtcmVuZGVyIiwgQ29kZU1pcnJvci5yZXNvbHZlTW9kZSgieC1zaGFkZXIveC12
ZXJ0ZXgiKSk7CiB9KSgpOwogCiBXSS5jb21wYXJlQ29kZU1pcnJvclBvc2l0aW9ucyA9IGZ1bmN0
aW9uKGEsIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcwppbmRl
eCA0OTZhNWU1MzlmOTc0MjAyNDg3Yzg1YzgxYmJiZGVjNTk4OTE1YmU2Li4yZjZjMDY2NDMxMTkx
OWNjMWRjYThlZGQwNGMzMGY0NjkwMTcwZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5jc3MKQEAgLTMxLDE5ICszMSwyMCBAQAogICAgIGJvdHRvbTogMDsKIH0K
IAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuY29tcHV0ZSB7CisuY29u
dGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlLAorLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LnNoYXJlcy12ZXJ0ZXgtZnJhZ21lbnQt
c2hhZGVyIHsKICAgICByaWdodDogMDsKICAgICBsZWZ0OiAwOwogfQogCi1ib2R5W2Rpcj1sdHJd
IC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleCwKK2JvZHlbZGly
PWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4Om5vdCgu
c2hhcmVzLXZlcnRleC1mcmFnbWVudC1zaGFkZXIpLAogYm9keVtkaXI9cnRsXSAuY29udGVudC12
aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCB7CiAgICAgd2lkdGg6IGNhbGMo
NTAlIC0gMXB4KTsKICAgICBsZWZ0OiAwOwogfQogCiBib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50LAotYm9keVtkaXI9cnRsXSAuY29u
dGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggeworYm9keVtkaXI9cnRs
XSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXg6bm90KC5zaGFy
ZXMtdmVydGV4LWZyYWdtZW50LXNoYWRlcikgewogICAgIHdpZHRoOiBjYWxjKDUwJSArIDFweCk7
CiAgICAgcmlnaHQ6IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcu
anMKaW5kZXggZTk4N2ZlNTZjODZkYmFlNzdiYWViMDIxNmUxNzAyMWI0MTZkNmY3My4uMTc3NTFm
YTUwZWE5ZDU2ZjBkYWNjNmM4ZWZjZjEyYTEyZmU2M2M4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRl
clByb2dyYW1Db250ZW50Vmlldy5qcwpAQCAtMzIsNiArMzIsNyBAQCBXSS5TaGFkZXJQcm9ncmFt
Q29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50VgogICAgICAgICBzdXBlcihzaGFkZXJQcm9ncmFtKTsKIAogICAgICAgICBsZXQgaXNX
ZWJHUFUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdQVTsKKyAgICAgICAgbGV0IHNoYXJlc1ZlcnRleEZyYWdt
ZW50U2hhZGVyID0gaXNXZWJHUFUgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNWZXJ0
ZXhGcmFnbWVudFNoYWRlcjsKIAogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlv
bkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmlu
ZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAg
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJ
Lk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CkBAIC02NywxOCArNjgsMjIg
QEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CiAgICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNv
bnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJGcmFnbWVudCBTaGFkZXIiKTsKLSAg
ICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGlu
ZS94LWZyYWdtZW50IiA6ICJ4LXNoYWRlci94LWZyYWdtZW50IjsKKyAgICAgICAgICAgICAgICB0
ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LXJlbmRlciIgOiAi
eC1zaGFkZXIveC1mcmFnbWVudCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
ICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAg
ICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRl
eCBTaGFkZXIiKTsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJH
UFUgPyAieC1waXBlbGluZS94LXZlcnRleCIgOiAieC1zaGFkZXIveC12ZXJ0ZXgiOworICAgICAg
ICAgICAgICAgIGlmIChzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgICAg
ICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJWZXJ0
ZXgvRnJhZ21lbnQgU2hhZGVyIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZl
cnRleCBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNX
ZWJHUFUgPyAieC1waXBlbGluZS94LXJlbmRlciIgOiAieC1zaGFkZXIveC12ZXJ0ZXgiOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLmFk
ZFN1YnZpZXcodGV4dEVkaXRvcik7CiAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
dGV4dEVkaXRvci5lbGVtZW50KTsKICAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRk
KCJzaGFkZXIiLCBzaGFkZXJUeXBlKTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3Qu
dG9nZ2xlKCJzaGFyZXMtdmVydGV4LWZyYWdtZW50LXNoYWRlciIsIHNoYXJlc1ZlcnRleEZyYWdt
ZW50U2hhZGVyKTsKIAogICAgICAgICAgICAgcmV0dXJuIHtjb250YWluZXIsIHRleHRFZGl0b3J9
OwogICAgICAgICB9OwpAQCAtOTgsOSArMTAzLDExIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50
VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRW
CiAgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29udGFp
bmVyOwogICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRF
ZGl0b3I7CiAKLSAgICAgICAgICAgIGxldCBmcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVkaXRvcihX
SS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOwotICAgICAgICAgICAgdGhpcy5f
ZnJhZ21lbnRDb250YWluZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7Ci0gICAgICAgICAg
ICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdtZW50RWRpdG9yLnRleHRFZGl0b3I7CisgICAg
ICAgICAgICBpZiAoIXNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKSB7CisgICAgICAgICAgICAg
ICAgbGV0IGZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5GcmFnbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRDb250YWlu
ZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7CisgICAgICAgICAgICAgICAgdGhpcy5fZnJh
Z21lbnRFZGl0b3IgPSBmcmFnbWVudEVkaXRvci50ZXh0RWRpdG9yOworICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID0gdGhpcy5fdmVydGV4RWRpdG9y
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjgsNyArMTM1LDggQEAgV0kuU2hhZGVyUHJvZ3Jh
bUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFYKIAogICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVu
ZGVyOgogICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNob3duKCk7Ci0gICAgICAgICAg
ICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICAgICAgaWYgKCF0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3duKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCkBAIC0xNDQsNyArMTUyLDggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3
ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAog
ICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgogICAgICAg
ICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhpZGRlbigpOwotICAgICAgICAgICAgdGhpcy5fZnJh
Z21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRP
YmplY3Quc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXIpCisgICAgICAgICAgICAgICAgdGhpcy5f
ZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
CkBAIC0yNzYsNyArMjg1LDggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3Mg
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgICAgICBj
YXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgogICAgICAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclByb2dyYW0u
U2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleENvbnRhaW5lciwg
dGhpcy5fdmVydGV4RWRpdG9yKSk7Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50
LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwgdGhpcy5fZnJhZ21lbnRF
ZGl0b3IpKTsKKyAgICAgICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFyZXNW
ZXJ0ZXhGcmFnbWVudFNoYWRlcikKKyAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdt
ZW50LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwgdGhpcy5fZnJhZ21l
bnRFZGl0b3IpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRh
Mjk1NTBkYjkyOWQ2ZmNmYzFlOGE3NzE5ZmEyNGU2NDI0MTYwMy4uNDM1N2UzMGE2NjVkMWE0OWVl
YWExNzFiM2UyYTJjMDI5OGFkNzVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTA4
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDYW52YXM6IG1vZGlmaWNhdGlvbnMgdG8gc2hhZGVyIG1vZHVsZXMgY2FuIGJlIHNoYXJl
ZCBiZXR3ZWVuIHZlcnRleC9mcmFnbWVudCBzaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBE
ZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0xMC0wOCAgeW91ZW5u
IGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW1UcmFjayBz
aG91bGQgYmUgYSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCBpbnN0ZWFkIG9mIE1lZGlhU3Ry
ZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmFiY2QwMDY2ZTc0YzJkZDRjNTE0NzZjNGY3MGM4
MGE0ODdlZDkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIyIEBACitXZWJHUFUgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29t
bWFuZCB3aGVuIHRoZSB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMgb2YgYSByZW5kZXIgcGlw
ZWxpbmUgc2hhcmUgdGhlIHNhbWUgbW9kdWxlLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
Q2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuU2hhcmVkVmVydGV4RnJhZ21lbnQKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5TaGFyZWRWZXJ0ZXhGcmFn
bWVudC5TaW5nbGVQaXBlbGluZQorQ3JlYXRpbmcgcmVuZGVyIHBpcGVsaW5lLi4uCitQQVNTOiBW
ZXJ0ZXggYW5kIEZyYWdtZW50IHNoYWRlciBzb3VyY2VzIHNob3VsZCBiZSB0aGUgc2FtZS4KK1Vw
ZGF0aW5nIHZlcnRleCBzaGFkZXIgc291cmNlLi4uCitQQVNTOiBWZXJ0ZXggYW5kIEZyYWdtZW50
IHNoYWRlciBzb3VyY2VzIHNob3VsZCBiZSB0aGUgc2FtZS4KK1BBU1M6IFZlcnRleCBzb3VyY2Ug
c2hvdWxkIGhhdmUgY2hhbmdlZC4KK1VwZGF0aW5nIGZyYWdtZW50IHNoYWRlciBzb3VyY2UuLi4K
K1BBU1M6IFZlcnRleCBhbmQgRnJhZ21lbnQgc2hhZGVyIHNvdXJjZXMgc2hvdWxkIGJlIHRoZSBz
YW1lLgorUEFTUzogRnJhZ21lbnQgc291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5TaGFyZWRWZXJ0ZXhG
cmFnbWVudC5NdWx0aXBsZVBpcGVsaW5lcworQ3JlYXRpbmcgcmVuZGVyIHBpcGVsaW5lLi4uCitD
cmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4KK1BBU1M6IEJvdGggcGlwZWxpbmVzIHNob3VsZCBo
YXZlIHRoZSBzYW1lIHNvdXJjZS4KK1VwZGF0aW5nIHBpcGVsaW5lIDEgdmVydGV4IHNvdXJjZS4u
LgorUEFTUzogU291cmNlIG9mIHBpcGVsaW5lIDEgc2hvdWxkIGhhdmUgY2hhbmdlZC4KK1BBU1M6
IEJvdGggcGlwZWxpbmVzIHNob3VsZCBoYXZlIGRpZmZlcmVudCBzb3VyY2VzLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hh
cmVkVmVydGV4RnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0
ZDAyYWIxN2U5MDVhNGI3OGEwMjY1NTA0OWFlMjhkYjMzMTA4NzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVk
VmVydGV4RnJhZ21lbnQuaHRtbApAQCAtMCwwICsxLDE0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHUFVFbmFi
bGVkKHRydWUpOworCitjb25zdCByZW5kZXJQaXBlbGluZVNvdXJjZSA9IGAKK3ZlcnRleCBmbG9h
dDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6
IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQor
CitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9z
aXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAgIHJldHVybiBwb3NpdGlvbjsKK30KK2A7CisKK2xl
dCBkZXZpY2UgPSBudWxsOworbGV0IHNoYWRlck1vZHVsZSA9IG51bGw7CisKK2FzeW5jIGZ1bmN0
aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5lKCkgeworICAgIGlmICghZGV2aWNlKSB7CisgICAgICAg
IGxldCBhZGFwdGVyID0gYXdhaXQgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRlcigpOworICAg
ICAgICBkZXZpY2UgPSBhd2FpdCBhZGFwdGVyLnJlcXVlc3REZXZpY2UoKTsKKyAgICB9CisKKyAg
ICBpZiAoIXNoYWRlck1vZHVsZSkKKyAgICAgICAgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0
ZVNoYWRlck1vZHVsZSh7Y29kZTogcmVuZGVyUGlwZWxpbmVTb3VyY2V9KTsKKworICAgIC8vIENv
cGllZCBmcm9tIHdlYmdwdS93aGxzbC93aGxzbC5odG1sLgorICAgIGNvbnN0IHZlcnRleFN0YWdl
ID0ge21vZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiAidmVydGV4U2hhZGVyIn07Cisg
ICAgY29uc3QgZnJhZ21lbnRTdGFnZSA9IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2lu
dDogImZyYWdtZW50U2hhZGVyIn07CisgICAgY29uc3QgcHJpbWl0aXZlVG9wb2xvZ3kgPSAidHJp
YW5nbGUtc3RyaXAiOworICAgIGNvbnN0IHJhc3Rlcml6YXRpb25TdGF0ZSA9IHtmcm9udEZhY2U6
ICJjdyIsIGN1bGxNb2RlOiAibm9uZSJ9OworICAgIGNvbnN0IGFscGhhQmxlbmQgPSB7fTsKKyAg
ICBjb25zdCBjb2xvckJsZW5kID0ge307CisgICAgY29uc3QgY29sb3JTdGF0ZXMgPSBbe2Zvcm1h
dDogInJnYmE4dW5vcm0iLCBhbHBoYUJsZW5kLCBjb2xvckJsZW5kLCB3cml0ZU1hc2s6IDE1fV07
IC8vIEdQVUNvbG9yV3JpdGUuQUxMCisgICAgY29uc3QgZGVwdGhTdGVuY2lsU3RhdGUgPSBudWxs
OworICAgIGNvbnN0IGF0dHJpYnV0ZTAgPSB7c2hhZGVyTG9jYXRpb246IDAsIGZvcm1hdDogImZs
b2F0NCJ9OworICAgIGNvbnN0IGF0dHJpYnV0ZTEgPSB7c2hhZGVyTG9jYXRpb246IDEsIGZvcm1h
dDogImZsb2F0In07CisgICAgY29uc3QgaW5wdXQwID0ge3N0cmlkZTogMTYsIGF0dHJpYnV0ZVNl
dDogW2F0dHJpYnV0ZTBdfTsKKyAgICBjb25zdCBpbnB1dDEgPSB7c3RyaWRlOiA0LCBhdHRyaWJ1
dGVTZXQ6IFthdHRyaWJ1dGUxXX07CisgICAgY29uc3QgaW5wdXRzID0gW2lucHV0MCwgaW5wdXQx
XTsKKyAgICBjb25zdCB2ZXJ0ZXhJbnB1dCA9IHt2ZXJ0ZXhCdWZmZXJzOiBpbnB1dHN9OworICAg
IGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzog
MCwgdmlzaWJpbGl0eTogNywgdHlwZTogInVuaWZvcm0tYnVmZmVyIn1dfTsKKyAgICBjb25zdCBi
aW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IpOworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHti
aW5kR3JvdXBMYXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XX07CisgICAgY29uc3QgcGlwZWxpbmVM
YXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yKTsKKyAgICBkZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoe3ZlcnRleFN0YWdlLCBmcmFn
bWVudFN0YWdlLCBwcmltaXRpdmVUb3BvbG9neSwgcmFzdGVyaXphdGlvblN0YXRlLCBjb2xvclN0
YXRlcywgZGVwdGhTdGVuY2lsU3RhdGUsIHZlcnRleElucHV0LCBzYW1wbGVDb3VudDogMSwgbGF5
b3V0OiBwaXBlbGluZUxheW91dH0pOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLnVwZGF0ZVNoYWRl
ci5XZWJHUFUuU2hhcmVkVmVydGV4RnJhZ21lbnQiKTsKKworICAgIGFzeW5jIGZ1bmN0aW9uIGF3
YWl0UHJvZ3JhbUNyZWF0ZWQoKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGlu
ZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsKKyAgICAgICAgbGV0IGV2YWx1dGVQcm9taXNlID0gSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUoKWApOworCisg
ICAgICAgIGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGgpCisgICAgICAgICAg
ICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5DYW52YXNBZGRlZCk7CisKKyAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXNbMF07CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUg
V2ViR1BVLiIpOworCisgICAgICAgIGxldCBpdGVtQWRkZWRFdmVudCA9IGF3YWl0IGNhbnZhcy5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRl
bUFkZGVkKTsKKyAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBpdGVtQWRkZWRFdmVudC5kYXRh
Lml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHNoYWRlclByb2dyYW0ucHJvZ3Jh
bVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLCAiU2hhZGVyIHBy
b2dyYW0gc2hvdWxkIGJlIGEgcmVuZGVyIHBpcGVsaW5lLiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChzaGFkZXJQcm9ncmFtLnNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyLCAiU2hh
ZGVyIHByb2dyYW0gc2hvdWxkIGhhdmUgYSBzaGFyZWQgdmVydGV4IGFuZCBmcmFnbWVudCBtb2R1
bGUuIik7CisKKyAgICAgICAgYXdhaXQgZXZhbHV0ZVByb21pc2U7CisgICAgICAgIHJldHVybiBz
aGFkZXJQcm9ncmFtOworICAgIH0KKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLlNoYXJlZFZlcnRleEZyYWdtZW50LlNp
bmdsZVBpcGVsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHVwZGF0aW5n
IHRoZSB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVyIHdpbGwgYWxzbyBhZmZlY3QgdGhlIGZyYWdtZW50
L3ZlcnRleCBzaGFkZXIgaWYgdGhleSBib3RoIHVzZSB0aGUgc2FtZSBtb2R1bGUuIiwKKyAgICAg
ICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gYXdhaXQg
YXdhaXRQcm9ncmFtQ3JlYXRlZCgpOworCisgICAgICAgICAgICBsZXQgW29yaWdpbmFsVmVydGV4
U291cmNlLCBvcmlnaW5hbEZyYWdtZW50U291cmNlXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAg
ICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dy
YW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCksCisgICAg
ICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFt
LmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCksCisgICAg
ICAgICAgICBdKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFs
KG9yaWdpbmFsVmVydGV4U291cmNlLCBvcmlnaW5hbEZyYWdtZW50U291cmNlLCAiVmVydGV4IGFu
ZCBGcmFnbWVudCBzaGFkZXIgc291cmNlcyBzaG91bGQgYmUgdGhlIHNhbWUuIik7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJVcGRhdGluZyB2ZXJ0ZXggc2hhZGVyIHNvdXJjZS4u
LiIpOworICAgICAgICAgICAgYXdhaXQgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHNoYWRlclBy
b2dyYW0uaWRlbnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwgIi8v
IE1PRElGSUVEIFZFUlRFWFxuXG4iICsgb3JpZ2luYWxWZXJ0ZXhTb3VyY2Uuc291cmNlKTsKKwor
ICAgICAgICAgICAgbGV0IFt2ZXJ0ZXhTb3VyY2VBZnRlclVwZGF0aW5nVmVydGV4LCBmcmFnbWVu
dFNvdXJjZUFmdGVyVXBkYXRpbmdWZXJ0ZXhdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAg
ICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5p
ZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAg
ICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRl
bnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KSwKKyAgICAgICAg
ICAgIF0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwodmVy
dGV4U291cmNlQWZ0ZXJVcGRhdGluZ1ZlcnRleCwgZnJhZ21lbnRTb3VyY2VBZnRlclVwZGF0aW5n
VmVydGV4LCAiVmVydGV4IGFuZCBGcmFnbWVudCBzaGFkZXIgc291cmNlcyBzaG91bGQgYmUgdGhl
IHNhbWUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVh
bCh2ZXJ0ZXhTb3VyY2VBZnRlclVwZGF0aW5nVmVydGV4LCBvcmlnaW5hbFZlcnRleFNvdXJjZSwg
IlZlcnRleCBzb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlVwZGF0aW5nIGZyYWdtZW50IHNoYWRlciBzb3VyY2UuLi4iKTsKKyAg
ICAgICAgICAgIGF3YWl0IENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlk
ZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCwgIi8vIE1PRElG
SUVEIEZSQUdNRU5UXG5cbiIgKyBvcmlnaW5hbEZyYWdtZW50U291cmNlLnNvdXJjZSk7CisKKyAg
ICAgICAgICAgIGxldCBbdmVydGV4U291cmNlQWZ0ZXJVcGRhdGluZ0ZyYWdtZW50LCBmcmFnbWVu
dFNvdXJjZUFmdGVyVXBkYXRpbmdGcmFnbWVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFt
LmlkZW50aWZpZXIsIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpLAorICAgICAg
ICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5p
ZGVudGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpLAorICAgICAg
ICAgICAgXSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbCh2
ZXJ0ZXhTb3VyY2VBZnRlclVwZGF0aW5nRnJhZ21lbnQsIGZyYWdtZW50U291cmNlQWZ0ZXJVcGRh
dGluZ0ZyYWdtZW50LCAiVmVydGV4IGFuZCBGcmFnbWVudCBzaGFkZXIgc291cmNlcyBzaG91bGQg
YmUgdGhlIHNhbWUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxs
b3dFcXVhbChmcmFnbWVudFNvdXJjZUFmdGVyVXBkYXRpbmdGcmFnbWVudCwgb3JpZ2luYWxGcmFn
bWVudFNvdXJjZSwgIkZyYWdtZW50IHNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5TaGFyZWRWZXJ0ZXhGcmFnbWVudC5NdWx0aXBs
ZVBpcGVsaW5lcyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCB1cGRhdGluZyBv
bmUgcGlwZWxpbmUgd29uJ3QgYWZmZWN0IGFueSBvdGhlciBwaXBlbGluZXMgaWYgdGhleSBzaGFy
ZSB0aGUgc2FtZSBtb2R1bGUuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IGxldCBzaGFkZXJQcm9ncmFtMSA9IGF3YWl0IGF3YWl0UHJvZ3JhbUNyZWF0ZWQoKTsKKyAgICAg
ICAgICAgIGxldCBzaGFkZXJQcm9ncmFtMiA9IGF3YWl0IGF3YWl0UHJvZ3JhbUNyZWF0ZWQoKTsK
KworICAgICAgICAgICAgbGV0IFtvcmlnaW5hbFZlcnRleFNvdXJjZTEsIG9yaWdpbmFsVmVydGV4
U291cmNlMl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgQ2FudmFzQWdl
bnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtMS5pZGVudGlmaWVyLCBXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2Vu
dC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0yLmlkZW50aWZpZXIsIFdJLlNoYWRl
clByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChvcmlnaW5hbFZlcnRleFNvdXJjZTEs
IG9yaWdpbmFsVmVydGV4U291cmNlMiwgIkJvdGggcGlwZWxpbmVzIHNob3VsZCBoYXZlIHRoZSBz
YW1lIHNvdXJjZS4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlVwZGF0aW5n
IHBpcGVsaW5lIDEgdmVydGV4IHNvdXJjZS4uLiIpOworICAgICAgICAgICAgYXdhaXQgQ2FudmFz
QWdlbnQudXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0xLmlkZW50aWZpZXIsIFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsICIvLyBNT0RJRklFRCBWRVJURVhcblxuIiArIG9yaWdp
bmFsVmVydGV4U291cmNlMS5zb3VyY2UpOworCisgICAgICAgICAgICBsZXQgW25ld1ZlcnRleFNv
dXJjZTEsIG5ld1ZlcnRleFNvdXJjZTJdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbTEuaWRl
bnRpZmllciwgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCksCisgICAgICAgICAg
ICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtMi5pZGVu
dGlmaWVyLCBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4KSwKKyAgICAgICAgICAg
IF0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwob3Jp
Z2luYWxWZXJ0ZXhTb3VyY2UxLCBuZXdWZXJ0ZXhTb3VyY2UxLCAiU291cmNlIG9mIHBpcGVsaW5l
IDEgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0Tm90U2hhbGxvd0VxdWFsKG5ld1ZlcnRleFNvdXJjZTEsIG5ld1ZlcnRleFNvdXJjZTIsICJC
b3RoIHBpcGVsaW5lcyBzaG91bGQgaGF2ZSBkaWZmZXJlbnQgc291cmNlcy4iKTsKKyAgICAgICAg
fQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPldlYkdQVSB0ZXN0
cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kIHdoZW4gdGhlIHZlcnRleCBhbmQgZnJh
Z21lbnQgc2hhZGVycyBvZiBhIHJlbmRlciBwaXBlbGluZSBzaGFyZSB0aGUgc2FtZSBtb2R1bGUu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjN2VkOGIzMTdiOGQ4OWNmZGQ3ZDdhMmZjMGVhY2JiOTY0YzUwNjcwLi4y
OTgyMDk5ZDY3YjhiMDIxYzhmZGM3MDhhMWMwMGM0NzliMmIzY2E2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE1Myw2ICsxMTUzLDcgQEAgd2Via2l0
Lm9yZy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE5MTAwNSBpbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJn
cHUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbCBbIFNraXAgXQogCiAj
IE5vIHN1cHBvcnQgZm9yIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyB5ZXQKIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2FmMzFjODUxYTM4NGY3Yjc0MTE0OWY5ZTNiMzc5YWJi
Y2Q2ODU0OC4uNjQwMzFkMjU3MTJhMGE1YTViNTA0ZDRlODA1OWVjZmNmZmU2ZDM1MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5LDYgKzQ5LDcgQEAg
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBd
CiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBp
bnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNr
aXAgXQogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0K
K2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVu
dC5odG1sIFsgU2tpcCBdCiAKICMgRW5jcnlwdGVkIE1lZGlhIEV4dGVuc2lvbnMgYXJlIG5vdCBl
bmFibGVkCiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmQ3OWIxZDAzMjk4ZDJkZGViYTJmMDczYjYz
NTliMzYwYTRjYjI3MS4uYzdiMTMxOGM5MmU2MTliOTYwMmJjN2JkYjM4YzFhNWE1NjY3ZWY2MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NTQsNiArNTQsNyBAQCBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1
Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0
bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdl
YmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUu
aHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJl
ZFZlcnRleEZyYWdtZW50Lmh0bWwgWyBTa2lwIF0KIAogIyBNZWRpYSBTdHJlYW0gQVBJIHRlc3Rp
bmcgaXMgbm90IHN1cHBvcnRlZCBmb3IgV0sxIHlldC4KIGZhc3QvbWVkaWFzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmQ0OTAwNjMxYzE5Y2Ri
Yjc4NzllYzc1MjQ2ZjM5ZTI2ZjRkZjk5Ny4uMzNhOTkzNmYyOTA5NjU3NzU5MmI4YjcwMGMxZjky
MzRlY2Y2NWI2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE3ODMsNiArMTc4Myw3IEBAIHdlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJhIF0g
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5oCiB3ZWJraXQub3Jn
L2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQt
d2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJhIF0g
aW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJhIF0gaW5zcGVjdG9yL2NhbnZh
cy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTkyNzUg
WyBIaWdoU2llcnJhIF0gaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJl
ZFZlcnRleEZyYWdtZW50Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzE4OTY4MCBwbGF0
Zm9ybS9tYWMvbWVkaWEvYXVkaW8tc2Vzc2lvbi1jYXRlZ29yeS12aWRlby1wYXVzZWQuaHRtbCBb
IFBhc3MgVGltZW91dCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggM2Q1MWYzZmY1ZDI0NmVmM2U2MmNmMTllZmI2ZGIyMTllMTM1NDMyNy4uMmU4MTY0
MWE2ZWFkZWNiMjc0OGIyZjViMTMxZmNkMGYwOWY2NDQzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQyNjgsNiArNDI2OCw3IEBAIGluc3BlY3Rvci9j
YW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9y
L2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2Nh
bnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3Bl
Y3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3Iv
Y2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbCBbIFNr
aXAgXQogCiB3ZWJraXQub3JnL2IvMTkxMTk0IGZhc3QvYmxvY2svYmFzaWMvaW5saW5lLWNvbnRl
bnQtd2l0aC1mbG9hdGluZy1pbWFnZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTkx
MTk0IGZhc3QvYmxvY2svYmFzaWMvaW5saW5lLWNvbnRlbnQtd2l0aC1mbG9hdGluZy1pbWFnZXMy
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGE3ZTVjNzJiNzg3YTUzNjE1MTIxZjc5MDE4OTQyNGNhYWJhMmVi
MmYuLjMyMDE0NDgxYmQ3NDlmODA3MWEzMmYzNmNhYzg1NzM2YmVkZmE0NGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzAwLDYgKzMw
MCw3IEBAIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBb
IFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNr
aXAgXQogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0
bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIFsg
U2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4
RnJhZ21lbnQuaHRtbCBbIFNraXAgXQogCiAjIFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCBpcyBk
aXNhYmxlZAogbWVkaWEvYWlycGxheS10YXJnZXQtYXZhaWxhYmlsaXR5Lmh0bWwgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzM5ZDExMzkw
Yjc1MTFiYjk1NzQzYmU2ZmViNzI3NTE1YzY4ZjAwMS4uNWM5OTg1YmM2NDIzYWQyYjYxNzZmZTI1
ZWQ1YjQ3ZmQxZjdlMTc4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTMwNiw2ICszMDYsNyBAQCBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJT
b3VyY2Utd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1h
ZGQtcmVtb3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIt
d2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWwgWyBTa2lwIF0KIAogIyBTa2lwcGVkIGR1
ZSB0byB1bnRlc3RhYmxlIERSTSBrZXkgc3lzdGVtLiBDbGVhcktleSBjb3VudGVycGFydHMgYXJl
IHRlc3RlZCBpbnN0ZWFkLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLWNoZWNrLWluaXRkYXRhLXR5cGUuaHR0cHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>