<?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>295138</bug_id>
          
          <creation_ts>2025-06-27 19:57:52 -0700</creation_ts>
          <short_desc>[Cleanup] Remove LineDirectionMode from RenderBoxModelObject::lineHeight</short_desc>
          <delta_ts>2025-07-15 12:50:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2126460</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 19:57:52 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126461</commentid>
    <comment_count>1</comment_count>
      <attachid>475685</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 19:59:53 -0700</bug_when>
    <thetext>Created attachment 475685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126491</commentid>
    <comment_count>2</comment_count>
      <attachid>475689</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-28 05:45:35 -0700</bug_when>
    <thetext>Created attachment 475689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127146</commentid>
    <comment_count>3</comment_count>
      <attachid>475732</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 15:42:24 -0700</bug_when>
    <thetext>Created attachment 475732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127947</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-04 19:58:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/155077251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130194</commentid>
    <comment_count>5</comment_count>
      <attachid>476021</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-15 09:47:35 -0700</bug_when>
    <thetext>Created attachment 476021
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130224</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-15 12:50:45 -0700</bug_when>
    <thetext>Committed 297407@main (f9eeb5b8e0b6): &lt;https://commits.webkit.org/297407@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476021.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475685</attachid>
            <date>2025-06-27 19:59:53 -0700</date>
            <delta_ts>2025-06-28 05:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295138-20250627195952.patch</filename>
            <type>text/plain</type>
            <size>22365</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1N2FjN2E1YTQ1N2ViYWU1NGJlN2QwNGZjNjY0NzI5NmE4MjA2MTZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjcgSnVuIDIwMjUgMTk6NTg6MDAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVtb3ZlIExpbmVEaXJlY3Rpb25Nb2RlIGZyb20KIFJlbmRlckJveE1vZGVsT2JqZWN0Ojps
aW5lSGVpZ2h0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTM4
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCihvbmx5IFJlbmRlclRleHRDb250cm9sIHBh
c3NlcyBpbiBleHBsaWNpdCBIb3Jpem9udGFsTGluZSwgd2hpY2ggc2VlbXMgbGlrZSBhIGJ1ZyBh
bnl3YXkpCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5j
cHA6CihXZWJDb3JlOjpjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHA6CihXZWJDb3JlOjpMZWdhY3lM
aW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZUhlaWdodCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2Nr
V2l0aE5vQ2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dD
aGlsZHJlbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEluaXRpYWxMZXR0ZXJQ
b3NpdGlvbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmlubGluZUJsb2NrQmFzZWxpbmUg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRl
ckJveDo6bGluZUhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9u
dGFsQm94KToKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVy
dGljYWxCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmxheW91dEdyaWQpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0TWFzb25yeSk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodCBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJr
ZXI6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodCBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKFdl
YkNvcmU6OkxpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgotLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgICAgICAgICAg
IHwgIDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICB8ICAyICst
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAg
fCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
ICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcCAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgICAgIHwg
IDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVXaWR0aC5jcHAgICAgICAgICAgICB8ICAyICstCiAxOSBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNl
cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcAppbmRleCA0OTU3ZWIxN2M0NGYuLmJlNGJlOWI5
YjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0
YXRpb24uY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIExheW91dFJlY3QgY29tcHV0ZUNh
cmV0UmVjdEZvckVtcHR5RWxlbWVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmUKICAg
ICB9CiAgICAgeCA9IHN0ZDo6bWluKHgsIHN0ZDo6bWF4PExheW91dFVuaXQ+KG1heFggLSBjYXJl
dFdpZHRoKCksIDApKTsKIAotICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWln
aHQodHJ1ZSwgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gcmVuZGVyZXIubGluZUhlaWdodCh0
cnVlKTsKICAgICBhdXRvIGhlaWdodCA9IHN0ZDo6bWluKGxpbmVIZWlnaHQsIExheW91dFVuaXQg
eyBjdXJyZW50U3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKSB9KTsKICAgICBh
dXRvIHkgPSByZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyAobGluZUhlaWdodCA+
IGhlaWdodCA/IChsaW5lSGVpZ2h0IC0gaGVpZ2h0KSAvIDIgOiBMYXlvdXRVbml0IHsgfSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCA5
OWRjNzAzNWNkMmMuLjY4ZTNhZDA5ODRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lMaW5lTGF5b3V0LmNwcApAQCAtNTc2LDcgKzU3Niw3IEBAIHZvaWQgTGVnYWN5TGlu
ZUxheW91dDo6bGF5b3V0TGluZUJveGVzKCkKICAgICB9CiAKICAgICBpZiAoIWxlZ2FjeVJvb3RC
b3goKSAmJiBtX2Zsb3cuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgbV9mbG93LnNldExvZ2lj
YWxIZWlnaHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUs
IG1fZmxvdy5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUpKTsKKyAgICAgICAgbV9mbG93LnNldExvZ2ljYWxIZWlnaHQobV9mbG93LmxvZ2lj
YWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUpKTsKIH0KIAogdm9pZCBMZWdhY3lM
aW5lTGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAwNDFmMzg3YjI2NjIuLmExMTUzNDMwOTUz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNDc0LDcg
KzI0NzQsNyBAQCBib29sIFJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSgpIGNvbnN0CiAgICAg
cmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC0+aXNSb290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSkgY29uc3QKIHsKICAgICBhdXRvJiBsaW5lU3R5bGUgPSBmaXJzdExpbmUg
PyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwpAQCAtMjUzNSw3ICsy
NTM1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiAgICAgfQogCiAgICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5t
ZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJp
Y3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwgZGlyZWN0aW9uKSAtIGZvbnRNZXRy
aWNzLmludEhlaWdodCgpKSAvIDIgfS50b0ludCgpOworICAgIHJldHVybiBMYXlvdXRVbml0IHsg
Zm9udE1ldHJpY3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSkgLSBmb250TWV0cmlj
cy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdApAQCAtMjU5NSw3ICsy
NTk1LDcgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6aW5saW5lQmxv
Y2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBsaW4KICAgICBpZiAoIWhhdmVOb3JtYWxGbG93
Q2hpbGQgJiYgaGFzTGluZUlmRW1wdHkoKSkgewogICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9
IGZpcnN0TGluZVN0eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKICAgICAgICAgcmV0dXJu
IExheW91dFVuaXQgeyBMYXlvdXRVbml0KGZvbnRNZXRyaWNzLmludEFzY2VudCgpCi0gICAgICAg
ICAgICArIChsaW5lSGVpZ2h0KHRydWUsIGxpbmVEaXJlY3Rpb24pIC0gZm9udE1ldHJpY3MuaW50
SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAgKyAobGluZUhlaWdodCh0cnVlKSAtIGZvbnRNZXRy
aWNzLmludEhlaWdodCgpKSAvIDIKICAgICAgICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9y
aXpvbnRhbExpbmUgPyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkg
KyBwYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKaW5kZXggOGI1OTJkMWMzOTc4Li5mNDFmMmEyZDk2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02Niw3ICs2Niw3IEBAIHByb3Rl
Y3RlZDoKIAogcHVibGljOgogICAgIC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIG92ZXJyaWRk
ZW4gZm9yIGlubGluZS1ibG9jay4KLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0IGZpbmFsOwogICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUUtQkxPQ0tGTE9X
OiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVu
ZGVyQmxvY2tGbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCmluZGV4IDAyYWQ3MzBiOWVmMy4uNWFiYmU5YTQ4NjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhOb0NoaWxkcmVuKCkKICAgICAgICAgICAg
IHNldEhhc01hcmdpbkJlZm9yZVF1aXJrKHN0eWxlLm1hcmdpbkJlZm9yZSgpLmhhc1F1aXJrKCkp
OwogICAgICAgICAgICAgc2V0SGFzTWFyZ2luQWZ0ZXJRdWlyayhzdHlsZS5tYXJnaW5BZnRlcigp
Lmhhc1F1aXJrKCkpOwogICAgICAgICB9Ci0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSArICho
YXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpIDogMF9sdSkpOworICAgICAgICBz
ZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxi
YXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSkg
OiAwX2x1KSk7CiAgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICB9OwogICAgIGNv
bXB1dGVCbG9ja0F4aXNTaXplKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgdm9pZCBSZW5kZXJCbG9j
a0Zsb3c6OmxheW91dEluRmxvd0NoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGls
ZHJlbiwgTGEKIAogICAgICAgICBhdXRvIGxvZ2ljYWxIZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5n
TG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICBpZiAo
aGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbGluZUhlaWdo
dCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUpOworICAgICAgICAgICAgbG9naWNhbEhlaWdodCArPSBsaW5lSGVpZ2h0KHRydWUp
OwogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQpOwogCiAgICAgICAgIHJl
cGFpbnRMb2dpY2FsVG9wID0geyB9OwpAQCAtMjc0OSw3ICsyNzQ5LDcgQEAgdm9pZCBSZW5kZXJC
bG9ja0Zsb3c6OmFkanVzdEluaXRpYWxMZXR0ZXJQb3NpdGlvbihSZW5kZXJCb3gmIGNoaWxkQm94
LCBMYXlvdXRVbmkKICAgICBpZiAoIWZvbnRNZXRyaWNzLmNhcEhlaWdodCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBMYXlvdXRVbml0IGhlaWdodE9mTGluZSA9IGxpbmVIZWlnaHQodHJ1ZSwg
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5l
KTsKKyAgICBMYXlvdXRVbml0IGhlaWdodE9mTGluZSA9IGxpbmVIZWlnaHQodHJ1ZSk7CiAgICAg
TGF5b3V0VW5pdCBiZWZvcmVNYXJnaW5Cb3JkZXJQYWRkaW5nID0gY2hpbGRCb3guYm9yZGVyQW5k
UGFkZGluZ0JlZm9yZSgpICsgY2hpbGRCb3gubWFyZ2luQmVmb3JlKCk7CiAgICAgCiAgICAgLy8g
TWFrZSBhbiBhZGp1c3RtZW50IHRvIGFsaWduIHdpdGggdGhlIGNhcCBoZWlnaHQgb2YgYSB0aGVv
cmV0aWNhbCBibG9jayBsaW5lLgpAQCAtMzMyNiw3ICszMzI2LDcgQEAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVj
dGlvbk1vZGUKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAg
ICAgY29uc3QgYXV0byYgZm9udE1ldHJpY3MgPSBmaXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlBy
aW1hcnlGb250KCk7CiAgICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IExheW91dFVuaXQo
Zm9udE1ldHJpY3MuaW50QXNjZW50KCkKLSAgICAgICAgICAgICAgICArIChsaW5lSGVpZ2h0KHRy
dWUsIGxpbmVEaXJlY3Rpb24pIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgorICAgICAg
ICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkg
LyAyCiAgICAgICAgICAgICAgICAgKyAobGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/
IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIDogYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdo
dCgpKSkudG9JbnQoKSB9OwogICAgICAgICB9CiAKQEAgLTQwNDUsNyArNDA0NSw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KFJlbGF5b3V0Q2hpbGRyZW4gcmVs
YXlvdXRDaGlsZHJlbiwgTGF5CiAgICAgYXV0byBwYXJ0aWFsUmVwYWludFJlY3QgPSBsYXlvdXRG
b3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQubGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4gPT0gUmVs
YXlvdXRDaGlsZHJlbjo6WWVzID8gTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZvcmNl
RnVsbExheW91dDo6WWVzIDogTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZvcmNlRnVs
bExheW91dDo6Tm8pOwogCiAgICAgYXV0byBib3JkZXJCb3hCb3R0b20gPSBbJl0gewotICAgICAg
ICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGluZXMoKSAmJiBoYXNMaW5lSWZFbXB0eSgpID8g
bGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUpIDogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNv
bnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGF1dG8gY29udGVudEhlaWdodCA9ICFoYXNM
aW5lcygpICYmIGhhc0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KHRydWUpIDogbGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAg
IHJldHVybiBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBjb250ZW50SGVpZ2h0ICsgYm9yZGVy
QW5kUGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgfTsKICAg
ICBhdXRvIG5ld0JvcmRlckJveEJvdHRvbSA9IGJvcmRlckJveEJvdHRvbSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBjNjk0MWI3MDRkOGMuLjYzMTBhNGUyMGE0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ5OTIsMTAgKzQ5
OTIsMTAgQEAgYm9vbCBSZW5kZXJCb3g6OmlzVW5zcGxpdHRhYmxlRm9yUGFnaW5hdGlvbigpIGNv
bnN0CiAgICAgICAgIHx8IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7CiB9CiAKLUxheW91
dFVuaXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGJvb2wgLypmaXJzdExpbmUqLywgTGluZURpcmVj
dGlvbk1vZGUgZGlyZWN0aW9uKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmxpbmVIZWln
aHQoYm9vbCAvKmZpcnN0TGluZSovKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBs
YWNlZE9yQXRvbWljSW5saW5lKCkpCi0gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpv
bnRhbExpbmUgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90
dG9tKCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQo
KTsKKyAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSgpICsgbG9naWNhbEhlaWdodCgpICsgbWFy
Z2luQWZ0ZXIoKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCmluZGV4IGMxMGE0ZDkzNGQwOS4uNjczNjU0YzY1MjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCkBAIC01MjksNyArNTI5LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIG1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsgfQogICAgIAot
ICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0
TGluZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgb2Zmc2V0TGVmdCgpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCAyZDQ2NzQ5NzQzNmYuLmZhMWUzYWZhODUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0
aEZvckNvbnRlbnQoKSBjb25zdDsKIAogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0
byBkZXRlcm1pbmUgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIHBvc2l0aW9uLgotICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lKSBjb25zdCA9IDA7CiAKICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9w
dGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDBjOWJmNGVmNjkzYy4uMzVkNDRmNGZjYWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94LmNwcApAQCAtNTEwLDcgKzUxMCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlv
dXRDCiAgICAgICAgIEFTU0VSVChjaGlsZEluZGV4ID09IGNoaWxkTGF5b3V0RGVsdGFzLnNpemUo
KSk7CiAKICAgICAgICAgaWYgKCFpdGVyYXRvci5maXJzdCgpICYmIGhhc0xpbmVJZkVtcHR5KCkp
Ci0gICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIHdyaXRp
bmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSkp
OworICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlKSk7CiAK
ICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgdG9BZGQpOwogCkBAIC04NDgsNyArODQ4LDcg
QEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KFJl
bGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGkKICAgICAgICAgeVBvcyA9IGhlaWdodCgpOwogCiAg
ICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQotICAgICAg
ICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgp
LmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKKyAgICAg
ICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSkpOwogCiAgICAgICAg
IHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggN2M3NzVkZGZiYTA1Li4yY2EwMGNjNjlh
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cApAQCAtMTM0Myw3ICsxMzQzLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZs
ZXhMYXlvdXQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogCiAgICAgaWYgKGFs
bEl0ZW1zLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewotICAg
ICAgICAgICAgYXV0byBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgp
ICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRh
bExpbmUgOiBWZXJ0aWNhbExpbmUpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAg
ICAgICAgYXV0byBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsg
bGluZUhlaWdodCh0cnVlKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAg
IGlmIChoZWlnaHQoKSA8IG1pbkhlaWdodCkKICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsSGVp
Z2h0KG1pbkhlaWdodCk7CiAgICAgICAgIH0KQEAgLTE0MjAsNyArMTQyMCw3IEBAIHZvaWQgUmVu
ZGVyRmxleGlibGVCb3g6OnBlcmZvcm1GbGV4TGF5b3V0KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlv
dXRDaGlsZHJlbikKICAgICAgICAgLy8gYSBsaW5lIGJlY2F1c2UgYWxsIG91ciBjaGlsZHJlbiBt
aWdodCBiZSBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkLgogICAgICAgICAvLyBJbnN0ZWFkIG9mIGp1
c3QgY2hlY2tpbmcgaWYgd2UgaGF2ZSBhIGxpbmUsIG1ha2Ugc3VyZSB0aGUgZmxleGJveAogICAg
ICAgICAvLyBoYXMgYXQgbGVhc3QgYSBsaW5lJ3Mgd29ydGggb2YgaGVpZ2h0IHRvIGNvdmVyIHRo
aXMgY2FzZS4KLSAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5n
TG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpICsgc2Nyb2xsYmFyTG9naWNhbEhl
aWdodCgpOworICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdM
b2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdo
dCgpOwogICAgICAgICBpZiAoc2l6ZSgpLmhlaWdodCgpIDwgbWluSGVpZ2h0KQogICAgICAgICAg
ICAgc2V0TG9naWNhbEhlaWdodChtaW5IZWlnaHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA5YTg5N2FiMGM1ZTkuLmUwZTZhNTk5YzIyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtNDg4LDcgKzQ4OCw3IEBA
IHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0R3JpZChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hp
bGRyZW4pCiAgICAgICAgIC8vIEdyaWQgY29udGFpbmVyIHNob3VsZCBoYXZlIHRoZSBtaW5pbXVt
IGhlaWdodCBvZiBhIGxpbmUgaWYgaXQncyBlZGl0YWJsZS4gVGhhdCBkb2VzIG5vdCBhZmZlY3Qg
dHJhY2sgc2l6aW5nIHRob3VnaC4KICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpIHsKICAg
ICAgICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lID0gYm9yZGVyQW5kUGFk
ZGluZ0xvZ2ljYWxIZWlnaHQoKQotICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0cnVlLCBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUp
CisgICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KHRydWUpCiAgICAgICAgICAgICAgICAgKyBz
Y3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHN0
ZDo6bWF4KGxvZ2ljYWxIZWlnaHQoKSwgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lKSk7CiAgICAgICAg
IH0KQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dE1hc29ucnkoUmVs
YXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5l
ciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBoZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFi
bGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRyYWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlm
IChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZv
ckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAg
ICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6
b250YWxMaW5lIDogVmVydGljYWxMaW5lKQorICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0
cnVlKQogICAgICAgICAgICAgICAgICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAg
ICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhlaWdo
dEZvckVtcHR5TGluZSkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCmluZGV4IGZhNmMwMjdhZmQ3Ni4uNjE3MmEyMDFjYWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtODE3LDcgKzgxNyw3IEBAIExl
Z2FjeUlubGluZUZsb3dCb3gqIFJlbmRlcklubGluZTo6Y3JlYXRlQW5kQXBwZW5kSW5saW5lRmxv
d0JveCgpCiAgICAgcmV0dXJuIGZsb3dCb3g7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5l
OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlv
biovKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6OmxpbmVIZWlnaHQoYm9vbCBmaXJz
dExpbmUpIGNvbnN0CiB7CiAgICAgYXV0byYgbGluZVN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RM
aW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENl
aWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaAppbmRleCA4ODZiYmQzMTc0OWMuLjQxMTZkYWI0YTc4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTM5LDcgKzEzOSw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKSBmaW5hbCB7IG1f
bGVnYWN5TGluZUJveGVzLmRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOyB9CiAKLSAg
ICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
KSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUp
IGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQgdXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0
UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBlNDgwOTM5YzFhZGQuLjBh
M2UwMWFjZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
bmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVuZGVyTGluZUJyZWFr
KCkKIHsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW9uKi8pIGNvbnN0CitMYXlvdXRV
bml0IFJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSkgY29uc3QKIHsK
ICAgICBpZiAoZmlyc3RMaW5lKSB7CiAgICAgICAgIGF1dG8mIGZpcnN0TGluZVN0eWxlID0gdGhp
cy0+Zmlyc3RMaW5lU3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuaAppbmRleCAxNzMwMWYzMThjMmQuLjM1ZmQ2YzU0NWQzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRl
OgogICAgIGludCBjYXJldE1heE9mZnNldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuQmVT
ZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWw7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5
b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0
VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggYzdkNTAzZDE2ZDhl
Li4yYmEzODllN2FhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5jcHAKQEAgLTQyMiwxMSArNDIyLDExIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6
dXBkYXRlSW5saW5lTWFyZ2lucygpCiAgICAgbXV0YWJsZVN0eWxlKCkuc2V0TWFyZ2luRW5kKFN0
eWxlOjpNYXJnaW5FZGdlOjpGaXhlZCB7IG1hcmdpbkVuZCB9KTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlY3Rpb24pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVI
ZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpCi0gICAg
ICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uKTsK
LSAgICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uKTsK
KyAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmxpbmVIZWlnaHQoZmlyc3RMaW5lKTsKKyAgICBy
ZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSk7CiB9CiAKIExheW91dFVuaXQg
UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCA2OWVlNzliYzA3MzcuLmNjOTUz
MGZkNmE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5o
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBj
b25zdCBMYXlvdXRQb2ludCYpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0KCkgZmluYWw7CiAgICAg
dm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KikgZmluYWw7
Ci0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25z
dCBmaW5hbDsKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJs
ZUNvbnRlbnQpIGZpbmFsOwogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAKaW5kZXggNDZkNTBkNjUwMmI0Li5hYmQ4ODBlMTIzOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtMTA4LDcg
KzEwOCw3IEBAIFJlbmRlckJveDo6TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlclRl
eHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodChMCiAKICAgICBpZiAoUmVuZGVyQm94KiBp
bm5lclRleHRCb3ggPSBpbm5lclRleHQtPnJlbmRlckJveCgpKSB7CiAgICAgICAgIExheW91dFVu
aXQgbm9uQ29udGVudEhlaWdodCA9IGlubmVyVGV4dEJveC0+Ym9yZGVyQW5kUGFkZGluZ0xvZ2lj
YWxIZWlnaHQoKSArIGlubmVyVGV4dEJveC0+bWFyZ2luTG9naWNhbEhlaWdodCgpOwotICAgICAg
ICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KGlubmVyVGV4dEJv
eC0+bGluZUhlaWdodCh0cnVlLCBIb3Jpem9udGFsTGluZSksIG5vbkNvbnRlbnRIZWlnaHQpOwor
ICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KGlubmVy
VGV4dEJveC0+bGluZUhlaWdodCh0cnVlKSwgbm9uQ29udGVudEhlaWdodCk7CiAKICAgICAgICAg
Ly8gV2UgYXJlIGFibGUgdG8gaGF2ZSBhIGhvcml6b250YWwgc2Nyb2xsYmFyIGlmIHRoZSBvdmVy
ZmxvdyBzdHlsZSBpcyBzY3JvbGwsIG9yIGlmIGl0cyBhdXRvIGFuZCB0aGVyZSdzIG5vIHdvcmQg
d3JhcC4KICAgICAgICAgYXV0byBzaG91bGRJbmNsdWRlU2Nyb2xsYmFySGVpZ2h0ID0gWyZdIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IGVjZWEx
ZDdhMjVlMC4uNmQ0MzQwZjNhNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbGluZS9MaW5lV2lkdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5l
L0xpbmVXaWR0aC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBMaW5lV2lkdGg6OmZpdHNPbkxp
bmVFeGNsdWRpbmdUcmFpbGluZ0NvbGxhcHNlZFdoaXRlc3BhY2UoKSBjb25zdAogdm9pZCBMaW5l
V2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKCkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9
IG1fYmxvY2subG9naWNhbEhlaWdodCgpOwotICAgIGF1dG8gbGluZUhlaWdodCA9IHN0ZDo6bWF4
KDBfbHUsIG1fYmxvY2subGluZUhlaWdodCh0cnVlLCBtX2Jsb2NrLmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSkpOworICAgIGF1dG8gbGlu
ZUhlaWdodCA9IHN0ZDo6bWF4KDBfbHUsIG1fYmxvY2subGluZUhlaWdodCh0cnVlKSk7CiAgICAg
bV9sZWZ0ID0gbV9ibG9jay5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoaGVpZ2h0LCBsaW5lSGVp
Z2h0KTsKICAgICBtX3JpZ2h0ID0gbV9ibG9jay5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhl
aWdodCwgbGluZUhlaWdodCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475689</attachid>
            <date>2025-06-28 05:45:35 -0700</date>
            <delta_ts>2025-07-15 09:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295138-20250628054534.patch</filename>
            <type>text/plain</type>
            <size>22363</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMTEzZjJlZGE0MDAwYjBiOTZkZjUyZWY5YmI2YWMzYzFjMGZhNGFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDU6NDQ6NTQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVtb3ZlIExpbmVEaXJlY3Rpb25Nb2RlIGZyb20KIFJlbmRlckJveE1vZGVsT2JqZWN0Ojps
aW5lSGVpZ2h0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTM4
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCihvbmx5IFJlbmRlclRleHRDb250cm9sIHBh
c3NlcyBpbiBleHBsaWNpdCBIb3Jpem9udGFsTGluZSwgd2hpY2ggc2VlbXMgbGlrZSBhIGJ1ZyBh
bnl3YXkpCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5j
cHA6CihXZWJDb3JlOjpjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHA6CihXZWJDb3JlOjpMZWdhY3lM
aW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZUhlaWdodCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2Nr
V2l0aE5vQ2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dD
aGlsZHJlbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEluaXRpYWxMZXR0ZXJQ
b3NpdGlvbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmlubGluZUJsb2NrQmFzZWxpbmUg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRl
ckJveDo6bGluZUhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9u
dGFsQm94KToKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVy
dGljYWxCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmxheW91dEdyaWQpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0TWFzb25yeSk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodCBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJr
ZXI6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodCBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKFdl
YkNvcmU6OkxpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgotLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgICAgICAgICAg
IHwgIDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICB8ICAyICst
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAg
fCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
ICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcCAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgICAgIHwg
IDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVXaWR0aC5jcHAgICAgICAgICAgICB8ICAyICstCiAxOSBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNl
cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcAppbmRleCA0OTU3ZWIxN2M0NGYuLmJlNGJlOWI5
YjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0
YXRpb24uY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIExheW91dFJlY3QgY29tcHV0ZUNh
cmV0UmVjdEZvckVtcHR5RWxlbWVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmUKICAg
ICB9CiAgICAgeCA9IHN0ZDo6bWluKHgsIHN0ZDo6bWF4PExheW91dFVuaXQ+KG1heFggLSBjYXJl
dFdpZHRoKCksIDApKTsKIAotICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWln
aHQodHJ1ZSwgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gcmVuZGVyZXIubGluZUhlaWdodCh0
cnVlKTsKICAgICBhdXRvIGhlaWdodCA9IHN0ZDo6bWluKGxpbmVIZWlnaHQsIExheW91dFVuaXQg
eyBjdXJyZW50U3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKSB9KTsKICAgICBh
dXRvIHkgPSByZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyAobGluZUhlaWdodCA+
IGhlaWdodCA/IChsaW5lSGVpZ2h0IC0gaGVpZ2h0KSAvIDIgOiBMYXlvdXRVbml0IHsgfSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCA5
OWRjNzAzNWNkMmMuLjY4ZTNhZDA5ODRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lMaW5lTGF5b3V0LmNwcApAQCAtNTc2LDcgKzU3Niw3IEBAIHZvaWQgTGVnYWN5TGlu
ZUxheW91dDo6bGF5b3V0TGluZUJveGVzKCkKICAgICB9CiAKICAgICBpZiAoIWxlZ2FjeVJvb3RC
b3goKSAmJiBtX2Zsb3cuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgbV9mbG93LnNldExvZ2lj
YWxIZWlnaHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUs
IG1fZmxvdy5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUpKTsKKyAgICAgICAgbV9mbG93LnNldExvZ2ljYWxIZWlnaHQobV9mbG93LmxvZ2lj
YWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUpKTsKIH0KIAogdm9pZCBMZWdhY3lM
aW5lTGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAwYjg5ZjRhMWQ5YTYuLjcwMjM3NDEwZGY1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNDc0LDcg
KzI0NzQsNyBAQCBib29sIFJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSgpIGNvbnN0CiAgICAg
cmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC0+aXNSb290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSkgY29uc3QKIHsKICAgICBhdXRvJiBsaW5lU3R5bGUgPSBmaXJzdExpbmUg
PyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwpAQCAtMjUzNSw3ICsy
NTM1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiAgICAgfQogCiAgICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5t
ZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJp
Y3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodCh0cnVlLCBkaXJlY3Rpb24pIC0gZm9udE1ldHJp
Y3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgcmV0dXJuIExheW91dFVuaXQgeyBm
b250TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KHRydWUpIC0gZm9udE1ldHJpY3Mu
aW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5p
dD4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTI1OTUsNyArMjU5
NSw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2Nr
QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluCiAgICAgaWYgKCFoYXZlTm9ybWFsRmxvd0No
aWxkICYmIGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBm
aXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgIHJldHVybiBM
YXlvdXRVbml0IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQotICAgICAgICAg
ICAgKyAobGluZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uKSAtIGZvbnRNZXRyaWNzLmludEhl
aWdodCgpKSAvIDIKKyAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSkgLSBmb250TWV0cmlj
cy5pbnRIZWlnaHQoKSkgLyAyCiAgICAgICAgICAgICArIChsaW5lRGlyZWN0aW9uID09IEhvcml6
b250YWxMaW5lID8gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgOiBib3JkZXJSaWdodCgpICsg
cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCmluZGV4IDhiNTkyZDFjMzk3OC4uZjQxZjJhMmQ5NjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0
ZWQ6CiAKIHB1YmxpYzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVu
IGZvciBpbmxpbmUtYmxvY2suCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRVbml0IGJhc2Vs
aW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FLUJMT0NLRkxPVzog
UmVtb3ZlIHZpcnR1YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRvIFJlbmRl
ckJsb2NrRmxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAppbmRleCAwMmFkNzMwYjllZjMuLjVhYmJlOWE0ODY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tXaXRoTm9DaGlsZHJlbigpCiAgICAgICAgICAgICBz
ZXRIYXNNYXJnaW5CZWZvcmVRdWlyayhzdHlsZS5tYXJnaW5CZWZvcmUoKS5oYXNRdWlyaygpKTsK
ICAgICAgICAgICAgIHNldEhhc01hcmdpbkFmdGVyUXVpcmsoc3R5bGUubWFyZ2luQWZ0ZXIoKS5o
YXNRdWlyaygpKTsKICAgICAgICAgfQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFz
TGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSA6IDBfbHUpKTsKKyAgICAgICAgc2V0
TG9naWNhbEhlaWdodChib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpICsgKGhhc0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KHRydWUpIDog
MF9sdSkpOwogICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgfTsKICAgICBjb21w
dXRlQmxvY2tBeGlzU2l6ZSgpOwpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRJbkZsb3dDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRy
ZW4sIExhCiAKICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGhh
c0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQo
dHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lKTsKKyAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbGluZUhlaWdodCh0cnVlKTsK
ICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICByZXBh
aW50TG9naWNhbFRvcCA9IHsgfTsKQEAgLTI3NDksNyArMjc0OSw3IEBAIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVyUG9zaXRpb24oUmVuZGVyQm94JiBjaGlsZEJveCwg
TGF5b3V0VW5pCiAgICAgaWYgKCFmb250TWV0cmljcy5jYXBIZWlnaHQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUsIGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSk7
CisgICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUpOwogICAgIExh
eW91dFVuaXQgYmVmb3JlTWFyZ2luQm9yZGVyUGFkZGluZyA9IGNoaWxkQm94LmJvcmRlckFuZFBh
ZGRpbmdCZWZvcmUoKSArIGNoaWxkQm94Lm1hcmdpbkJlZm9yZSgpOwogICAgIAogICAgIC8vIE1h
a2UgYW4gYWRqdXN0bWVudCB0byBhbGlnbiB3aXRoIHRoZSBjYXAgaGVpZ2h0IG9mIGEgdGhlb3Jl
dGljYWwgYmxvY2sgbGluZS4KQEAgLTMzMjYsNyArMzMyNiw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gUmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rp
b25Nb2RlCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAg
IGNvbnN0IGF1dG8mIGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmlt
YXJ5Rm9udCgpOwogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyBMYXlvdXRVbml0KGZv
bnRNZXRyaWNzLmludEFzY2VudCgpCi0gICAgICAgICAgICAgICAgKyAobGluZUhlaWdodCh0cnVl
LCBsaW5lRGlyZWN0aW9uKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIKKyAgICAgICAg
ICAgICAgICArIChsaW5lSGVpZ2h0KHRydWUpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8g
MgogICAgICAgICAgICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBi
b3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQo
KSkpLnRvSW50KCkgfTsKICAgICAgICAgfQogCkBAIC00MDQ1LDcgKzQwNDUsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ29udGVudChSZWxheW91dENoaWxkcmVuIHJlbGF5
b3V0Q2hpbGRyZW4sIExheQogICAgIGF1dG8gcGFydGlhbFJlcGFpbnRSZWN0ID0gbGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmxheW91dChyZWxheW91dENoaWxkcmVuID09IFJlbGF5
b3V0Q2hpbGRyZW46OlllcyA/IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1
bGxMYXlvdXQ6OlllcyA6IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxM
YXlvdXQ6Ok5vKTsKIAogICAgIGF1dG8gYm9yZGVyQm94Qm90dG9tID0gWyZdIHsKLSAgICAgICAg
YXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHkoKSA/IGxp
bmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5l
IDogVmVydGljYWxMaW5lKSA6IGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jb250
ZW50TG9naWNhbEhlaWdodCgpOworICAgICAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGlu
ZXMoKSAmJiBoYXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlKSA6IGxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dC5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICBy
ZXR1cm4gYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgY29udGVudEhlaWdodCArIGJvcmRlckFu
ZFBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgIH07CiAgICAg
YXV0byBuZXdCb3JkZXJCb3hCb3R0b20gPSBib3JkZXJCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYzY5NDFiNzA0ZDhjLi42MzEwYTRlMjBhNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00OTkyLDEwICs0OTky
LDEwIEBAIGJvb2wgUmVuZGVyQm94Ojppc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSBjb25z
dAogICAgICAgICB8fCBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpOwogfQogCi1MYXlvdXRV
bml0IFJlbmRlckJveDo6bGluZUhlaWdodChib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rp
b25Nb2RlIGRpcmVjdGlvbikgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0
KGJvb2wgLypmaXJzdExpbmUqLykgY29uc3QKIHsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFj
ZWRPckF0b21pY0lubGluZSgpKQotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250
YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRv
bSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCk7
CisgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUoKSArIGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdp
bkFmdGVyKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAppbmRleCBjMTBhNGQ5MzRkMDkuLjY3MzY1NGM2NTI2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaApAQCAtNTI5LDcgKzUyOSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBtYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKSB7IH0KICAgICAKLSAg
ICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
KSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExp
bmUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
aW5kZXggMmQ0Njc0OTc0MzZmLi5mYTFlM2FmYTg1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0xOTMsNyArMTkzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JDb250ZW50KCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8g
ZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4KLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0
TGluZSkgY29uc3QgPSAwOwogCiAgICAgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRp
b25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCAwYzliZjRlZjY5M2MuLjM1ZDQ0ZjRmY2FiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0
QwogICAgICAgICBBU1NFUlQoY2hpbGRJbmRleCA9PSBjaGlsZExheW91dERlbHRhcy5zaXplKCkp
OwogCiAgICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQot
ICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5n
TW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsK
KyAgICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSkpOwogCiAg
ICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRkKTsKIApAQCAtODQ4LDcgKzg0OCw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChSZWxh
eW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpCiAgICAgICAgIHlQb3MgPSBoZWlnaHQoKTsKIAogICAg
ICAgICBpZiAoIWl0ZXJhdG9yLmZpcnN0KCkgJiYgaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAg
ICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgd3JpdGluZ01vZGUoKS5p
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CisgICAgICAg
ICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUpKTsKIAogICAgICAgICBz
ZXRIZWlnaHQoaGVpZ2h0KCkgKyB0b0FkZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDdjNzc1ZGRmYmEwNS4uMmNhMDBjYzY5YWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
QEAgLTEzNDMsNyArMTM0Myw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnBlcmZvcm1GbGV4
TGF5b3V0KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKIAogICAgIGlmIChhbGxJ
dGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpIHsKLSAgICAg
ICAgICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSAr
IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxM
aW5lIDogVmVydGljYWxMaW5lKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAg
ICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGxp
bmVIZWlnaHQodHJ1ZSkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBp
ZiAoaGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChtaW5IZWlnaHQpOwogICAgICAgICB9CkBAIC0xNDIwLDcgKzE0MjAsNyBAQCB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0
Q2hpbGRyZW4pCiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBvdXIgY2hpbGRyZW4gbWln
aHQgYmUgb3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8gSW5zdGVhZCBvZiBqdXN0
IGNoZWNraW5nIGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhlIGZsZXhib3gKICAgICAg
ICAgLy8gaGFzIGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdodCB0byBjb3ZlciB0aGlz
IGNhc2UuCi0gICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSArIHNjcm9sbGJhckxvZ2ljYWxIZWln
aHQoKTsKKyAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9n
aWNhbEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQo
KTsKICAgICAgICAgaWYgKHNpemUoKS5oZWlnaHQoKSA8IG1pbkhlaWdodCkKICAgICAgICAgICAg
IHNldExvZ2ljYWxIZWlnaHQobWluSGVpZ2h0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggOWE4OTdhYjBjNWU5Li5lMGU2YTU5OWMyMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2
b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxk
cmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBo
ZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRy
YWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKQor
ICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0cnVlKQogICAgICAgICAgICAgICAgICsgc2Ny
b2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6
Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhlaWdodEZvckVtcHR5TGluZSkpOwogICAgICAgICB9
CkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KFJlbGF5
b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250YWluZXIg
c2hvdWxkIGhhdmUgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVkaXRhYmxl
LiBUaGF0IGRvZXMgbm90IGFmZmVjdCB0cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAgICBpZiAo
aGFzTGluZUlmRW1wdHkoKSkgewogICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JF
bXB0eUxpbmUgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAg
ICAgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9u
dGFsTGluZSA6IFZlcnRpY2FsTGluZSkKKyAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1
ZSkKICAgICAgICAgICAgICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAg
ICAgIHNldExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5IZWlnaHRG
b3JFbXB0eUxpbmUpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcAppbmRleCBmYTZjMDI3YWZkNzYuLjYxNzJhMjAxY2FlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgxNyw3ICs4MTcsNyBAQCBMZWdh
Y3lJbmxpbmVGbG93Qm94KiBSZW5kZXJJbmxpbmU6OmNyZWF0ZUFuZEFwcGVuZElubGluZUZsb3dC
b3goKQogICAgIHJldHVybiBmbG93Qm94OwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3Rpb24q
LykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lKSBjb25zdAogewogICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGlu
ZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWls
KGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKaW5kZXggODg2YmJkMzE3NDljLi40MTE2ZGFiNGE3ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBkaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCkgZmluYWwgeyBtX2xl
Z2FjeUxpbmVCb3hlcy5kaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCp0aGlzKTsgfQogCi0gICAg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkg
Y29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBj
b25zdCBmaW5hbDsKICAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggZTQ4MDkzOWMxYWRkLi4wYTNl
MDFhY2YxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIFJlbmRlckxpbmVCcmVhazo6flJlbmRlckxpbmVCcmVhaygp
CiB7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvbiovKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CiB7CiAg
ICAgaWYgKGZpcnN0TGluZSkgewogICAgICAgICBhdXRvJiBmaXJzdExpbmVTdHlsZSA9IHRoaXMt
PmZpcnN0TGluZVN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJy
ZWFrLmgKaW5kZXggMTczMDFmMzE4YzJkLi4zNWZkNmM1NDVkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToK
ICAgICBpbnQgY2FyZXRNYXhPZmZzZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhbkJlU2Vs
ZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91
dFVuaXQgbWFyZ2luVG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIExheW91dFVu
aXQgbWFyZ2luQm90dG9tKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IGM3ZDUwM2QxNmQ4ZS4u
MmJhMzg5ZTdhYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwCkBAIC00MjIsMTEgKzQyMiwxMSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVw
ZGF0ZUlubGluZU1hcmdpbnMoKQogICAgIG11dGFibGVTdHlsZSgpLnNldE1hcmdpbkVuZChTdHls
ZTo6TWFyZ2luRWRnZTo6Rml4ZWQgeyBtYXJnaW5FbmQgfSk7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUgZGlyZWN0aW9uKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdAogewogICAgIGlmICghaXNJbWFnZSgpKQotICAgICAg
ICByZXR1cm4gbV9saXN0SXRlbS0+bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbik7Ci0g
ICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbik7Cisg
ICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZpcnN0TGluZSk7CisgICAgcmV0
dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUpOwogfQogCiBMYXlvdXRVbml0IFJl
bmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggNjllZTc5YmMwNzM3Li5jYzk1MzBm
ZDZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaApA
QCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAgICB2b2lkIGxheW91dCgpIGZpbmFsOwogICAgIHZv
aWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCopIGZpbmFsOwot
ICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSkgY29uc3QgZmluYWw7CiAgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qg
ZmluYWw7CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVD
b250ZW50KSBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCmluZGV4IDQ2ZDUwZDY1MDJiNC4uYWJkODgwZTEyMzlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsx
MDgsNyBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0
Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5u
ZXJUZXh0Qm94ID0gaW5uZXJUZXh0LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0
IG5vbkNvbnRlbnRIZWlnaHQgPSBpbm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2Fs
SGVpZ2h0KCkgKyBpbm5lclRleHRCb3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAg
bG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gt
PmxpbmVIZWlnaHQodHJ1ZSwgSG9yaXpvbnRhbExpbmUpLCBub25Db250ZW50SGVpZ2h0KTsKKyAg
ICAgICAgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRl
eHRCb3gtPmxpbmVIZWlnaHQodHJ1ZSksIG5vbkNvbnRlbnRIZWlnaHQpOwogCiAgICAgICAgIC8v
IFdlIGFyZSBhYmxlIHRvIGhhdmUgYSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiB0aGUgb3ZlcmZs
b3cgc3R5bGUgaXMgc2Nyb2xsLCBvciBpZiBpdHMgYXV0byBhbmQgdGhlcmUncyBubyB3b3JkIHdy
YXAuCiAgICAgICAgIGF1dG8gc2hvdWxkSW5jbHVkZVNjcm9sbGJhckhlaWdodCA9IFsmXSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcAppbmRleCBlY2VhMWQ3
YTI1ZTAuLjZkNDM0MGYzYTY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2xpbmUvTGluZVdpZHRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9M
aW5lV2lkdGguY3BwCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgTGluZVdpZHRoOjpmaXRzT25MaW5l
RXhjbHVkaW5nVHJhaWxpbmdDb2xsYXBzZWRXaGl0ZXNwYWNlKCkgY29uc3QKIHZvaWQgTGluZVdp
ZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCgpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBt
X2Jsb2NrLmxvZ2ljYWxIZWlnaHQoKTsKLSAgICBhdXRvIGxpbmVIZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQodHJ1ZSwgbV9ibG9jay5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKKyAgICBhdXRvIGxpbmVI
ZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQodHJ1ZSkpOwogICAgIG1f
bGVmdCA9IG1fYmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbGluZUhlaWdo
dCk7CiAgICAgbV9yaWdodCA9IG1fYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShoZWln
aHQsIGxpbmVIZWlnaHQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475732</attachid>
            <date>2025-07-01 15:42:24 -0700</date>
            <delta_ts>2025-07-14 15:58:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295138-20250701154223.patch</filename>
            <type>text/plain</type>
            <size>53569</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkNjc2YTgwMTQ3ZWYzNDZmZGNiYWFmZjg5YTI4MmFhZjIxMjMwMmExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxNTo0MToyOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW1vdmUgTGluZURpcmVjdGlvbk1vZGUgZnJvbQogUmVuZGVyQm94TW9kZWxPYmplY3Q6Omxp
bmVIZWlnaHQKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTUxMzgK
ClJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKKG9ubHkgUmVuZGVyVGV4dENvbnRyb2wgcGFz
c2VzIGluIGV4cGxpY2l0IEhvcml6b250YWxMaW5lLCB3aGljaCBzZWVtcyBsaWtlIGEgYnVnIGFu
eXdheSkKCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpz
ZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hH
ZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJbnRlZ3JhdGlvbkxheW91dCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcDoKKFdl
YkNvcmU6OmNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVMYXlv
dXQ6OmxheW91dExpbmVCb3hlcyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0
dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3NpdGlv
biBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaDoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxpbmVIZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFz
ZWxpbmUgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhOb0NoaWxkcmVuKToKKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0SW5GbG93Q2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVyUG9zaXRpb24pOgooV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6bGF5b3V0SW5saW5lQ29udGVudCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmxpbmVIZWlnaHQgY29uc3QpOgooV2Vi
Q29yZTo6UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHA6CihXZWJDb3JlOjpSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveCk6CihXZWJDb3Jl
OjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckZsZXhp
YmxlQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94OjpwZXJmb3JtRmxleExheW91dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0R3JpZCk6CihXZWJDb3JlOjpSZW5kZXJHcmlk
OjpsYXlvdXRNYXNvbnJ5KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmJhc2VsaW5lUG9zaXRpb24g
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKFdlYkNvcmU6OlJlbmRlckltYWdl
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoK
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6bGluZUhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJyZWFrLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdo
dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRpb24gY29u
c3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
aDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CihXZWJDb3Jl
OjpSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWln
aHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbiBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CihXZWJD
b3JlOjpSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRl
TG9naWNhbEhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNl
bGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5l
V2lkdGguY3BwOgooV2ViQ29yZTo6TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oOgotLS0KIC4u
Li9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAgICB8ICA3ICsrKy0tLQog
Li4uL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICAgIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAgfCAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaCAgIHwgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICB8IDIzICsrKysrKystLS0tLS0t
LS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oICAgICAgICB8ICA0
ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICB8IDEw
ICsrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAg
fCAgOCArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAg
ICAgfCAgNCArKy0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aCAgfCAgNCArLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCAg
ICAgfCAgOCArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgg
ICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwIHwgIDQgKystLQogLi4uL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAg
ICAgIHwgIDQgKystLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCAgIHwgMTAgKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5oICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAg
ICAgICAgfCAxMSArKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmggICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
aCAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAgICAgIHwgIDkgKy0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuaCAgICAgICB8ICAzICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAgIHwgIDkgKy0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aW5lQnJlYWsuaCAgICB8ICAzICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwICAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcCB8IDEyICsrKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmggICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmggICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcCAgICAgIHwgIDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5oICAgICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmggIHwgIDQgKystLQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5jcHAgIHwgIDQgKystLQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0
aC5jcHAgICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5j
cHAgICAgfCAgNyArKy0tLS0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmggICAgICB8ICAyICstCiA0MSBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCAxMTYg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRl
ci5jcHAKaW5kZXggYzVhMTVkMDdjMzg1Li5mYTAwNWM3MjVlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5
VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHN0
YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShjb25zdCBSZW5kZXJC
b3gmIHJlbmRlcmVyKQogICAgIHJldHVybiB7IGhvcml6b250YWxTcGFjZVJlc2VydmVkRm9yU2Ny
b2xsYmFyLCB2ZXJ0aWNhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIgfTsKIH0KIAotc3RhdGlj
IGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJCb3gsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorc3RhdGljIGlubGluZSB2b2lkIHNldElu
dGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiB7CiAgICAgYXV0
byBoYXNOb25TeW50aGV0aWNCYXNlbGluZSA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5k
ZXJMaXN0TWFya2VyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlbmRlckJv
eCkpCkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9u
QmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIFdyaXRpbmdNb2QKICAgICBpZiAo
IWhhc05vblN5bnRoZXRpY0Jhc2VsaW5lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8g
YmFzZWxpbmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3NpdGlvbihmYWxzZSAvKiBmaXJzdExpbmUg
Ki8sIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNh
bExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7Ci0gICAgY29uc3RfY2FzdDxMYXlvdXQ6
OkVsZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVn
cmF0aW9uKGJhc2VsaW5lKTsKKyAgICBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpy
ZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRpb24ocmVuZGVyQm94
LmJhc2VsaW5lUG9zaXRpb24oKSk7CiB9CiAKIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRh
dGVMYXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBzdGQ6Om9wdGlvbmFsPExheW91dDo6
SW50cmluc2ljV2lkdGhNb2RlPiBpbnRyaW5zaWNXaWR0aE1vZGUpCkBAIC00ODcsNyArNDg2LDcg
QEAgdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJbnRlZ3Jh
dGlvbkxheW91dChjb25zdCBMYXlvdXQ6OkUKIAogICAgIGF1dG8gaW50ZWdyYXRpb25BZGp1c3Rt
ZW50cyA9IFsmXSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgZXZlbnR1YWxseSBi
ZSBhbGwgYWJzb3JiZWQgYnkgTEZDIGxheW91dC4KLSAgICAgICAgc2V0SW50ZWdyYXRpb25CYXNl
bGluZSgqcmVuZGVyQm94LCB3cml0aW5nTW9kZSgpKTsKKyAgICAgICAgc2V0SW50ZWdyYXRpb25C
YXNlbGluZSgqcmVuZGVyQm94KTsKIAogICAgICAgICBpZiAoYXV0byogcmVuZGVyTGlzdE1hcmtl
ciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqcmVuZGVyQm94KSkgewogICAg
ICAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3gucGFyZW50KCkuc3R5bGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwCmluZGV4
IDEyYjg1NmVjZWIxNy4uYmU0YmU5YjliOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0
aWMgTGF5b3V0UmVjdCBjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KGNvbnN0IFJlbmRl
ckJveE1vZGVsT2JqZWN0JiByZQogICAgIH0KICAgICB4ID0gc3RkOjptaW4oeCwgc3RkOjptYXg8
TGF5b3V0VW5pdD4obWF4WCAtIGNhcmV0V2lkdGgoKSwgMCkpOwogCi0gICAgYXV0byBsaW5lSGVp
Z2h0ID0gcmVuZGVyZXIubGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZS5pc0hvcml6b250YWwo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpOworICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWlnaHQodHJ1ZSk7
CiAgICAgYXV0byBoZWlnaHQgPSBzdGQ6Om1pbihsaW5lSGVpZ2h0LCBMYXlvdXRVbml0IHsgY3Vy
cmVudFN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCkuaGVpZ2h0KCkgfSk7CiAgICAgYXV0byB5
ID0gcmVuZGVyZXIuYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgKGxpbmVIZWlnaHQgPiBoZWln
aHQgPyAobGluZUhlaWdodCAtIGhlaWdodCkgLyAyIDogTGF5b3V0VW5pdCB7IH0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKaW5kZXggMmI3YTQx
NmQ4MzZlLi42OGUzYWQwOTg0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVn
YWN5TGluZUxheW91dC5jcHAKQEAgLTU3Niw3ICs1NzYsNyBAQCB2b2lkIExlZ2FjeUxpbmVMYXlv
dXQ6OmxheW91dExpbmVCb3hlcygpCiAgICAgfQogCiAgICAgaWYgKCFsZWdhY3lSb290Qm94KCkg
JiYgbV9mbG93Lmhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgIG1fZmxvdy5zZXRMb2dpY2FsSGVp
Z2h0KG1fZmxvdy5sb2dpY2FsSGVpZ2h0KCkgKyBtX2Zsb3cubGluZUhlaWdodCh0cnVlLCBtX2Zs
b3cuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsKKyAgICAgICAgbV9mbG93LnNldExv
Z2ljYWxIZWlnaHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRy
dWUpKTsKIH0KIAogdm9pZCBMZWdhY3lMaW5lTGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVD
aGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0
YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5j
cHAKaW5kZXggN2MwMDAxZDViZmJkLi44MTY1Mzk0N2NhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lk
IFJlbmRlckF0dGFjaG1lbnQ6OmxheW91dCgpCiAgICAgICAgIGxheW91dFNoYWRvd0NvbnRlbnQo
bmV3SW50cmluc2ljU2l6ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQXR0YWNobWVudDo6YmFz
ZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7CiAgICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudCA9IGF0dGFjaG1lbnRFbGVtZW50
KCkud2lkZUxheW91dEltYWdlRWxlbWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBiYXNlbGlu
ZUVsZW1lbnRSZW5kZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJveCgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaAppbmRleCBlNGM1MmU3Yjlh
NjguLmY4NGZjYjhhODVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0
YWNobWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGxheW91dCgp
IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlv
dXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIExheW91dFVu
aXQgbV9taW5pbXVtSW50cmluc2ljV2lkdGg7CiAgICAgYm9vbCBtX3Nob3VsZERyYXdCb3JkZXIg
eyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBj
Y2MyM2I4NDQ4YzEuLmRlN2U1NWQzMDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC0yNDc0LDI2ICsyNDc0LDIwIEBAIGJvb2wgUmVuZGVyQmxvY2s6Omhh
c0xpbmVJZkVtcHR5KCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LT5pc1Jv
b3RFZGl0YWJsZUVsZW1lbnQoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhl
aWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9z
aXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdAogewotICAgIC8vIElubGluZSBibG9j
a3MgYXJlIHJlcGxhY2VkIGVsZW1lbnRzLiBPdGhlcndpc2UsIGp1c3QgcGFzcyBvZmYgdG8KLSAg
ICAvLyB0aGUgYmFzZSBjbGFzcy4gIElmIHdlJ3JlIGJlaW5nIHF1ZXJpZWQgYXMgdGhvdWdoIHdl
J3JlIHRoZSByb290IGxpbmUKLSAgICAvLyBib3gsIHRoZW4gdGhlIGZhY3QgdGhhdCB3ZSdyZSBh
biBpbmxpbmUtYmxvY2sgaXMgaXJyZWxldmFudCwgYW5kIHdlIGJlaGF2ZQotICAgIC8vIGp1c3Qg
bGlrZSBhIGJsb2NrLgotICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5l
KCkgJiYgbGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpCi0gICAg
ICAgIHJldHVybiBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxp
bmVQb3NpdGlvbk1vZGUpOwotCiAgICAgYXV0byYgbGluZVN0eWxlID0gZmlyc3RMaW5lID8gZmly
c3RMaW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9h
dENlaWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
CitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKKyAg
ICBhdXRvIGRpcmVjdGlvbiA9IGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9y
aXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7CiAgICAgLy8gSW5saW5l
IGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0
bwogICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91
Z2ggd2UncmUgdGhlIHJvb3QgbGluZQogICAgIC8vIGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdl
J3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZlCiAgICAgLy8g
anVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJ
bmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
eworICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsKICAgICAg
ICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0
IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJl
dHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRo
ZSB0aGVtZQogICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3JhZGlvcyB3aWxs
IHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzcsMTIgKzI1MzEsMTEgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUgZGlyZWMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQogICAgICAgICAg
ICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFz
ZWxpbmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwog
Ci0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBk
aXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gUmVuZGVyQm94Ojpi
YXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogCi0gICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
ID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0eWxlKCk7Ci0gICAgY29u
c3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQo
KTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxp
bmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1l
dHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgY29uc3QgRm9udE1ldHJpY3Mm
IGZvbnRNZXRyaWNzID0gc3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOworICAgIHJldHVy
biBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodCh0cnVl
KSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIgfS50b0ludCgpOwogfQogCiBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
CkBAIC0yNjAyLDcgKzI1OTUsNyBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJs
b2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlIGxpbgogICAgIGlmICgh
aGF2ZU5vcm1hbEZsb3dDaGlsZCAmJiBoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8m
IGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwog
ICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNj
ZW50KCkKLSAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSwgbGluZURpcmVjdGlvbiwgUG9z
aXRpb25PZkludGVyaW9yTGluZUJveGVzKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIK
KyAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQo
KSkgLyAyCiAgICAgICAgICAgICArIChsaW5lRGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
Ym9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgOiBib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0
KCkpKS50b0ludCgpIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDIxZDNmNzZmNGMwNy4uZjQxZjJhMmQ5NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjYsOCArNjYsOCBAQCBwcm90ZWN0ZWQ6CiAKIHB1Ymxp
YzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVuIGZvciBpbmxpbmUt
YmxvY2suCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
Y29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250
YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJv
b2wgZmlyc3RMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FLUJMT0NLRkxPVzogUmVtb3ZlIHZp
cnR1YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRvIFJlbmRlckJsb2NrRmxv
dwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVMaW5lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCBmMGE2ZGViMTk3MGUuLjA4MTc1MGY3M2Nk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAg
LTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tXaXRoTm9D
aGlsZHJlbigpCiAgICAgICAgICAgICBzZXRIYXNNYXJnaW5CZWZvcmVRdWlyayhzdHlsZS5tYXJn
aW5CZWZvcmUoKS5oYXNRdWlyaygpKTsKICAgICAgICAgICAgIHNldEhhc01hcmdpbkFmdGVyUXVp
cmsoc3R5bGUubWFyZ2luQWZ0ZXIoKS5oYXNRdWlyaygpKTsKICAgICAgICAgfQotICAgICAgICBz
ZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxi
YXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSwg
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5l
LCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIDogMF9sdSkpOworICAgICAgICBzZXRMb2dp
Y2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dp
Y2FsSGVpZ2h0KCkgKyAoaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSkgOiAwX2x1
KSk7CiAgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICB9OwogICAgIGNvbXB1dGVC
bG9ja0F4aXNTaXplKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6
OmxheW91dEluRmxvd0NoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbiwg
TGEKIAogICAgICAgICBhdXRvIGxvZ2ljYWxIZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNh
bEhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICBpZiAoaGFzTGlu
ZUlmRW1wdHkoKSkKLSAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbGluZUhlaWdodCh0cnVl
LCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgICAgICAgICBsb2dpY2FsSGVp
Z2h0ICs9IGxpbmVIZWlnaHQodHJ1ZSk7CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNh
bEhlaWdodCk7CiAKICAgICAgICAgcmVwYWludExvZ2ljYWxUb3AgPSB7IH07CkBAIC0yNzQ5LDcg
KzI3NDksNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0SW5pdGlhbExldHRlclBvc2l0
aW9uKFJlbmRlckJveCYgY2hpbGRCb3gsIExheW91dFVuaQogICAgIGlmICghZm9udE1ldHJpY3Mu
Y2FwSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgaGVpZ2h0T2ZM
aW5lID0gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpv
bnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7Cisg
ICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUpOwogICAgIExheW91
dFVuaXQgYmVmb3JlTWFyZ2luQm9yZGVyUGFkZGluZyA9IGNoaWxkQm94LmJvcmRlckFuZFBhZGRp
bmdCZWZvcmUoKSArIGNoaWxkQm94Lm1hcmdpbkJlZm9yZSgpOwogICAgIAogICAgIC8vIE1ha2Ug
YW4gYWRqdXN0bWVudCB0byBhbGlnbiB3aXRoIHRoZSBjYXAgaGVpZ2h0IG9mIGEgdGhlb3JldGlj
YWwgYmxvY2sgbGluZS4KQEAgLTMzMjYsNyArMzMyNiw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIGNv
bnN0IGF1dG8mIGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5
Rm9udCgpOwogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyBMYXlvdXRVbml0KGZvbnRN
ZXRyaWNzLmludEFzY2VudCgpCi0gICAgICAgICAgICAgICAgKyAobGluZUhlaWdodCh0cnVlLCBs
aW5lRGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIC0gZm9udE1ldHJpY3Mu
aW50SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSkgLSBm
b250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCiAgICAgICAgICAgICAgICAgKyAobGluZURpcmVj
dGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIDogYm9y
ZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKSkudG9JbnQoKSB9OwogICAgICAgICB9CiAKQEAg
LTQwNDUsNyArNDA0NSw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250
ZW50KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbiwgTGF5CiAgICAgYXV0byBwYXJ0
aWFsUmVwYWludFJlY3QgPSBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQubGF5b3V0
KHJlbGF5b3V0Q2hpbGRyZW4gPT0gUmVsYXlvdXRDaGlsZHJlbjo6WWVzID8gTGF5b3V0SW50ZWdy
YXRpb246OkxpbmVMYXlvdXQ6OkZvcmNlRnVsbExheW91dDo6WWVzIDogTGF5b3V0SW50ZWdyYXRp
b246OkxpbmVMYXlvdXQ6OkZvcmNlRnVsbExheW91dDo6Tm8pOwogCiAgICAgYXV0byBib3JkZXJC
b3hCb3R0b20gPSBbJl0gewotICAgICAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGluZXMo
KSAmJiBoYXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRl
cmlvckxpbmVCb3hlcykgOiBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVu
dExvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVz
KCkgJiYgaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSkgOiBsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgcmV0
dXJuIGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIGNvbnRlbnRIZWlnaHQgKyBib3JkZXJBbmRQ
YWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICB9OwogICAgIGF1
dG8gbmV3Qm9yZGVyQm94Qm90dG9tID0gYm9yZGVyQm94Qm90dG9tKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDk1MGRkOWRlMWY4NC4uMmM3ZWJjYzc2ZWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDk2MCwxNyArNDk2MCwx
NyBAQCBib29sIFJlbmRlckJveDo6aXNVbnNwbGl0dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3QK
ICAgICAgICAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKIH0KIAotTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodChib29sIC8qZmlyc3RMaW5lKi8p
IGNvbnN0CiB7CiAgICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkK
LSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94
LnRvcCgpICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJp
Z2h0KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gubGVmdCgpOworICAgICAgICByZXR1cm4gbWFy
Z2luQmVmb3JlKCkgKyBsb2dpY2FsSGVpZ2h0KCkgKyBtYXJnaW5BZnRlcigpOwogICAgIHJldHVy
biAwOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8q
Zmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9k
ZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjpiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0
b21pY0lubGluZSgpKQotICAgICAgICByZXR1cm4gcm91bmRUb0ludChkaXJlY3Rpb24gPT0gSG9y
aXpvbnRhbExpbmUgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3gu
Ym90dG9tKCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94Lmxl
ZnQoKSk7CisgICAgICAgIHJldHVybiByb3VuZFRvSW50KGNvbnRhaW5pbmdCbG9jaygpLT53cml0
aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSAr
IG1fbWFyZ2luQm94LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBt
X21hcmdpbkJveC5sZWZ0KCkpOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKaW5kZXggYTg0YjcwNmU3M2Q4Li42YmIyMDg0NzE3YTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTUyNiw4ICs1MjYsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCkgeyB9
CiAgICAgCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25D
b250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KGJvb2wgZmlyc3RMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
aW5kZXggM2JiYTY1NmUyZDI3Li5mYTFlM2FmYTg1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0zMSw3ICszMSw2IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIE1vZGVzIGZvciBzb21lIG9mIHRoZSBsaW5lLXJlbGF0ZWQg
ZnVuY3Rpb25zLgotZW51bSBMaW5lUG9zaXRpb25Nb2RlIHsgUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMgfTsKIGVudW0gTGluZURpcmVjdGlvbk1v
ZGUgeyBIb3Jpem9udGFsTGluZSwgVmVydGljYWxMaW5lIH07CiAKIGVudW0gY2xhc3MgQmxlZWRB
dm9pZGFuY2UgOiB1aW50OF90IHsKQEAgLTE5NCw4ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKSBj
b25zdDsKIAogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGlu
ZSBoZWlnaHQgYW5kIGJhc2VsaW5lIHBvc2l0aW9uLgotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBj
b25zdCA9IDA7CiAKICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9wdGlvblNldDxN
YXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IDAwNjgzYzU5YjM2
Ni4uNGRjMzMxMGJhZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9u
LmNwcApAQCAtMTY2LDE0ICsxNjYsMTQgQEAgc3RhdGljIExheW91dFVuaXQgc3ludGhlc2l6ZWRC
YXNlbGluZUZyb21Db250ZW50Qm94KGNvbnN0IFJlbmRlckJveCYgYm94LCBMaW5lRGkKICAgICBy
ZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm94LmJvcmRlclRvcCgpICsgYm94
LnBhZGRpbmdUb3AoKSArIGJveC5jb250ZW50Qm94SGVpZ2h0KCkgOiBib3guYm9yZGVyUmlnaHQo
KSArIGJveC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50Qm94V2lkdGgoKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAor
TGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAg
IGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5k
ZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbW9k
ZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigp
OwogICAgIC8vIFdlIGNhbm5vdCByZWx5IG9uIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBv
c2l0aW9uKCkgYmVjYXVzZSBvZiBmbGV4Ym94ZXMgaGF2ZSBzb21lIHNwZWNpYWwgYmVoYXZpb3IK
ICAgICAvLyByZWdhcmRpbmcgYmFzZWxpbmVzIHRoYXQgc2hvdWxkbid0IGFwcGx5IHRvIGJ1dHRv
bnMuCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVf
b3Ioc3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KCp0aGlzLCBkaXJlY3Rpb24pKTsK
LSAgICBMYXlvdXRVbml0IG1hcmdpbkFzY2VudCA9IGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGlu
ZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5l
ID0gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNv
bnRlbnRCb3goKnRoaXMsIGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpv
bnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKKyAgICBMYXlvdXRVbml0
IG1hcmdpbkFzY2VudCA9IGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpv
bnRhbCgpID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpOwogICAgIHJldHVybiBiYXNlbGlu
ZSArIG1hcmdpbkFzY2VudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5oCmluZGV4IDg3Y2YzYWVmNGQwMy4uNjIyNDczNGEyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBSZW5k
ZXJCbG9jayogaW5uZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5uZXIuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldElubmVyUmVuZGVyZXIoUmVuZGVyQmxvY2smKTsKIAotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExp
bmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRl
OworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBw
cml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cAppbmRleCBhZjg4NmY1ZTJlYjUuLjE0NzNhNzU1ZjlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAg
LTUxMCw3ICs1MTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0
SG9yaXpvbnRhbEJveChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0QwogICAgICAgICBBU1NFUlQo
Y2hpbGRJbmRleCA9PSBjaGlsZExheW91dERlbHRhcy5zaXplKCkpOwogCiAgICAgICAgIGlmICgh
aXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgc2V0SGVp
Z2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRh
bCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxp
bmVCb3hlcykpOworICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0
cnVlKSk7CiAKICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgdG9BZGQpOwogCkBAIC04NDgs
NyArODQ4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRp
Y2FsQm94KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGkKICAgICAgICAgeVBvcyA9IGhlaWdo
dCgpOwogCiAgICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgp
KQotICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0
aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUs
IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgICAgICAgICAgc2V0SGVpZ2h0KGhl
aWdodCgpICsgbGluZUhlaWdodCh0cnVlKSk7CiAKICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgp
ICsgdG9BZGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
bGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBmMDA4OTVjNGI3ZjQuLjM5YmI2OTcxNmZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwCkBAIC0yMDcsOCArMjA3LDggQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
cGFpbnRDb250cm9sKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2kKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoYmFzZWxpbmVQb3NpdGlvbih0cnVlLCBpc0hvcml6
b250YWxXcml0aW5nTW9kZSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpKTsKKyAgICAgICAgICAgIC8vIEZpbGUgdXBsb2FkIGJ1dHRvbiBp
cyBkaXNwbGF5OiBub25lIChzZWUgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbikuCisgICAgICAgICAg
ICByZXR1cm4gcm91bmRUb0ludChiYXNlbGluZVBvc2l0aW9uKCkpOwogICAgICAgICB9KCk7CiAK
ICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52aXNpdGVk
RGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggOGE2YWU1
M2JjMzY4Li4wNDY2MjViY2Y0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjY0LDEzICsyNjQsMTMgQEAgdm9pZCBSZW5kZXJGbGV4
aWJsZUJveDo6Y29tcHV0ZUNoaWxkSW50cmluc2ljTG9naWNhbFdpZHRocyhSZW5kZXJCb3gmIGZs
ZXhCb3hDaGkKICAgICBSZW5kZXJCbG9jazo6Y29tcHV0ZUNoaWxkSW50cmluc2ljTG9naWNhbFdp
ZHRocyhmbGV4Qm94Q2hpbGQsIG1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxp
bmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3QKIHsKICAgICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsK
ICAgICBpZiAoIWJhc2VsaW5lKQotICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgq
dGhpcywgKnBhcmVudFN0eWxlKCksIGRpcmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpw
YXJlbnRTdHlsZSgpLCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250
YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2lu
TG9naWNhbEhlaWdodCgpOwogCi0gICAgcmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoZGlyZWN0
aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0lu
dCgpOworICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGNvbnRhaW5pbmdCbG9jaygpLT53
cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgp
KS50b0ludCgpOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckZsZXhpYmxl
Qm94OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJl
bGF5b3V0Q2hpbGRyZW4pCiAKICAgICBpZiAoYWxsSXRlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvIG1pbkhlaWdodCA9IGJv
cmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRp
b25PZkludGVyaW9yTGluZUJveGVzKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKKyAgICAg
ICAgICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSAr
IGxpbmVIZWlnaHQodHJ1ZSkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAg
ICBpZiAoaGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhl
aWdodChtaW5IZWlnaHQpOwogICAgICAgICB9CkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5
b3V0Q2hpbGRyZW4pCiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBvdXIgY2hpbGRyZW4g
bWlnaHQgYmUgb3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8gSW5zdGVhZCBvZiBq
dXN0IGNoZWNraW5nIGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhlIGZsZXhib3gKICAg
ICAgICAgLy8gaGFzIGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdodCB0byBjb3ZlciB0
aGlzIGNhc2UuCi0gICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGlu
Z0xvZ2ljYWxIZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JM
aW5lQm94ZXMpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAgICBMYXlvdXRVbml0
IG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0
KHRydWUpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICBpZiAoc2l6ZSgpLmhl
aWdodCgpIDwgbWluSGVpZ2h0KQogICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChtaW5IZWln
aHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmgKaW5kZXggZTY4Y2FkMjA3NmUzLi44Y2E3ODcyZmM4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGNhbkRyb3BBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKIAotICAgIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFz
ZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDcwMDJmODhkYTQ2Ny4uMTA3NGRhMDg4MDFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00ODksNyArNDg5LDcg
QEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRD
aGlsZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250YWluZXIgc2hvdWxkIGhhdmUgdGhlIG1pbmlt
dW0gaGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVkaXRhYmxlLiBUaGF0IGRvZXMgbm90IGFmZmVj
dCB0cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewog
ICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUgPSBib3JkZXJBbmRQ
YWRkaW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KHRydWUs
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGlu
ZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKQorICAgICAgICAgICAgICAgICsgbGluZUhl
aWdodCh0cnVlKQogICAgICAgICAgICAgICAgICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwog
ICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1p
bkhlaWdodEZvckVtcHR5TGluZSkpOwogICAgICAgICB9CkBAIC02MjYsNyArNjI2LDcgQEAgdm9p
ZCBSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGls
ZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250YWluZXIgc2hvdWxkIGhhdmUgdGhlIG1pbmltdW0g
aGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVkaXRhYmxlLiBUaGF0IGRvZXMgbm90IGFmZmVjdCB0
cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewogICAg
ICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUgPSBib3JkZXJBbmRQYWRk
aW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KHRydWUsIGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwg
UG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKQorICAgICAgICAgICAgICAgICsgbGluZUhlaWdo
dCh0cnVlKQogICAgICAgICAgICAgICAgICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAg
ICAgICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhl
aWdodEZvckVtcHR5TGluZSkpOwogICAgICAgICB9CkBAIC0yMDEyLDE0ICsyMDEyLDEzIEBAIGJv
b2wgUmVuZGVyR3JpZDo6aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRl
ckJveCYgZ3JpZEl0ZW0sIEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJl
ZCBieSBSZW5kZXJGbGV4aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93
LgotTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVEaXJl
Y3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBBU1NFUlRf
VU5VU0VEKG1vZGUsIG1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKICAgICBhdXRv
IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lKQotICAg
ICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGRp
cmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgcmV0
dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHlsZSgpLCBjb250YWluaW5n
QmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDog
VmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOwogCi0gICAg
cmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
bWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0ludCgpOworICAgIHJldHVybiBiYXNlbGlu
ZS52YWx1ZSgpICsgKGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRh
bCgpID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0ludCgpOwogfQogCiBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckdyaWQ6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDg2YjFlY2UyZWEzOC4uN2Yy
NzRjZGMwNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI2OSw3
ICsyNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQXV0b01hcmdpbnNJblJvd0F4aXNJ
Zk5lZWRlZChSZW5kZXJCb3gmKTsKICAgICBib29sIGlzQ2hpbGRFbGlnaWJsZUZvck1hcmdpblRy
aW0oTWFyZ2luVHJpbVR5cGUsIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0IGZpbmFsOwogCi0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
ZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZp
bmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNv
bnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGlu
ZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggY2VlYTZhYmNhYjBmLi4wZmJhN2UwYTJhYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzA2LDcgKzMw
Niw3IEBAIExheW91dFVuaXQgUmVuZGVySW1hZ2U6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWln
aHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2Vk
Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KGVzdGltYXRlZFVzZWRXaWR0aCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRp
b25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXQ7CiAjaWYgRU5BQkxFKE1VTFRJX1JFUFJF
U0VOVEFUSU9OX0hFSUMpCkBAIC0zMTUsNyArMzE1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFn
ZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWMKICAgICAgICAgb2Zmc2V0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobWV0cmljcy5k
ZXNjZW50KTsKICAgICB9CiAjZW5kaWYKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBv
c2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAtIG9mZnNldDsK
KyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgLSBvZmZzZXQ7CiB9CiAK
IHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIgbmV3SW1hZ2Us
IGNvbnN0IEludFJlY3QqIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CmluZGV4IDA1MWQxNTY0YzMxMi4uOTkwYTdkYjMwNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCA9
IFNob3VsZENvbXB1dGVQcmVmZXJyZWQ6OkNvbXB1dGVBY3R1YWwpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGVzdGltYXRlZFVzZWRXaWR0aCA9IHN0ZDo6bnVsbG9wdCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VUb0VtcHR5KCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggOTA4
ZjYyYjc5NTRiLi42MTcyYTIwMWNhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCkBAIC04MTcsMTkgKzgxNywxMiBAQCBMZWdhY3lJbmxpbmVGbG93Qm94KiBS
ZW5kZXJJbmxpbmU6OmNyZWF0ZUFuZEFwcGVuZElubGluZUZsb3dCb3goKQogICAgIHJldHVybiBm
bG93Qm94OwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6bGluZUhlaWdodChib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3Rpb24qLywgTGluZVBvc2l0aW9uTW9k
ZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjps
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdAogewogICAgIGF1dG8mIGxpbmVTdHlsZSA9
IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgIHJldHVybiBMYXlv
dXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0
TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5
bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRN
ZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQ
b3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OwotfQotCiBMYXlvdXRT
aXplIFJlbmRlcklubGluZTo6b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGluZShjb25zdCBS
ZW5kZXJCb3gqIGNoaWxkKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlz
bid0IHJpZ2h0IHdpdGggbWl4ZWQgd3JpdGluZyBtb2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaAppbmRleCA3NWU2ZGIyZDg3ZDEuLjQxMTZkYWI0YTc4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTM5LDggKzEzOSw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKSBmaW5hbCB7IG1f
bGVnYWN5TGluZUJveGVzLmRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOyB9CiAKLSAg
ICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5h
bDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUp
IGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQgdXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0
UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCA0YjRkNzgzMjNjZWQuLjBh
M2UwMWFjZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
bmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVuZGVyTGluZUJyZWFr
KCkKIHsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW9uKi8sIExpbmVQb3NpdGlvbk1v
ZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpbmVCcmVh
azo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSkgY29uc3QKIHsKICAgICBpZiAoZmlyc3RMaW5l
KSB7CiAgICAgICAgIGF1dG8mIGZpcnN0TGluZVN0eWxlID0gdGhpcy0+Zmlyc3RMaW5lU3R5bGUo
KTsKQEAgLTcyLDEzICs3Miw2IEBAIExheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjCiAgICAgcmV0dXJu
ICptX2NhY2hlZExpbmVIZWlnaHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpi
YXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRv
JiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwot
ICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAg
ICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0
KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhl
aWdodCgpKSAvIDIpIH07Ci19Ci0KIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zmc2V0
KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuaAppbmRleCBkZjExOThhNWZjZDUuLjM1ZmQ2YzU0NWQzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtNjEsOCArNjEsNyBAQCBw
cml2YXRlOgogICAgIGludCBjYXJldE1heE9mZnNldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
Y2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWw7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVI
ZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
KSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsK
KyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0IGZpbmFsOwog
CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAg
ICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2Y1M2JiOGFi
NmFhLi5mZmI2YmU1MjBiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTMwOCw5ICszMDgsOSBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21w
dXRlZFZhbHVlcyBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdQogICAg
IHJldHVybiBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxv
Z2ljYWxUb3ApOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24sIExpbmVQ
b3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlz
dEJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0byBiYXNlbGluZSA9IFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24sIGxpbmVQ
b3NpdGlvbk1vZGUpOworICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKICAgICBpZiAoIXNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgYmFzZWxpbmUgLT0gYmFzZWxpbmVBZGp1c3RtZW50OwogICAgIHJldHVybiBiYXNlbGluZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDRhNTQ3M2ZlMjMw
NC4uY2UzZWRjZDA1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBMb2dpY2FsRXh0ZW50Q29t
cHV0ZWRWYWx1ZXMgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlv
dXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAppbmRleCAxMTZmOGE2MjMxNWUuLjFiMGJlMzRjZDdjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtNDIyLDE4ICs0MjIsMTgg
QEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVJbmxpbmVNYXJnaW5zKCkKICAgICBtdXRh
YmxlU3R5bGUoKS5zZXRNYXJnaW5FbmQoU3R5bGU6Ok1hcmdpbkVkZ2U6OkZpeGVkIHsgbWFyZ2lu
RW5kIH0pOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQoYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9k
ZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjps
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdAogewogICAgIGlmICghaXNJbWFnZSgpKQot
ICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlv
biwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKLSAgICByZXR1cm4gUmVuZGVyQm94Ojps
aW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICAg
ICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmxpbmVIZWlnaHQoZmlyc3RMaW5lKTsKKyAgICByZXR1cm4g
UmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
TGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
CitMYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAog
ewogICAgIGlmICghaXNJbWFnZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFzZWxp
bmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgUG9zaXRpb25PZkludGVyaW9yTGluZUJv
eGVzKTsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwg
ZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0t
PmJhc2VsaW5lUG9zaXRpb24oKTsKKyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0
aW9uKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGlzdE1hcmtlcjo6aXNJbnNpZGUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggMjU4YzZhMGIy
ZDMyLi5jYzk1MzBmZDZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuaApAQCAtODEsOCArODEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAgICB2b2lkIGxheW91dCgpIGZp
bmFsOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVj
dCopIGZpbmFsOwotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgbGluZUhlaWdo
dChib29sIGZpcnN0TGluZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGNsaXBUb1Zpc2libGVDb250ZW50KSBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVh
ZigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHN0eWxlV2lsbENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IDU1MDJkMTc3ODM4
OS4uNDlkMTFiYzNkZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaApAQCAtMTI5LDkgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBGbGV4Ym94IGRlZmlu
ZXMgYmFzZWxpbmVzIGRpZmZlcmVudGx5IHRoYW4gcmVndWxhciBibG9ja3MuCiAgICAgLy8gRm9y
IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBtZW51bGlzdHMgbmVlZCB0byBkbyB0aGUgcmVndWxh
ciBibG9jayBiZWhhdmlvci4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBw
b3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBwb3NpdGlvbik7CisgICAgICAgIHJl
dHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIH0KICAgICBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KICAgICBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGly
ZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tC
YXNlbGluZShkaXJlY3Rpb24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuY3BwCmluZGV4IDU0MzkyOTg2ZjI2YS4uZmVlMTc5Nzk5ZjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBSZWY8SFRNTElu
cHV0RWxlbWVudD4gUmVuZGVyU2xpZGVyOjpwcm90ZWN0ZWRFbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZUZvck5vbkFub255bW91cygpKTsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAvKmZp
cnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogUGF0Y2ggdGhpcyBmdW5jdGlvbiBmb3Igd3JpdGluZy1tb2RlLgogICAgIHJldHVy
biBoZWlnaHQoKSArIG1hcmdpblRvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5oCmluZGV4IDU4M2Q4MjMxOGI2Ny4uYzA1ZjNhZmMxNjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyU2xpZGVyIl9zOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJh
c2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYg
bWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCmluZGV4IGYxYzE0MWVkNGUxZC4uZmJkNjQ1MTIwZTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE1ODIsMTEgKzE1ODIsMTEgQEAg
UmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZTo6Y2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxl
Q2VsbCogY2VsbCkgY29uc3QKICAgICByZXR1cm4gY2VsbC0+c2VjdGlvbigpLT5wcmltYXJ5Q2Vs
bEF0KGNlbGwtPnJvd0luZGV4KCksIGVmZkNvbCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGFi
bGU6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1
dG8gYmFzZWxpbmVQb3MgPSBmaXJzdExpbmVCYXNlbGluZSgpKQotICAgICAgICByZXR1cm4gKGRp
cmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkg
KyBiYXNlbGluZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICBy
ZXR1cm4gKHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1hcmdp
blJpZ2h0KCkpICsgYmFzZWxpbmVQb3MudmFsdWUoKTsKKyAgICByZXR1cm4gUmVuZGVyQm94Ojpi
YXNlbGluZVBvc2l0aW9uKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVy
VGFibGU6OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IDE5Yzk3NDQxZTVjMC4uNDAxYjBl
YWQ0NTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMjMxLDcg
KzIzMSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlv
bikgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGlu
ZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CmluZGV4IDEyMzhiNmFjMWIyYS4uYWJkODgwZTEyMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBSZW5k
ZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0Q29udHJvbDo6Y29t
cHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5uZXJUZXh0Qm94ID0g
aW5uZXJUZXh0LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0IG5vbkNvbnRlbnRI
ZWlnaHQgPSBpbm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBp
bm5lclRleHRCb3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgbG9naWNhbEhlaWdo
dCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gtPmxpbmVIZWlnaHQo
dHJ1ZSwgSG9yaXpvbnRhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyksIG5vbkNv
bnRlbnRIZWlnaHQpOworICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dp
Y2FsSGVpZ2h0KGlubmVyVGV4dEJveC0+bGluZUhlaWdodCh0cnVlKSwgbm9uQ29udGVudEhlaWdo
dCk7CiAKICAgICAgICAgLy8gV2UgYXJlIGFibGUgdG8gaGF2ZSBhIGhvcml6b250YWwgc2Nyb2xs
YmFyIGlmIHRoZSBvdmVyZmxvdyBzdHlsZSBpcyBzY3JvbGwsIG9yIGlmIGl0cyBhdXRvIGFuZCB0
aGVyZSdzIG5vIHdvcmQgd3JhcC4KICAgICAgICAgYXV0byBzaG91bGRJbmNsdWRlU2Nyb2xsYmFy
SGVpZ2h0ID0gWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmgKaW5kZXggODJlMzJjMzk4ZGZkLi44OTAxMGMwMGNmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC04OCw5ICs4OCw5IEBAIHB1Ymxp
YzoKICAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKEVsZW1lbnQmLCBSZW5kZXJT
dHlsZSYmKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKCk7
CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qg
b3ZlcnJpZGUKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlk
ZQogICAgIHsKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGZp
cnN0TGluZSwgZGlyZWN0aW9uLCBwb3NpdGlvbik7CisgICAgICAgIHJldHVybiBSZW5kZXJCbG9j
azo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxv
Y2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rp
b24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xNdWx0aUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcAppbmRleCA4NGIzZDZmNDFiMjAuLjVlMDk0ZDBjY2NkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIExheW91dFVuaXQgUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmU6OmNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxpCiAg
ICAgcmV0dXJuIGxpbmVIZWlnaHQgKiB0ZXh0QXJlYUVsZW1lbnQoKS5yb3dzKCkgKyBub25Db250
ZW50SGVpZ2h0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpi
YXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQg
UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rp
b24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6bGF5b3V0RXhj
bHVkZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5o
CmluZGV4IGRlMTdhZGEzZjViYS4uYTAxOWYwMGRmNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtNDQsNyAr
NDQsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IGdldEF2ZXJhZ2VDaGFyV2lkdGgoKSBvdmVycmlk
ZTsKICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENvbnRlbnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hh
cldpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhl
aWdodCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dEV4Y2x1ZGVk
Q2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAKaW5kZXggYmEwOTdiYmUzNjIwLi42ZDQzNDBm
M2E2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0
aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcApA
QCAtNjksNyArNjksNyBAQCBib29sIExpbmVXaWR0aDo6Zml0c09uTGluZUV4Y2x1ZGluZ1RyYWls
aW5nQ29sbGFwc2VkV2hpdGVzcGFjZSgpIGNvbnN0CiB2b2lkIExpbmVXaWR0aDo6dXBkYXRlQXZh
aWxhYmxlV2lkdGgoKQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gbV9ibG9jay5sb2dpY2Fs
SGVpZ2h0KCk7Ci0gICAgYXV0byBsaW5lSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwgbV9ibG9jay5s
aW5lSGVpZ2h0KHRydWUsIG1fYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6
b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsK
KyAgICBhdXRvIGxpbmVIZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQo
dHJ1ZSkpOwogICAgIG1fbGVmdCA9IG1fYmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhl
aWdodCwgbGluZUhlaWdodCk7CiAgICAgbV9yaWdodCA9IG1fYmxvY2subG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yTGluZShoZWlnaHQsIGxpbmVIZWlnaHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmluZGV4IDVkMTY3YWVk
NzY4Ny4uOTFjMzg5YWE0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtOTUsMTIgKzk1LDkgQEAgTGF5b3V0
VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6bWlycm9ySWZOZWVkZWQoTGF5b3V0VW5pdCBob3Jpem9u
dGFsT2Zmc2V0LCBMYXlvdXQKICAgICByZXR1cm4gaG9yaXpvbnRhbE9mZnNldDsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpiYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9m
SW50ZXJpb3JMaW5lQm94ZXMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGZpcnN0
TGluZUJhc2VsaW5lKCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmly
c3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpKTsKKyAgICByZXR1cm4gZmlyc3RM
aW5lQmFzZWxpbmUoKS52YWx1ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpKTsK
IH0KIAogTGF5b3V0VW5pdCB0b1VzZXJVbml0cyhjb25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgm
IGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBMYXlvdXRVbml0JiByZWZl
cmVuY2VWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaAppbmRleCBiMDViNmVkMDY1NGQuLjgwZTVkMDA0NmM3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4NjE3LgogICAgIHZpcnR1YWwgUmVuZGVyTWF0aE1MT3BlcmF0
b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAot
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVj
dGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNv
bnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476021</attachid>
            <date>2025-07-15 09:47:35 -0700</date>
            <delta_ts>2025-07-15 12:50:46 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295138-20250715094734.patch</filename>
            <type>text/plain</type>
            <size>22363</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBlYWE2MTJiODk3OTlkNmZiZTZlOGFkNjE3MzVkNWE4ZGY0MmE0ZmRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDU6NDQ6NTQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVtb3ZlIExpbmVEaXJlY3Rpb25Nb2RlIGZyb20KIFJlbmRlckJveE1vZGVsT2JqZWN0Ojps
aW5lSGVpZ2h0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTM4
CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCihvbmx5IFJlbmRlclRleHRDb250cm9sIHBh
c3NlcyBpbiBleHBsaWNpdCBIb3Jpem9udGFsTGluZSwgd2hpY2ggc2VlbXMgbGlrZSBhIGJ1ZyBh
bnl3YXkpCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5j
cHA6CihXZWJDb3JlOjpjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHA6CihXZWJDb3JlOjpMZWdhY3lM
aW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZUhlaWdodCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2Nr
V2l0aE5vQ2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dD
aGlsZHJlbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEluaXRpYWxMZXR0ZXJQ
b3NpdGlvbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmlubGluZUJsb2NrQmFzZWxpbmUg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRl
ckJveDo6bGluZUhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9u
dGFsQm94KToKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVy
dGljYWxCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmxheW91dEdyaWQpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0TWFzb25yeSk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodCBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJr
ZXI6OmxpbmVIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodCBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKFdl
YkNvcmU6OkxpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgotLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgICAgICAgICAg
IHwgIDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICB8ICAyICst
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAg
fCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
ICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcCAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgICAgIHwg
IDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVXaWR0aC5jcHAgICAgICAgICAgICB8ICAyICstCiAxOSBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNl
cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcAppbmRleCA0OTU3ZWIxN2M0NGYuLmJlNGJlOWI5
YjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0
YXRpb24uY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIExheW91dFJlY3QgY29tcHV0ZUNh
cmV0UmVjdEZvckVtcHR5RWxlbWVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmUKICAg
ICB9CiAgICAgeCA9IHN0ZDo6bWluKHgsIHN0ZDo6bWF4PExheW91dFVuaXQ+KG1heFggLSBjYXJl
dFdpZHRoKCksIDApKTsKIAotICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWln
aHQodHJ1ZSwgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gcmVuZGVyZXIubGluZUhlaWdodCh0
cnVlKTsKICAgICBhdXRvIGhlaWdodCA9IHN0ZDo6bWluKGxpbmVIZWlnaHQsIExheW91dFVuaXQg
eyBjdXJyZW50U3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKSB9KTsKICAgICBh
dXRvIHkgPSByZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyAobGluZUhlaWdodCA+
IGhlaWdodCA/IChsaW5lSGVpZ2h0IC0gaGVpZ2h0KSAvIDIgOiBMYXlvdXRVbml0IHsgfSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCA5
OWRjNzAzNWNkMmMuLjY4ZTNhZDA5ODRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lMaW5lTGF5b3V0LmNwcApAQCAtNTc2LDcgKzU3Niw3IEBAIHZvaWQgTGVnYWN5TGlu
ZUxheW91dDo6bGF5b3V0TGluZUJveGVzKCkKICAgICB9CiAKICAgICBpZiAoIWxlZ2FjeVJvb3RC
b3goKSAmJiBtX2Zsb3cuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgbV9mbG93LnNldExvZ2lj
YWxIZWlnaHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUs
IG1fZmxvdy5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUpKTsKKyAgICAgICAgbV9mbG93LnNldExvZ2ljYWxIZWlnaHQobV9mbG93LmxvZ2lj
YWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUpKTsKIH0KIAogdm9pZCBMZWdhY3lM
aW5lTGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkODJhZmE5N2M5YmUuLjMyNDY1NTc5MTI0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNDc0LDcg
KzI0NzQsNyBAQCBib29sIFJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSgpIGNvbnN0CiAgICAg
cmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC0+aXNSb290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSkgY29uc3QKIHsKICAgICBhdXRvJiBsaW5lU3R5bGUgPSBmaXJzdExpbmUg
PyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwpAQCAtMjUzNSw3ICsy
NTM1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiAgICAgfQogCiAgICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5t
ZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJp
Y3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodCh0cnVlLCBkaXJlY3Rpb24pIC0gZm9udE1ldHJp
Y3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgcmV0dXJuIExheW91dFVuaXQgeyBm
b250TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KHRydWUpIC0gZm9udE1ldHJpY3Mu
aW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5p
dD4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTI1OTUsNyArMjU5
NSw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2Nr
QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluCiAgICAgaWYgKCFoYXZlTm9ybWFsRmxvd0No
aWxkICYmIGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBm
aXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgIHJldHVybiBM
YXlvdXRVbml0IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQotICAgICAgICAg
ICAgKyAobGluZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uKSAtIGZvbnRNZXRyaWNzLmludEhl
aWdodCgpKSAvIDIKKyAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSkgLSBmb250TWV0cmlj
cy5pbnRIZWlnaHQoKSkgLyAyCiAgICAgICAgICAgICArIChsaW5lRGlyZWN0aW9uID09IEhvcml6
b250YWxMaW5lID8gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgOiBib3JkZXJSaWdodCgpICsg
cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCmluZGV4IDhiNTkyZDFjMzk3OC4uZjQxZjJhMmQ5NjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0
ZWQ6CiAKIHB1YmxpYzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVu
IGZvciBpbmxpbmUtYmxvY2suCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRVbml0IGJhc2Vs
aW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FLUJMT0NLRkxPVzog
UmVtb3ZlIHZpcnR1YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRvIFJlbmRl
ckJsb2NrRmxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAppbmRleCAxMWY4N2MwYzk2NTQuLmY4ZGVjYmVhMzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tXaXRoTm9DaGlsZHJlbigpCiAgICAgICAgICAgICBz
ZXRIYXNNYXJnaW5CZWZvcmVRdWlyayhzdHlsZS5tYXJnaW5CZWZvcmUoKS5oYXNRdWlyaygpKTsK
ICAgICAgICAgICAgIHNldEhhc01hcmdpbkFmdGVyUXVpcmsoc3R5bGUubWFyZ2luQWZ0ZXIoKS5o
YXNRdWlyaygpKTsKICAgICAgICAgfQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFz
TGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSA6IDBfbHUpKTsKKyAgICAgICAgc2V0
TG9naWNhbEhlaWdodChib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpICsgKGhhc0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KHRydWUpIDog
MF9sdSkpOwogICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgfTsKICAgICBjb21w
dXRlQmxvY2tBeGlzU2l6ZSgpOwpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRJbkZsb3dDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRy
ZW4sIExhCiAKICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGhh
c0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQo
dHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lKTsKKyAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbGluZUhlaWdodCh0cnVlKTsK
ICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICByZXBh
aW50TG9naWNhbFRvcCA9IHsgfTsKQEAgLTI3NDksNyArMjc0OSw3IEBAIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVyUG9zaXRpb24oUmVuZGVyQm94JiBjaGlsZEJveCwg
TGF5b3V0VW5pCiAgICAgaWYgKCFmb250TWV0cmljcy5jYXBIZWlnaHQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUsIGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSk7
CisgICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUpOwogICAgIExh
eW91dFVuaXQgYmVmb3JlTWFyZ2luQm9yZGVyUGFkZGluZyA9IGNoaWxkQm94LmJvcmRlckFuZFBh
ZGRpbmdCZWZvcmUoKSArIGNoaWxkQm94Lm1hcmdpbkJlZm9yZSgpOwogICAgIAogICAgIC8vIE1h
a2UgYW4gYWRqdXN0bWVudCB0byBhbGlnbiB3aXRoIHRoZSBjYXAgaGVpZ2h0IG9mIGEgdGhlb3Jl
dGljYWwgYmxvY2sgbGluZS4KQEAgLTMzMjYsNyArMzMyNiw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gUmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rp
b25Nb2RlCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAg
IGNvbnN0IGF1dG8mIGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmlt
YXJ5Rm9udCgpOwogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyBMYXlvdXRVbml0KGZv
bnRNZXRyaWNzLmludEFzY2VudCgpCi0gICAgICAgICAgICAgICAgKyAobGluZUhlaWdodCh0cnVl
LCBsaW5lRGlyZWN0aW9uKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIKKyAgICAgICAg
ICAgICAgICArIChsaW5lSGVpZ2h0KHRydWUpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8g
MgogICAgICAgICAgICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBi
b3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQo
KSkpLnRvSW50KCkgfTsKICAgICAgICAgfQogCkBAIC00MDQ1LDcgKzQwNDUsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ29udGVudChSZWxheW91dENoaWxkcmVuIHJlbGF5
b3V0Q2hpbGRyZW4sIExheQogICAgIGF1dG8gcGFydGlhbFJlcGFpbnRSZWN0ID0gbGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmxheW91dChyZWxheW91dENoaWxkcmVuID09IFJlbGF5
b3V0Q2hpbGRyZW46OlllcyA/IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1
bGxMYXlvdXQ6OlllcyA6IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxM
YXlvdXQ6Ok5vKTsKIAogICAgIGF1dG8gYm9yZGVyQm94Qm90dG9tID0gWyZdIHsKLSAgICAgICAg
YXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHkoKSA/IGxp
bmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5l
IDogVmVydGljYWxMaW5lKSA6IGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jb250
ZW50TG9naWNhbEhlaWdodCgpOworICAgICAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGlu
ZXMoKSAmJiBoYXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlKSA6IGxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dC5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICBy
ZXR1cm4gYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgY29udGVudEhlaWdodCArIGJvcmRlckFu
ZFBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgIH07CiAgICAg
YXV0byBuZXdCb3JkZXJCb3hCb3R0b20gPSBib3JkZXJCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggMjg5MjlmMDE0MWU0Li5hZTMwZmYyOTZjMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00OTY2LDEwICs0OTY2
LDEwIEBAIGJvb2wgUmVuZGVyQm94Ojppc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSBjb25z
dAogICAgICAgICB8fCBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpOwogfQogCi1MYXlvdXRV
bml0IFJlbmRlckJveDo6bGluZUhlaWdodChib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rp
b25Nb2RlIGRpcmVjdGlvbikgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0
KGJvb2wgLypmaXJzdExpbmUqLykgY29uc3QKIHsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFj
ZWRPckF0b21pY0lubGluZSgpKQotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250
YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRv
bSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCk7
CisgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUoKSArIGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdp
bkFmdGVyKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAppbmRleCBjNzBjNjliNjkzZjMuLmM2Yzg0MWFiODZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaApAQCAtNTI2LDcgKzUyNiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBtYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKSB7IH0KICAgICAKLSAg
ICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
KSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExp
bmUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
aW5kZXggM2U5OTJkMDg1YzM2Li5kMWI0NzI2ZmUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0xOTQsNyArMTk0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JDb250ZW50KCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8g
ZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4KLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0
TGluZSkgY29uc3QgPSAwOwogCiAgICAgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRp
b25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBjZTgwMjhkODBiNDguLjE0NzNhNzU1ZjlmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0
QwogICAgICAgICBBU1NFUlQoY2hpbGRJbmRleCA9PSBjaGlsZExheW91dERlbHRhcy5zaXplKCkp
OwogCiAgICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQot
ICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5n
TW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsK
KyAgICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSkpOwogCiAg
ICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRkKTsKIApAQCAtODQ4LDcgKzg0OCw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChSZWxh
eW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpCiAgICAgICAgIHlQb3MgPSBoZWlnaHQoKTsKIAogICAg
ICAgICBpZiAoIWl0ZXJhdG9yLmZpcnN0KCkgJiYgaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAg
ICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgd3JpdGluZ01vZGUoKS5p
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CisgICAgICAg
ICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUpKTsKIAogICAgICAgICBz
ZXRIZWlnaHQoaGVpZ2h0KCkgKyB0b0FkZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGMyYTg3NmJhMjc1Mi4uNjNhZWJmOGViMjRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
QEAgLTEzNDYsNyArMTM0Niw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnBlcmZvcm1GbGV4
TGF5b3V0KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKIAogICAgIGlmIChhbGxJ
dGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpIHsKLSAgICAg
ICAgICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSAr
IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxM
aW5lIDogVmVydGljYWxMaW5lKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAg
ICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGxp
bmVIZWlnaHQodHJ1ZSkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBp
ZiAoaGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChtaW5IZWlnaHQpOwogICAgICAgICB9CkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0
Q2hpbGRyZW4pCiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBvdXIgY2hpbGRyZW4gbWln
aHQgYmUgb3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8gSW5zdGVhZCBvZiBqdXN0
IGNoZWNraW5nIGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhlIGZsZXhib3gKICAgICAg
ICAgLy8gaGFzIGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdodCB0byBjb3ZlciB0aGlz
IGNhc2UuCi0gICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSArIHNjcm9sbGJhckxvZ2ljYWxIZWln
aHQoKTsKKyAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9n
aWNhbEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQo
KTsKICAgICAgICAgaWYgKHNpemUoKS5oZWlnaHQoKSA8IG1pbkhlaWdodCkKICAgICAgICAgICAg
IHNldExvZ2ljYWxIZWlnaHQobWluSGVpZ2h0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggZmViN2Q5MzI2NWMwLi5hMDg4MGI0MDdkYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTQ5MCw3ICs0OTAsNyBAQCB2
b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxk
cmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBo
ZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRy
YWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKQor
ICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0cnVlKQogICAgICAgICAgICAgICAgICsgc2Ny
b2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6
Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhlaWdodEZvckVtcHR5TGluZSkpOwogICAgICAgICB9
CkBAIC02MjcsNyArNjI3LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KFJlbGF5
b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250YWluZXIg
c2hvdWxkIGhhdmUgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVkaXRhYmxl
LiBUaGF0IGRvZXMgbm90IGFmZmVjdCB0cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAgICBpZiAo
aGFzTGluZUlmRW1wdHkoKSkgewogICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JF
bXB0eUxpbmUgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAg
ICAgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9u
dGFsTGluZSA6IFZlcnRpY2FsTGluZSkKKyAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1
ZSkKICAgICAgICAgICAgICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAg
ICAgIHNldExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5IZWlnaHRG
b3JFbXB0eUxpbmUpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcAppbmRleCAxOGZjOWUxZTY3NDUuLjg5NDJmODNlNGY0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgxNyw3ICs4MTcsNyBAQCBMZWdh
Y3lJbmxpbmVGbG93Qm94KiBSZW5kZXJJbmxpbmU6OmNyZWF0ZUFuZEFwcGVuZElubGluZUZsb3dC
b3goKQogICAgIHJldHVybiBmbG93Qm94OwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3Rpb24q
LykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lKSBjb25zdAogewogICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGlu
ZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWls
KGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKaW5kZXggODg2YmJkMzE3NDljLi40MTE2ZGFiNGE3ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBkaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCkgZmluYWwgeyBtX2xl
Z2FjeUxpbmVCb3hlcy5kaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCp0aGlzKTsgfQogCi0gICAg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkg
Y29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBj
b25zdCBmaW5hbDsKICAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggZTQ4MDkzOWMxYWRkLi4wYTNl
MDFhY2YxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIFJlbmRlckxpbmVCcmVhazo6flJlbmRlckxpbmVCcmVhaygp
CiB7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvbiovKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CiB7CiAg
ICAgaWYgKGZpcnN0TGluZSkgewogICAgICAgICBhdXRvJiBmaXJzdExpbmVTdHlsZSA9IHRoaXMt
PmZpcnN0TGluZVN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJy
ZWFrLmgKaW5kZXggMTczMDFmMzE4YzJkLi4zNWZkNmM1NDVkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToK
ICAgICBpbnQgY2FyZXRNYXhPZmZzZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhbkJlU2Vs
ZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91
dFVuaXQgbWFyZ2luVG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIExheW91dFVu
aXQgbWFyZ2luQm90dG9tKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IGMwNTc3YjM0ZGM1Mi4u
MWIwYmUzNGNkN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwCkBAIC00MjIsMTEgKzQyMiwxMSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVw
ZGF0ZUlubGluZU1hcmdpbnMoKQogICAgIG11dGFibGVTdHlsZSgpLnNldE1hcmdpbkVuZChTdHls
ZTo6TWFyZ2luRWRnZTo6Rml4ZWQgeyBtYXJnaW5FbmQgfSk7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUgZGlyZWN0aW9uKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lKSBjb25zdAogewogICAgIGlmICghaXNJbWFnZSgpKQotICAgICAg
ICByZXR1cm4gbV9saXN0SXRlbS0+bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbik7Ci0g
ICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbik7Cisg
ICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZpcnN0TGluZSk7CisgICAgcmV0
dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUpOwogfQogCiBMYXlvdXRVbml0IFJl
bmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggNjllZTc5YmMwNzM3Li5jYzk1MzBm
ZDZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaApA
QCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAgICB2b2lkIGxheW91dCgpIGZpbmFsOwogICAgIHZv
aWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCopIGZpbmFsOwot
ICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSkgY29uc3QgZmluYWw7CiAgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qg
ZmluYWw7CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVD
b250ZW50KSBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCmluZGV4IGQ3MTg4ZDU5OGZkZS4uMDdhOTAxZjcyMTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsx
MDgsNyBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0
Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5u
ZXJUZXh0Qm94ID0gaW5uZXJUZXh0LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0
IG5vbkNvbnRlbnRIZWlnaHQgPSBpbm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2Fs
SGVpZ2h0KCkgKyBpbm5lclRleHRCb3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAg
bG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gt
PmxpbmVIZWlnaHQodHJ1ZSwgSG9yaXpvbnRhbExpbmUpLCBub25Db250ZW50SGVpZ2h0KTsKKyAg
ICAgICAgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRl
eHRCb3gtPmxpbmVIZWlnaHQodHJ1ZSksIG5vbkNvbnRlbnRIZWlnaHQpOwogCiAgICAgICAgIC8v
IFdlIGFyZSBhYmxlIHRvIGhhdmUgYSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiB0aGUgb3ZlcmZs
b3cgc3R5bGUgaXMgc2Nyb2xsLCBvciBpZiBpdHMgYXV0byBhbmQgdGhlcmUncyBubyB3b3JkIHdy
YXAuCiAgICAgICAgIGF1dG8gc2hvdWxkSW5jbHVkZVNjcm9sbGJhckhlaWdodCA9IFsmXSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcAppbmRleCBlY2VhMWQ3
YTI1ZTAuLjZkNDM0MGYzYTY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2xpbmUvTGluZVdpZHRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9M
aW5lV2lkdGguY3BwCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgTGluZVdpZHRoOjpmaXRzT25MaW5l
RXhjbHVkaW5nVHJhaWxpbmdDb2xsYXBzZWRXaGl0ZXNwYWNlKCkgY29uc3QKIHZvaWQgTGluZVdp
ZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCgpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBt
X2Jsb2NrLmxvZ2ljYWxIZWlnaHQoKTsKLSAgICBhdXRvIGxpbmVIZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQodHJ1ZSwgbV9ibG9jay5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKKyAgICBhdXRvIGxpbmVI
ZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQodHJ1ZSkpOwogICAgIG1f
bGVmdCA9IG1fYmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbGluZUhlaWdo
dCk7CiAgICAgbV9yaWdodCA9IG1fYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShoZWln
aHQsIGxpbmVIZWlnaHQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>