<?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>260451</bug_id>
          
          <creation_ts>2023-08-20 17:02:57 -0700</creation_ts>
          <short_desc>[IFC] Introduce IntrinsicWidthHandler</short_desc>
          <delta_ts>2023-08-21 10:48:18 -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>Layout and Rendering</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>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1972299</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-08-20 17:02:57 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972300</commentid>
    <comment_count>1</comment_count>
      <attachid>467348</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-20 17:08:06 -0700</bug_when>
    <thetext>Created attachment 467348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972426</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-08-21 10:47:08 -0700</bug_when>
    <thetext>Committed 267094@main (5e46e7aea7e7): &lt;https://commits.webkit.org/267094@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 467348.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972427</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-08-21 10:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/114203940&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467348</attachid>
            <date>2023-08-20 17:08:06 -0700</date>
            <delta_ts>2023-08-21 10:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260451-20230820170805.patch</filename>
            <type>text/plain</type>
            <size>26113</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiMDEzZjA2ZTdjOGVjNDM1NzY5YjE0Y2NlZmJhOTI0NjZlYWJhZmM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgMjAgQXVnIDIwMjMgMTc6MDM6NTggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBJ
bnRyb2R1Y2UgSW50cmluc2ljV2lkdGhIYW5kbGVyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjYwNDUxCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMg
aXMgaW4gcHJlcGFyYXRpb24gZm9yIGFkZGluZyBmYXN0IHBhdGggZm9yIG1pbmltdW0gc2l6ZSBj
b21wdXRhdGlvbi4KCiogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQ6CiogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIFNvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDogTW92aW5nIGNvZGUuCihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlZEludHJpbnNpY1NpemVzKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6Om1heGltdW1Db250ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludCk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuY3BwOiBBZGRlZC4K
KFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVyOjpJbnRyaW5zaWNXaWR0aEhh
bmRsZXIpOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OmNvbXB1dGVk
SW50cmluc2ljU2l6ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6
Om1heGltdW1Db250ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNpY1dpZHRoSGFu
ZGxlcjo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aEZvckNvbnN0cmFpbnQpOgooV2ViQ29yZTo6TGF5
b3V0OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OmZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKFdl
YkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVyOjpmb3JtYXR0aW5nU3RhdGUgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OnJvb3QgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJp
bnNpY1dpZHRoSGFuZGxlci5oOiBBZGRlZC4KKFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lk
dGhIYW5kbGVyOjptYXhpbXVtSW50cmluc2ljV2lkdGhSZXN1bHQgY29uc3QpOgotLS0KIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogfCAgIDYgKwogLi4uL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgIDczICstLS0tLS0tLQogLi4u
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICAgICAgICAgIHwgIDExICstCiAuLi4v
aW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAgICAgICAgICAgfCAxMzkgKysrKysrKysr
KysrKysrKysrCiAuLi4vaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5oICAgICAgICAgICAg
fCAgNjUgKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMjE4IGluc2VydGlvbnMoKyksIDc3IGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNjI4M2VlNTgzYzJh
Li5mNTE5MGVjYzI1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzE0LDYgKzE3MTQsNyBAQCBsYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKIGxh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAogbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25l
ci5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmNw
cAorbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVy
LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlci5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5s
aW5lRGlzcGxheUNvbnRlbnQuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9k
aXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYTE1ZjhkMTBhODEu
Ljc2OTE0ZWExODJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTI1MCw2ICs1MjUwLDcgQEAKIAkJREQ3NjNCQjIwOTkyQzJD
OTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBERDc2M0JCMTA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5k
eWxpYiAqLzsgfTsKIAkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkND
RTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVW5rbm93blJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlERDhBMzBCNDI5MURGQzhGMDBBRDUzN0Mg
LyogQmxvY2tMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREQ4QTMwQjMyOTFERkM4RjAwQUQ1MzdDIC8qIEJsb2NrTGF5b3V0U3RhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlERDk0
NjdENzJBOTJEM0I4MDA0NTg5NzkgLyogSW50cmluc2ljV2lkdGhIYW5kbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDk0NjdENjJBOTJEM0I4MDA0
NTg5NzkgLyogSW50cmluc2ljV2lkdGhIYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRERBMjEwRUEyOUZDNDZFRTAwQzcxMkMzIC8qIElu
bGluZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEREEyMTBFOTI5RkM0NkVEMDBDNzEyQzMgLyogSW5saW5lTGF5b3V0U3RhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEREEzRDVD
RjJBN0Q4NDREMDAwRUNFRTEgLyogVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRERBM0Q1Q0UyQTdEODQ0RDAw
MEVDRUUxIC8qIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEREIwNEYzQTI3OEU1NTM5MDA4RDM2Nzgg
LyogbGliV1RGLmEgaW4gUHJvZHVjdCBEZXBlbmRlbmNpZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRERCMDRGMzkyNzhFNTUzMTAwOEQzNjc4IC8qIGxpYldURi5hICovOyB9
OwpAQCAtMTgyMzUsNiArMTgyMzYsOCBAQAogCQlERDc2M0JCMTA5OTJDMkM5MDA3NDBCOEUgLyog
bGlieG1sMi5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGlieG1sMi5keWxpYjsgcGF0
aCA9IC91c3IvbGliL2xpYnhtbDIuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07
CiAJCUREOEEzMEIzMjkxREZDOEYwMEFENTM3QyAvKiBCbG9ja0xheW91dFN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrTGF5b3V0U3RhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREQ5M0E5RTEyOUMyQTYwMzAwRUQ2NzFFIC8qIElubGluZURp
c3BsYXlDb250ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZURpc3BsYXlDb250ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREQ5NDY3RDUyQTkyRDNBMzAwNDU4
OTc5IC8qIEludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRy
aW5zaWNXaWR0aEhhbmRsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERDk0
NjdENjJBOTJEM0I4MDA0NTg5NzkgLyogSW50cmluc2ljV2lkdGhIYW5kbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludHJpbnNpY1dpZHRoSGFuZGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEREEyMTBFOTI5RkM0NkVEMDBDNzEyQzMgLyogSW5saW5l
TGF5b3V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGF5
b3V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERBM0Q1Q0UyQTdEODQ0
RDAwMEVDRUUxIC8qIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEREEzRDVEMDJBN0Q4NDdFMDAwRUNFRTEgLyogVGV4dE9ubHlT
aW1wbGVMaW5lQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjEyLDYgKzIx
MjE1LDggQEAKIAkJCQk2RjM2MEU0RTIzOTk5NDIwMDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVC
cmVha0l0ZW0uaCAqLywKIAkJCQk2RjFDQzFEQzIyNUY4QjQxMDA3MjBBRDIgLyogSW5saW5lVGV4
dEl0ZW0uY3BwICovLAogCQkJCTZGMUNDMUREMjI1RjhCNDIwMDcyMEFEMiAvKiBJbmxpbmVUZXh0
SXRlbS5oICovLAorCQkJCUREOTQ2N0Q1MkE5MkQzQTMwMDQ1ODk3OSAvKiBJbnRyaW5zaWNXaWR0
aEhhbmRsZXIuY3BwICovLAorCQkJCUREOTQ2N0Q2MkE5MkQzQjgwMDQ1ODk3OSAvKiBJbnRyaW5z
aWNXaWR0aEhhbmRsZXIuaCAqLywKIAkJCQlEREEzRDVEMDJBN0Q4NDdFMDAwRUNFRTEgLyogVGV4
dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJRERBM0Q1Q0UyQTdEODQ0RDAwMEVD
RUUxIC8qIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAqLywKIAkJCSk7CkBAIC0zODU2NCw2
ICszODU2OSw3IEBACiAJCQkJRTQ2MkE0QTExMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFz
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMzRGNUFCMTJFRTM0M0YwMDRFQzU4RCAvKiBJbnRS
ZWN0SGFzaC5oIGluIEhlYWRlcnMgKi8sCisJCQkJREQ5NDY3RDcyQTkyRDNCODAwNDU4OTc5IC8q
IEludHJpbnNpY1dpZHRoSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzUwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFNpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTc2MEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQwQjRB
QUIxOERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYWY1ODM2
OTlhMmJmLi43NGU0ZjA4YzdiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbmxpbmVM
aW5lQm94QnVpbGRlci5oIgogI2luY2x1ZGUgIklubGluZUxpbmVUeXBlcy5oIgogI2luY2x1ZGUg
IklubGluZVRleHRJdGVtLmgiCisjaW5jbHVkZSAiSW50cmluc2ljV2lkdGhIYW5kbGVyLmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1
ZGUgIkxheW91dEVsZW1lbnRCb3guaCIKQEAgLTEzMywyMiArMTM0LDEwIEBAIEludHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2lj
U2l6ZXMoY29uc3QKICAgICBpZiAobmVlZHNJbmxpbmVJdGVtc1VwZGF0ZSkKICAgICAgICAgSW5s
aW5lSXRlbXNCdWlsZGVyIHsgcm9vdCgpLCBpbmxpbmVGb3JtYXR0aW5nU3RhdGUgfS5idWlsZChu
ZWVkc0xheW91dFN0YXJ0UG9zaXRpb24pOwogCi0gICAgYXV0byBjb21wdXRlZEludHJpbnNpY1Zh
bHVlID0gWyZdKGF1dG8gaW50cmluc2ljV2lkdGhNb2RlLCBhdXRvJiBpbmxpbmVCdWlsZGVyLCBN
YXlDYWNoZUxheW91dFJlc3VsdCBtYXlDYWNoZUxheW91dFJlc3VsdCA9IE1heUNhY2hlTGF5b3V0
UmVzdWx0OjpObykgewotICAgICAgICBpbmxpbmVCdWlsZGVyLnNldEludHJpbnNpY1dpZHRoTW9k
ZShpbnRyaW5zaWNXaWR0aE1vZGUpOwotICAgICAgICByZXR1cm4gY2VpbGVkTGF5b3V0VW5pdChj
b21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChpbnRyaW5zaWNXaWR0aE1vZGUsIGlu
bGluZUJ1aWxkZXIsIG1heUNhY2hlTGF5b3V0UmVzdWx0KSk7Ci0gICAgfTsKKyAgICBhdXRvIGlu
dHJpbnNpY1dpZHRoSGFuZGxlciA9IEludHJpbnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzIH07Cisg
ICAgYXV0byBpbnRyaW5zaWNTaXplcyA9IGludHJpbnNpY1dpZHRoSGFuZGxlci5jb21wdXRlZElu
dHJpbnNpY1NpemVzKCk7CisgICAgbV9tYXhpbXVtSW50cmluc2ljV2lkdGhSZXN1bHRGb3JTaW5n
bGVMaW5lID0gaW50cmluc2ljV2lkdGhIYW5kbGVyLm1heGltdW1JbnRyaW5zaWNXaWR0aFJlc3Vs
dCgpOwogCi0gICAgYXV0byBpbnRyaW5zaWNTaXplcyA9IEludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgeyB9OwotICAgIGlmIChUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9y
U2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lRm9ybWF0dGluZ1N0
YXRlKSkgewotICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIgeyAqdGhpcywgeyB9LCBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5l
SXRlbXMoKSB9OwotICAgICAgICBpbnRyaW5zaWNTaXplcyA9IHsgY29tcHV0ZWRJbnRyaW5zaWNW
YWx1ZShJbnRyaW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0sIHNpbXBsaWZpZWRMaW5lQnVpbGRlciks
IGNvbXB1dGVkSW50cmluc2ljVmFsdWUoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVtLCBzaW1w
bGlmaWVkTGluZUJ1aWxkZXIsIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6Omhhc0ludHJpbnNp
Y1dpZHRoU3BlY2lmaWNTdHlsZShyb290KCkuc3R5bGUoKSkgPyBNYXlDYWNoZUxheW91dFJlc3Vs
dDo6Tm8gOiBNYXlDYWNoZUxheW91dFJlc3VsdDo6WWVzKSB9OwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGF1dG8gZmxvYXRpbmdTdGF0ZSA9IEZsb2F0aW5nU3RhdGUgeyByb290KCkgfTsKLSAgICAg
ICAgYXV0byBwYXJlbnRCbG9ja0xheW91dFN0YXRlID0gQmxvY2tMYXlvdXRTdGF0ZSB7IGZsb2F0
aW5nU3RhdGUsIHsgfSB9OwotICAgICAgICBhdXRvIGlubGluZUxheW91dFN0YXRlID0gSW5saW5l
TGF5b3V0U3RhdGUgeyBwYXJlbnRCbG9ja0xheW91dFN0YXRlLCB7IH0gfTsKLSAgICAgICAgYXV0
byBsaW5lQnVpbGRlciA9IExpbmVCdWlsZGVyIHsgKnRoaXMsIGlubGluZUxheW91dFN0YXRlLCBm
bG9hdGluZ1N0YXRlLCB7IH0sIGlubGluZUZvcm1hdHRpbmdTdGF0ZS5pbmxpbmVJdGVtcygpIH07
Ci0gICAgICAgIGludHJpbnNpY1NpemVzID0geyBjb21wdXRlZEludHJpbnNpY1ZhbHVlKEludHJp
bnNpY1dpZHRoTW9kZTo6TWluaW11bSwgbGluZUJ1aWxkZXIpLCBjb21wdXRlZEludHJpbnNpY1Zh
bHVlKEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSwgbGluZUJ1aWxkZXIpIH07Ci0gICAgfQog
ICAgIGZvcm1hdHRpbmdTdGF0ZSgpLnNldEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoaW50cmlu
c2ljU2l6ZXMpOwogICAgIHJldHVybiBpbnRyaW5zaWNTaXplczsKIH0KQEAgLTE1OSwxNiArMTQ4
LDcgQEAgTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bWF4aW11bUNvbnRlbnRT
aXplKCkKICAgICBpZiAoYXV0byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gaW5saW5lRm9y
bWF0dGluZ1N0YXRlLmludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSkKICAgICAgICAgcmV0dXJu
IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMtPm1heGltdW07CiAKLSAgICBpZiAoaW5saW5lRm9y
bWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkuaXNFbXB0eSgpKQotICAgICAgICBJbmxpbmVJdGVt
c0J1aWxkZXIgeyByb290KCksIGlubGluZUZvcm1hdHRpbmdTdGF0ZSB9LmJ1aWxkKHsgfSk7Ci0K
LSAgICBhdXRvIGZsb2F0aW5nU3RhdGUgPSBGbG9hdGluZ1N0YXRlIHsgcm9vdCgpIH07Ci0gICAg
YXV0byBwYXJlbnRCbG9ja0xheW91dFN0YXRlID0gQmxvY2tMYXlvdXRTdGF0ZSB7IGZsb2F0aW5n
U3RhdGUsIHsgfSB9OwotICAgIGF1dG8gaW5saW5lTGF5b3V0U3RhdGUgPSBJbmxpbmVMYXlvdXRT
dGF0ZSB7IHBhcmVudEJsb2NrTGF5b3V0U3RhdGUsIHsgfSB9OwotICAgIGF1dG8gbGluZUJ1aWxk
ZXIgPSBMaW5lQnVpbGRlciB7ICp0aGlzLCBpbmxpbmVMYXlvdXRTdGF0ZSwgZmxvYXRpbmdTdGF0
ZSwgeyB9LCBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSB9OwotICAgIGxpbmVC
dWlsZGVyLnNldEludHJpbnNpY1dpZHRoTW9kZShJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0p
OwotCi0gICAgcmV0dXJuIGNlaWxlZExheW91dFVuaXQoY29tcHV0ZWRJbnRyaW5zaWNXaWR0aEZv
ckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVtLCBsaW5lQnVpbGRlcikpOwor
ICAgIHJldHVybiBJbnRyaW5zaWNXaWR0aEhhbmRsZXIgeyAqdGhpcyB9Lm1heGltdW1Db250ZW50
U2l6ZSgpOwogfQogCiBzdGF0aWMgYm9vbCBtYXlFeGl0RnJvbVBhcnRpYWxMYXlvdXQoY29uc3Qg
SW5saW5lRGFtYWdlJiBsaW5lRGFtYWdlLCBzaXplX3QgbGluZUluZGV4LCBjb25zdCBJbmxpbmVE
aXNwbGF5OjpCb3hlcyYgbmV3Q29udGVudCkKQEAgLTI4Myw0OSArMjYzLDYgQEAgdm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZGbG93Q29u
dGVudChjb25zdCBGb3IKICAgICB9CiB9CiAKLUlubGluZUxheW91dFVuaXQgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNp
Y1dpZHRoTW9kZSBpbnRyaW5zaWNXaWR0aE1vZGUsIEFic3RyYWN0TGluZUJ1aWxkZXImIGxpbmVC
dWlsZGVyLCBNYXlDYWNoZUxheW91dFJlc3VsdCBtYXlDYWNoZUxheW91dFJlc3VsdCkKLXsKLSAg
ICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IH07
Ci0gICAgaWYgKGludHJpbnNpY1dpZHRoTW9kZSA9PSBJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGlt
dW0pCi0gICAgICAgIGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGggPSBtYXhJbmxp
bmVMYXlvdXRVbml0KCk7Ci0gICAgYXV0byYgaW5saW5lSXRlbXMgPSBmb3JtYXR0aW5nU3RhdGUo
KS5pbmxpbmVJdGVtcygpOwotICAgIGF1dG8gbGF5b3V0UmFuZ2UgPSBJbmxpbmVJdGVtUmFuZ2Ug
eyAwICwgaW5saW5lSXRlbXMuc2l6ZSgpIH07Ci0gICAgYXV0byBtYXhpbXVtQ29udGVudFdpZHRo
ID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Ci0gICAgYXV0byBwcmV2aW91c0xpbmVFbmQgPSBzdGQ6
Om9wdGlvbmFsPElubGluZUl0ZW1Qb3NpdGlvbj4geyB9OwotICAgIGF1dG8gcHJldmlvdXNMaW5l
ID0gc3RkOjpvcHRpb25hbDxQcmV2aW91c0xpbmU+IHsgfTsKLSAgICBhdXRvIGxpbmVJbmRleCA9
IDBsdTsKLQotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGF1dG8gbGluZUxheW91dFJlc3Vs
dCA9IGxpbmVCdWlsZGVyLmxheW91dElubGluZUNvbnRlbnQoeyBsYXlvdXRSYW5nZSwgeyAwLmYs
IDAuZiwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxvZ2ljYWxXaWR0aCwgMC5mIH0gfSwgcHJldmlv
dXNMaW5lKTsKLSAgICAgICAgYXV0byBmbG9hdENvbnRlbnRXaWR0aCA9IFsmXSB7Ci0gICAgICAg
ICAgICBhdXRvIGxlZnRXaWR0aCA9IExheW91dFVuaXQgeyB9OwotICAgICAgICAgICAgYXV0byBy
aWdodFdpZHRoID0gTGF5b3V0VW5pdCB7IH07Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIGZsb2F0
SXRlbSA6IGxpbmVMYXlvdXRSZXN1bHQuZmxvYXRDb250ZW50LnBsYWNlZEZsb2F0cykgewotICAg
ICAgICAgICAgICAgIG1heUNhY2hlTGF5b3V0UmVzdWx0ID0gTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6
Ok5vOwotICAgICAgICAgICAgICAgIGF1dG8gbWFyZ2luQm94UmVjdCA9IEJveEdlb21ldHJ5Ojpt
YXJnaW5Cb3hSZWN0KGZsb2F0SXRlbS5ib3hHZW9tZXRyeSgpKTsKLSAgICAgICAgICAgICAgICBp
ZiAoZmxvYXRJdGVtLmlzTGVmdFBvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgbGVm
dFdpZHRoID0gc3RkOjptYXgobGVmdFdpZHRoLCBtYXJnaW5Cb3hSZWN0LnJpZ2h0KCkpOwotICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmlnaHRXaWR0aCA9IHN0ZDo6
bWF4KHJpZ2h0V2lkdGgsIGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGggLSBtYXJn
aW5Cb3hSZWN0LmxlZnQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gSW5s
aW5lTGF5b3V0VW5pdCB7IGxlZnRXaWR0aCArIHJpZ2h0V2lkdGggfTsKLSAgICAgICAgfTsKLSAg
ICAgICAgbWF4aW11bUNvbnRlbnRXaWR0aCA9IHN0ZDo6bWF4KG1heGltdW1Db250ZW50V2lkdGgs
IGxpbmVMYXlvdXRSZXN1bHQubGluZUdlb21ldHJ5LmxvZ2ljYWxUb3BMZWZ0LngoKSArIGxpbmVM
YXlvdXRSZXN1bHQuY29udGVudEdlb21ldHJ5LmxvZ2ljYWxXaWR0aCArIGZsb2F0Q29udGVudFdp
ZHRoKCkpOwotCi0gICAgICAgIGxheW91dFJhbmdlLnN0YXJ0ID0gSW5saW5lRm9ybWF0dGluZ0dl
b21ldHJ5OjpsZWFkaW5nSW5saW5lSXRlbVBvc2l0aW9uRm9yTmV4dExpbmUobGluZUxheW91dFJl
c3VsdC5pbmxpbmVJdGVtUmFuZ2UuZW5kLCBwcmV2aW91c0xpbmVFbmQsIGxheW91dFJhbmdlLmVu
ZCk7Ci0gICAgICAgIGlmIChsYXlvdXRSYW5nZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGF1
dG8gc2hvdWxkQ2FjaGVMaW5lQnJlYWtpbmdSZXN1bHRGb3JTdWJzZXF1ZW50TGF5b3V0ID0gIWxp
bmVJbmRleCAmJiBtYXlDYWNoZUxheW91dFJlc3VsdCA9PSBNYXlDYWNoZUxheW91dFJlc3VsdDo6
WWVzOwotICAgICAgICAgICAgaWYgKHNob3VsZENhY2hlTGluZUJyZWFraW5nUmVzdWx0Rm9yU3Vi
c2VxdWVudExheW91dCkKLSAgICAgICAgICAgICAgICBtX21heGltdW1JbnRyaW5zaWNXaWR0aFJl
c3VsdEZvclNpbmdsZUxpbmUgPSBMaW5lQnJlYWtpbmdSZXN1bHRGb3JDb25zdHJhaW50IHsgY2Vp
bGVkTGF5b3V0VW5pdChtYXhpbXVtQ29udGVudFdpZHRoKSwgV1RGTW92ZShsaW5lTGF5b3V0UmVz
dWx0KSB9OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBwcmV2aW91
c0xpbmVFbmQgPSBsYXlvdXRSYW5nZS5zdGFydDsKLSAgICAgICAgcHJldmlvdXNMaW5lID0gUHJl
dmlvdXNMaW5lIHsgbGluZUluZGV4KyssIGxpbmVMYXlvdXRSZXN1bHQuY29udGVudEdlb21ldHJ5
LnRyYWlsaW5nT3ZlcmZsb3dpbmdDb250ZW50V2lkdGgsIHsgfSwgeyB9LCBXVEZNb3ZlKGxpbmVM
YXlvdXRSZXN1bHQuZmxvYXRDb250ZW50LnN1c3BlbmRlZEZsb2F0cykgfTsKLSAgICB9Ci0gICAg
cmV0dXJuIG1heGltdW1Db250ZW50V2lkdGg7Ci19Ci0KIHN0YXRpYyBMaW5lRW5kaW5nRWxsaXBz
aXNQb2xpY3kgbGluZUVuZGluZ0VsbGlwc2lzUG9saWN5KGNvbnN0IFJlbmRlclN0eWxlJiByb290
U3R5bGUsIHNpemVfdCBudW1iZXJPZkxpbmVzLCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gbnVtYmVy
T2ZWaXNpYmxlTGluZXNBbGxvd2VkKQogewogICAgIC8vIFdlIG1heSBoYXZlIHBhc3NlZCB0aGUg
bGluZS1jbGFtcCBsaW5lIHdpdGggb3ZlcmZsb3cgdmlzaWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDBhODA1ZGFhOThkZS4uMTE0MDY4
ZjFhNzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nQ29uc3RyYWlu
dHMuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCIKICNpbmNsdWRlICJJ
bmxpbmVGb3JtYXR0aW5nUXVpcmtzLmgiCi0jaW5jbHVkZSAiSW5saW5lTGluZUJ1aWxkZXIuaCIK
KyNpbmNsdWRlICJJbnRyaW5zaWNXaWR0aEhhbmRsZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTczLDkgKzczLDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGxheW91dEZsb2F0Q29udGVudE9ubHkoY29uc3QgQ29uc3RyYWludHNGb3JJbmxp
bmVDb250ZW50JiwgRmxvYXRpbmdTdGF0ZSYpOwogICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0
aW9uRm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBGb3JtYXR0aW5nU3RhdGU6Ok91dE9mRmxvd0Jv
eExpc3QmLCBjb25zdCBDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQmLCBjb25zdCBJbmxpbmVE
aXNwbGF5OjpDb250ZW50JiwgY29uc3QgRmxvYXRpbmdTdGF0ZSYpOwogCi0gICAgZW51bSBjbGFz
cyBNYXlDYWNoZUxheW91dFJlc3VsdCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgSW5saW5lTGF5
b3V0VW5pdCBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0
aE1vZGUsIEFic3RyYWN0TGluZUJ1aWxkZXImLCBNYXlDYWNoZUxheW91dFJlc3VsdCA9IE1heUNh
Y2hlTGF5b3V0UmVzdWx0OjpObyk7Ci0KICAgICB2b2lkIGNvbGxlY3RDb250ZW50SWZOZWVkZWQo
KTsKICAgICBJbmxpbmVSZWN0IGNyZWF0ZURpc3BsYXlDb250ZW50Rm9yTGluZShzaXplX3QgbGlu
ZUluZGV4LCBjb25zdCBMaW5lTGF5b3V0UmVzdWx0JiwgY29uc3QgQ29uc3RyYWludHNGb3JJbmxp
bmVDb250ZW50JiwgY29uc3QgSW5saW5lTGF5b3V0U3RhdGUmLCBJbmxpbmVEaXNwbGF5OjpDb250
ZW50Jik7CiAgICAgdm9pZCByZXNldEdlb21ldHJ5Rm9yQ2xhbXBlZENvbnRlbnQoY29uc3QgSW5s
aW5lSXRlbVJhbmdlJiBuZWVkc0Rpc3BsYXlDb250ZW50UmFuZ2UsIGNvbnN0IExpbmVMYXlvdXRS
ZXN1bHQ6OlN1c3BlbmRlZEZsb2F0TGlzdCYgc3VzcGVuZGVkRmxvYXRzLCBMYXlvdXRQb2ludCB0
b3BsZWZ0KTsKQEAgLTg1LDExICs4Miw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBJbmxpbmVG
b3JtYXR0aW5nR2VvbWV0cnkgbV9pbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnk7CiAgICAgY29uc3Qg
SW5saW5lRm9ybWF0dGluZ1F1aXJrcyBtX2lubGluZUZvcm1hdHRpbmdRdWlya3M7Ci0gICAgc3Ry
dWN0IExpbmVCcmVha2luZ1Jlc3VsdEZvckNvbnN0cmFpbnQgewotICAgICAgICBJbmxpbmVMYXlv
dXRVbml0IGNvbnN0cmFpbnQ7Ci0gICAgICAgIExpbmVMYXlvdXRSZXN1bHQgcmVzdWx0OwotICAg
IH07Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5lQnJlYWtpbmdSZXN1bHRGb3JDb25zdHJhaW50PiBt
X21heGltdW1JbnRyaW5zaWNXaWR0aFJlc3VsdEZvclNpbmdsZUxpbmUgeyB9OworICAgIHN0ZDo6
b3B0aW9uYWw8SW50cmluc2ljV2lkdGhIYW5kbGVyOjpMaW5lQnJlYWtpbmdSZXN1bHQ+IG1fbWF4
aW11bUludHJpbnNpY1dpZHRoUmVzdWx0Rm9yU2luZ2xlTGluZSB7IH07CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bnRyaW5zaWNXaWR0aEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVlY2JlZjRlZjJjOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJp
bnNpY1dpZHRoSGFuZGxlci5jcHAKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50cmluc2ljV2lkdGhIYW5kbGVyLmgiCisKKyNp
bmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJGbG9hdGluZ1N0YXRlLmgiCisj
aW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbmxpbmVMaW5l
QnVpbGRlci5oIgorI2luY2x1ZGUgIkxheW91dEVsZW1lbnRCb3guaCIKKyNpbmNsdWRlICJUZXh0
T25seVNpbXBsZUxpbmVCdWlsZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFj
ZSBMYXlvdXQgeworCitJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OkludHJpbnNpY1dpZHRoSGFuZGxl
cihjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQp
CisgICAgOiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0KGlubGluZUZvcm1hdHRpbmdDb250ZXh0
KQoreworfQorCitJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEludHJpbnNpY1dpZHRoSGFuZGxl
cjo6Y29tcHV0ZWRJbnRyaW5zaWNTaXplcygpCit7CisgICAgYXV0byYgaW5saW5lRm9ybWF0dGlu
Z1N0YXRlID0gZm9ybWF0dGluZ1N0YXRlKCk7CisKKyAgICBhdXRvIGNvbXB1dGVkSW50cmluc2lj
VmFsdWUgPSBbJl0oYXV0byBpbnRyaW5zaWNXaWR0aE1vZGUsIGF1dG8mIGlubGluZUJ1aWxkZXIs
IE1heUNhY2hlTGF5b3V0UmVzdWx0IG1heUNhY2hlTGF5b3V0UmVzdWx0ID0gTWF5Q2FjaGVMYXlv
dXRSZXN1bHQ6Ok5vKSB7CisgICAgICAgIGlubGluZUJ1aWxkZXIuc2V0SW50cmluc2ljV2lkdGhN
b2RlKGludHJpbnNpY1dpZHRoTW9kZSk7CisgICAgICAgIHJldHVybiBjZWlsZWRMYXlvdXRVbml0
KGNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KGludHJpbnNpY1dpZHRoTW9kZSwg
aW5saW5lQnVpbGRlciwgbWF5Q2FjaGVMYXlvdXRSZXN1bHQpKTsKKyAgICB9OworCisgICAgYXV0
byBpbnRyaW5zaWNTaXplcyA9IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OworICAgIGlm
IChUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRP
bmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lRm9ybWF0dGluZ1N0YXRlKSkgeworICAgICAg
ICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIg
eyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlubGluZUZvcm1hdHRpbmdTdGF0ZS5pbmxpbmVJ
dGVtcygpIH07CisgICAgICAgIGludHJpbnNpY1NpemVzID0geyBjb21wdXRlZEludHJpbnNpY1Zh
bHVlKEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11bSwgc2ltcGxpZmllZExpbmVCdWlsZGVyKSwg
Y29tcHV0ZWRJbnRyaW5zaWNWYWx1ZShJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0sIHNpbXBs
aWZpZWRMaW5lQnVpbGRlciwgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFzSW50cmluc2lj
V2lkdGhTcGVjaWZpY1N0eWxlKHJvb3QoKS5zdHlsZSgpKSA/IE1heUNhY2hlTGF5b3V0UmVzdWx0
OjpObyA6IE1heUNhY2hlTGF5b3V0UmVzdWx0OjpZZXMpIH07CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgYXV0byBmbG9hdGluZ1N0YXRlID0gRmxvYXRpbmdTdGF0ZSB7IHJvb3QoKSB9OworICAgICAg
ICBhdXRvIHBhcmVudEJsb2NrTGF5b3V0U3RhdGUgPSBCbG9ja0xheW91dFN0YXRlIHsgZmxvYXRp
bmdTdGF0ZSwgeyB9IH07CisgICAgICAgIGF1dG8gaW5saW5lTGF5b3V0U3RhdGUgPSBJbmxpbmVM
YXlvdXRTdGF0ZSB7IHBhcmVudEJsb2NrTGF5b3V0U3RhdGUsIHsgfSB9OworICAgICAgICBhdXRv
IGxpbmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCBpbmxpbmVM
YXlvdXRTdGF0ZSwgZmxvYXRpbmdTdGF0ZSwgeyB9LCBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5s
aW5lSXRlbXMoKSB9OworICAgICAgICBpbnRyaW5zaWNTaXplcyA9IHsgY29tcHV0ZWRJbnRyaW5z
aWNWYWx1ZShJbnRyaW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0sIGxpbmVCdWlsZGVyKSwgY29tcHV0
ZWRJbnRyaW5zaWNWYWx1ZShJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0sIGxpbmVCdWlsZGVy
KSB9OworICAgIH0KKyAgICByZXR1cm4gaW50cmluc2ljU2l6ZXM7Cit9CisKK0xheW91dFVuaXQg
SW50cmluc2ljV2lkdGhIYW5kbGVyOjptYXhpbXVtQ29udGVudFNpemUoKQoreworICAgIGF1dG8m
IGlubGluZUZvcm1hdHRpbmdTdGF0ZSA9IGZvcm1hdHRpbmdTdGF0ZSgpOworICAgIGF1dG8gZmxv
YXRpbmdTdGF0ZSA9IEZsb2F0aW5nU3RhdGUgeyByb290KCkgfTsKKyAgICBhdXRvIHBhcmVudEJs
b2NrTGF5b3V0U3RhdGUgPSBCbG9ja0xheW91dFN0YXRlIHsgZmxvYXRpbmdTdGF0ZSwgeyB9IH07
CisgICAgYXV0byBpbmxpbmVMYXlvdXRTdGF0ZSA9IElubGluZUxheW91dFN0YXRlIHsgcGFyZW50
QmxvY2tMYXlvdXRTdGF0ZSwgeyB9IH07CisgICAgYXV0byBsaW5lQnVpbGRlciA9IExpbmVCdWls
ZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgaW5saW5lTGF5b3V0U3RhdGUsIGZsb2F0aW5nU3Rh
dGUsIHsgfSwgaW5saW5lRm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkgfTsKKyAgICBsaW5l
QnVpbGRlci5zZXRJbnRyaW5zaWNXaWR0aE1vZGUoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVt
KTsKKworICAgIHJldHVybiBjZWlsZWRMYXlvdXRVbml0KGNvbXB1dGVkSW50cmluc2ljV2lkdGhG
b3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSwgbGluZUJ1aWxkZXIpKTsK
K30KKworSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OmNvbXB1dGVkSW50
cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZSBpbnRyaW5zaWNXaWR0
aE1vZGUsIEFic3RyYWN0TGluZUJ1aWxkZXImIGxpbmVCdWlsZGVyLCBNYXlDYWNoZUxheW91dFJl
c3VsdCBtYXlDYWNoZUxheW91dFJlc3VsdCkKK3sKKyAgICBhdXRvIGhvcml6b250YWxDb25zdHJh
aW50cyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IH07CisgICAgaWYgKGludHJpbnNpY1dpZHRo
TW9kZSA9PSBJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0pCisgICAgICAgIGhvcml6b250YWxD
b25zdHJhaW50cy5sb2dpY2FsV2lkdGggPSBtYXhJbmxpbmVMYXlvdXRVbml0KCk7CisgICAgYXV0
byYgaW5saW5lSXRlbXMgPSBmb3JtYXR0aW5nU3RhdGUoKS5pbmxpbmVJdGVtcygpOworICAgIGF1
dG8gbGF5b3V0UmFuZ2UgPSBJbmxpbmVJdGVtUmFuZ2UgeyAwICwgaW5saW5lSXRlbXMuc2l6ZSgp
IH07CisgICAgYXV0byBtYXhpbXVtQ29udGVudFdpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7IH07
CisgICAgYXV0byBwcmV2aW91c0xpbmVFbmQgPSBzdGQ6Om9wdGlvbmFsPElubGluZUl0ZW1Qb3Np
dGlvbj4geyB9OworICAgIGF1dG8gcHJldmlvdXNMaW5lID0gc3RkOjpvcHRpb25hbDxQcmV2aW91
c0xpbmU+IHsgfTsKKyAgICBhdXRvIGxpbmVJbmRleCA9IDBsdTsKKworICAgIHdoaWxlICh0cnVl
KSB7CisgICAgICAgIGF1dG8gbGluZUxheW91dFJlc3VsdCA9IGxpbmVCdWlsZGVyLmxheW91dElu
bGluZUNvbnRlbnQoeyBsYXlvdXRSYW5nZSwgeyAwLmYsIDAuZiwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLmxvZ2ljYWxXaWR0aCwgMC5mIH0gfSwgcHJldmlvdXNMaW5lKTsKKyAgICAgICAgYXV0byBm
bG9hdENvbnRlbnRXaWR0aCA9IFsmXSB7CisgICAgICAgICAgICBhdXRvIGxlZnRXaWR0aCA9IExh
eW91dFVuaXQgeyB9OworICAgICAgICAgICAgYXV0byByaWdodFdpZHRoID0gTGF5b3V0VW5pdCB7
IH07CisgICAgICAgICAgICBmb3IgKGF1dG8mIGZsb2F0SXRlbSA6IGxpbmVMYXlvdXRSZXN1bHQu
ZmxvYXRDb250ZW50LnBsYWNlZEZsb2F0cykgeworICAgICAgICAgICAgICAgIG1heUNhY2hlTGF5
b3V0UmVzdWx0ID0gTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6Ok5vOworICAgICAgICAgICAgICAgIGF1
dG8gbWFyZ2luQm94UmVjdCA9IEJveEdlb21ldHJ5OjptYXJnaW5Cb3hSZWN0KGZsb2F0SXRlbS5i
b3hHZW9tZXRyeSgpKTsKKyAgICAgICAgICAgICAgICBpZiAoZmxvYXRJdGVtLmlzTGVmdFBvc2l0
aW9uZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgbGVmdFdpZHRoID0gc3RkOjptYXgobGVmdFdp
ZHRoLCBtYXJnaW5Cb3hSZWN0LnJpZ2h0KCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgcmlnaHRXaWR0aCA9IHN0ZDo6bWF4KHJpZ2h0V2lkdGgsIGhvcml6b250
YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGggLSBtYXJnaW5Cb3hSZWN0LmxlZnQoKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gSW5saW5lTGF5b3V0VW5pdCB7IGxlZnRXaWR0
aCArIHJpZ2h0V2lkdGggfTsKKyAgICAgICAgfTsKKyAgICAgICAgbWF4aW11bUNvbnRlbnRXaWR0
aCA9IHN0ZDo6bWF4KG1heGltdW1Db250ZW50V2lkdGgsIGxpbmVMYXlvdXRSZXN1bHQubGluZUdl
b21ldHJ5LmxvZ2ljYWxUb3BMZWZ0LngoKSArIGxpbmVMYXlvdXRSZXN1bHQuY29udGVudEdlb21l
dHJ5LmxvZ2ljYWxXaWR0aCArIGZsb2F0Q29udGVudFdpZHRoKCkpOworCisgICAgICAgIGxheW91
dFJhbmdlLnN0YXJ0ID0gSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjpsZWFkaW5nSW5saW5lSXRl
bVBvc2l0aW9uRm9yTmV4dExpbmUobGluZUxheW91dFJlc3VsdC5pbmxpbmVJdGVtUmFuZ2UuZW5k
LCBwcmV2aW91c0xpbmVFbmQsIGxheW91dFJhbmdlLmVuZCk7CisgICAgICAgIGlmIChsYXlvdXRS
YW5nZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGF1dG8gc2hvdWxkQ2FjaGVMaW5lQnJlYWtp
bmdSZXN1bHRGb3JTdWJzZXF1ZW50TGF5b3V0ID0gIWxpbmVJbmRleCAmJiBtYXlDYWNoZUxheW91
dFJlc3VsdCA9PSBNYXlDYWNoZUxheW91dFJlc3VsdDo6WWVzOworICAgICAgICAgICAgaWYgKHNo
b3VsZENhY2hlTGluZUJyZWFraW5nUmVzdWx0Rm9yU3Vic2VxdWVudExheW91dCkKKyAgICAgICAg
ICAgICAgICBtX21heGltdW1JbnRyaW5zaWNXaWR0aFJlc3VsdEZvclNpbmdsZUxpbmUgPSBMaW5l
QnJlYWtpbmdSZXN1bHQgeyBjZWlsZWRMYXlvdXRVbml0KG1heGltdW1Db250ZW50V2lkdGgpLCBX
VEZNb3ZlKGxpbmVMYXlvdXRSZXN1bHQpIH07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIHByZXZpb3VzTGluZUVuZCA9IGxheW91dFJhbmdlLnN0YXJ0OworICAgICAg
ICBwcmV2aW91c0xpbmUgPSBQcmV2aW91c0xpbmUgeyBsaW5lSW5kZXgrKywgbGluZUxheW91dFJl
c3VsdC5jb250ZW50R2VvbWV0cnkudHJhaWxpbmdPdmVyZmxvd2luZ0NvbnRlbnRXaWR0aCwgeyB9
LCB7IH0sIFdURk1vdmUobGluZUxheW91dFJlc3VsdC5mbG9hdENvbnRlbnQuc3VzcGVuZGVkRmxv
YXRzKSB9OworICAgIH0KKyAgICByZXR1cm4gbWF4aW11bUNvbnRlbnRXaWR0aDsKK30KKworY29u
c3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIEludHJpbnNpY1dpZHRoSGFuZGxlcjo6Zm9ybWF0
dGluZ0NvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lubGluZUZvcm1hdHRpbmdDb250
ZXh0OworfQorCitjb25zdCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIEludHJpbnNpY1dpZHRoSGFu
ZGxlcjo6Zm9ybWF0dGluZ1N0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5mb3JtYXR0aW5nU3RhdGUoKTsKK30KKworY29uc3QgRWxlbWVudEJveCYg
SW50cmluc2ljV2lkdGhIYW5kbGVyOjpyb290KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5yb290KCk7Cit9CisKK30KK30KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lk
dGhIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmVhNDFmMDA1YTRmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxl
ci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEFic3RyYWN0TGluZUJ1
aWxkZXI7CitjbGFzcyBFbGVtZW50Qm94OworY2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7
CitjbGFzcyBJbmxpbmVGb3JtYXR0aW5nU3RhdGU7CisKK2NsYXNzIEludHJpbnNpY1dpZHRoSGFu
ZGxlciB7CitwdWJsaWM6CisgICAgSW50cmluc2ljV2lkdGhIYW5kbGVyKGNvbnN0IElubGluZUZv
cm1hdHRpbmdDb250ZXh0Jik7CisKKyAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbXB1
dGVkSW50cmluc2ljU2l6ZXMoKTsKKyAgICBMYXlvdXRVbml0IG1heGltdW1Db250ZW50U2l6ZSgp
OworCisgICAgc3RydWN0IExpbmVCcmVha2luZ1Jlc3VsdCB7CisgICAgICAgIElubGluZUxheW91
dFVuaXQgY29uc3RyYWludDsKKyAgICAgICAgTGluZUxheW91dFJlc3VsdCByZXN1bHQ7CisgICAg
fTsKKyAgICBzdGQ6Om9wdGlvbmFsPExpbmVCcmVha2luZ1Jlc3VsdD4gbWF4aW11bUludHJpbnNp
Y1dpZHRoUmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtSW50cmluc2ljV2lkdGhSZXN1
bHRGb3JTaW5nbGVMaW5lOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBNYXlDYWNoZUxh
eW91dFJlc3VsdCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgSW5saW5lTGF5b3V0VW5pdCBjb21w
dXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0aE1vZGUsIEFic3Ry
YWN0TGluZUJ1aWxkZXImLCBNYXlDYWNoZUxheW91dFJlc3VsdCA9IE1heUNhY2hlTGF5b3V0UmVz
dWx0OjpObyk7CisKKyAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGlu
Z0NvbnRleHQoKSBjb25zdDsKKyAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IEVsZW1lbnRCb3gmIHJvb3QoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9pbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8TGluZUJyZWFraW5nUmVzdWx0
PiBtX21heGltdW1JbnRyaW5zaWNXaWR0aFJlc3VsdEZvclNpbmdsZUxpbmUgeyB9OworfTsKKwor
fQorfQorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>