<?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>222442</bug_id>
          
          <creation_ts>2021-02-25 15:50:34 -0800</creation_ts>
          <short_desc>REGRESSION(r273503): Caused a blob loading failure</short_desc>
          <delta_ts>2021-02-25 15:53:34 -0800</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>
          
          <blocked>222145</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733567</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-25 15:50:34 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/273503 broke the build:
Caused a blob loading failure

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733569</commentid>
    <comment_count>1</comment_count>
      <attachid>421578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-25 15:50:44 -0800</bug_when>
    <thetext>Created attachment 421578
REVERT of r273503

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733571</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-25 15:52:28 -0800</bug_when>
    <thetext>Committed r273520: &lt;https://commits.webkit.org/r273520&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421578.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733573</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-25 15:53:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/74764599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421578</attachid>
            <date>2021-02-25 15:50:44 -0800</date>
            <delta_ts>2021-02-25 15:52:29 -0800</delta_ts>
            <desc>REVERT of r273503</desc>
            <filename>bug-222442-20210225235043.patch</filename>
            <type>text/plain</type>
            <size>29532</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5MjE0ZjY3NjE0MmUyMmFhNTMwZDZi
OWE0OTlhNzM3Y2JlMTE4NDIuLjI4M2Q2MjhhOWU1MGFiMGJjYzczMDM2ZmU2NTdhNzg0OTY5Zjkw
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcz
NTAzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
NDQyCisKKyAgICAgICAgQ2F1c2VkIGEgYmxvYiBsb2FkaW5nIGZhaWx1cmUKKworICAgICAgICBS
ZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlNlcmlhbGl6ZSBOU1VSTFJlcXVlc3QgKHJh
dGhlciB0aGFuIENGVVJMUmVxdWVzdCkgaW4gSVBDIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTQ1CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yNzM1MDMKKwogMjAyMS0wMi0yNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdHVicyB0byBlbmFibGUg
U2FmYXJpRm9yV2ViS2l0RGV2ZWxvcG1lbnQgdG8gbGF1bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFiMTZiZjFh
ZDU4ZTE4MWQ4NjI4OTYzMzNhODE4ZTQwNGU3ZGQ1YmEuLmQ3MjYwMDAxMDIwMTVhMTNhNmIxMjli
ODRjMTEzZTgzZmI0ZmY3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMjUg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjczNTAzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDQyCisKKyAgICAgICAgQ2F1c2VkIGEgYmxvYiBsb2FkaW5n
IGZhaWx1cmUKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlNlcmlh
bGl6ZSBOU1VSTFJlcXVlc3QgKHJhdGhlciB0aGFuIENGVVJMUmVxdWVzdCkgaW4gSVBDIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTQ1CisgICAg
ICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzM1MDMKKwogMjAyMS0wMi0y
NSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFkZCBzdHVicyB0byBlbmFibGUgU2FmYXJpRm9yV2ViS2l0RGV2ZWxvcG1lbnQgdG8gbGF1bmNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9OU1VSTEV4dHJhcy5tbSBiL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL05TVVJMRXh0cmFzLm1tCmluZGV4IGMwMDY0NmJmYmNmNTMzYjcwM2Uz
MWYyYjM3NDJmYTAzZGQwZDVhMWEuLjIwOWVhNWI4NjY0YTFiYTMxOTJmOWVjMjM1MzllMzBjZTJj
OTdhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL05TVVJMRXh0cmFzLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL05TVVJMRXh0cmFzLm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2NCwx
MiArMTY0LDggQEAgTlNVUkwgKlVSTFdpdGhEYXRhKE5TRGF0YSAqZGF0YSwgTlNVUkwgKmJhc2VV
UkwpCiAgICAgICAgIGNvbnN0IFVJbnQ4ICpieXRlcyA9IHN0YXRpY19jYXN0PGNvbnN0IFVJbnQ4
Kj4oW2RhdGEgYnl0ZXNdKTsKICAgICAgICAgCiAgICAgICAgIC8vIENGVVJMQ3JlYXRlQWJzb2x1
dGVVUkxXaXRoQnl0ZXMgd291bGQgY29tcGxhaW4gdG8gY29uc29sZSBpZiB3ZSBwYXNzZWQgYSBw
YXRoIHRvIGl0LgotICAgICAgICBpZiAoYnl0ZXNbMF0gPT0gJy8nICYmICFiYXNlVVJMKSB7Ci0g
ICAgICAgICAgICAvLyBBIFVSTCBzdGFydGluZyB3aXRoICcvLycgaXMgdmFsaWQgKGFuIGF1dGhv
cml0eSB3aXRob3V0IGEgc2NoZW1lKSwgYW5kIGlzIG5vdCBhIGZpbGUgcGF0aC4KLSAgICAgICAg
ICAgIC8vIFNvIG9ubHkgcmV0dXJuIGVhcmx5IGlmIHRoZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHNs
YXNoIGlzIHNvbWV0aGluZyBlbHNlLgotICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAxIHx8IGJ5
dGVzWzFdICE9ICcvJykKLSAgICAgICAgICAgICAgICByZXR1cm4gbmlsOwotICAgICAgICB9Cisg
ICAgICAgIGlmIChieXRlc1swXSA9PSAnLycgJiYgIWJhc2VVUkwpCisgICAgICAgICAgICByZXR1
cm4gbmlsOwogICAgICAgICAKICAgICAgICAgLy8gTk9URTogV2UgdXNlIFVURi04IGhlcmUgc2lu
Y2UgdGhpcyBlbmNvZGluZyBpcyB1c2VkIHdoZW4gY29tcHV0aW5nIHN0cmluZ3Mgd2hlbiByZXR1
cm5pbmcgVVJMIGNvbXBvbmVudHMKICAgICAgICAgLy8gKGUuZyBjYWxscyB0byBOU1VSTCAtcGF0
aCkuIEhvd2V2ZXIsIHRoaXMgZnVuY3Rpb24gaXMgbm90IHRvbGVyYW50IG9mIGlsbGVnYWwgVVRG
LTggc2VxdWVuY2VzLCB3aGljaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Fy
Z3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggODY4NWRiZjg2ZTFkMGZjY2QwYWQzOThlYjdmODAx
MTlmMmQ0YzNmMi4uYmQzYWVjMzFjMzNkYjU3ZjZmODIyN2UzNTY5MWFhM2I4NzQwZjg3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1t
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCwgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM2LDggKzM2LDYgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3Iu
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvSGFz
aFNldC5oPgotI2ltcG9ydCA8d3RmL2NmL0NGVVJMRXh0cmFzLmg+Ci0jaW1wb3J0IDx3dGYvY29j
b2EvTlNVUkxFeHRyYXMuaD4KIAogI2lmIFVTRShBUFBLSVQpCiAjaW1wb3J0IDxXZWJDb3JlL0Nv
bG9yTWFjLmg+CkBAIC01MSwxMTEgKzQ5LDI4IEBACiAjaW1wb3J0IDxVSUtpdC9VSUZvbnREZXNj
cmlwdG9yLmg+CiAjZW5kaWYKIAotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLQotQGludGVyZmFj
ZSBXS1NlY3VyZUNvZGluZ0FyY2hpdmluZ0RlbGVnYXRlIDogTlNPYmplY3QgPE5TS2V5ZWRBcmNo
aXZlckRlbGVnYXRlLCBOU0tleWVkVW5hcmNoaXZlckRlbGVnYXRlPgotQGVuZAorI2lmIEhBVkUo
TlNGT05UX1dJVEhfT1BUSUNBTF9TSVpJTkdfQlVHKQogCi1AaW50ZXJmYWNlIFdLU2VjdXJlQ29k
aW5nVVJMV3JhcHBlciA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLS0gKGluc3RhbmNldHlw
ZSBfTnVsbGFibGUpaW5pdFdpdGhVUkw6KE5TVVJMICopd3JhcHBlZFVSTDsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKiB3cmFwcGVkVVJMOworQGludGVyZmFjZSBXS1Nl
Y3VyZUNvZGluZ0ZvbnRBdHRyaWJ1dGVOb3JtYWxpemVyIDogTlNPYmplY3QgPE5TS2V5ZWRBcmNo
aXZlckRlbGVnYXRlPgogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV0tTZWN1cmVDb2RpbmdBcmNo
aXZpbmdEZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFdLU2VjdXJlQ29kaW5nRm9udEF0dHJpYnV0
ZU5vcm1hbGl6ZXIKIAotLSAobnVsbGFibGUgaWQpYXJjaGl2ZXI6KE5TS2V5ZWRBcmNoaXZlciAq
KWFyY2hpdmVyIHdpbGxFbmNvZGVPYmplY3Q6KGlkKW9iamVjdAorLSAoaWQpYXJjaGl2ZXI6KE5T
S2V5ZWRBcmNoaXZlciAqKWFyY2hpdmVyIHdpbGxFbmNvZGVPYmplY3Q6KGlkKW9iamVjdAogewot
I2lmIEhBVkUoTlNGT05UX1dJVEhfT1BUSUNBTF9TSVpJTkdfQlVHKQotICAgIGlmIChhdXRvIGZv
bnQgPSBkeW5hbWljX29iamNfY2FzdDxOU0ZvbnQ+KG9iamVjdCkpIHsKKyAgICBpZiAoW29iamVj
dCBpc0tpbmRPZkNsYXNzOltOU0ZvbnQgY2xhc3NdXSkgeworICAgICAgICBOU0ZvbnQgKmZvbnQg
PSBzdGF0aWNfY2FzdDxOU0ZvbnQgKj4ob2JqZWN0KTsKICAgICAgICAgLy8gUmVjcmVhdGUgYW55
IHNlcmlhbGl6ZWQgZm9udHMgYWZ0ZXIgbm9ybWFsaXppbmcgdGhlCiAgICAgICAgIC8vIGZvbnQg
YXR0cmlidXRlcyB0byB3b3JrIGFyb3VuZCA8cmRhcjovL3Byb2JsZW0vNTE2NTc4ODA+LgogICAg
ICAgICByZXR1cm4gV2ViS2l0Ojpmb250V2l0aEF0dHJpYnV0ZXMoZm9udC5mb250RGVzY3JpcHRv
ci5mb250QXR0cmlidXRlcywgMCk7CiAgICAgfQotI2VuZGlmCi0KLSAgICBpZiAoYXV0byB1bndy
YXBwZWRVUkwgPSBkeW5hbWljX29iamNfY2FzdDxOU1VSTD4ob2JqZWN0KSkKLSAgICAgICAgcmV0
dXJuIGFkb3B0TlMoW1tXS1NlY3VyZUNvZGluZ1VSTFdyYXBwZXIgYWxsb2NdIGluaXRXaXRoVVJM
OnVud3JhcHBlZFVSTF0pLmF1dG9yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gb2JqZWN0OwogfQog
Ci0tIChpZCBfTnVsbGFibGUpdW5hcmNoaXZlcjooTlNLZXllZFVuYXJjaGl2ZXIgKil1bmFyY2hp
dmVyIGRpZERlY29kZU9iamVjdDooaWQgX051bGxhYmxlKSBOU19SRUxFQVNFU19BUkdVTUVOVCBv
YmplY3QgTlNfUkVUVVJOU19SRVRBSU5FRAotewotICAgIGF1dG8gYWRvcHRlZE9iamVjdCA9IGFk
b3B0TlMob2JqZWN0KTsKLSAgICBpZiAoYXV0byB3cmFwcGVyID0gZHluYW1pY19vYmpjX2Nhc3Q8
V0tTZWN1cmVDb2RpbmdVUkxXcmFwcGVyPihhZG9wdGVkT2JqZWN0LmdldCgpKSkKLSAgICAgICAg
cmV0dXJuIHJldGFpblB0cih3cmFwcGVyLndyYXBwZWRVUkwpLmxlYWtSZWYoKTsKLQotICAgIHJl
dHVybiBhZG9wdGVkT2JqZWN0LmxlYWtSZWYoKTsKLX0KLQogQGVuZAogCi1AaW1wbGVtZW50YXRp
b24gV0tTZWN1cmVDb2RpbmdVUkxXcmFwcGVyIHsKLSAgICBSZXRhaW5QdHI8TlNVUkw+IG1fd3Jh
cHBlZFVSTDsKLX0KLQotLSAoTlNVUkwgKil3cmFwcGVkVVJMCi17Ci0gICAgcmV0dXJuIG1fd3Jh
cHBlZFVSTC5nZXQoKTsKLX0KLQotKyAoQk9PTClzdXBwb3J0c1NlY3VyZUNvZGluZwotewotICAg
IHJldHVybiBZRVM7Ci19Ci0KLXN0YXRpYyBjb25zdGV4cHIgTlNTdHJpbmcgKmJhc2VVUkxLZXkg
PSBAIldLLmJhc2VVUkwiOwotCi0tICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNv
ZGVyCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV93cmFwcGVkVVJMKTsKLSAgICBhdXRvIGJhc2VV
UkwgPSBtX3dyYXBwZWRVUkwuZ2V0KCkuYmFzZVVSTDsKLSAgICBCT09MIGhhc0Jhc2VVUkwgPSAh
IWJhc2VVUkw7Ci0KLSAgICBbY29kZXIgZW5jb2RlVmFsdWVPZk9iakNUeXBlOiJjIiBhdDomaGFz
QmFzZVVSTF07Ci0gICAgaWYgKGhhc0Jhc2VVUkwpCi0gICAgICAgIFtjb2RlciBlbmNvZGVPYmpl
Y3Q6YmFzZVVSTCBmb3JLZXk6YmFzZVVSTEtleV07Ci0KLSAgICBXVEY6OlVSTENoYXJCdWZmZXIg
dXJsQnl0ZXM7Ci0gICAgV1RGOjpnZXRVUkxCeXRlcygoX19icmlkZ2UgQ0ZVUkxSZWYpbV93cmFw
cGVkVVJMLmdldCgpLCB1cmxCeXRlcyk7Ci0gICAgW2NvZGVyIGVuY29kZUJ5dGVzOnVybEJ5dGVz
LmRhdGEoKSBsZW5ndGg6dXJsQnl0ZXMuc2l6ZSgpXTsKLX0KLQotLSAoX051bGxhYmxlIGluc3Rh
bmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKLXsKLSAgICBhdXRvIHNlbGZQ
dHIgPSBhZG9wdE5TKFtzdXBlciBpbml0XSk7Ci0gICAgaWYgKCFzZWxmUHRyKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgQk9PTCBoYXNCYXNlVVJMOwotICAgIFtjb2RlciBkZWNvZGVWYWx1
ZU9mT2JqQ1R5cGU6ImMiIGF0OiZoYXNCYXNlVVJMIHNpemU6c2l6ZW9mKGhhc0Jhc2VVUkwpXTsK
LQotICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTDsKLSAgICBpZiAoaGFzQmFzZVVSTCkKLSAg
ICAgICAgYmFzZVVSTCA9IChOU1VSTCAqKVtjb2RlciBkZWNvZGVPYmplY3RPZkNsYXNzOk5TVVJM
LmNsYXNzIGZvcktleTpiYXNlVVJMS2V5XTsKLQotICAgIE5TVUludGVnZXIgbGVuZ3RoOwotICAg
IGlmIChhdXRvIGJ5dGVzID0gKHVpbnQ4X3QgKilbY29kZXIgZGVjb2RlQnl0ZXNXaXRoUmV0dXJu
ZWRMZW5ndGg6Jmxlbmd0aF0pIHsKLSAgICAgICAgbV93cmFwcGVkVVJMID0gV1RGOjpVUkxXaXRo
RGF0YShbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6Ynl0ZXMgbGVuZ3RoOmxlbmd0aCBmcmVl
V2hlbkRvbmU6Tk9dLCBiYXNlVVJMLmdldCgpKTsKLSAgICAgICAgaWYgKCFtX3dyYXBwZWRVUkwp
Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBkZWNvZGUgTlNVUkwgZHVlIHRvIGlu
dmFsaWQgZW5jb2Rpbmcgb2YgbGVuZ3RoICVkLiBTdWJzdGl0dXRpbmcgYSBibGFuayBVUkwiLCBs
ZW5ndGgpOwotICAgIH0KLQotICAgIGlmICghbV93cmFwcGVkVVJMKQotICAgICAgICBtX3dyYXBw
ZWRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAIiJdOwotCi0gICAgcmV0dXJuIHNlbGZQdHIu
bGVha1JlZigpOwotfQotCi0tIChfTnVsbGFibGUgaW5zdGFuY2V0eXBlKWluaXRXaXRoVVJMOihO
U1VSTCAqKXVybAotewotICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKQotICAgICAgICBtX3dy
YXBwZWRVUkwgPSB1cmw7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotQGVuZAorI2VuZGlmCiAK
IG5hbWVzcGFjZSBJUEMgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC00MzEsMTIgKzM0
NiwxNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVTZWN1cmVDb2RpbmdJbnRlcm5hbChFbmNvZGVyJiBl
bmNvZGVyLCBpZCA8TlNPYmplY3QsIE5TU2VjdXJlQwogewogICAgIGF1dG8gYXJjaGl2ZXIgPSBh
ZG9wdE5TKFtbTlNLZXllZEFyY2hpdmVyIGFsbG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5n
OllFU10pOwogCi0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1NlY3VyZUNvZGluZ0Fy
Y2hpdmluZ0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisjaWYgSEFWRShOU0ZPTlRfV0lUSF9PUFRJ
Q0FMX1NJWklOR19CVUcpCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1NlY3VyZUNv
ZGluZ0ZvbnRBdHRyaWJ1dGVOb3JtYWxpemVyIGFsbG9jXSBpbml0XSk7CiAgICAgW2FyY2hpdmVy
IHNldERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyNlbmRpZgogCiAgICAgW2FyY2hpdmVyIGVu
Y29kZU9iamVjdDpvYmplY3QgZm9yS2V5Ok5TS2V5ZWRBcmNoaXZlUm9vdE9iamVjdEtleV07CiAg
ICAgW2FyY2hpdmVyIGZpbmlzaEVuY29kaW5nXTsKKworI2lmIEhBVkUoTlNGT05UX1dJVEhfT1BU
SUNBTF9TSVpJTkdfQlVHKQogICAgIFthcmNoaXZlciBzZXREZWxlZ2F0ZTpuaWxdOworI2VuZGlm
CiAKICAgICBlbmNvZGUoZW5jb2RlciwgKF9fYnJpZGdlIENGRGF0YVJlZilbYXJjaGl2ZXIgZW5j
b2RlZERhdGFdKTsKIH0KQEAgLTQ1MywxNSArMzczLDggQEAgc3RhdGljIE9wdGlvbmFsPFJldGFp
blB0cjxpZD4+IGRlY29kZVNlY3VyZUNvZGluZ0ludGVybmFsKERlY29kZXImIGRlY29kZXIsIE5T
QXIKIAogICAgIGF1dG8gdW5hcmNoaXZlciA9IGFkb3B0TlMoW1tOU0tleWVkVW5hcmNoaXZlciBh
bGxvY10gaW5pdEZvclJlYWRpbmdGcm9tRGF0YTooX19icmlkZ2UgTlNEYXRhICopZGF0YS5nZXQo
KSBlcnJvcjpudWxscHRyXSk7CiAgICAgdW5hcmNoaXZlci5nZXQoKS5kZWNvZGluZ0ZhaWx1cmVQ
b2xpY3kgPSBOU0RlY29kaW5nRmFpbHVyZVBvbGljeVJhaXNlRXhjZXB0aW9uOwotCi0gICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1NlY3VyZUNvZGluZ0FyY2hpdmluZ0RlbGVnYXRlIGFs
bG9jXSBpbml0XSk7Ci0gICAgdW5hcmNoaXZlci5nZXQoKS5kZWxlZ2F0ZSA9IGRlbGVnYXRlLmdl
dCgpOwotCi0gICAgYXV0byBhbGxvd2VkQ2xhc3NTZXQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlU2V0
IGFsbG9jXSBpbml0V2l0aEFycmF5OmFsbG93ZWRDbGFzc2VzXSk7Ci0gICAgW2FsbG93ZWRDbGFz
c1NldCBhZGRPYmplY3Q6V0tTZWN1cmVDb2RpbmdVUkxXcmFwcGVyLmNsYXNzXTsKLSAgICAKICAg
ICBAdHJ5IHsKLSAgICAgICAgaWQgcmVzdWx0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZD
bGFzc2VzOmFsbG93ZWRDbGFzc1NldC5nZXQoKSBmb3JLZXk6TlNLZXllZEFyY2hpdmVSb290T2Jq
ZWN0S2V5XTsKKyAgICAgICAgaWQgcmVzdWx0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZD
bGFzc2VzOltOU1NldCBzZXRXaXRoQXJyYXk6YWxsb3dlZENsYXNzZXNdIGZvcktleTpOU0tleWVk
QXJjaGl2ZVJvb3RPYmplY3RLZXldOwogICAgICAgICBBU1NFUlQoIXJlc3VsdCB8fCBbcmVzdWx0
IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woTlNTZWN1cmVDb2RpbmcpXSk7CiAgICAgICAg
IHJldHVybiB7IHJlc3VsdCB9OwogICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9u
KSB7CkBAIC00NjksNyArMzgyLDYgQEAgc3RhdGljIE9wdGlvbmFsPFJldGFpblB0cjxpZD4+IGRl
Y29kZVNlY3VyZUNvZGluZ0ludGVybmFsKERlY29kZXImIGRlY29kZXIsIE5TQXIKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9IEBmaW5hbGx5IHsKICAgICAgICAgW3VuYXJjaGl2
ZXIgZmluaXNoRGVjb2RpbmddOwotICAgICAgICB1bmFyY2hpdmVyLmdldCgpLmRlbGVnYXRlID0g
bmlsOwogICAgIH0KIH0KIApAQCAtNjE0LDYgKzUyNiw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8SVBDOjpOU1R5cGU+IHsKIH07CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotTlNfQVNT
VU1FX05PTk5VTExfRU5ECi0KICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2Eu
bW0KaW5kZXggMmI2YTc1NWRmNzBmOTE4ZmQwMDQ3YzdiNjcwYjdhNDZkMTY2YjI0Ni4uNzZhZmI3
MmZmMmZkNGY5N2I1Y2YwMTMyZWVhOWIzMzdmYTQ0YWI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNCw3ICszNCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRm9udEF0dHJpYnV0ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2YvQ29yZVRleHRTUEkuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01
NDQsNTkgKzU0Myw0IEBAIE9wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFyZ3VtZW50Q29kZXI8
UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImCiAgICAgcmV0dXJuIEZvbnRQ
bGF0Zm9ybURhdGEoY3RGb250LmdldCgpLCBzaXplLnZhbHVlKCksIHN5bnRoZXRpY0JvbGQudmFs
dWUoKSwgc3ludGhldGljT2JsaXF1ZS52YWx1ZSgpLCBvcmllbnRhdGlvbi52YWx1ZSgpLCB3aWR0
aFZhcmlhbnQudmFsdWUoKSwgdGV4dFJlbmRlcmluZ01vZGUudmFsdWUoKSk7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURh
dGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QpCi17Ci0gICAgYXV0byByZXF1ZXN0VG9TZXJpYWxpemUgPSByZXRhaW5QdHIo
cmVzb3VyY2VSZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGlj
eTo6RG9Ob3RVcGRhdGVIVFRQQm9keSkpOwotCi0gICAgYm9vbCByZXF1ZXN0SXNQcmVzZW50ID0g
cmVxdWVzdFRvU2VyaWFsaXplOwotICAgIGVuY29kZXIgPDwgcmVxdWVzdElzUHJlc2VudDsKLQot
ICAgIGlmICghcmVxdWVzdElzUHJlc2VudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2Ug
ZG9uJ3Qgc2VuZCBIVFRQIGJvZHkgb3ZlciBJUEMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLSAg
ICAvLyBBbHNvLCBpdCdzIG5vdCBhbHdheXMgcG9zc2libGUgdG8gZG8sIGFzIHN0cmVhbXMgY2Fu
IG9ubHkgYmUgY3JlYXRlZCBpbiBwcm9jZXNzIHRoYXQgZG9lcyBuZXR3b3JraW5nLgotICAgIGlm
IChbcmVxdWVzdFRvU2VyaWFsaXplIEhUVFBCb2R5XSB8fCBbcmVxdWVzdFRvU2VyaWFsaXplIEhU
VFBCb2R5U3RyZWFtXSkgewotICAgICAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhb
cmVxdWVzdFRvU2VyaWFsaXplIG11dGFibGVDb3B5XSk7Ci0gICAgICAgIFttdXRhYmxlUmVxdWVz
dCBzZXRIVFRQQm9keTpuaWxdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3Qgc2V0SFRUUEJvZHlT
dHJlYW06bmlsXTsKLSAgICAgICAgcmVxdWVzdFRvU2VyaWFsaXplID0gV1RGTW92ZShtdXRhYmxl
UmVxdWVzdCk7Ci0gICAgfQotCi0gICAgSVBDOjplbmNvZGUoZW5jb2RlciwgcmVxdWVzdFRvU2Vy
aWFsaXplLmdldCgpKTsKLQotICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LnJlcXVlc3Rl
cigpOwotICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LmlzQXBwQm91bmQoKTsKLX0KLQot
Ym9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCkKLXsKLSAgICBib29sIHJlcXVlc3RJc1ByZXNlbnQ7Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXF1ZXN0SXNQcmVzZW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgaWYgKCFyZXF1ZXN0SXNQcmVzZW50KSB7Ci0gICAgICAgIHJlc291cmNlUmVxdWVzdCA9IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
LSAgICBhdXRvIHJlcXVlc3QgPSBJUEM6OmRlY29kZTxOU1VSTFJlcXVlc3Q+KGRlY29kZXIsIE5T
VVJMUmVxdWVzdC5jbGFzcyk7Ci0gICAgaWYgKCFyZXF1ZXN0KQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXIgcmVxdWVz
dGVyOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdGVyKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgYm9vbCBpc0FwcEJvdW5kOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aXNBcHBCb3VuZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJlc291cmNlUmVxdWVz
dCA9IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdChyZXF1ZXN0LT5nZXQoKSk7Ci0gICAgcmVzb3Vy
Y2VSZXF1ZXN0LnNldFJlcXVlc3RlcihyZXF1ZXN0ZXIpOwotICAgIHJlc291cmNlUmVxdWVzdC5z
ZXRJc0FwcEJvdW5kKGlzQXBwQm91bmQpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNv
cmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggYzU5NTA2OGE2YTRjNzdkMDYxMjgwYWEyNTc0NjRk
NjZhYTNjMTAxZi4uMGY2MDVmYWQ1MjE3MjUxNDEwZTI1ZDdiYmM5MWNiMTNjODE0ZTU0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
TWFjLm1tCkBAIC00MiwxNCArNDIsMjQ1IEBACiAjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5o
PgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWNBZGRpdGlvbnMuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKICNpbXBvcnQgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaD4KICNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmg+CiAjZW5kaWYKIAorI2lmbmRlZiBXRUJDT1JFX0FSR1VNRU5UQ09ERVJTX01BQ19E
RUNPREVfQURESVRJT05TCisjZGVmaW5lIFdFQkNPUkVfQVJHVU1FTlRDT0RFUlNfTUFDX0RFQ09E
RV9BRERJVElPTlMKKyNlbmRpZgorCisjaWZuZGVmIFdFQkNPUkVfQVJHVU1FTlRDT0RFUlNfTUFD
X0VOQ09ERV9BRERJVElPTlMKKyNkZWZpbmUgV0VCQ09SRV9BUkdVTUVOVENPREVSU19NQUNfRU5D
T0RFX0FERElUSU9OUworI2VuZGlmCisKIG5hbWVzcGFjZSBJUEMgewogCitzdGF0aWMgUmV0YWlu
UHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IGNyZWF0ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0
aW9uKENGSW5kZXggdmVyc2lvbiwgQ0ZUeXBlUmVmKiBvYmplY3RzLCBDRkluZGV4IG9iamVjdENv
dW50LCBDRkRpY3Rpb25hcnlSZWYgcHJvdG9jb2xQcm9wZXJ0aWVzLCBDRk51bWJlclJlZiBleHBl
Y3RlZENvbnRlbnRMZW5ndGgsIENGU3RyaW5nUmVmIG1pbWVUeXBlLCBDRlR5cGVSZWYgdG9rZW5O
dWxsKQoreworICAgIGF1dG8gYXJjaGl2ZUxpc3RBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0
ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcykp
OworCisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgb2JqZWN0Q291bnQ7ICsraSkgeworICAg
ICAgICBDRlR5cGVSZWYgb2JqZWN0ID0gb2JqZWN0c1tpXTsKKyAgICAgICAgaWYgKG9iamVjdCkg
eworICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFyY2hpdmVMaXN0QXJyYXkuZ2V0KCks
IG9iamVjdCk7CisgICAgICAgICAgICBDRlJlbGVhc2Uob2JqZWN0KTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vIEFwcGVuZCBvdXIgdG9rZW4gbnVsbCByZXByZXNlbnRhdGlvbi4K
KyAgICAgICAgICAgIENGQXJyYXlBcHBlbmRWYWx1ZShhcmNoaXZlTGlzdEFycmF5LmdldCgpLCB0
b2tlbk51bGwpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKKworICAgIGF1dG8gdmVyc2lvbk51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0ZJbmRleFR5cGUsICZ2ZXJzaW9uKSk7
CisgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZGljdGlvbmFyeS5nZXQoKSwgQ0ZTVFIoInZlcnNp
b24iKSwgdmVyc2lvbk51bWJlci5nZXQoKSk7CisgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZGlj
dGlvbmFyeS5nZXQoKSwgQ0ZTVFIoImFyY2hpdmVMaXN0IiksIGFyY2hpdmVMaXN0QXJyYXkuZ2V0
KCkpOworCisgICAgaWYgKHByb3RvY29sUHJvcGVydGllcykgeworICAgICAgICBDRkRpY3Rpb25h
cnlTZXRWYWx1ZShkaWN0aW9uYXJ5LmdldCgpLCBDRlNUUigicHJvdG9jb2xQcm9wZXJ0aWVzIiks
IHByb3RvY29sUHJvcGVydGllcyk7CisgICAgICAgIENGUmVsZWFzZShwcm90b2NvbFByb3BlcnRp
ZXMpOworICAgIH0KKworICAgIGlmIChleHBlY3RlZENvbnRlbnRMZW5ndGgpIHsKKyAgICAgICAg
Q0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZGljdGlvbmFyeS5nZXQoKSwgQ0ZTVFIoImV4cGVjdGVkQ29u
dGVudExlbmd0aCIpLCBleHBlY3RlZENvbnRlbnRMZW5ndGgpOworICAgICAgICBDRlJlbGVhc2Uo
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoKTsKKyAgICB9CisKKyAgICBpZiAobWltZVR5cGUpIHsKKyAg
ICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZGljdGlvbmFyeS5nZXQoKSwgQ0ZTVFIoIm1pbWVU
eXBlIiksIG1pbWVUeXBlKTsKKyAgICAgICAgQ0ZSZWxlYXNlKG1pbWVUeXBlKTsKKyAgICB9CisK
KyAgICBDRkFsbG9jYXRvckRlYWxsb2NhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb2JqZWN0cyk7
CisKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVU
eXBlPiBib29sIGV4dHJhY3REaWN0aW9uYXJ5VmFsdWUoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rpb25h
cnksIENGU3RyaW5nUmVmIGtleSwgVmFsdWVUeXBlKiByZXN1bHQpCit7CisgICAgYXV0byB1bnR5
cGVkVmFsdWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShkaWN0aW9uYXJ5LCBrZXkpOworICAgIGF1
dG8gdmFsdWUgPSBkeW5hbWljX2NmX2Nhc3Q8VmFsdWVUeXBlPih1bnR5cGVkVmFsdWUpOworICAg
IGlmICh1bnR5cGVkVmFsdWUgJiYgIXZhbHVlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgKnJlc3VsdCA9IHZhbHVlOworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgYm9vbCBjcmVhdGVBcmNoaXZlTGlzdChDRkRpY3Rpb25hcnlSZWYgcmVwcmVz
ZW50YXRpb24sIENGVHlwZVJlZiB0b2tlbk51bGwsIENGSW5kZXgqIHZlcnNpb24sIENGVHlwZVJl
ZioqIG9iamVjdHMsIENGSW5kZXgqIG9iamVjdENvdW50LCBDRkRpY3Rpb25hcnlSZWYqIHByb3Rv
Y29sUHJvcGVydGllcywgQ0ZOdW1iZXJSZWYqIGV4cGVjdGVkQ29udGVudExlbmd0aCwgQ0ZTdHJp
bmdSZWYqIG1pbWVUeXBlKQoreworICAgIGF1dG8gdmVyc2lvbk51bWJlciA9IGR5bmFtaWNfY2Zf
Y2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocmVwcmVzZW50YXRpb24sIENG
U1RSKCJ2ZXJzaW9uIikpKTsKKyAgICBpZiAoIXZlcnNpb25OdW1iZXIpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghQ0ZOdW1iZXJHZXRWYWx1ZSh2ZXJzaW9uTnVtYmVyLCBrQ0ZO
dW1iZXJDRkluZGV4VHlwZSwgdmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGF1dG8gYXJjaGl2ZUxpc3RBcnJheSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkFycmF5UmVmPihDRkRp
Y3Rpb25hcnlHZXRWYWx1ZShyZXByZXNlbnRhdGlvbiwgQ0ZTVFIoImFyY2hpdmVMaXN0IikpKTsK
KyAgICBpZiAoIWFyY2hpdmVMaXN0QXJyYXkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGF1dG8gYXJjaGl2ZUxpc3RBcnJheUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGFyY2hpdmVMaXN0
QXJyYXkpOworICAgIGlmICghaXNJbkJvdW5kczxzaXplX3Q+KGFyY2hpdmVMaXN0QXJyYXlDb3Vu
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gYnVmZmVyU2l6ZSA9IENoZWNr
ZWRTaXplKHNpemVvZihDRlR5cGVSZWYpKSAqIHN0YXRpY19jYXN0PHNpemVfdD4oYXJjaGl2ZUxp
c3RBcnJheUNvdW50KTsKKyAgICBpZiAoYnVmZmVyU2l6ZS5oYXNPdmVyZmxvd2VkKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZXh0cmFjdERpY3Rpb25hcnlWYWx1ZShyZXBy
ZXNlbnRhdGlvbiwgQ0ZTVFIoInByb3RvY29sUHJvcGVydGllcyIpLCBwcm90b2NvbFByb3BlcnRp
ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFleHRyYWN0RGljdGlvbmFyeVZh
bHVlKHJlcHJlc2VudGF0aW9uLCBDRlNUUigiZXhwZWN0ZWRDb250ZW50TGVuZ3RoIiksIGV4cGVj
dGVkQ29udGVudExlbmd0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWV4dHJh
Y3REaWN0aW9uYXJ5VmFsdWUocmVwcmVzZW50YXRpb24sIENGU1RSKCJtaW1lVHlwZSIpLCBtaW1l
VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICpvYmplY3RDb3VudCA9IGFyY2hp
dmVMaXN0QXJyYXlDb3VudDsKKyAgICAqb2JqZWN0cyA9IHN0YXRpY19jYXN0PENGVHlwZVJlZio+
KGZhc3RNYWxsb2MoYnVmZmVyU2l6ZS51bnNhZmVHZXQoKSkpOworCisgICAgQ0ZBcnJheUdldFZh
bHVlcyhhcmNoaXZlTGlzdEFycmF5LCBDRlJhbmdlTWFrZSgwLCAqb2JqZWN0Q291bnQpLCAqb2Jq
ZWN0cyk7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgKm9iamVjdENvdW50OyArK2kpIHsK
KyAgICAgICAgaWYgKCgqb2JqZWN0cylbaV0gPT0gdG9rZW5OdWxsKQorICAgICAgICAgICAgKCpv
YmplY3RzKVtpXSA9IG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0
YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjcmVhdGVTZXJpYWxpemFibGVSZXByZXNl
bnRhdGlvbihDRlVSTFJlcXVlc3RSZWYgY2ZSZXF1ZXN0LCBDRlR5cGVSZWYgdG9rZW5OdWxsKQor
eworICAgIENGSW5kZXggdmVyc2lvbjsKKyAgICBDRlR5cGVSZWYqIG9iamVjdHM7CisgICAgQ0ZJ
bmRleCBvYmplY3RDb3VudDsKKyAgICBDRkRpY3Rpb25hcnlSZWYgcHJvdG9jb2xQcm9wZXJ0aWVz
OworCisgICAgLy8gRklYTUUgKDEyODg5NTE4KTogRG8gbm90IHNlcmlhbGl6ZSBIVFRQIG1lc3Nh
Z2UgYm9keS4KKyAgICAvLyAxLiBJdCBjYW4gYmUgbGFyZ2UgYW5kIHRodXMgY29zdGx5IHRvIHNl
bmQgYWNyb3NzLgorICAgIC8vIDIuIEl0IGlzIG1pc2xlYWRpbmcgdG8gcHJvdmlkZSBhIGJvZHkg
d2l0aCBzb21lIHJlcXVlc3RzLCB3aGlsZSBvdGhlcnMgdXNlIGJvZHkgc3RyZWFtcywgd2hpY2gg
Y2Fubm90IGJlIHNlcmlhbGl6ZWQgYXQgYWxsLgorCisgICAgX0NGVVJMUmVxdWVzdENyZWF0ZUFy
Y2hpdmVMaXN0KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNmUmVxdWVzdCwgJnZlcnNpb24sICZvYmpl
Y3RzLCAmb2JqZWN0Q291bnQsICZwcm90b2NvbFByb3BlcnRpZXMpOworCisgICAgLy8gVGhpcyB3
aWxsIGRlYWxsb2NhdGUgdGhlIHBhc3NlZCBpbiBhcmd1bWVudHMuCisgICAgcmV0dXJuIGNyZWF0
ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKHZlcnNpb24sIG9iamVjdHMsIG9iamVjdENvdW50
LCBwcm90b2NvbFByb3BlcnRpZXMsIG51bGxwdHIsIG51bGxwdHIsIHRva2VuTnVsbCk7Cit9CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q0ZVUkxSZXF1ZXN0UmVmPiBjcmVhdGVDRlVSTFJlcXVlc3RGcm9t
U2VyaWFsaXphYmxlUmVwcmVzZW50YXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIHJlcHJlc2VudGF0aW9u
LCBDRlR5cGVSZWYgdG9rZW5OdWxsKQoreworICAgIENGSW5kZXggdmVyc2lvbjsKKyAgICBDRlR5
cGVSZWYqIG9iamVjdHM7CisgICAgQ0ZJbmRleCBvYmplY3RDb3VudDsKKyAgICBDRkRpY3Rpb25h
cnlSZWYgcHJvdG9jb2xQcm9wZXJ0aWVzOworCisgICAgaWYgKCFjcmVhdGVBcmNoaXZlTGlzdChy
ZXByZXNlbnRhdGlvbiwgdG9rZW5OdWxsLCAmdmVyc2lvbiwgJm9iamVjdHMsICZvYmplY3RDb3Vu
dCwgJnByb3RvY29sUHJvcGVydGllcywgbnVsbHB0ciwgbnVsbHB0cikpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgYXV0byBjZlJlcXVlc3QgPSBhZG9wdENGKF9DRlVSTFJlcXVlc3RD
cmVhdGVGcm9tQXJjaGl2ZUxpc3Qoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdmVyc2lvbiwgb2JqZWN0
cywgb2JqZWN0Q291bnQsIHByb3RvY29sUHJvcGVydGllcykpOworICAgIGZhc3RGcmVlKG9iamVj
dHMpOworICAgIHJldHVybiBXVEZNb3ZlKGNmUmVxdWVzdCk7Cit9CisKK3N0YXRpYyBSZXRhaW5Q
dHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjcmVhdGVTZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbihOU1VS
TFJlcXVlc3QgKnJlcXVlc3QsIENGVHlwZVJlZiB0b2tlbk51bGwpCit7CisgICAgcmV0dXJuIGNy
ZWF0ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKFtyZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0
b2tlbk51bGwpOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gY3JlYXRlTlNV
UkxSZXF1ZXN0RnJvbVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKENGRGljdGlvbmFyeVJlZiBy
ZXByZXNlbnRhdGlvbiwgQ0ZUeXBlUmVmIHRva2VuTnVsbCkKK3sKKyAgICBhdXRvIGNmUmVxdWVz
dCA9IGNyZWF0ZUNGVVJMUmVxdWVzdEZyb21TZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbihyZXBy
ZXNlbnRhdGlvbiwgdG9rZW5OdWxsKTsKKyAgICBpZiAoIWNmUmVxdWVzdCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgCisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU1VSTFJlcXVlc3QgYWxs
b2NdIF9pbml0V2l0aENGVVJMUmVxdWVzdDpjZlJlcXVlc3QuZ2V0KCldKTsKK30KKwordm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCkKK3sKKyAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiByZXF1ZXN0VG9TZXJp
YWxpemUgPSByZXNvdXJjZVJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBk
YXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KTsKKworICAgIGJvb2wgcmVxdWVzdElzUHJl
c2VudCA9IHJlcXVlc3RUb1NlcmlhbGl6ZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVlc3RJc1ByZXNl
bnQ7CisKKyAgICBpZiAoIXJlcXVlc3RJc1ByZXNlbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFdlIGRvbid0IHNlbmQgSFRUUCBib2R5IG92ZXIgSVBDIGZvciBiZXR0ZXIgcGVyZm9ybWFu
Y2UuCisgICAgLy8gQWxzbywgaXQncyBub3QgYWx3YXlzIHBvc3NpYmxlIHRvIGRvLCBhcyBzdHJl
YW1zIGNhbiBvbmx5IGJlIGNyZWF0ZWQgaW4gcHJvY2VzcyB0aGF0IGRvZXMgbmV0d29ya2luZy4K
KyAgICBpZiAoW3JlcXVlc3RUb1NlcmlhbGl6ZSBIVFRQQm9keV0gfHwgW3JlcXVlc3RUb1Nlcmlh
bGl6ZSBIVFRQQm9keVN0cmVhbV0pIHsKKyAgICAgICAgcmVxdWVzdFRvU2VyaWFsaXplID0gYWRv
cHROUyhbcmVxdWVzdFRvU2VyaWFsaXplIG11dGFibGVDb3B5XSk7CisgICAgICAgIFsoTlNNdXRh
YmxlVVJMUmVxdWVzdCAqKXJlcXVlc3RUb1NlcmlhbGl6ZSBzZXRIVFRQQm9keTpuaWxdOworICAg
ICAgICBbKE5TTXV0YWJsZVVSTFJlcXVlc3QgKilyZXF1ZXN0VG9TZXJpYWxpemUgc2V0SFRUUEJv
ZHlTdHJlYW06bmlsXTsKKyAgICB9CisKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBjcmVhdGVTZXJp
YWxpemFibGVSZXByZXNlbnRhdGlvbihyZXF1ZXN0VG9TZXJpYWxpemUuZ2V0KCksIElQQzo6dG9r
ZW5OdWxscHRyVHlwZVJlZigpKTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkaWN0aW9uYXJ5
LmdldCgpKTsKKworICAgIFdFQkNPUkVfQVJHVU1FTlRDT0RFUlNfTUFDX0VOQ09ERV9BRERJVElP
TlMKKworICAgIC8vIFRoZSBmYWxsYmFjayBhcnJheSBpcyBwYXJ0IG9mIE5TVVJMUmVxdWVzdCwg
YnV0IGl0IGlzIG5vdCBlbmNvZGVkIGJ5IFdLTlNVUkxSZXF1ZXN0Q3JlYXRlU2VyaWFsaXphYmxl
UmVwcmVzZW50YXRpb24uCisgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVlc3QucmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoKTsKKyAgICBlbmNvZGVyIDw8
IHJlc291cmNlUmVxdWVzdC5yZXF1ZXN0ZXIoKTsKKyAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVx
dWVzdC5jYWNoZVBvbGljeSgpOworICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LmlzQXBw
Qm91bmQoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK3sKKyAgICBib29sIHJlcXVlc3RJc1ByZXNlbnQ7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXF1ZXN0SXNQcmVzZW50KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFyZXF1ZXN0SXNQcmVzZW50KSB7CisgICAgICAgIHJlc291
cmNlUmVxdWVzdCA9IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCgpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBkaWN0aW9uYXJ5
OworICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGljdGlvbmFyeSkgfHwgIWRpY3Rpb25h
cnkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbnNVUkxSZXF1ZXN0ID0gY3Jl
YXRlTlNVUkxSZXF1ZXN0RnJvbVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKGRpY3Rpb25hcnku
Z2V0KCksIElQQzo6dG9rZW5OdWxscHRyVHlwZVJlZigpKTsKKyAgICBpZiAoIW5zVVJMUmVxdWVz
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgV0VCQ09SRV9BUkdVTUVOVENPREVSU19N
QUNfREVDT0RFX0FERElUSU9OUworCisgICAgcmVzb3VyY2VSZXF1ZXN0ID0gV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0KG5zVVJMUmVxdWVzdC5nZXQoKSk7CisgICAgCisgICAgVmVjdG9yPFN0cmlu
Zz4gcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXk7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFs
bGJhY2tBcnJheSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc291cmNlUmVxdWVz
dC5zZXRSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheSgKKyAg
ICAgICAgcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkuc2l6
ZSgpID4gMCA/IHJlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5
WzBdIDogU3RyaW5nKCksCisgICAgICAgIHJlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uRW5jb2Rp
bmdGYWxsYmFja0FycmF5LnNpemUoKSA+IDEgPyByZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVu
Y29kaW5nRmFsbGJhY2tBcnJheVsxXSA6IFN0cmluZygpLAorICAgICAgICByZXNwb25zZUNvbnRl
bnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheS5zaXplKCkgPiAyID8gcmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXlbMl0gOiBTdHJpbmcoKQorICAg
ICk7CisKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3RlciByZXF1ZXN0ZXI7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXF1ZXN0ZXIpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFJlcXVlc3RlcihyZXF1ZXN0ZXIpOworCisgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3k7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShjYWNoZVBvbGljeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koY2FjaGVQb2xpY3kpOworCisgICAgYm9v
bCBpc0FwcEJvdW5kOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNBcHBCb3VuZCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBCb3VuZChpc0Fw
cEJvdW5kKTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIGVuY29kZXIg
PDwgY2VydGlmaWNhdGVJbmZvLnR5cGUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYmNlM2I4ODllOGEyYzczM2M0OTQyYTVjZjhlZmY5OWY5
OWU1ZjkxLi4wNmU4NTQ2OWNkM2FkOTk1MWQ2MDYwYzk1ZTJlYTA1ODQ2MmE2NGEwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMDItMjUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjczNTAzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDQyCisKKyAgICAgICAgQ2F1c2Vk
IGEgYmxvYiBsb2FkaW5nIGZhaWx1cmUKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisK
KyAgICAgICAgIlNlcmlhbGl6ZSBOU1VSTFJlcXVlc3QgKHJhdGhlciB0aGFuIENGVVJMUmVxdWVz
dCkgaW4gSVBDIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyMTQ1CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzM1
MDMKKwogMjAyMS0wMi0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIE1ha2UgaW50ZXJuYWwgQ29udGVudEZpbHRlcmluZyB0ZXN0cyBub3Qg
dGltZSBvdXQgYWZ0ZXIgcjI3MjI5MwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvTWlu
aUJyb3dzZXIueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvTWluaUJyb3dzZXIueGNz
Y2hlbWUgYi9Ub29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2oveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9NaW5pQnJvd3Nlci54Y3NjaGVtZQppbmRleCA2Y2MzMjFjODM5NTkyNGVj
M2UzYWM5ZTE4MDNiYzYwOGViMmVkZmU0Li4wM2M1YjIxYThlMGNiZWUzNTMyMTRhYjMzMWU0N2E4
NDRlNWQ3YjlkIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29k
ZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9NaW5pQnJvd3Nlci54Y3NjaGVtZQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2No
ZW1lcy9NaW5pQnJvd3Nlci54Y3NjaGVtZQpAQCAtMzQsOCArMzQsNiBAQAogICAgICAgYnVpbGRD
b25maWd1cmF0aW9uID0gIkRlYnVnIgogICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCiAgICAgICBzZWxlY3Rl
ZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIu
TExEQiIKLSAgICAgIGVuYWJsZUFkZHJlc3NTYW5pdGl6ZXIgPSAiWUVTIgotICAgICAgZW5hYmxl
QVNhblN0YWNrVXNlQWZ0ZXJSZXR1cm4gPSAiWUVTIgogICAgICAgbGF1bmNoU3R5bGUgPSAiMCIK
ICAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCiAgICAgICBpZ25vcmVzUGVy
c2lzdGVudFN0YXRlT25MYXVuY2ggPSAiTk8iCkBAIC01MiwxOCArNTAsNiBAQAogICAgICAgICAg
ICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6TWluaUJyb3dzZXIueGNvZGVwcm9q
Ij4KICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgogICAgICAgPC9CdWlsZGFibGVQcm9k
dWN0UnVubmFibGU+Ci0gICAgICA8QWRkaXRpb25hbE9wdGlvbnM+Ci0gICAgICAgICA8QWRkaXRp
b25hbE9wdGlvbgotICAgICAgICAgICAga2V5ID0gIk5TWm9tYmllRW5hYmxlZCIKLSAgICAgICAg
ICAgIHZhbHVlID0gIllFUyIKLSAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgotICAgICAg
ICAgPC9BZGRpdGlvbmFsT3B0aW9uPgotICAgICAgICAgPEFkZGl0aW9uYWxPcHRpb24KLSAgICAg
ICAgICAgIGtleSA9ICJNYWxsb2NTY3JpYmJsZSIKLSAgICAgICAgICAgIHZhbHVlID0gIiIKLSAg
ICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgotICAgICAgICAgPC9BZGRpdGlvbmFsT3B0aW9u
PgotICAgICAgPC9BZGRpdGlvbmFsT3B0aW9ucz4KICAgIDwvTGF1bmNoQWN0aW9uPgogICAgPFBy
b2ZpbGVBY3Rpb24KICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1Rlc3RXZWJLaXRBUEkueGNzY2hlbWUgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvVGVzdFdl
YktpdEFQSS54Y3NjaGVtZQppbmRleCA0NmY5MTRiOTY3ZTA0OTc3NjdmYjkyMTRmMmJhMmVmYzE4
MzdhMWY2Li41ZjVlYzJlNGFlYzM5ZWRjMzlmYzdmODVjN2Q5NjdlNWM0OTQ2OTRlIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hhcmVk
ZGF0YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVtZQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvVGVz
dFdlYktpdEFQSS54Y3NjaGVtZQpAQCAtMzQsNyArMzQsNiBAQAogICAgICAgYnVpbGRDb25maWd1
cmF0aW9uID0gIkRlYnVnIgogICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNv
ZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCiAgICAgICBzZWxlY3RlZExhdW5j
aGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIK
LSAgICAgIGVuYWJsZUFkZHJlc3NTYW5pdGl6ZXIgPSAiWUVTIgogICAgICAgbGF1bmNoU3R5bGUg
PSAiMCIKICAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCiAgICAgICBpZ25v
cmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2ggPSAiTk8iCkBAIC01MSwxMiArNTAsNiBAQAogICAg
ICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VGVzdFdlYktpdEFQSS54
Y29kZXByb2oiPgogICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CiAgICAgICA8L0J1aWxk
YWJsZVByb2R1Y3RSdW5uYWJsZT4KLSAgICAgIDxDb21tYW5kTGluZUFyZ3VtZW50cz4KLSAgICAg
ICAgIDxDb21tYW5kTGluZUFyZ3VtZW50Ci0gICAgICAgICAgICBhcmd1bWVudCA9ICItLWd0ZXN0
X2ZpbHRlcj1XS1dlYlZpZXcuTG9hZFNpbXVsYXRlZFJlcXVlc3RVc2luZ0Jhc2VVUkxSZXNwb25z
ZUhUTUxTdHJpbmciCi0gICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4KLSAgICAgICAgIDwv
Q29tbWFuZExpbmVBcmd1bWVudD4KLSAgICAgIDwvQ29tbWFuZExpbmVBcmd1bWVudHM+CiAgICA8
L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCiAgICAgICBidWlsZENvbmZpZ3VyYXRp
b24gPSAiUmVsZWFzZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3TG9hZEFQSXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1tCmluZGV4IDBjYzdhMjY0YWFlZGNkNTBi
NzZhMDI1NTFhNDkxZGVmOWU4ZGFiNDguLmJlZDUwMGVhMzM5NDVhODFlNjhkODg4MzdmYTkwYWY3
Y2U1NzIwOGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tXZWJWaWV3TG9hZEFQSXMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbQpAQCAtMTMyLDU2ICsxMzIsMyBAQCBURVNU
KFdLV2ViVmlldywgTG9hZFNpbXVsYXRlZFJlcXVlc3RVcGRhdGVzQmFja0ZvcndhcmRMaXN0KQog
ICAgIEVYUEVDVF9UUlVFKCFsaXN0LmZvcndhcmRJdGVtKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEo
ZXhhbXBsZVVSTFN0cmluZywgW2xpc3QuYmFja0l0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CiB9
Ci0KLVRFU1QoV0tXZWJWaWV3LCBMb2FkQWNjZW50ZWRGaWxlUmVxdWVzdCkKLXsKLSAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Ci0KLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXRO
YXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotCi0gICAgY29uc3QgVUludDggYnl0
ZXNbNl0gPSB7ICdBJywgMHhDMywgMHhBNywgMHhDMywgMHhBMywgJ28nIH07Ci0gICAgYXV0byBm
aWxlTmFtZSA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhCeXRlczpieXRlcyBs
ZW5ndGg6NiBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOwotCi0gICAgLy8gVGhpcyBh
dm9pZHMgaGF2aW5nIHRvIGFkZCB1bmljb2RlIGZpbGVuYW1lcyB0byBnaXQuCi0gICAgTlNVUkwg
Km9yaWdpbmFsRmlsZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJz
aW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwotICAgIEVYUEVDVF9OT1RfTlVMTChvcmlnaW5hbEZpbGUpOwotCi0gICAg
TlNTdHJpbmcgKnRlc3REaXJlY3RvcnlTdHJpbmcgPSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6W1tOU1VVSUQgVVVJRF0gVVVJRFN0cmluZ11d
OwotICAgIE5TVVJMICp0ZXN0RGlyZWN0b3J5ID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDogdGVz
dERpcmVjdG9yeVN0cmluZ107Ci0KLSAgICBOU1N0cmluZyAqdGVzdEZpbGVTdHJpbmcgPSBbW3Rl
c3REaXJlY3RvcnlTdHJpbmcgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVOYW1l
LmdldCgpXSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhFeHRlbnNpb246QCJodG1sIl07Ci0gICAgTlNV
UkwgKnRlc3RGaWxlID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXN0RmlsZVN0cmluZ107Ci0K
LSAgICBhdXRvIGRlZmF1bHRNYW5hZ2VyID0gW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
OwotICAgIFtkZWZhdWx0TWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVzdEZpbGUgZXJyb3I6bmls
XTsKLSAgICBbZGVmYXVsdE1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJMOnRlc3REaXJlY3RvcnkgZXJy
b3I6bmlsXTsKLQotICAgIFtkZWZhdWx0TWFuYWdlciBjcmVhdGVEaXJlY3RvcnlBdFVSTDp0ZXN0
RGlyZWN0b3J5IHdpdGhJbnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwg
ZXJyb3I6bmlsXTsKLQotICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIFtkZWZhdWx0TWFu
YWdlciBjb3B5SXRlbUF0VVJMOm9yaWdpbmFsRmlsZSB0b1VSTDp0ZXN0RmlsZSBlcnJvcjomZXJy
b3JdOwotICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKLSAgICAKLSAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RGaWxlXTsKLSAgICBbd2Vi
VmlldyBsb2FkRmlsZVJlcXVlc3Q6cmVxdWVzdCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDp0ZXN0
RmlsZS5VUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwotICAgIFtkZWxlZ2F0ZSB3YWl0
Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKHdlYlZpZXcuZ2V0
KCkuX3Jlc291cmNlRGlyZWN0b3J5VVJMLnBhdGgsIHRlc3RGaWxlLlVSTEJ5RGVsZXRpbmdMYXN0
UGF0aENvbXBvbmVudC5wYXRoKTsKLQotICAgIFtkZWZhdWx0TWFuYWdlciByZW1vdmVJdGVtQXRV
Ukw6dGVzdEZpbGUgZXJyb3I6bmlsXTsKLSAgICBbZGVmYXVsdE1hbmFnZXIgcmVtb3ZlSXRlbUF0
VVJMOnRlc3REaXJlY3RvcnkgZXJyb3I6bmlsXTsKLX0KLQotVEVTVChXS1dlYlZpZXcsIExvYWRT
aW11bGF0ZWRSZXF1ZXN0VXNpbmdCYXNlVVJMUmVzcG9uc2VIVE1MU3RyaW5nKQotewotICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKLQotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwotICAgIFt3ZWJWaWV3IHNl
dE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07Ci0KLSAgICBhdXRvIHRlc3RVUkwg
PSBhZG9wdE5TKFtbTlNVUkwgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAic3ViZG9tYWluIiByZWxh
dGl2ZVRvVVJMOmV4YW1wbGVVUkxdKTsKLSAgICBOU1VSTFJlcXVlc3QgKmxvYWRSZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXTsKLQotICAgIFt3ZWJW
aWV3IGxvYWRTaW11bGF0ZWRSZXF1ZXN0OmxvYWRSZXF1ZXN0IHdpdGhSZXNwb25zZUhUTUxTdHJp
bmc6aHRtbFN0cmluZ107Ci0gICAgW2RlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9u
XTsKLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>