<?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>233231</bug_id>
          
          <creation_ts>2021-11-16 19:17:53 -0800</creation_ts>
          <short_desc>[JSC] Revise JSON.parse atomize policy</short_desc>
          <delta_ts>2022-05-16 09:19:31 -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>
          <dependson>240407</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815785</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-16 19:17:53 -0800</bug_when>
    <thetext>[JSC] Accelerate JSON.stringify atomize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815786</commentid>
    <comment_count>1</comment_count>
      <attachid>444466</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-16 19:19:40 -0800</bug_when>
    <thetext>Created attachment 444466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816023</commentid>
    <comment_count>2</comment_count>
      <attachid>444539</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-17 11:17:48 -0800</bug_when>
    <thetext>Created attachment 444539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816047</commentid>
    <comment_count>3</comment_count>
      <attachid>444539</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-17 12:11:08 -0800</bug_when>
    <thetext>Comment on attachment 444539
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816138</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-17 14:51:12 -0800</bug_when>
    <thetext>Committed r285955 (244356@main): &lt;https://commits.webkit.org/244356@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444539.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816139</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-17 14:52:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/85522137&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444466</attachid>
            <date>2021-11-16 19:19:40 -0800</date>
            <delta_ts>2021-11-17 11:17:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233231-20211116191940.patch</filename>
            <type>text/plain</type>
            <size>19892</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWU4ZjJhMTY2MGE0NDU5M2E2Njk0Y2JkNjk0MjU5YjY2MDk0ZjUzLi40YjczYTg5YjIyOTZiOWZi
NTgwNGU1YjUzMjVlZGZiZDEyMzI1NTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFjY2VsZXJhdGUgSlNPTi5zdHJpbmdpZnkgYXRvbWl6ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMjMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXpl
KToKKyAgICAgICAgKiBydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkpTT05BdG9tU3RyaW5nQ2FjaGU6Om1ha2VJZGVudGlmaWVyKToKKyAgICAgICAg
KEpTQzo6SlNPTkF0b21TdHJpbmdDYWNoZTo6Y2xlYXIpOgorICAgICAgICAoSlNDOjpKU09OQXRv
bVN0cmluZ0NhY2hlOjpjYWNoZVNsb3QpOgorICAgICAgICAoSlNDOjpKU09OQXRvbVN0cmluZ0Nh
Y2hlOjpjYWNoZSk6CisgICAgICAgICogcnVudGltZS9KU09OQXRvbVN0cmluZ0NhY2hlSW5saW5l
cy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SlNPTkF0b21TdHJpbmdDYWNoZTo6bWFrZSk6Cisg
ICAgICAgIChKU0M6OkpTT05BdG9tU3RyaW5nQ2FjaGU6OnZtIGNvbnN0KToKKyAgICAgICAgKiBy
dW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2VyPENo
YXJUeXBlPjo6bWFrZUlkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2VyPENo
YXJUeXBlPjo6cGFyc2VQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChKU0M6OkxpdGVyYWxQYXJz
ZXI8Q2hhclR5cGU+OjpwYXJzZSk6CisgICAgICAgICogcnVudGltZS9MaXRlcmFsUGFyc2VyLmg6
CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDIxLTExLTE1ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIG9wZXJhdGlvbiBwYXRoIHdo
ZW4gUHV0QnlWYWwgY2hpbGQxIGlzIG5vdCBzcGVjdWxhdGVkIGFzIGEgQ2VsbApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNjNDFmYzAzZDBhMDg2Y2M3N2NlNGU3ZDAwMmRl
MTdjODY0MzIwMTYuLmYxYTMwZTJmOTU1MmYxY2EyODJmNjI2YTgyYzBhNmZiZThiOTc4YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwODUsNiArMTA4NSw3IEBAIHNl
dChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcnVudGltZS9K
U01vZHVsZUxvYWRlci5oCiAgICAgcnVudGltZS9KU01vZHVsZVJlY29yZC5oCiAgICAgcnVudGlt
ZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmgKKyAgICBydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGUu
aAogICAgIHJ1bnRpbWUvSlNPTk9iamVjdC5oCiAgICAgcnVudGltZS9KU09iamVjdC5oCiAgICAg
cnVudGltZS9KU09iamVjdElubGluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyZjFkMjk1ZTJmNDFhZDE1YTIxNGVkZmM3MjliMWRlMDM0ZWQ5NjY0Li40ZTNhZGI0Yjg1ODNj
Y2RkMmE1MTk0MDI1YmExYTc2ZmMwMzY5OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTg3NSw2ICsxODc1LDggQEAKIAkJRTMyRDRERTcyNkRBRkQ0MzAwRDQ1MzNBIC8qIFRl
bXBvcmFsQ2FsZW5kYXJQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzMkQ0REUxMjZEQUZENDIwMEQ0NTMzQSAvKiBUZW1wb3JhbENhbGVu
ZGFyUHJvdG90eXBlLmggKi87IH07CiAJCUUzMkQ0REU5MjZEQUZENDMwMEQ0NTMzQSAvKiBUZW1w
b3JhbENhbGVuZGFyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzJENERFMzI2REFGRDQzMDBENDUzM0EgLyogVGVtcG9yYWxDYWxlbmRhci5oICovOyB9
OwogCQlFMzJENERFQTI2REFGRDQzMDBENDUzM0EgLyogVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJE
NERFNDI2REFGRDQzMDBENDUzM0EgLyogVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLmggKi87
IH07CisJCUUzMkZFQTJDMjc0NDhGMzcwMEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMy
RkVBMkEyNzQ0OEYzNjAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2FjaGVJbmxpbmVzLmggKi87
IH07CisJCUUzMkZFQTJEMjc0NDhGMzcwMEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJGRUEyQjI3
NDQ4RjM2MDBGRjQxQzEgLyogSlNPTkF0b21TdHJpbmdDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMzA5NUREMjMyMTBBMUIwMEVCNzg1
NiAvKiBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzMwOTVEQzIzMjEwQTE0MDBFQjc4NTYgLyogSlNJbnRl
cm5hbEZpZWxkT2JqZWN0SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzMzRDQkI1MjFGRDk2QTkwMDBFQjE3OCAvKiBSZWdFeHBHbG9iYWxE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM0
Q0JCMzIxRkQ5NkE5MDAwRUIxNzggLyogUmVnRXhwR2xvYmFsRGF0YS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVF
MDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzM2MzdBNDFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MTc2
LDYgKzUxNzgsOCBAQAogCQlFMzJENERFMzI2REFGRDQzMDBENDUzM0EgLyogVGVtcG9yYWxDYWxl
bmRhci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhbENhbGVuZGFy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMkQ0REU0MjZEQUZENDMwMEQ0NTMz
QSAvKiBUZW1wb3JhbENhbGVuZGFyQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzMkQ0REU1MjZEQUZENDMwMEQ0NTMzQSAvKiBUZW1wb3JhbENhbGVu
ZGFyQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTMyRkVBMkEyNzQ0OEYzNjAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2FjaGVJbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT05BdG9tU3RyaW5nQ2Fj
aGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMkZFQTJCMjc0NDhG
MzYwMEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTT05BdG9tU3RyaW5nQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTMzMDVGQjAyMEIwRjc4NzAwQ0VCODJCIC8qIEluQnlWYXJpYW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluQnlWYXJpYW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzMDVGQjEyMEIwRjc4ODAwQ0VCODJCIC8qIEluQnlW
YXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluQnlWYXJpYW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzA5NURDMjMyMTBBMTQwMEVCNzg1NiAv
KiBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxG
aWVsZE9iamVjdEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4MDksNiAr
NzgxMyw4IEBACiAJCQkJQkMyMkEzOTgwRTE2RTE0ODAwQUYyMUM4IC8qIEpTT2JqZWN0LmNwcCAq
LywKIAkJCQlCQzIyQTM5OTBFMTZFMTQ4MDBBRjIxQzggLyogSlNPYmplY3QuaCAqLywKIAkJCQkw
RjkzMjc1RTFDMjFFRjdGMDBDRjY1NjQgLyogSlNPYmplY3RJbmxpbmVzLmggKi8sCisJCQkJRTMy
RkVBMkIyNzQ0OEYzNjAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2FjaGUuaCAqLywKKwkJCQlF
MzJGRUEyQTI3NDQ4RjM2MDBGRjQxQzEgLyogSlNPTkF0b21TdHJpbmdDYWNoZUlubGluZXMuaCAq
LywKIAkJCQlBN0Y5OTM1RTBGRDczMjUxMDBBMEIyRDAgLyogSlNPTk9iamVjdC5jcHAgKi8sCiAJ
CQkJQTdGOTkzNUQwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCAqLywKIAkJCQk3QzE4
NEUxODE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmNwcCAqLywKQEAgLTEwNDMwLDYgKzEw
NDM2LDggQEAKIAkJCQkwRjkzMjc1RjFDMjFFRjdGMDBDRjY1NjQgLyogSlNPYmplY3RJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmpl
Y3RSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjgwQTI4MTE1NTdFMzAwMEQ1Njk1NyAvKiBK
U09iamVjdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMkZFQTJEMjc0NDhGMzcw
MEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzJG
RUEyQzI3NDQ4RjM3MDBGRjQxQzEgLyogSlNPTkF0b21TdHJpbmdDYWNoZUlubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3Rjk5MzVGMEZENzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg3Q0RCOTEwNzEyQUQ0MDAwNjE0Q0YgLyogSlNPTk9iamVj
dC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBK
U1Byb21pc2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApp
bmRleCA4ZTExOGFmY2U0MjYzZTU1YzA4YTFjYTg1M2ViZjY0MTg3ZmNhNTkxLi5kYjRiZjYyZjAx
MDkwYjEyM2FmYzBkYTU2ZmM3MzRkMjE0YjliMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcApAQCAtMjA0OCw2ICsyMDQ4LDggQEAgdm9pZCBIZWFwOjpmaW5hbGl6ZSgpCiAgICAg
aWYgKEhhc093blByb3BlcnR5Q2FjaGUqIGNhY2hlID0gdm0oKS5oYXNPd25Qcm9wZXJ0eUNhY2hl
KCkpCiAgICAgICAgIGNhY2hlLT5jbGVhcigpOwogCisgICAgdm0oKS5qc29uQXRvbVN0cmluZ0Nh
Y2hlLmNsZWFyKCk7CisKICAgICBpbW11dGFibGVCdXR0ZXJmbHlUb1N0cmluZ0NhY2hlLmNsZWFy
KCk7CiAgICAgCiAgICAgZm9yIChjb25zdCBIZWFwRmluYWxpemVyQ2FsbGJhY2smIGNhbGxiYWNr
IDogbV9oZWFwRmluYWxpemVyQ2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTkF0b21TdHJpbmdDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTkF0b21TdHJpbmdDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhYzVjMTdjYWMy
MWI1Y2YyMGUwYWU2YWIyY2U4ZDdjMGNjOTA5OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OQXRvbVN0cmluZ0NhY2hlLmgKQEAgLTAsMCArMSw3
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bVN0cmluZ0ltcGwuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBK
U09OQXRvbVN0cmluZ0NhY2hlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8g
bWF4U3RyaW5nTGVuZ3RoRm9yQ2FjaGUgPSAzMjsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8g
Y2FwYWNpdHkgPSA1MTI7CisgICAgdXNpbmcgQ2FjaGUgPSBzdGQ6OmFycmF5PFJlZlB0cjxBdG9t
U3RyaW5nSW1wbD4sIGNhcGFjaXR5PjsKKworICAgIGVudW0gY2xhc3MgVHlwZSA6IGJvb2wgeyBJ
ZGVudGlmaWVyIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlR5cGVz
ID0gMTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CisgICAgQUxXQVlT
X0lOTElORSBSZWY8QXRvbVN0cmluZ0ltcGw+IG1ha2VJZGVudGlmaWVyKGNvbnN0IENoYXJhY3Rl
clR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtYWtlKFR5cGU6OklkZW50aWZpZXIsIGNoYXJhY3RlcnMsIGxlbmd0aCk7CisgICAgfQorCisg
ICAgQUxXQVlTX0lOTElORSB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1iZXJPZlR5cGVzOyArK2kpCisgICAgICAgICAgICBjYWNoZShzdGF0
aWNfY2FzdDxUeXBlPihpKSkuZmlsbCh7IH0pOworICAgIH0KKworICAgIFZNJiB2bSgpIGNvbnN0
OworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CisgICAg
UmVmPEF0b21TdHJpbmdJbXBsPiBtYWtlKFR5cGUsIGNvbnN0IENoYXJhY3RlclR5cGUqLCB1bnNp
Z25lZCBsZW5ndGgpOworCisgICAgQUxXQVlTX0lOTElORSBSZWZQdHI8QXRvbVN0cmluZ0ltcGw+
JiBjYWNoZVNsb3QoVHlwZSB0eXBlLCBVQ2hhciBmaXJzdENoYXJhY3RlciwgVUNoYXIgbGFzdENo
YXJhY3RlciwgVUNoYXIgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgaGFzaCA9IChm
aXJzdENoYXJhY3RlciA8PCA2KSBeICgobGFzdENoYXJhY3RlciA8PCAxNCkgXiBmaXJzdENoYXJh
Y3Rlcik7CisgICAgICAgIGhhc2ggKz0gKGhhc2ggPj4gMTQpICsgKGxlbmd0aCA8PCAxNCk7Cisg
ICAgICAgIGhhc2ggXj0gaGFzaCA8PCAxNDsKKyAgICAgICAgcmV0dXJuIGNhY2hlKHR5cGUpWyho
YXNoICsgKGhhc2ggPj4gNikpICUgY2FwYWNpdHldOworICAgIH0KKworICAgIEFMV0FZU19JTkxJ
TkUgQ2FjaGUmIGNhY2hlKFR5cGUgdHlwZSkgeyByZXR1cm4gbV9jYWNoZXNbc3RhdGljX2Nhc3Q8
c2l6ZV90Pih0eXBlKV07IH0KKworICAgIENhY2hlIG1fY2FjaGVzW251bWJlck9mVHlwZXNdIHsg
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTkF0b21TdHJpbmdDYWNoZUlubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGVJbmxpbmVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDE5MzdmZGZiYWYwZTczNjAzOTg4YWZhNDA3MTU3ZDUxYWRiYzJiZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGVJ
bmxpbmVzLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkpTT05BdG9tU3RyaW5nQ2FjaGUuaCIK
KyNpbmNsdWRlICJTbWFsbFN0cmluZ3MuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK0FMV0FZU19JTkxJTkUg
UmVmPEF0b21TdHJpbmdJbXBsPiBKU09OQXRvbVN0cmluZ0NhY2hlOjptYWtlKFR5cGUgdHlwZSwg
Y29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQoreworICAg
IGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PEF0b21TdHJpbmdJbXBs
Kj4oU3RyaW5nSW1wbDo6ZW1wdHkoKSk7CisKKyAgICBhdXRvIGZpcnN0Q2hhcmFjdGVyID0gY2hh
cmFjdGVyc1swXTsKKyAgICBpZiAobGVuZ3RoID09IDEpIHsKKyAgICAgICAgaWYgKGZpcnN0Q2hh
cmFjdGVyIDw9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykKKyAgICAgICAgICAgIHJldHVybiB2
bSgpLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoZmlyc3RDaGFyYWN0ZXIp
OworICAgIH0gZWxzZSBpZiAobGVuZ3RoID4gbWF4U3RyaW5nTGVuZ3RoRm9yQ2FjaGUpCisgICAg
ICAgIHJldHVybiBBdG9tU3RyaW5nSW1wbDo6YWRkKGNoYXJhY3RlcnMsIGxlbmd0aCkucmVsZWFz
ZU5vbk51bGwoKTsKKworICAgIGF1dG8gbGFzdENoYXJhY3RlciA9IGNoYXJhY3RlcnNbbGVuZ3Ro
IC0gMV07CisgICAgYXV0byYgc2xvdCA9IGNhY2hlU2xvdCh0eXBlLCBmaXJzdENoYXJhY3Rlciwg
bGFzdENoYXJhY3RlciwgbGVuZ3RoKTsKKyAgICBpZiAoIWVxdWFsKHNsb3QuZ2V0KCksIGNoYXJh
Y3RlcnMsIGxlbmd0aCkpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBBdG9tU3RyaW5nSW1wbDo6
YWRkKGNoYXJhY3RlcnMsIGxlbmd0aCk7CisgICAgICAgIHNsb3QgPSByZXN1bHQ7CisgICAgICAg
IHJldHVybiByZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKKyAgICB9CisKKyAgICByZXR1cm4gKnNs
b3Q7Cit9CisKK0FMV0FZU19JTkxJTkUgVk0mIEpTT05BdG9tU3RyaW5nQ2FjaGU6OnZtKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gKmJpdHdpc2VfY2FzdDxWTSo+KGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHRoaXMpIC0gT0JKRUNUX09GRlNFVE9GKFZNLCBqc29uQXRvbVN0cmluZ0NhY2hlKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9MaXRlcmFsUGFyc2VyLmNwcAppbmRleCBlMDIzYmIxMzRiN2U4ZjVhMmY0MjEwZmVmZTY4NDI1
OGNhYzcxZGJlLi43ZDQyMWYyMTA0MzQwN2ZjODExZDMxYTNmNzZkZjNhOGI4ZWY5YzczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNPTkF0b21TdHJpbmdDYWNo
ZUlubGluZXMuaCIKICNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KQEAgLTE0Myw1MSArMTQ0LDExIEBA
IGJvb2wgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnRyeUpTT05QUGFyc2UoVmVjdG9yPEpTT05Q
RGF0YT4mIHJlc3VsdHMsIGJvb2wgbmVlCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLUFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFr
ZUlkZW50aWZpZXIodHlwZW5hbWUgTGV4ZXI6OkxpdGVyYWxQYXJzZXJUb2tlblB0ciB0b2tlbikK
K0FMV0FZU19JTkxJTkUgSWRlbnRpZmllciBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlk
ZW50aWZpZXIoVk0mIHZtLCB0eXBlbmFtZSBMZXhlcjo6TGl0ZXJhbFBhcnNlclRva2VuUHRyIHRv
a2VuKQogewogICAgIGlmICh0b2tlbi0+c3RyaW5nSXM4Qml0KQotICAgICAgICByZXR1cm4gbWFr
ZUlkZW50aWZpZXIodG9rZW4tPnN0cmluZ1Rva2VuOCwgdG9rZW4tPnN0cmluZ0xlbmd0aCk7Ci0g
ICAgcmV0dXJuIG1ha2VJZGVudGlmaWVyKHRva2VuLT5zdHJpbmdUb2tlbjE2LCB0b2tlbi0+c3Ry
aW5nTGVuZ3RoKTsKLX0KLQotICAgIAotdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotdGVt
cGxhdGUgPHR5cGVuYW1lIExpdGVyYWxDaGFyVHlwZT4KLUFMV0FZU19JTkxJTkUgSWRlbnRpZmll
ciBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlkZW50aWZpZXIoY29uc3QgTGl0ZXJhbENo
YXJUeXBlKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoKQotewotICAgIFZNJiB2bSA9IG1fZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gdm0ucHJv
cGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyOwotCi0gICAgYXV0byBmaXJzdENoYXJhY3RlciA9
IGNoYXJhY3RlcnNbMF07Ci0gICAgaWYgKGxlbmd0aCA9PSAxKSB7Ci0gICAgICAgIGlmIGNvbnN0
ZXhwciAoc2l6ZW9mKExpdGVyYWxDaGFyVHlwZSkgPT0gMSkKLSAgICAgICAgICAgIHJldHVybiBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCB2bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nUmVwKGZpcnN0Q2hhcmFjdGVyKSk7Ci0gICAgICAgIGlmIChmaXJzdENoYXJhY3RlciA8
PSBtYXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcpCi0gICAgICAgICAgICByZXR1cm4gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgdm0uc21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ1Jl
cChmaXJzdENoYXJhY3RlcikpOwotICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICB9Ci0KLSAgICBpZiAoZmlyc3RDaGFyYWN0
ZXIgPj0gbWF4aW11bUNhY2hhYmxlQ2hhcmFjdGVyKQotICAgICAgICByZXR1cm4gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLQotICAgIC8vIDAgbWVhbnMg
bm8gZW50cnkgc2luY2UgbV9yZWNlbnRJZGVudGlmaWVyc0luZGV4IGlzIHplcm8tZmlsbGVkIGlu
aXRpYWxseS4KLSAgICB1aW50OF90IGluZGV4UGx1c09uZSA9IG1fcmVjZW50SWRlbnRpZmllcnNJ
bmRleFtmaXJzdENoYXJhY3Rlcl07Ci0gICAgaWYgKGluZGV4UGx1c09uZSkgewotICAgICAgICB1
aW50OF90IGluZGV4ID0gaW5kZXhQbHVzT25lIC0gMTsKLSAgICAgICAgYXV0byYgaWRlbnQgPSBt
X3JlY2VudElkZW50aWZpZXJzW2luZGV4XTsKLSAgICAgICAgaWYgKElkZW50aWZpZXI6OmVxdWFs
KGlkZW50LmltcGwoKSwgY2hhcmFjdGVycywgbGVuZ3RoKSkKLSAgICAgICAgICAgIHJldHVybiBp
ZGVudDsKLSAgICAgICAgYXV0byByZXN1bHQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBj
aGFyYWN0ZXJzLCBsZW5ndGgpOwotICAgICAgICBtX3JlY2VudElkZW50aWZpZXJzW2luZGV4XSA9
IHJlc3VsdDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBhdXRvIHJlc3Vs
dCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIGNoYXJhY3RlcnMsIGxlbmd0aCk7Ci0gICAg
bV9yZWNlbnRJZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQocmVzdWx0KTsKLSAgICBpbmRleFBs
dXNPbmUgPSBtX3JlY2VudElkZW50aWZpZXJzLnNpemUoKTsKLSAgICBtX3JlY2VudElkZW50aWZp
ZXJzSW5kZXhbZmlyc3RDaGFyYWN0ZXJdID0gaW5kZXhQbHVzT25lOwotICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCB2bS5qc29uQXRv
bVN0cmluZ0NhY2hlLm1ha2VJZGVudGlmaWVyKHRva2VuLT5zdHJpbmdUb2tlbjgsIHRva2VuLT5z
dHJpbmdMZW5ndGgpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgdm0u
anNvbkF0b21TdHJpbmdDYWNoZS5tYWtlSWRlbnRpZmllcih0b2tlbi0+c3RyaW5nVG9rZW4xNiwg
dG9rZW4tPnN0cmluZ0xlbmd0aCkpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNh
bm5vdEJlSWRlbnRQYXJ0T3JFc2NhcGVTdGFydChMQ2hhcikKQEAgLTExNDQsNyArMTEwNSwxMiBA
QCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlUHJp
bWl0aXZlVmFsdWUoVk0mIHZtKQogewogICAgIHN3aXRjaCAobV9sZXhlci5jdXJyZW50VG9rZW4o
KS0+dHlwZSkgewogICAgIGNhc2UgVG9rU3RyaW5nOiB7Ci0gICAgICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNTdHJpbmcodm0sIG1ha2VJZGVudGlmaWVyKG1fbGV4ZXIuY3VycmVudFRva2VuKCkpLnN0
cmluZygpKTsKKyAgICAgICAgYXV0byB0b2tlbiA9IG1fbGV4ZXIuY3VycmVudFRva2VuKCk7Cisg
ICAgICAgIEpTVmFsdWUgcmVzdWx0OworICAgICAgICBpZiAodG9rZW4tPnN0cmluZ0lzOEJpdCkK
KyAgICAgICAgICAgIHJlc3VsdCA9IGpzU3RyaW5nKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCB0b2tlbi0+c3RyaW5nVG9rZW44LCB0b2tlbi0+c3RyaW5nTGVuZ3RoKS5zdHJpbmcoKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IGpzU3RyaW5nKHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCB0b2tlbi0+c3RyaW5nVG9rZW4xNiwgdG9rZW4tPnN0cmluZ0xl
bmd0aCkuc3RyaW5nKCkpOwogICAgICAgICBtX2xleGVyLm5leHQoKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CkBAIC0xMjg0LDcgKzEyNTAsNyBAQCBKU1ZhbHVlIExpdGVyYWxQYXJz
ZXI8Q2hhclR5cGU+OjpwYXJzZShQYXJzZXJTdGF0ZSBpbml0aWFsU3RhdGUpCiAgICAgICAgICAg
ICBUb2tlblR5cGUgdHlwZSA9IG1fbGV4ZXIubmV4dCgpOwogICAgICAgICAgICAgaWYgKHR5cGUg
PT0gVG9rU3RyaW5nIHx8IChtX21vZGUgIT0gU3RyaWN0SlNPTiAmJiB0eXBlID09IFRva0lkZW50
aWZpZXIpKSB7CiAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgSWRlbnRpZmllciBpZGVudCA9IG1ha2VJZGVudGlmaWVyKG1fbGV4ZXIuY3VycmVudFRv
a2VuKCkpOworICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIGlkZW50ID0gbWFrZUlkZW50
aWZpZXIodm0sIG1fbGV4ZXIuY3VycmVudFRva2VuKCkpOwogCiAgICAgICAgICAgICAgICAgICAg
IGlmIChVTkxJS0VMWShtX2xleGVyLm5leHQoKSAhPSBUb2tDb2xvbikpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVycm9yTWVzc2FnZUZvclRva2VuKFRva0NvbG9uKTsKQEAgLTEzNTgs
NyArMTMyNCw3IEBAIEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlKFBhcnNl
clN0YXRlIGluaXRpYWxTdGF0ZSkKICAgICAgICAgICAgICAgICBtX3BhcnNlRXJyb3JNZXNzYWdl
ID0gIlByb3BlcnR5IG5hbWUgbXVzdCBiZSBhIHN0cmluZyBsaXRlcmFsIl9zOwogICAgICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZGVudGlmaWVy
U3RhY2suYXBwZW5kKG1ha2VJZGVudGlmaWVyKG1fbGV4ZXIuY3VycmVudFRva2VuKCkpKTsKKyAg
ICAgICAgICAgIGlkZW50aWZpZXJTdGFjay5hcHBlbmQobWFrZUlkZW50aWZpZXIodm0sIG1fbGV4
ZXIuY3VycmVudFRva2VuKCkpKTsKIAogICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGNvbG9uCiAg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkobV9sZXhlci5uZXh0KCkgIT0gVG9rQ29sb24pKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmgKaW5kZXggNzQ4
YWU3MjQxMGU1NGM0ZWNhZWE5ZDBmMTI4YWU5Nzc0YjFlMDhhYS4uZjQ3ZDFiODc1YjYwNDFiNWFi
NWRhMTRiYzZiMDQyZjU1ZDNiZjg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0xpdGVyYWxQYXJzZXIuaApAQCAtMTk3LDkgKzE5Nyw3IEBAIGNsYXNzIExpdGVyYWxQYXJz
ZXIgewogCiAgICAgSlNWYWx1ZSBwYXJzZVByaW1pdGl2ZVZhbHVlKFZNJik7CiAKLSAgICBBTFdB
WVNfSU5MSU5FIElkZW50aWZpZXIgbWFrZUlkZW50aWZpZXIodHlwZW5hbWUgTGV4ZXI6OkxpdGVy
YWxQYXJzZXJUb2tlblB0cik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTGl0ZXJhbENoYXJUeXBl
PgotICAgIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihjb25zdCBMaXRl
cmFsQ2hhclR5cGUqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgpOworICAgIEFMV0FZU19JTkxJ
TkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihWTSYsIHR5cGVuYW1lIExleGVyOjpMaXRlcmFs
UGFyc2VyVG9rZW5QdHIpOwogCiAgICAgdm9pZCBzZXRFcnJvck1lc3NhZ2VGb3JUb2tlbihUb2tl
blR5cGUpOwogCkBAIC0yMDgsOSArMjA2LDYgQEAgY2xhc3MgTGl0ZXJhbFBhcnNlciB7CiAgICAg
dHlwZW5hbWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OkxleGVyIG1fbGV4ZXI7CiAgICAgUGFy
c2VyTW9kZSBtX21vZGU7CiAgICAgU3RyaW5nIG1fcGFyc2VFcnJvck1lc3NhZ2U7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtQ2FjaGFibGVDaGFyYWN0ZXIgPSAxMjg7Ci0g
ICAgc3RkOjphcnJheTx1aW50OF90LCBtYXhpbXVtQ2FjaGFibGVDaGFyYWN0ZXI+IG1fcmVjZW50
SWRlbnRpZmllcnNJbmRleCB7IH07Ci0gICAgVmVjdG9yPElkZW50aWZpZXIsIG1heGltdW1DYWNo
YWJsZUNoYXJhY3Rlcj4gbV9yZWNlbnRJZGVudGlmaWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggM2FiZjcxMWE2NTUyYmU0YjMx
YWZlNDdlMDU5ZjMzMWUwODk5MTkxZi4uNmRiZTE1NTVmZWRlZTQ0ZWJjZTM5NWY5ZDZiYmIxYmU3
Mzc5OWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC00Nyw2ICs0Nyw3IEBA
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRGF0ZU1hdGguaCIKICNpbmNs
dWRlICJKU0xvY2suaCIKKyNpbmNsdWRlICJKU09OQXRvbVN0cmluZ0NhY2hlLmgiCiAjaW5jbHVk
ZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjaW5jbHVkZSAiTWljcm90YXNrLmgiCiAjaW5j
bHVkZSAiTnVtZXJpY1N0cmluZ3MuaCIKQEAgLTgwNSw2ICs4MDYsNyBAQCBjbGFzcyBWTSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9k
ZTxWTT4gewogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaW1wbGVTdGF0cz4gbWFjaGluZUNvZGVCeXRl
c1BlckJ5dGVjb2RlV29yZEZvckJhc2VsaW5lSklUOwogICAgIFdlYWtHQ01hcDxTdHJpbmdJbXBs
KiwgSlNTdHJpbmcsIFB0ckhhc2g8U3RyaW5nSW1wbCo+PiBzdHJpbmdDYWNoZTsKICAgICBTdHJv
bmc8SlNTdHJpbmc+IGxhc3RDYWNoZWRTdHJpbmc7CisgICAgSlNPTkF0b21TdHJpbmdDYWNoZSBq
c29uQXRvbVN0cmluZ0NhY2hlOwogCiAgICAgQXRvbVN0cmluZ1RhYmxlKiBhdG9tU3RyaW5nVGFi
bGUoKSBjb25zdCB7IHJldHVybiBtX2F0b21TdHJpbmdUYWJsZTsgfQogICAgIFdURjo6U3ltYm9s
UmVnaXN0cnkmIHN5bWJvbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9zeW1ib2xSZWdpc3RyeTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444539</attachid>
            <date>2021-11-17 11:17:48 -0800</date>
            <delta_ts>2021-11-17 14:51:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233231-20211117111747.patch</filename>
            <type>text/plain</type>
            <size>25972</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWU4ZjJhMTY2MGE0NDU5M2E2Njk0Y2JkNjk0MjU5YjY2MDk0ZjUzLi42ZDZlMTczYWEzN2U0MDUx
NjA2YmY4MGEwOTZmNDU0YTUyNzRiNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NiBAQAorMjAyMS0xMS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJldmlzZSBKU09OLnBhcnNlIGF0b21pemUgcG9saWN5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cHJvdmVzIEpTT04ucGFyc2UgcGVyZm9ybWFuY2UgYnkgdGhlIGZvbGxvd2luZyB0d28gY2hhbmdl
cy4KKworICAgICAgICAxLiBJbnRyb2R1Y2UgSlNPTkF0b21TdHJpbmdDYWNoZS4gSXQgaXMgaW5z
cGlyZWQgZnJvbSBIVE1MQXRvbVN0cmluZ0NhY2hlLiBJdCBvZmZlcnMgY2hlYXAKKyAgICAgICAg
ICAgZml4ZWQtc2l6ZWQgY2FjaGUgc3RvcmVkIGluIFZNLiBTaW5jZSBpdCBpcyBpbiBWTSwgd2Ug
ZG8gbm90IG5lZWQgdG8gY2xlYXIgaXQgZXZlcnkgdGltZQorICAgICAgICAgICB3ZSBjYWxsIEpT
T04ucGFyc2UuIFdlIGNsZWFyIHRoaXMgY2FjaGUgd2hlbiBmdWxsIEdDIGhhcHBlbnMuIEl0IGNv
bnRyaWJ1dGVzIHRvCisgICAgICAgICAgIGZsaWdodC10b2RvbXZjLWpzb24tcGFyc2UgYnkgNSUu
CisgICAgICAgIDIuIERvIG5vdCBhdG9taXplIGxvbmcgc3RyaW5nLiBQcm9maWxpbmcgb2YgSlNP
Ti5wYXJzZSBzYWlkIHRoYXQgbW9zdCBvZiB0aW1lIGlzIHVzZWQgZm9yCisgICAgICAgICAgIGF0
b21pemluZyBvZiBTdHJpbmdzLiBUaGVyZSBpcyBhIHRyYWRlb2ZmIHRoYXQsIGF0b21pemluZyBz
dHJpbmdzIGNhbiByZWR1Y2UgZHVwbGljYXRlIHN0cmluZworICAgICAgICAgICBhbGxvY2F0aW9u
cywgYnV0IGl0IGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuIFY4IGxpbWl0cyBhdG9taXppbmcg
Zm9yIDw9IDEwIGxlbmd0aCBzdHJpbmdzLAorICAgICAgICAgICBhbmQgU3BpZGVyTW9ua2V5IGRv
ZXMgbm90IGF0b21pemUgc3RyaW5ncy4gSW4gdGhpcyBwYXRjaCwgd2UgYWxpZ25lZCBvdXIgYXRv
bWl6aW5nIHBvbGljeSB0bworICAgICAgICAgICBWOCwgc28gd2UgZG8gbm90IGF0b21pemUgc3Ry
aW5ncyBpZiB0aGUgbGVuZ3RoIGlzIGxvbmdlciB0aGFuIDEwLiBJdCBjb250cmlidXRlcyB0bwor
ICAgICAgICAgICBmbGlnaHQtdG9kb212Yy1qc29uLXBhcnNlIGJ5IDUwJS4KKworICAgICAgICBN
YW55IG1pY3JvYmVuY2htYXJrcyBzaG93IHRoZSBpbXByb3ZlbWVudC4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAg
ICAgICAgICAgICAgICAgICAgUGF0Y2hlZAorCisgICAgICAgICAgICBqc29uLXBhcnNlLW9iamVj
dC1yZXZpdmVyLXNhbWUtdmFsdWUgICAgICAgICAgIDc4LjI2ODMrLTAuOTU5OCAgICAgICAgICAg
NzcuNzc4NCstMC45NDg4CisgICAgICAgICAgICB2YW5pbGxhLWVzMjAxNS1iYWJlbC13ZWJwYWNr
LXRvZG9tdmMtanNvbi1wYXJzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA5OS45MTI5Ky0wLjU1MDggICAgIF4gICAgIDg1LjgxNjAr
LTAuODcyMSAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTY0M3ggZmFzdGVyCisgICAgICAgICAgICBq
c29uLXBhcnNlLWFycmF5LXJldml2ZXItc2FtZS12YWx1ZSAgICAgICAgICAgIDYzLjU4OTErLTAu
ODA2NiAgICAgICAgICAgNjMuMjg5NSstMC43MzM2CisgICAgICAgICAgICBmbGlnaHQtdG9kb212
Yy1qc29uLXBhcnNlICAgICAgICAgICAgICAgICAgICAgIDUyLjQyMzArLTAuNDQ3NCAgICAgXiAg
ICAgMzQuMTE1OSstMC4yMzc4ICAgICAgICBeIGRlZmluaXRlbHkgMS41MzY2eCBmYXN0ZXIKKyAg
ICAgICAgICAgIGpzb24tcGFyc2Utb2JqZWN0LXJldml2ZXIgICAgICAgICAgICAgICAgICAgICAg
ODAuODQxNystMC41MDQyICAgICAgICAgICA4MC42MzkzKy0wLjgwODcKKyAgICAgICAgICAgIGpz
b24tcGFyc2UtbGVhZi1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgNTEuNjgzNistMC42
NzU0ICAgICBeICAgICA0Ni44OTgzKy0wLjE1NzggICAgICAgIF4gZGVmaW5pdGVseSAxLjEwMjB4
IGZhc3RlcgorICAgICAgICAgICAgdmFuaWxsYS1lczIwMTUtdG9kb212Yy1qc29uLXBhcnNlICAg
ICAgICAgICAgIDEwMC41OTE2Ky0wLjkzOTkgICAgIF4gICAgIDg1Ljk1MjIrLTAuODQ3MCAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMTcwM3ggZmFzdGVyCisgICAgICAgICAgICB2YW5pbGxhLXRvZG9t
dmMtanNvbi1wYXJzZSAgICAgICAgICAgICAgICAgICAgIDc2LjQ1MTgrLTAuNDM0MSAgICAgXiAg
ICAgNjQuMjMxOCstMC43NjIxICAgICAgICBeIGRlZmluaXRlbHkgMS4xOTAyeCBmYXN0ZXIKKyAg
ICAgICAgICAgIGpzb24tcGFyc2UtYXJyYXktcmV2aXZlciAgICAgICAgICAgICAgICAgICAgICAg
NzYuMTI3NistMC44NTI5ICAgICAgICAgICA3NS45NzQ3Ky0wLjkwMDIKKworICAgICAgICBBbmQg
U3BlZWRvbWV0ZXIyIHNob3dzIDAuOCUgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICBzdWJ0ZXN0ICAgICAgICAg
ICAgICAgIHwgICAgIG1zICAgICAgfCAgICAgbXMgICAgICB8ICBiIC8gYSAgIHwgcFZhbHVlIChz
aWduaWZpY2FuY2UgdXNpbmcgRmFsc2UgRGlzY292ZXJ5IFJhdGUpIHwKKyAgICAgICAgICAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHwgRWxtLVRvZG9NVkMgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwxMDkuMDQ2NjY3ICAgfDEwOC41NDY2NjcgICB8MC45OTU0MTUgIHwgMC4xOTcx
ODYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAg
IHwgVnVlSlMtVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICAgIHwyMS44MTMzMzMgICAgfDIx
LjU2NjY2NyAgICB8MC45ODg2OTIgIHwgMC4zMTMxNDEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgRW1iZXJKUy1Ub2RvTVZDICAgICAgICAg
ICAgICAgICAgICAgIHwxMTcuNzk2NjY3ICAgfDExOC4wODY2NjcgICB8MS4wMDI0NjIgIHwgMC41
NTgyNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAg
ICAgIHwgRmxpZ2h0LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHw2NC4yNzMzMzMgICAg
fDYyLjI2MDAwMCAgICB8MC45Njg2NzUgIHwgMC4wMDAwMDAgKHNpZ25pZmljYW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgQmFja2JvbmVKUy1Ub2RvTVZDICAg
ICAgICAgICAgICAgICAgIHw0Mi44NTY2NjcgICAgfDQyLjg2MzMzMyAgICB8MS4wMDAxNTYgIHwg
MC45NzUwMjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAg
ICAgICAgIHwgUHJlYWN0LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHwxNi4zMjY2Njcg
ICAgfDE2LjY3MzMzMyAgICB8MS4wMjEyMzMgIHwgMC4yOTg2NzQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgQW5ndWxhckpTLVRvZG9NVkMg
ICAgICAgICAgICAgICAgICAgIHwxMjMuMTQ2NjY3ICAgfDEyMi40MTMzMzMgICB8MC45OTQwNDUg
IHwgMC4xNjAyODIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAgICAgICAgIHwgSW5mZXJuby1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgIHw1Ny41MTAw
MDAgICAgfDU3LjUzMzMzMyAgICB8MS4wMDA0MDYgIHwgMC45NDc3NjcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgVmFuaWxsYS1FUzIwMTUt
VG9kb01WQyAgICAgICAgICAgICAgIHw2MS4xMzMzMzMgICAgfDU5LjIwMDAwMCAgICB8MC45Njgz
NzUgIHwgMC4wMDAwMDAgKHNpZ25pZmljYW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK
KyAgICAgICAgICAgIHwgQW5ndWxhcjItVHlwZVNjcmlwdC1Ub2RvTVZDICAgICAgICAgIHwzOC44
NjMzMzMgICAgfDM4Ljk2MzMzMyAgICB8MS4wMDI1NzMgIHwgMC44NjAzNTkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgVmFuaWxsYUpTLVRv
ZG9NVkMgICAgICAgICAgICAgICAgICAgIHw1MS4yOTY2NjcgICAgfDQ5LjQyMzMzMyAgICB8MC45
NjM0ODAgIHwgMC4wMDAwMDAgKHNpZ25pZmljYW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwKKyAgICAgICAgICAgIHwgalF1ZXJ5LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHwy
MTAuOTMzMzMzICAgfDIxMC41OTY2NjcgICB8MC45OTg0MDQgIHwgMC41OTAxMzIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgRW1iZXJKUy1E
ZWJ1Zy1Ub2RvTVZDICAgICAgICAgICAgICAgIHwzMjYuMDkzMzMzICAgfDMyNC44OTAwMDAgICB8
MC45OTYzMTAgIHwgMC4xNTY5NTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwKKyAgICAgICAgICAgIHwgUmVhY3QtVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICAg
IHw4MS4xMTMzMzMgICAgfDgxLjM2MDAwMCAgICB8MS4wMDMwNDEgIHwgMC4zMzU2MTUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgUmVhY3Qt
UmVkdXgtVG9kb01WQyAgICAgICAgICAgICAgICAgIHwxMzIuNTYwMDAwICAgfDEzMi4yNTY2Njcg
ICB8MC45OTc3MTIgIHwgMC4zMDYwNzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAgICAgICAgIHwgVmFuaWxsYS1FUzIwMTUtQmFiZWwtV2VicGFjay1Ub2Rv
TVZDIHw2MC4wNzMzMzMgICAgfDU5LjAyNjY2NyAgICB8MC45ODI1NzcgIHwgMC4wMDA4ODMgKHNp
Z25pZmljYW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgICAgIGEgbWVhbiA9IDI4MC4yOTM5MAorICAgICAgICAgICAg
YiBtZWFuID0gMjgyLjUxNDEzCisgICAgICAgICAgICBwVmFsdWUgPSAwLjAwMDAwODMzMjUKKyAg
ICAgICAgICAgIChCaWdnZXIgbWVhbnMgYXJlIGJldHRlci4pCisgICAgICAgICAgICAxLjAwOCB0
aW1lcyBiZXR0ZXIKKyAgICAgICAgICAgIFJlc3VsdHMgQVJFIHNpZ25pZmljYW50CisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6
OkhlYXA6OmZpbmFsaXplKToKKyAgICAgICAgKiBydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGUu
aDogQWRkZWQuCisgICAgICAgIChKU0M6OkpTT05BdG9tU3RyaW5nQ2FjaGU6Om1ha2VJZGVudGlm
aWVyKToKKyAgICAgICAgKEpTQzo6SlNPTkF0b21TdHJpbmdDYWNoZTo6Y2xlYXIpOgorICAgICAg
ICAoSlNDOjpKU09OQXRvbVN0cmluZ0NhY2hlOjpjYWNoZVNsb3QpOgorICAgICAgICAoSlNDOjpK
U09OQXRvbVN0cmluZ0NhY2hlOjpjYWNoZSk6CisgICAgICAgICogcnVudGltZS9KU09OQXRvbVN0
cmluZ0NhY2hlSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SlNPTkF0b21TdHJpbmdD
YWNoZTo6bWFrZSk6CisgICAgICAgIChKU0M6OkpTT05BdG9tU3RyaW5nQ2FjaGU6OnZtIGNvbnN0
KToKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpM
aXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpM
aXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUpTU3RyaW5nKToKKyAgICAgICAgKEpTQzo6TGl0
ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoSlND
OjpMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6cGFyc2UpOgorICAgICAgICAqIHJ1bnRpbWUvTGl0
ZXJhbFBhcnNlci5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMS0xMS0xNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBvcGVy
YXRpb24gcGF0aCB3aGVuIFB1dEJ5VmFsIGNoaWxkMSBpcyBub3Qgc3BlY3VsYXRlZCBhcyBhIENl
bGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjYzQxZmMwM2QwYTA4NmNj
NzdjZTRlN2QwMDJkZTE3Yzg2NDMyMDE2Li5mMWEzMGUyZjk1NTJmMWNhMjgyZjYyNmE4MmMwYTZm
YmU4Yjk3OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDg1LDYg
KzEwODUsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAogICAgIHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQu
aAogICAgIHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oCisgICAgcnVudGltZS9KU09OQXRv
bVN0cmluZ0NhY2hlLmgKICAgICBydW50aW1lL0pTT05PYmplY3QuaAogICAgIHJ1bnRpbWUvSlNP
YmplY3QuaAogICAgIHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMmYxZDI5NWUyZjQxYWQxNWEyMTRlZGZjNzI5YjFkZTAzNGVkOTY2NC4u
NGUzYWRiNGI4NTgzY2NkZDJhNTE5NDAyNWJhMWE3NmZjMDM2OTkxOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4NzUsNiArMTg3NSw4IEBACiAJCUUzMkQ0REU3MjZEQUZENDMw
MEQ0NTMzQSAvKiBUZW1wb3JhbENhbGVuZGFyUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJENERFMTI2REFGRDQyMDBENDUzM0EgLyog
VGVtcG9yYWxDYWxlbmRhclByb3RvdHlwZS5oICovOyB9OwogCQlFMzJENERFOTI2REFGRDQzMDBE
NDUzM0EgLyogVGVtcG9yYWxDYWxlbmRhci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTMyRDRERTMyNkRBRkQ0MzAwRDQ1MzNBIC8qIFRlbXBvcmFsQ2Fs
ZW5kYXIuaCAqLzsgfTsKIAkJRTMyRDRERUEyNkRBRkQ0MzAwRDQ1MzNBIC8qIFRlbXBvcmFsQ2Fs
ZW5kYXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMyRDRERTQyNkRBRkQ0MzAwRDQ1MzNBIC8qIFRlbXBvcmFsQ2FsZW5kYXJDb25z
dHJ1Y3Rvci5oICovOyB9OworCQlFMzJGRUEyQzI3NDQ4RjM3MDBGRjQxQzEgLyogSlNPTkF0b21T
dHJpbmdDYWNoZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzMkZFQTJBMjc0NDhGMzYwMEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hl
SW5saW5lcy5oICovOyB9OworCQlFMzJGRUEyRDI3NDQ4RjM3MDBGRjQxQzEgLyogSlNPTkF0b21T
dHJpbmdDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTMyRkVBMkIyNzQ0OEYzNjAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2FjaGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzMwOTVERDIz
MjEwQTFCMDBFQjc4NTYgLyogSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzMDk1REMyMzIxMEExNDAwRUI3
ODU2IC8qIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzM0Q0JCNTIxRkQ5NkE5MDAwRUIxNzggLyog
UmVnRXhwR2xvYmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMzNENCQjMyMUZEOTZBOTAwMEVCMTc4IC8qIFJlZ0V4cEdsb2JhbERhdGEuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzM2MzdB
NjFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJl
ZmxlY3RPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNTE3Niw2ICs1MTc4LDggQEAKIAkJRTMyRDRERTMyNkRBRkQ0MzAwRDQ1MzNBIC8q
IFRlbXBvcmFsQ2FsZW5kYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVt
cG9yYWxDYWxlbmRhci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzJENERFNDI2
REFGRDQzMDBENDUzM0EgLyogVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBvcmFsQ2FsZW5kYXJDb25zdHJ1Y3Rvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzJENERFNTI2REFGRDQzMDBENDUzM0EgLyog
VGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRlbXBvcmFsQ2FsZW5kYXJDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzMkZFQTJBMjc0NDhGMzYwMEZGNDFDMSAvKiBKU09OQXRvbVN0
cmluZ0NhY2hlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09O
QXRvbVN0cmluZ0NhY2hlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzJGRUEyQjI3NDQ4RjM2MDBGRjQxQzEgLyogSlNPTkF0b21TdHJpbmdDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09OQXRvbVN0cmluZ0NhY2hlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzA1RkIwMjBCMEY3ODcwMENFQjgyQiAvKiBJbkJ5VmFy
aWFudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbkJ5VmFyaWFu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzA1RkIxMjBCMEY3ODgwMENF
QjgyQiAvKiBJbkJ5VmFyaWFudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bkJ5VmFyaWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzMwOTVEQzIzMjEw
QTE0MDBFQjc4NTYgLyogSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03ODA5LDYgKzc4MTMsOCBAQAogCQkJCUJDMjJBMzk4MEUxNkUxNDgwMEFGMjFDOCAvKiBK
U09iamVjdC5jcHAgKi8sCiAJCQkJQkMyMkEzOTkwRTE2RTE0ODAwQUYyMUM4IC8qIEpTT2JqZWN0
LmggKi8sCiAJCQkJMEY5MzI3NUUxQzIxRUY3RjAwQ0Y2NTY0IC8qIEpTT2JqZWN0SW5saW5lcy5o
ICovLAorCQkJCUUzMkZFQTJCMjc0NDhGMzYwMEZGNDFDMSAvKiBKU09OQXRvbVN0cmluZ0NhY2hl
LmggKi8sCisJCQkJRTMyRkVBMkEyNzQ0OEYzNjAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2Fj
aGVJbmxpbmVzLmggKi8sCiAJCQkJQTdGOTkzNUUwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmpl
Y3QuY3BwICovLAogCQkJCUE3Rjk5MzVEMEZENzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0Lmgg
Ki8sCiAJCQkJN0MxODRFMTgxN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5jcHAgKi8sCkBA
IC0xMDQzMCw2ICsxMDQzNiw4IEBACiAJCQkJMEY5MzI3NUYxQzIxRUY3RjAwQ0Y2NTY0IC8qIEpT
T2JqZWN0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjUwRTE2RjVDRDAwQjM0
NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzI4MEEyODExNTU3RTMw
MDBENTY5NTcgLyogSlNPYmplY3RSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzJG
RUEyRDI3NDQ4RjM3MDBGRjQxQzEgLyogSlNPTkF0b21TdHJpbmdDYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTMyRkVBMkMyNzQ0OEYzNzAwRkY0MUMxIC8qIEpTT05BdG9tU3RyaW5nQ2FjaGVJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIyRDAgLyog
SlNPTk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4N0NEQjkxMDcxMkFENDAwMDYxNENG
IC8qIEpTT05PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxQjE3QkVEQkQz
MDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAKaW5kZXggOGUxMThhZmNlNDI2M2U1NWMwOGExY2E4NTNlYmY2NDE4N2ZjYTU5
MS4uMGI0ODM4YzkwYjhjN2ZiMzVmY2NjZTkyNjExZjNmYzJkYzBjOWE1OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIwNDgsNiArMjA0OCw5IEBAIHZvaWQgSGVhcDo6Zmlu
YWxpemUoKQogICAgIGlmIChIYXNPd25Qcm9wZXJ0eUNhY2hlKiBjYWNoZSA9IHZtKCkuaGFzT3du
UHJvcGVydHlDYWNoZSgpKQogICAgICAgICBjYWNoZS0+Y2xlYXIoKTsKIAorICAgIGlmIChtX2xh
c3RDb2xsZWN0aW9uU2NvcGUgJiYgbV9sYXN0Q29sbGVjdGlvblNjb3BlLnZhbHVlKCkgPT0gQ29s
bGVjdGlvblNjb3BlOjpGdWxsKQorICAgICAgICB2bSgpLmpzb25BdG9tU3RyaW5nQ2FjaGUuY2xl
YXIoKTsKKwogICAgIGltbXV0YWJsZUJ1dHRlcmZseVRvU3RyaW5nQ2FjaGUuY2xlYXIoKTsKICAg
ICAKICAgICBmb3IgKGNvbnN0IEhlYXBGaW5hbGl6ZXJDYWxsYmFjayYgY2FsbGJhY2sgOiBtX2hl
YXBGaW5hbGl6ZXJDYWxsYmFja3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OQXRvbVN0cmluZ0NhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OQXRvbVN0cmluZ0NhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FjNWMxN2NhYzIxYjVjZjIw
ZTBhZTZhYjJjZThkN2MwY2M5MDk5ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05BdG9tU3RyaW5nQ2FjaGUuaApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
SW1wbC5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVk07CisKK2NsYXNzIEpTT05BdG9t
U3RyaW5nQ2FjaGUgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBtYXhTdHJp
bmdMZW5ndGhGb3JDYWNoZSA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYXBhY2l0
eSA9IDUxMjsKKyAgICB1c2luZyBDYWNoZSA9IHN0ZDo6YXJyYXk8UmVmUHRyPEF0b21TdHJpbmdJ
bXBsPiwgY2FwYWNpdHk+OworCisgICAgZW51bSBjbGFzcyBUeXBlIDogYm9vbCB7IElkZW50aWZp
ZXIgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mVHlwZXMgPSAxOwor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KKyAgICBBTFdBWVNfSU5MSU5F
IFJlZjxBdG9tU3RyaW5nSW1wbD4gbWFrZUlkZW50aWZpZXIoY29uc3QgQ2hhcmFjdGVyVHlwZSog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2Uo
VHlwZTo6SWRlbnRpZmllciwgY2hhcmFjdGVycywgbGVuZ3RoKTsKKyAgICB9CisKKyAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG51bWJlck9mVHlwZXM7ICsraSkKKyAgICAgICAgICAgIGNhY2hlKHN0YXRpY19jYXN0
PFR5cGU+KGkpKS5maWxsKHsgfSk7CisgICAgfQorCisgICAgVk0mIHZtKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KKyAgICBSZWY8QXRv
bVN0cmluZ0ltcGw+IG1ha2UoVHlwZSwgY29uc3QgQ2hhcmFjdGVyVHlwZSosIHVuc2lnbmVkIGxl
bmd0aCk7CisKKyAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cjxBdG9tU3RyaW5nSW1wbD4mIGNhY2hl
U2xvdChUeXBlIHR5cGUsIFVDaGFyIGZpcnN0Q2hhcmFjdGVyLCBVQ2hhciBsYXN0Q2hhcmFjdGVy
LCBVQ2hhciBsZW5ndGgpCisgICAgeworICAgICAgICB1bnNpZ25lZCBoYXNoID0gKGZpcnN0Q2hh
cmFjdGVyIDw8IDYpIF4gKChsYXN0Q2hhcmFjdGVyIDw8IDE0KSBeIGZpcnN0Q2hhcmFjdGVyKTsK
KyAgICAgICAgaGFzaCArPSAoaGFzaCA+PiAxNCkgKyAobGVuZ3RoIDw8IDE0KTsKKyAgICAgICAg
aGFzaCBePSBoYXNoIDw8IDE0OworICAgICAgICByZXR1cm4gY2FjaGUodHlwZSlbKGhhc2ggKyAo
aGFzaCA+PiA2KSkgJSBjYXBhY2l0eV07CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSBDYWNo
ZSYgY2FjaGUoVHlwZSB0eXBlKSB7IHJldHVybiBtX2NhY2hlc1tzdGF0aWNfY2FzdDxzaXplX3Q+
KHR5cGUpXTsgfQorCisgICAgQ2FjaGUgbV9jYWNoZXNbbnVtYmVyT2ZUeXBlc10geyB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OQXRvbVN0cmluZ0NhY2hlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTkF0b21TdHJpbmdDYWNoZUlubGluZXMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTkz
N2ZkZmJhZjBlNzM2MDM5ODhhZmE0MDcxNTdkNTFhZGJjMmJmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTkF0b21TdHJpbmdDYWNoZUlubGluZXMu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSlNPTkF0b21TdHJpbmdDYWNoZS5oIgorI2luY2x1
ZGUgIlNtYWxsU3RyaW5ncy5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0Mgewor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorQUxXQVlTX0lOTElORSBSZWY8QXRv
bVN0cmluZ0ltcGw+IEpTT05BdG9tU3RyaW5nQ2FjaGU6Om1ha2UoVHlwZSB0eXBlLCBjb25zdCBD
aGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKCFs
ZW5ndGgpCisgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8QXRvbVN0cmluZ0ltcGwqPihTdHJp
bmdJbXBsOjplbXB0eSgpKTsKKworICAgIGF1dG8gZmlyc3RDaGFyYWN0ZXIgPSBjaGFyYWN0ZXJz
WzBdOworICAgIGlmIChsZW5ndGggPT0gMSkgeworICAgICAgICBpZiAoZmlyc3RDaGFyYWN0ZXIg
PD0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nKQorICAgICAgICAgICAgcmV0dXJuIHZtKCkuc21h
bGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcChmaXJzdENoYXJhY3Rlcik7CisgICAg
fSBlbHNlIGlmIChsZW5ndGggPiBtYXhTdHJpbmdMZW5ndGhGb3JDYWNoZSkKKyAgICAgICAgcmV0
dXJuIEF0b21TdHJpbmdJbXBsOjphZGQoY2hhcmFjdGVycywgbGVuZ3RoKS5yZWxlYXNlTm9uTnVs
bCgpOworCisgICAgYXV0byBsYXN0Q2hhcmFjdGVyID0gY2hhcmFjdGVyc1tsZW5ndGggLSAxXTsK
KyAgICBhdXRvJiBzbG90ID0gY2FjaGVTbG90KHR5cGUsIGZpcnN0Q2hhcmFjdGVyLCBsYXN0Q2hh
cmFjdGVyLCBsZW5ndGgpOworICAgIGlmICghZXF1YWwoc2xvdC5nZXQoKSwgY2hhcmFjdGVycywg
bGVuZ3RoKSkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IEF0b21TdHJpbmdJbXBsOjphZGQoY2hh
cmFjdGVycywgbGVuZ3RoKTsKKyAgICAgICAgc2xvdCA9IHJlc3VsdDsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOworICAgIH0KKworICAgIHJldHVybiAqc2xvdDsKK30K
KworQUxXQVlTX0lOTElORSBWTSYgSlNPTkF0b21TdHJpbmdDYWNoZTo6dm0oKSBjb25zdAorewor
ICAgIHJldHVybiAqYml0d2lzZV9jYXN0PFZNKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4odGhp
cykgLSBPQkpFQ1RfT0ZGU0VUT0YoVk0sIGpzb25BdG9tU3RyaW5nQ2FjaGUpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVy
YWxQYXJzZXIuY3BwCmluZGV4IGUwMjNiYjEzNGI3ZThmNWEyZjQyMTBmZWZlNjg0MjU4Y2FjNzFk
YmUuLjQxMmUyNThhYjA5NTlmMThiMzJkYTk5MWRiM2Y5NjA0ZjI5OGI3ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU09OQXRvbVN0cmluZ0NhY2hlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgpAQCAtMTQzLDUxICsxNDQsMjUgQEAgYm9vbCBM
aXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6dHJ5SlNPTlBQYXJzZShWZWN0b3I8SlNPTlBEYXRhPiYg
cmVzdWx0cywgYm9vbCBuZWUKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotQUxX
QVlTX0lOTElORSBJZGVudGlmaWVyIExpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjptYWtlSWRlbnRp
Zmllcih0eXBlbmFtZSBMZXhlcjo6TGl0ZXJhbFBhcnNlclRva2VuUHRyIHRva2VuKQorQUxXQVlT
X0lOTElORSBJZGVudGlmaWVyIExpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjptYWtlSWRlbnRpZmll
cihWTSYgdm0sIHR5cGVuYW1lIExleGVyOjpMaXRlcmFsUGFyc2VyVG9rZW5QdHIgdG9rZW4pCiB7
CiAgICAgaWYgKHRva2VuLT5zdHJpbmdJczhCaXQpCi0gICAgICAgIHJldHVybiBtYWtlSWRlbnRp
Zmllcih0b2tlbi0+c3RyaW5nVG9rZW44LCB0b2tlbi0+c3RyaW5nTGVuZ3RoKTsKLSAgICByZXR1
cm4gbWFrZUlkZW50aWZpZXIodG9rZW4tPnN0cmluZ1Rva2VuMTYsIHRva2VuLT5zdHJpbmdMZW5n
dGgpOworICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgdm0uanNvbkF0
b21TdHJpbmdDYWNoZS5tYWtlSWRlbnRpZmllcih0b2tlbi0+c3RyaW5nVG9rZW44LCB0b2tlbi0+
c3RyaW5nTGVuZ3RoKSk7CisgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHZt
Lmpzb25BdG9tU3RyaW5nQ2FjaGUubWFrZUlkZW50aWZpZXIodG9rZW4tPnN0cmluZ1Rva2VuMTYs
IHRva2VuLT5zdHJpbmdMZW5ndGgpKTsKIH0KIAotICAgIAogdGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgotdGVtcGxhdGUgPHR5cGVuYW1lIExpdGVyYWxDaGFyVHlwZT4KLUFMV0FZU19JTkxJ
TkUgSWRlbnRpZmllciBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlkZW50aWZpZXIoY29u
c3QgTGl0ZXJhbENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoKQorQUxXQVlTX0lO
TElORSBKU1N0cmluZyogTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46Om1ha2VKU1N0cmluZyhWTSYg
dm0sIHR5cGVuYW1lIExleGVyOjpMaXRlcmFsUGFyc2VyVG9rZW5QdHIgdG9rZW4pCiB7Ci0gICAg
Vk0mIHZtID0gbV9nbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCFsZW5ndGgpCi0gICAgICAg
IHJldHVybiB2bS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXI7Ci0KLSAgICBhdXRvIGZp
cnN0Q2hhcmFjdGVyID0gY2hhcmFjdGVyc1swXTsKLSAgICBpZiAobGVuZ3RoID09IDEpIHsKLSAg
ICAgICAgaWYgY29uc3RleHByIChzaXplb2YoTGl0ZXJhbENoYXJUeXBlKSA9PSAxKQotICAgICAg
ICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHZtLnNtYWxsU3RyaW5ncy5z
aW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoZmlyc3RDaGFyYWN0ZXIpKTsKLSAgICAgICAgaWYgKGZp
cnN0Q2hhcmFjdGVyIDw9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykKLSAgICAgICAgICAgIHJl
dHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCB2bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hh
cmFjdGVyU3RyaW5nUmVwKGZpcnN0Q2hhcmFjdGVyKSk7Ci0gICAgICAgIHJldHVybiBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOworICAgIGNvbnN0ZXhwciB1
bnNpZ25lZCBtYXhBdG9taXplU3RyaW5nTGVuZ3RoID0gMTA7CisgICAgaWYgKHRva2VuLT5zdHJp
bmdJczhCaXQpIHsKKyAgICAgICAgaWYgKHRva2VuLT5zdHJpbmdMZW5ndGggPiBtYXhBdG9taXpl
U3RyaW5nTGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCBTdHJpbmcodG9r
ZW4tPnN0cmluZ1Rva2VuOCwgdG9rZW4tPnN0cmluZ0xlbmd0aCkpOworICAgICAgICByZXR1cm4g
anNTdHJpbmcodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHRva2VuLT5zdHJpbmdUb2tl
bjgsIHRva2VuLT5zdHJpbmdMZW5ndGgpLnN0cmluZygpKTsKICAgICB9Ci0KLSAgICBpZiAoZmly
c3RDaGFyYWN0ZXIgPj0gbWF4aW11bUNhY2hhYmxlQ2hhcmFjdGVyKQotICAgICAgICByZXR1cm4g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLQotICAgIC8v
IDAgbWVhbnMgbm8gZW50cnkgc2luY2UgbV9yZWNlbnRJZGVudGlmaWVyc0luZGV4IGlzIHplcm8t
ZmlsbGVkIGluaXRpYWxseS4KLSAgICB1aW50OF90IGluZGV4UGx1c09uZSA9IG1fcmVjZW50SWRl
bnRpZmllcnNJbmRleFtmaXJzdENoYXJhY3Rlcl07Ci0gICAgaWYgKGluZGV4UGx1c09uZSkgewot
ICAgICAgICB1aW50OF90IGluZGV4ID0gaW5kZXhQbHVzT25lIC0gMTsKLSAgICAgICAgYXV0byYg
aWRlbnQgPSBtX3JlY2VudElkZW50aWZpZXJzW2luZGV4XTsKLSAgICAgICAgaWYgKElkZW50aWZp
ZXI6OmVxdWFsKGlkZW50LmltcGwoKSwgY2hhcmFjdGVycywgbGVuZ3RoKSkKLSAgICAgICAgICAg
IHJldHVybiBpZGVudDsKLSAgICAgICAgYXV0byByZXN1bHQgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwotICAgICAgICBtX3JlY2VudElkZW50aWZpZXJz
W2luZGV4XSA9IHJlc3VsdDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBh
dXRvIHJlc3VsdCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIGNoYXJhY3RlcnMsIGxlbmd0
aCk7Ci0gICAgbV9yZWNlbnRJZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQocmVzdWx0KTsKLSAg
ICBpbmRleFBsdXNPbmUgPSBtX3JlY2VudElkZW50aWZpZXJzLnNpemUoKTsKLSAgICBtX3JlY2Vu
dElkZW50aWZpZXJzSW5kZXhbZmlyc3RDaGFyYWN0ZXJdID0gaW5kZXhQbHVzT25lOwotICAgIHJl
dHVybiByZXN1bHQ7CisgICAgaWYgKHRva2VuLT5zdHJpbmdMZW5ndGggPiBtYXhBdG9taXplU3Ry
aW5nTGVuZ3RoKQorICAgICAgICByZXR1cm4ganNTdHJpbmcodm0sIFN0cmluZyh0b2tlbi0+c3Ry
aW5nVG9rZW4xNiwgdG9rZW4tPnN0cmluZ0xlbmd0aCkpOworICAgIHJldHVybiBqc1N0cmluZyh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgdG9rZW4tPnN0cmluZ1Rva2VuMTYsIHRva2Vu
LT5zdHJpbmdMZW5ndGgpLnN0cmluZygpKTsKIH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUgYm9v
bCBjYW5ub3RCZUlkZW50UGFydE9yRXNjYXBlU3RhcnQoTENoYXIpCkBAIC0xMTQ0LDcgKzExMTks
NyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNl
UHJpbWl0aXZlVmFsdWUoVk0mIHZtKQogewogICAgIHN3aXRjaCAobV9sZXhlci5jdXJyZW50VG9r
ZW4oKS0+dHlwZSkgewogICAgIGNhc2UgVG9rU3RyaW5nOiB7Ci0gICAgICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNTdHJpbmcodm0sIG1ha2VJZGVudGlmaWVyKG1fbGV4ZXIuY3VycmVudFRva2VuKCkp
LnN0cmluZygpKTsKKyAgICAgICAgSlNTdHJpbmcqIHJlc3VsdCA9IG1ha2VKU1N0cmluZyh2bSwg
bV9sZXhlci5jdXJyZW50VG9rZW4oKSk7CiAgICAgICAgIG1fbGV4ZXIubmV4dCgpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTEyODQsNyArMTI1OSw3IEBAIEpTVmFsdWUgTGl0
ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlKFBhcnNlclN0YXRlIGluaXRpYWxTdGF0ZSkKICAg
ICAgICAgICAgIFRva2VuVHlwZSB0eXBlID0gbV9sZXhlci5uZXh0KCk7CiAgICAgICAgICAgICBp
ZiAodHlwZSA9PSBUb2tTdHJpbmcgfHwgKG1fbW9kZSAhPSBTdHJpY3RKU09OICYmIHR5cGUgPT0g
VG9rSWRlbnRpZmllcikpIHsKICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICAgICAgICAgICAgICBJZGVudGlmaWVyIGlkZW50ID0gbWFrZUlkZW50aWZpZXIobV9sZXhlci5j
dXJyZW50VG9rZW4oKSk7CisgICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgaWRlbnQgPSBt
YWtlSWRlbnRpZmllcih2bSwgbV9sZXhlci5jdXJyZW50VG9rZW4oKSk7CiAKICAgICAgICAgICAg
ICAgICAgICAgaWYgKFVOTElLRUxZKG1fbGV4ZXIubmV4dCgpICE9IFRva0NvbG9uKSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3JNZXNzYWdlRm9yVG9rZW4oVG9rQ29sb24pOwpA
QCAtMTM1OCw3ICsxMzMzLDcgQEAgSlNWYWx1ZSBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6cGFy
c2UoUGFyc2VyU3RhdGUgaW5pdGlhbFN0YXRlKQogICAgICAgICAgICAgICAgIG1fcGFyc2VFcnJv
ck1lc3NhZ2UgPSAiUHJvcGVydHkgbmFtZSBtdXN0IGJlIGEgc3RyaW5nIGxpdGVyYWwiX3M7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlk
ZW50aWZpZXJTdGFjay5hcHBlbmQobWFrZUlkZW50aWZpZXIobV9sZXhlci5jdXJyZW50VG9rZW4o
KSkpOworICAgICAgICAgICAgaWRlbnRpZmllclN0YWNrLmFwcGVuZChtYWtlSWRlbnRpZmllcih2
bSwgbV9sZXhlci5jdXJyZW50VG9rZW4oKSkpOwogCiAgICAgICAgICAgICAvLyBDaGVjayBmb3Ig
Y29sb24KICAgICAgICAgICAgIGlmIChVTkxJS0VMWShtX2xleGVyLm5leHQoKSAhPSBUb2tDb2xv
bikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQ
YXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuaApp
bmRleCA3NDhhZTcyNDEwZTU0YzRlY2FlYTlkMGYxMjhhZTk3NzRiMWUwOGFhLi5lZWE0NWYzNzAy
MDIzOTAyYzFjMWY4MDY3OTA1NjAwYTRmNmY3ZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5oCkBAIC0xOTcsOSArMTk3LDggQEAgY2xhc3MgTGl0
ZXJhbFBhcnNlciB7CiAKICAgICBKU1ZhbHVlIHBhcnNlUHJpbWl0aXZlVmFsdWUoVk0mKTsKIAot
ICAgIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcih0eXBlbmFtZSBMZXhl
cjo6TGl0ZXJhbFBhcnNlclRva2VuUHRyKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXRlcmFs
Q2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBJZGVudGlmaWVyIG1ha2VJZGVudGlmaWVyKGNv
bnN0IExpdGVyYWxDaGFyVHlwZSogY2hhcmFjdGVycywgc2l6ZV90IGxlbmd0aCk7CisgICAgQUxX
QVlTX0lOTElORSBJZGVudGlmaWVyIG1ha2VJZGVudGlmaWVyKFZNJiwgdHlwZW5hbWUgTGV4ZXI6
OkxpdGVyYWxQYXJzZXJUb2tlblB0cik7CisgICAgQUxXQVlTX0lOTElORSBKU1N0cmluZyogbWFr
ZUpTU3RyaW5nKFZNJiwgdHlwZW5hbWUgTGV4ZXI6OkxpdGVyYWxQYXJzZXJUb2tlblB0cik7CiAK
ICAgICB2b2lkIHNldEVycm9yTWVzc2FnZUZvclRva2VuKFRva2VuVHlwZSk7CiAKQEAgLTIwOCw5
ICsyMDcsNiBAQCBjbGFzcyBMaXRlcmFsUGFyc2VyIHsKICAgICB0eXBlbmFtZSBMaXRlcmFsUGFy
c2VyPENoYXJUeXBlPjo6TGV4ZXIgbV9sZXhlcjsKICAgICBQYXJzZXJNb2RlIG1fbW9kZTsKICAg
ICBTdHJpbmcgbV9wYXJzZUVycm9yTWVzc2FnZTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG1heGltdW1DYWNoYWJsZUNoYXJhY3RlciA9IDEyODsKLSAgICBzdGQ6OmFycmF5PHVpbnQ4
X3QsIG1heGltdW1DYWNoYWJsZUNoYXJhY3Rlcj4gbV9yZWNlbnRJZGVudGlmaWVyc0luZGV4IHsg
fTsKLSAgICBWZWN0b3I8SWRlbnRpZmllciwgbWF4aW11bUNhY2hhYmxlQ2hhcmFjdGVyPiBtX3Jl
Y2VudElkZW50aWZpZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaAppbmRleCAzYWJmNzExYTY1NTJiZTRiMzFhZmU0N2UwNTlmMzMxZTA4OTkx
OTFmLi42ZGJlMTU1NWZlZGVlNDRlYmNlMzk1ZjlkNmJiYjFiZTczNzk5ZTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU0NKU1Zh
bHVlLmgiCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgorI2lu
Y2x1ZGUgIkpTT05BdG9tU3RyaW5nQ2FjaGUuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYuaCIKICNpbmNsdWRlICJNaWNyb3Rhc2suaCIKICNpbmNsdWRlICJOdW1lcmljU3RyaW5n
cy5oIgpAQCAtODA1LDYgKzgwNiw3IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNpbXBsZVN0YXRzPiBtYWNoaW5lQ29kZUJ5dGVzUGVyQnl0ZWNvZGVXb3JkRm9y
QmFzZWxpbmVKSVQ7CiAgICAgV2Vha0dDTWFwPFN0cmluZ0ltcGwqLCBKU1N0cmluZywgUHRySGFz
aDxTdHJpbmdJbXBsKj4+IHN0cmluZ0NhY2hlOwogICAgIFN0cm9uZzxKU1N0cmluZz4gbGFzdENh
Y2hlZFN0cmluZzsKKyAgICBKU09OQXRvbVN0cmluZ0NhY2hlIGpzb25BdG9tU3RyaW5nQ2FjaGU7
CiAKICAgICBBdG9tU3RyaW5nVGFibGUqIGF0b21TdHJpbmdUYWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXRvbVN0cmluZ1RhYmxlOyB9CiAgICAgV1RGOjpTeW1ib2xSZWdpc3RyeSYgc3ltYm9sUmVn
aXN0cnkoKSB7IHJldHVybiBtX3N5bWJvbFJlZ2lzdHJ5OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>