<?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>222530</bug_id>
          
          <creation_ts>2021-02-28 13:49:46 -0800</creation_ts>
          <short_desc>Add experimental support for CSS Color 5 color-contrast()</short_desc>
          <delta_ts>2022-05-21 09:48:05 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223458</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>nimajneb0905</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734299</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-28 13:49:46 -0800</bug_when>
    <thetext>Let&apos;s add experimental support for CSS Color 5 color-contrast() - https://drafts.csswg.org/css-color-5/#colorcontrast.

Because the spec doesn&apos;t seem quite finished, we should keep this behind an experimental feature flag for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734301</commentid>
    <comment_count>1</comment_count>
      <attachid>421781</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-28 14:09:56 -0800</bug_when>
    <thetext>Created attachment 421781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734321</commentid>
    <comment_count>2</comment_count>
      <attachid>421787</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-28 18:16:41 -0800</bug_when>
    <thetext>Created attachment 421787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734431</commentid>
    <comment_count>3</comment_count>
      <attachid>421829</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-01 08:41:41 -0800</bug_when>
    <thetext>Created attachment 421829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734553</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-01 12:57:02 -0800</bug_when>
    <thetext>Committed r273683: &lt;https://commits.webkit.org/r273683&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421829.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734554</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 12:58:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74886031&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421781</attachid>
            <date>2021-02-28 14:09:56 -0800</date>
            <delta_ts>2021-02-28 18:16:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222530-20210228140955.patch</filename>
            <type>text/plain</type>
            <size>40491</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENTUyBD
b2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorICAgICAgICBBZGQgbmV3IGV4cGVyaW1lbnRhbCBwcmVmZXJlbmNlIGZv
ciBDU1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpCisgICAgICAgIHdoaWNoIGlzIG9mZiBieSBk
ZWZhdWx0LgorCiAyMDIxLTAyLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291cDMgdmVyc2lvbiB0byAy
Ljk5LjEKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShyZXZpc2lvbiAyNzM2MzMp
CisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMywxOCBAQCBDRk5ldHdvcmtO
ZXR3b3JrTG9hZGVyRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQog
CitDU1NDb2xvckNvbnRyYXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIkNTUyBjb2xvci1jb250cmFzdCgpIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJFbmFibGUgc3VwcG9ydCBmb3IgQ1NTIGNvbG9yLWNvbnRyYXN0KCkgZGVmaW5lZCBpbiBDU1Mg
Q29sb3IgNSIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ1NTQ29sb3JNaXhFbmFibGVkOgogICB0eXBlOiBi
b29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIGNvbG9yLW1peCgpIgpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjczNjM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsODggQEAKKzIwMjEtMDItMjggIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgQ1NTIENv
bG9yIDUgY29sb3ItY29udHJhc3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIG9mZiBieSBkZWZhdWx0IGFuZCBjYW4gYmUg
ZW5hYmxlZCB2aWEgdGhlIENTU0NvbG9yQ29udHJhc3RFbmFibGVkCisgICAgICAgIGV4cGVyaW1l
bnRhbCBwcmVmZXJlbmNlIGZsYWcuCisKKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBoYXMg
dGhlIHNhbWUgcmVzdHJpY3Rpb24gb24gaXQgdGhhdCB0aGUgcmVjZW50bHkgbGFuZGVkCisgICAg
ICAgIFJlbGF0aXZlIENvbG9yIFN5bnRheCBhbmQgY29sb3ItbWl4KCkgZG8sIGluIHRoYXQgaXQg
ZG9lcyBzdXBwb3J0IHN5c3RlbSBjb2xvcnMKKyAgICAgICAgb3IgY3VycmVudENvbG9yIGFzIGlu
cHV0LCBzaW5jZSB0aG9zZSBjYW4ndCBiZSByZXNvbHZlZCBhdCBwYXJzZSB0aW1lLiBVbHRpbWF0
ZWx5LAorICAgICAgICB3ZSB3aWxsIG5lZWQgdG8gYWRkIGEgbGF0ZSBiaW5kaW5nIHZlcnNpb24g
b2YgdGhpcyBmb3IgdGhvc2UgY2FzZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2lu
Zy1jb2xvci1jb250cmFzdC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBD
b2xvckx1bWluYW5jZS5oIGhlYWRlciB3aGVyZSB0aGUgZ2VuZXJpYyByZWxhdGl2ZSBsdW1pbmFu
Y2UgYW5kIGNvbnRyYXN0IHJhdGlvCisgICAgICAgIGZ1bmN0aW9ucyBsaXZlLgorCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCBuZXcga2V5d29yZHMsIGNv
bG9yLWNvbnRyYXN0IGFuZCB2cywgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUgY29sb3ItY29udHJh
c3QoKSBmdW5jdGlvbi4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHA6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6CisgICAgICAgIEFk
ZCBhIHNldHRpbmcgZm9yIGNvbG9yLWNvbnRyYXN0LgorCisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVu
Y3Rpb24pOgorICAgICAgICBBZGQgcGFyc2luZyBhbmQgY29tcHV0YXRpb24gb2YgY29sb3ItY29u
dHJhc3QoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxpZ2h0bmVzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpsdW1pbmFuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udHJhc3RSYXRp
byk6IERlbGV0ZWQuCisgICAgICAgIE1vdmVkIGx1bWluYW5jZSByZWxhdGVkIGZ1bmN0aW9ucyB0
byBDb2xvckx1bWluYW5jZS5oIGFuZCBpbmxpbmVkIGxpZ2h0bmVzcworICAgICAgICB0byBpdHMg
b25lIGNhbGxlciwgQ29sb3IgYW5kIG5vdGVkIGl0IHNob3VsZCBiZSByZW1vdmVkLgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOgorICAgICAgICAo
V2ViQ29yZTo6aW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOiBEZWxldGVkLgorICAg
ICAgICBGaXggY2FwaXRhbGl6YXRpb24gaXNzdWUgc2Vlbi4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVy
cmlkZGVuQWxwaGEgLT4gaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xv
cjo6bGlnaHRuZXNzIGNvbnN0KToKKyAgICAgICAgSW5saW5lIGltcGxlbWVudGF0aW9uIGFuZCBh
ZGQgY29tbWVudCBleHBsYWluaW5nIGl0IHNob3VsZCBiZSByZW1vdmVkLgorCisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6bHVtaW5hbmNlIGNvbnN0KToKKyAgICAgICAgUmUtd3JpdGUgdG8gdXNl
IHRoZSBuZXcgV2ViQ29yZTo6cmVsYXRpdmVMdW1pbmFuY2UgdGhhdCB3b3JrcyBmb3IgYW55IGNv
bG9yIHR5cGUKKyAgICAgICAgd2l0aG91dCBjb252ZXJzaW9uIHRvIHNSR0IuCisKKyAgICAgICAg
KFdlYkNvcmU6OkNvbG9yOjpjb250cmFzdFJhdGlvKToKKyAgICAgICAgQWRkIGhlbHBlciB0byBj
YWxsIGdlbmVyaWMgV2ViQ29yZTo6Y29udHJhc3RSYXRpbyB0aGF0IHdvcmtzIG9uIGFueSBjb2xv
ciB0eXBlcworICAgICAgICB0byBhdm9pZCBjYWxsZXJzIG5lZWRpbmcgdG8gZG8gdGhlIHVuZm9s
ZGluZyB0aGVtc2VsdmVzLgorIAorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxhY2tDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxh
Y2tDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9y
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVzZSByYXJlIGZ1bmN0aW9ucyBvdXQgb2YgbGlu
ZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBwbGFjZXMgaW4gdGhlIGhlYWRlciB3ZSBhcmUKKyAg
ICAgICAgY2FsbGluZyBjYWxsT25VbmRlcmx5aW5nVHlwZSgpLCB3aGljaCBwcm9kdWNlcyBjb2Rl
IGxpbmVyYWxseSB3aXRoIHRoZSBudW1iZXIgb2YgY29sb3Igc3BhY2VzCisgICAgICAgIHN1cHBv
cnRlZC4gQ2FsbGluZyBpdCBpbiB0aGUgY3BwIGZpbGVzIG1lYW5zIHdlIG9ubHkgZXhwYW5kIGl0
IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJlbGF0aXZlTHVtaW5h
bmNlKToKKyAgICAgICAgVGhpcyBpcyBhIGdlbmVyaWMgdmVyc2lvbiBvZiB0aGUgb2xkIGx1bWlu
YW5jZSBmdW5jdGlvbiB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZQorICAgICAgICBieSBj
b252ZXJ0aW5nIHRvIFhZWiBhbmQgdGFraW5nIHRoZSBZIGNvbXBvbmVudC4gVGhlIG9sZCBmdW5j
dGlvbiByZXF1aXJlZCBhbHdheXMKKyAgICAgICAgY29udmVydGluZyB0byBzUkdCIHdoaWNoIGNv
dWxkIGJlIGxvc3N5LgorCisgICAgICAgIChXZWJDb3JlOjpjb250cmFzdFJhdGlvKToKKyAgICAg
ICAgU3BsaXQgb3V0IGNvbXB1dGF0aW9uIG9mIGNvbnRyYXN0UmF0aW8gYmFzZWQgb24gcmVsYXRp
dmUgbHVtaW5hY2UgZmxvYXRzIGludG8gaXRzIG93bgorICAgICAgICBmdW5jdGlvbiBzbyB0aGF0
IGlmIHdlIGhhdmUgdGhlIHJlbGF0aXZlIGx1bWluYW5jZSBjb21wdXRlZCBhbHJlYWR5LCB3ZSBk
b24ndCBoYXZlIHRvCisgICAgICAgIHJlY29tcHV0ZSBpdC4gQWRkIHZlcnNpb24gY29udHJhc3RS
YXRpbyB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZSB1dGlsaXppbmcgdGhlCisgICAgICAg
IGdlbmVyaWMgcmVsYXRpdmVMdW1pbmFuY2UgZnVuY3Rpb24gYWJvdmUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OmRpc2FibGVkVGV4dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJh
Y2tncm91bmRDb2xvcik6CisgICAgICAgIFVwZGF0ZSB0byB1c2UgbmV3IENvbG9yOjpjb250cmFz
dFJhdGlvIGhlbHBlciB0aGF0IGhhbmRsZXMgYWxsIGNvbG9yIHR5cGVzLgorCiAyMDIxLTAyLTI4
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZWR1Y2Ug
dXNlIG9mIHJldGFpbi9yZWxlYXNlIGluIFdBS1dpbmRvdyBhbmQgcmVtb3ZlIHVubmVlZGVkIG1l
dGhvZHMgZnJvbSB0aGF0IGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI3
MzYzMykKKysrIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTExNjYsNiArMTE2Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNo
LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckx1bWluYW5jZS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JNYXRyaXguaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTW9kZWxz
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjczNjMzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcyLDYgKzM5NzIsNyBAQAogCQlCQzQ5MThD
NzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYg
LyogSlNIVE1MRnJhbWVFbGVtZW50LmggKi87IH07CiAJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMx
NiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1l
RWxlbWVudC5oICovOyB9OwogCQlCQzQ5MUI3OTBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
OyB9OworCQlCQzRBMjNFQzI1RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEEyM0VCMjVFQzE2
MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNEE1MzIzMjU2MDUyNzYwMDI4QzU5MiAvKiBFZGl0
YWJsZUxpbmtCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8qIEVkaXRhYmxlTGlua0JlaGF2aW9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM0
QTUzMjUyNTYwNTU1RjAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkM0QTUzMjcyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1
MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MDM0LDYg
KzE0MDM1LDcgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8q
IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTIzRUIyNUVDMTYwMjAwQUFDNjMw
IC8qIENvbG9yTHVtaW5hbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yTHVtaW5hbmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBF
ZGl0YWJsZUxpbmtCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0YWJsZUxpbmtCZWhhdmlv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRBNTMyNDI1NjA1NTU5MDAyOEM1
OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjU5LDYgKzI2NjYx
LDcgQEAKIAkJCQkzMTAzQjdERTFEQjAxNTU2MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggKi8sCiAJ
CQkJN0NBQzZBRTgyNDdGMDgyMDAwRTYxRDU5IC8qIENvbG9yTWF0cml4LmggKi8sCiAJCQkJQkMx
MDEzN0IyNUMzNjI0QjAwREM3NzNDIC8qIENvbG9yTW9kZWxzLmggKi8sCisJCQkJQkM0QTIzRUIy
NUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5hbmNlLmggKi8sCiAJCQkJN0NEMUU2OTIyNEFC
RjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEy
NEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5oICovLAogCQkJCUJDQUZFREFG
MjU5NjZEMDUwMDMwRTZBQSAvKiBDb2xvclNwYWNlLmNwcCAqLywKQEAgLTMxMTQ1LDggKzMxMTQ4
LDYgQEAKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTGVnYWN5TW9ja0NETS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50
RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyog
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwNThBREMx
RDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTA1
OEFERTFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE1N0VCRkIxRTNBQjY3RjAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ2RjNFOTExQzFFQ0IyRjAwNjFEQkQ0IC8q
IE1vY2tQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgxOURENDE0MDAw
MUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3
Miw2ICszMTg3Myw3IEBACiAJCQkJQTg4MkRBMjMxNTkzODQ4RDAwMDExNUVEIC8qIENTU1RvU3R5
bGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNUFENzIxMjA1MDUxM0YwMEQ1OTJEQyAvKiBD
U1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0Uw
RDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEEyM0VD
MjVFQzE2MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2QjcwN0EyMzdCQzM2RDAwNTJDQTQ3IC8qIENTU1VuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShy
ZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQzNCw2ICsxNDM0LDEwIEBAIHByb3Bob3RvLXJnYgogLy8g
c1JHQgogeHl6CiAKKy8vIGNvbG9yLWNvbnRhc3QoKQorY29sb3ItY29udHJhc3QKK3ZzCisKIC8v
IGNvbG9yLW1peCgpCiBjb2xvci1taXgKIHNob3J0ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMjczNjMzKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0
KGNvbnN0CiAgICAgLCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgc2hlZXRCYXNlVVJMLmlz
TnVsbCgpIHx8IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChiYXNlVVJMKSB9
CiAgICAgLCB1c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQu
cGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZSB9CiAgICAgLCBhc3BlY3RSYXRp
b0VuYWJsZWQgeyBkb2N1bWVudC5zZXR0aW5ncygpLmFzcGVjdFJhdGlvRW5hYmxlZCgpIH0KKyAg
ICAsIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvckNv
bnRyYXN0RW5hYmxlZCgpIH0KICAgICAsIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGRvY3VtZW50LnNl
dHRpbmdzKCkuY29sb3JGaWx0ZXJFbmFibGVkKCkgfQogICAgICwgY29sb3JNaXhFbmFibGVkIHsg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvck1peEVuYWJsZWQoKSB9CiAgICAgLCBjb25zdGFu
dFByb3BlcnRpZXNFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jb25zdGFudFByb3BlcnRp
ZXNFbmFibGVkKCkgfQpAQCAtMTA2LDYgKzEwNyw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiAKICAgICAgICAgJiYgYS5pc0NvbnRlbnRPcGFxdWUgPT0gYi5pc0Nv
bnRlbnRPcGFxdWUKICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lz
dGVtQXBwZWFyYW5jZQogICAgICAgICAmJiBhLmFzcGVjdFJhdGlvRW5hYmxlZCA9PSBiLmFzcGVj
dFJhdGlvRW5hYmxlZAorICAgICAgICAmJiBhLmNvbG9yQ29udHJhc3RFbmFibGVkID09IGIuY29s
b3JDb250cmFzdEVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvckZpbHRlckVuYWJsZWQgPT0gYi5j
b2xvckZpbHRlckVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvck1peEVuYWJsZWQgPT0gYi5jb2xv
ck1peEVuYWJsZWQKICAgICAgICAgJiYgYS5jb25zdGFudFByb3BlcnRpZXNFbmFibGVkID09IGIu
Y29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmgJKHJldmlzaW9uIDI3MzYzMykKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNldHRpbmdzLgogICAgIGJvb2wgYXNwZWN0UmF0
aW9FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBj
b2xvck1peEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uc3RhbnRQcm9wZXJ0aWVzRW5h
YmxlZCB7IGZhbHNlIH07CkBAIC0xMDksMzEgKzExMCwzMiBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29u
dGV4dEhhc2ggewogICAgICAgICAgICAgJiBrZXkuaXNDb250ZW50T3BhcXVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgMgogICAgICAgICAgICAgJiBrZXkudXNlU3lzdGVtQXBwZWFyYW5j
ZSAgICAgICAgICAgICAgICAgICAgICAgPDwgMwogICAgICAgICAgICAgJiBrZXkuYXNwZWN0UmF0
aW9FbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNAotICAgICAgICAgICAgJiBrZXku
Y29sb3JGaWx0ZXJFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNQotICAgICAgICAg
ICAgJiBrZXkuY29sb3JNaXhFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNgot
ICAgICAgICAgICAgJiBrZXkuY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCAgICAgICAgICAgICAg
ICAgPDwgNwotICAgICAgICAgICAgJiBrZXkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkICAgICAg
ICAgICAgICAgICAgPDwgOAotICAgICAgICAgICAgJiBrZXkuZW5mb3JjZXNDU1NNSU1FVHlwZUlu
Tm9RdWlya3NNb2RlICAgICAgICAgPDwgOQotICAgICAgICAgICAgJiBrZXkuaW5kaXZpZHVhbFRy
YW5zZm9ybVByb3BlcnRpZXNFbmFibGVkICAgICAgPDwgMTAKKyAgICAgICAgICAgICYga2V5LmNv
bG9yQ29udHJhc3RFbmFibGVkICAgICAgICAgICAgICAgICAgICAgIDw8IDUKKyAgICAgICAgICAg
ICYga2V5LmNvbG9yRmlsdGVyRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgIDw8IDYKKyAg
ICAgICAgICAgICYga2V5LmNvbG9yTWl4RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDcKKyAgICAgICAgICAgICYga2V5LmNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgICAgICAg
ICAgICAgICAgIDw8IDgKKyAgICAgICAgICAgICYga2V5LmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCAgICAgICAgICAgICAgICAgIDw8IDkKKyAgICAgICAgICAgICYga2V5LmVuZm9yY2VzQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSAgICAgICAgIDw8IDEwCisgICAgICAgICAgICAmIGtleS5pbmRp
dmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQgICAgICA8PCAxMQogI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0gICAgICAgICAgICAmIGtleS5sZWdhY3lPdmVyZmxv
d1Njcm9sbGluZ1RvdWNoRW5hYmxlZCAgICAgICA8PCAxMQorICAgICAgICAgICAgJiBrZXkubGVn
YWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaEVuYWJsZWQgICAgICAgPDwgMTIKICNlbmRpZgotICAg
ICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
PDwgMTIKLSAgICAgICAgICAgICYga2V5LnJlbGF0aXZlQ29sb3JTeW50YXhFbmFibGVkICAgICAg
ICAgICAgICAgIDw8IDEzCi0gICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhhdmlvckVuYWJsZWQg
ICAgICAgICAgICAgICAgICAgICA8PCAxNAotICAgICAgICAgICAgJiBrZXkuc3ByaW5nVGltaW5n
RnVuY3Rpb25FbmFibGVkICAgICAgICAgICAgICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5Lm92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEzCisgICAgICAgICAg
ICAmIGtleS5yZWxhdGl2ZUNvbG9yU3ludGF4RW5hYmxlZCAgICAgICAgICAgICAgICA8PCAxNAor
ICAgICAgICAgICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5LnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCAg
ICAgICAgICAgICAgIDw8IDE2CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSAgICAgICAg
ICAgICYga2V5LnRleHRBdXRvc2l6aW5nRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDE2
CisgICAgICAgICAgICAmIGtleS50ZXh0QXV0b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAg
ICAgICA8PCAxNwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19UUkFOU0ZPUk1fU1RZTEVfT1BUSU1J
WkVEXzNEKQotICAgICAgICAgICAgJiBrZXkudHJhbnNmb3JtU3R5bGVPcHRpbWl6ZWQzREVuYWJs
ZWQgICAgICAgICAgPDwgMTcKKyAgICAgICAgICAgICYga2V5LnRyYW5zZm9ybVN0eWxlT3B0aW1p
emVkM0RFbmFibGVkICAgICAgICAgIDw8IDE4CiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5LnVz
ZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgIDw8IDE4Ci0gICAgICAgICAg
ICAmIGtleS5mb2N1c1Zpc2libGVFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICA8PCAxOQor
ICAgICAgICAgICAgJiBrZXkudXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlv
ciAgPDwgMTkKKyAgICAgICAgICAgICYga2V5LmZvY3VzVmlzaWJsZUVuYWJsZWQgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDIwCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAg
ICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDIwCisgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAyMQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAyMTsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAg
ICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAyMjsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJp
dHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZp
c2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJDU1NQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRl
ICJDb2xvckNvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJDb2xvckx1bWluYW5jZS5oIgogI2luY2x1
ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVDb2xvci5oIgpAQCAtMTQ4Miw2ICsxNDgzLDQ5IEBAIHN0YXRpYyBDb2xvciBwYXJz
ZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXIKICAgICByZXR1cm4gY29sb3I7CiB9CiAKK3N0YXRpYyBD
b2xvciBwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgQVNT
RVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xvckNvbnRyYXN0KTsK
KworICAgIGlmICghY29udGV4dC5jb2xvckNvbnRyYXN0RW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBh
dXRvIG9yaWdpbkJhY2tncm91bmRDb2xvciA9IGNvbnN1bWVPcmlnaW5Db2xvcihhcmdzLCBjb250
ZXh0KTsKKyAgICBpZiAoIW9yaWdpbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoIWNvbnN1bWVJZGVudFJhdzxDU1NWYWx1ZVZzPihhcmdz
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3RvcjxDb2xvcj4gY29sb3JzVG9Db21w
YXJlQWdhaW5zdDsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gY29sb3JUb0NvbXBhcmVBZ2FpbnN0
ID0gY29uc3VtZU9yaWdpbkNvbG9yKGFyZ3MsIGNvbnRleHQpOworICAgICAgICBpZiAoIWNvbG9y
VG9Db21wYXJlQWdhaW5zdC5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisg
ICAgICAgIGNvbG9yc1RvQ29tcGFyZUFnYWluc3QuYXBwZW5kKFdURk1vdmUoY29sb3JUb0NvbXBh
cmVBZ2FpbnN0KSk7CisgICAgfSB3aGlsZSAoY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFj
ZShhcmdzKSk7CisKKyAgICBpZiAoY29sb3JzVG9Db21wYXJlQWdhaW5zdC5zaXplKCkgPT0gMSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gb3JpZ2luQmFja2dyb3VuZENvbG9yTHVt
aW5hbmNlID0gb3JpZ2luQmFja2dyb3VuZENvbG9yLmx1bWluYW5jZSgpOworCisgICAgc2l6ZV90
IGluZGV4T2ZDb2xvcldpdGhIaWdlc3RDb250cmFzdFJhdGlvID0gMDsKKyAgICBmbG9hdCBoaWdo
ZXN0Q29udHJhc3RSYXRpb1NvRmFyID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNv
bG9yc1RvQ29tcGFyZUFnYWluc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byBjb250cmFz
dFJhdGlvID0gV2ViQ29yZTo6Y29udHJhc3RSYXRpbyhvcmlnaW5CYWNrZ3JvdW5kQ29sb3JMdW1p
bmFuY2UsIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaV0ubHVtaW5hbmNlKCkpOworICAgICAgICBp
ZiAoY29udHJhc3RSYXRpbyA+IGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIpIHsKKyAgICAgICAg
ICAgIGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIgPSBjb250cmFzdFJhdGlvOworICAgICAgICAg
ICAgaW5kZXhPZkNvbG9yV2l0aEhpZ2VzdENvbnRyYXN0UmF0aW8gPSBpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaW5kZXhPZkNvbG9yV2l0
aEhpZ2VzdENvbnRyYXN0UmF0aW9dOworfQorCiBzdHJ1Y3QgSHVlQ29sb3JBZGp1c3RlciB7CiAg
ICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAgU2hvcnRlciwKQEAgLTE5MjUsNiArMTk2OSw5
IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENT
U1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUNvbG9yQ29u
dHJhc3Q6CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckNvbnRyYXN0RnVuY3Rpb25QYXJhbWV0
ZXJzKGNvbG9yUmFuZ2UsIGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Zh
bHVlQ29sb3JNaXg6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvck1peEZ1bmN0aW9uUGFyYW1l
dGVycyhjb2xvclJhbmdlLCBjb250ZXh0KTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xv
ci5oIgogCisjaW5jbHVkZSAiQ29sb3JMdW1pbmFuY2UuaCIKICNpbmNsdWRlICJDb2xvclNlcmlh
bGl6YXRpb24uaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xMTEs
MTUgKzExMSwyNiBAQCBDb2xvciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogCiBmbG9hdCBDb2xv
cjo6bGlnaHRuZXNzKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkg
YXZvaWQgY29udmVyc2lvbiB0byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0
aG1zIGZvciBIU0wuCi0gICAgcmV0dXJuIFdlYkNvcmU6OmxpZ2h0bmVzcyh0b1NSR0JBTG9zc3k8
ZmxvYXQ+KCkpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHJlbWFpbmluZyB1c2VzIHdpdGggbHVt
aW5hbmNlLgorICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gdG9TUkdCQUxvc3N5PGZsb2F0PigpOwor
ICAgIGF1dG8gW21pbiwgbWF4XSA9IHN0ZDo6bWlubWF4KHsgciwgZywgYiB9KTsKKyAgICByZXR1
cm4gMC41ZiAqIChtYXggKyBtaW4pOwogfQogCiBmbG9hdCBDb2xvcjo6bHVtaW5hbmNlKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkgYXZvaWQgY29udmVyc2lvbiB0
byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0aG1zCi0gICAgLy8gZm9yIGx1
bWluYW5jZSAoZS5nLiBjb252ZXJ0VG9YWVooYykueUNvbXBvbmVudCgpKS4KLSAgICByZXR1cm4g
V2ViQ29yZTo6bHVtaW5hbmNlKHRvU1JHQkFMb3NzeTxmbG9hdD4oKSk7CisgICAgcmV0dXJuIGNh
bGxPblVuZGVybHlpbmdUeXBlKFsmXSAoY29uc3QgYXV0byYgdW5kZXJseWluZ0NvbG9yKSB7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpyZWxhdGl2ZUx1bWluYW5jZSh1bmRlcmx5aW5nQ29sb3Ip
OworICAgIH0pOworfQorCitmbG9hdCBDb2xvcjo6Y29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYg
Y29sb3JBLCBjb25zdCBDb2xvciYgY29sb3JCKQoreworICAgIHJldHVybiBjb2xvckEuY2FsbE9u
VW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3JBKSB7CisgICAg
ICAgIHJldHVybiBjb2xvckIuY2FsbE9uVW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1
bmRlcmx5aW5nQ29sb3JCKSB7CisgICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y29udHJhc3RS
YXRpbyh1bmRlcmx5aW5nQ29sb3JBLCB1bmRlcmx5aW5nQ29sb3JCKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CiB9CiAKIENvbG9yIENvbG9yOjpjb2xvcldpdGhBbHBoYShmbG9hdCBhbHBoYSkgY29u
c3QKQEAgLTE0NCw5ICsxNTUsOSBAQCBDb2xvciBDb2xvcjo6aW52ZXJ0ZWRDb2xvcldpdGhBbHBo
YShmbG9hCiAgICAgICAgIC8vIGJldHRlciBmb3Igbm9uLWludmVydGlibGUgY29sb3IgdHlwZXMg
bGlrZSBMYWIgb3IgY29uc2lkZXIgcmVtb3ZpbmcgdGhpcyBpbiBmYXZvcgogICAgICAgICAvLyBv
ZiBhbHRlcm5hdGl2ZXMuCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoQ29sb3JUeXBlOjpNb2RlbDo6
aXNJbnZlcnRpYmxlKQotICAgICAgICAgICAgcmV0dXJuIGludmVydGVkY29sb3JXaXRoT3ZlcnJp
ZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOworICAgICAgICAgICAgcmV0dXJuIGlu
dmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlk
ZGVuQWxwaGEoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4odW5kZXJseWluZ0NvbG9yKSwgYWxw
aGEpOworICAgICAgICAgICAgcmV0dXJuIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KHVuZGVybHlpbmdDb2xvciksIGFscGhhKTsKICAg
ICB9KTsKIH0KIApAQCAtMTY3LDYgKzE3OCwyMCBAQCBzdGQ6OnBhaXI8Q29sb3JTcGFjZSwgQ29s
b3JDb21wb25lbnRzPGZsCiAgICAgcmV0dXJuIHsgQ29sb3JTcGFjZTo6U1JHQiwgYXNDb2xvckNv
bXBvbmVudHMoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4oYXNJbmxpbmUoKSkpIH07CiB9CiAK
K2Jvb2wgQ29sb3I6OmlzQmxhY2tDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9y
KTsKKyAgICB9KTsKK30KKworYm9vbCBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICByZXR1cm4gY29sb3IuY2FsbE9uVW5kZXJseWluZ1R5cGUoW10gKGNvbnN0
IGF1dG8mIHVuZGVybHlpbmdDb2xvcikgeworICAgICAgICByZXR1cm4gV2ViQ29yZTo6aXNXaGl0
ZSh1bmRlcmx5aW5nQ29sb3IpOworICAgIH0pOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRzIDw8
IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbG9yKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gMjczNjMzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGx1bWlu
YW5jZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGxpZ2h0bmVzcygpIGNvbnN0
OyAvLyBGSVhNRTogUmVwbGFjZSByZW1haW5pbmcgdXNlcyB3aXRoIGx1bWluYW5jZS4KKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgZmxvYXQgY29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYsIGNv
bnN0IENvbG9yJik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiBkZWNsdHlwZShh
dXRvKSBjYWxsT25VbmRlcmx5aW5nVHlwZShGdW5jdG9yJiYpIGNvbnN0OwogCkBAIC00OTQsMjAg
KzQ5NSw2IEBAIGlubGluZSB2b2lkIENvbG9yOjpzZXRFeHRlbmRlZENvbG9yKFJlZjwKICAgICBB
U1NFUlQoaXNFeHRlbmRlZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgQ29sb3I6OmlzQmxhY2tDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbG9yLmNhbGxPblVuZGVybHlp
bmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3IpIHsKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9yKTsKLSAgICB9KTsKLX0KLQotaW5saW5l
IGJvb2wgQ29sb3I6OmlzV2hpdGVDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzV2hpdGUodW5kZXJseWluZ0NvbG9y
KTsKLSAgICB9KTsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBDb2xvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTHVtaW5hbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JMdW1pbmFu
Y2UuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpCit7CisgICAgLy8g
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVsYXRpdmVfbHVtaW5hbmNlCisKKyAgICAv
LyBGSVhNRTogVGhpcyBjYW4gYmUgb3B0aW1pemVkIGEgYml0IGJ5IG9ic2VydmluZyB0aGF0IGlu
IHNvbWUgY2FzZXMgdGhlIGNvbnZlcnNpb24KKyAgICAvLyB0byBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENjU+IGluIGl0cyBlbnRpcmV0eSBpcyB1bm5lY2Vzc2FyeSB0byBnZXQganVzdCB0aGUg
WQorICAgIC8vIGNvbXBvbmVudC4gRm9yIGluc3RhbmNlLCBmb3IgU1JHQkE8ZmxvYXQ+LCB0aGlz
IGNvdWxkIGJlIGRvbmUgYXM6CisgICAgLy8KKyAgICAvLyAgICAgY29udmVydENvbG9yPExpbmVh
clNSR0JBPGZsb2F0Pj4oY29sb3IpICogTGluZWFyU1JHQkE8ZmxvYXQ+OjpsaW5lYXJUb1hZWi5y
b3coMSkKKyAgICAvLworICAgIC8vIChmb3IgYSBoeXBvdGhldGljYWwgcm93KCkgZnVuY3Rpb24g
b24gQ29sb3JNYXRyaXgpLiBXZSB3b3VsZCBwcm9iYWJseSB3YW50IHRvIGltcGxlbWVudAorICAg
IC8vIHRoaXMgaW4gQ29sb3JDb252ZXJzaW9uLmggYXMgYSBzaWJsaW5nIGZ1bmN0aW9uIHRvIGNv
bnZlcnRDb2xvciB3aGljaCBjYW4gZ2V0IGEgY2hhbm5lbAorICAgIC8vIG9mIGEgY29sb3IgaW4g
YW5vdGhlciBzcGFjZSBpbiB0aGlzIGtpbmQgb2Ygb3B0aW1hbCB3YXkuCisKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55OworfQor
CitpbmxpbmUgZmxvYXQgY29udHJhc3RSYXRpbyhmbG9hdCByZWxhdGl2ZUx1bWluYW5jZUEsIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlQikKK3sKKyAgICAvLyBVc2VzIHRoZSBXQ0FHIDIuMCBkZWZp
bml0aW9uIG9mIGNvbnRyYXN0IHJhdGlvLgorICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9X
Q0FHMjAvI2NvbnRyYXN0LXJhdGlvZGVmCisgICAgYXV0byBsaWdodGVyTHVtaW5hbmNlID0gcmVs
YXRpdmVMdW1pbmFuY2VBOworICAgIGF1dG8gZGFya2VyTHVtaW5hbmNlID0gcmVsYXRpdmVMdW1p
bmFuY2VCOworCisgICAgaWYgKGxpZ2h0ZXJMdW1pbmFuY2UgPCBkYXJrZXJMdW1pbmFuY2UpCisg
ICAgICAgIHN0ZDo6c3dhcChsaWdodGVyTHVtaW5hbmNlLCBkYXJrZXJMdW1pbmFuY2UpOworCisg
ICAgcmV0dXJuIChsaWdodGVyTHVtaW5hbmNlICsgMC4wNSkgLyAoZGFya2VyTHVtaW5hbmNlICsg
MC4wNSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZUEsIHR5cGVuYW1lIENvbG9y
VHlwZUI+IGlubGluZSBmbG9hdCBjb250cmFzdFJhdGlvKGNvbnN0IENvbG9yVHlwZUEmIGNvbG9y
QSwgY29uc3QgQ29sb3JUeXBlQiYgY29sb3JCKQoreworICAgIHJldHVybiBjb250cmFzdFJhdGlv
KHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQSksIHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQikpOwor
fQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxp
dGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDM5ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3JVdGlsaXRp
ZXMuaCIKIAotI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAg
IGF1dG8gW3IsIGcsIGIsIGFdID0gY29sb3I7Ci0gICAgYXV0byBbbWluLCBtYXhdID0gc3RkOjpt
aW5tYXgoeyByLCBnLCBiIH0pOwotICAgIHJldHVybiAwLjVmICogKG1heCArIG1pbik7Ci19Ci0K
LWZsb2F0IGx1bWluYW5jZShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIC8vIE5P
VEU6IFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgY29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55Ci0gICAgLy8gRklNWEU6IElmIHdlIGNhbiBnZW5lcmFs
aXplIENvbG9yTWF0cml4IGEgYml0IG1vcmUsIGl0IG1pZ2h0IGJlIG5pY2UgdG8gd3JpdGUgdGhp
cyBhczoKLSAgICAvLyAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+
Pihjb2xvcikgKiBsaW5lYXJTUkdCVG9YWVpNYXRyaXgucm93KDEpOwotICAgIGF1dG8gW3IsIGcs
IGIsIGFdID0gY29udmVydENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotICAgIHJl
dHVybiAwLjIxMjZmICogciArIDAuNzE1MmYgKiBnICsgMC4wNzIyZiAqIGI7Ci19Ci0KLWZsb2F0
IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvckEsIGNvbnN0IFNSR0JBPGZs
b2F0PiYgY29sb3JCKQotewotICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2Yg
Y29udHJhc3QgcmF0aW8uCi0gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC8jY29u
dHJhc3QtcmF0aW9kZWYKLSAgICBmbG9hdCBsaWdodGVyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNv
bG9yQSk7Ci0gICAgZmxvYXQgZGFya2VyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNvbG9yQik7Ci0K
LSAgICBpZiAobGlnaHRlckx1bWluYW5jZSA8IGRhcmtlckx1bWluYW5jZSkKLSAgICAgICAgc3Rk
Ojpzd2FwKGxpZ2h0ZXJMdW1pbmFuY2UsIGRhcmtlckx1bWluYW5jZSk7Ci0KLSAgICByZXR1cm4g
KGxpZ2h0ZXJMdW1pbmFuY2UgKyAwLjA1KSAvIChkYXJrZXJMdW1pbmFuY2UgKyAwLjA1KTsKLX0K
LQogU1JHQkE8ZmxvYXQ+IHByZW11bHRpcGxpZWQoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IGNvbG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCShyZXZpc2lvbiAyNzM2
MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGx1bWluYW5j
ZShjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8
ZmxvYXQ+JiwgY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci0KIFNSR0JBPGZsb2F0PiBwcmVtdWx0aXBs
aWVkKGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogU1JHQkE8ZmxvYXQ+IHVucHJlbXVsdGlwbGllZChj
b25zdCBTUkdCQTxmbG9hdD4mKTsKIApAQCAtNTUsOCArNTEsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2xvclR5cGUsIHR5cGVuYW1lIEZ1CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNv
bnN0ZXhwciBDb2xvclR5cGUgY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9yVHlw
ZSYsIHVpbnQ4X3Qgb3ZlcnJpZGVBbHBoYSk7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IENvbG9yVHlwZSBjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiwgZmxv
YXQgb3ZlcnJpZGVBbHBoYSk7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3Rl
eHByIENvbG9yVHlwZSBpbnZlcnRlZGNvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xv
clR5cGUmLCB1aW50OF90IG92ZXJyaWRlQWxwaGEpOwotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBDb2xvclR5cGUgaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29s
b3JUeXBlJiwgZmxvYXQgb3ZlcnJpZGVBbHBoYSk7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5
cGU+IGNvbnN0ZXhwciBDb2xvclR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEo
Y29uc3QgQ29sb3JUeXBlJiwgdWludDhfdCBvdmVycmlkZUFscGhhKTsKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbG9yVHlwZT4gQ29sb3JUeXBlIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnN0IENvbG9yVHlwZSYsIGZsb2F0IG92ZXJyaWRlQWxwaGEpOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lX3Y8
dHlwZW5hbWUgQ29sb3JUeXBlOjpNb2RlbCwgUkdCTW9kZWw8dHlwZW5hbWUgQ29sb3JUeXBlOjpD
b21wb25lbnRUeXBlPj4+KiA9IG51bGxwdHI+IGNvbnN0ZXhwciBib29sIGlzQmxhY2soY29uc3Qg
Q29sb3JUeXBlJik7CiB0ZW1wbGF0ZTxXaGl0ZVBvaW50IFc+IGNvbnN0ZXhwciBib29sIGlzQmxh
Y2soY29uc3QgWFlaQTxmbG9hdCwgVz4mKTsKQEAgLTEyMSw3ICsxMTcsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2xvclR5cGU+IENvbG9yVHlwZSBjCiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIENvbG9yVHlwZSBpbnZlcnRlZGNv
bG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xvclR5cGUmIGNvbG9yLCB1aW50OF90IG92
ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNvbnN0ZXhwciBDb2xv
clR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiBj
b2xvciwgdWludDhfdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3NlcnQoQ29sb3JU
eXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApAQCAtMTM1LDcgKzEzMSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIEMKICAgICByZXR1cm4gbWFrZUZyb21Db21w
b25lbnRzPENvbG9yVHlwZT4oY29weSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gQ29sb3JUeXBlIGludmVydGVkY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9y
VHlwZSYgY29sb3IsIGZsb2F0IG92ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IENvbG9yVHlwZSBpbnZlcnRlZENvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBD
b2xvclR5cGUmIGNvbG9yLCBmbG9hdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3Nl
cnQoQ29sb3JUeXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA3
LDcgKzE0MDcsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6ZGlzYWJsZWRUZXh0Q29sb3IoY29uCiAg
ICAgLy8gSWYgdGhlcmUncyBub3QgdmVyeSBtdWNoIGNvbnRyYXN0IGJldHdlZW4gdGhlIGRpc2Fi
bGVkIGNvbG9yIGFuZCB0aGUgYmFja2dyb3VuZCBjb2xvciwKICAgICAvLyBqdXN0IGxlYXZlIHRo
ZSB0ZXh0IGNvbG9yIGFsb25lLiBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSBhIGdvb2QgY29udHJh
c3QgY29sb3Igc2NoZW1lIHNvIHRoYXQgaXQgaGFzIHJlYWxseSBiYWQgY29udHJhc3QuCiAgICAg
Ly8gSWYgdGhlIGNvbnRyYXN0IHdhcyBhbHJlYWR5IHBvb3IsIHRoZW4gaXQgZG9lc24ndCBkbyBh
bnkgZ29vZCB0byBjaGFuZ2UgaXQgdG8gYSBkaWZmZXJlbnQgcG9vciBjb250cmFzdCBjb2xvciBz
Y2hlbWUuCi0gICAgaWYgKGNvbnRyYXN0UmF0aW8oZGlzYWJsZWRDb2xvci50b1NSR0JBTG9zc3k8
ZmxvYXQ+KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpIDwgbWluQ29s
b3JDb250cmFzdFZhbHVlKQorICAgIGlmIChDb2xvcjo6Y29udHJhc3RSYXRpbyhkaXNhYmxlZENv
bG9yLCBiYWNrZ3JvdW5kQ29sb3IpIDwgbWluQ29sb3JDb250cmFzdFZhbHVlKQogICAgICAgICBy
ZXR1cm4gdGV4dENvbG9yOwogCiAgICAgcmV0dXJuIGRpc2FibGVkQ29sb3I7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDI3MzYz
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgYm9vbCB0ZXh0Q29sb3JJc0xlZ2libGVBZ2FpbnN0
QmFja2dyb3VuZAogewogICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2YgbGVn
aWJpbGl0eTogYSBjb250cmFzdCByYXRpbyBvZiA0LjU6MSBvciBncmVhdGVyLgogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAvI3Zpc3VhbC1hdWRpby1jb250cmFzdC1jb250cmFz
dAotICAgIHJldHVybiBjb250cmFzdFJhdGlvKHRleHRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+
KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpID4gNC41OworICAgIHJl
dHVybiBDb2xvcjo6Y29udHJhc3RSYXRpbyh0ZXh0Q29sb3IsIGJhY2tncm91bmRDb2xvcikgPiA0
LjU7CiB9CiAKIHN0YXRpYyBDb2xvciBhZGp1c3RDb2xvckZvclZpc2liaWxpdHlPbkJhY2tncm91
bmQoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MzYzOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENTUyBDb2xvciA1IGNvbG9yLWNv
bnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbG9yVGVzdHMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIFVwZGF0ZSBsdW1pbmFuY2UgdmFsdWVzIHRv
IGFjY291bnQgZm9yIG1vcmUgYWNjdXJhdGUgY29udmVyc2lvbiB0bworICAgICAgICBYWVogbm93
IHRoYXQgd2UgYXJlIHVzdWluZyB0aGUgYWN0dWFsIG1hdHJpeCB2YWx1ZXMgZnJvbSBTUkdCQURl
c2NyaXB0b3IKKyAgICAgICAgYW5kIG5vdCBhIHRydW5jYXRlZCBjb3B5LgorCiAyMDIxLTAyLTI3
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQVBJ
IHRlc3QgZm9yIEFwcEhpZ2hsaWdodHMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db2xvclRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29sb3JUZXN0cy5jcHAJKHJldmlzaW9uIDI3MzYzMykKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db2xvclRlc3RzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjE0LDIwICsyMTQsMjAgQEAgVEVTVChDb2xvciwgTHVtaW5hbmNlKQogICAgIEVYUEVD
VF9GTE9BVF9FUShDb2xvcihDb2xvcjo6d2hpdGUpLmx1bWluYW5jZSgpLCAxKTsKIAogICAgIGF1
dG8gY0NvbXBvbmVudHMgPSBTUkdCQTx1aW50OF90PiB7IDg1LCA5MCwgMTYwIH07Ci0gICAgRVhQ
RUNUX0ZMT0FUX0VRKENvbG9yKGNDb21wb25lbnRzKS5sdW1pbmFuY2UoKSwgMC4xMTc4MTY5Mik7
CisgICAgRVhQRUNUX0ZMT0FUX0VRKENvbG9yKGNDb21wb25lbnRzKS5sdW1pbmFuY2UoKSwgMC4x
MTc4MTQ1NSk7CiAKICAgICBFWFBFQ1RfRVEoY0NvbXBvbmVudHMucmVkLCA4NSk7CiAgICAgRVhQ
RUNUX0VRKGNDb21wb25lbnRzLmdyZWVuLCA5MCk7CiAgICAgRVhQRUNUX0VRKGNDb21wb25lbnRz
LmJsdWUsIDE2MCk7CiAKICAgICBhdXRvIGNMaWd0ZW5lZCA9IENvbG9yKGNDb21wb25lbnRzKS5s
aWdodGVuZWQoKS50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
Q29sb3IoY0xpZ3RlbmVkKS5sdW1pbmFuY2UoKSwgMC4yOTE2ODgwOCk7CisgICAgRVhQRUNUX0ZM
T0FUX0VRKENvbG9yKGNMaWd0ZW5lZCkubHVtaW5hbmNlKCksIDAuMjkxNjgyKTsKICAgICBFWFBF
Q1RfRVEoY0xpZ3RlbmVkLnJlZCwgMTMwKTsKICAgICBFWFBFQ1RfRVEoY0xpZ3RlbmVkLmdyZWVu
LCAxMzcpOwogICAgIEVYUEVDVF9FUShjTGlndGVuZWQuYmx1ZSwgMjQ0KTsKIAogICAgIGF1dG8g
Y0RhcmtlbmVkID0gQ29sb3IoY0NvbXBvbmVudHMpLmRhcmtlbmVkKCkudG9TUkdCQUxvc3N5PHVp
bnQ4X3Q+KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKENvbG9yKGNEYXJrZW5lZCkubHVtaW5hbmNl
KCksIDAuMDI3MDA2NzI3KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoQ29sb3IoY0RhcmtlbmVkKS5s
dW1pbmFuY2UoKSwgMC4wMjcwMDYyNDIpOwogICAgIEVYUEVDVF9FUShjRGFya2VuZWQucmVkLCA0
MCk7CiAgICAgRVhQRUNUX0VRKGNEYXJrZW5lZC5ncmVlbiwgNDMpOwogICAgIEVYUEVDVF9FUShj
RGFya2VuZWQuYmx1ZSwgNzYpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjczNjMzKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDIt
MjggIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmlt
ZW50YWwgc3VwcG9ydCBmb3IgQ1NTIENvbG9yIDUgY29sb3ItY29udHJhc3QoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTMwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LWNvbG9yLWNvbnRyYXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
cGFyc2luZy1jb2xvci1jb250cmFzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIHBhcnNpbmcg
YW5kIGNvbXB1dGVkIHN0eWxlIGNvbXB1dGF0aW9uIHRlc3RzIGZvciBjb2xvci1jb250YXN0KCku
CisKKzIwMjEtMDItMjYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yICdwaXhlbCcgYW5kICdwb3MnIENTU09NIHByZWZpeGVzCisgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorCisgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAqIGZhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0
OgorICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1j
YXNlLXNlbnNpdGl2ZS5odG1sOgorICAgICAgICBVcGRhdGUgdGVzdCB0byByZWZsZWN0IHJlbW92
YWwgb2YgcG9zL3BpeGVsIHByZWZpeGVzLgorCiAyMDIxLTAyLTI3ICBTYW0gV2VpbmlnICA8d2Vp
bmlnQGFwcGxlLmNvbT4KIAogICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAncGl4ZWwnIGFuZCAn
cG9zJyBDU1NPTSBwcmVmaXhlcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1j
b2xvci1jb250cmFzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBD
U1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworY29sb3ItY29udHJhc3QoLi4uIHZzIC4uLiwgLi4uKQorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwgYmx1ZSki
KSBpcyAicmdiKDAsIDAsIDI1NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUgdnMgYmx1ZSwgcmVkKSIpIGlzICJyZ2IoMCwgMCwg
MjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250
cmFzdCh3aGl0ZSB2cyByZWQsIGJsdWUsIGdyZWVuKSIpIGlzICJyZ2IoMCwgMCwgMjU1KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdCh3aGl0
ZSB2cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChibHVlIHZzIHJlZCwg
d2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwgd2hpdGUsIHJlZCki
KSBpcyAicmdiKDI1NSwgMjU1LCAyNTUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSkiKSBpcyAicmdiKDI1
NSwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3It
Y29udHJhc3QoYmxhY2sgdnMgYmx1ZSwgcmVkKSIpIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChibGFjayB2
cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwgcmdi
KDI1NSwgMjU1LCAyNTUsIC41KSkiKSBpcyAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIgorCitU
ZXN0IG5vbi1zUkdCIGNvbG9ycworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApLCBjb2xv
cihkaXNwbGF5LXAzIDAgMCAxKSkiKSBpcyAiY29sb3IoZGlzcGxheS1wMyAwIDEgMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3QoY29sb3Io
ZGlzcGxheS1wMyAxIDEgMCkgdnMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCksIGNvbG9yKGRpc3Bs
YXktcDMgMCAwIDEpKSIpIGlzICJjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChncmVlbiB2cyBsYWIo
NTAlIC0xNjAgMTYwKSwgbGNoKDIwJSA1MCAyMGRlZykpIikgaXMgImxjaCgyMCUgNTAgMjApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGxh
Yig1MCUgLTE2MCAxNjApIHZzIGdyZWVuLCBsY2goMjAlIDUwIDIwZGVnKSkiKSBpcyAibGNoKDIw
JSA1MCAyMCkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3ItY29udHJhc3Qod2hpdGUgdnMgcmVkLCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdCh3aGl0ZSB2
cyApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qo
d2hpdGUgdnMgcmVkIGdyZWVuKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctY29sb3ItY29udHJhc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWNvbG9yLWNvbnRyYXN0Lmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgQ1NTQ29sb3JDb250cmFzdEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhl
IHBhcnNpbmcgb2YgQ1NTIENvbG9yIDUgY29sb3ItY29udHJhc3QoKS4iKTsKKworICAgIGZ1bmN0
aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0
eSwgdmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUo
ZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUsIGV4cGVj
dGVkKQorICAgIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxl
KCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQodmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAg
ICAgICAgdGVzdENvbXB1dGVkUHJvcGVydHkoImJhY2tncm91bmQtY29sb3IiLCB2YWx1ZSwgZXhw
ZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdjb2xvci1jb250cmFzdCguLi4gdnMgLi4uLCAu
Li4pJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwg
Ymx1ZSlgLCBgcmdiKDAsIDAsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRy
YXN0KHdoaXRlIHZzIGJsdWUsIHJlZClgLCBgcmdiKDAsIDAsIDI1NSlgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwgYmx1ZSwgZ3JlZW4pYCwgYHJnYigw
LCAwLCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBjb2xvci1jb250cmFzdCh3aGl0ZSB2cyB3
aGl0ZSwgd2hpdGUpYCwgYHJnYigyNTUsIDI1NSwgMjU1KWApOworICAgIHRlc3RDb21wdXRlZChg
Y29sb3ItY29udHJhc3QoYmx1ZSB2cyByZWQsIHdoaXRlKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHJlZCB2cyBibHVlLCB3aGl0ZSwg
cmVkKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNv
bnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSlgLCBgcmdiKDI1NSwgMCwgMClgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIGJsdWUsIHJlZClgLCBgcmdiKDI1NSwg
MCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHdoaXRl
LCB3aGl0ZSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBjb2xv
ci1jb250cmFzdChyZWQgdnMgYmx1ZSwgcmdiKDI1NSwgMjU1LCAyNTUsIC41KSlgLCBgcmdiYSgy
NTUsIDI1NSwgMjU1LCAwLjUpYCk7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1Rlc3Qg
bm9uLXNSR0IgY29sb3JzJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGdy
ZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApLCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSlg
LCBgY29sb3IoZGlzcGxheS1wMyAwIDEgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNv
bnRyYXN0KGNvbG9yKGRpc3BsYXktcDMgMSAxIDApIHZzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDAp
LCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSlgLCBgY29sb3IoZGlzcGxheS1wMyAwIDAgMSlgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGxhYig1MCUgLTE2MCAx
NjApLCBsY2goMjAlIDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGxhYig1MCUgLTE2MCAxNjApIHZzIGdyZWVuLCBsY2goMjAl
IDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBk
ZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworCisgICAgdGVzdENvbXB1dGVkKGBjb2xvci1j
b250cmFzdCh3aGl0ZSB2cyByZWQpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIClgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgY29sb3ItY29udHJhc3Qod2hpdGUpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdo
aXRlIHZzIHJlZCBncmVlbilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCis8L3NjcmlwdD4KKyAg
ICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421787</attachid>
            <date>2021-02-28 18:16:41 -0800</date>
            <delta_ts>2021-03-01 08:41:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222530-20210228181640.patch</filename>
            <type>text/plain</type>
            <size>37995</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENTUyBD
b2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorICAgICAgICBBZGQgbmV3IGV4cGVyaW1lbnRhbCBwcmVmZXJlbmNlIGZv
ciBDU1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpCisgICAgICAgIHdoaWNoIGlzIG9mZiBieSBk
ZWZhdWx0LgorCiAyMDIxLTAyLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291cDMgdmVyc2lvbiB0byAy
Ljk5LjEKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShyZXZpc2lvbiAyNzM2MzMp
CisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMywxOCBAQCBDRk5ldHdvcmtO
ZXR3b3JrTG9hZGVyRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQog
CitDU1NDb2xvckNvbnRyYXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIkNTUyBjb2xvci1jb250cmFzdCgpIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJFbmFibGUgc3VwcG9ydCBmb3IgQ1NTIGNvbG9yLWNvbnRyYXN0KCkgZGVmaW5lZCBpbiBDU1Mg
Q29sb3IgNSIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ1NTQ29sb3JNaXhFbmFibGVkOgogICB0eXBlOiBi
b29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIGNvbG9yLW1peCgpIgpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjczNjM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsODggQEAKKzIwMjEtMDItMjggIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgQ1NTIENv
bG9yIDUgY29sb3ItY29udHJhc3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIG9mZiBieSBkZWZhdWx0IGFuZCBjYW4gYmUg
ZW5hYmxlZCB2aWEgdGhlIENTU0NvbG9yQ29udHJhc3RFbmFibGVkCisgICAgICAgIGV4cGVyaW1l
bnRhbCBwcmVmZXJlbmNlIGZsYWcuCisKKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBoYXMg
dGhlIHNhbWUgcmVzdHJpY3Rpb24gb24gaXQgdGhhdCB0aGUgcmVjZW50bHkgbGFuZGVkCisgICAg
ICAgIFJlbGF0aXZlIENvbG9yIFN5bnRheCBhbmQgY29sb3ItbWl4KCkgZG8sIGluIHRoYXQgaXQg
ZG9lcyBzdXBwb3J0IHN5c3RlbSBjb2xvcnMKKyAgICAgICAgb3IgY3VycmVudENvbG9yIGFzIGlu
cHV0LCBzaW5jZSB0aG9zZSBjYW4ndCBiZSByZXNvbHZlZCBhdCBwYXJzZSB0aW1lLiBVbHRpbWF0
ZWx5LAorICAgICAgICB3ZSB3aWxsIG5lZWQgdG8gYWRkIGEgbGF0ZSBiaW5kaW5nIHZlcnNpb24g
b2YgdGhpcyBmb3IgdGhvc2UgY2FzZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2lu
Zy1jb2xvci1jb250cmFzdC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBD
b2xvckx1bWluYW5jZS5oIGhlYWRlciB3aGVyZSB0aGUgZ2VuZXJpYyByZWxhdGl2ZSBsdW1pbmFu
Y2UgYW5kIGNvbnRyYXN0IHJhdGlvCisgICAgICAgIGZ1bmN0aW9ucyBsaXZlLgorCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCBuZXcga2V5d29yZHMsIGNv
bG9yLWNvbnRyYXN0IGFuZCB2cywgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUgY29sb3ItY29udHJh
c3QoKSBmdW5jdGlvbi4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHA6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6CisgICAgICAgIEFk
ZCBhIHNldHRpbmcgZm9yIGNvbG9yLWNvbnRyYXN0LgorCisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVu
Y3Rpb24pOgorICAgICAgICBBZGQgcGFyc2luZyBhbmQgY29tcHV0YXRpb24gb2YgY29sb3ItY29u
dHJhc3QoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxpZ2h0bmVzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpsdW1pbmFuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udHJhc3RSYXRp
byk6IERlbGV0ZWQuCisgICAgICAgIE1vdmVkIGx1bWluYW5jZSByZWxhdGVkIGZ1bmN0aW9ucyB0
byBDb2xvckx1bWluYW5jZS5oIGFuZCBpbmxpbmVkIGxpZ2h0bmVzcworICAgICAgICB0byBpdHMg
b25lIGNhbGxlciwgQ29sb3IgYW5kIG5vdGVkIGl0IHNob3VsZCBiZSByZW1vdmVkLgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOgorICAgICAgICAo
V2ViQ29yZTo6aW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOiBEZWxldGVkLgorICAg
ICAgICBGaXggY2FwaXRhbGl6YXRpb24gaXNzdWUgc2Vlbi4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVy
cmlkZGVuQWxwaGEgLT4gaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xv
cjo6bGlnaHRuZXNzIGNvbnN0KToKKyAgICAgICAgSW5saW5lIGltcGxlbWVudGF0aW9uIGFuZCBh
ZGQgY29tbWVudCBleHBsYWluaW5nIGl0IHNob3VsZCBiZSByZW1vdmVkLgorCisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6bHVtaW5hbmNlIGNvbnN0KToKKyAgICAgICAgUmUtd3JpdGUgdG8gdXNl
IHRoZSBuZXcgV2ViQ29yZTo6cmVsYXRpdmVMdW1pbmFuY2UgdGhhdCB3b3JrcyBmb3IgYW55IGNv
bG9yIHR5cGUKKyAgICAgICAgd2l0aG91dCBjb252ZXJzaW9uIHRvIHNSR0IuCisKKyAgICAgICAg
KFdlYkNvcmU6OkNvbG9yOjpjb250cmFzdFJhdGlvKToKKyAgICAgICAgQWRkIGhlbHBlciB0byBj
YWxsIGdlbmVyaWMgV2ViQ29yZTo6Y29udHJhc3RSYXRpbyB0aGF0IHdvcmtzIG9uIGFueSBjb2xv
ciB0eXBlcworICAgICAgICB0byBhdm9pZCBjYWxsZXJzIG5lZWRpbmcgdG8gZG8gdGhlIHVuZm9s
ZGluZyB0aGVtc2VsdmVzLgorIAorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxhY2tDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxh
Y2tDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9y
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVzZSByYXJlIGZ1bmN0aW9ucyBvdXQgb2YgbGlu
ZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBwbGFjZXMgaW4gdGhlIGhlYWRlciB3ZSBhcmUKKyAg
ICAgICAgY2FsbGluZyBjYWxsT25VbmRlcmx5aW5nVHlwZSgpLCB3aGljaCBwcm9kdWNlcyBjb2Rl
IGxpbmVyYWxseSB3aXRoIHRoZSBudW1iZXIgb2YgY29sb3Igc3BhY2VzCisgICAgICAgIHN1cHBv
cnRlZC4gQ2FsbGluZyBpdCBpbiB0aGUgY3BwIGZpbGVzIG1lYW5zIHdlIG9ubHkgZXhwYW5kIGl0
IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJlbGF0aXZlTHVtaW5h
bmNlKToKKyAgICAgICAgVGhpcyBpcyBhIGdlbmVyaWMgdmVyc2lvbiBvZiB0aGUgb2xkIGx1bWlu
YW5jZSBmdW5jdGlvbiB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZQorICAgICAgICBieSBj
b252ZXJ0aW5nIHRvIFhZWiBhbmQgdGFraW5nIHRoZSBZIGNvbXBvbmVudC4gVGhlIG9sZCBmdW5j
dGlvbiByZXF1aXJlZCBhbHdheXMKKyAgICAgICAgY29udmVydGluZyB0byBzUkdCIHdoaWNoIGNv
dWxkIGJlIGxvc3N5LgorCisgICAgICAgIChXZWJDb3JlOjpjb250cmFzdFJhdGlvKToKKyAgICAg
ICAgU3BsaXQgb3V0IGNvbXB1dGF0aW9uIG9mIGNvbnRyYXN0UmF0aW8gYmFzZWQgb24gcmVsYXRp
dmUgbHVtaW5hY2UgZmxvYXRzIGludG8gaXRzIG93bgorICAgICAgICBmdW5jdGlvbiBzbyB0aGF0
IGlmIHdlIGhhdmUgdGhlIHJlbGF0aXZlIGx1bWluYW5jZSBjb21wdXRlZCBhbHJlYWR5LCB3ZSBk
b24ndCBoYXZlIHRvCisgICAgICAgIHJlY29tcHV0ZSBpdC4gQWRkIHZlcnNpb24gY29udHJhc3RS
YXRpbyB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZSB1dGlsaXppbmcgdGhlCisgICAgICAg
IGdlbmVyaWMgcmVsYXRpdmVMdW1pbmFuY2UgZnVuY3Rpb24gYWJvdmUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OmRpc2FibGVkVGV4dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJh
Y2tncm91bmRDb2xvcik6CisgICAgICAgIFVwZGF0ZSB0byB1c2UgbmV3IENvbG9yOjpjb250cmFz
dFJhdGlvIGhlbHBlciB0aGF0IGhhbmRsZXMgYWxsIGNvbG9yIHR5cGVzLgorCiAyMDIxLTAyLTI4
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZWR1Y2Ug
dXNlIG9mIHJldGFpbi9yZWxlYXNlIGluIFdBS1dpbmRvdyBhbmQgcmVtb3ZlIHVubmVlZGVkIG1l
dGhvZHMgZnJvbSB0aGF0IGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI3
MzYzMykKKysrIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTExNjYsNiArMTE2Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNo
LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckx1bWluYW5jZS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JNYXRyaXguaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTW9kZWxz
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjczNjMzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcyLDYgKzM5NzIsNyBAQAogCQlCQzQ5MThD
NzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYg
LyogSlNIVE1MRnJhbWVFbGVtZW50LmggKi87IH07CiAJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMx
NiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1l
RWxlbWVudC5oICovOyB9OwogCQlCQzQ5MUI3OTBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
OyB9OworCQlCQzRBMjNFQzI1RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEEyM0VCMjVFQzE2
MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNEE1MzIzMjU2MDUyNzYwMDI4QzU5MiAvKiBFZGl0
YWJsZUxpbmtCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8qIEVkaXRhYmxlTGlua0JlaGF2aW9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM0
QTUzMjUyNTYwNTU1RjAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkM0QTUzMjcyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1
MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MDM0LDYg
KzE0MDM1LDcgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8q
IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTIzRUIyNUVDMTYwMjAwQUFDNjMw
IC8qIENvbG9yTHVtaW5hbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yTHVtaW5hbmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBF
ZGl0YWJsZUxpbmtCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0YWJsZUxpbmtCZWhhdmlv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRBNTMyNDI1NjA1NTU5MDAyOEM1
OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjU5LDYgKzI2NjYx
LDcgQEAKIAkJCQkzMTAzQjdERTFEQjAxNTU2MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggKi8sCiAJ
CQkJN0NBQzZBRTgyNDdGMDgyMDAwRTYxRDU5IC8qIENvbG9yTWF0cml4LmggKi8sCiAJCQkJQkMx
MDEzN0IyNUMzNjI0QjAwREM3NzNDIC8qIENvbG9yTW9kZWxzLmggKi8sCisJCQkJQkM0QTIzRUIy
NUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5hbmNlLmggKi8sCiAJCQkJN0NEMUU2OTIyNEFC
RjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEy
NEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5oICovLAogCQkJCUJDQUZFREFG
MjU5NjZEMDUwMDMwRTZBQSAvKiBDb2xvclNwYWNlLmNwcCAqLywKQEAgLTMxMTQ1LDggKzMxMTQ4
LDYgQEAKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTGVnYWN5TW9ja0NETS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50
RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyog
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwNThBREMx
RDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTA1
OEFERTFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE1N0VCRkIxRTNBQjY3RjAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ2RjNFOTExQzFFQ0IyRjAwNjFEQkQ0IC8q
IE1vY2tQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgxOURENDE0MDAw
MUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3
Miw2ICszMTg3Myw3IEBACiAJCQkJQTg4MkRBMjMxNTkzODQ4RDAwMDExNUVEIC8qIENTU1RvU3R5
bGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNUFENzIxMjA1MDUxM0YwMEQ1OTJEQyAvKiBD
U1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0Uw
RDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEEyM0VD
MjVFQzE2MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2QjcwN0EyMzdCQzM2RDAwNTJDQTQ3IC8qIENTU1VuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShy
ZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQzNCw2ICsxNDM0LDEwIEBAIHByb3Bob3RvLXJnYgogLy8g
c1JHQgogeHl6CiAKKy8vIGNvbG9yLWNvbnRhc3QoKQorY29sb3ItY29udHJhc3QKK3ZzCisKIC8v
IGNvbG9yLW1peCgpCiBjb2xvci1taXgKIHNob3J0ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMjczNjMzKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0
KGNvbnN0CiAgICAgLCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgc2hlZXRCYXNlVVJMLmlz
TnVsbCgpIHx8IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChiYXNlVVJMKSB9
CiAgICAgLCB1c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQu
cGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZSB9CiAgICAgLCBhc3BlY3RSYXRp
b0VuYWJsZWQgeyBkb2N1bWVudC5zZXR0aW5ncygpLmFzcGVjdFJhdGlvRW5hYmxlZCgpIH0KKyAg
ICAsIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvckNv
bnRyYXN0RW5hYmxlZCgpIH0KICAgICAsIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGRvY3VtZW50LnNl
dHRpbmdzKCkuY29sb3JGaWx0ZXJFbmFibGVkKCkgfQogICAgICwgY29sb3JNaXhFbmFibGVkIHsg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvck1peEVuYWJsZWQoKSB9CiAgICAgLCBjb25zdGFu
dFByb3BlcnRpZXNFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jb25zdGFudFByb3BlcnRp
ZXNFbmFibGVkKCkgfQpAQCAtMTA2LDYgKzEwNyw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiAKICAgICAgICAgJiYgYS5pc0NvbnRlbnRPcGFxdWUgPT0gYi5pc0Nv
bnRlbnRPcGFxdWUKICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lz
dGVtQXBwZWFyYW5jZQogICAgICAgICAmJiBhLmFzcGVjdFJhdGlvRW5hYmxlZCA9PSBiLmFzcGVj
dFJhdGlvRW5hYmxlZAorICAgICAgICAmJiBhLmNvbG9yQ29udHJhc3RFbmFibGVkID09IGIuY29s
b3JDb250cmFzdEVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvckZpbHRlckVuYWJsZWQgPT0gYi5j
b2xvckZpbHRlckVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvck1peEVuYWJsZWQgPT0gYi5jb2xv
ck1peEVuYWJsZWQKICAgICAgICAgJiYgYS5jb25zdGFudFByb3BlcnRpZXNFbmFibGVkID09IGIu
Y29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmgJKHJldmlzaW9uIDI3MzYzMykKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNldHRpbmdzLgogICAgIGJvb2wgYXNwZWN0UmF0
aW9FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBj
b2xvck1peEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uc3RhbnRQcm9wZXJ0aWVzRW5h
YmxlZCB7IGZhbHNlIH07CkBAIC0xMDksMzEgKzExMCwzMiBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29u
dGV4dEhhc2ggewogICAgICAgICAgICAgJiBrZXkuaXNDb250ZW50T3BhcXVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgMgogICAgICAgICAgICAgJiBrZXkudXNlU3lzdGVtQXBwZWFyYW5j
ZSAgICAgICAgICAgICAgICAgICAgICAgPDwgMwogICAgICAgICAgICAgJiBrZXkuYXNwZWN0UmF0
aW9FbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNAotICAgICAgICAgICAgJiBrZXku
Y29sb3JGaWx0ZXJFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNQotICAgICAgICAg
ICAgJiBrZXkuY29sb3JNaXhFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNgot
ICAgICAgICAgICAgJiBrZXkuY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCAgICAgICAgICAgICAg
ICAgPDwgNwotICAgICAgICAgICAgJiBrZXkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkICAgICAg
ICAgICAgICAgICAgPDwgOAotICAgICAgICAgICAgJiBrZXkuZW5mb3JjZXNDU1NNSU1FVHlwZUlu
Tm9RdWlya3NNb2RlICAgICAgICAgPDwgOQotICAgICAgICAgICAgJiBrZXkuaW5kaXZpZHVhbFRy
YW5zZm9ybVByb3BlcnRpZXNFbmFibGVkICAgICAgPDwgMTAKKyAgICAgICAgICAgICYga2V5LmNv
bG9yQ29udHJhc3RFbmFibGVkICAgICAgICAgICAgICAgICAgICAgIDw8IDUKKyAgICAgICAgICAg
ICYga2V5LmNvbG9yRmlsdGVyRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgIDw8IDYKKyAg
ICAgICAgICAgICYga2V5LmNvbG9yTWl4RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDcKKyAgICAgICAgICAgICYga2V5LmNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgICAgICAg
ICAgICAgICAgIDw8IDgKKyAgICAgICAgICAgICYga2V5LmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCAgICAgICAgICAgICAgICAgIDw8IDkKKyAgICAgICAgICAgICYga2V5LmVuZm9yY2VzQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSAgICAgICAgIDw8IDEwCisgICAgICAgICAgICAmIGtleS5pbmRp
dmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQgICAgICA8PCAxMQogI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0gICAgICAgICAgICAmIGtleS5sZWdhY3lPdmVyZmxv
d1Njcm9sbGluZ1RvdWNoRW5hYmxlZCAgICAgICA8PCAxMQorICAgICAgICAgICAgJiBrZXkubGVn
YWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaEVuYWJsZWQgICAgICAgPDwgMTIKICNlbmRpZgotICAg
ICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
PDwgMTIKLSAgICAgICAgICAgICYga2V5LnJlbGF0aXZlQ29sb3JTeW50YXhFbmFibGVkICAgICAg
ICAgICAgICAgIDw8IDEzCi0gICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhhdmlvckVuYWJsZWQg
ICAgICAgICAgICAgICAgICAgICA8PCAxNAotICAgICAgICAgICAgJiBrZXkuc3ByaW5nVGltaW5n
RnVuY3Rpb25FbmFibGVkICAgICAgICAgICAgICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5Lm92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEzCisgICAgICAgICAg
ICAmIGtleS5yZWxhdGl2ZUNvbG9yU3ludGF4RW5hYmxlZCAgICAgICAgICAgICAgICA8PCAxNAor
ICAgICAgICAgICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5LnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCAg
ICAgICAgICAgICAgIDw8IDE2CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSAgICAgICAg
ICAgICYga2V5LnRleHRBdXRvc2l6aW5nRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDE2
CisgICAgICAgICAgICAmIGtleS50ZXh0QXV0b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAg
ICAgICA8PCAxNwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19UUkFOU0ZPUk1fU1RZTEVfT1BUSU1J
WkVEXzNEKQotICAgICAgICAgICAgJiBrZXkudHJhbnNmb3JtU3R5bGVPcHRpbWl6ZWQzREVuYWJs
ZWQgICAgICAgICAgPDwgMTcKKyAgICAgICAgICAgICYga2V5LnRyYW5zZm9ybVN0eWxlT3B0aW1p
emVkM0RFbmFibGVkICAgICAgICAgIDw8IDE4CiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5LnVz
ZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgIDw8IDE4Ci0gICAgICAgICAg
ICAmIGtleS5mb2N1c1Zpc2libGVFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICA8PCAxOQor
ICAgICAgICAgICAgJiBrZXkudXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlv
ciAgPDwgMTkKKyAgICAgICAgICAgICYga2V5LmZvY3VzVmlzaWJsZUVuYWJsZWQgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDIwCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAg
ICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDIwCisgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAyMQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAyMTsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAg
ICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAyMjsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJp
dHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZp
c2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJDU1NQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRl
ICJDb2xvckNvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJDb2xvckx1bWluYW5jZS5oIgogI2luY2x1
ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVDb2xvci5oIgpAQCAtMTQ4Miw2ICsxNDgzLDQ5IEBAIHN0YXRpYyBDb2xvciBwYXJz
ZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXIKICAgICByZXR1cm4gY29sb3I7CiB9CiAKK3N0YXRpYyBD
b2xvciBwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgQVNT
RVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xvckNvbnRyYXN0KTsK
KworICAgIGlmICghY29udGV4dC5jb2xvckNvbnRyYXN0RW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBh
dXRvIG9yaWdpbkJhY2tncm91bmRDb2xvciA9IGNvbnN1bWVPcmlnaW5Db2xvcihhcmdzLCBjb250
ZXh0KTsKKyAgICBpZiAoIW9yaWdpbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoIWNvbnN1bWVJZGVudFJhdzxDU1NWYWx1ZVZzPihhcmdz
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3RvcjxDb2xvcj4gY29sb3JzVG9Db21w
YXJlQWdhaW5zdDsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gY29sb3JUb0NvbXBhcmVBZ2FpbnN0
ID0gY29uc3VtZU9yaWdpbkNvbG9yKGFyZ3MsIGNvbnRleHQpOworICAgICAgICBpZiAoIWNvbG9y
VG9Db21wYXJlQWdhaW5zdC5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisg
ICAgICAgIGNvbG9yc1RvQ29tcGFyZUFnYWluc3QuYXBwZW5kKFdURk1vdmUoY29sb3JUb0NvbXBh
cmVBZ2FpbnN0KSk7CisgICAgfSB3aGlsZSAoY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFj
ZShhcmdzKSk7CisKKyAgICBpZiAoY29sb3JzVG9Db21wYXJlQWdhaW5zdC5zaXplKCkgPT0gMSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gb3JpZ2luQmFja2dyb3VuZENvbG9yTHVt
aW5hbmNlID0gb3JpZ2luQmFja2dyb3VuZENvbG9yLmx1bWluYW5jZSgpOworCisgICAgc2l6ZV90
IGluZGV4T2ZDb2xvcldpdGhIaWdlc3RDb250cmFzdFJhdGlvID0gMDsKKyAgICBmbG9hdCBoaWdo
ZXN0Q29udHJhc3RSYXRpb1NvRmFyID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNv
bG9yc1RvQ29tcGFyZUFnYWluc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byBjb250cmFz
dFJhdGlvID0gV2ViQ29yZTo6Y29udHJhc3RSYXRpbyhvcmlnaW5CYWNrZ3JvdW5kQ29sb3JMdW1p
bmFuY2UsIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaV0ubHVtaW5hbmNlKCkpOworICAgICAgICBp
ZiAoY29udHJhc3RSYXRpbyA+IGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIpIHsKKyAgICAgICAg
ICAgIGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIgPSBjb250cmFzdFJhdGlvOworICAgICAgICAg
ICAgaW5kZXhPZkNvbG9yV2l0aEhpZ2VzdENvbnRyYXN0UmF0aW8gPSBpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaW5kZXhPZkNvbG9yV2l0
aEhpZ2VzdENvbnRyYXN0UmF0aW9dOworfQorCiBzdHJ1Y3QgSHVlQ29sb3JBZGp1c3RlciB7CiAg
ICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAgU2hvcnRlciwKQEAgLTE5MjUsNiArMTk2OSw5
IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENT
U1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUNvbG9yQ29u
dHJhc3Q6CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckNvbnRyYXN0RnVuY3Rpb25QYXJhbWV0
ZXJzKGNvbG9yUmFuZ2UsIGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Zh
bHVlQ29sb3JNaXg6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvck1peEZ1bmN0aW9uUGFyYW1l
dGVycyhjb2xvclJhbmdlLCBjb250ZXh0KTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xv
ci5oIgogCisjaW5jbHVkZSAiQ29sb3JMdW1pbmFuY2UuaCIKICNpbmNsdWRlICJDb2xvclNlcmlh
bGl6YXRpb24uaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xMTEs
MTUgKzExMSwyNiBAQCBDb2xvciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogCiBmbG9hdCBDb2xv
cjo6bGlnaHRuZXNzKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkg
YXZvaWQgY29udmVyc2lvbiB0byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0
aG1zIGZvciBIU0wuCi0gICAgcmV0dXJuIFdlYkNvcmU6OmxpZ2h0bmVzcyh0b1NSR0JBTG9zc3k8
ZmxvYXQ+KCkpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHJlbWFpbmluZyB1c2VzIHdpdGggbHVt
aW5hbmNlLgorICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gdG9TUkdCQUxvc3N5PGZsb2F0PigpOwor
ICAgIGF1dG8gW21pbiwgbWF4XSA9IHN0ZDo6bWlubWF4KHsgciwgZywgYiB9KTsKKyAgICByZXR1
cm4gMC41ZiAqIChtYXggKyBtaW4pOwogfQogCiBmbG9hdCBDb2xvcjo6bHVtaW5hbmNlKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkgYXZvaWQgY29udmVyc2lvbiB0
byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0aG1zCi0gICAgLy8gZm9yIGx1
bWluYW5jZSAoZS5nLiBjb252ZXJ0VG9YWVooYykueUNvbXBvbmVudCgpKS4KLSAgICByZXR1cm4g
V2ViQ29yZTo6bHVtaW5hbmNlKHRvU1JHQkFMb3NzeTxmbG9hdD4oKSk7CisgICAgcmV0dXJuIGNh
bGxPblVuZGVybHlpbmdUeXBlKFsmXSAoY29uc3QgYXV0byYgdW5kZXJseWluZ0NvbG9yKSB7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpyZWxhdGl2ZUx1bWluYW5jZSh1bmRlcmx5aW5nQ29sb3Ip
OworICAgIH0pOworfQorCitmbG9hdCBDb2xvcjo6Y29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYg
Y29sb3JBLCBjb25zdCBDb2xvciYgY29sb3JCKQoreworICAgIHJldHVybiBjb2xvckEuY2FsbE9u
VW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3JBKSB7CisgICAg
ICAgIHJldHVybiBjb2xvckIuY2FsbE9uVW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1
bmRlcmx5aW5nQ29sb3JCKSB7CisgICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y29udHJhc3RS
YXRpbyh1bmRlcmx5aW5nQ29sb3JBLCB1bmRlcmx5aW5nQ29sb3JCKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CiB9CiAKIENvbG9yIENvbG9yOjpjb2xvcldpdGhBbHBoYShmbG9hdCBhbHBoYSkgY29u
c3QKQEAgLTE0NCw5ICsxNTUsOSBAQCBDb2xvciBDb2xvcjo6aW52ZXJ0ZWRDb2xvcldpdGhBbHBo
YShmbG9hCiAgICAgICAgIC8vIGJldHRlciBmb3Igbm9uLWludmVydGlibGUgY29sb3IgdHlwZXMg
bGlrZSBMYWIgb3IgY29uc2lkZXIgcmVtb3ZpbmcgdGhpcyBpbiBmYXZvcgogICAgICAgICAvLyBv
ZiBhbHRlcm5hdGl2ZXMuCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoQ29sb3JUeXBlOjpNb2RlbDo6
aXNJbnZlcnRpYmxlKQotICAgICAgICAgICAgcmV0dXJuIGludmVydGVkY29sb3JXaXRoT3ZlcnJp
ZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOworICAgICAgICAgICAgcmV0dXJuIGlu
dmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlk
ZGVuQWxwaGEoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4odW5kZXJseWluZ0NvbG9yKSwgYWxw
aGEpOworICAgICAgICAgICAgcmV0dXJuIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KHVuZGVybHlpbmdDb2xvciksIGFscGhhKTsKICAg
ICB9KTsKIH0KIApAQCAtMTY3LDYgKzE3OCwyMCBAQCBzdGQ6OnBhaXI8Q29sb3JTcGFjZSwgQ29s
b3JDb21wb25lbnRzPGZsCiAgICAgcmV0dXJuIHsgQ29sb3JTcGFjZTo6U1JHQiwgYXNDb2xvckNv
bXBvbmVudHMoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4oYXNJbmxpbmUoKSkpIH07CiB9CiAK
K2Jvb2wgQ29sb3I6OmlzQmxhY2tDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9y
KTsKKyAgICB9KTsKK30KKworYm9vbCBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICByZXR1cm4gY29sb3IuY2FsbE9uVW5kZXJseWluZ1R5cGUoW10gKGNvbnN0
IGF1dG8mIHVuZGVybHlpbmdDb2xvcikgeworICAgICAgICByZXR1cm4gV2ViQ29yZTo6aXNXaGl0
ZSh1bmRlcmx5aW5nQ29sb3IpOworICAgIH0pOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRzIDw8
IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbG9yKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gMjczNjMzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGx1bWlu
YW5jZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGxpZ2h0bmVzcygpIGNvbnN0
OyAvLyBGSVhNRTogUmVwbGFjZSByZW1haW5pbmcgdXNlcyB3aXRoIGx1bWluYW5jZS4KKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgZmxvYXQgY29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYsIGNv
bnN0IENvbG9yJik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiBkZWNsdHlwZShh
dXRvKSBjYWxsT25VbmRlcmx5aW5nVHlwZShGdW5jdG9yJiYpIGNvbnN0OwogCkBAIC00OTQsMjAg
KzQ5NSw2IEBAIGlubGluZSB2b2lkIENvbG9yOjpzZXRFeHRlbmRlZENvbG9yKFJlZjwKICAgICBB
U1NFUlQoaXNFeHRlbmRlZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgQ29sb3I6OmlzQmxhY2tDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbG9yLmNhbGxPblVuZGVybHlp
bmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3IpIHsKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9yKTsKLSAgICB9KTsKLX0KLQotaW5saW5l
IGJvb2wgQ29sb3I6OmlzV2hpdGVDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzV2hpdGUodW5kZXJseWluZ0NvbG9y
KTsKLSAgICB9KTsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBDb2xvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTHVtaW5hbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JMdW1pbmFu
Y2UuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpCit7CisgICAgLy8g
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVsYXRpdmVfbHVtaW5hbmNlCisKKyAgICAv
LyBGSVhNRTogVGhpcyBjYW4gYmUgb3B0aW1pemVkIGEgYml0IGJ5IG9ic2VydmluZyB0aGF0IGlu
IHNvbWUgY2FzZXMgdGhlIGNvbnZlcnNpb24KKyAgICAvLyB0byBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENjU+IGluIGl0cyBlbnRpcmV0eSBpcyB1bm5lY2Vzc2FyeSB0byBnZXQganVzdCB0aGUg
WQorICAgIC8vIGNvbXBvbmVudC4gRm9yIGluc3RhbmNlLCBmb3IgU1JHQkE8ZmxvYXQ+LCB0aGlz
IGNvdWxkIGJlIGRvbmUgYXM6CisgICAgLy8KKyAgICAvLyAgICAgY29udmVydENvbG9yPExpbmVh
clNSR0JBPGZsb2F0Pj4oY29sb3IpICogTGluZWFyU1JHQkE8ZmxvYXQ+OjpsaW5lYXJUb1hZWi5y
b3coMSkKKyAgICAvLworICAgIC8vIChmb3IgYSBoeXBvdGhldGljYWwgcm93KCkgZnVuY3Rpb24g
b24gQ29sb3JNYXRyaXgpLiBXZSB3b3VsZCBwcm9iYWJseSB3YW50IHRvIGltcGxlbWVudAorICAg
IC8vIHRoaXMgaW4gQ29sb3JDb252ZXJzaW9uLmggYXMgYSBzaWJsaW5nIGZ1bmN0aW9uIHRvIGNv
bnZlcnRDb2xvciB3aGljaCBjYW4gZ2V0IGEgY2hhbm5lbAorICAgIC8vIG9mIGEgY29sb3IgaW4g
YW5vdGhlciBzcGFjZSBpbiB0aGlzIGtpbmQgb2Ygb3B0aW1hbCB3YXkuCisKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55OworfQor
CitpbmxpbmUgZmxvYXQgY29udHJhc3RSYXRpbyhmbG9hdCByZWxhdGl2ZUx1bWluYW5jZUEsIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlQikKK3sKKyAgICAvLyBVc2VzIHRoZSBXQ0FHIDIuMCBkZWZp
bml0aW9uIG9mIGNvbnRyYXN0IHJhdGlvLgorICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9X
Q0FHMjAvI2NvbnRyYXN0LXJhdGlvZGVmCisgICAgYXV0byBsaWdodGVyTHVtaW5hbmNlID0gcmVs
YXRpdmVMdW1pbmFuY2VBOworICAgIGF1dG8gZGFya2VyTHVtaW5hbmNlID0gcmVsYXRpdmVMdW1p
bmFuY2VCOworCisgICAgaWYgKGxpZ2h0ZXJMdW1pbmFuY2UgPCBkYXJrZXJMdW1pbmFuY2UpCisg
ICAgICAgIHN0ZDo6c3dhcChsaWdodGVyTHVtaW5hbmNlLCBkYXJrZXJMdW1pbmFuY2UpOworCisg
ICAgcmV0dXJuIChsaWdodGVyTHVtaW5hbmNlICsgMC4wNSkgLyAoZGFya2VyTHVtaW5hbmNlICsg
MC4wNSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZUEsIHR5cGVuYW1lIENvbG9y
VHlwZUI+IGlubGluZSBmbG9hdCBjb250cmFzdFJhdGlvKGNvbnN0IENvbG9yVHlwZUEmIGNvbG9y
QSwgY29uc3QgQ29sb3JUeXBlQiYgY29sb3JCKQoreworICAgIHJldHVybiBjb250cmFzdFJhdGlv
KHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQSksIHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQikpOwor
fQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxp
dGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDM5ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3JVdGlsaXRp
ZXMuaCIKIAotI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAg
IGF1dG8gW3IsIGcsIGIsIGFdID0gY29sb3I7Ci0gICAgYXV0byBbbWluLCBtYXhdID0gc3RkOjpt
aW5tYXgoeyByLCBnLCBiIH0pOwotICAgIHJldHVybiAwLjVmICogKG1heCArIG1pbik7Ci19Ci0K
LWZsb2F0IGx1bWluYW5jZShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIC8vIE5P
VEU6IFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgY29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55Ci0gICAgLy8gRklNWEU6IElmIHdlIGNhbiBnZW5lcmFs
aXplIENvbG9yTWF0cml4IGEgYml0IG1vcmUsIGl0IG1pZ2h0IGJlIG5pY2UgdG8gd3JpdGUgdGhp
cyBhczoKLSAgICAvLyAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+
Pihjb2xvcikgKiBsaW5lYXJTUkdCVG9YWVpNYXRyaXgucm93KDEpOwotICAgIGF1dG8gW3IsIGcs
IGIsIGFdID0gY29udmVydENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotICAgIHJl
dHVybiAwLjIxMjZmICogciArIDAuNzE1MmYgKiBnICsgMC4wNzIyZiAqIGI7Ci19Ci0KLWZsb2F0
IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvckEsIGNvbnN0IFNSR0JBPGZs
b2F0PiYgY29sb3JCKQotewotICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2Yg
Y29udHJhc3QgcmF0aW8uCi0gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC8jY29u
dHJhc3QtcmF0aW9kZWYKLSAgICBmbG9hdCBsaWdodGVyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNv
bG9yQSk7Ci0gICAgZmxvYXQgZGFya2VyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNvbG9yQik7Ci0K
LSAgICBpZiAobGlnaHRlckx1bWluYW5jZSA8IGRhcmtlckx1bWluYW5jZSkKLSAgICAgICAgc3Rk
Ojpzd2FwKGxpZ2h0ZXJMdW1pbmFuY2UsIGRhcmtlckx1bWluYW5jZSk7Ci0KLSAgICByZXR1cm4g
KGxpZ2h0ZXJMdW1pbmFuY2UgKyAwLjA1KSAvIChkYXJrZXJMdW1pbmFuY2UgKyAwLjA1KTsKLX0K
LQogU1JHQkE8ZmxvYXQ+IHByZW11bHRpcGxpZWQoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IGNvbG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCShyZXZpc2lvbiAyNzM2
MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGx1bWluYW5j
ZShjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8
ZmxvYXQ+JiwgY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci0KIFNSR0JBPGZsb2F0PiBwcmVtdWx0aXBs
aWVkKGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogU1JHQkE8ZmxvYXQ+IHVucHJlbXVsdGlwbGllZChj
b25zdCBTUkdCQTxmbG9hdD4mKTsKIApAQCAtNTUsOCArNTEsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2xvclR5cGUsIHR5cGVuYW1lIEZ1CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNv
bnN0ZXhwciBDb2xvclR5cGUgY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9yVHlw
ZSYsIHVpbnQ4X3Qgb3ZlcnJpZGVBbHBoYSk7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IENvbG9yVHlwZSBjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiwgZmxv
YXQgb3ZlcnJpZGVBbHBoYSk7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3Rl
eHByIENvbG9yVHlwZSBpbnZlcnRlZGNvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xv
clR5cGUmLCB1aW50OF90IG92ZXJyaWRlQWxwaGEpOwotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBDb2xvclR5cGUgaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29s
b3JUeXBlJiwgZmxvYXQgb3ZlcnJpZGVBbHBoYSk7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5
cGU+IGNvbnN0ZXhwciBDb2xvclR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEo
Y29uc3QgQ29sb3JUeXBlJiwgdWludDhfdCBvdmVycmlkZUFscGhhKTsKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbG9yVHlwZT4gQ29sb3JUeXBlIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnN0IENvbG9yVHlwZSYsIGZsb2F0IG92ZXJyaWRlQWxwaGEpOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lX3Y8
dHlwZW5hbWUgQ29sb3JUeXBlOjpNb2RlbCwgUkdCTW9kZWw8dHlwZW5hbWUgQ29sb3JUeXBlOjpD
b21wb25lbnRUeXBlPj4+KiA9IG51bGxwdHI+IGNvbnN0ZXhwciBib29sIGlzQmxhY2soY29uc3Qg
Q29sb3JUeXBlJik7CiB0ZW1wbGF0ZTxXaGl0ZVBvaW50IFc+IGNvbnN0ZXhwciBib29sIGlzQmxh
Y2soY29uc3QgWFlaQTxmbG9hdCwgVz4mKTsKQEAgLTEyMSw3ICsxMTcsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2xvclR5cGU+IENvbG9yVHlwZSBjCiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIENvbG9yVHlwZSBpbnZlcnRlZGNv
bG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xvclR5cGUmIGNvbG9yLCB1aW50OF90IG92
ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNvbnN0ZXhwciBDb2xv
clR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiBj
b2xvciwgdWludDhfdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3NlcnQoQ29sb3JU
eXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApAQCAtMTM1LDcgKzEzMSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIEMKICAgICByZXR1cm4gbWFrZUZyb21Db21w
b25lbnRzPENvbG9yVHlwZT4oY29weSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gQ29sb3JUeXBlIGludmVydGVkY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9y
VHlwZSYgY29sb3IsIGZsb2F0IG92ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IENvbG9yVHlwZSBpbnZlcnRlZENvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBD
b2xvclR5cGUmIGNvbG9yLCBmbG9hdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3Nl
cnQoQ29sb3JUeXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA3
LDcgKzE0MDcsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6ZGlzYWJsZWRUZXh0Q29sb3IoY29uCiAg
ICAgLy8gSWYgdGhlcmUncyBub3QgdmVyeSBtdWNoIGNvbnRyYXN0IGJldHdlZW4gdGhlIGRpc2Fi
bGVkIGNvbG9yIGFuZCB0aGUgYmFja2dyb3VuZCBjb2xvciwKICAgICAvLyBqdXN0IGxlYXZlIHRo
ZSB0ZXh0IGNvbG9yIGFsb25lLiBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSBhIGdvb2QgY29udHJh
c3QgY29sb3Igc2NoZW1lIHNvIHRoYXQgaXQgaGFzIHJlYWxseSBiYWQgY29udHJhc3QuCiAgICAg
Ly8gSWYgdGhlIGNvbnRyYXN0IHdhcyBhbHJlYWR5IHBvb3IsIHRoZW4gaXQgZG9lc24ndCBkbyBh
bnkgZ29vZCB0byBjaGFuZ2UgaXQgdG8gYSBkaWZmZXJlbnQgcG9vciBjb250cmFzdCBjb2xvciBz
Y2hlbWUuCi0gICAgaWYgKGNvbnRyYXN0UmF0aW8oZGlzYWJsZWRDb2xvci50b1NSR0JBTG9zc3k8
ZmxvYXQ+KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpIDwgbWluQ29s
b3JDb250cmFzdFZhbHVlKQorICAgIGlmIChDb2xvcjo6Y29udHJhc3RSYXRpbyhkaXNhYmxlZENv
bG9yLCBiYWNrZ3JvdW5kQ29sb3IpIDwgbWluQ29sb3JDb250cmFzdFZhbHVlKQogICAgICAgICBy
ZXR1cm4gdGV4dENvbG9yOwogCiAgICAgcmV0dXJuIGRpc2FibGVkQ29sb3I7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDI3MzYz
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgYm9vbCB0ZXh0Q29sb3JJc0xlZ2libGVBZ2FpbnN0
QmFja2dyb3VuZAogewogICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2YgbGVn
aWJpbGl0eTogYSBjb250cmFzdCByYXRpbyBvZiA0LjU6MSBvciBncmVhdGVyLgogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAvI3Zpc3VhbC1hdWRpby1jb250cmFzdC1jb250cmFz
dAotICAgIHJldHVybiBjb250cmFzdFJhdGlvKHRleHRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+
KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpID4gNC41OworICAgIHJl
dHVybiBDb2xvcjo6Y29udHJhc3RSYXRpbyh0ZXh0Q29sb3IsIGJhY2tncm91bmRDb2xvcikgPiA0
LjU7CiB9CiAKIHN0YXRpYyBDb2xvciBhZGp1c3RDb2xvckZvclZpc2liaWxpdHlPbkJhY2tncm91
bmQoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYzMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2Vp
bmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENT
UyBDb2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctY29sb3ItY29udHJh
c3QuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBwYXJzaW5nIGFuZCBjb21wdXRlZCBzdHlsZSBj
b21wdXRhdGlvbiB0ZXN0cyBmb3IgY29sb3ItY29udGFzdCgpLgorCiAyMDIxLTAyLTI3ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAn
cGl4ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFz
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorVGVzdCB0aGUg
cGFyc2luZyBvZiBDU1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworY29sb3ItY29udHJhc3QoLi4uIHZzIC4uLiwgLi4uKQorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KHdoaXRlIHZz
IHJlZCwgYmx1ZSkiKSBpcyAicmdiKDAsIDAsIDI1NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUgdnMgYmx1ZSwgcmVkKSIpIGlz
ICJyZ2IoMCwgMCwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQsIGJsdWUsIGdyZWVuKSIpIGlzICJyZ2IoMCwg
MCwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1j
b250cmFzdCh3aGl0ZSB2cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChi
bHVlIHZzIHJlZCwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwg
d2hpdGUsIHJlZCkiKSBpcyAicmdiKDI1NSwgMjU1LCAyNTUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSki
KSBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiY29sb3ItY29udHJhc3QoYmxhY2sgdnMgYmx1ZSwgcmVkKSIpIGlzICJyZ2IoMjU1LCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250
cmFzdChibGFjayB2cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQg
dnMgYmx1ZSwgcmdiKDI1NSwgMjU1LCAyNTUsIC41KSkiKSBpcyAicmdiYSgyNTUsIDI1NSwgMjU1
LCAwLjUpIgorCitUZXN0IG5vbi1zUkdCIGNvbG9ycworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMg
MCAxIDApLCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSkiKSBpcyAiY29sb3IoZGlzcGxheS1wMyAw
IDEgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29u
dHJhc3QoY29sb3IoZGlzcGxheS1wMyAxIDEgMCkgdnMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCks
IGNvbG9yKGRpc3BsYXktcDMgMCAwIDEpKSIpIGlzICJjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChn
cmVlbiB2cyBsYWIoNTAlIC0xNjAgMTYwKSwgbGNoKDIwJSA1MCAyMGRlZykpIikgaXMgImxjaCgy
MCUgNTAgMjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9y
LWNvbnRyYXN0KGxhYig1MCUgLTE2MCAxNjApIHZzIGdyZWVuLCBsY2goMjAlIDUwIDIwZGVnKSki
KSBpcyAibGNoKDIwJSA1MCAyMCkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUgdnMgcmVkLCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250
cmFzdCh3aGl0ZSB2cyApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3ItY29udHJhc3Qod2hpdGUgdnMgcmVkIGdyZWVuKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctY29sb3ItY29udHJhc3QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWNvbG9yLWNvbnRyYXN0Lmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250
cmFzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ1NTQ29sb3JDb250cmFzdEVuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgQ1NTIENvbG9yIDUgY29sb3ItY29udHJhc3QoKS4iKTsK
KworICAgIGZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9w
ZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENv
bXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1
ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRQcm9wZXJ0eShwcm9wZXJ0eSwg
dmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdj
b21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVj
dGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQodmFsdWUsIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgdGVzdENvbXB1dGVkUHJvcGVydHkoImJhY2tncm91bmQtY29sb3Ii
LCB2YWx1ZSwgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdjb2xvci1jb250cmFzdCgu
Li4gdnMgLi4uLCAuLi4pJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdo
aXRlIHZzIHJlZCwgYmx1ZSlgLCBgcmdiKDAsIDAsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIGJsdWUsIHJlZClgLCBgcmdiKDAsIDAsIDI1NSlgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwgYmx1ZSwgZ3Jl
ZW4pYCwgYHJnYigwLCAwLCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBjb2xvci1jb250cmFz
dCh3aGl0ZSB2cyB3aGl0ZSwgd2hpdGUpYCwgYHJnYigyNTUsIDI1NSwgMjU1KWApOworICAgIHRl
c3RDb21wdXRlZChgY29sb3ItY29udHJhc3QoYmx1ZSB2cyByZWQsIHdoaXRlKWAsIGByZ2IoMjU1
LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHJlZCB2cyBi
bHVlLCB3aGl0ZSwgcmVkKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSlgLCBgcmdiKDI1NSwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIGJsdWUsIHJlZClg
LCBgcmdiKDI1NSwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJs
YWNrIHZzIHdoaXRlLCB3aGl0ZSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwgcmdiKDI1NSwgMjU1LCAyNTUsIC41
KSlgLCBgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpYCk7CisKKyAgICBkZWJ1ZygnJyk7CisgICAg
ZGVidWcoJ1Rlc3Qgbm9uLXNSR0IgY29sb3JzJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9y
LWNvbnRyYXN0KGdyZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApLCBjb2xvcihkaXNwbGF5
LXAzIDAgMCAxKSlgLCBgY29sb3IoZGlzcGxheS1wMyAwIDEgMClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGNvbG9yLWNvbnRyYXN0KGNvbG9yKGRpc3BsYXktcDMgMSAxIDApIHZzIGNvbG9yKGRpc3Bs
YXktcDMgMCAxIDApLCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSlgLCBgY29sb3IoZGlzcGxheS1w
MyAwIDAgMSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGxh
Yig1MCUgLTE2MCAxNjApLCBsY2goMjAlIDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGxhYig1MCUgLTE2MCAxNjApIHZzIGdy
ZWVuLCBsY2goMjAlIDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsKKworICAgIGRlYnVn
KCcnKTsKKyAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworCisgICAgdGVzdENvbXB1
dGVkKGBjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZz
IClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgY29sb3ItY29udHJh
c3Qod2hpdGUpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9y
LWNvbnRyYXN0KHdoaXRlIHZzIHJlZCBncmVlbilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCis8
L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421829</attachid>
            <date>2021-03-01 08:41:41 -0800</date>
            <delta_ts>2021-03-01 15:30:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222530-20210228181640.patch</filename>
            <type>text/plain</type>
            <size>40067</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENTUyBD
b2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorICAgICAgICBBZGQgbmV3IGV4cGVyaW1lbnRhbCBwcmVmZXJlbmNlIGZv
ciBDU1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpCisgICAgICAgIHdoaWNoIGlzIG9mZiBieSBk
ZWZhdWx0LgorCiAyMDIxLTAyLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291cDMgdmVyc2lvbiB0byAy
Ljk5LjEKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShyZXZpc2lvbiAyNzM2MzMp
CisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMywxOCBAQCBDRk5ldHdvcmtO
ZXR3b3JrTG9hZGVyRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQog
CitDU1NDb2xvckNvbnRyYXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIkNTUyBjb2xvci1jb250cmFzdCgpIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJFbmFibGUgc3VwcG9ydCBmb3IgQ1NTIGNvbG9yLWNvbnRyYXN0KCkgZGVmaW5lZCBpbiBDU1Mg
Q29sb3IgNSIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ1NTQ29sb3JNaXhFbmFibGVkOgogICB0eXBlOiBi
b29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIGNvbG9yLW1peCgpIgpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjczNjM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsODggQEAKKzIwMjEtMDItMjggIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgQ1NTIENv
bG9yIDUgY29sb3ItY29udHJhc3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIG9mZiBieSBkZWZhdWx0IGFuZCBjYW4gYmUg
ZW5hYmxlZCB2aWEgdGhlIENTU0NvbG9yQ29udHJhc3RFbmFibGVkCisgICAgICAgIGV4cGVyaW1l
bnRhbCBwcmVmZXJlbmNlIGZsYWcuCisKKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBoYXMg
dGhlIHNhbWUgcmVzdHJpY3Rpb24gb24gaXQgdGhhdCB0aGUgcmVjZW50bHkgbGFuZGVkCisgICAg
ICAgIFJlbGF0aXZlIENvbG9yIFN5bnRheCBhbmQgY29sb3ItbWl4KCkgZG8sIGluIHRoYXQgaXQg
ZG9lcyBzdXBwb3J0IHN5c3RlbSBjb2xvcnMKKyAgICAgICAgb3IgY3VycmVudENvbG9yIGFzIGlu
cHV0LCBzaW5jZSB0aG9zZSBjYW4ndCBiZSByZXNvbHZlZCBhdCBwYXJzZSB0aW1lLiBVbHRpbWF0
ZWx5LAorICAgICAgICB3ZSB3aWxsIG5lZWQgdG8gYWRkIGEgbGF0ZSBiaW5kaW5nIHZlcnNpb24g
b2YgdGhpcyBmb3IgdGhvc2UgY2FzZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2lu
Zy1jb2xvci1jb250cmFzdC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBD
b2xvckx1bWluYW5jZS5oIGhlYWRlciB3aGVyZSB0aGUgZ2VuZXJpYyByZWxhdGl2ZSBsdW1pbmFu
Y2UgYW5kIGNvbnRyYXN0IHJhdGlvCisgICAgICAgIGZ1bmN0aW9ucyBsaXZlLgorCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCBuZXcga2V5d29yZHMsIGNv
bG9yLWNvbnRyYXN0IGFuZCB2cywgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUgY29sb3ItY29udHJh
c3QoKSBmdW5jdGlvbi4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHA6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6CisgICAgICAgIEFk
ZCBhIHNldHRpbmcgZm9yIGNvbG9yLWNvbnRyYXN0LgorCisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVu
Y3Rpb24pOgorICAgICAgICBBZGQgcGFyc2luZyBhbmQgY29tcHV0YXRpb24gb2YgY29sb3ItY29u
dHJhc3QoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxpZ2h0bmVzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpsdW1pbmFuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udHJhc3RSYXRp
byk6IERlbGV0ZWQuCisgICAgICAgIE1vdmVkIGx1bWluYW5jZSByZWxhdGVkIGZ1bmN0aW9ucyB0
byBDb2xvckx1bWluYW5jZS5oIGFuZCBpbmxpbmVkIGxpZ2h0bmVzcworICAgICAgICB0byBpdHMg
b25lIGNhbGxlciwgQ29sb3IgYW5kIG5vdGVkIGl0IHNob3VsZCBiZSByZW1vdmVkLgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOgorICAgICAgICAo
V2ViQ29yZTo6aW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEpOiBEZWxldGVkLgorICAg
ICAgICBGaXggY2FwaXRhbGl6YXRpb24gaXNzdWUgc2Vlbi4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVy
cmlkZGVuQWxwaGEgLT4gaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xv
cjo6bGlnaHRuZXNzIGNvbnN0KToKKyAgICAgICAgSW5saW5lIGltcGxlbWVudGF0aW9uIGFuZCBh
ZGQgY29tbWVudCBleHBsYWluaW5nIGl0IHNob3VsZCBiZSByZW1vdmVkLgorCisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6bHVtaW5hbmNlIGNvbnN0KToKKyAgICAgICAgUmUtd3JpdGUgdG8gdXNl
IHRoZSBuZXcgV2ViQ29yZTo6cmVsYXRpdmVMdW1pbmFuY2UgdGhhdCB3b3JrcyBmb3IgYW55IGNv
bG9yIHR5cGUKKyAgICAgICAgd2l0aG91dCBjb252ZXJzaW9uIHRvIHNSR0IuCisKKyAgICAgICAg
KFdlYkNvcmU6OkNvbG9yOjpjb250cmFzdFJhdGlvKToKKyAgICAgICAgQWRkIGhlbHBlciB0byBj
YWxsIGdlbmVyaWMgV2ViQ29yZTo6Y29udHJhc3RSYXRpbyB0aGF0IHdvcmtzIG9uIGFueSBjb2xv
ciB0eXBlcworICAgICAgICB0byBhdm9pZCBjYWxsZXJzIG5lZWRpbmcgdG8gZG8gdGhlIHVuZm9s
ZGluZyB0aGVtc2VsdmVzLgorIAorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxhY2tDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzQmxh
Y2tDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNXaGl0ZUNvbG9y
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVzZSByYXJlIGZ1bmN0aW9ucyBvdXQgb2YgbGlu
ZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBwbGFjZXMgaW4gdGhlIGhlYWRlciB3ZSBhcmUKKyAg
ICAgICAgY2FsbGluZyBjYWxsT25VbmRlcmx5aW5nVHlwZSgpLCB3aGljaCBwcm9kdWNlcyBjb2Rl
IGxpbmVyYWxseSB3aXRoIHRoZSBudW1iZXIgb2YgY29sb3Igc3BhY2VzCisgICAgICAgIHN1cHBv
cnRlZC4gQ2FsbGluZyBpdCBpbiB0aGUgY3BwIGZpbGVzIG1lYW5zIHdlIG9ubHkgZXhwYW5kIGl0
IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJlbGF0aXZlTHVtaW5h
bmNlKToKKyAgICAgICAgVGhpcyBpcyBhIGdlbmVyaWMgdmVyc2lvbiBvZiB0aGUgb2xkIGx1bWlu
YW5jZSBmdW5jdGlvbiB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZQorICAgICAgICBieSBj
b252ZXJ0aW5nIHRvIFhZWiBhbmQgdGFraW5nIHRoZSBZIGNvbXBvbmVudC4gVGhlIG9sZCBmdW5j
dGlvbiByZXF1aXJlZCBhbHdheXMKKyAgICAgICAgY29udmVydGluZyB0byBzUkdCIHdoaWNoIGNv
dWxkIGJlIGxvc3N5LgorCisgICAgICAgIChXZWJDb3JlOjpjb250cmFzdFJhdGlvKToKKyAgICAg
ICAgU3BsaXQgb3V0IGNvbXB1dGF0aW9uIG9mIGNvbnRyYXN0UmF0aW8gYmFzZWQgb24gcmVsYXRp
dmUgbHVtaW5hY2UgZmxvYXRzIGludG8gaXRzIG93bgorICAgICAgICBmdW5jdGlvbiBzbyB0aGF0
IGlmIHdlIGhhdmUgdGhlIHJlbGF0aXZlIGx1bWluYW5jZSBjb21wdXRlZCBhbHJlYWR5LCB3ZSBk
b24ndCBoYXZlIHRvCisgICAgICAgIHJlY29tcHV0ZSBpdC4gQWRkIHZlcnNpb24gY29udHJhc3RS
YXRpbyB0aGF0IHdvcmtzIGZvciBhbnkgY29sb3IgdHlwZSB1dGlsaXppbmcgdGhlCisgICAgICAg
IGdlbmVyaWMgcmVsYXRpdmVMdW1pbmFuY2UgZnVuY3Rpb24gYWJvdmUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OmRpc2FibGVkVGV4dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJh
Y2tncm91bmRDb2xvcik6CisgICAgICAgIFVwZGF0ZSB0byB1c2UgbmV3IENvbG9yOjpjb250cmFz
dFJhdGlvIGhlbHBlciB0aGF0IGhhbmRsZXMgYWxsIGNvbG9yIHR5cGVzLgorCiAyMDIxLTAyLTI4
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZWR1Y2Ug
dXNlIG9mIHJldGFpbi9yZWxlYXNlIGluIFdBS1dpbmRvdyBhbmQgcmVtb3ZlIHVubmVlZGVkIG1l
dGhvZHMgZnJvbSB0aGF0IGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI3
MzYzMykKKysrIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTExNjYsNiArMTE2Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNo
LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckx1bWluYW5jZS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JNYXRyaXguaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTW9kZWxz
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjczNjMzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcyLDYgKzM5NzIsNyBAQAogCQlCQzQ5MThD
NzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYg
LyogSlNIVE1MRnJhbWVFbGVtZW50LmggKi87IH07CiAJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMx
NiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1l
RWxlbWVudC5oICovOyB9OwogCQlCQzQ5MUI3OTBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
OyB9OworCQlCQzRBMjNFQzI1RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEEyM0VCMjVFQzE2
MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNEE1MzIzMjU2MDUyNzYwMDI4QzU5MiAvKiBFZGl0
YWJsZUxpbmtCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8qIEVkaXRhYmxlTGlua0JlaGF2aW9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM0
QTUzMjUyNTYwNTU1RjAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkM0QTUzMjcyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1
MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MDM0LDYg
KzE0MDM1LDcgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8q
IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTIzRUIyNUVDMTYwMjAwQUFDNjMw
IC8qIENvbG9yTHVtaW5hbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yTHVtaW5hbmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBF
ZGl0YWJsZUxpbmtCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0YWJsZUxpbmtCZWhhdmlv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRBNTMyNDI1NjA1NTU5MDAyOEM1
OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjU5LDYgKzI2NjYx
LDcgQEAKIAkJCQkzMTAzQjdERTFEQjAxNTU2MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggKi8sCiAJ
CQkJN0NBQzZBRTgyNDdGMDgyMDAwRTYxRDU5IC8qIENvbG9yTWF0cml4LmggKi8sCiAJCQkJQkMx
MDEzN0IyNUMzNjI0QjAwREM3NzNDIC8qIENvbG9yTW9kZWxzLmggKi8sCisJCQkJQkM0QTIzRUIy
NUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5hbmNlLmggKi8sCiAJCQkJN0NEMUU2OTIyNEFC
RjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEy
NEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXphdGlvbi5oICovLAogCQkJCUJDQUZFREFG
MjU5NjZEMDUwMDMwRTZBQSAvKiBDb2xvclNwYWNlLmNwcCAqLywKQEAgLTMxMTQ1LDggKzMxMTQ4
LDYgQEAKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTGVnYWN5TW9ja0NETS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50
RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyog
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwNThBREMx
RDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTA1
OEFERTFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE1N0VCRkIxRTNBQjY3RjAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ2RjNFOTExQzFFQ0IyRjAwNjFEQkQ0IC8q
IE1vY2tQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5N0YwNDgxOURENDE0MDAw
MUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3
Miw2ICszMTg3Myw3IEBACiAJCQkJQTg4MkRBMjMxNTkzODQ4RDAwMDExNUVEIC8qIENTU1RvU3R5
bGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNUFENzIxMjA1MDUxM0YwMEQ1OTJEQyAvKiBD
U1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0Uw
RDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEEyM0VD
MjVFQzE2MDIwMEFBQzYzMCAvKiBDb2xvckx1bWluYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2QjcwN0EyMzdCQzM2RDAwNTJDQTQ3IC8qIENTU1VuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShy
ZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQzNCw2ICsxNDM0LDEwIEBAIHByb3Bob3RvLXJnYgogLy8g
c1JHQgogeHl6CiAKKy8vIGNvbG9yLWNvbnRhc3QoKQorY29sb3ItY29udHJhc3QKK3ZzCisKIC8v
IGNvbG9yLW1peCgpCiBjb2xvci1taXgKIHNob3J0ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMjczNjMzKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0
KGNvbnN0CiAgICAgLCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgc2hlZXRCYXNlVVJMLmlz
TnVsbCgpIHx8IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChiYXNlVVJMKSB9
CiAgICAgLCB1c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQu
cGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZSB9CiAgICAgLCBhc3BlY3RSYXRp
b0VuYWJsZWQgeyBkb2N1bWVudC5zZXR0aW5ncygpLmFzcGVjdFJhdGlvRW5hYmxlZCgpIH0KKyAg
ICAsIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvckNv
bnRyYXN0RW5hYmxlZCgpIH0KICAgICAsIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGRvY3VtZW50LnNl
dHRpbmdzKCkuY29sb3JGaWx0ZXJFbmFibGVkKCkgfQogICAgICwgY29sb3JNaXhFbmFibGVkIHsg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NDb2xvck1peEVuYWJsZWQoKSB9CiAgICAgLCBjb25zdGFu
dFByb3BlcnRpZXNFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jb25zdGFudFByb3BlcnRp
ZXNFbmFibGVkKCkgfQpAQCAtMTA2LDYgKzEwNyw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiAKICAgICAgICAgJiYgYS5pc0NvbnRlbnRPcGFxdWUgPT0gYi5pc0Nv
bnRlbnRPcGFxdWUKICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lz
dGVtQXBwZWFyYW5jZQogICAgICAgICAmJiBhLmFzcGVjdFJhdGlvRW5hYmxlZCA9PSBiLmFzcGVj
dFJhdGlvRW5hYmxlZAorICAgICAgICAmJiBhLmNvbG9yQ29udHJhc3RFbmFibGVkID09IGIuY29s
b3JDb250cmFzdEVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvckZpbHRlckVuYWJsZWQgPT0gYi5j
b2xvckZpbHRlckVuYWJsZWQKICAgICAgICAgJiYgYS5jb2xvck1peEVuYWJsZWQgPT0gYi5jb2xv
ck1peEVuYWJsZWQKICAgICAgICAgJiYgYS5jb25zdGFudFByb3BlcnRpZXNFbmFibGVkID09IGIu
Y29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmgJKHJldmlzaW9uIDI3MzYzMykKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNldHRpbmdzLgogICAgIGJvb2wgYXNwZWN0UmF0
aW9FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGNvbG9yQ29udHJhc3RFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIGNvbG9yRmlsdGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBj
b2xvck1peEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uc3RhbnRQcm9wZXJ0aWVzRW5h
YmxlZCB7IGZhbHNlIH07CkBAIC0xMDksMzEgKzExMCwzMiBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29u
dGV4dEhhc2ggewogICAgICAgICAgICAgJiBrZXkuaXNDb250ZW50T3BhcXVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgMgogICAgICAgICAgICAgJiBrZXkudXNlU3lzdGVtQXBwZWFyYW5j
ZSAgICAgICAgICAgICAgICAgICAgICAgPDwgMwogICAgICAgICAgICAgJiBrZXkuYXNwZWN0UmF0
aW9FbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNAotICAgICAgICAgICAgJiBrZXku
Y29sb3JGaWx0ZXJFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgNQotICAgICAgICAg
ICAgJiBrZXkuY29sb3JNaXhFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNgot
ICAgICAgICAgICAgJiBrZXkuY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCAgICAgICAgICAgICAg
ICAgPDwgNwotICAgICAgICAgICAgJiBrZXkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkICAgICAg
ICAgICAgICAgICAgPDwgOAotICAgICAgICAgICAgJiBrZXkuZW5mb3JjZXNDU1NNSU1FVHlwZUlu
Tm9RdWlya3NNb2RlICAgICAgICAgPDwgOQotICAgICAgICAgICAgJiBrZXkuaW5kaXZpZHVhbFRy
YW5zZm9ybVByb3BlcnRpZXNFbmFibGVkICAgICAgPDwgMTAKKyAgICAgICAgICAgICYga2V5LmNv
bG9yQ29udHJhc3RFbmFibGVkICAgICAgICAgICAgICAgICAgICAgIDw8IDUKKyAgICAgICAgICAg
ICYga2V5LmNvbG9yRmlsdGVyRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgIDw8IDYKKyAg
ICAgICAgICAgICYga2V5LmNvbG9yTWl4RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDcKKyAgICAgICAgICAgICYga2V5LmNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgICAgICAg
ICAgICAgICAgIDw8IDgKKyAgICAgICAgICAgICYga2V5LmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCAgICAgICAgICAgICAgICAgIDw8IDkKKyAgICAgICAgICAgICYga2V5LmVuZm9yY2VzQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSAgICAgICAgIDw8IDEwCisgICAgICAgICAgICAmIGtleS5pbmRp
dmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQgICAgICA8PCAxMQogI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0gICAgICAgICAgICAmIGtleS5sZWdhY3lPdmVyZmxv
d1Njcm9sbGluZ1RvdWNoRW5hYmxlZCAgICAgICA8PCAxMQorICAgICAgICAgICAgJiBrZXkubGVn
YWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaEVuYWJsZWQgICAgICAgPDwgMTIKICNlbmRpZgotICAg
ICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
PDwgMTIKLSAgICAgICAgICAgICYga2V5LnJlbGF0aXZlQ29sb3JTeW50YXhFbmFibGVkICAgICAg
ICAgICAgICAgIDw8IDEzCi0gICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhhdmlvckVuYWJsZWQg
ICAgICAgICAgICAgICAgICAgICA8PCAxNAotICAgICAgICAgICAgJiBrZXkuc3ByaW5nVGltaW5n
RnVuY3Rpb25FbmFibGVkICAgICAgICAgICAgICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5Lm92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEzCisgICAgICAgICAg
ICAmIGtleS5yZWxhdGl2ZUNvbG9yU3ludGF4RW5hYmxlZCAgICAgICAgICAgICAgICA8PCAxNAor
ICAgICAgICAgICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgPDwgMTUKKyAgICAgICAgICAgICYga2V5LnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCAg
ICAgICAgICAgICAgIDw8IDE2CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSAgICAgICAg
ICAgICYga2V5LnRleHRBdXRvc2l6aW5nRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDE2
CisgICAgICAgICAgICAmIGtleS50ZXh0QXV0b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAg
ICAgICA8PCAxNwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19UUkFOU0ZPUk1fU1RZTEVfT1BUSU1J
WkVEXzNEKQotICAgICAgICAgICAgJiBrZXkudHJhbnNmb3JtU3R5bGVPcHRpbWl6ZWQzREVuYWJs
ZWQgICAgICAgICAgPDwgMTcKKyAgICAgICAgICAgICYga2V5LnRyYW5zZm9ybVN0eWxlT3B0aW1p
emVkM0RFbmFibGVkICAgICAgICAgIDw8IDE4CiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5LnVz
ZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgIDw8IDE4Ci0gICAgICAgICAg
ICAmIGtleS5mb2N1c1Zpc2libGVFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICA8PCAxOQor
ICAgICAgICAgICAgJiBrZXkudXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlv
ciAgPDwgMTkKKyAgICAgICAgICAgICYga2V5LmZvY3VzVmlzaWJsZUVuYWJsZWQgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDIwCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAg
ICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDIwCisgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAyMQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAyMTsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAg
ICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAyMjsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJp
dHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZp
c2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJDU1NQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRl
ICJDb2xvckNvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJDb2xvckx1bWluYW5jZS5oIgogI2luY2x1
ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVDb2xvci5oIgpAQCAtMTQ4Miw2ICsxNDgzLDQ5IEBAIHN0YXRpYyBDb2xvciBwYXJz
ZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXIKICAgICByZXR1cm4gY29sb3I7CiB9CiAKK3N0YXRpYyBD
b2xvciBwYXJzZUNvbG9yQ29udHJhc3RGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgQVNT
RVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xvckNvbnRyYXN0KTsK
KworICAgIGlmICghY29udGV4dC5jb2xvckNvbnRyYXN0RW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBh
dXRvIG9yaWdpbkJhY2tncm91bmRDb2xvciA9IGNvbnN1bWVPcmlnaW5Db2xvcihhcmdzLCBjb250
ZXh0KTsKKyAgICBpZiAoIW9yaWdpbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoIWNvbnN1bWVJZGVudFJhdzxDU1NWYWx1ZVZzPihhcmdz
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3RvcjxDb2xvcj4gY29sb3JzVG9Db21w
YXJlQWdhaW5zdDsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gY29sb3JUb0NvbXBhcmVBZ2FpbnN0
ID0gY29uc3VtZU9yaWdpbkNvbG9yKGFyZ3MsIGNvbnRleHQpOworICAgICAgICBpZiAoIWNvbG9y
VG9Db21wYXJlQWdhaW5zdC5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisg
ICAgICAgIGNvbG9yc1RvQ29tcGFyZUFnYWluc3QuYXBwZW5kKFdURk1vdmUoY29sb3JUb0NvbXBh
cmVBZ2FpbnN0KSk7CisgICAgfSB3aGlsZSAoY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFj
ZShhcmdzKSk7CisKKyAgICBpZiAoY29sb3JzVG9Db21wYXJlQWdhaW5zdC5zaXplKCkgPT0gMSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gb3JpZ2luQmFja2dyb3VuZENvbG9yTHVt
aW5hbmNlID0gb3JpZ2luQmFja2dyb3VuZENvbG9yLmx1bWluYW5jZSgpOworCisgICAgc2l6ZV90
IGluZGV4T2ZDb2xvcldpdGhIaWdlc3RDb250cmFzdFJhdGlvID0gMDsKKyAgICBmbG9hdCBoaWdo
ZXN0Q29udHJhc3RSYXRpb1NvRmFyID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNv
bG9yc1RvQ29tcGFyZUFnYWluc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byBjb250cmFz
dFJhdGlvID0gV2ViQ29yZTo6Y29udHJhc3RSYXRpbyhvcmlnaW5CYWNrZ3JvdW5kQ29sb3JMdW1p
bmFuY2UsIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaV0ubHVtaW5hbmNlKCkpOworICAgICAgICBp
ZiAoY29udHJhc3RSYXRpbyA+IGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIpIHsKKyAgICAgICAg
ICAgIGhpZ2hlc3RDb250cmFzdFJhdGlvU29GYXIgPSBjb250cmFzdFJhdGlvOworICAgICAgICAg
ICAgaW5kZXhPZkNvbG9yV2l0aEhpZ2VzdENvbnRyYXN0UmF0aW8gPSBpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGNvbG9yc1RvQ29tcGFyZUFnYWluc3RbaW5kZXhPZkNvbG9yV2l0
aEhpZ2VzdENvbnRyYXN0UmF0aW9dOworfQorCiBzdHJ1Y3QgSHVlQ29sb3JBZGp1c3RlciB7CiAg
ICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAgU2hvcnRlciwKQEAgLTE5MjUsNiArMTk2OSw5
IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENT
U1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUNvbG9yQ29u
dHJhc3Q6CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckNvbnRyYXN0RnVuY3Rpb25QYXJhbWV0
ZXJzKGNvbG9yUmFuZ2UsIGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Zh
bHVlQ29sb3JNaXg6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvck1peEZ1bmN0aW9uUGFyYW1l
dGVycyhjb2xvclJhbmdlLCBjb250ZXh0KTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xv
ci5oIgogCisjaW5jbHVkZSAiQ29sb3JMdW1pbmFuY2UuaCIKICNpbmNsdWRlICJDb2xvclNlcmlh
bGl6YXRpb24uaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xMTEs
MTUgKzExMSwyNiBAQCBDb2xvciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogCiBmbG9hdCBDb2xv
cjo6bGlnaHRuZXNzKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkg
YXZvaWQgY29udmVyc2lvbiB0byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0
aG1zIGZvciBIU0wuCi0gICAgcmV0dXJuIFdlYkNvcmU6OmxpZ2h0bmVzcyh0b1NSR0JBTG9zc3k8
ZmxvYXQ+KCkpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHJlbWFpbmluZyB1c2VzIHdpdGggbHVt
aW5hbmNlLgorICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gdG9TUkdCQUxvc3N5PGZsb2F0PigpOwor
ICAgIGF1dG8gW21pbiwgbWF4XSA9IHN0ZDo6bWlubWF4KHsgciwgZywgYiB9KTsKKyAgICByZXR1
cm4gMC41ZiAqIChtYXggKyBtaW4pOwogfQogCiBmbG9hdCBDb2xvcjo6bHVtaW5hbmNlKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4gcHJvYmFibHkgYXZvaWQgY29udmVyc2lvbiB0
byBzUkdCIGJ5IGhhdmluZyBwZXItY29sb3JzcGFjZSBhbGdvcml0aG1zCi0gICAgLy8gZm9yIGx1
bWluYW5jZSAoZS5nLiBjb252ZXJ0VG9YWVooYykueUNvbXBvbmVudCgpKS4KLSAgICByZXR1cm4g
V2ViQ29yZTo6bHVtaW5hbmNlKHRvU1JHQkFMb3NzeTxmbG9hdD4oKSk7CisgICAgcmV0dXJuIGNh
bGxPblVuZGVybHlpbmdUeXBlKFsmXSAoY29uc3QgYXV0byYgdW5kZXJseWluZ0NvbG9yKSB7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpyZWxhdGl2ZUx1bWluYW5jZSh1bmRlcmx5aW5nQ29sb3Ip
OworICAgIH0pOworfQorCitmbG9hdCBDb2xvcjo6Y29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYg
Y29sb3JBLCBjb25zdCBDb2xvciYgY29sb3JCKQoreworICAgIHJldHVybiBjb2xvckEuY2FsbE9u
VW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3JBKSB7CisgICAg
ICAgIHJldHVybiBjb2xvckIuY2FsbE9uVW5kZXJseWluZ1R5cGUoWyZdIChjb25zdCBhdXRvJiB1
bmRlcmx5aW5nQ29sb3JCKSB7CisgICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y29udHJhc3RS
YXRpbyh1bmRlcmx5aW5nQ29sb3JBLCB1bmRlcmx5aW5nQ29sb3JCKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CiB9CiAKIENvbG9yIENvbG9yOjpjb2xvcldpdGhBbHBoYShmbG9hdCBhbHBoYSkgY29u
c3QKQEAgLTE0NCw5ICsxNTUsOSBAQCBDb2xvciBDb2xvcjo6aW52ZXJ0ZWRDb2xvcldpdGhBbHBo
YShmbG9hCiAgICAgICAgIC8vIGJldHRlciBmb3Igbm9uLWludmVydGlibGUgY29sb3IgdHlwZXMg
bGlrZSBMYWIgb3IgY29uc2lkZXIgcmVtb3ZpbmcgdGhpcyBpbiBmYXZvcgogICAgICAgICAvLyBv
ZiBhbHRlcm5hdGl2ZXMuCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoQ29sb3JUeXBlOjpNb2RlbDo6
aXNJbnZlcnRpYmxlKQotICAgICAgICAgICAgcmV0dXJuIGludmVydGVkY29sb3JXaXRoT3ZlcnJp
ZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOworICAgICAgICAgICAgcmV0dXJuIGlu
dmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKHVuZGVybHlpbmdDb2xvciwgYWxwaGEpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlk
ZGVuQWxwaGEoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4odW5kZXJseWluZ0NvbG9yKSwgYWxw
aGEpOworICAgICAgICAgICAgcmV0dXJuIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KHVuZGVybHlpbmdDb2xvciksIGFscGhhKTsKICAg
ICB9KTsKIH0KIApAQCAtMTY3LDYgKzE3OCwyMCBAQCBzdGQ6OnBhaXI8Q29sb3JTcGFjZSwgQ29s
b3JDb21wb25lbnRzPGZsCiAgICAgcmV0dXJuIHsgQ29sb3JTcGFjZTo6U1JHQiwgYXNDb2xvckNv
bXBvbmVudHMoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4oYXNJbmxpbmUoKSkpIH07CiB9CiAK
K2Jvb2wgQ29sb3I6OmlzQmxhY2tDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9y
KTsKKyAgICB9KTsKK30KKworYm9vbCBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICByZXR1cm4gY29sb3IuY2FsbE9uVW5kZXJseWluZ1R5cGUoW10gKGNvbnN0
IGF1dG8mIHVuZGVybHlpbmdDb2xvcikgeworICAgICAgICByZXR1cm4gV2ViQ29yZTo6aXNXaGl0
ZSh1bmRlcmx5aW5nQ29sb3IpOworICAgIH0pOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRzIDw8
IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbG9yKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gMjczNjMzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGx1bWlu
YW5jZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGxpZ2h0bmVzcygpIGNvbnN0
OyAvLyBGSVhNRTogUmVwbGFjZSByZW1haW5pbmcgdXNlcyB3aXRoIGx1bWluYW5jZS4KKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgZmxvYXQgY29udHJhc3RSYXRpbyhjb25zdCBDb2xvciYsIGNv
bnN0IENvbG9yJik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiBkZWNsdHlwZShh
dXRvKSBjYWxsT25VbmRlcmx5aW5nVHlwZShGdW5jdG9yJiYpIGNvbnN0OwogCkBAIC00OTQsMjAg
KzQ5NSw2IEBAIGlubGluZSB2b2lkIENvbG9yOjpzZXRFeHRlbmRlZENvbG9yKFJlZjwKICAgICBB
U1NFUlQoaXNFeHRlbmRlZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgQ29sb3I6OmlzQmxhY2tDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbG9yLmNhbGxPblVuZGVybHlp
bmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5nQ29sb3IpIHsKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OmlzQmxhY2sodW5kZXJseWluZ0NvbG9yKTsKLSAgICB9KTsKLX0KLQotaW5saW5l
IGJvb2wgQ29sb3I6OmlzV2hpdGVDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgcmV0
dXJuIGNvbG9yLmNhbGxPblVuZGVybHlpbmdUeXBlKFtdIChjb25zdCBhdXRvJiB1bmRlcmx5aW5n
Q29sb3IpIHsKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmlzV2hpdGUodW5kZXJseWluZ0NvbG9y
KTsKLSAgICB9KTsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBDb2xvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTHVtaW5hbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JMdW1pbmFu
Y2UuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckx1bWluYW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpCit7CisgICAgLy8g
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVsYXRpdmVfbHVtaW5hbmNlCisKKyAgICAv
LyBGSVhNRTogVGhpcyBjYW4gYmUgb3B0aW1pemVkIGEgYml0IGJ5IG9ic2VydmluZyB0aGF0IGlu
IHNvbWUgY2FzZXMgdGhlIGNvbnZlcnNpb24KKyAgICAvLyB0byBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENjU+IGluIGl0cyBlbnRpcmV0eSBpcyB1bm5lY2Vzc2FyeSB0byBnZXQganVzdCB0aGUg
WQorICAgIC8vIGNvbXBvbmVudC4gRm9yIGluc3RhbmNlLCBmb3IgU1JHQkE8ZmxvYXQ+LCB0aGlz
IGNvdWxkIGJlIGRvbmUgYXM6CisgICAgLy8KKyAgICAvLyAgICAgY29udmVydENvbG9yPExpbmVh
clNSR0JBPGZsb2F0Pj4oY29sb3IpICogTGluZWFyU1JHQkE8ZmxvYXQ+OjpsaW5lYXJUb1hZWi5y
b3coMSkKKyAgICAvLworICAgIC8vIChmb3IgYSBoeXBvdGhldGljYWwgcm93KCkgZnVuY3Rpb24g
b24gQ29sb3JNYXRyaXgpLiBXZSB3b3VsZCBwcm9iYWJseSB3YW50IHRvIGltcGxlbWVudAorICAg
IC8vIHRoaXMgaW4gQ29sb3JDb252ZXJzaW9uLmggYXMgYSBzaWJsaW5nIGZ1bmN0aW9uIHRvIGNv
bnZlcnRDb2xvciB3aGljaCBjYW4gZ2V0IGEgY2hhbm5lbAorICAgIC8vIG9mIGEgY29sb3IgaW4g
YW5vdGhlciBzcGFjZSBpbiB0aGlzIGtpbmQgb2Ygb3B0aW1hbCB3YXkuCisKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55OworfQor
CitpbmxpbmUgZmxvYXQgY29udHJhc3RSYXRpbyhmbG9hdCByZWxhdGl2ZUx1bWluYW5jZUEsIGZs
b2F0IHJlbGF0aXZlTHVtaW5hbmNlQikKK3sKKyAgICAvLyBVc2VzIHRoZSBXQ0FHIDIuMCBkZWZp
bml0aW9uIG9mIGNvbnRyYXN0IHJhdGlvLgorICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9X
Q0FHMjAvI2NvbnRyYXN0LXJhdGlvZGVmCisgICAgYXV0byBsaWdodGVyTHVtaW5hbmNlID0gcmVs
YXRpdmVMdW1pbmFuY2VBOworICAgIGF1dG8gZGFya2VyTHVtaW5hbmNlID0gcmVsYXRpdmVMdW1p
bmFuY2VCOworCisgICAgaWYgKGxpZ2h0ZXJMdW1pbmFuY2UgPCBkYXJrZXJMdW1pbmFuY2UpCisg
ICAgICAgIHN0ZDo6c3dhcChsaWdodGVyTHVtaW5hbmNlLCBkYXJrZXJMdW1pbmFuY2UpOworCisg
ICAgcmV0dXJuIChsaWdodGVyTHVtaW5hbmNlICsgMC4wNSkgLyAoZGFya2VyTHVtaW5hbmNlICsg
MC4wNSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZUEsIHR5cGVuYW1lIENvbG9y
VHlwZUI+IGlubGluZSBmbG9hdCBjb250cmFzdFJhdGlvKGNvbnN0IENvbG9yVHlwZUEmIGNvbG9y
QSwgY29uc3QgQ29sb3JUeXBlQiYgY29sb3JCKQoreworICAgIHJldHVybiBjb250cmFzdFJhdGlv
KHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQSksIHJlbGF0aXZlTHVtaW5hbmNlKGNvbG9yQikpOwor
fQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxp
dGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDM5ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3JVdGlsaXRp
ZXMuaCIKIAotI2luY2x1ZGUgIkNvbG9yQ29udmVyc2lvbi5oIgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAg
IGF1dG8gW3IsIGcsIGIsIGFdID0gY29sb3I7Ci0gICAgYXV0byBbbWluLCBtYXhdID0gc3RkOjpt
aW5tYXgoeyByLCBnLCBiIH0pOwotICAgIHJldHVybiAwLjVmICogKG1heCArIG1pbik7Ci19Ci0K
LWZsb2F0IGx1bWluYW5jZShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIC8vIE5P
VEU6IFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgY29udmVydENvbG9yPFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ2NT4+KGNvbG9yKS55Ci0gICAgLy8gRklNWEU6IElmIHdlIGNhbiBnZW5lcmFs
aXplIENvbG9yTWF0cml4IGEgYml0IG1vcmUsIGl0IG1pZ2h0IGJlIG5pY2UgdG8gd3JpdGUgdGhp
cyBhczoKLSAgICAvLyAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+
Pihjb2xvcikgKiBsaW5lYXJTUkdCVG9YWVpNYXRyaXgucm93KDEpOwotICAgIGF1dG8gW3IsIGcs
IGIsIGFdID0gY29udmVydENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotICAgIHJl
dHVybiAwLjIxMjZmICogciArIDAuNzE1MmYgKiBnICsgMC4wNzIyZiAqIGI7Ci19Ci0KLWZsb2F0
IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvckEsIGNvbnN0IFNSR0JBPGZs
b2F0PiYgY29sb3JCKQotewotICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2Yg
Y29udHJhc3QgcmF0aW8uCi0gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC8jY29u
dHJhc3QtcmF0aW9kZWYKLSAgICBmbG9hdCBsaWdodGVyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNv
bG9yQSk7Ci0gICAgZmxvYXQgZGFya2VyTHVtaW5hbmNlID0gbHVtaW5hbmNlKGNvbG9yQik7Ci0K
LSAgICBpZiAobGlnaHRlckx1bWluYW5jZSA8IGRhcmtlckx1bWluYW5jZSkKLSAgICAgICAgc3Rk
Ojpzd2FwKGxpZ2h0ZXJMdW1pbmFuY2UsIGRhcmtlckx1bWluYW5jZSk7Ci0KLSAgICByZXR1cm4g
KGxpZ2h0ZXJMdW1pbmFuY2UgKyAwLjA1KSAvIChkYXJrZXJMdW1pbmFuY2UgKyAwLjA1KTsKLX0K
LQogU1JHQkE8ZmxvYXQ+IHByZW11bHRpcGxpZWQoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IGNvbG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCShyZXZpc2lvbiAyNzM2
MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWZsb2F0IGxpZ2h0bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGx1bWluYW5j
ZShjb25zdCBTUkdCQTxmbG9hdD4mKTsKLWZsb2F0IGNvbnRyYXN0UmF0aW8oY29uc3QgU1JHQkE8
ZmxvYXQ+JiwgY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci0KIFNSR0JBPGZsb2F0PiBwcmVtdWx0aXBs
aWVkKGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogU1JHQkE8ZmxvYXQ+IHVucHJlbXVsdGlwbGllZChj
b25zdCBTUkdCQTxmbG9hdD4mKTsKIApAQCAtNTUsOCArNTEsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2xvclR5cGUsIHR5cGVuYW1lIEZ1CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNv
bnN0ZXhwciBDb2xvclR5cGUgY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9yVHlw
ZSYsIHVpbnQ4X3Qgb3ZlcnJpZGVBbHBoYSk7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IENvbG9yVHlwZSBjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiwgZmxv
YXQgb3ZlcnJpZGVBbHBoYSk7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3Rl
eHByIENvbG9yVHlwZSBpbnZlcnRlZGNvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xv
clR5cGUmLCB1aW50OF90IG92ZXJyaWRlQWxwaGEpOwotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBDb2xvclR5cGUgaW52ZXJ0ZWRjb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29s
b3JUeXBlJiwgZmxvYXQgb3ZlcnJpZGVBbHBoYSk7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5
cGU+IGNvbnN0ZXhwciBDb2xvclR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEo
Y29uc3QgQ29sb3JUeXBlJiwgdWludDhfdCBvdmVycmlkZUFscGhhKTsKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbG9yVHlwZT4gQ29sb3JUeXBlIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnN0IENvbG9yVHlwZSYsIGZsb2F0IG92ZXJyaWRlQWxwaGEpOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lX3Y8
dHlwZW5hbWUgQ29sb3JUeXBlOjpNb2RlbCwgUkdCTW9kZWw8dHlwZW5hbWUgQ29sb3JUeXBlOjpD
b21wb25lbnRUeXBlPj4+KiA9IG51bGxwdHI+IGNvbnN0ZXhwciBib29sIGlzQmxhY2soY29uc3Qg
Q29sb3JUeXBlJik7CiB0ZW1wbGF0ZTxXaGl0ZVBvaW50IFc+IGNvbnN0ZXhwciBib29sIGlzQmxh
Y2soY29uc3QgWFlaQTxmbG9hdCwgVz4mKTsKQEAgLTEyMSw3ICsxMTcsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2xvclR5cGU+IENvbG9yVHlwZSBjCiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIENvbG9yVHlwZSBpbnZlcnRlZGNv
bG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBDb2xvclR5cGUmIGNvbG9yLCB1aW50OF90IG92
ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGNvbnN0ZXhwciBDb2xv
clR5cGUgaW52ZXJ0ZWRDb2xvcldpdGhPdmVycmlkZGVuQWxwaGEoY29uc3QgQ29sb3JUeXBlJiBj
b2xvciwgdWludDhfdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3NlcnQoQ29sb3JU
eXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApAQCAtMTM1LDcgKzEzMSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIENvbG9yVHlwZT4gY29uc3RleHByIEMKICAgICByZXR1cm4gbWFrZUZyb21Db21w
b25lbnRzPENvbG9yVHlwZT4oY29weSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gQ29sb3JUeXBlIGludmVydGVkY29sb3JXaXRoT3ZlcnJpZGRlbkFscGhhKGNvbnN0IENvbG9y
VHlwZSYgY29sb3IsIGZsb2F0IG92ZXJyaWRlQWxwaGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IENvbG9yVHlwZSBpbnZlcnRlZENvbG9yV2l0aE92ZXJyaWRkZW5BbHBoYShjb25zdCBD
b2xvclR5cGUmIGNvbG9yLCBmbG9hdCBvdmVycmlkZUFscGhhKQogewogICAgIHN0YXRpY19hc3Nl
cnQoQ29sb3JUeXBlOjpNb2RlbDo6aXNJbnZlcnRpYmxlKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiAyNzM2MzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA3
LDcgKzE0MDcsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6ZGlzYWJsZWRUZXh0Q29sb3IoY29uCiAg
ICAgLy8gSWYgdGhlcmUncyBub3QgdmVyeSBtdWNoIGNvbnRyYXN0IGJldHdlZW4gdGhlIGRpc2Fi
bGVkIGNvbG9yIGFuZCB0aGUgYmFja2dyb3VuZCBjb2xvciwKICAgICAvLyBqdXN0IGxlYXZlIHRo
ZSB0ZXh0IGNvbG9yIGFsb25lLiBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSBhIGdvb2QgY29udHJh
c3QgY29sb3Igc2NoZW1lIHNvIHRoYXQgaXQgaGFzIHJlYWxseSBiYWQgY29udHJhc3QuCiAgICAg
Ly8gSWYgdGhlIGNvbnRyYXN0IHdhcyBhbHJlYWR5IHBvb3IsIHRoZW4gaXQgZG9lc24ndCBkbyBh
bnkgZ29vZCB0byBjaGFuZ2UgaXQgdG8gYSBkaWZmZXJlbnQgcG9vciBjb250cmFzdCBjb2xvciBz
Y2hlbWUuCi0gICAgaWYgKGNvbnRyYXN0UmF0aW8oZGlzYWJsZWRDb2xvci50b1NSR0JBTG9zc3k8
ZmxvYXQ+KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpIDwgbWluQ29s
b3JDb250cmFzdFZhbHVlKQorICAgIGlmIChDb2xvcjo6Y29udHJhc3RSYXRpbyhkaXNhYmxlZENv
bG9yLCBiYWNrZ3JvdW5kQ29sb3IpIDwgbWluQ29sb3JDb250cmFzdFZhbHVlKQogICAgICAgICBy
ZXR1cm4gdGV4dENvbG9yOwogCiAgICAgcmV0dXJuIGRpc2FibGVkQ29sb3I7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDI3MzYz
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgYm9vbCB0ZXh0Q29sb3JJc0xlZ2libGVBZ2FpbnN0
QmFja2dyb3VuZAogewogICAgIC8vIFVzZXMgdGhlIFdDQUcgMi4wIGRlZmluaXRpb24gb2YgbGVn
aWJpbGl0eTogYSBjb250cmFzdCByYXRpbyBvZiA0LjU6MSBvciBncmVhdGVyLgogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAvI3Zpc3VhbC1hdWRpby1jb250cmFzdC1jb250cmFz
dAotICAgIHJldHVybiBjb250cmFzdFJhdGlvKHRleHRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+
KCksIGJhY2tncm91bmRDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCkpID4gNC41OworICAgIHJl
dHVybiBDb2xvcjo6Y29udHJhc3RSYXRpbyh0ZXh0Q29sb3IsIGJhY2tncm91bmRDb2xvcikgPiA0
LjU7CiB9CiAKIHN0YXRpYyBDb2xvciBhZGp1c3RDb2xvckZvclZpc2liaWxpdHlPbkJhY2tncm91
bmQoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYzMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI4ICBTYW0gV2VpbmlnICA8d2Vp
bmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENT
UyBDb2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctY29sb3ItY29udHJh
c3QuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBwYXJzaW5nIGFuZCBjb21wdXRlZCBzdHlsZSBj
b21wdXRhdGlvbiB0ZXN0cyBmb3IgY29sb3ItY29udGFzdCgpLgorCiAyMDIxLTAyLTI3ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAn
cGl4ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFzdC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250cmFz
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorVGVzdCB0aGUg
cGFyc2luZyBvZiBDU1MgQ29sb3IgNSBjb2xvci1jb250cmFzdCgpLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworY29sb3ItY29udHJhc3QoLi4uIHZzIC4uLiwgLi4uKQorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KHdoaXRlIHZz
IHJlZCwgYmx1ZSkiKSBpcyAicmdiKDAsIDAsIDI1NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUgdnMgYmx1ZSwgcmVkKSIpIGlz
ICJyZ2IoMCwgMCwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQsIGJsdWUsIGdyZWVuKSIpIGlzICJyZ2IoMCwg
MCwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1j
b250cmFzdCh3aGl0ZSB2cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChi
bHVlIHZzIHJlZCwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwg
d2hpdGUsIHJlZCkiKSBpcyAicmdiKDI1NSwgMjU1LCAyNTUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSki
KSBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiY29sb3ItY29udHJhc3QoYmxhY2sgdnMgYmx1ZSwgcmVkKSIpIGlzICJyZ2IoMjU1LCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250
cmFzdChibGFjayB2cyB3aGl0ZSwgd2hpdGUpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChyZWQg
dnMgYmx1ZSwgcmdiKDI1NSwgMjU1LCAyNTUsIC41KSkiKSBpcyAicmdiYSgyNTUsIDI1NSwgMjU1
LCAwLjUpIgorCitUZXN0IG5vbi1zUkdCIGNvbG9ycworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMg
MCAxIDApLCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSkiKSBpcyAiY29sb3IoZGlzcGxheS1wMyAw
IDEgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29u
dHJhc3QoY29sb3IoZGlzcGxheS1wMyAxIDEgMCkgdnMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCks
IGNvbG9yKGRpc3BsYXktcDMgMCAwIDEpKSIpIGlzICJjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdChn
cmVlbiB2cyBsYWIoNTAlIC0xNjAgMTYwKSwgbGNoKDIwJSA1MCAyMGRlZykpIikgaXMgImxjaCgy
MCUgNTAgMjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9y
LWNvbnRyYXN0KGxhYig1MCUgLTE2MCAxNjApIHZzIGdyZWVuLCBsY2goMjAlIDUwIDIwZGVnKSki
KSBpcyAibGNoKDIwJSA1MCAyMCkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUgdnMgcmVkLCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvci1jb250
cmFzdCh3aGl0ZSB2cyApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3ItY29udHJhc3Qod2hpdGUpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3ItY29udHJhc3Qod2hpdGUgdnMgcmVkIGdyZWVuKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctY29sb3ItY29udHJhc3QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWNvbG9yLWNvbnRyYXN0Lmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jb2xvci1jb250
cmFzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ1NTQ29sb3JDb250cmFzdEVuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgQ1NTIENvbG9yIDUgY29sb3ItY29udHJhc3QoKS4iKTsK
KworICAgIGZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9w
ZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENv
bXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1
ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRQcm9wZXJ0eShwcm9wZXJ0eSwg
dmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdj
b21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVj
dGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQodmFsdWUsIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgdGVzdENvbXB1dGVkUHJvcGVydHkoImJhY2tncm91bmQtY29sb3Ii
LCB2YWx1ZSwgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdjb2xvci1jb250cmFzdCgu
Li4gdnMgLi4uLCAuLi4pJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdo
aXRlIHZzIHJlZCwgYmx1ZSlgLCBgcmdiKDAsIDAsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIGJsdWUsIHJlZClgLCBgcmdiKDAsIDAsIDI1NSlgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwgYmx1ZSwgZ3Jl
ZW4pYCwgYHJnYigwLCAwLCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBjb2xvci1jb250cmFz
dCh3aGl0ZSB2cyB3aGl0ZSwgd2hpdGUpYCwgYHJnYigyNTUsIDI1NSwgMjU1KWApOworICAgIHRl
c3RDb21wdXRlZChgY29sb3ItY29udHJhc3QoYmx1ZSB2cyByZWQsIHdoaXRlKWAsIGByZ2IoMjU1
LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHJlZCB2cyBi
bHVlLCB3aGl0ZSwgcmVkKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIHJlZCwgYmx1ZSlgLCBgcmdiKDI1NSwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJsYWNrIHZzIGJsdWUsIHJlZClg
LCBgcmdiKDI1NSwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGJs
YWNrIHZzIHdoaXRlLCB3aGl0ZSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBjb2xvci1jb250cmFzdChyZWQgdnMgYmx1ZSwgcmdiKDI1NSwgMjU1LCAyNTUsIC41
KSlgLCBgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpYCk7CisKKyAgICBkZWJ1ZygnJyk7CisgICAg
ZGVidWcoJ1Rlc3Qgbm9uLXNSR0IgY29sb3JzJyk7CisKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9y
LWNvbnRyYXN0KGdyZWVuIHZzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApLCBjb2xvcihkaXNwbGF5
LXAzIDAgMCAxKSlgLCBgY29sb3IoZGlzcGxheS1wMyAwIDEgMClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGNvbG9yLWNvbnRyYXN0KGNvbG9yKGRpc3BsYXktcDMgMSAxIDApIHZzIGNvbG9yKGRpc3Bs
YXktcDMgMCAxIDApLCBjb2xvcihkaXNwbGF5LXAzIDAgMCAxKSlgLCBgY29sb3IoZGlzcGxheS1w
MyAwIDAgMSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGdyZWVuIHZzIGxh
Yig1MCUgLTE2MCAxNjApLCBsY2goMjAlIDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KGxhYig1MCUgLTE2MCAxNjApIHZzIGdy
ZWVuLCBsY2goMjAlIDUwIDIwZGVnKSlgLCBgbGNoKDIwJSA1MCAyMClgKTsKKworICAgIGRlYnVn
KCcnKTsKKyAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworCisgICAgdGVzdENvbXB1
dGVkKGBjb2xvci1jb250cmFzdCh3aGl0ZSB2cyByZWQpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZzIHJlZCwpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9yLWNvbnRyYXN0KHdoaXRlIHZz
IClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgY29sb3ItY29udHJh
c3Qod2hpdGUpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGNvbG9y
LWNvbnRyYXN0KHdoaXRlIHZzIHJlZCBncmVlbilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCis8
L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYzOSkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTI4ICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFs
IHN1cHBvcnQgZm9yIENTUyBDb2xvciA1IGNvbG9yLWNvbnRyYXN0KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjUzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbG9yVGVzdHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgIFVwZGF0ZSBsdW1pbmFuY2UgdmFsdWVzIHRvIGFjY291bnQgZm9yIG1vcmUgYWNjdXJh
dGUgY29udmVyc2lvbiB0bworICAgICAgICBYWVogbm93IHRoYXQgd2UgYXJlIHVzdWluZyB0aGUg
YWN0dWFsIG1hdHJpeCB2YWx1ZXMgZnJvbSBTUkdCQURlc2NyaXB0b3IKKyAgICAgICAgYW5kIG5v
dCBhIHRydW5jYXRlZCBjb3B5LgorCiAyMDIxLTAyLTI3ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQVBJIHRlc3QgZm9yIEFwcEhpZ2hsaWdodHMK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db2xvclRlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29sb3JUZXN0
cy5jcHAJKHJldmlzaW9uIDI3MzYzMykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db2xvclRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDIwICsyMTQsMjAgQEAg
VEVTVChDb2xvciwgTHVtaW5hbmNlKQogICAgIEVYUEVDVF9GTE9BVF9FUShDb2xvcihDb2xvcjo6
d2hpdGUpLmx1bWluYW5jZSgpLCAxKTsKIAogICAgIGF1dG8gY0NvbXBvbmVudHMgPSBTUkdCQTx1
aW50OF90PiB7IDg1LCA5MCwgMTYwIH07Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKENvbG9yKGNDb21w
b25lbnRzKS5sdW1pbmFuY2UoKSwgMC4xMTc4MTY5Mik7CisgICAgRVhQRUNUX0ZMT0FUX0VRKENv
bG9yKGNDb21wb25lbnRzKS5sdW1pbmFuY2UoKSwgMC4xMTc4MTQ1NSk7CiAKICAgICBFWFBFQ1Rf
RVEoY0NvbXBvbmVudHMucmVkLCA4NSk7CiAgICAgRVhQRUNUX0VRKGNDb21wb25lbnRzLmdyZWVu
LCA5MCk7CiAgICAgRVhQRUNUX0VRKGNDb21wb25lbnRzLmJsdWUsIDE2MCk7CiAKICAgICBhdXRv
IGNMaWd0ZW5lZCA9IENvbG9yKGNDb21wb25lbnRzKS5saWdodGVuZWQoKS50b1NSR0JBTG9zc3k8
dWludDhfdD4oKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoQ29sb3IoY0xpZ3RlbmVkKS5sdW1pbmFu
Y2UoKSwgMC4yOTE2ODgwOCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKENvbG9yKGNMaWd0ZW5lZCku
bHVtaW5hbmNlKCksIDAuMjkxNjgyKTsKICAgICBFWFBFQ1RfRVEoY0xpZ3RlbmVkLnJlZCwgMTMw
KTsKICAgICBFWFBFQ1RfRVEoY0xpZ3RlbmVkLmdyZWVuLCAxMzcpOwogICAgIEVYUEVDVF9FUShj
TGlndGVuZWQuYmx1ZSwgMjQ0KTsKIAogICAgIGF1dG8gY0RhcmtlbmVkID0gQ29sb3IoY0NvbXBv
bmVudHMpLmRhcmtlbmVkKCkudG9TUkdCQUxvc3N5PHVpbnQ4X3Q+KCk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKENvbG9yKGNEYXJrZW5lZCkubHVtaW5hbmNlKCksIDAuMDI3MDA2NzI3KTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEoQ29sb3IoY0RhcmtlbmVkKS5sdW1pbmFuY2UoKSwgMC4wMjcwMDYyNDIp
OwogICAgIEVYUEVDVF9FUShjRGFya2VuZWQucmVkLCA0MCk7CiAgICAgRVhQRUNUX0VRKGNEYXJr
ZW5lZC5ncmVlbiwgNDMpOwogICAgIEVYUEVDVF9FUShjRGFya2VuZWQuYmx1ZSwgNzYpOwo=
</data>
<flag name="commit-queue"
          id="440853"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>