<?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>196474</bug_id>
          
          <creation_ts>2019-04-01 17:19:54 -0700</creation_ts>
          <short_desc>[Web GPU] Implement blend states and color write mask for  GPUColorStateDescriptor</short_desc>
          <delta_ts>2019-04-02 13:48:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1523152</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-01 17:19:54 -0700</bug_when>
    <thetext>[Web GPU] Implement blend states and color write mask for  GPUColorStateDescriptor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523156</commentid>
    <comment_count>1</comment_count>
      <attachid>366450</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-01 17:34:14 -0700</bug_when>
    <thetext>Created attachment 366450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523194</commentid>
    <comment_count>2</comment_count>
      <attachid>366462</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-01 20:07:56 -0700</bug_when>
    <thetext>Created attachment 366462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523407</commentid>
    <comment_count>3</comment_count>
      <attachid>366462</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-04-02 12:40:18 -0700</bug_when>
    <thetext>Comment on attachment 366462
Patch

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

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:450
&gt; +        [descriptor setBlendingEnabled:YES];

Can we get some extra perf here by turning this off in some circumstances?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523410</commentid>
    <comment_count>4</comment_count>
      <attachid>366462</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-04-02 12:41:11 -0700</bug_when>
    <thetext>Comment on attachment 366462
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:450
&gt;&gt; +        [descriptor setBlendingEnabled:YES];
&gt; 
&gt; Can we get some extra perf here by turning this off in some circumstances?

There might be some side-effects by turning this off (maybe no depth testing?) so perhaps we should just file a follow-up bug to do an investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523421</commentid>
    <comment_count>5</comment_count>
      <attachid>366462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-02 13:00:01 -0700</bug_when>
    <thetext>Comment on attachment 366462
Patch

Clearing flags on attachment: 366462

Committed r243755: &lt;https://trac.webkit.org/changeset/243755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523422</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-02 13:00:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523442</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-02 13:48:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/49532669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366450</attachid>
            <date>2019-04-01 17:34:14 -0700</date>
            <delta_ts>2019-04-01 20:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196474-20190401173413.patch</filename>
            <type>text/plain</type>
            <size>43900</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ0ZDg4ZmQ1MGJkN2Jk
ZjIxMDRjYzkyZjA1OWUwYTY2OWZjYmE2ZS4uZWYzZmRiZTAyZWE5NGFjZGQ1NjE1NDkyM2Y1YmE5
M2IyNDZjNGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA0LTAxICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEltcGxl
bWVudCBibGVuZCBzdGF0ZXMgYW5kIGNvbG9yIHdyaXRlIG1hc2sgZm9yIEdQVUNvbG9yU3RhdGVE
ZXNjcmlwdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTY0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCbGVuZCBzdGF0ZXMgYW5kIGNvbG9yIHdyaXRlIG1hc2tzIG11c3Qgbm93IGJlIHNwZWNpZmll
ZCBvbiBHUFVDb2xvclN0YXRlRGVzY3JpcHRvciBpbnN0ZWFkIG9mIAorICAgICAgICByZWx5aW5n
IG9uIHVuZGVybHlpbmcgTVRMUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
IGRlZmF1bHRzLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvR1BVQmxlbmREZXNjcmlwdG9yLmlkbDogCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L0dQVUNvbG9yV3JpdGVCaXRzLmlkbDogCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmxlbmREZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUNvbG9yV3JpdGVCaXRzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjptdGxD
b2xvcldyaXRlTWFza0ZvckdQVUNvbG9yV3JpdGVGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpt
dGxCbGVuZE9wZXJhdGlvbkZvckdQVUJsZW5kT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Om10bEJsZW5kRmFjdG9yRm9yR1BVQmxlbmRGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
Q29sb3JTdGF0ZXNGb3JDb2xvckF0dGFjaG1lbnRBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjp0
cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNl
dENvbG9yU3RhdGVzRm9yQ29sb3JBdHRhY2htZW50QXJyYXkpOiBEZWxldGVkLgorCiAyMDE5LTAz
LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2V0IHdpbmRv
dy5jbG9zZWQgaW1tZWRpYXRlbHkgd2hlbiBjbG9zZSgpIGlzIGludm9rZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggYTIyMjY4NzAxZjZiNzMwOTExMTRmZDAzNzdhNmNiODdlMDk5NzMxNy4uMjYw
NjY0NTI5YTQzNGNhMjlkYjJmMWQ3Zjk1MDRkMDlmMTM3YTA5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTQ2NSwxMSArNDY1LDEzIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1
L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9HUFVCbGVuZERl
c2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9HUFVCdWZmZXJVc2FnZS5pZGwKICAgICBNb2R1bGVzL3dlYmdw
dS9HUFVDYW52YXNDb250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yLmlkbAog
ICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmlkbAorICAgIE1vZHVs
ZXMvd2ViZ3B1L0dQVUNvbG9yV3JpdGVCaXRzLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUNv
bXBhcmVGdW5jdGlvbi5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVEZXB0aFN0ZW5jaWxTdGF0
ZURlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50M0QuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBiNWYw
ZTkxMDFmY2M4Y2U5MWNlYjlhZjEyMTY0OTdiMWEzMmJiZjM2Li43MjJhYjBkY2FhMTc5NTliMDVm
YTM5ZGUxNzI1ZDcxYzgzYmJlZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMzMCwxMSArMzMwLDEzIEBAICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZlci5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3dlYmdwdS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmlkbAorJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQmxlbmREZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlclVzYWdlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
Z3B1L0dQVUNvbG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JT
dGF0ZURlc2NyaXB0b3IuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xv
cldyaXRlQml0cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbXBhcmVG
dW5jdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNp
bFN0YXRlRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUV4
dGVudDNELmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCA5MTI3ZTFmYzQ2N2VkZTY2YmMwNmU4MzgxMmI1MTZhMGE5OWY1NTNhLi4x
NDNmNjUxMGRmOWU1ZmFlMTZkNzU1NWQ1OGNiOTcwZTBiZjUyZTFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTg3LDYgKzU4Nyw4
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVCbGVuZERlc2NyaXB0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJsZW5kRGVzY3JpcHRvci5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJ1ZmZl
ckRlc2NyaXB0b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0dQVUJ1ZmZlckRlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVCdWZmZXJVc2FnZS5jcHAKQEAgLTU5Nyw2ICs1OTksOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbG9y
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVD
b2xvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQ
VUNvbG9yU3RhdGVEZXNjcmlwdG9yLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNHUFVDb2xvclN0YXRlRGVzY3JpcHRvci5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbG9yV3JpdGVCaXRzLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVDb2xvcldy
aXRlQml0cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dQVUNvbXBhcmVGdW5jdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR1BVQ29tcGFyZUZ1bmN0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9y
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOTUxYjk2YWQzMWFkNDZkOTU0
MWYyNTE3ZTc0ZTE4YmQxNWZkMTViNC4uNGU2MjA0ZDlkMDhiMjY4ODc5Y2ViYTEzNDBlOTUxYmUw
OWUwZDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzgsOCArMzc4LDEw
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQ
VUNhbnZhc0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUNv
bG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvclN0YXRlRGVz
Y3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JXcml0
ZUJpdHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExh
eW91dEJpbmRpbmcuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L0dQVUJsZW5kRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUv
R1BVQnVmZmVyRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUv
R1BVQnVmZmVyVXNhZ2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUNv
bXBhcmVGdW5jdGlvbi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvR1BVQmxlbmREZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L0dQVUJsZW5kRGVzY3JpcHRvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE2Nzc4MGUxZTAwMjMxYmM4
ODA0YjI4ZjQzNmIxNGM2YmZmZDk1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L0dQVUJsZW5kRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rl
ci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgSW1wbGVtZW50ZWRBcz1HUFVCbGVuZEZh
Y3RvcgorXSBlbnVtIEdQVUJsZW5kRmFjdG9yIHsKKyAgICAiemVybyIsCisgICAgIm9uZSIsCisg
ICAgInNyYy1jb2xvciIsCisgICAgIm9uZS1taW51cy1zcmMtY29sb3IiLAorICAgICJzcmMtYWxw
aGEiLAorICAgICJvbmUtbWludXMtc3JjLWFscGhhIiwKKyAgICAiZHN0LWNvbG9yIiwKKyAgICAi
b25lLW1pbnVzLWRzdC1jb2xvciIsCisgICAgImRzdC1hbHBoYSIsCisgICAgIm9uZS1taW51cy1k
c3QtYWxwaGEiLAorICAgICJzcmMtYWxwaGEtc2F0dXJhdGVkIiwKKyAgICAiYmxlbmQtY29sb3Ii
LAorICAgICJvbmUtbWludXMtYmxlbmQtY29sb3IiCit9OworCitbCisgICAgSW1wbGVtZW50ZWRB
cz1HUFVCbGVuZE9wZXJhdGlvbgorXSBlbnVtIEdQVUJsZW5kT3BlcmF0aW9uIHsKKyAgICAiYWRk
IiwKKyAgICAic3VidHJhY3QiLAorICAgICJyZXZlcnNlLXN1YnRyYWN0IiwKKyAgICAibWluIiwK
KyAgICAibWF4IgorfTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IEdQVUJsZW5kRGVzY3JpcHRvciB7CisgICAg
R1BVQmxlbmRGYWN0b3Igc3JjRmFjdG9yOworICAgIEdQVUJsZW5kRmFjdG9yIGRzdEZhY3RvcjsK
KyAgICBHUFVCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsCmlu
ZGV4IDY3YWUyZWUzYWZmYmE1NTk2NDM4Y2YzZmM1MTM0NmUyM2ZmMWY1YjIuLjhjOTY2ZGI1MDA1
Zjc5MTU5YzE4NmI3NDA0ZjkxYzg1MDE5OTRmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvclN0YXRlRGVzY3JpcHRvci5pZGwKQEAgLTI0
LDE0ICsyNCwxNSBAQAogICovCiAvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9i
bG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAogCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
R1BVQ29sb3JXcml0ZUZsYWdzOworCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAogICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25hcnkgR1BVQ29sb3JTdGF0ZURlc2NyaXB0
b3IgewogICAgIEdQVVRleHR1cmVGb3JtYXQgZm9ybWF0OwogCi0gICAgLy8gTm90IHlldCBpbXBs
ZW1lbnRlZC4KLSAgICAvLyBHUFVCbGVuZERlc2NyaXB0b3IgYWxwaGFCbGVuZDsKLSAgICAvLyBH
UFVCbGVuZERlc2NyaXB0b3IgY29sb3JCbGVuZDsKLSAgICAvLyBHUFVDb2xvcldyaXRlRmxhZ3Mg
d3JpdGVNYXNrOworICAgIEdQVUJsZW5kRGVzY3JpcHRvciBhbHBoYUJsZW5kOworICAgIEdQVUJs
ZW5kRGVzY3JpcHRvciBjb2xvckJsZW5kOworICAgIEdQVUNvbG9yV3JpdGVGbGFncyB3cml0ZU1h
c2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ29s
b3JXcml0ZUJpdHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JX
cml0ZUJpdHMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ZTBlZjI2YWVmMDIzNGQyNGFiNTNhZjJhYjJmZDBk
YjI1OWY1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9HUFVDb2xvcldyaXRlQml0cy5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBo
dHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNo
LndlYmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9u
YWw9V0VCR1BVLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHUFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR1BV
Q29sb3JXcml0ZUJpdHMgeworICAgIGNvbnN0IHUzMiBOT05FID0gMDsKKyAgICBjb25zdCB1MzIg
UkVEID0gMTsKKyAgICBjb25zdCB1MzIgR1JFRU4gPSAyOworICAgIGNvbnN0IHUzMiBCTFVFID0g
NDsKKyAgICBjb25zdCB1MzIgQUxQSEEgPSA4OworICAgIGNvbnN0IHUzMiBBTEwgPSAxNTsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDlkMzAxODE0N2NiYWJjOTNiM2E4OWRlOTM3NWRjZDUzOTZkYjNj
YWQuLmUxY2ZjNGYwMmJkN2MxOTM3MTZhMmEzNDdhN2UzYjIwZTlhNWNiYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0yNzcxLDggKzI3NzEsMTAgQEAgSlNGb250RmFjZVNldC5jcHAKIEpTR1BVQ2FudmFz
Q29udGV4dC5jcHAKIEpTR1BVQ29sb3IuY3BwCiBKU0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmNw
cAorSlNHUFVDb2xvcldyaXRlQml0cy5jcHAKIEpTR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5j
cHAKIEpTR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAKK0pTR1BVQmxlbmREZXNjcmlw
dG9yLmNwcAogSlNHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVCdWZmZXJVc2FnZS5jcHAK
IEpTR1BVQ29tcGFyZUZ1bmN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRlOTM3ZWJiMzkxM2ZjNzUwNWVmNGFkODI1
NDViZmY2MmY0YWE0Y2MuLmM1YWRiYmEyZThjYTA2YzE4OTgzMzRhZjZmMjAwNjVlYjY0OTU3YTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEzOTU2LDcgKzEzOTU2LDcgQEAKIAkJRDAwRDc3RkQyMjQyRUQ0NTAwNDNGMTJDIC8q
IFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21wdXRl
UGFzc0VuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwRDc3RkUyMjQy
RUQ0NTAwNDNGMTJDIC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMDBENzdGRjIyNDJFRDQ1MDA0M0YxMkMgLyogV2ViR1BVQ29tcHV0ZVBhc3NF
bmNvZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotICAJCUQwMEY1OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5k
b3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dX
ZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwMEY1OTQxMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJH
UFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRv
d1dlYkdQVS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAwRjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTMzLDYg
KzE0MTMzLDEwIEBACiAJCUQwQURCMjhDMjIzNzg0MkUwMEEyMjkzNSAvKiBHUFVDb2xvclN0YXRl
RGVzY3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRl
TGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTGlu
a0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCMDU1NjcwOUM2NzAw
MTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENyZWF0ZUxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDBCNTZFQUEyMjRFQzYyNDAwNjEwNDlDIC8qIEdQVUJsZW5kRGVzY3JpcHRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCbGVuZERlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDBCNTZFQUIyMjRFQzYyNDAwNjEwNDlDIC8qIEdQVUJsZW5kRGVzY3Jp
cHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gR1BVQmxlbmREZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDBCNTZFQUQyMjRFQ0UyMDAwNjEwNDlDIC8qIEdQVUNvbG9yV3JpdGVCaXRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbG9yV3JpdGVCaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwQjU2RUFFMjI0RUNFMjAwMDYxMDQ5QyAvKiBHUFVDb2xvcldyaXRlQml0
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gR1BVQ29sb3JXcml0ZUJpdHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMEI4QkIwMTIxQzQ2RTc4MDAwQzc2ODEgLyogR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQkM1NDQ4MTQ0M0FDNEEwMEUxMDVEQSAvKiBDYWNo
ZWRTdHlsZVNoZWV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
Y2hlZFN0eWxlU2hlZXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBC
RDRGNUExNDA4ODUwRjAwNjgzOUI2IC8qIERpY3RhdGlvbkNvbW1hbmRJT1MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uQ29tbWFuZElPUy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODU0Niw2ICsxODU1MCw3IEBACiAJCQkJRDBC
RTEwNEUyMUU2OTVFMjAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cEJpbmRpbmcuaCAqLywKIAkJCQlE
MEJFMTA1MTIxRTZBNzBFMDBFNDJBODkgLyogR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oICovLAog
CQkJCUQwMjQ1NEQwMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5kR3JvdXBMYXlvdXQuaCAqLywK
KwkJCQlEMEI1NkVBQTIyNEVDNjI0MDA2MTA0OUMgLyogR1BVQmxlbmREZXNjcmlwdG9yLmggKi8s
CiAJCQkJRDA4NDAzM0EyMjFDQkY1NDAwMDA3MjA1IC8qIEdQVUJ1ZmZlci5jcHAgKi8sCiAJCQkJ
RDBEODY0OTIyMUI3NjBGMjAwM0M5ODNDIC8qIEdQVUJ1ZmZlci5oICovLAogCQkJCUQwQkUxMDRB
MjFFNjg3MkYwMEU0MkE4OSAvKiBHUFVCdWZmZXJCaW5kaW5nLmggKi8sCkBAIC0xODU1Myw2ICsx
ODU1OCw3IEBACiAJCQkJRDAxQjgxMUQyMjEzNjM2RTAwNjI3QjZDIC8qIEdQVUJ1ZmZlclVzYWdl
LmggKi8sCiAJCQkJRDAwMUQ5QUIyMUIwQzdCRjAwMjNCOUJDIC8qIEdQVUNvbG9yLmggKi8sCiAJ
CQkJRDBBREIyOEIyMjM3ODQyRTAwQTIyOTM1IC8qIEdQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgg
Ki8sCisJCQkJRDBCNTZFQUQyMjRFQ0UyMDAwNjEwNDlDIC8qIEdQVUNvbG9yV3JpdGVCaXRzLmgg
Ki8sCiAJCQkJMzEyRkY4QkQyMUE0QzJGMTAwRUIxOTlEIC8qIEdQVUNvbW1hbmRCdWZmZXIuaCAq
LywKIAkJCQlEMDNDODQ5QzIxRkZDN0ZDMDAwMjIyN0YgLyogR1BVQ29tcGFyZUZ1bmN0aW9uLmgg
Ki8sCiAJCQkJRDA4OTAzM0YyMjQxQ0U0NjAwRjNGNDQwIC8qIEdQVUNvbXB1dGVQYXNzRW5jb2Rl
ci5oICovLApAQCAtMjYxMjksNiArMjYxMzUsNyBAQAogCQkJCUQwRDY5QzlGMjIyRTAxNUUwMDMy
OTI3RSAvKiBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmlkbCAqLywKIAkJCQlEMEQ2OUM5QzIy
MkUwMEMyMDAzMjkyN0UgLyogR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovLAogCQkJ
CUQwRDY5QzlEMjIyRTAwQzIwMDMyOTI3RSAvKiBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmlkbCAqLywKKwkJCQlEMEI1NkVBQjIyNEVDNjI0MDA2MTA0OUMgLyogR1BVQmxlbmREZXNjcmlw
dG9yLmlkbCAqLywKIAkJCQlEMDFCODExOTIyMTM1RUI5MDA2MjdCNkMgLyogR1BVQnVmZmVyRGVz
Y3JpcHRvci5pZGwgKi8sCiAJCQkJRDAxQjgxMUMyMjEzNjI3MzAwNjI3QjZDIC8qIEdQVUJ1ZmZl
clVzYWdlLmlkbCAqLywKIAkJCQlEMDkzRDIyOTIxNzk1NDE2MDAzMjkyMTcgLyogR1BVQ2FudmFz
Q29udGV4dC5jcHAgKi8sCkBAIC0yNjEzNiw2ICsyNjE0Myw3IEBACiAJCQkJRDA5M0QyMjcyMTc5
NTFENDAwMzI5MjE3IC8qIEdQVUNhbnZhc0NvbnRleHQuaWRsICovLAogCQkJCUQwMUI4MTEyMjIx
MjVBRkMwMDYyN0I2QyAvKiBHUFVDb2xvci5pZGwgKi8sCiAJCQkJRDBBREIyOEMyMjM3ODQyRTAw
QTIyOTM1IC8qIEdQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMEI1NkVBRTIy
NEVDRTIwMDA2MTA0OUMgLyogR1BVQ29sb3JXcml0ZUJpdHMuaWRsICovLAogCQkJCUQwM0M4NDlF
MjFGRkNGMDAwMDAyMjI3RiAvKiBHUFVDb21wYXJlRnVuY3Rpb24uaWRsICovLAogCQkJCUQwM0M4
NEEyMjFGRkQ3MjMwMDAyMjI3RiAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuaWRs
ICovLAogCQkJCUQwMjZGNDgwMjIwQTJCNzAwMEFDNUY0OSAvKiBHUFVFeHRlbnQzRC5pZGwgKi8s
CkBAIC0yNjIwMSw3ICsyNjIwOSw2IEBACiAJCQkJRDA1QTk5RTQyMUM5QkYyQzAwMDMyQjc1IC8q
IFdlYkdQVVBpcGVsaW5lTGF5b3V0LmggKi8sCiAJCQkJRDA1QTk5RTYyMUM5QkYyQzAwMDMyQjc1
IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0LmlkbCAqLywKIAkJCQlEMDA0ODdEMjIyNDU3QkVBMDBF
RUQ3RDkgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLywKLQkJCQlEMDA0
ODdEMjIyNDU3QkVBMDBFRUQ3RDkgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNw
cCAqLywKIAkJCQlEMDVBOTlFMTIxQzlCNTBGMDAwMzJCNzUgLyogV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yLmggKi8sCiAJCQkJRDA1QTk5RTIyMUM5QjUwRjAwMDMyQjc1IC8qIFdlYkdQ
VVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5pZGwgKi8sCiAJCQkJRDA4OTAzMzcyMjQwNjFBQzAw
RjNGNDQwIC8qIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA4MGQ4
ZTY5NDU0MWExZDgwNDVkNTliODVjNmI5MmEzNTc0MzRhYzcxLi5iNmIyNmFlZmMzM2RlMWZjMjgw
NDQ1Yjg0ODljNDVmYzE2ODk4ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC04MywxMSArODMsMTIgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXAogICAgIG1hY3JvKEdQVUJ1ZmZlclVz
YWdlKSBcCiAgICAgbWFjcm8oR1BVQ2FudmFzQ29udGV4dCkgXAotICAgIG1hY3JvKEdQVVNoYWRl
ck1vZHVsZSkgXAorICAgIG1hY3JvKEdQVUNvbG9yV3JpdGVCaXRzKSBcCiAgICAgbWFjcm8oR1BV
Q29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKEdQVUNvbW1hbmRFbmNvZGVyKSBcCiAgICAgbWFj
cm8oR1BVQ29tcHV0ZVBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oR1BVQ29tcHV0ZVBpcGVsaW5l
KSBcCisgICAgbWFjcm8oR1BVU2hhZGVyTW9kdWxlKSBcCiAgICAgbWFjcm8oR1BVU2hhZGVyU3Rh
Z2VCaXQpIFwKICAgICBtYWNybyhHUFVTd2FwQ2hhaW4pIFwKICAgICBtYWNybyhHUFVUZXh0dXJl
VXNhZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCbGVuZERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVCbGVuZERlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDEzM2FjMmU5YWNkMTVjMjBj
NjFjODAwMDE5ZTliOThiZDVmZDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJsZW5kRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBHUFVCbGVuZEZhY3RvciB7CisgICAgWmVy
bywKKyAgICBPbmUsCisgICAgU3JjQ29sb3IsCisgICAgT25lTWludXNTcmNDb2xvciwKKyAgICBT
cmNBbHBoYSwKKyAgICBPbmVNaW51c1NyY0FscGhhLAorICAgIERzdENvbG9yLAorICAgIE9uZU1p
bnVzRHN0Q29sb3IsCisgICAgRHN0QWxwaGEsCisgICAgT25lTWludXNEc3RBbHBoYSwKKyAgICBT
cmNBbHBoYVNhdHVyYXRlZCwKKyAgICBCbGVuZENvbG9yLAorICAgIE9uZU1pbnVzQmxlbmRDb2xv
ciwKK307CisKK2VudW0gY2xhc3MgR1BVQmxlbmRPcGVyYXRpb24geworICAgIEFkZCwKKyAgICBT
dWJ0cmFjdCwKKyAgICBSZXZlcnNlU3VidHJhY3QsCisgICAgTWluLAorICAgIE1heCwKK307CisK
K3N0cnVjdCBHUFVCbGVuZERlc2NyaXB0b3IgeworICAgIEdQVUJsZW5kRmFjdG9yIHNyY0ZhY3Rv
cjsKKyAgICBHUFVCbGVuZEZhY3RvciBkc3RGYWN0b3I7CisgICAgR1BVQmxlbmRPcGVyYXRpb24g
b3BlcmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVDb2xvclN0YXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgKaW5kZXggYmQwN2UzYjBiNTMx
Yzg3MjY0YjE3M2ZiMzQzNjMxNTljMDk5MmRmOC4uZTAwMTcwNWQ2M2VhYmZlOGE0MWI2MjgwMzI4
YzQ1MzIzMWUzMWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgKQEAgLTI3LDEyICsy
NywxOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUJsZW5kRGVzY3Jp
cHRvci5oIgorI2luY2x1ZGUgIkdQVUNvbG9yV3JpdGVCaXRzLmgiCiAjaW5jbHVkZSAiR1BVVGV4
dHVyZUZvcm1hdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVDb2xvclN0
YXRlRGVzY3JpcHRvciB7CiAgICAgR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQ7CisKKyAgICBHUFVC
bGVuZERlc2NyaXB0b3IgYWxwaGFCbGVuZDsKKyAgICBHUFVCbGVuZERlc2NyaXB0b3IgY29sb3JC
bGVuZDsKKyAgICBHUFVDb2xvcldyaXRlRmxhZ3Mgd3JpdGVNYXNrOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbG9yV3JpdGVCaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQ29sb3JXcml0ZUJpdHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGFkOTI5ZDQzYzNmNGU4
NTNlYjY3MjYxOWVkYjA1YjAzZDIwYjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yV3JpdGVCaXRzLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgR1BVQ29sb3JXcml0ZUZsYWdzID0gdW5zaWduZWQ7CisKK2NsYXNzIEdQVUNvbG9yV3JpdGVC
aXRzIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29sb3JXcml0ZUJpdHM+IHsKK3B1YmxpYzoKKyAg
ICBlbnVtIGNsYXNzIEZsYWdzIDogR1BVQ29sb3JXcml0ZUZsYWdzIHsKKyAgICAgICAgTm9uZSA9
IDAsCisgICAgICAgIFJlZCA9IDEgPDwgMCwKKyAgICAgICAgR3JlZW4gPSAxIDw8IDEsCisgICAg
ICAgIEJsdWUgPSAxIDw8IDIsCisgICAgICAgIEFscGhhID0gMSA8PCAzLAorICAgICAgICBBbGwg
PSAoMSA8PCA0KSAtIDEsCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1l
dGFsLm1tCmluZGV4IGYzZmM1M2E4ZGFiZjQxNjZjNzk4YTVlOGFkMjAxOWJkOWQzYzY0NjUuLmZi
ZTI0NjA3OTg0NmVhMjY1NGE4OWRhNzNkMWJkYmExMWMyMGU2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1l
dGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0ICJXSExT
TFZlcnRleEJ1ZmZlckluZGV4Q2FsY3VsYXRvci5oIgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvT3B0aW9u
U2V0Lmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzY3LDEzICszNjgsOTMgQEAgc3RhdGljIGJvb2wgdHJ5U2V0SW5wdXRTdGF0ZUZvclBpcGVs
aW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgdHJ5U2V0Q29sb3JTdGF0ZXNGb3JDb2xvckF0dGFjaG1l
bnRBcnJheShNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0b3JBcnJheSog
YXJyYXksIGNvbnN0IFZlY3RvcjxHUFVDb2xvclN0YXRlRGVzY3JpcHRvcj4mIGNvbG9yU3RhdGVz
KQorc3RhdGljIE1UTENvbG9yV3JpdGVNYXNrIG10bENvbG9yV3JpdGVNYXNrRm9yR1BVQ29sb3JX
cml0ZUZsYWdzKEdQVUNvbG9yV3JpdGVGbGFncyBmbGFncykKIHsKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGFuZCB2YWxpZGF0ZSB0aGUgcmVzdCBvZiBHUFVDb2xvclN0YXRlRGVzY3JpcHRvci4K
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29sb3JTdGF0ZXMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIFthcnJheVtpXSBzZXRQaXhlbEZvcm1hdDpzdGF0aWNfY2FzdDxNVExQaXhlbEZvcm1h
dD4ocGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9yR1BVVGV4dHVyZUZvcm1hdChjb2xvclN0YXRlc1tp
XS5mb3JtYXQpKV07CisgICAgaWYgKGZsYWdzID09IHN0YXRpY19jYXN0PEdQVUNvbG9yV3JpdGVG
bGFncz4oR1BVQ29sb3JXcml0ZUJpdHM6OkZsYWdzOjpBbGwpKQorICAgICAgICByZXR1cm4gTVRM
Q29sb3JXcml0ZU1hc2tBbGw7CisKKyAgICBhdXRvIG9wdGlvbnMgPSBPcHRpb25TZXQ8R1BVQ29s
b3JXcml0ZUJpdHM6OkZsYWdzPjo6ZnJvbVJhdyhmbGFncyk7CisKKyAgICBNVExDb2xvcldyaXRl
TWFzayBtYXNrID0gTVRMQ29sb3JXcml0ZU1hc2tOb25lOworICAgIGlmIChvcHRpb25zICYgR1BV
Q29sb3JXcml0ZUJpdHM6OkZsYWdzOjpSZWQpCisgICAgICAgIG1hc2sgfD0gTVRMQ29sb3JXcml0
ZU1hc2tSZWQ7CisgICAgaWYgKG9wdGlvbnMgJiBHUFVDb2xvcldyaXRlQml0czo6RmxhZ3M6Okdy
ZWVuKQorICAgICAgICBtYXNrIHw9IE1UTENvbG9yV3JpdGVNYXNrR3JlZW47CisgICAgaWYgKG9w
dGlvbnMgJiBHUFVDb2xvcldyaXRlQml0czo6RmxhZ3M6OkJsdWUpCisgICAgICAgIG1hc2sgfD0g
TVRMQ29sb3JXcml0ZU1hc2tCbHVlOworICAgIGlmIChvcHRpb25zICYgR1BVQ29sb3JXcml0ZUJp
dHM6OkZsYWdzOjpBbHBoYSkKKyAgICAgICAgbWFzayB8PSBNVExDb2xvcldyaXRlTWFza0FscGhh
OworCisgICAgcmV0dXJuIG1hc2s7Cit9CiAKLSAgICByZXR1cm4gdHJ1ZTsKK3N0YXRpYyBNVExC
bGVuZE9wZXJhdGlvbiBtdGxCbGVuZE9wZXJhdGlvbkZvckdQVUJsZW5kT3BlcmF0aW9uKEdQVUJs
ZW5kT3BlcmF0aW9uIG9wKQoreworICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIEdQVUJsZW5k
T3BlcmF0aW9uOjpBZGQ6CisgICAgICAgIHJldHVybiBNVExCbGVuZE9wZXJhdGlvbkFkZDsKKyAg
ICBjYXNlIEdQVUJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJuIE1UTEJs
ZW5kT3BlcmF0aW9uU3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6UmV2ZXJz
ZVN1YnRyYWN0OgorICAgICAgICByZXR1cm4gTVRMQmxlbmRPcGVyYXRpb25SZXZlcnNlU3VidHJh
Y3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6TWluOgorICAgICAgICByZXR1cm4gTVRM
QmxlbmRPcGVyYXRpb25NaW47CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6TWF4OgorICAg
ICAgICByZXR1cm4gTVRMQmxlbmRPcGVyYXRpb25NYXg7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBNVExCbGVuZEZhY3RvciBtdGxCbGVuZEZhY3RvckZv
ckdQVUJsZW5kRmFjdG9yKEdQVUJsZW5kRmFjdG9yIGZhY3RvcikKK3sKKyAgICBzd2l0Y2ggKGZh
Y3RvcikgeworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Olplcm86CisgICAgICAgIHJldHVybiBN
VExCbGVuZEZhY3Rvclplcm87CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6T25lOgorICAgICAg
ICByZXR1cm4gTVRMQmxlbmRGYWN0b3JPbmU7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6U3Jj
Q29sb3I6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3RvclNvdXJjZUNvbG9yOworICAgIGNh
c2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjQ29sb3I6CisgICAgICAgIHJldHVybiBNVExC
bGVuZEZhY3Rvck9uZU1pbnVzU291cmNlQ29sb3I7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6
U3JjQWxwaGE6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3RvclNvdXJjZUFscGhhOworICAg
IGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjQWxwaGE6CisgICAgICAgIHJldHVybiBN
VExCbGVuZEZhY3Rvck9uZU1pbnVzU291cmNlQWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rv
cjo6RHN0Q29sb3I6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3RvckRlc3RpbmF0aW9uQ29s
b3I7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6T25lTWludXNEc3RDb2xvcjoKKyAgICAgICAg
cmV0dXJuIE1UTEJsZW5kRmFjdG9yT25lTWludXNEZXN0aW5hdGlvbkNvbG9yOworICAgIGNhc2Ug
R1BVQmxlbmRGYWN0b3I6OkRzdEFscGhhOgorICAgICAgICByZXR1cm4gTVRMQmxlbmRGYWN0b3JE
ZXN0aW5hdGlvbkFscGhhOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzRHN0QWxw
aGE6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvck9uZU1pbnVzRGVzdGluYXRpb25BbHBo
YTsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpTcmNBbHBoYVNhdHVyYXRlZDoKKyAgICAgICAg
cmV0dXJuIE1UTEJsZW5kRmFjdG9yU291cmNlQWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rv
cjo6QmxlbmRDb2xvcjoKKyAgICAgICAgcmV0dXJuIE1UTEJsZW5kRmFjdG9yQmxlbmRDb2xvcjsK
KyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpPbmVNaW51c0JsZW5kQ29sb3I6CisgICAgICAgIHJl
dHVybiBNVExCbGVuZEZhY3Rvck9uZU1pbnVzQmxlbmRDb2xvcjsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIHZvaWQgc2V0Q29sb3JTdGF0ZXNGb3JDb2xv
ckF0dGFjaG1lbnRBcnJheShNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNobWVudERlc2NyaXB0
b3JBcnJheSogYXJyYXksIGNvbnN0IFZlY3RvcjxHUFVDb2xvclN0YXRlRGVzY3JpcHRvcj4mIGNv
bG9yU3RhdGVzKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2xvclN0YXRlcy5z
aXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBzdGF0ZSA9IGNvbG9yU3RhdGVzW2ldOworICAg
ICAgICBhdXRvIGRlc2NyaXB0b3IgPSByZXRhaW5QdHIoW2FycmF5IG9iamVjdEF0SW5kZXhlZFN1
YnNjcmlwdDppXSk7CisgICAgICAgIFtkZXNjcmlwdG9yIHNldFBpeGVsRm9ybWF0OnN0YXRpY19j
YXN0PE1UTFBpeGVsRm9ybWF0PihwbGF0Zm9ybVRleHR1cmVGb3JtYXRGb3JHUFVUZXh0dXJlRm9y
bWF0KHN0YXRlLmZvcm1hdCkpXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0V3JpdGVNYXNrOm10
bENvbG9yV3JpdGVNYXNrRm9yR1BVQ29sb3JXcml0ZUZsYWdzKHN0YXRlLndyaXRlTWFzayldOwor
ICAgICAgICBbZGVzY3JpcHRvciBzZXRCbGVuZGluZ0VuYWJsZWQ6WUVTXTsKKyAgICAgICAgW2Rl
c2NyaXB0b3Igc2V0QWxwaGFCbGVuZE9wZXJhdGlvbjptdGxCbGVuZE9wZXJhdGlvbkZvckdQVUJs
ZW5kT3BlcmF0aW9uKHN0YXRlLmFscGhhQmxlbmQub3BlcmF0aW9uKV07CisgICAgICAgIFtkZXNj
cmlwdG9yIHNldFJnYkJsZW5kT3BlcmF0aW9uOm10bEJsZW5kT3BlcmF0aW9uRm9yR1BVQmxlbmRP
cGVyYXRpb24oc3RhdGUuY29sb3JCbGVuZC5vcGVyYXRpb24pXTsKKyAgICAgICAgW2Rlc2NyaXB0
b3Igc2V0RGVzdGluYXRpb25BbHBoYUJsZW5kRmFjdG9yOm10bEJsZW5kRmFjdG9yRm9yR1BVQmxl
bmRGYWN0b3Ioc3RhdGUuYWxwaGFCbGVuZC5kc3RGYWN0b3IpXTsKKyAgICAgICAgW2Rlc2NyaXB0
b3Igc2V0RGVzdGluYXRpb25SR0JCbGVuZEZhY3RvcjptdGxCbGVuZEZhY3RvckZvckdQVUJsZW5k
RmFjdG9yKHN0YXRlLmNvbG9yQmxlbmQuZHN0RmFjdG9yKV07CisgICAgICAgIFtkZXNjcmlwdG9y
IHNldFNvdXJjZUFscGhhQmxlbmRGYWN0b3I6bXRsQmxlbmRGYWN0b3JGb3JHUFVCbGVuZEZhY3Rv
cihzdGF0ZS5hbHBoYUJsZW5kLnNyY0ZhY3RvcildOworICAgICAgICBbZGVzY3JpcHRvciBzZXRT
b3VyY2VSR0JCbGVuZEZhY3RvcjptdGxCbGVuZEZhY3RvckZvckdQVUJsZW5kRmFjdG9yKHN0YXRl
LmNvbG9yQmxlbmQuc3JjRmFjdG9yKV07CisgICAgfQogfQogCiBzdGF0aWMgUmV0YWluUHRyPE1U
TFJlbmRlclBpcGVsaW5lU3RhdGU+IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUoY29u
c3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQpAQCAtMzkxLDE3ICs0
NzIsMTcgQEAgc3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiB0cnlDcmVh
dGVNdGxSZW5kZXJQaXBlbGluZVN0YXRlKGNvbnN0IGMKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCi0gICAgYm9vbCBkaWRTZXRGdW5jdGlvbnMgPSBmYWxzZSwgZGlkU2V0SW5wdXRT
dGF0ZSA9IGZhbHNlLCBkaWRTZXRDb2xvclN0YXRlcyA9IGZhbHNlOworICAgIGJvb2wgZGlkU2V0
RnVuY3Rpb25zID0gZmFsc2UsIGRpZFNldElucHV0U3RhdGUgPSBmYWxzZTsKIAogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGRpZFNldEZ1bmN0aW9ucyA9IHRyeVNldEZ1
bmN0aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIG10bERlc2NyaXB0b3Iu
Z2V0KCksIGRlc2NyaXB0b3IsIGRldmljZSk7CiAgICAgZGlkU2V0SW5wdXRTdGF0ZSA9IHRyeVNl
dElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25OYW1lLCBtdGxEZXNjcmlw
dG9yLmdldCgpLCBkZXNjcmlwdG9yLmlucHV0U3RhdGUpOwotICAgIGRpZFNldENvbG9yU3RhdGVz
ID0gdHJ5U2V0Q29sb3JTdGF0ZXNGb3JDb2xvckF0dGFjaG1lbnRBcnJheShtdGxEZXNjcmlwdG9y
LmdldCgpLmNvbG9yQXR0YWNobWVudHMsIGRlc2NyaXB0b3IuY29sb3JTdGF0ZXMpOworICAgIHNl
dENvbG9yU3RhdGVzRm9yQ29sb3JBdHRhY2htZW50QXJyYXkobXRsRGVzY3JpcHRvci5nZXQoKS5j
b2xvckF0dGFjaG1lbnRzLCBkZXNjcmlwdG9yLmNvbG9yU3RhdGVzKTsKIAogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBpZiAoIWRpZFNldEZ1bmN0aW9ucyB8fCAhZGlkU2V0
SW5wdXRTdGF0ZSB8fCAhZGlkU2V0Q29sb3JTdGF0ZXMpCisgICAgaWYgKCFkaWRTZXRGdW5jdGlv
bnMgfHwgIWRpZFNldElucHV0U3RhdGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
UmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHBpcGVsaW5lOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMxZGFi
NWNmMDA3MzhlZGFjY2Y1MWE0ZWU0NDk1ZTYzNWY5N2MwZWUuLjFkMjU5YWI3N2Q0MDM1MjZmOTUz
MjFhNzQyMmRmOWNhYzlmODlkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wNC0wMSAg
SnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBJ
bXBsZW1lbnQgYmxlbmQgc3RhdGVzIGFuZCBjb2xvciB3cml0ZSBtYXNrIGZvciAgR1BVQ29sb3JT
dGF0ZURlc2NyaXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NjQ3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBibGVuZC10cmlhbmdsZS1zdHJpcCB0byB0ZXN0IGNvbG9yIGJsZW5kaW5nLgor
ICAgICAgICBVcGRhdGUgb3RoZXIgdGVzdHMgdG8gc3BlY2lmeSBibGVuZCBzdGF0ZXMgd2hlbiBj
cmVhdGluZyBhIEdQVVJlbmRlclBpcGVsaW5lLgorCisgICAgICAgICogd2ViZ3B1L2JsZW5kLXRy
aWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS9ibGVu
ZC10cmlhbmdsZS1zdHJpcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvYnVmZmVyLWNv
bW1hbmQtYnVmZmVyLXJhY2VzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L2J1ZmZlci1yZXNvdXJj
ZS10cmlhbmdsZXMuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvZGVwdGgtZW5hYmxlZC10cmlhbmds
ZS1zdHJpcC5odG1sOgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOgor
ICAgICAgICAqIHdlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWw6CisgICAgICAgICogd2ViZ3B1
L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvdmVydGV4LWJ1
ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sOgorICAgICAgICAqIHdlYmdwdS93aGxzbC5odG1sOgor
CiAyMDE5LTAzLTI5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1NpbXBsZSBsaW5lIGxheW91dF0gVHVybiBvZmYgaW5saW5lIGJveHRyZWUgZ2VuZXJhdGlvbiBm
b3IgbXVsdGlsaW5lIGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9ibGVu
ZC10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5k
LXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg2ZjEzZTgxMjAzOTdh
NWNjNjMzNmM5ZTJhNDg1ZTc3OGJhOTkzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkhUTUwg
UmVmZXJlbmNlIEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlz
IGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+
PC9jYW52YXM+Cis8c2NyaXB0PgorY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiY2FudmFzIik7Citjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisK
K2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDApJzsKK2NvbnRleHQuZmlsbFJlY3Qo
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9ibGVuZC10
cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLXRyaWFuZ2xlLXN0
cmlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU1YWM4NzU4NjU4MDRlOWRkMTk0NmZiMDM3ZTMyMGM4ODdm
MGFmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9ibGVuZC10cmlhbmds
ZS1zdHJpcC5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHUFUgSGVsbG8gVHJpYW5nbGVzPC90aXRsZT4KKzxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2ViR1BVIGNvcnJlY3RseSByZW5kZXJzIGEgZ3Jl
ZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJibGVuZC10cmlhbmdsZS1zdHJp
cC1leHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21w
bGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2Fu
dmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworY29uc3QgcG9zaXRpb25BdHRyaWJ1dGVOdW0gPSAwOworCitjb25zdCBzaGFkZXJD
b2RlID0gYAorI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KKyAgICAKK3VzaW5nIG5hbWVzcGFjZSBt
ZXRhbDsKKworc3RydWN0IFZlcnRleEluCit7CisgICAgZmxvYXQ0IHBvc2l0aW9uIFtbYXR0cmli
dXRlKCR7cG9zaXRpb25BdHRyaWJ1dGVOdW19KV1dOworfTsKKworc3RydWN0IFZlcnRleE91dAor
eworICAgIGZsb2F0NCBwb3NpdGlvbiBbW3Bvc2l0aW9uXV07CisgICAgZmxvYXQ0IGNvbG9yOwor
fTsKKwordmVydGV4IFZlcnRleE91dCB2ZXJ0ZXhfbWFpbihWZXJ0ZXhJbiB2ZXJ0ZXhJbiBbW3N0
YWdlX2luXV0pCit7CisgICAgVmVydGV4T3V0IHZPdXQ7CisgICAgdk91dC5wb3NpdGlvbiA9IHZl
cnRleEluLnBvc2l0aW9uOworICAgIHZPdXQuY29sb3IgPSBmbG9hdDQoMSwgMSwgMSwgMC41KTsK
KyAgICByZXR1cm4gdk91dDsKK30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVy
dGV4T3V0IHYgW1tzdGFnZV9pbl1dKQoreworICAgIHJldHVybiB2LmNvbG9yOworfQorYDsKKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0LCBmYWxzZSk7CisKK2FzeW5jIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2Uo
KTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsK
KworICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBj
b2RlOiBzaGFkZXJDb2RlIH0pOworCisgICAgY29uc3QgY29sb3JTdGF0ZXMgPSBbeworICAgICAg
ICBmb3JtYXQ6ICJiZ3JhOHVub3JtIiwKKyAgICAgICAgYWxwaGFCbGVuZDogeworICAgICAgICAg
ICAgc3JjRmFjdG9yOiAib25lIiwKKyAgICAgICAgICAgIGRzdEZhY3RvcjogIm9uZSIsCisgICAg
ICAgICAgICBvcGVyYXRpb246ICJhZGQiCisgICAgICAgIH0sCisgICAgICAgIGNvbG9yQmxlbmQ6
IHsKKyAgICAgICAgICAgIHNyY0ZhY3RvcjogIm9uZSIsCisgICAgICAgICAgICBkc3RGYWN0b3I6
ICJvbmUiLAorICAgICAgICAgICAgb3BlcmF0aW9uOiAiYWRkIgorICAgICAgICB9LAorICAgICAg
ICB3cml0ZU1hc2s6IEdQVUNvbG9yV3JpdGVCaXRzLkdSRUVOIHwgR1BVQ29sb3JXcml0ZUJpdHMu
QUxQSEEKKyAgICB9XTsKKworICAgIGNvbnN0IGlucHV0U3RhdGVEZXNjcmlwdG9yID0geworICAg
ICAgICBpbmRleEZvcm1hdDogInVpbnQzMiIsCisgICAgICAgIGF0dHJpYnV0ZXM6IFt7CisgICAg
ICAgICAgICBzaGFkZXJMb2NhdGlvbjogcG9zaXRpb25BdHRyaWJ1dGVOdW0sCisgICAgICAgICAg
ICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAgICAgICBmb3Jt
YXQ6ICJmbG9hdDQiCisgICAgICAgIH1dLAorICAgICAgICBpbnB1dHM6IFt7CisgICAgICAgICAg
ICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBzdHJpZGU6IDQgKiA0LAorICAgICAgICAgICAg
c3RlcE1vZGU6ICJ2ZXJ0ZXgiCisgICAgICAgIH1dCisgICAgfTsKKworICAgIGNvbnN0IHBpcGVs
aW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgY29sb3JTdGF0
ZXMsIG51bGwsIGlucHV0U3RhdGVEZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IHZlcnRleERhdGEg
PSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgICAgLTEsIDEsIDAsIDEsCisgICAgICAgIC0xLCAt
MSwgMCwgMSwKKyAgICAgICAgMSwgMSwgMCwgMSwKKyAgICAgICAgMSwgLTEsIDAsIDEKKyAgICBd
KTsKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTog
dmVydGV4RGF0YS5ieXRlTGVuZ3RoLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuVkVSVEVYIHwgR1BV
QnVmZmVyVXNhZ2UuVFJBTlNGRVJfRFNUIH0pOworICAgIHZlcnRleEJ1ZmZlci5zZXRTdWJEYXRh
KDAsIHZlcnRleERhdGEuYnVmZmVyKTsKKworICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgiZ3B1Iik7CisgICAgY29uc3Qgc3dhcENoYWluID0gZGV2aWNlLmNyZWF0ZVN3YXBD
aGFpbih7IGNvbnRleHQ6IGNvbnRleHQsIGZvcm1hdDogImJncmE4dW5vcm0iIH0pOworICAgIGNv
bnN0IGNvbG9yQXR0YWNobWVudCA9IHsKKyAgICAgICAgYXR0YWNobWVudDogc3dhcENoYWluLmdl
dEN1cnJlbnRUZXh0dXJlKCkuY3JlYXRlRGVmYXVsdFZpZXcoKSwKKyAgICAgICAgbG9hZE9wOiAi
Y2xlYXIiLAorICAgICAgICBzdG9yZU9wOiAic3RvcmUiLAorICAgICAgICBjbGVhckNvbG9yOiB7
IHI6IDAsIGc6IDEsIGI6IDAsIGE6IDAgfQorICAgIH07CisKKyAgICBjb25zdCBjb21tYW5kRW5j
b2RlciA9IGRldmljZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOworICAgIGNvbnN0IHBhc3NFbmNv
ZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50czog
W2NvbG9yQXR0YWNobWVudF0gfSk7CisgICAgcGFzc0VuY29kZXIuc2V0UGlwZWxpbmUocGlwZWxp
bmUpOworICAgIHBhc3NFbmNvZGVyLnNldFZlcnRleEJ1ZmZlcnMoMCwgW3ZlcnRleEJ1ZmZlcl0s
IFswXSk7CisgICAgcGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAgICBwYXNzRW5jb2Rl
ci5kcmF3KDQsIDEsIDAsIDApOworICAgIHBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKKworICAgIGRl
dmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEVuY29kZXIuZmluaXNoKCldKTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLWNvbW1hbmQtYnVmZmVyLXJhY2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJncHUvYnVmZmVyLWNvbW1hbmQtYnVmZmVyLXJhY2VzLmh0bWwKaW5kZXggM2Vk
YjY0YmFjNzkwMzg4NDgzZWI3MzkyYzc3MTRlMjMyMWZhMjBlYy4uYTNjMWUxM2U1ODQwZDhjZjkw
NmMwYjg5ODBjZTkwNzE3MmFmYzhjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1
ZmZlci1jb21tYW5kLWJ1ZmZlci1yYWNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9i
dWZmZXItY29tbWFuZC1idWZmZXItcmFjZXMuaHRtbApAQCAtOTIsNyArOTIsNyBAQCBhc3luYyBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIC8vIEZJWE1FOiBSZXBsYWNlIHdpdGggbm9uLU1TTCBzaGFk
ZXJzLgogICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUo
eyBjb2RlOiBzaGFkZXJDb2RlIH0pOwogICAgIGNvbnN0IGlucHV0U3RhdGVEZXNjcmlwdG9yID0g
Y3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsKLSAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0
ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIG51bGwsIGlucHV0U3RhdGVEZXNj
cmlwdG9yKTsKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVy
TW9kdWxlLCBkZXZpY2UsIG51bGwsIG51bGwsIGlucHV0U3RhdGVEZXNjcmlwdG9yKTsKIAogICAg
IGNvbnN0IHVwcGVyTGVmdEJ1ZmZlciA9IGNyZWF0ZUFuZFNldFZlcnRleEJ1ZmZlcihkZXZpY2Us
IFstMSwgMSwgLTEsIC0xLCAwLCAxXSk7CiAgICAgY29uc3QgbWlkZGxlQnVmZmVyID0gY3JlYXRl
QW5kU2V0VmVydGV4QnVmZmVyKGRldmljZSwgWzAsIDEsIC0xLCAtMSwgMSwgLTFdKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCmluZGV4
IDYzZmJmM2E5NjVmODhhNWU4YTVmZjEwZmJjNTBkYWM2NWRkYzBhNjkuLjEzNWFkNzVhZDRjZGNh
MGU3YjI0Njc0MTEzMDkyOTY4ZDkwN2JjNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdw
dS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1
L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbApAQCAtMTY1LDcgKzE2NSw3IEBAIGFzeW5j
IGZ1bmN0aW9uIHRlc3QoKSB7CiAKICAgICAvLyBXZWJHUFVQaXBlbGluZUxheW91dCBhbmQgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUKICAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVh
dGVQaXBlbGluZUxheW91dCh7IGJpbmRHcm91cExheW91dHM6IFtsZWZ0VHJpYW5nbGVCR0xheW91
dCwgcmlnaHRUcmlhbmdsZUJHTGF5b3V0XSB9KTsKLSAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0
ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1
dFN0YXRlLCBudWxsLCAidHJpYW5nbGUtbGlzdCIpOworICAgIGNvbnN0IHBpcGVsaW5lID0gY3Jl
YXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgbnVsbCwgcGlwZWxpbmVMYXlv
dXQsIGlucHV0U3RhdGUsIG51bGwsICJ0cmlhbmdsZS1saXN0Iik7CiAKICAgICAvLyBXZWJHUFVC
dWZmZXJCaW5kaW5ncwogICAgIGNvbnN0IGJpbmRpbmdVTCA9IGNyZWF0ZUJ1ZmZlckJpbmRpbmco
dXBwZXJMZWZ0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9kZXB0aC1lbmFibGVk
LXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvZGVwdGgtZW5hYmxlZC10
cmlhbmdsZS1zdHJpcC5odG1sCmluZGV4IDkzNTNiMmNmN2VlZmU0M2NjNTVjYzI3YzkzNTFmYTMy
NzQwMDc0ODYuLjExODk2MGExYjNlMjE0YjI1MzliNGUyOGZiNDZjOTBmMGVmMWU1YTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9kZXB0aC1lbmFibGVkLXRyaWFuZ2xlLXN0cmlwLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2RlcHRoLWVuYWJsZWQtdHJpYW5nbGUtc3RyaXAu
aHRtbApAQCAtODgsNyArODgsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbnN0
IHZlcnRleEJ1ZmZlciA9IGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZpY2UpOwogICAgIGNvbnN0IGlu
cHV0U3RhdGVEZXNjcmlwdG9yID0gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsKICAgICBj
b25zdCBkZXB0aFN0YXRlRGVzY3JpcHRvciA9IGNyZWF0ZUJhc2ljRGVwdGhTdGF0ZURlc2NyaXB0
b3IoKTsKLSAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9k
dWxlLCBkZXZpY2UsIG51bGwsIGlucHV0U3RhdGVEZXNjcmlwdG9yLCBkZXB0aFN0YXRlRGVzY3Jp
cHRvcik7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1v
ZHVsZSwgZGV2aWNlLCBudWxsLCBudWxsLCBpbnB1dFN0YXRlRGVzY3JpcHRvciwgZGVwdGhTdGF0
ZURlc2NyaXB0b3IpOwogICAgIGNvbnN0IGNvbW1hbmRFbmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNv
bW1hbmRFbmNvZGVyKCk7CiAKICAgICBjb25zdCBiYXNpY0F0dGFjaG1lbnQgPSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRl
c3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGM2MDA3ZWQxMWVkODcxYTNj
MTAyYWM0MjJkMmU0MDUwNTRkMDRiNTkuLjM3OTA3MjEwZTFmNTU0NDVkMTg4ZWFmNDc5NDBlM2Ey
MmY1NTVjYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rp
b25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCkBA
IC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUJhc2ljRGVwdGhUZXh0dXJlKGNhbnZhcywg
ZGV2aWNlKSB7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hh
ZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRvciwg
ZGVwdGhTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5ID0gInRyaWFuZ2xlLXN0cmlw
IikgeworZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwg
Y29sb3JTdGF0ZXMsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRvciwgZGVwdGhT
dGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5ID0gInRyaWFuZ2xlLXN0cmlwIikgewog
ICAgIGNvbnN0IHZlcnRleFN0YWdlRGVzY3JpcHRvciA9IHsKICAgICAgICAgbW9kdWxlOiBzaGFk
ZXJNb2R1bGUsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCkBAIC00NSwxMyAr
NDUsMjggQEAgZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmlj
ZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXMKICAgICAgICAgZW50cnlQb2ludDogImZy
YWdtZW50X21haW4iCiAgICAgfTsKIAotICAgIGNvbnN0IGJhc2ljQ29sb3JTdGF0ZSA9IHsgZm9y
bWF0OiAiYmdyYTh1bm9ybSIgfTsKKyAgICBpZiAoIWNvbG9yU3RhdGVzKSB7CisgICAgICAgIGNv
bG9yU3RhdGVzID0gW3sgCisgICAgICAgICAgICBmb3JtYXQ6ICJiZ3JhOHVub3JtIiwKKyAgICAg
ICAgICAgIGFscGhhQmxlbmQ6IHsKKyAgICAgICAgICAgICAgICBzcmNGYWN0b3I6ICJvbmUiLAor
ICAgICAgICAgICAgICAgIGRzdEZhY3RvcjogInplcm8iLAorICAgICAgICAgICAgICAgIG9wZXJh
dGlvbjogImFkZCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjb2xvckJsZW5kOiB7Cisg
ICAgICAgICAgICAgICAgc3JjRmFjdG9yOiAib25lIiwKKyAgICAgICAgICAgICAgICBkc3RGYWN0
b3I6ICJ6ZXJvIiwKKyAgICAgICAgICAgICAgICBvcGVyYXRpb246ICJhZGQiCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgd3JpdGVNYXNrOiBHUFVDb2xvcldyaXRlQml0cy5BTEwKKyAgICAg
ICAgfV07CisgICAgfQogCiAgICAgY29uc3QgcGlwZWxpbmVEZXNjcmlwdG9yID0gewogICAgICAg
ICB2ZXJ0ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBmcmFnbWVudFN0
YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6
IHByaW1pdGl2ZVRvcG9sb2d5LAotICAgICAgICBjb2xvclN0YXRlczogW2Jhc2ljQ29sb3JTdGF0
ZV0KKyAgICAgICAgY29sb3JTdGF0ZXM6IGNvbG9yU3RhdGVzCiAgICAgfTsKIAogICAgIGlmIChw
aXBlbGluZUxheW91dCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlw
ZWxpbmVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCmlu
ZGV4IDk0ZTM2YTVlZjlkZDIyMDZjMzQ2MmFmMGYyODU2NjYzZjM4NDVmZDMuLjdjYzM3YzJmOWIy
MjNkYTY0ZmM5YTAzMTk1Nzk3NzJlYTc1ODA2ZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRl
ci1waXBlbGluZXMuaHRtbApAQCAtNDcsNyArNDcsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4gewogICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBM
YXlvdXQoeyBiaW5kaW5nczogW2xheW91dEJpbmRpbmddIH0pOwogICAgIGNvbnN0IHBpcGVsaW5l
TGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHsgYmluZEdyb3VwTGF5b3V0czog
W2JpbmRHcm91cExheW91dF0gfSk7CiAKLSAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2lj
UGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0KTsKKyAgICBjb25z
dCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIG51
bGwsIHBpcGVsaW5lTGF5b3V0KTsKICAgICBhc3NlcnRfdHJ1ZShwaXBlbGluZSBpbnN0YW5jZW9m
IFdlYkdQVVJlbmRlclBpcGVsaW5lLCAiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgV2ViR1BVUmVuZGVy
UGlwZWxpbmUiKTsKIH0sICJDcmVhdGUgYmFzaWMgV2ViR1BVUmVuZGVyUGlwZWxpbmUiKTsKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUt
c3RyaXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0
bWwKaW5kZXggMmYwNDY5NDU3YWE2YTUwNTNmNGJkMTJlZDVlNmRlZTVmOGI3ZTljOC4uODU0MDM4
Zjg4YWY5ZWMwYjE2MjAxMDlmMTIwYTk4Yzg2Yjc5NDQ3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sCkBAIC0xODUsNyArMTg1LDcgQEAgYXN5
bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRl
QmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwogCiAgICAgLy8gUGlwZWxpbmUgYW5kIHJl
bmRlcgotICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1
bGUsIGRldmljZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXNjcmlwdG9yKTsKKyAgICBj
b25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2Us
IG51bGwsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRlRGVzY3JpcHRvcik7CiAgICAgY29uc3Qg
Y29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsKIAogICAgIGNv
bnN0IGJ1ZmZlckNvcHlWaWV3ID0gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3Zl
cnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0
ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5kZXggMmE1MGMxYWEwMDEwMDViNTFhYmRi
ODllOGYzMTViYmQ3M2VlZmRhNS4uNWM0ZDBlYmQxMDhkNWRmY2Y2ZDBhOWU3ZTYyNmU0Y2RjNWVh
YzU4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5n
bGUtc3RyaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sCkBAIC05MCw3ICs5MCw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNv
ZGU6IHNoYWRlckNvZGUgfSk7CiAgICAgY29uc3QgdmVydGV4QnVmZmVyID0gY3JlYXRlVmVydGV4
QnVmZmVyKGRldmljZSk7CiAgICAgY29uc3QgaW5wdXRTdGF0ZURlc2NyaXB0b3IgPSBjcmVhdGVJ
bnB1dFN0YXRlRGVzY3JpcHRvcigpOwotICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQ
aXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgbnVsbCwgaW5wdXRTdGF0ZURlc2NyaXB0b3Ip
OworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUs
IGRldmljZSwgbnVsbCwgbnVsbCwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpOwogICAgIGNvbnN0IGNv
bW1hbmRFbmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNvbW1hbmRFbmNvZGVyKCk7CiAgICAgY29uc3Qg
cGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhzd2FwQ2hhaW4sIGNvbW1hbmRFbmNv
ZGVyKTsKICAgICBlbmNvZGVCYXNpY0NvbW1hbmRzKHBhc3NFbmNvZGVyLCBwaXBlbGluZSwgdmVy
dGV4QnVmZmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLmh0bWwKaW5kZXggMmI0NjhmNDBlN2UwZjAxZDBhOGJk
ZTFjYTYwYWFlODE3ODJkOGRlNy4uMTQ2MjlkZWVlMzgyYjNiMjk0ZGM1ZGY1MzMzYjVjYjczZGMz
ODA0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLmh0bWwKQEAgLTIzLDggKzIzLDggQEAgYXN5bmMgZnVuY3Rp
b24gc3RhcnQoKSB7CiAgICAgY29uc3QgZnJhZ21lbnRTdGFnZSA9IHttb2R1bGU6IHNoYWRlck1v
ZHVsZSwgZW50cnlQb2ludDogImZyYWdtZW50U2hhZGVyIn07CiAgICAgY29uc3QgcHJpbWl0aXZl
VG9wb2xvZ3kgPSAidHJpYW5nbGUtc3RyaXAiOwogICAgIGNvbnN0IHJhc3Rlcml6YXRpb25TdGF0
ZSA9IHtmcm9udEZhY2U6ICJjdyIsIGN1bGxNb2RlOiAibm9uZSJ9OwotICAgIGNvbnN0IGFscGhh
QmxlbmQgPSB7c3JjRmFjdG9yOiAiemVybyIsIGRzdEZhY3RvcjogIm9uZSIsIG9wZXJhdGlvbjog
ImFkZCJ9OwotICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7c3JjRmFjdG9yOiAiemVybyIsIGRzdEZh
Y3RvcjogIm9uZSIsIG9wZXJhdGlvbjogImFkZCJ9OworICAgIGNvbnN0IGFscGhhQmxlbmQgPSB7
c3JjRmFjdG9yOiAib25lIiwgZHN0RmFjdG9yOiAiemVybyIsIG9wZXJhdGlvbjogImFkZCJ9Owor
ICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7c3JjRmFjdG9yOiAib25lIiwgZHN0RmFjdG9yOiAiemVy
byIsIG9wZXJhdGlvbjogImFkZCJ9OwogICAgIGNvbnN0IGNvbG9yU3RhdGVzID0gW3tmb3JtYXQ6
ICJyZ2JhOHVub3JtIiwgYWxwaGFCbGVuZCwgY29sb3JCbGVuZCwgd3JpdGVNYXNrOiAxNX1dOyAv
LyBHUFVDb2xvcldyaXRlQml0cy5BTEwKICAgICBjb25zdCBkZXB0aFN0ZW5jaWxTdGF0ZSA9IG51
bGw7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366462</attachid>
            <date>2019-04-01 20:07:56 -0700</date>
            <delta_ts>2019-04-02 13:00:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196474-20190401200755.patch</filename>
            <type>text/plain</type>
            <size>45919</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRiMDU4NzJkMDliNGRk
MDAyNWQ5OGM5YmYxNTAxNmVkNzI5Njc3Yi4uOWNjZmQ2NDk2YTBlNjM4NGZhMThjZGNlMjEzNGJi
ZTA2MGUwYzYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA0LTAxICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEltcGxl
bWVudCBibGVuZCBzdGF0ZXMgYW5kIGNvbG9yIHdyaXRlIG1hc2sgZm9yIEdQVUNvbG9yU3RhdGVE
ZXNjcmlwdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTY0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCbGVuZCBzdGF0ZXMgYW5kIGNvbG9yIHdyaXRlIG1hc2tzIG11c3Qgbm93IGJlIHNwZWNpZmll
ZCBvbiBHUFVDb2xvclN0YXRlRGVzY3JpcHRvciBpbnN0ZWFkIG9mIAorICAgICAgICByZWx5aW5n
IG9uIHVuZGVybHlpbmcgTVRMUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9y
IGRlZmF1bHRzLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC5o
dG1sLCB3ZWJncHUvY29sb3Itd3JpdGUtbWFzay10cmlhbmdsZS1zdHJpcC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BV
QmxlbmREZXNjcmlwdG9yLmlkbDogCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQ29sb3JT
dGF0ZURlc2NyaXB0b3IuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yV3Jp
dGVCaXRzLmlkbDogCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmxlbmRE
ZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3Rh
dGVEZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9y
V3JpdGVCaXRzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJl
bmRlclBpcGVsaW5lTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjptdGxDb2xvcldyaXRlTWFz
a0ZvckdQVUNvbG9yV3JpdGVGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjptdGxCbGVuZE9wZXJh
dGlvbkZvckdQVUJsZW5kT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Om10bEJsZW5kRmFj
dG9yRm9yR1BVQmxlbmRGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29sb3JTdGF0ZXNG
b3JDb2xvckF0dGFjaG1lbnRBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjp0cnlDcmVhdGVNdGxS
ZW5kZXJQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNldENvbG9yU3RhdGVz
Rm9yQ29sb3JBdHRhY2htZW50QXJyYXkpOiBEZWxldGVkLgorCiAyMDE5LTA0LTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRo
ZSBTVkcgdGVhciBvZmYgb2JqZWN0cyBmb3IgU1ZHTWF0cml4LCBTVkdUcmFuc2Zyb20sIFNWR1Ry
YW5zZm9ybUxpc3QgYW5kIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBiMjExYWQ1YTFhMjEwMmEyZGMyZjU4ZTlkYzU3ZGM0ZjE4MTVkMWRlLi5iZDEwMzg5
ZjMzZTMxMGU5ZTI0ZTAyOTA1ZTQ4Y2EyZjFmZjkxYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDY1LDExICs0NjUsMTMgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBN
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BV
QmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUJsZW5kRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVCdWZmZXJEZXNjcmlwdG9yLmlkbAogICAg
IE1vZHVsZXMvd2ViZ3B1L0dQVUJ1ZmZlclVzYWdlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQ
VUNhbnZhc0NvbnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29sb3IuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93
ZWJncHUvR1BVQ29sb3JXcml0ZUJpdHMuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVQ29tcGFy
ZUZ1bmN0aW9uLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlRGVz
Y3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVFeHRlbnQzRC5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGMxZThmMzQ4
MTRiMjJjYWQwOTg0MzAzOWQ3YzM0YTM5YmZiOTUwYzAuLjEyNDAwNjFiODZiMTc1MWU0MWRlZTU3
ZDEwMmMzNzdmMWUyYjQyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDExICszMzAsMTMgQEAgJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViZ3B1L0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsCiskKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmdwdS9HUFVCbGVuZERlc2NyaXB0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3dlYmdwdS9HUFVCdWZmZXJEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJncHUvR1BVQnVmZmVyVXNhZ2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmdwdS9HUFVDYW52YXNDb250ZXh0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUv
R1BVQ29sb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvclN0YXRl
RGVzY3JpcHRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yV3Jp
dGVCaXRzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVQ29tcGFyZUZ1bmN0
aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVRGVwdGhTdGVuY2lsU3Rh
dGVEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50
M0QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IGZlZWI2MWVlODA4Nzc1MzAxOGFlYjg4ODBkOGZmMDQzNWJlNzVkYWEuLjViYmUy
YTAwNjU5OTIyNzM4MmVkNjYxNmQwZmUwZTA4MmUwNWFiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01ODcsNiArNTg3LDggQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVCaW5kR3Jv
dXBMYXlvdXRCaW5kaW5nLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUJsZW5kRGVzY3JpcHRvci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQmxlbmREZXNjcmlwdG9yLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQnVmZmVyRGVz
Y3JpcHRvci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR1BVQnVmZmVyRGVzY3JpcHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0dQVUJ1ZmZlclVzYWdlLmNwcApAQCAtNTk3LDYgKzU5OSw4IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQ29sb3IuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbG9y
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQ29s
b3JTdGF0ZURlc2NyaXB0b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVQ29sb3JXcml0ZUJpdHMuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVUNvbG9yV3JpdGVC
aXRzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BV
Q29tcGFyZUZ1bmN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNHUFVDb21wYXJlRnVuY3Rpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxODc0MDJmN2Q2YWNjOTIxMmI1NjVh
NTM2YjMzOTUxNWFlNTI2ZDU1Li4yZTBiNDQ0MDk1NzYzMGEyNTE2MDdlZjJlN2I3NjAzNGNlZTA0
MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3OCw4ICszNzgsMTAgQEAg
SlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQ2Fu
dmFzQ29udGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQ29sb3Iu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlw
dG9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvcldyaXRlQml0
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3VwTGF5b3V0
QmluZGluZy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BV
QmxlbmREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVC
dWZmZXJEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVC
dWZmZXJVc2FnZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVQ29tcGFy
ZUZ1bmN0aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9HUFVCbGVuZERlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
R1BVQmxlbmREZXNjcmlwdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTY3NzgwZTFlMDAyMzFiYzg4MDRi
MjhmNDM2YjE0YzZiZmZkOTVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvR1BVQmxlbmREZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDYyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rl
c2lnbi9za2V0Y2gud2ViaWRsCisKK1sKKyAgICBJbXBsZW1lbnRlZEFzPUdQVUJsZW5kRmFjdG9y
CitdIGVudW0gR1BVQmxlbmRGYWN0b3IgeworICAgICJ6ZXJvIiwKKyAgICAib25lIiwKKyAgICAi
c3JjLWNvbG9yIiwKKyAgICAib25lLW1pbnVzLXNyYy1jb2xvciIsCisgICAgInNyYy1hbHBoYSIs
CisgICAgIm9uZS1taW51cy1zcmMtYWxwaGEiLAorICAgICJkc3QtY29sb3IiLAorICAgICJvbmUt
bWludXMtZHN0LWNvbG9yIiwKKyAgICAiZHN0LWFscGhhIiwKKyAgICAib25lLW1pbnVzLWRzdC1h
bHBoYSIsCisgICAgInNyYy1hbHBoYS1zYXR1cmF0ZWQiLAorICAgICJibGVuZC1jb2xvciIsCisg
ICAgIm9uZS1taW51cy1ibGVuZC1jb2xvciIKK307CisKK1sKKyAgICBJbXBsZW1lbnRlZEFzPUdQ
VUJsZW5kT3BlcmF0aW9uCitdIGVudW0gR1BVQmxlbmRPcGVyYXRpb24geworICAgICJhZGQiLAor
ICAgICJzdWJ0cmFjdCIsCisgICAgInJldmVyc2Utc3VidHJhY3QiLAorICAgICJtaW4iLAorICAg
ICJtYXgiCit9OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgR1BVQmxlbmREZXNjcmlwdG9yIHsKKyAgICBHUFVC
bGVuZEZhY3RvciBzcmNGYWN0b3I7CisgICAgR1BVQmxlbmRGYWN0b3IgZHN0RmFjdG9yOworICAg
IEdQVUJsZW5kT3BlcmF0aW9uIG9wZXJhdGlvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvclN0YXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvclN0YXRlRGVzY3JpcHRvci5pZGwKaW5kZXgg
NjdhZTJlZTNhZmZiYTU1OTY0MzhjZjNmYzUxMzQ2ZTIzZmYxZjViMi4uOGM5NjZkYjUwMDVmNzkx
NTljMTg2Yjc0MDRmOTFjODUwMTk5NGZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmlkbApAQCAtMjQsMTQg
KzI0LDE1IEBACiAgKi8KIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2Iv
bWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCiAKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBHUFVD
b2xvcldyaXRlRmxhZ3M7CisKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJHUFUKIF0gZGljdGlvbmFyeSBHUFVDb2xvclN0YXRlRGVzY3JpcHRvciB7
CiAgICAgR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAKLSAgICAvLyBOb3QgeWV0IGltcGxlbWVu
dGVkLgotICAgIC8vIEdQVUJsZW5kRGVzY3JpcHRvciBhbHBoYUJsZW5kOwotICAgIC8vIEdQVUJs
ZW5kRGVzY3JpcHRvciBjb2xvckJsZW5kOwotICAgIC8vIEdQVUNvbG9yV3JpdGVGbGFncyB3cml0
ZU1hc2s7CisgICAgR1BVQmxlbmREZXNjcmlwdG9yIGFscGhhQmxlbmQ7CisgICAgR1BVQmxlbmRE
ZXNjcmlwdG9yIGNvbG9yQmxlbmQ7CisgICAgR1BVQ29sb3JXcml0ZUZsYWdzIHdyaXRlTWFzazsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvcldy
aXRlQml0cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDb2xvcldyaXRl
Qml0cy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzllMGVmMjZhZWYwMjM0ZDI0YWI1M2FmMmFiMmZkMGRiMjU5
ZjU3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQ
VUNvbG9yV3JpdGVCaXRzLmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBz
Oi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2Vi
aWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBHUFVDb2xv
cldyaXRlQml0cyB7CisgICAgY29uc3QgdTMyIE5PTkUgPSAwOworICAgIGNvbnN0IHUzMiBSRUQg
PSAxOworICAgIGNvbnN0IHUzMiBHUkVFTiA9IDI7CisgICAgY29uc3QgdTMyIEJMVUUgPSA0Owor
ICAgIGNvbnN0IHUzMiBBTFBIQSA9IDg7CisgICAgY29uc3QgdTMyIEFMTCA9IDE1OworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggZWEzOGZkMzAzYzhiZjM4MWE5ZGNmYWYxMTI1ZjcxZmVkOWE4YzYyNi4u
MmQ5ZDNjMWJmMmJiYmY5ZDVlMWRjOTBmZTNkNzU5YWI5NWUzMzE3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTI3MjAsOCArMjcyMCwxMCBAQCBKU0ZvbnRGYWNlU2V0LmNwcAogSlNHUFVDYW52YXNDb250
ZXh0LmNwcAogSlNHUFVDb2xvci5jcHAKIEpTR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuY3BwCitK
U0dQVUNvbG9yV3JpdGVCaXRzLmNwcAogSlNHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmNwcAog
SlNHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcAorSlNHUFVCbGVuZERlc2NyaXB0b3Iu
Y3BwCiBKU0dQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCiBKU0dQVUJ1ZmZlclVzYWdlLmNwcAogSlNH
UFVDb21wYXJlRnVuY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGZkODY3ODcyYzZiNTI4M2Y3NDY5NzE1ZGU2NGMw
YjFlYzQzZjI5Zi4uMmRhYjI0NmMzNzE5ZGU3OGFkNjMxZGFmZThkNTJjMmZlYTIwNjg1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTM5NTcsNiArMTM5NTcsMTAgQEAKIAkJRDBBREIyOEMyMjM3ODQyRTAwQTIyOTM1IC8qIEdQ
VUNvbG9yU3RhdGVEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVDb2xvclN0YXRlRGVzY3JpcHRvci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0
MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcmVhdGVMaW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIw
NTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMEI1NkVBQTIyNEVDNjI0MDA2MTA0OUMgLyogR1BVQmxl
bmREZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJsZW5kRGVzY3JpcHRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEI1NkVBQjIyNEVDNjI0MDA2MTA0OUMgLyogR1BV
QmxlbmREZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVCbGVuZERlc2NyaXB0b3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMEI1NkVBRDIyNEVDRTIwMDA2MTA0OUMgLyogR1BVQ29s
b3JXcml0ZUJpdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQ29sb3JXcml0ZUJpdHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBCNTZFQUUyMjRFQ0UyMDAwNjEwNDlDIC8qIEdQVUNv
bG9yV3JpdGVCaXRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVDb2xvcldyaXRlQml0cy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwQjhCQjAxMjFDNDZFNzgwMDBDNzY4MSAvKiBHUFVCaW5kR3Jv
dXBMYXlvdXRCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJpbmRHcm91cExheW91dEJpbmRp
bmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCQzU0NDgxNDQzQUM0QTAwRTEw
NURBIC8qIENhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMEJENEY1QTE0MDg4NTBGMDA2ODM5QjYgLyogRGljdGF0aW9uQ29tbWFuZElPUy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25Db21tYW5k
SU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjEzLDYgKzE4MjE3LDcg
QEAKIAkJCQlEMEJFMTA0RTIxRTY5NUUyMDBFNDJBODkgLyogR1BVQmluZEdyb3VwQmluZGluZy5o
ICovLAogCQkJCUQwQkUxMDUxMjFFNkE3MEUwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXBEZXNjcmlw
dG9yLmggKi8sCiAJCQkJRDAyNDU0RDAyMUM0QTQxQzAwQjczNjI4IC8qIEdQVUJpbmRHcm91cExh
eW91dC5oICovLAorCQkJCUQwQjU2RUFBMjI0RUM2MjQwMDYxMDQ5QyAvKiBHUFVCbGVuZERlc2Ny
aXB0b3IuaCAqLywKIAkJCQlEMDg0MDMzQTIyMUNCRjU0MDAwMDcyMDUgLyogR1BVQnVmZmVyLmNw
cCAqLywKIAkJCQlEMEQ4NjQ5MjIxQjc2MEYyMDAzQzk4M0MgLyogR1BVQnVmZmVyLmggKi8sCiAJ
CQkJRDBCRTEwNEEyMUU2ODcyRjAwRTQyQTg5IC8qIEdQVUJ1ZmZlckJpbmRpbmcuaCAqLywKQEAg
LTE4MjIwLDYgKzE4MjI1LDcgQEAKIAkJCQlEMDFCODExRDIyMTM2MzZFMDA2MjdCNkMgLyogR1BV
QnVmZmVyVXNhZ2UuaCAqLywKIAkJCQlEMDAxRDlBQjIxQjBDN0JGMDAyM0I5QkMgLyogR1BVQ29s
b3IuaCAqLywKIAkJCQlEMEFEQjI4QjIyMzc4NDJFMDBBMjI5MzUgLyogR1BVQ29sb3JTdGF0ZURl
c2NyaXB0b3IuaCAqLywKKwkJCQlEMEI1NkVBRDIyNEVDRTIwMDA2MTA0OUMgLyogR1BVQ29sb3JX
cml0ZUJpdHMuaCAqLywKIAkJCQkzMTJGRjhCRDIxQTRDMkYxMDBFQjE5OUQgLyogR1BVQ29tbWFu
ZEJ1ZmZlci5oICovLAogCQkJCUQwM0M4NDlDMjFGRkM3RkMwMDAyMjI3RiAvKiBHUFVDb21wYXJl
RnVuY3Rpb24uaCAqLywKIAkJCQlEMDg5MDMzRjIyNDFDRTQ2MDBGM0Y0NDAgLyogR1BVQ29tcHV0
ZVBhc3NFbmNvZGVyLmggKi8sCkBAIC0yNTc3OCw2ICsyNTc4NCw3IEBACiAJCQkJRDBENjlDOUYy
MjJFMDE1RTAwMzI5MjdFIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaWRsICovLAogCQkJ
CUQwRDY5QzlDMjIyRTAwQzIwMDMyOTI3RSAvKiBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmggKi8sCiAJCQkJRDBENjlDOUQyMjJFMDBDMjAwMzI5MjdFIC8qIEdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwQjU2RUFCMjI0RUM2MjQwMDYxMDQ5QyAvKiBHUFVC
bGVuZERlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwMUI4MTE5MjIxMzVFQjkwMDYyN0I2QyAvKiBH
UFVCdWZmZXJEZXNjcmlwdG9yLmlkbCAqLywKIAkJCQlEMDFCODExQzIyMTM2MjczMDA2MjdCNkMg
LyogR1BVQnVmZmVyVXNhZ2UuaWRsICovLAogCQkJCUQwOTNEMjI5MjE3OTU0MTYwMDMyOTIxNyAv
KiBHUFVDYW52YXNDb250ZXh0LmNwcCAqLywKQEAgLTI1Nzg1LDYgKzI1NzkyLDcgQEAKIAkJCQlE
MDkzRDIyNzIxNzk1MUQ0MDAzMjkyMTcgLyogR1BVQ2FudmFzQ29udGV4dC5pZGwgKi8sCiAJCQkJ
RDAxQjgxMTIyMjEyNUFGQzAwNjI3QjZDIC8qIEdQVUNvbG9yLmlkbCAqLywKIAkJCQlEMEFEQjI4
QzIyMzc4NDJFMDBBMjI5MzUgLyogR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IuaWRsICovLAorCQkJ
CUQwQjU2RUFFMjI0RUNFMjAwMDYxMDQ5QyAvKiBHUFVDb2xvcldyaXRlQml0cy5pZGwgKi8sCiAJ
CQkJRDAzQzg0OUUyMUZGQ0YwMDAwMDIyMjdGIC8qIEdQVUNvbXBhcmVGdW5jdGlvbi5pZGwgKi8s
CiAJCQkJRDAzQzg0QTIyMUZGRDcyMzAwMDIyMjdGIC8qIEdQVURlcHRoU3RlbmNpbFN0YXRlRGVz
Y3JpcHRvci5pZGwgKi8sCiAJCQkJRDAyNkY0ODAyMjBBMkI3MDAwQUM1RjQ5IC8qIEdQVUV4dGVu
dDNELmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAppbmRleCAxOTBlNjlmMGU4Yzk0YjRlOGVhY2ExNTlmYmIxOTc1NTFjMzZkMWZi
Li42ODg4NzE0NmE5ZGZmMjRiNmY1ODdiNjMzZDlkNDE3NWUxZTliZjQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC04MywxMSAr
ODMsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXAog
ICAgIG1hY3JvKEdQVUJ1ZmZlclVzYWdlKSBcCiAgICAgbWFjcm8oR1BVQ2FudmFzQ29udGV4dCkg
XAotICAgIG1hY3JvKEdQVVNoYWRlck1vZHVsZSkgXAorICAgIG1hY3JvKEdQVUNvbG9yV3JpdGVC
aXRzKSBcCiAgICAgbWFjcm8oR1BVQ29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKEdQVUNvbW1h
bmRFbmNvZGVyKSBcCiAgICAgbWFjcm8oR1BVQ29tcHV0ZVBhc3NFbmNvZGVyKSBcCiAgICAgbWFj
cm8oR1BVQ29tcHV0ZVBpcGVsaW5lKSBcCisgICAgbWFjcm8oR1BVU2hhZGVyTW9kdWxlKSBcCiAg
ICAgbWFjcm8oR1BVU2hhZGVyU3RhZ2VCaXQpIFwKICAgICBtYWNybyhHUFVTd2FwQ2hhaW4pIFwK
ICAgICBtYWNybyhHUFVUZXh0dXJlVXNhZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCbGVuZERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCbGVuZERlc2NyaXB0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNDEzM2FjMmU5YWNkMTVjMjBjNjFjODAwMDE5ZTliOThiZDVmZDhhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJsZW5kRGVzY3Jp
cHRvci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBHUFVC
bGVuZEZhY3RvciB7CisgICAgWmVybywKKyAgICBPbmUsCisgICAgU3JjQ29sb3IsCisgICAgT25l
TWludXNTcmNDb2xvciwKKyAgICBTcmNBbHBoYSwKKyAgICBPbmVNaW51c1NyY0FscGhhLAorICAg
IERzdENvbG9yLAorICAgIE9uZU1pbnVzRHN0Q29sb3IsCisgICAgRHN0QWxwaGEsCisgICAgT25l
TWludXNEc3RBbHBoYSwKKyAgICBTcmNBbHBoYVNhdHVyYXRlZCwKKyAgICBCbGVuZENvbG9yLAor
ICAgIE9uZU1pbnVzQmxlbmRDb2xvciwKK307CisKK2VudW0gY2xhc3MgR1BVQmxlbmRPcGVyYXRp
b24geworICAgIEFkZCwKKyAgICBTdWJ0cmFjdCwKKyAgICBSZXZlcnNlU3VidHJhY3QsCisgICAg
TWluLAorICAgIE1heCwKK307CisKK3N0cnVjdCBHUFVCbGVuZERlc2NyaXB0b3IgeworICAgIEdQ
VUJsZW5kRmFjdG9yIHNyY0ZhY3RvcjsKKyAgICBHUFVCbGVuZEZhY3RvciBkc3RGYWN0b3I7Cisg
ICAgR1BVQmxlbmRPcGVyYXRpb24gb3BlcmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb2xvclN0YXRlRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9y
LmgKaW5kZXggYmQwN2UzYjBiNTMxYzg3MjY0YjE3M2ZiMzQzNjMxNTljMDk5MmRmOC4uZTAwMTcw
NWQ2M2VhYmZlOGE0MWI2MjgwMzI4YzQ1MzIzMWUzMWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yU3RhdGVEZXNj
cmlwdG9yLmgKQEAgLTI3LDEyICsyNywxOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2lu
Y2x1ZGUgIkdQVUJsZW5kRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVUNvbG9yV3JpdGVCaXRz
LmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZUZvcm1hdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVDb2xvclN0YXRlRGVzY3JpcHRvciB7CiAgICAgR1BVVGV4dHVyZUZvcm1h
dCBmb3JtYXQ7CisKKyAgICBHUFVCbGVuZERlc2NyaXB0b3IgYWxwaGFCbGVuZDsKKyAgICBHUFVC
bGVuZERlc2NyaXB0b3IgY29sb3JCbGVuZDsKKyAgICBHUFVDb2xvcldyaXRlRmxhZ3Mgd3JpdGVN
YXNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yV3JpdGVCaXRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29sb3JXcml0ZUJpdHMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MGFkOTI5ZDQzYzNmNGU4NTNlYjY3MjYxOWVkYjA1YjAzZDIwYjMxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbG9yV3Jp
dGVCaXRzLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgR1BVQ29sb3JXcml0ZUZsYWdzID0gdW5zaWduZWQ7CisK
K2NsYXNzIEdQVUNvbG9yV3JpdGVCaXRzIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29sb3JXcml0
ZUJpdHM+IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIEZsYWdzIDogR1BVQ29sb3JXcml0ZUZs
YWdzIHsKKyAgICAgICAgTm9uZSA9IDAsCisgICAgICAgIFJlZCA9IDEgPDwgMCwKKyAgICAgICAg
R3JlZW4gPSAxIDw8IDEsCisgICAgICAgIEJsdWUgPSAxIDw8IDIsCisgICAgICAgIEFscGhhID0g
MSA8PCAzLAorICAgICAgICBBbGwgPSAoMSA8PCA0KSAtIDEsCisgICAgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlw
ZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IGYzZmM1M2E4ZGFiZjQxNjZjNzk4YTVl
OGFkMjAxOWJkOWQzYzY0NjUuLmZiZTI0NjA3OTg0NmVhMjY1NGE4OWRhNzNkMWJkYmExMWMyMGU2
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW1wb3J0ICJXSExTTFZlcnRleEJ1ZmZlckluZGV4Q2FsY3VsYXRvci5oIgogI2lt
cG9ydCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+
CisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzY3LDEzICszNjgsOTMgQEAgc3RhdGljIGJvb2wgdHJ5
U2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5j
dGlvbk5hbWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgdHJ5U2V0Q29sb3JT
dGF0ZXNGb3JDb2xvckF0dGFjaG1lbnRBcnJheShNVExSZW5kZXJQaXBlbGluZUNvbG9yQXR0YWNo
bWVudERlc2NyaXB0b3JBcnJheSogYXJyYXksIGNvbnN0IFZlY3RvcjxHUFVDb2xvclN0YXRlRGVz
Y3JpcHRvcj4mIGNvbG9yU3RhdGVzKQorc3RhdGljIE1UTENvbG9yV3JpdGVNYXNrIG10bENvbG9y
V3JpdGVNYXNrRm9yR1BVQ29sb3JXcml0ZUZsYWdzKEdQVUNvbG9yV3JpdGVGbGFncyBmbGFncykK
IHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFuZCB2YWxpZGF0ZSB0aGUgcmVzdCBvZiBHUFVD
b2xvclN0YXRlRGVzY3JpcHRvci4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29sb3JT
dGF0ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIFthcnJheVtpXSBzZXRQaXhlbEZvcm1hdDpzdGF0
aWNfY2FzdDxNVExQaXhlbEZvcm1hdD4ocGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9yR1BVVGV4dHVy
ZUZvcm1hdChjb2xvclN0YXRlc1tpXS5mb3JtYXQpKV07CisgICAgaWYgKGZsYWdzID09IHN0YXRp
Y19jYXN0PEdQVUNvbG9yV3JpdGVGbGFncz4oR1BVQ29sb3JXcml0ZUJpdHM6OkZsYWdzOjpBbGwp
KQorICAgICAgICByZXR1cm4gTVRMQ29sb3JXcml0ZU1hc2tBbGw7CisKKyAgICBhdXRvIG9wdGlv
bnMgPSBPcHRpb25TZXQ8R1BVQ29sb3JXcml0ZUJpdHM6OkZsYWdzPjo6ZnJvbVJhdyhmbGFncyk7
CisKKyAgICBNVExDb2xvcldyaXRlTWFzayBtYXNrID0gTVRMQ29sb3JXcml0ZU1hc2tOb25lOwor
ICAgIGlmIChvcHRpb25zICYgR1BVQ29sb3JXcml0ZUJpdHM6OkZsYWdzOjpSZWQpCisgICAgICAg
IG1hc2sgfD0gTVRMQ29sb3JXcml0ZU1hc2tSZWQ7CisgICAgaWYgKG9wdGlvbnMgJiBHUFVDb2xv
cldyaXRlQml0czo6RmxhZ3M6OkdyZWVuKQorICAgICAgICBtYXNrIHw9IE1UTENvbG9yV3JpdGVN
YXNrR3JlZW47CisgICAgaWYgKG9wdGlvbnMgJiBHUFVDb2xvcldyaXRlQml0czo6RmxhZ3M6OkJs
dWUpCisgICAgICAgIG1hc2sgfD0gTVRMQ29sb3JXcml0ZU1hc2tCbHVlOworICAgIGlmIChvcHRp
b25zICYgR1BVQ29sb3JXcml0ZUJpdHM6OkZsYWdzOjpBbHBoYSkKKyAgICAgICAgbWFzayB8PSBN
VExDb2xvcldyaXRlTWFza0FscGhhOworCisgICAgcmV0dXJuIG1hc2s7Cit9CiAKLSAgICByZXR1
cm4gdHJ1ZTsKK3N0YXRpYyBNVExCbGVuZE9wZXJhdGlvbiBtdGxCbGVuZE9wZXJhdGlvbkZvckdQ
VUJsZW5kT3BlcmF0aW9uKEdQVUJsZW5kT3BlcmF0aW9uIG9wKQoreworICAgIHN3aXRjaCAob3Ap
IHsKKyAgICBjYXNlIEdQVUJsZW5kT3BlcmF0aW9uOjpBZGQ6CisgICAgICAgIHJldHVybiBNVExC
bGVuZE9wZXJhdGlvbkFkZDsKKyAgICBjYXNlIEdQVUJsZW5kT3BlcmF0aW9uOjpTdWJ0cmFjdDoK
KyAgICAgICAgcmV0dXJuIE1UTEJsZW5kT3BlcmF0aW9uU3VidHJhY3Q7CisgICAgY2FzZSBHUFVC
bGVuZE9wZXJhdGlvbjo6UmV2ZXJzZVN1YnRyYWN0OgorICAgICAgICByZXR1cm4gTVRMQmxlbmRP
cGVyYXRpb25SZXZlcnNlU3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6TWlu
OgorICAgICAgICByZXR1cm4gTVRMQmxlbmRPcGVyYXRpb25NaW47CisgICAgY2FzZSBHUFVCbGVu
ZE9wZXJhdGlvbjo6TWF4OgorICAgICAgICByZXR1cm4gTVRMQmxlbmRPcGVyYXRpb25NYXg7Cisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBNVExCbGVuZEZh
Y3RvciBtdGxCbGVuZEZhY3RvckZvckdQVUJsZW5kRmFjdG9yKEdQVUJsZW5kRmFjdG9yIGZhY3Rv
cikKK3sKKyAgICBzd2l0Y2ggKGZhY3RvcikgeworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Olpl
cm86CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvclplcm87CisgICAgY2FzZSBHUFVCbGVu
ZEZhY3Rvcjo6T25lOgorICAgICAgICByZXR1cm4gTVRMQmxlbmRGYWN0b3JPbmU7CisgICAgY2Fz
ZSBHUFVCbGVuZEZhY3Rvcjo6U3JjQ29sb3I6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rv
clNvdXJjZUNvbG9yOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjQ29sb3I6
CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvck9uZU1pbnVzU291cmNlQ29sb3I7CisgICAg
Y2FzZSBHUFVCbGVuZEZhY3Rvcjo6U3JjQWxwaGE6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZh
Y3RvclNvdXJjZUFscGhhOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjQWxw
aGE6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvck9uZU1pbnVzU291cmNlQWxwaGE7Cisg
ICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6RHN0Q29sb3I6CisgICAgICAgIHJldHVybiBNVExCbGVu
ZEZhY3RvckRlc3RpbmF0aW9uQ29sb3I7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6T25lTWlu
dXNEc3RDb2xvcjoKKyAgICAgICAgcmV0dXJuIE1UTEJsZW5kRmFjdG9yT25lTWludXNEZXN0aW5h
dGlvbkNvbG9yOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6OkRzdEFscGhhOgorICAgICAgICBy
ZXR1cm4gTVRMQmxlbmRGYWN0b3JEZXN0aW5hdGlvbkFscGhhOworICAgIGNhc2UgR1BVQmxlbmRG
YWN0b3I6Ok9uZU1pbnVzRHN0QWxwaGE6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvck9u
ZU1pbnVzRGVzdGluYXRpb25BbHBoYTsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpTcmNBbHBo
YVNhdHVyYXRlZDoKKyAgICAgICAgcmV0dXJuIE1UTEJsZW5kRmFjdG9yU291cmNlQWxwaGE7Cisg
ICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6QmxlbmRDb2xvcjoKKyAgICAgICAgcmV0dXJuIE1UTEJs
ZW5kRmFjdG9yQmxlbmRDb2xvcjsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpPbmVNaW51c0Js
ZW5kQ29sb3I6CisgICAgICAgIHJldHVybiBNVExCbGVuZEZhY3Rvck9uZU1pbnVzQmxlbmRDb2xv
cjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIHZvaWQg
c2V0Q29sb3JTdGF0ZXNGb3JDb2xvckF0dGFjaG1lbnRBcnJheShNVExSZW5kZXJQaXBlbGluZUNv
bG9yQXR0YWNobWVudERlc2NyaXB0b3JBcnJheSogYXJyYXksIGNvbnN0IFZlY3RvcjxHUFVDb2xv
clN0YXRlRGVzY3JpcHRvcj4mIGNvbG9yU3RhdGVzKQoreworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBjb2xvclN0YXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBzdGF0ZSA9
IGNvbG9yU3RhdGVzW2ldOworICAgICAgICBhdXRvIGRlc2NyaXB0b3IgPSByZXRhaW5QdHIoW2Fy
cmF5IG9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDppXSk7CisgICAgICAgIFtkZXNjcmlwdG9yIHNl
dFBpeGVsRm9ybWF0OnN0YXRpY19jYXN0PE1UTFBpeGVsRm9ybWF0PihwbGF0Zm9ybVRleHR1cmVG
b3JtYXRGb3JHUFVUZXh0dXJlRm9ybWF0KHN0YXRlLmZvcm1hdCkpXTsKKyAgICAgICAgW2Rlc2Ny
aXB0b3Igc2V0V3JpdGVNYXNrOm10bENvbG9yV3JpdGVNYXNrRm9yR1BVQ29sb3JXcml0ZUZsYWdz
KHN0YXRlLndyaXRlTWFzayldOworICAgICAgICBbZGVzY3JpcHRvciBzZXRCbGVuZGluZ0VuYWJs
ZWQ6WUVTXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0QWxwaGFCbGVuZE9wZXJhdGlvbjptdGxC
bGVuZE9wZXJhdGlvbkZvckdQVUJsZW5kT3BlcmF0aW9uKHN0YXRlLmFscGhhQmxlbmQub3BlcmF0
aW9uKV07CisgICAgICAgIFtkZXNjcmlwdG9yIHNldFJnYkJsZW5kT3BlcmF0aW9uOm10bEJsZW5k
T3BlcmF0aW9uRm9yR1BVQmxlbmRPcGVyYXRpb24oc3RhdGUuY29sb3JCbGVuZC5vcGVyYXRpb24p
XTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0RGVzdGluYXRpb25BbHBoYUJsZW5kRmFjdG9yOm10
bEJsZW5kRmFjdG9yRm9yR1BVQmxlbmRGYWN0b3Ioc3RhdGUuYWxwaGFCbGVuZC5kc3RGYWN0b3Ip
XTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0RGVzdGluYXRpb25SR0JCbGVuZEZhY3RvcjptdGxC
bGVuZEZhY3RvckZvckdQVUJsZW5kRmFjdG9yKHN0YXRlLmNvbG9yQmxlbmQuZHN0RmFjdG9yKV07
CisgICAgICAgIFtkZXNjcmlwdG9yIHNldFNvdXJjZUFscGhhQmxlbmRGYWN0b3I6bXRsQmxlbmRG
YWN0b3JGb3JHUFVCbGVuZEZhY3RvcihzdGF0ZS5hbHBoYUJsZW5kLnNyY0ZhY3RvcildOworICAg
ICAgICBbZGVzY3JpcHRvciBzZXRTb3VyY2VSR0JCbGVuZEZhY3RvcjptdGxCbGVuZEZhY3RvckZv
ckdQVUJsZW5kRmFjdG9yKHN0YXRlLmNvbG9yQmxlbmQuc3JjRmFjdG9yKV07CisgICAgfQogfQog
CiBzdGF0aWMgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHRyeUNyZWF0ZU10bFJl
bmRlclBpcGVsaW5lU3RhdGUoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYg
ZGV2aWNlKQpAQCAtMzkxLDE3ICs0NzIsMTcgQEAgc3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQ
aXBlbGluZVN0YXRlPiB0cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0YXRlKGNvbnN0IGMKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYm9vbCBkaWRTZXRGdW5jdGlvbnMg
PSBmYWxzZSwgZGlkU2V0SW5wdXRTdGF0ZSA9IGZhbHNlLCBkaWRTZXRDb2xvclN0YXRlcyA9IGZh
bHNlOworICAgIGJvb2wgZGlkU2V0RnVuY3Rpb25zID0gZmFsc2UsIGRpZFNldElucHV0U3RhdGUg
PSBmYWxzZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGRpZFNl
dEZ1bmN0aW9ucyA9IHRyeVNldEZ1bmN0aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlv
bk5hbWUsIG10bERlc2NyaXB0b3IuZ2V0KCksIGRlc2NyaXB0b3IsIGRldmljZSk7CiAgICAgZGlk
U2V0SW5wdXRTdGF0ZSA9IHRyeVNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoZnVu
Y3Rpb25OYW1lLCBtdGxEZXNjcmlwdG9yLmdldCgpLCBkZXNjcmlwdG9yLmlucHV0U3RhdGUpOwot
ICAgIGRpZFNldENvbG9yU3RhdGVzID0gdHJ5U2V0Q29sb3JTdGF0ZXNGb3JDb2xvckF0dGFjaG1l
bnRBcnJheShtdGxEZXNjcmlwdG9yLmdldCgpLmNvbG9yQXR0YWNobWVudHMsIGRlc2NyaXB0b3Iu
Y29sb3JTdGF0ZXMpOworICAgIHNldENvbG9yU3RhdGVzRm9yQ29sb3JBdHRhY2htZW50QXJyYXko
bXRsRGVzY3JpcHRvci5nZXQoKS5jb2xvckF0dGFjaG1lbnRzLCBkZXNjcmlwdG9yLmNvbG9yU3Rh
dGVzKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBpZiAoIWRpZFNl
dEZ1bmN0aW9ucyB8fCAhZGlkU2V0SW5wdXRTdGF0ZSB8fCAhZGlkU2V0Q29sb3JTdGF0ZXMpCisg
ICAgaWYgKCFkaWRTZXRGdW5jdGlvbnMgfHwgIWRpZFNldElucHV0U3RhdGUpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHBp
cGVsaW5lOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDE1YmJhNTQ4YmZhOWI1ODBkOTA2ZWExZWM3ZWIzZjAxMGIxNTFlMjEu
LmU0MGQ1ZThhM2Y4NGEwNDFhMjRkOTkxOTUzMjZjNThkZjRhYzlhYzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNiBAQAorMjAxOS0wNC0wMSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWIgR1BVXSBJbXBsZW1lbnQgYmxlbmQgc3RhdGVzIGFuZCBjb2xvciB3cml0
ZSBtYXNrIGZvciAgR1BVQ29sb3JTdGF0ZURlc2NyaXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBibGVuZC10cmlhbmdsZS1zdHJpcCB0byB0
ZXN0IGNvbG9yIGJsZW5kaW5nIGFuZCBjb2xvci13cml0ZS1tYXNrLXRyaWFuZ2xlLXN0cmlwLmh0
bWwgdG8gdGVzdCBjb2xvciB3cml0ZSBtYXNrLgorICAgICAgICBVcGRhdGUgb3RoZXIgdGVzdHMg
dG8gc3BlY2lmeSBibGVuZCBzdGF0ZXMgd2hlbiBjcmVhdGluZyBhIEdQVVJlbmRlclBpcGVsaW5l
LgorCisgICAgICAgICogd2ViZ3B1L2JsZW5kLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJncHUvYnVmZmVyLWNvbW1hbmQtYnVmZmVyLXJhY2VzLmh0bWw6Cisg
ICAgICAgICogd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbDoKKyAgICAgICAg
KiB3ZWJncHUvY29sb3Itd3JpdGUtbWFzay10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvY29sb3Itd3JpdGUtbWFzay10cmlhbmdsZS1zdHJpcC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvZGVwdGgtZW5hYmxlZC10cmlhbmdsZS1zdHJp
cC5odG1sOgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOgorICAgICAg
ICAqIHdlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3RleHR1
cmUtdHJpYW5nbGUtc3RyaXAuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvdmVydGV4LWJ1ZmZlci10
cmlhbmdsZS1zdHJpcC5odG1sOgorICAgICAgICAqIHdlYmdwdS93aGxzbC5odG1sOgorCiAyMDE5
LTA0LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHRoZSBTVkcgdGVhciBvZmYgb2JqZWN0cyBmb3IgU1ZHTWF0cml4LCBTVkdU
cmFuc2Zyb20sIFNWR1RyYW5zZm9ybUxpc3QgYW5kIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLXRyaWFuZ2xlLXN0cmlwLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmxlbmQtdHJpYW5nbGUtc3RyaXAtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ODZmMTNlODEyMDM5N2E1Y2M2MzM2YzllMmE0ODVlNzc4YmE5
OTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLXRyaWFuZ2xl
LXN0cmlwLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SFRNTCBSZWZlcmVuY2UgRmlsZTwvdGl0bGU+
Cis8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+
Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citj
b25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAn
cmdiKDAsIDI1NSwgMCknOworY29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJncHUvYmxlbmQtdHJpYW5nbGUtc3RyaXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzY3YzJlYjlmMmUwOWZjYjVjYjNkNWY4NzQyMTNkZDZmMDY4MDVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTAsMCAr
MSwxMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdQVSBIZWxsbyBUcmlhbmdsZXM8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJXZWJHUFUgY29ycmVjdGx5IHJlbmRlcnMgYSBncmVlbiBjYW52YXMuIj4KKzxsaW5rIHJl
bD0ibWF0Y2giIGhyZWY9ImJsZW5kLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwiPgorPHA+
UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNh
bnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0IHNyYz0ianMv
d2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitjb25zdCBwb3NpdGlv
bkF0dHJpYnV0ZU51bSA9IDA7CisKK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0
YWxfc3RkbGliPgorICAgIAordXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4
SW4KK3sKKyAgICBmbG9hdDQgcG9zaXRpb24gW1thdHRyaWJ1dGUoJHtwb3NpdGlvbkF0dHJpYnV0
ZU51bX0pXV07Cit9OworCitzdHJ1Y3QgVmVydGV4T3V0Cit7CisgICAgZmxvYXQ0IHBvc2l0aW9u
IFtbcG9zaXRpb25dXTsKKyAgICBmbG9hdDQgY29sb3I7Cit9OworCit2ZXJ0ZXggVmVydGV4T3V0
IHZlcnRleF9tYWluKFZlcnRleEluIHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKK3sKKyAgICBWZXJ0
ZXhPdXQgdk91dDsKKyAgICB2T3V0LnBvc2l0aW9uID0gdmVydGV4SW4ucG9zaXRpb247CisgICAg
dk91dC5jb2xvciA9IGZsb2F0NCgwLCAwLjUsIDAsIDAuNSk7CisgICAgcmV0dXJuIHZPdXQ7Cit9
CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZlcnRleE91dCB2IFtbc3RhZ2VfaW5d
XSkKK3sKKyAgICByZXR1cm4gdi5jb2xvcjsKK30KK2A7CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgdGVzdCwgZmFsc2UpOworCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CisgICAgY29uc3QgY2FudmFz
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CisKKyAgICBjb25zdCBzaGFkZXJN
b2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsK
KworICAgIGNvbnN0IGNvbG9yU3RhdGVzID0gW3sKKyAgICAgICAgZm9ybWF0OiAiYmdyYTh1bm9y
bSIsCisgICAgICAgIGFscGhhQmxlbmQ6IHsKKyAgICAgICAgICAgIHNyY0ZhY3RvcjogIm9uZSIs
CisgICAgICAgICAgICBkc3RGYWN0b3I6ICJvbmUiLAorICAgICAgICAgICAgb3BlcmF0aW9uOiAi
YWRkIgorICAgICAgICB9LAorICAgICAgICBjb2xvckJsZW5kOiB7CisgICAgICAgICAgICBzcmNG
YWN0b3I6ICJvbmUiLAorICAgICAgICAgICAgZHN0RmFjdG9yOiAib25lIiwKKyAgICAgICAgICAg
IG9wZXJhdGlvbjogImFkZCIKKyAgICAgICAgfSwKKyAgICAgICAgd3JpdGVNYXNrOiBHUFVDb2xv
cldyaXRlQml0cy5BTEwKKyAgICB9XTsKKworICAgIGNvbnN0IGlucHV0U3RhdGVEZXNjcmlwdG9y
ID0geworICAgICAgICBpbmRleEZvcm1hdDogInVpbnQzMiIsCisgICAgICAgIGF0dHJpYnV0ZXM6
IFt7CisgICAgICAgICAgICBzaGFkZXJMb2NhdGlvbjogcG9zaXRpb25BdHRyaWJ1dGVOdW0sCisg
ICAgICAgICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAg
ICAgICBmb3JtYXQ6ICJmbG9hdDQiCisgICAgICAgIH1dLAorICAgICAgICBpbnB1dHM6IFt7Cisg
ICAgICAgICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBzdHJpZGU6IDQgKiA0LAorICAg
ICAgICAgICAgc3RlcE1vZGU6ICJ2ZXJ0ZXgiCisgICAgICAgIH1dCisgICAgfTsKKworICAgIGNv
bnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwg
Y29sb3JTdGF0ZXMsIG51bGwsIGlucHV0U3RhdGVEZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IHZl
cnRleERhdGEgPSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgICAgLTEsIDEsIDAsIDEsCisgICAg
ICAgIC0xLCAtMSwgMCwgMSwKKyAgICAgICAgMSwgMSwgMCwgMSwKKyAgICAgICAgMSwgLTEsIDAs
IDEKKyAgICBdKTsKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVy
KHsgc2l6ZTogdmVydGV4RGF0YS5ieXRlTGVuZ3RoLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuVkVS
VEVYIHwgR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfRFNUIH0pOworICAgIHZlcnRleEJ1ZmZlci5z
ZXRTdWJEYXRhKDAsIHZlcnRleERhdGEuYnVmZmVyKTsKKworICAgIGNvbnN0IGNvbnRleHQgPSBj
YW52YXMuZ2V0Q29udGV4dCgiZ3B1Iik7CisgICAgY29uc3Qgc3dhcENoYWluID0gZGV2aWNlLmNy
ZWF0ZVN3YXBDaGFpbih7IGNvbnRleHQ6IGNvbnRleHQsIGZvcm1hdDogImJncmE4dW5vcm0iIH0p
OworICAgIGNvbnN0IGNvbG9yQXR0YWNobWVudCA9IHsKKyAgICAgICAgYXR0YWNobWVudDogc3dh
cENoYWluLmdldEN1cnJlbnRUZXh0dXJlKCkuY3JlYXRlRGVmYXVsdFZpZXcoKSwKKyAgICAgICAg
bG9hZE9wOiAiY2xlYXIiLAorICAgICAgICBzdG9yZU9wOiAic3RvcmUiLAorICAgICAgICBjbGVh
ckNvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDAsIGE6IDAgfQorICAgIH07CisKKyAgICBjb25zdCBj
b21tYW5kRW5jb2RlciA9IGRldmljZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOworICAgIGNvbnN0
IHBhc3NFbmNvZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRh
Y2htZW50czogW2NvbG9yQXR0YWNobWVudF0gfSk7CisgICAgcGFzc0VuY29kZXIuc2V0UGlwZWxp
bmUocGlwZWxpbmUpOworICAgIHBhc3NFbmNvZGVyLnNldFZlcnRleEJ1ZmZlcnMoMCwgW3ZlcnRl
eEJ1ZmZlcl0sIFswXSk7CisgICAgcGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAgICBw
YXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOworICAgIHBhc3NFbmNvZGVyLmVuZFBhc3MoKTsK
KworICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEVuY29kZXIuZmluaXNoKCld
KTsKKworICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7IAorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9KTsKK30KKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItY29tbWFuZC1idWZmZXItcmFjZXMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItY29tbWFuZC1idWZmZXItcmFjZXMuaHRtbAppbmRl
eCAzZWRiNjRiYWM3OTAzODg0ODNlYjczOTJjNzcxNGUyMzIxZmEyMGVjLi5hM2MxZTEzZTU4NDBk
OGNmOTA2YzBiODk4MGNlOTA3MTcyYWZjOGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJn
cHUvYnVmZmVyLWNvbW1hbmQtYnVmZmVyLXJhY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L2J1ZmZlci1jb21tYW5kLWJ1ZmZlci1yYWNlcy5odG1sCkBAIC05Miw3ICs5Miw3IEBAIGFz
eW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNM
IHNoYWRlcnMuCiAgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1v
ZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUgfSk7CiAgICAgY29uc3QgaW5wdXRTdGF0ZURlc2NyaXB0
b3IgPSBjcmVhdGVJbnB1dFN0YXRlRGVzY3JpcHRvcigpOwotICAgIGNvbnN0IHBpcGVsaW5lID0g
Y3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgbnVsbCwgaW5wdXRTdGF0
ZURlc2NyaXB0b3IpOworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShz
aGFkZXJNb2R1bGUsIGRldmljZSwgbnVsbCwgbnVsbCwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpOwog
CiAgICAgY29uc3QgdXBwZXJMZWZ0QnVmZmVyID0gY3JlYXRlQW5kU2V0VmVydGV4QnVmZmVyKGRl
dmljZSwgWy0xLCAxLCAtMSwgLTEsIDAsIDFdKTsKICAgICBjb25zdCBtaWRkbGVCdWZmZXIgPSBj
cmVhdGVBbmRTZXRWZXJ0ZXhCdWZmZXIoZGV2aWNlLCBbMCwgMSwgLTEsIC0xLCAxLCAtMV0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9idWZmZXItcmVzb3VyY2UtdHJpYW5nbGVzLmh0bWwK
aW5kZXggNjNmYmYzYTk2NWY4OGE1ZThhNWZmMTBmYmM1MGRhYzY1ZGRjMGE2OS4uMTM1YWQ3NWFk
NGNkY2EwZTdiMjQ2NzQxMTMwOTI5NjhkOTA3YmM1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L2J1ZmZlci1yZXNvdXJjZS10cmlhbmdsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJncHUvYnVmZmVyLXJlc291cmNlLXRyaWFuZ2xlcy5odG1sCkBAIC0xNjUsNyArMTY1LDcgQEAg
YXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGFu
ZCBXZWJHUFVSZW5kZXJQaXBlbGluZQogICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNl
LmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHsgYmluZEdyb3VwTGF5b3V0czogW2xlZnRUcmlhbmdsZUJH
TGF5b3V0LCByaWdodFRyaWFuZ2xlQkdMYXlvdXRdIH0pOwotICAgIGNvbnN0IHBpcGVsaW5lID0g
Y3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxpbmVMYXlvdXQs
IGlucHV0U3RhdGUsIG51bGwsICJ0cmlhbmdsZS1saXN0Iik7CisgICAgY29uc3QgcGlwZWxpbmUg
PSBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBudWxsLCBwaXBlbGlu
ZUxheW91dCwgaW5wdXRTdGF0ZSwgbnVsbCwgInRyaWFuZ2xlLWxpc3QiKTsKIAogICAgIC8vIFdl
YkdQVUJ1ZmZlckJpbmRpbmdzCiAgICAgY29uc3QgYmluZGluZ1VMID0gY3JlYXRlQnVmZmVyQmlu
ZGluZyh1cHBlckxlZnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbG9yLXdy
aXRlLW1hc2stdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdw
dS9jb2xvci13cml0ZS1tYXNrLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODg2ZjEzZTgxMjAzOTdhNWNjNjMzNmM5ZTJhNDg1ZTc3OGJhOTkzMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb2xvci13cml0ZS1tYXNrLXRyaWFuZ2xlLXN0cmlw
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SFRNTCBSZWZlcmVuY2UgRmlsZTwvdGl0bGU+Cis8cD5Q
YXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+Cis8Y2Fu
dmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBj
YW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAs
IDI1NSwgMCknOworY29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5o
ZWlnaHQpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2NvbG9yLXdyaXRlLW1hc2stdHJpYW5nbGUtc3RyaXAuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdwdS9jb2xvci13cml0ZS1tYXNrLXRyaWFuZ2xlLXN0cmlwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjE3ZjAwZjZhMjVjNmFiNTJhMzAxYmI0YWQ5YzQyMDk0YzEzYzQ3YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9jb2xvci13cml0ZS1tYXNrLXRy
aWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+
Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBh
IGdyZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iY29sb3Itd3JpdGUtbWFz
ay10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZh
cyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVp
Z2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworY29uc3Qgc2hhZGVyQ29kZSA9IGAKKyNpbmNsdWRlIDxt
ZXRhbF9zdGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0YWw7CisKK3N0cnVjdCBWZXJ0
ZXgKK3sKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlvbl1dOworfTsKKwordmVydGV4IFZl
cnRleCB2ZXJ0ZXhfbWFpbih1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQoreworICAgIFZlcnRleCB2
OworICAgIHN3aXRjaCAodmlkKSB7CisgICAgY2FzZSAwOgorICAgICAgICB2LnBvc2l0aW9uID0g
ZmxvYXQ0KC0xLCAxLCAwLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAg
ICB2LnBvc2l0aW9uID0gZmxvYXQ0KC0xLCAtMSwgMCwgMSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgMjoKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgxLCAxLCAwLCAxKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgxLCAt
MSwgMCwgMSk7CisgICAgfQorICAgIHJldHVybiB2OworfQorCitmcmFnbWVudCBmbG9hdDQgZnJh
Z21lbnRfbWFpbigpCit7CisgICAgcmV0dXJuIGZsb2F0NCgxLCAxLCAxLCAxKTsKK30KK2AKKwor
YXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNp
Y0RldmljZSgpOworICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNh
bnZhcyIpOworICAgIGNvbnN0IHN3YXBDaGFpbiA9IGNyZWF0ZUJhc2ljU3dhcENoYWluKGNhbnZh
cywgZGV2aWNlKTsKKyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVy
TW9kdWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKKyAgICBjb25zdCBjb2xvclN0YXRlcyA9IFt7
CisgICAgICAgIGZvcm1hdDogImJncmE4dW5vcm0iLAorICAgICAgICBhbHBoYUJsZW5kOiB7Cisg
ICAgICAgICAgICBzcmNGYWN0b3I6ICJvbmUiLAorICAgICAgICAgICAgZHN0RmFjdG9yOiAiemVy
byIsCisgICAgICAgICAgICBvcGVyYXRpb246ICJhZGQiCisgICAgICAgIH0sCisgICAgICAgIGNv
bG9yQmxlbmQ6IHsKKyAgICAgICAgICAgIHNyY0ZhY3RvcjogIm9uZSIsCisgICAgICAgICAgICBk
c3RGYWN0b3I6ICJ6ZXJvIiwKKyAgICAgICAgICAgIG9wZXJhdGlvbjogImFkZCIKKyAgICAgICAg
fSwKKyAgICAgICAgd3JpdGVNYXNrOiBHUFVDb2xvcldyaXRlQml0cy5HUkVFTiB8IEdQVUNvbG9y
V3JpdGVCaXRzLkFMUEhBCisgICAgfV07CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNp
Y1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBjb2xvclN0YXRlcyk7CisgICAgY29uc3Qg
Y29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsKKyAgICBjb25z
dCBjb2xvckF0dGFjaG1lbnQgPSB7CisgICAgICAgIGF0dGFjaG1lbnQ6IHN3YXBDaGFpbi5nZXRD
dXJyZW50VGV4dHVyZSgpLmNyZWF0ZURlZmF1bHRWaWV3KCksCisgICAgICAgIGxvYWRPcDogImNs
ZWFyIiwKKyAgICAgICAgc3RvcmVPcDogInN0b3JlIiwKKyAgICAgICAgY2xlYXJDb2xvcjogeyBy
OiAwLCBnOiAwLCBiOiAwLCBhOiAwIH0KKyAgICB9OworICAgIGNvbnN0IHBhc3NFbmNvZGVyID0g
Y29tbWFuZEVuY29kZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50czogW2NvbG9y
QXR0YWNobWVudF0gfSk7CisgICAgZW5jb2RlQmFzaWNDb21tYW5kcyhwYXNzRW5jb2RlciwgcGlw
ZWxpbmUpOworICAgIGNvbnN0IHF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CisKKyAgICBxdWV1
ZS5zdWJtaXQoW2NvbW1hbmRFbmNvZGVyLmZpbmlzaCgpXSk7CisKKyAgICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4geyAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSk7Cit9CisKK3Rlc3QoKTsKKzwv
c2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdwdS9kZXB0aC1lbmFibGVkLXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJncHUvZGVwdGgtZW5hYmxlZC10cmlhbmdsZS1zdHJpcC5odG1sCmluZGV4IDkzNTNiMmNm
N2VlZmU0M2NjNTVjYzI3YzkzNTFmYTMyNzQwMDc0ODYuLjExODk2MGExYjNlMjE0YjI1MzliNGUy
OGZiNDZjOTBmMGVmMWU1YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9kZXB0aC1l
bmFibGVkLXRyaWFuZ2xlLXN0cmlwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2RlcHRo
LWVuYWJsZWQtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtODgsNyArODgsNyBAQCBhc3luYyBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIGNvbnN0IHZlcnRleEJ1ZmZlciA9IGNyZWF0ZVZlcnRleEJ1ZmZl
cihkZXZpY2UpOwogICAgIGNvbnN0IGlucHV0U3RhdGVEZXNjcmlwdG9yID0gY3JlYXRlSW5wdXRT
dGF0ZURlc2NyaXB0b3IoKTsKICAgICBjb25zdCBkZXB0aFN0YXRlRGVzY3JpcHRvciA9IGNyZWF0
ZUJhc2ljRGVwdGhTdGF0ZURlc2NyaXB0b3IoKTsKLSAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0
ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIG51bGwsIGlucHV0U3RhdGVEZXNj
cmlwdG9yLCBkZXB0aFN0YXRlRGVzY3JpcHRvcik7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVh
dGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBudWxsLCBudWxsLCBpbnB1dFN0
YXRlRGVzY3JpcHRvciwgZGVwdGhTdGF0ZURlc2NyaXB0b3IpOwogICAgIGNvbnN0IGNvbW1hbmRF
bmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNvbW1hbmRFbmNvZGVyKCk7CiAKICAgICBjb25zdCBiYXNp
Y0F0dGFjaG1lbnQgPSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpz
CmluZGV4IGM2MDA3ZWQxMWVkODcxYTNjMTAyYWM0MjJkMmU0MDUwNTRkMDRiNTkuLjM3OTA3MjEw
ZTFmNTU0NDVkMTg4ZWFmNDc5NDBlM2EyMmY1NTVjYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9q
cy93ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUJh
c2ljRGVwdGhUZXh0dXJlKGNhbnZhcywgZGV2aWNlKSB7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9u
IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBpcGVsaW5lTGF5b3V0
LCBpbnB1dFN0YXRlRGVzY3JpcHRvciwgZGVwdGhTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRv
cG9sb2d5ID0gInRyaWFuZ2xlLXN0cmlwIikgeworZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGlu
ZShzaGFkZXJNb2R1bGUsIGRldmljZSwgY29sb3JTdGF0ZXMsIHBpcGVsaW5lTGF5b3V0LCBpbnB1
dFN0YXRlRGVzY3JpcHRvciwgZGVwdGhTdGF0ZURlc2NyaXB0b3IsIHByaW1pdGl2ZVRvcG9sb2d5
ID0gInRyaWFuZ2xlLXN0cmlwIikgewogICAgIGNvbnN0IHZlcnRleFN0YWdlRGVzY3JpcHRvciA9
IHsKICAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJ2
ZXJ0ZXhfbWFpbiIgCkBAIC00NSwxMyArNDUsMjggQEAgZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBl
bGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0U3RhdGVEZXMK
ICAgICAgICAgZW50cnlQb2ludDogImZyYWdtZW50X21haW4iCiAgICAgfTsKIAotICAgIGNvbnN0
IGJhc2ljQ29sb3JTdGF0ZSA9IHsgZm9ybWF0OiAiYmdyYTh1bm9ybSIgfTsKKyAgICBpZiAoIWNv
bG9yU3RhdGVzKSB7CisgICAgICAgIGNvbG9yU3RhdGVzID0gW3sgCisgICAgICAgICAgICBmb3Jt
YXQ6ICJiZ3JhOHVub3JtIiwKKyAgICAgICAgICAgIGFscGhhQmxlbmQ6IHsKKyAgICAgICAgICAg
ICAgICBzcmNGYWN0b3I6ICJvbmUiLAorICAgICAgICAgICAgICAgIGRzdEZhY3RvcjogInplcm8i
LAorICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogImFkZCIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBjb2xvckJsZW5kOiB7CisgICAgICAgICAgICAgICAgc3JjRmFjdG9yOiAib25lIiwK
KyAgICAgICAgICAgICAgICBkc3RGYWN0b3I6ICJ6ZXJvIiwKKyAgICAgICAgICAgICAgICBvcGVy
YXRpb246ICJhZGQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgd3JpdGVNYXNrOiBHUFVD
b2xvcldyaXRlQml0cy5BTEwKKyAgICAgICAgfV07CisgICAgfQogCiAgICAgY29uc3QgcGlwZWxp
bmVEZXNjcmlwdG9yID0gewogICAgICAgICB2ZXJ0ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlw
dG9yLAogICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAg
ICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6IHByaW1pdGl2ZVRvcG9sb2d5LAotICAgICAgICBjb2xv
clN0YXRlczogW2Jhc2ljQ29sb3JTdGF0ZV0KKyAgICAgICAgY29sb3JTdGF0ZXM6IGNvbG9yU3Rh
dGVzCiAgICAgfTsKIAogICAgIGlmIChwaXBlbGluZUxheW91dCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUv
cmVuZGVyLXBpcGVsaW5lcy5odG1sCmluZGV4IDk0ZTM2YTVlZjlkZDIyMDZjMzQ2MmFmMGYyODU2
NjYzZjM4NDVmZDMuLjdjYzM3YzJmOWIyMjNkYTY0ZmM5YTAzMTk1Nzk3NzJlYTc1ODA2ZmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbApAQCAtNDcsNyArNDcsNyBA
QCBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9
IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2xheW91dEJpbmRpbmdd
IH0pOwogICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5
b3V0KHsgYmluZEdyb3VwTGF5b3V0czogW2JpbmRHcm91cExheW91dF0gfSk7CiAKLSAgICBjb25z
dCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIHBp
cGVsaW5lTGF5b3V0KTsKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUo
c2hhZGVyTW9kdWxlLCBkZXZpY2UsIG51bGwsIHBpcGVsaW5lTGF5b3V0KTsKICAgICBhc3NlcnRf
dHJ1ZShwaXBlbGluZSBpbnN0YW5jZW9mIFdlYkdQVVJlbmRlclBpcGVsaW5lLCAiU3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQgV2ViR1BVUmVuZGVyUGlwZWxpbmUiKTsKIH0sICJDcmVhdGUgYmFzaWMgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS90
ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5kZXggMmYwNDY5NDU3YWE2YTUwNTNmNGJkMTJl
ZDVlNmRlZTVmOGI3ZTljOC4uODU0MDM4Zjg4YWY5ZWMwYjE2MjAxMDlmMTIwYTk4Yzg2Yjc5NDQ3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1s
CkBAIC0xODUsNyArMTg1LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBjb25zdCBi
aW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwog
CiAgICAgLy8gUGlwZWxpbmUgYW5kIHJlbmRlcgotICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRl
QmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgcGlwZWxpbmVMYXlvdXQsIGlucHV0
U3RhdGVEZXNjcmlwdG9yKTsKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxp
bmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIG51bGwsIHBpcGVsaW5lTGF5b3V0LCBpbnB1dFN0YXRl
RGVzY3JpcHRvcik7CiAgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29t
bWFuZEVuY29kZXIoKTsKIAogICAgIGNvbnN0IGJ1ZmZlckNvcHlWaWV3ID0gewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5k
ZXggMmE1MGMxYWEwMDEwMDViNTFhYmRiODllOGYzMTViYmQ3M2VlZmRhNS4uNWM0ZDBlYmQxMDhk
NWRmY2Y2ZDBhOWU3ZTYyNmU0Y2RjNWVhYzU4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sCkBAIC05MCw3ICs5MCw3IEBA
IGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNl
LmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNvZGUgfSk7CiAgICAgY29uc3QgdmVy
dGV4QnVmZmVyID0gY3JlYXRlVmVydGV4QnVmZmVyKGRldmljZSk7CiAgICAgY29uc3QgaW5wdXRT
dGF0ZURlc2NyaXB0b3IgPSBjcmVhdGVJbnB1dFN0YXRlRGVzY3JpcHRvcigpOwotICAgIGNvbnN0
IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgbnVs
bCwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpOworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFz
aWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgbnVsbCwgbnVsbCwgaW5wdXRTdGF0ZURl
c2NyaXB0b3IpOwogICAgIGNvbnN0IGNvbW1hbmRFbmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNvbW1h
bmRFbmNvZGVyKCk7CiAgICAgY29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFz
cyhzd2FwQ2hhaW4sIGNvbW1hbmRFbmNvZGVyKTsKICAgICBlbmNvZGVCYXNpY0NvbW1hbmRzKHBh
c3NFbmNvZGVyLCBwaXBlbGluZSwgdmVydGV4QnVmZmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdwdS93aGxzbC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLmh0bWwKaW5k
ZXggMmI0NjhmNDBlN2UwZjAxZDBhOGJkZTFjYTYwYWFlODE3ODJkOGRlNy4uMTQ2MjlkZWVlMzgy
YjNiMjk0ZGM1ZGY1MzMzYjVjYjczZGMzODA0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLmh0bWwKQEAgLTIz
LDggKzIzLDggQEAgYXN5bmMgZnVuY3Rpb24gc3RhcnQoKSB7CiAgICAgY29uc3QgZnJhZ21lbnRT
dGFnZSA9IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2ludDogImZyYWdtZW50U2hhZGVy
In07CiAgICAgY29uc3QgcHJpbWl0aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGUtc3RyaXAiOwogICAg
IGNvbnN0IHJhc3Rlcml6YXRpb25TdGF0ZSA9IHtmcm9udEZhY2U6ICJjdyIsIGN1bGxNb2RlOiAi
bm9uZSJ9OwotICAgIGNvbnN0IGFscGhhQmxlbmQgPSB7c3JjRmFjdG9yOiAiemVybyIsIGRzdEZh
Y3RvcjogIm9uZSIsIG9wZXJhdGlvbjogImFkZCJ9OwotICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7
c3JjRmFjdG9yOiAiemVybyIsIGRzdEZhY3RvcjogIm9uZSIsIG9wZXJhdGlvbjogImFkZCJ9Owor
ICAgIGNvbnN0IGFscGhhQmxlbmQgPSB7c3JjRmFjdG9yOiAib25lIiwgZHN0RmFjdG9yOiAiemVy
byIsIG9wZXJhdGlvbjogImFkZCJ9OworICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7c3JjRmFjdG9y
OiAib25lIiwgZHN0RmFjdG9yOiAiemVybyIsIG9wZXJhdGlvbjogImFkZCJ9OwogICAgIGNvbnN0
IGNvbG9yU3RhdGVzID0gW3tmb3JtYXQ6ICJyZ2JhOHVub3JtIiwgYWxwaGFCbGVuZCwgY29sb3JC
bGVuZCwgd3JpdGVNYXNrOiAxNX1dOyAvLyBHUFVDb2xvcldyaXRlQml0cy5BTEwKICAgICBjb25z
dCBkZXB0aFN0ZW5jaWxTdGF0ZSA9IG51bGw7CiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>