<?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>231502</bug_id>
          
          <creation_ts>2021-10-11 02:07:37 -0700</creation_ts>
          <short_desc>[LFC][Integration] paintFillLayerExtended should use inline iterator</short_desc>
          <delta_ts>2021-10-11 08:13:22 -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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</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>1802544</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-11 02:07:37 -0700</bug_when>
    <thetext>To allow LFC painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802549</commentid>
    <comment_count>1</comment_count>
      <attachid>440765</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-11 02:11:59 -0700</bug_when>
    <thetext>Created attachment 440765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802577</commentid>
    <comment_count>2</comment_count>
      <attachid>440774</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-11 04:55:21 -0700</bug_when>
    <thetext>Created attachment 440774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802621</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 08:12:34 -0700</bug_when>
    <thetext>Committed r283893 (242770@main): &lt;https://commits.webkit.org/242770@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440774.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802622</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-11 08:13:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/84099605&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440765</attachid>
            <date>2021-10-11 02:11:59 -0700</date>
            <delta_ts>2021-10-11 04:55:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231502-20211011121157.patch</filename>
            <type>text/plain</type>
            <size>27977</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxZTA3YTU5MTdiNGYy
NjhkYTA4MzA0ZTIzMWM5NjEyODU5ODM4MC4uNDZlYzFmNzYxZTE1MGFhNTBiZTA1ZGMwZjI0OTZi
ZDY2Y2M0OTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEwLTExICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCBzaG91bGQgdXNlIGlubGluZSBpdGVyYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlcGFyZSBmb3Ig
TEZDIGlubGluZSBib3ggcGFpbnRpbmcuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lQm94
UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3hQYWludGVyOjpwYWludERl
Y29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveFBhaW50ZXI6OnBhaW50Rmls
bExheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5SW5saW5lRmxvd0JveDo6Ym94U2hhZG93Q2FuQmVBcHBsaWVkVG9CYWNrZ3JvdW5kIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6cGFpbnRCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFp
bnRGaWxsTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3Vu
ZFJvdW5kZWRSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE1hc2tGb3JU
ZXh0RmlsbEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisKKyAgICAgICAgQ29tcHV0ZSB3aGV0aGVyIHRvIHBhaW50
IHRoZSBsZWZ0IGFuZCByaWdodCBib3JkZXIgZHVyaW5nIHBhaW50IHRpbWUgaW5zdGVhZCBvZiBy
ZWxheWluZyBvbgorICAgICAgICBsYXlvdXQgdGltZSBsZWdhY3kgYml0cy4KKworICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRv
QmFja2dyb3VuZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6
cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmJveFNoYWRvd1Nob3Vs
ZEJlQXBwbGllZFRvQmFja2dyb3VuZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5kYXJ5IG5ldXRy
YWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUJveFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveFBhaW50
ZXIuY3BwCmluZGV4IDUwNWViOTIzM2JlZWFkZDMzMjdiOTg5NTE3MjJhNmUxZGNkNzQ1YjcuLmM1
ZTM2N2I2NmVmMDg0ZWU1Y2YyNGE3ZDhmZGJjMmEzMzJmZTZhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3hQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5jcHAKQEAgLTIxOCw3ICsyMTgsNyBAQCB2
b2lkIElubGluZUJveFBhaW50ZXI6OnBhaW50RGVjb3JhdGlvbnMoKQogICAgIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKICAgICBMYXlvdXRSZWN0IHBh
aW50UmVjdCA9IExheW91dFJlY3QoYWRqdXN0ZWRQYWludG9mZnNldCwgZnJhbWVSZWN0LnNpemUo
KSk7CiAgICAgLy8gU2hhZG93IGNvbWVzIGZpcnN0IGFuZCBpcyBiZWhpbmQgdGhlIGJhY2tncm91
bmQgYW5kIGJvcmRlci4KLSAgICBpZiAoIXJlbmRlcmVyKCkuYm94U2hhZG93U2hvdWxkQmVBcHBs
aWVkVG9CYWNrZ3JvdW5kKGFkanVzdGVkUGFpbnRvZmZzZXQsIEJhY2tncm91bmRCbGVlZE5vbmUs
IG1faW5saW5lQm94LmxlZ2FjeUlubGluZUJveCgpKSkKKyAgICBpZiAoIXJlbmRlcmVyKCkuYm94
U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGFkanVzdGVkUGFpbnRvZmZzZXQsIEJh
Y2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94KSkKICAgICAgICAgcGFpbnRCb3hTaGFkb3co
U2hhZG93U3R5bGU6Ok5vcm1hbCwgcGFpbnRSZWN0KTsKIAogICAgIGF1dG8gY29sb3IgPSBzdHls
ZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwpAQCAt
MjkwLDcgKzI5MCw3IEBAIHZvaWQgSW5saW5lQm94UGFpbnRlcjo6cGFpbnRGaWxsTGF5ZXIoY29u
c3QgQ29sb3ImIGNvbG9yLCBjb25zdCBGaWxsTGF5ZXImIGZpbGxMCiAgICAgYm9vbCBoYXNTaW5n
bGVMaW5lID0gIW1faW5saW5lQm94LnByZXZpb3VzSW5saW5lQm94KCkgJiYgIW1faW5saW5lQm94
Lm5leHRJbmxpbmVCb3goKTsKIAogICAgIGlmICghaGFzRmlsbEltYWdlT3JCb3JkZXJSYWRpb3Vz
IHx8IGhhc1NpbmdsZUxpbmUgfHwgbV9pc1Jvb3RJbmxpbmVCb3gpIHsKLSAgICAgICAgcmVuZGVy
ZXIoKS5wYWludEZpbGxMYXllckV4dGVuZGVkKG1fcGFpbnRJbmZvLCBjb2xvciwgZmlsbExheWVy
LCByZWN0LCBCYWNrZ3JvdW5kQmxlZWROb25lLCBtX2lubGluZUJveC5sZWdhY3lJbmxpbmVCb3go
KSwgcmVjdC5zaXplKCksIG9wKTsKKyAgICAgICAgcmVuZGVyZXIoKS5wYWludEZpbGxMYXllckV4
dGVuZGVkKG1fcGFpbnRJbmZvLCBjb2xvciwgZmlsbExheWVyLCByZWN0LCBCYWNrZ3JvdW5kQmxl
ZWROb25lLCBtX2lubGluZUJveCwgcmVjdC5zaXplKCksIG9wKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgSW5saW5lQm94UGFpbnRlcjo6cGFpbnRG
aWxsTGF5ZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBGaWxsTGF5ZXImIGZpbGxMCiAgICAg
aWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hEZWNvcmF0
aW9uQnJlYWs6OkNsb25lKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihtX3BhaW50SW5mby5jb250ZXh0KCkpOwogICAgICAgICBtX3BhaW50SW5mby5jb250
ZXh0KCkuY2xpcCh7IHJlY3QueCgpLCByZWN0LnkoKSwgTGF5b3V0VW5pdChtX2lubGluZUJveC5y
ZWN0KCkud2lkdGgoKSksIExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdodCgpKSB9
KTsKLSAgICAgICAgcmVuZGVyZXIoKS5wYWludEZpbGxMYXllckV4dGVuZGVkKG1fcGFpbnRJbmZv
LCBjb2xvciwgZmlsbExheWVyLCByZWN0LCBCYWNrZ3JvdW5kQmxlZWROb25lLCBtX2lubGluZUJv
eC5sZWdhY3lJbmxpbmVCb3goKSwgcmVjdC5zaXplKCksIG9wKTsKKyAgICAgICAgcmVuZGVyZXIo
KS5wYWludEZpbGxMYXllckV4dGVuZGVkKG1fcGFpbnRJbmZvLCBjb2xvciwgZmlsbExheWVyLCBy
ZWN0LCBCYWNrZ3JvdW5kQmxlZWROb25lLCBtX2lubGluZUJveCwgcmVjdC5zaXplKCksIG9wKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQg
SW5saW5lQm94UGFpbnRlcjo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBjb25z
dCBGaWxsTGF5ZXImIGZpbGxMCiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIobV9wYWludEluZm8uY29udGV4dCgpKTsKICAgICBtX3BhaW50SW5mby5jb250ZXh0KCku
Y2xpcCh7IHJlY3QueCgpLCByZWN0LnkoKSwgTGF5b3V0VW5pdChtX2lubGluZUJveC5yZWN0KCku
d2lkdGgoKSksIExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdodCgpKSB9KTsKLSAg
ICByZW5kZXJlcigpLnBhaW50RmlsbExheWVyRXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBm
aWxsTGF5ZXIsIExheW91dFJlY3Qoc3RyaXBYLCBzdHJpcFksIHN0cmlwV2lkdGgsIHN0cmlwSGVp
Z2h0KSwgQmFja2dyb3VuZEJsZWVkTm9uZSwgbV9pbmxpbmVCb3gubGVnYWN5SW5saW5lQm94KCks
IHJlY3Quc2l6ZSgpLCBvcCk7CisgICAgcmVuZGVyZXIoKS5wYWludEZpbGxMYXllckV4dGVuZGVk
KG1fcGFpbnRJbmZvLCBjb2xvciwgZmlsbExheWVyLCBMYXlvdXRSZWN0KHN0cmlwWCwgc3RyaXBZ
LCBzdHJpcFdpZHRoLCBzdHJpcEhlaWdodCksIEJhY2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5l
Qm94LCByZWN0LnNpemUoKSwgb3ApOwogfQogCiB2b2lkIElubGluZUJveFBhaW50ZXI6OnBhaW50
Qm94U2hhZG93KFNoYWRvd1N0eWxlIHNoYWRvd1N0eWxlLCBjb25zdCBMYXlvdXRSZWN0JiBwYWlu
dFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmgKaW5kZXgg
NjcwYTNiYjM5Mzc2MDE1MGIyMmU5MGJiZmNlNTM1YWI3NTYxYjFkNi4uM2RhN2I1ZjgwNTQ0YjQw
ZmJmMGMyNGEwMWM3M2UzZjQ3MjllM2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUlubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lJbmxpbmVCb3guaApAQCAtMzEsNiArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgTGVnYWN5SW5saW5lRmxvd0JveDsKIGNsYXNz
IExlZ2FjeVJvb3RJbmxpbmVCb3g7CiAKIC8vIExlZ2FjeUlubGluZUJveCByZXByZXNlbnRzIGEg
cmVjdGFuZ2xlIHRoYXQgb2NjdXJzIG9uIGEgbGluZS4gSXQgY29ycmVzcG9uZHMgdG8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmNwcAppbmRleCA5
NTE0ZmQwNzEzYWJlMjJjOGM5YjgyMzdjNWRmY2M3NDFjNDQxN2FmLi41OTQ4NjdlNzE5NzBmNjg1
NGRhOTU3MTYxMWQxZTExZjJjODZlNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwCkBAIC0xMTM0LDE1ICsxMTM0LDYgQEAgdm9pZCBM
ZWdhY3lJbmxpbmVGbG93Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2YKICAgICB9CiB9CiAKLWJvb2wgTGVnYWN5SW5saW5lRmxvd0JveDo6
Ym94U2hhZG93Q2FuQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0IEZpbGxMYXllciYgbGFzdEJh
Y2tncm91bmRMYXllcikgY29uc3QKLXsKLSAgICAvLyBUaGUgY2hlY2tzIGhlcmUgbWF0Y2ggaG93
IHBhaW50RmlsbExheWVyKCkgZGVjaWRlcyB3aGV0aGVyIHRvIGNsaXAgKGlmIGl0IGRvZXMsIHRo
ZSBzaGFkb3cKLSAgICAvLyB3b3VsZCBiZSBjbGlwcGVkIG91dCwgc28gaXQgaGFzIHRvIGJlIGRy
YXduIHNlcGFyYXRlbHkpLgotICAgIFN0eWxlSW1hZ2UqIGltYWdlID0gbGFzdEJhY2tncm91bmRM
YXllci5pbWFnZSgpOwotICAgIGJvb2wgaGFzRmlsbEltYWdlID0gaW1hZ2UgJiYgaW1hZ2UtPmNh
blJlbmRlcigmcmVuZGVyZXIoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7
Ci0gICAgcmV0dXJuICghaGFzRmlsbEltYWdlICYmICFyZW5kZXJlcigpLnN0eWxlKCkuaGFzQm9y
ZGVyUmFkaXVzKCkpIHx8ICghcHJldkxpbmVCb3goKSAmJiAhbmV4dExpbmVCb3goKSkgfHwgIXBh
cmVudCgpOwotfQotCiBMZWdhY3lJbmxpbmVCb3gqIExlZ2FjeUlubGluZUZsb3dCb3g6OmZpcnN0
TGVhZkRlc2NlbmRhbnQoKSBjb25zdAogewogICAgIExlZ2FjeUlubGluZUJveCogbGVhZiA9IG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
Rmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3gu
aAppbmRleCBkZDg3MDg1NTVjYmVkYzUzNjdjNWI3M2ViNTE2MTc0Mzk3ODFkOTQ5Li40ZTMyMDg1
MDFlMDU1NTc0M2ZiMTFiOTZhZDdiOWRlYTM5ODI2M2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmgKQEAgLTExOCw4ICsxMTgsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91
dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlkZTsKICAgICBib29s
IG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQm
IGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJv
dHRvbSwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKLSAgICBib29sIGJveFNoYWRvd0NhbkJl
QXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBGaWxsTGF5ZXImKSBjb25zdDsKLQogICAgIC8vIGxv
Z2ljYWxMZWZ0ID0gbGVmdCBpbiBhIGhvcml6b250YWwgbGluZSBhbmQgdG9wIGluIGEgdmVydGlj
YWwgbGluZS4KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvcmRlclBhZGRpbmdMb2dpY2FsTGVmdCgp
IGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQobWFyZ2luTG9naWNhbExlZnQoKSArIGJvcmRlckxv
Z2ljYWxMZWZ0KCkgKyBwYWRkaW5nTG9naWNhbExlZnQoKSk7IH0KICAgICBMYXlvdXRVbml0IG1h
cmdpbkJvcmRlclBhZGRpbmdMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0
KG1hcmdpbkxvZ2ljYWxSaWdodCgpICsgYm9yZGVyTG9naWNhbFJpZ2h0KCkgKyBwYWRkaW5nTG9n
aWNhbFJpZ2h0KCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4
IDE1MTMyMTc0NWQwNTA4ZTYyNDJlZWVmYTAxMDZhNTEwNjFkOGM1OWQuLmRhMGJiNmQ3ZWI3ZDQ1
MGI5YjU2N2ZlNjVjNzYyOGIxYzlkZDFlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJl
c3VsdC5oIgorI2luY2x1ZGUgIklubGluZUl0ZXJhdG9ySW5saW5lQm94LmgiCiAjaW5jbHVkZSAi
SW5saW5lSXRlcmF0b3JMaW5lLmgiCiAjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCiAj
aW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgiCkBAIC0xNTI0LDcgKzE1MjUs
NyBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaQogCiAgICAgLy8gRklYTUU6IFNob3VsZCBldmVu
dHVhbGx5IGdpdmUgdGhlIHRoZW1lIGNvbnRyb2wgb3ZlciB3aGV0aGVyIHRoZSBib3ggc2hhZG93
IHNob3VsZCBwYWludCwgc2luY2UgY29udHJvbHMgY291bGQgaGF2ZQogICAgIC8vIGN1c3RvbSBz
aGFkb3dzIG9mIHRoZWlyIG93bi4KLSAgICBpZiAoIWJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRv
QmFja2dyb3VuZChwYWludFJlY3QubG9jYXRpb24oKSwgYmxlZWRBdm9pZGFuY2UpKQorICAgIGlm
ICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKHBhaW50UmVjdC5sb2NhdGlv
bigpLCBibGVlZEF2b2lkYW5jZSwgeyB9KSkKICAgICAgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRJ
bmZvLCBwYWludFJlY3QsIHN0eWxlKCksIFNoYWRvd1N0eWxlOjpOb3JtYWwpOwogCiAgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50SW5mby5jb250ZXh0KCksIGZh
bHNlKTsKQEAgLTE1OTAsNyArMTU5MSw3IEBAIHZvaWQgUmVuZGVyQm94OjpwYWludEJhY2tncm91
bmQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFJlY3QmIHBhCiAgICAg
aWYgKCFwYWludHNPd25CYWNrZ3JvdW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChi
YWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChwYWludFJlY3QubG9jYXRpb24oKSkgJiYgIWJv
eFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChwYWludFJlY3QubG9jYXRpb24oKSwg
YmxlZWRBdm9pZGFuY2UpKQorICAgIGlmIChiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChw
YWludFJlY3QubG9jYXRpb24oKSkgJiYgIWJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dy
b3VuZChwYWludFJlY3QubG9jYXRpb24oKSwgYmxlZWRBdm9pZGFuY2UsIHsgfSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGF1dG8gYmFja2dyb3VuZENvbG9yID0gc3R5bGUoKS52aXNpdGVkRGVw
ZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwpAQCAtMTg4Miw3ICsxODgz
LDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgQ29sb3ImIGNvbG9yLAogdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExh
eWVyKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBDb2xvciYgYywgY29uc3QgRmls
bExheWVyJiBmaWxsTGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAgICAgQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVu
ZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCwgQmFzZUJhY2tncm91bmRDb2xvclVzYWdlIGJh
c2VCZ0NvbG9yVXNhZ2UpCiB7Ci0gICAgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChwYWludEluZm8s
IGMsIGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIG51bGxwdHIsIExheW91dFNpemUo
KSwgb3AsIGJhY2tncm91bmRPYmplY3QsIGJhc2VCZ0NvbG9yVXNhZ2UpOworICAgIHBhaW50Rmls
bExheWVyRXh0ZW5kZWQocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXIsIHJlY3QsIGJsZWVkQXZvaWRh
bmNlLCB7IH0sIExheW91dFNpemUoKSwgb3AsIGJhY2tncm91bmRPYmplY3QsIGJhc2VCZ0NvbG9y
VXNhZ2UpOwogfQogCiBzdGF0aWMgU3R5bGVJbWFnZSogZmluZExheWVyVXNlZEltYWdlKFdyYXBw
ZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgRmlsbExheWVyJiBsYXllcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCAzYmU0YTNl
ODk0NjQzZDRhMGJjOGY2MzBjOWVmZjBkZmNmOTg4NmI0Li5jYTQzMGViMTQ4ODVkMDA1MmRlZWQ4
YzY0YzNmMzJiMGVmOTU3NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTYyMSwxMSArNjIxLDExIEBAIExheW91dFVuaXQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZyhjb25zdCBMZW5ndGgmIHBh
ZGRpbmcpIGNvbnN0CiAgICAgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChwYWRkaW5nLCB3
KTsKIH0KIAotUm91bmRlZFJlY3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmdldEJhY2tncm91bmRS
b3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBMZWdhY3lJbmxp
bmVGbG93Qm94KiBib3gsIExheW91dFVuaXQgaW5saW5lQm94V2lkdGgsIExheW91dFVuaXQgaW5s
aW5lQm94SGVpZ2h0LAorUm91bmRlZFJlY3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmdldEJhY2tn
cm91bmRSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBjb25zdCBJbmxp
bmVJdGVyYXRvcjo6SW5saW5lQm94SXRlcmF0b3ImIGJveCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hX
aWR0aCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCiAgICAgYm9vbCBpbmNsdWRlTG9naWNh
bExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIFJv
dW5kZWRSZWN0IGJvcmRlciA9IHN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZvcihib3JkZXJSZWN0
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7Ci0gICAg
aWYgKGJveCAmJiAoYm94LT5uZXh0TGluZUJveCgpIHx8IGJveC0+cHJldkxpbmVCb3goKSkpIHsK
KyAgICBpZiAoYm94ICYmIChib3gtPm5leHRJbmxpbmVCb3goKSB8fCBib3gtPnByZXZpb3VzSW5s
aW5lQm94KCkpKSB7CiAgICAgICAgIFJvdW5kZWRSZWN0IHNlZ21lbnRCb3JkZXIgPSBzdHlsZSgp
LmdldFJvdW5kZWRCb3JkZXJGb3IoTGF5b3V0UmVjdCgwX2x1LCAwX2x1LCBpbmxpbmVCb3hXaWR0
aCwgaW5saW5lQm94SGVpZ2h0KSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UpOwogICAgICAgICBib3JkZXIuc2V0UmFkaWkoc2VnbWVudEJvcmRlci5yYWRp
aSgpKTsKICAgICB9CkBAIC02ODIsNyArNjgyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6Ym9yZGVySW5uZXJSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb25zdAog
ICAgIHJldHVybiBzaHJpbmtSZWN0QnlPbmVEZXZpY2VQaXhlbChjb250ZXh0LCByZWN0LCBkb2N1
bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogfQogCi1Sb3VuZGVkUmVjdCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5j
ZShjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGJvcmRl
clJlY3QsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgY29uc3QgTGVn
YWN5SW5saW5lRmxvd0JveCogYm94LCBjb25zdCBMYXlvdXRTaXplJiBib3hTaXplLCBib29sIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0
CitSb3VuZGVkUmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0
QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBi
bGVlZEF2b2lkYW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJiBi
b3gsIGNvbnN0IExheW91dFNpemUmIGJveFNpemUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3QKIHsKICAgICBpZiAoYmxlZWRB
dm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZCkgewogICAgICAgICAv
LyBXZSBzaHJpbmsgdGhlIHJlY3RhbmdsZSBieSBvbmUgZGV2aWNlIHBpeGVsIG9uIGVhY2ggc2lk
ZSBiZWNhdXNlIHRoZSBibGVlZCBpcyBvbmUgcGl4ZWwgbWF4aW11bS4KQEAgLTcxMCw3ICs3MTAs
NyBAQCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2hvb3NlSW50
ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3NDbwogICAgIHJldHVybiB2aWV3KCkuaW1hZ2VRdWFs
aXR5Q29udHJvbGxlcigpLmNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQsIHRoaXMs
IGltYWdlLCBsYXllciwgc2l6ZSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50TWFza0ZvclRleHRGaWxsQm94KEltYWdlQnVmZmVyKiBtYXNrSW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgbWFza1JlY3QsIGNvbnN0IExlZ2FjeUlubGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5
b3V0UmVjdCYgc2Nyb2xsZWRQYWludFJlY3QpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpw
YWludE1hc2tGb3JUZXh0RmlsbEJveChJbWFnZUJ1ZmZlciogbWFza0ltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIG1hc2tSZWN0LCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94SXRlcmF0b3Im
IGJveCwgY29uc3QgTGF5b3V0UmVjdCYgc2Nyb2xsZWRQYWludFJlY3QpCiB7CiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBtYXNrSW1hZ2VDb250ZXh0ID0gbWFza0ltYWdlLT5jb250ZXh0KCk7CiAgICAg
bWFza0ltYWdlQ29udGV4dC50cmFuc2xhdGUoLW1hc2tSZWN0LmxvY2F0aW9uKCkpOwpAQCAtNzE5
LDggKzcxOSw5IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TWFza0ZvclRleHRG
aWxsQm94KEltYWdlQnVmZmVyKiBtYXNrSW1hZ2UsIGNvbnN0CiAgICAgLy8gTGVnYWN5SW5saW5l
VGV4dEJveGVzIHRoYXQgdGhleSBzaG91bGQganVzdCBhZGQgdGhlaXIgY29udGVudHMgdG8gdGhl
IGNsaXAuCiAgICAgUGFpbnRJbmZvIGluZm8obWFza0ltYWdlQ29udGV4dCwgTGF5b3V0UmVjdCB7
IG1hc2tSZWN0IH0sIFBhaW50UGhhc2U6OlRleHRDbGlwLCBQYWludEJlaGF2aW9yOjpGb3JjZUJs
YWNrVGV4dCk7CiAgICAgaWYgKGJveCkgewotICAgICAgICBjb25zdCBMZWdhY3lSb290SW5saW5l
Qm94JiByb290Qm94ID0gYm94LT5yb290KCk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8TGVnYWN5SW5s
aW5lRmxvd0JveCo+KGJveCktPnBhaW50KGluZm8sIExheW91dFBvaW50KHNjcm9sbGVkUGFpbnRS
ZWN0LngoKSAtIGJveC0+eCgpLCBzY3JvbGxlZFBhaW50UmVjdC55KCkgLSBib3gtPnkoKSksIHJv
b3RCb3gubGluZVRvcCgpLCByb290Qm94LmxpbmVCb3R0b20oKSk7CisgICAgICAgIGF1dG8qIGxl
Z2FjeUlubGluZUJveCA9IGNvbnN0X2Nhc3Q8TGVnYWN5SW5saW5lRmxvd0JveCo+KGJveC0+bGVn
YWN5SW5saW5lQm94KCkpOworICAgICAgICBjb25zdCBhdXRvJiByb290Qm94ID0gbGVnYWN5SW5s
aW5lQm94LT5yb290KCk7CisgICAgICAgIGxlZ2FjeUlubGluZUJveC0+cGFpbnQoaW5mbywgTGF5
b3V0UG9pbnQoc2Nyb2xsZWRQYWludFJlY3QueCgpIC0gbGVnYWN5SW5saW5lQm94LT54KCksIHNj
cm9sbGVkUGFpbnRSZWN0LnkoKSAtIGxlZ2FjeUlubGluZUJveC0+eSgpKSwgcm9vdEJveC5saW5l
VG9wKCksIHJvb3RCb3gubGluZUJvdHRvbSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBMYXlv
dXRTaXplIGxvY2FsT2Zmc2V0ID0gaXM8UmVuZGVyQm94PigqdGhpcykgPyBkb3duY2FzdDxSZW5k
ZXJCb3g+KCp0aGlzKS5sb2NhdGlvbk9mZnNldCgpIDogTGF5b3V0U2l6ZSgpOwogICAgICAgICBw
YWludChpbmZvLCBzY3JvbGxlZFBhaW50UmVjdC5sb2NhdGlvbigpIC0gbG9jYWxPZmZzZXQpOwpA
QCAtNzI4LDE1ICs3MjksMjcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNr
Rm9yVGV4dEZpbGxCb3goSW1hZ2VCdWZmZXIqIG1hc2tJbWFnZSwgY29uc3QKIH0KIAogdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBGaWxsTGF5ZXImIGJnTGF5
ZXIsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsCi0gICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
IGJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KiBib3gsIGNvbnN0IExh
eW91dFNpemUmIGJveFNpemUsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZW5kZXJFbGVtZW50KiBi
YWNrZ3JvdW5kT2JqZWN0LCBCYXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgYmFzZUJnQ29sb3JVc2Fn
ZSkKKyAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGNvbnN0IElu
bGluZUl0ZXJhdG9yOjpJbmxpbmVCb3hJdGVyYXRvciYgYm94LCBjb25zdCBMYXlvdXRTaXplJiBi
b3hTaXplLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9i
amVjdCwgQmFzZUJhY2tncm91bmRDb2xvclVzYWdlIGJhc2VCZ0NvbG9yVXNhZ2UpCiB7CiAgICAg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQoKTsKIAogICAgIGlm
ICgoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgJiYgIWNvbnRleHQuZGV0ZWN0aW5nQ29udGVu
dGZ1bFBhaW50KCkpIHx8IHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBi
b29sIGluY2x1ZGVMZWZ0RWRnZSA9IGJveCA/IGJveC0+aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgp
IDogdHJ1ZTsKLSAgICBib29sIGluY2x1ZGVSaWdodEVkZ2UgPSBib3ggPyBib3gtPmluY2x1ZGVM
b2dpY2FsUmlnaHRFZGdlKCkgOiB0cnVlOworICAgIGF1dG8gaW5jbHVkZUVkZ2VzID0gWyZdKCkg
LT4gc3RkOjpwYWlyPGJvb2wsIGJvb2w+IHsKKyAgICAgICAgaWYgKCFib3gpCisgICAgICAgICAg
ICByZXR1cm4geyB0cnVlLCB0cnVlIH07CisjaWYgRU5BQkxFKENTU19CT1hfREVDT1JBVElPTl9C
UkVBSykKKyAgICAgICAgaWYgKGJveC0+c3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBC
b3hEZWNvcmF0aW9uQnJlYWs6OkNsb25lKQorICAgICAgICAgICAgcmV0dXJuIHsgdHJ1ZSwgdHJ1
ZSB9OworI2VuZGlmCisgICAgICAgIGJvb2wgaXNMVFIgPSBib3gtPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKTsKKyAgICAgICAgYm9vbCBpc0ZpcnN0ID0gIWJveC0+cHJldmlvdXNJbmxpbmVCb3go
KSAmJiAhYm94LT5yZW5kZXJlcigpLmlzQ29udGludWF0aW9uKCk7CisgICAgICAgIGJvb2wgaXNM
YXN0ID0gIWJveC0+bmV4dElubGluZUJveCgpICYmICFib3gtPnJlbmRlcmVyKCkuY29udGludWF0
aW9uKCk7CisgICAgICAgIHJldHVybiB7IGlzTFRSID8gaXNGaXJzdCA6IGlzTGFzdCwgaXNMVFIg
PyBpc0xhc3QgOiBpc0ZpcnN0IH07CisgICAgfTsKKworICAgIGF1dG8gW2luY2x1ZGVMZWZ0RWRn
ZSwgaW5jbHVkZVJpZ2h0RWRnZV0gPSBpbmNsdWRlRWRnZXMoKTsKIAogICAgIGJvb2wgaGFzUm91
bmRlZEJvcmRlciA9IHN0eWxlKCkuaGFzQm9yZGVyUmFkaXVzKCkgJiYgKGluY2x1ZGVMZWZ0RWRn
ZSB8fCBpbmNsdWRlUmlnaHRFZGdlKTsKICAgICBib29sIGNsaXBwZWRXaXRoTG9jYWxTY3JvbGxp
bmcgPSBoYXNOb25WaXNpYmxlT3ZlcmZsb3coKSAmJiBiZ0xheWVyLmF0dGFjaG1lbnQoKSA9PSBG
aWxsQXR0YWNobWVudDo6TG9jYWxCYWNrZ3JvdW5kOwpAQCAtMjMyNiw3ICsyMzM5LDcgQEAgYm9v
bCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kKCkgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym94U2hh
ZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiwgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93
Qm94KiBpbmxpbmVGbG93Qm94KSBjb25zdAorYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym94
U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiwgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBjb25zdCBJbmxpbmVJdGVyYXRv
cjo6SW5saW5lQm94SXRlcmF0b3ImIGlubGluZUJveCkgY29uc3QKIHsKICAgICBpZiAoYmxlZWRB
dm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkTm9uZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMjM2NCw3ICsyMzc3LDIwIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJveFNoYWRv
d1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2luCiAgICAgaWYgKGxh
c3RCYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkgJiYgc3R5bGUoKS5oYXNCb3JkZXJSYWRpdXMoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGlubGluZUZsb3dCb3ggJiYgIWlubGlu
ZUZsb3dCb3gtPmJveFNoYWRvd0NhbkJlQXBwbGllZFRvQmFja2dyb3VuZCgqbGFzdEJhY2tncm91
bmRMYXllcikpCisgICAgYXV0byBhcHBseVRvSW5saW5lQm94ID0gWyZdIHsKKyAgICAgICAgLy8g
VGhlIGNoZWNrcyBoZXJlIG1hdGNoIGhvdyBwYWludEZpbGxMYXllcigpIGRlY2lkZXMgd2hldGhl
ciB0byBjbGlwIChpZiBpdCBkb2VzLCB0aGUgc2hhZG93CisgICAgICAgIC8vIHdvdWxkIGJlIGNs
aXBwZWQgb3V0LCBzbyBpdCBoYXMgdG8gYmUgZHJhd24gc2VwYXJhdGVseSkuCisgICAgICAgIGlm
IChpbmxpbmVCb3gtPmlzUm9vdElubGluZUJveCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGlmICghaW5saW5lQm94LT5wcmV2aW91c0lubGluZUJveCgpICYmICFpbmxpbmVC
b3gtPm5leHRJbmxpbmVCb3goKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBh
dXRvKiBpbWFnZSA9IGxhc3RCYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCk7CisgICAgICAgIGF1dG8m
IHJlbmRlcmVyID0gaW5saW5lQm94LT5yZW5kZXJlcigpOworICAgICAgICBib29sIGhhc0ZpbGxJ
bWFnZSA9IGltYWdlICYmIGltYWdlLT5jYW5SZW5kZXIoJnJlbmRlcmVyLCByZW5kZXJlci5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIHJldHVybiAhaGFzRmlsbEltYWdlICYmICFy
ZW5kZXJlci5zdHlsZSgpLmhhc0JvcmRlclJhZGl1cygpOworICAgIH07CisKKyAgICBpZiAoaW5s
aW5lQm94ICYmICFhcHBseVRvSW5saW5lQm94KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChoYXNOb25WaXNpYmxlT3ZlcmZsb3coKSAmJiBsYXN0QmFja2dyb3VuZExheWVyLT5h
dHRhY2htZW50KCkgPT0gRmlsbEF0dGFjaG1lbnQ6OkxvY2FsQmFja2dyb3VuZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggYjRjYzY3
MWY0N2ExNjFlMDAzNDVjOWIzYzQ4ZGQ3YjRmNjY2YzcyYy4uMDQzMDMxYzNlZmQ0NWVkODFhNWQ3
ZDk0Y2Q0YzFkNDM2ODAyNmVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTYwLDEwICs2MCwxMyBAQCBlbnVtIENvbnRlbnRDaGFu
Z2VUeXBlIHsKIAogY2xhc3MgQm9yZGVyRWRnZTsKIGNsYXNzIEltYWdlQnVmZmVyOwotY2xhc3Mg
TGVnYWN5SW5saW5lRmxvd0JveDsKIGNsYXNzIFJlbmRlclRleHRGcmFnbWVudDsKIGNsYXNzIFN0
aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIAorbmFtZXNwYWNlIElubGluZUl0ZXJh
dG9yIHsKK2NsYXNzIElubGluZUJveEl0ZXJhdG9yOworfTsKKwogZW51bSBjbGFzcyBCb3hTaWRl
RmxhZyA6IHVpbnQ4X3Q7CiB1c2luZyBCb3hTaWRlU2V0ID0gT3B0aW9uU2V0PEJveFNpZGVGbGFn
PjsKIHVzaW5nIEJvcmRlckVkZ2VzID0gUmVjdEVkZ2VzPEJvcmRlckVkZ2U+OwpAQCAtMjEwLDkg
KzIxMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50Qm9yZGVyKGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYsIEJhY2tncm91bmRCbGVlZEF2
b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAgICBib29s
IHBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTGF5b3V0UmVjdCYs
IGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgTmluZVBpZWNlSW1hZ2UmLCBDb21wb3NpdGVPcGVy
YXRvciA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKTsKICAgICB2b2lkIHBhaW50Qm94
U2hhZG93KGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIFNoYWRvd1N0eWxlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1ZSk7Ci0gICAgdm9pZCBwYWludEZpbGxM
YXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExh
eWVyJiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgY29uc3Qg
TGVnYWN5SW5saW5lRmxvd0JveCogID0gbnVsbHB0ciwgY29uc3QgTGF5b3V0U2l6ZSYgPSBMYXlv
dXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92
ZXIsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QgPSBudWxscHRyLCBCYXNlQmFja2dy
b3VuZENvbG9yVXNhZ2UgPSBCYXNlQmFja2dyb3VuZENvbG9yVXNlKTsKKyAgICB2b2lkIHBhaW50
RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBjb25zdCBG
aWxsTGF5ZXImLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBj
b25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94SXRlcmF0b3ImLCBjb25zdCBMYXlvdXRTaXpl
JiA9IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVPcGVyYXRvcjo6
U291cmNlT3ZlciwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCA9IG51bGxwdHIsIEJh
c2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2UpOwogCi0gICAg
dmlydHVhbCBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBM
YXlvdXRQb2ludCYgYWJzb2x1dGVQYWludFBvc3Rpb24sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSwgY29uc3QgTGVnYWN5SW5saW5lRmxvd0JveCogID0gbnVsbHB0cikgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlv
dXRQb2ludCYgYWJzb2x1dGVQYWludFBvc3Rpb24sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwg
Y29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJikgY29uc3Q7CiAKICAgICAv
LyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBi
YXNlbGluZSBwb3NpdGlvbi4KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKQEAgLTI1Niw3ICsyNTksNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCwgUmVuZGVyRWxlbWVudCog
PSBudWxscHRyKSBjb25zdDsKICAgICBib29sIGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2Uo
Y29uc3QgRmxvYXRTaXplJiBjb250ZXh0U2NhbGUpIGNvbnN0OwogICAgIGJvb2wgYm9yZGVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kKCkgY29uc3Q7Ci0gICAgUm91bmRlZFJlY3QgYmFja2dyb3VuZFJvdW5k
ZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb25zdCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJ
bmxpbmVGbG93Qm94KiAsIGNvbnN0IExheW91dFNpemUmLCBib29sIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0OworICAgIFJvdW5kZWRS
ZWN0IGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29uc3Qg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lk
YW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJiwgY29uc3QgTGF5
b3V0U2l6ZSYsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSkgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCBib3JkZXJJbm5lclJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJl
Y3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UpIGNvbnN0OwogCiAgICAgSW50ZXJwb2xhdGlv
blF1YWxpdHkgY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoR3JhcGhpY3NDb250ZXh0JiwgSW1h
Z2UmLCBjb25zdCB2b2lkKiwgY29uc3QgTGF5b3V0U2l6ZSYpOwpAQCAtMzA3LDcgKzMxMCw3IEBA
IHByaXZhdGU6CiAKICAgICBMYXlvdXRTaXplIGNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25zdCBG
aWxsTGF5ZXImLCBjb25zdCBMYXlvdXRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplKSBj
b25zdDsKIAotICAgIFJvdW5kZWRSZWN0IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChjb25zdCBM
YXlvdXRSZWN0JiwgY29uc3QgTGVnYWN5SW5saW5lRmxvd0JveCogLCBMYXlvdXRVbml0IGlubGlu
ZUJveFdpZHRoLCBMYXlvdXRVbml0IGlubGluZUJveEhlaWdodCwKKyAgICBSb3VuZGVkUmVjdCBn
ZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IElubGluZUl0
ZXJhdG9yOjpJbmxpbmVCb3hJdGVyYXRvciYsIExheW91dFVuaXQgaW5saW5lQm94V2lkdGgsIExh
eW91dFVuaXQgaW5saW5lQm94SGVpZ2h0LAogICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0OwogICAgIAogICAgIGJv
b2wgZml4ZWRCYWNrZ3JvdW5kUGFpbnRzSW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3Q7CkBAIC0z
MjYsNyArMzI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdCb3hTaWRlRnJvbVBhdGgoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFBhdGgmLCBjb25zdCBCb3Jk
ZXJFZGdlcyYsCiAgICAgICAgIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgZHJhd1RoaWNrbmVzcywg
Qm94U2lkZSwgY29uc3QgUmVuZGVyU3R5bGUmLAogICAgICAgICBDb2xvciwgQm9yZGVyU3R5bGUs
IEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICB2b2lkIHBhaW50TWFza0ZvclRleHRG
aWxsQm94KEltYWdlQnVmZmVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgTGVnYWN5SW5saW5l
Rmxvd0JveCogLCBjb25zdCBMYXlvdXRSZWN0Jik7CisgICAgdm9pZCBwYWludE1hc2tGb3JUZXh0
RmlsbEJveChJbWFnZUJ1ZmZlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IElubGluZUl0ZXJh
dG9yOjpJbmxpbmVCb3hJdGVyYXRvciYsIGNvbnN0IExheW91dFJlY3QmKTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CmluZGV4IGI0ZTUzM2E2NzkwYzUzMzYyMTRhNGY1MjQzYjViZmViN2I5Yjg4MDUuLjAwMDJjYTc3
MmQ0NTllOTI3ODBjOTAwMDU1NDM4MDcyOGZlM2Y2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxNYXBF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgotI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCisjaW5jbHVkZSAiSW5saW5lSXRl
cmF0b3JJbmxpbmVCb3guaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxpbmUuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCkBAIC02OTIsOSArNjkyLDkgQEAg
SW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICByZXR1cm4gZHJhd1Jlc3VsdDsKIH0KIAotYm9v
bCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVk
QXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KikgY29uc3QKK2Jvb2wgUmVuZGVy
SW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5j
ZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJikgY29uc3QKIHsKLSAg
ICBpZiAoIVJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0Jh
Y2tncm91bmQocGFpbnRPZmZzZXQsIGJsZWVkQXZvaWRhbmNlKSkKKyAgICBpZiAoIVJlbmRlckJv
eE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQocGFpbnRP
ZmZzZXQsIGJsZWVkQXZvaWRhbmNlLCB7IH0pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICByZXR1cm4gIWNvbnN0X2Nhc3Q8UmVuZGVySW1hZ2UqPih0aGlzKS0+YmFja2dyb3VuZElzS25v
d25Ub0JlT2JzY3VyZWQocGFpbnRPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaAppbmRleCBmMWRmMjJiYWMwYzkyZWIwYjU2MzJjZTE5NTFiY2E4YTI5ZDEyNzMzLi44
YWFjZDRjMDczZGM4OTc5NjcwZDc1ZDEzZWNkMjE3NGJjOWMyNzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdvcmtMb2FkTWV0
cmljcyYpIGZpbmFsOwogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24p
IGZpbmFsOwogCi0gICAgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQo
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Us
IGNvbnN0IExlZ2FjeUlubGluZUZsb3dCb3gqKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGJveFNo
YWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6Oklu
bGluZUJveEl0ZXJhdG9yJikgY29uc3QgZmluYWw7CiAKICAgICBJbnRTaXplIGltYWdlU2l6ZUZv
ckVycm9yKENhY2hlZEltYWdlKikgY29uc3Q7CiAgICAgdm9pZCByZXBhaW50T3JNYXJrRm9yTGF5
b3V0KEltYWdlU2l6ZUNoYW5nZVR5cGUsIGNvbnN0IEludFJlY3QqID0gbnVsbHB0cik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCA5ZGQ5NzMwMzViYTUxYjNk
MjcyYzhmMzk0MWU5ZjNmZjYwZjBiMWE5Li5iNWRiMTFkNTkwNWFhNzBhODA5MzFhZjliZWZmNGEy
MDcwYjRmMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIklubGlu
ZUl0ZXJhdG9ySW5saW5lQm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5o
IgpAQCAtNzg3LDcgKzc4OCw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OnBhaW50Qm94RGVjb3JhdGlv
bnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwCiAgICAgYWRqdXN0
Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKHJlY3QpOwogICAgIAogICAgIEJhY2tncm91bmRCbGVl
ZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSA9IGRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lk
YW5jZShwYWludEluZm8uY29udGV4dCgpKTsKLSAgICBpZiAoIWJveFNoYWRvd1Nob3VsZEJlQXBw
bGllZFRvQmFja2dyb3VuZChyZWN0LmxvY2F0aW9uKCksIGJsZWVkQXZvaWRhbmNlKSkKKyAgICBp
ZiAoIWJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChyZWN0LmxvY2F0aW9uKCks
IGJsZWVkQXZvaWRhbmNlLCB7IH0pKQogICAgICAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8s
IHJlY3QsIHN0eWxlKCksIFNoYWRvd1N0eWxlOjpOb3JtYWwpOwogICAgIHBhaW50QmFja2dyb3Vu
ZChwYWludEluZm8sIHJlY3QsIGJsZWVkQXZvaWRhbmNlKTsKICAgICBwYWludEJveFNoYWRvdyhw
YWludEluZm8sIHJlY3QsIHN0eWxlKCksIFNoYWRvd1N0eWxlOjpJbnNldCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDRkNDMxOTIyMmQ3OWNj
ZGE4NWQzYjUwOWQ1Yjk0MzhkMjdjMTJhN2UuLmE2YmJkYjQ1ZjM3ZTJhMWJhNDQ1YTdjNDEzMWI1
NWM4ODkwNDY2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuY3BwCkBAIC0xMzQ4LDcgKzEzNDgsNyBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6cGFpbnRN
YXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAg
IHBhaW50TWFza0ltYWdlcyhwYWludEluZm8sIHBhaW50UmVjdCk7CiB9CiAKLWJvb2wgUmVuZGVy
VGFibGVDZWxsOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29uc3QgTGF5
b3V0UG9pbnQmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGNvbnN0IExlZ2FjeUlubGluZUZs
b3dCb3gqKSBjb25zdAorYm9vbCBSZW5kZXJUYWJsZUNlbGw6OmJveFNoYWRvd1Nob3VsZEJlQXBw
bGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2ludCYsIEJhY2tncm91bmRCbGVlZEF2b2lk
YW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJikgY29uc3QKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmgKaW5kZXggMDZlZjQ4NDI3YTI4M2Y5ZjM4OTBlYjlkYzZhODNhYTRhZjkwM2M5Ny4u
ZGI5YmFhZWNlY2MyODVmNDliODJmMDlhOGJiYjllMzBlZTM2MTIyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMTUxLDcgKzE1MSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBs
aWVkVG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGNvbnN0
IElubGluZUl0ZXJhdG9yOjpJbmxpbmVCb3hJdGVyYXRvciYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmLCBjb25zdCBM
YXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRSZWN0PiBjb21wdXRlVmlzaWJsZVJlY3RJbkNv
bnRhaW5lcihjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
Y29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440774</attachid>
            <date>2021-10-11 04:55:21 -0700</date>
            <delta_ts>2021-10-11 08:12:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231502-20211011145519.patch</filename>
            <type>text/plain</type>
            <size>32674</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxZTA3YTU5MTdiNGYy
NjhkYTA4MzA0ZTIzMWM5NjEyODU5ODM4MC4uYjE4ODI0YTNiMmMzNjMzN2U3NDFhMTIzMTA4ZTEx
YjkyMmRkZjRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEwLTExICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCBzaG91bGQgdXNlIGlubGluZSBpdGVyYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlcGFyZSBmb3Ig
TEZDIGlubGluZSBib3ggcGFpbnRpbmcuCisKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OklubGluZUJveDo6aGFzQ2xvc2VkTGVmdEFuZFJpZ2h0RWRnZSBjb25zdCk6CisKKyAg
ICAgICAgQWRkIGEgc2hhcmVkIGhlbHBlci4KKworICAgICAgICBUaGUgYW5zd2VyIGlzIGNvbXB1
dGVkIGhlcmUgdGhvdWdoIHRoaXMgaW5mb3JtYXRpb24gaXMgbmVlZGVkIGZvciBsYXlvdXQgdG9v
LgorICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byBjb25zdWx0IGxheW91dCB0byBnZXQgaXQu
CisKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JJbmxpbmVCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjbGlwUmVjdEZvck5pbmVQaWVjZUltYWdlU3RyaXApOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lQm94UGFpbnRlcjo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVCb3hQYWludGVyOjpwYWludEZpbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVCb3hQYWludGVyOjpwYWludEJveFNoYWRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL0xl
Z2FjeUlubGluZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZUZsb3dCb3g6OmJveFNoYWRvd0Nh
bkJlQXBwbGllZFRvQmFja2dyb3VuZCBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgTW92ZSB0
byB0aGUgb25seSBjYWxsIHNpdGUgYXMgYSBsYW1iZGEuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5SW5saW5lRmxvd0JveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFpbnRCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZv
ckJsZWVkQXZvaWRhbmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludE1hc2tGb3JUZXh0RmlsbEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNr
Z3JvdW5kIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZCBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWlu
dEJveERlY29yYXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Ym94U2hhZG93U2hvdWxkQmVB
cHBsaWVkVG9CYWNrZ3JvdW5kIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmg6CisKIDIwMjEtMTAtMTAgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gRG8gbm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1dHJhbCBj
aGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9ySW5saW5lQm94LmNwcAppbmRleCA3YjAyM2M5YmI1MjI2MDkz
ODU0N2IyYjdjMmFiZTVhZGQ4ZjdjYzE2Li4zMTYxODg0MzcwMTJmYWNmZTA2MmZmYzhhOTQyNDM2
NDVlNWY2OTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvcklubGluZUJveC5jcHAKQEAgLTM2LDYgKzM2LDE5IEBA
IElubGluZUJveDo6SW5saW5lQm94KFBhdGhWYXJpYW50JiYgcGF0aCkKIHsKIH0KIAorc3RkOjpw
YWlyPGJvb2wsIGJvb2w+IElubGluZUJveDo6aGFzQ2xvc2VkTGVmdEFuZFJpZ2h0RWRnZSgpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IExheW91dCBrbm93cyB0aGUgYW5zd2VyIHRvIHRoaXMgcXVl
c3Rpb24gc28gd2Ugc2hvdWxkIGNvbnN1bHQgaXQuCisjaWYgRU5BQkxFKENTU19CT1hfREVDT1JB
VElPTl9CUkVBSykKKyAgICBpZiAoc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hE
ZWNvcmF0aW9uQnJlYWs6OkNsb25lKQorICAgICAgICByZXR1cm4geyB0cnVlLCB0cnVlIH07Cisj
ZW5kaWYKKyAgICBib29sIGlzTFRSID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7
CisgICAgYm9vbCBpc0ZpcnN0ID0gIXByZXZpb3VzSW5saW5lQm94KCkgJiYgIXJlbmRlcmVyKCku
aXNDb250aW51YXRpb24oKTsKKyAgICBib29sIGlzTGFzdCA9ICFuZXh0SW5saW5lQm94KCkgJiYg
IXJlbmRlcmVyKCkuY29udGludWF0aW9uKCk7CisgICAgcmV0dXJuIHsgaXNMVFIgPyBpc0ZpcnN0
IDogaXNMYXN0LCBpc0xUUiA/IGlzTGFzdCA6IGlzRmlyc3QgfTsKK307CisKIElubGluZUJveEl0
ZXJhdG9yIElubGluZUJveDo6bmV4dElubGluZUJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElu
bGluZUJveEl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJzZU5leHRJbmxpbmVCb3goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvcklubGlu
ZUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
SW5saW5lQm94LmgKaW5kZXggYzUzNmVjNzBhNTAyYTdkMDZiOTdhZDExMzQzMjk4ZTI4ZDQ0M2My
NS4uNWFkYzA4ZmMzYWExYTRkMjYzOWVmNGIwZmFkNmIxNTQyMmI4MTI4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9ySW5saW5lQm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
SW5saW5lQm94LmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgUmVuZGVy
Qm94TW9kZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8UmVuZGVy
Qm94TW9kZWxPYmplY3Q+KEJveDo6cmVuZGVyZXIoKSk7IH0KIAorICAgIHN0ZDo6cGFpcjxib29s
LCBib29sPiBoYXNDbG9zZWRMZWZ0QW5kUmlnaHRFZGdlKCkgY29uc3Q7CisKICAgICAvLyBGSVhN
RTogUmVtb3ZlLiBGb3IgaW50ZXJtZWRpYXRlIHBvcnRpbmcgc3RlcHMgb25seS4KICAgICBjb25z
dCBMZWdhY3lJbmxpbmVGbG93Qm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBk
b3duY2FzdDxMZWdhY3lJbmxpbmVGbG93Qm94PihCb3g6OmxlZ2FjeUlubGluZUJveCgpKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5jcHAKaW5kZXgg
NTA1ZWI5MjMzYmVlYWRkMzMyN2I5ODk1MTcyMmE2ZTFkY2Q3NDViNy4uY2VhZGEzMDI5NzFmODhk
MTRhYmZkMmViMjUwYTc4OTQ4MzE2ODg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVCb3hQYWludGVyLmNwcApAQCAtMTAwLDIzICsxMDAsMjQgQEAgc3RhdGljIExheW91
dFJlY3QgY2xpcFJlY3RGb3JOaW5lUGllY2VJbWFnZVN0cmlwKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpJbmxpbmVCb3gKICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0KHBhaW50UmVjdCk7CiAgICAgYXV0
byYgc3R5bGUgPSBib3gucmVuZGVyZXIoKS5zdHlsZSgpOwogICAgIExheW91dEJveEV4dGVudCBv
dXRzZXRzID0gc3R5bGUuaW1hZ2VPdXRzZXRzKGltYWdlKTsKKyAgICBhdXRvIFtoYXNDbG9zZWRM
ZWZ0RWRnZSwgaGFzQ2xvc2VkUmlnaHRFZGdlXSA9IGJveC5oYXNDbG9zZWRMZWZ0QW5kUmlnaHRF
ZGdlKCk7CiAgICAgaWYgKGJveC5pc0hvcml6b250YWwoKSkgewogICAgICAgICBjbGlwUmVjdC5z
ZXRZKHBhaW50UmVjdC55KCkgLSBvdXRzZXRzLnRvcCgpKTsKICAgICAgICAgY2xpcFJlY3Quc2V0
SGVpZ2h0KHBhaW50UmVjdC5oZWlnaHQoKSArIG91dHNldHMudG9wKCkgKyBvdXRzZXRzLmJvdHRv
bSgpKTsKLSAgICAgICAgaWYgKGJveC5sZWdhY3lJbmxpbmVCb3goKS0+aW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSgpKSB7CisgICAgICAgIGlmIChoYXNDbG9zZWRMZWZ0RWRnZSkgewogICAgICAgICAg
ICAgY2xpcFJlY3Quc2V0WChwYWludFJlY3QueCgpIC0gb3V0c2V0cy5sZWZ0KCkpOwogICAgICAg
ICAgICAgY2xpcFJlY3Quc2V0V2lkdGgocGFpbnRSZWN0LndpZHRoKCkgKyBvdXRzZXRzLmxlZnQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGJveC5sZWdhY3lJbmxpbmVCb3goKS0+aW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UoKSkKKyAgICAgICAgaWYgKGhhc0Nsb3NlZFJpZ2h0RWRnZSkKICAg
ICAgICAgICAgIGNsaXBSZWN0LnNldFdpZHRoKGNsaXBSZWN0LndpZHRoKCkgKyBvdXRzZXRzLnJp
Z2h0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGNsaXBSZWN0LnNldFgocGFpbnRSZWN0Lngo
KSAtIG91dHNldHMubGVmdCgpKTsKICAgICAgICAgY2xpcFJlY3Quc2V0V2lkdGgocGFpbnRSZWN0
LndpZHRoKCkgKyBvdXRzZXRzLmxlZnQoKSArIG91dHNldHMucmlnaHQoKSk7Ci0gICAgICAgIGlm
IChib3gubGVnYWN5SW5saW5lQm94KCktPmluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UoKSkgeworICAg
ICAgICBpZiAoaGFzQ2xvc2VkTGVmdEVkZ2UpIHsKICAgICAgICAgICAgIGNsaXBSZWN0LnNldFko
cGFpbnRSZWN0LnkoKSAtIG91dHNldHMudG9wKCkpOwogICAgICAgICAgICAgY2xpcFJlY3Quc2V0
SGVpZ2h0KHBhaW50UmVjdC5oZWlnaHQoKSArIG91dHNldHMudG9wKCkpOwogICAgICAgICB9Ci0g
ICAgICAgIGlmIChib3gubGVnYWN5SW5saW5lQm94KCktPmluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KCkpCisgICAgICAgIGlmIChoYXNDbG9zZWRSaWdodEVkZ2UpCiAgICAgICAgICAgICBjbGlwUmVj
dC5zZXRIZWlnaHQoY2xpcFJlY3QuaGVpZ2h0KCkgKyBvdXRzZXRzLmJvdHRvbSgpKTsKICAgICB9
CiAgICAgcmV0dXJuIGNsaXBSZWN0OwpAQCAtMjE4LDcgKzIxOSw3IEBAIHZvaWQgSW5saW5lQm94
UGFpbnRlcjo6cGFpbnREZWNvcmF0aW9ucygpCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
ID0gbV9wYWludEluZm8uY29udGV4dCgpOwogICAgIExheW91dFJlY3QgcGFpbnRSZWN0ID0gTGF5
b3V0UmVjdChhZGp1c3RlZFBhaW50b2Zmc2V0LCBmcmFtZVJlY3Quc2l6ZSgpKTsKICAgICAvLyBT
aGFkb3cgY29tZXMgZmlyc3QgYW5kIGlzIGJlaGluZCB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVy
LgotICAgIGlmICghcmVuZGVyZXIoKS5ib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91
bmQoYWRqdXN0ZWRQYWludG9mZnNldCwgQmFja2dyb3VuZEJsZWVkTm9uZSwgbV9pbmxpbmVCb3gu
bGVnYWN5SW5saW5lQm94KCkpKQorICAgIGlmICghcmVuZGVyZXIoKS5ib3hTaGFkb3dTaG91bGRC
ZUFwcGxpZWRUb0JhY2tncm91bmQoYWRqdXN0ZWRQYWludG9mZnNldCwgQmFja2dyb3VuZEJsZWVk
Tm9uZSwgbV9pbmxpbmVCb3gpKQogICAgICAgICBwYWludEJveFNoYWRvdyhTaGFkb3dTdHlsZTo6
Tm9ybWFsLCBwYWludFJlY3QpOwogCiAgICAgYXV0byBjb2xvciA9IHN0eWxlLnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CkBAIC0yNDIsNyArMjQzLDgg
QEAgdm9pZCBJbmxpbmVCb3hQYWludGVyOjpwYWludERlY29yYXRpb25zKCkKIAogICAgIGJvb2wg
aGFzU2luZ2xlTGluZSA9ICFtX2lubGluZUJveC5wcmV2aW91c0lubGluZUJveCgpICYmICFtX2lu
bGluZUJveC5uZXh0SW5saW5lQm94KCk7CiAgICAgaWYgKCFoYXNCb3JkZXJJbWFnZSB8fCBoYXNT
aW5nbGVMaW5lKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnRCb3JkZXIobV9wYWludEluZm8s
IHBhaW50UmVjdCwgc3R5bGUsIEJhY2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94LmxlZ2Fj
eUlubGluZUJveCgpLT5pbmNsdWRlTG9naWNhbExlZnRFZGdlKCksIG1faW5saW5lQm94LmxlZ2Fj
eUlubGluZUJveCgpLT5pbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSgpKTsKKyAgICAgICAgYXV0byBb
aGFzQ2xvc2VkTGVmdEVkZ2UsIGhhc0Nsb3NlZFJpZ2h0RWRnZV0gPSBtX2lubGluZUJveC5oYXND
bG9zZWRMZWZ0QW5kUmlnaHRFZGdlKCk7CisgICAgICAgIHJlbmRlcmVyKCkucGFpbnRCb3JkZXIo
bV9wYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUsIEJhY2tncm91bmRCbGVlZE5vbmUsIGhhc0Ns
b3NlZExlZnRFZGdlLCBoYXNDbG9zZWRSaWdodEVkZ2UpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yOTAsNyArMjkyLDcgQEAgdm9pZCBJbmxpbmVCb3hQYWludGVyOjpwYWludEZpbGxM
YXllcihjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IEZpbGxMYXllciYgZmlsbEwKICAgICBib29s
IGhhc1NpbmdsZUxpbmUgPSAhbV9pbmxpbmVCb3gucHJldmlvdXNJbmxpbmVCb3goKSAmJiAhbV9p
bmxpbmVCb3gubmV4dElubGluZUJveCgpOwogCiAgICAgaWYgKCFoYXNGaWxsSW1hZ2VPckJvcmRl
clJhZGlvdXMgfHwgaGFzU2luZ2xlTGluZSB8fCBtX2lzUm9vdElubGluZUJveCkgewotICAgICAg
ICByZW5kZXJlcigpLnBhaW50RmlsbExheWVyRXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBm
aWxsTGF5ZXIsIHJlY3QsIEJhY2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94LmxlZ2FjeUlu
bGluZUJveCgpLCByZWN0LnNpemUoKSwgb3ApOworICAgICAgICByZW5kZXJlcigpLnBhaW50Rmls
bExheWVyRXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBmaWxsTGF5ZXIsIHJlY3QsIEJhY2tn
cm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94LCByZWN0LnNpemUoKSwgb3ApOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0yOTgsNyArMzAwLDcgQEAgdm9pZCBJbmxpbmVCb3hQYWludGVy
OjpwYWludEZpbGxMYXllcihjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IEZpbGxMYXllciYgZmls
bEwKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpID09IEJv
eERlY29yYXRpb25CcmVhazo6Q2xvbmUpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKG1fcGFpbnRJbmZvLmNvbnRleHQoKSk7CiAgICAgICAgIG1fcGFpbnRJ
bmZvLmNvbnRleHQoKS5jbGlwKHsgcmVjdC54KCksIHJlY3QueSgpLCBMYXlvdXRVbml0KG1faW5s
aW5lQm94LnJlY3QoKS53aWR0aCgpKSwgTGF5b3V0VW5pdChtX2lubGluZUJveC5yZWN0KCkuaGVp
Z2h0KCkpIH0pOwotICAgICAgICByZW5kZXJlcigpLnBhaW50RmlsbExheWVyRXh0ZW5kZWQobV9w
YWludEluZm8sIGNvbG9yLCBmaWxsTGF5ZXIsIHJlY3QsIEJhY2tncm91bmRCbGVlZE5vbmUsIG1f
aW5saW5lQm94LmxlZ2FjeUlubGluZUJveCgpLCByZWN0LnNpemUoKSwgb3ApOworICAgICAgICBy
ZW5kZXJlcigpLnBhaW50RmlsbExheWVyRXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBmaWxs
TGF5ZXIsIHJlY3QsIEJhY2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94LCByZWN0LnNpemUo
KSwgb3ApOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0zMzEsNyArMzMzLDcg
QEAgdm9pZCBJbmxpbmVCb3hQYWludGVyOjpwYWludEZpbGxMYXllcihjb25zdCBDb2xvciYgY29s
b3IsIGNvbnN0IEZpbGxMYXllciYgZmlsbEwKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihtX3BhaW50SW5mby5jb250ZXh0KCkpOwogICAgIG1fcGFpbnRJbmZvLmNv
bnRleHQoKS5jbGlwKHsgcmVjdC54KCksIHJlY3QueSgpLCBMYXlvdXRVbml0KG1faW5saW5lQm94
LnJlY3QoKS53aWR0aCgpKSwgTGF5b3V0VW5pdChtX2lubGluZUJveC5yZWN0KCkuaGVpZ2h0KCkp
IH0pOwotICAgIHJlbmRlcmVyKCkucGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChtX3BhaW50SW5mbywg
Y29sb3IsIGZpbGxMYXllciwgTGF5b3V0UmVjdChzdHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0aCwg
c3RyaXBIZWlnaHQpLCBCYWNrZ3JvdW5kQmxlZWROb25lLCBtX2lubGluZUJveC5sZWdhY3lJbmxp
bmVCb3goKSwgcmVjdC5zaXplKCksIG9wKTsKKyAgICByZW5kZXJlcigpLnBhaW50RmlsbExheWVy
RXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBmaWxsTGF5ZXIsIExheW91dFJlY3Qoc3RyaXBY
LCBzdHJpcFksIHN0cmlwV2lkdGgsIHN0cmlwSGVpZ2h0KSwgQmFja2dyb3VuZEJsZWVkTm9uZSwg
bV9pbmxpbmVCb3gsIHJlY3Quc2l6ZSgpLCBvcCk7CiB9CiAKIHZvaWQgSW5saW5lQm94UGFpbnRl
cjo6cGFpbnRCb3hTaGFkb3coU2hhZG93U3R5bGUgc2hhZG93U3R5bGUsIGNvbnN0IExheW91dFJl
Y3QmIHBhaW50UmVjdCkKQEAgLTM0NCw3ICszNDYsOCBAQCB2b2lkIElubGluZUJveFBhaW50ZXI6
OnBhaW50Qm94U2hhZG93KFNoYWRvd1N0eWxlIHNoYWRvd1N0eWxlLCBjb25zdCBMYXlvdXRSZWN0
JgogCiAgICAgLy8gRklYTUU6IFdlIGNhbiBkbyBiZXR0ZXIgaGVyZSBpbiB0aGUgbXVsdGktbGlu
ZSBjYXNlLiBXZSB3YW50IHRvIHB1c2ggYSBjbGlwIHNvIHRoYXQgdGhlIHNoYWRvdyBkb2Vzbid0
CiAgICAgLy8gcHJvdHJ1ZGUgaW5jb3JyZWN0bHkgYXQgdGhlIGVkZ2VzLCBhbmQgd2Ugd2FudCB0
byBwb3NzaWJseSBpbmNsdWRlIHNoYWRvd3MgY2FzdCBmcm9tIHRoZSBwcmV2aW91cy9mb2xsb3dp
bmcgbGluZXMKLSAgICByZW5kZXJlcigpLnBhaW50Qm94U2hhZG93KG1fcGFpbnRJbmZvLCBwYWlu
dFJlY3QsIHN0eWxlKCksIHNoYWRvd1N0eWxlLCBtX2lubGluZUJveC5sZWdhY3lJbmxpbmVCb3go
KS0+aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBtX2lubGluZUJveC5sZWdhY3lJbmxpbmVCb3go
KS0+aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UoKSk7CisgICAgYXV0byBbaGFzQ2xvc2VkTGVmdEVk
Z2UsIGhhc0Nsb3NlZFJpZ2h0RWRnZV0gPSBtX2lubGluZUJveC5oYXNDbG9zZWRMZWZ0QW5kUmln
aHRFZGdlKCk7CisgICAgcmVuZGVyZXIoKS5wYWludEJveFNoYWRvdyhtX3BhaW50SW5mbywgcGFp
bnRSZWN0LCBzdHlsZSgpLCBzaGFkb3dTdHlsZSwgaGFzQ2xvc2VkTGVmdEVkZ2UsIGhhc0Nsb3Nl
ZFJpZ2h0RWRnZSk7CiB9CiAKIHZvaWQgSW5saW5lQm94UGFpbnRlcjo6Y29uc3RyYWluVG9MaW5l
VG9wQW5kQm90dG9tSWZOZWVkZWQoTGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaAppbmRleCA2NzBhM2JiMzkzNzYwMTUwYjIy
ZTkwYmJmY2U1MzVhYjc1NjFiMWQ2Li4zZGE3YjVmODA1NDRiNDBmYmYwYzI0YTAxYzczZTNmNDcy
OWUzYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUJveC5oCkBA
IC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhpdFRlc3RSZXN1
bHQ7CitjbGFzcyBMZWdhY3lJbmxpbmVGbG93Qm94OwogY2xhc3MgTGVnYWN5Um9vdElubGluZUJv
eDsKIAogLy8gTGVnYWN5SW5saW5lQm94IHJlcHJlc2VudHMgYSByZWN0YW5nbGUgdGhhdCBvY2N1
cnMgb24gYSBsaW5lLiBJdCBjb3JyZXNwb25kcyB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwCmluZGV4IDk1MTRmZDA3MTNhYmUyMmM4Yzli
ODIzN2M1ZGZjYzc0MWM0NDE3YWYuLjU5NDg2N2U3MTk3MGY2ODU0ZGE5NTcxNjExZDFlMTFmMmM4
NmU0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVG
bG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxv
d0JveC5jcHAKQEAgLTExMzQsMTUgKzExMzQsNiBAQCB2b2lkIExlZ2FjeUlubGluZUZsb3dCb3g6
OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgog
ICAgIH0KIH0KIAotYm9vbCBMZWdhY3lJbmxpbmVGbG93Qm94Ojpib3hTaGFkb3dDYW5CZUFwcGxp
ZWRUb0JhY2tncm91bmQoY29uc3QgRmlsbExheWVyJiBsYXN0QmFja2dyb3VuZExheWVyKSBjb25z
dAotewotICAgIC8vIFRoZSBjaGVja3MgaGVyZSBtYXRjaCBob3cgcGFpbnRGaWxsTGF5ZXIoKSBk
ZWNpZGVzIHdoZXRoZXIgdG8gY2xpcCAoaWYgaXQgZG9lcywgdGhlIHNoYWRvdwotICAgIC8vIHdv
dWxkIGJlIGNsaXBwZWQgb3V0LCBzbyBpdCBoYXMgdG8gYmUgZHJhd24gc2VwYXJhdGVseSkuCi0g
ICAgU3R5bGVJbWFnZSogaW1hZ2UgPSBsYXN0QmFja2dyb3VuZExheWVyLmltYWdlKCk7Ci0gICAg
Ym9vbCBoYXNGaWxsSW1hZ2UgPSBpbWFnZSAmJiBpbWFnZS0+Y2FuUmVuZGVyKCZyZW5kZXJlcigp
LCByZW5kZXJlcigpLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKLSAgICByZXR1cm4gKCFoYXNG
aWxsSW1hZ2UgJiYgIXJlbmRlcmVyKCkuc3R5bGUoKS5oYXNCb3JkZXJSYWRpdXMoKSkgfHwgKCFw
cmV2TGluZUJveCgpICYmICFuZXh0TGluZUJveCgpKSB8fCAhcGFyZW50KCk7Ci19Ci0KIExlZ2Fj
eUlubGluZUJveCogTGVnYWN5SW5saW5lRmxvd0JveDo6Zmlyc3RMZWFmRGVzY2VuZGFudCgpIGNv
bnN0CiB7CiAgICAgTGVnYWN5SW5saW5lQm94KiBsZWFmID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5oCmluZGV4IGRkODcwODU1NWNi
ZWRjNTM2N2M1YjczZWI1MTYxNzQzOTc4MWQ5NDkuLjRlMzIwODUwMWUwNTU1NzQzZmIxMWI5NmFk
N2I5ZGVhMzk4MjYzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lJbmxpbmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlu
bGluZUZsb3dCb3guaApAQCAtMTE4LDggKzExOCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlv
dXRVbml0IGxpbmVCb3R0b20pIG92ZXJyaWRlOwogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBs
b2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQs
IExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBIaXRUZXN0QWN0aW9u
KSBvdmVycmlkZTsKIAotICAgIGJvb2wgYm94U2hhZG93Q2FuQmVBcHBsaWVkVG9CYWNrZ3JvdW5k
KGNvbnN0IEZpbGxMYXllciYpIGNvbnN0OwotCiAgICAgLy8gbG9naWNhbExlZnQgPSBsZWZ0IGlu
IGEgaG9yaXpvbnRhbCBsaW5lIGFuZCB0b3AgaW4gYSB2ZXJ0aWNhbCBsaW5lLgogICAgIExheW91
dFVuaXQgbWFyZ2luQm9yZGVyUGFkZGluZ0xvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gTGF5
b3V0VW5pdChtYXJnaW5Mb2dpY2FsTGVmdCgpICsgYm9yZGVyTG9naWNhbExlZnQoKSArIHBhZGRp
bmdMb2dpY2FsTGVmdCgpKTsgfQogICAgIExheW91dFVuaXQgbWFyZ2luQm9yZGVyUGFkZGluZ0xv
Z2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQobWFyZ2luTG9naWNhbFJpZ2h0
KCkgKyBib3JkZXJMb2dpY2FsUmlnaHQoKSArIHBhZGRpbmdMb2dpY2FsUmlnaHQoKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggMTUxMzIxNzQ1ZDA1MDhlNjI0
MmVlZWZhMDEwNmE1MTA2MWQ4YzU5ZC4uZGEwYmI2ZDdlYjdkNDUwYjliNTY3ZmU2NWM3NjI4YjFj
OWRkMWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAi
SW5saW5lSXRlcmF0b3JJbmxpbmVCb3guaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxpbmUu
aCIKICNpbmNsdWRlICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuaCIKQEAgLTE1MjQsNyArMTUyNSw3IEBAIHZvaWQgUmVuZGVyQm94
OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpCiAKICAgICAvLyBGSVhNRTogU2hvdWxkIGV2ZW50dWFsbHkgZ2l2ZSB0aGUgdGhl
bWUgY29udHJvbCBvdmVyIHdoZXRoZXIgdGhlIGJveCBzaGFkb3cgc2hvdWxkIHBhaW50LCBzaW5j
ZSBjb250cm9scyBjb3VsZCBoYXZlCiAgICAgLy8gY3VzdG9tIHNoYWRvd3Mgb2YgdGhlaXIgb3du
LgotICAgIGlmICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKHBhaW50UmVj
dC5sb2NhdGlvbigpLCBibGVlZEF2b2lkYW5jZSkpCisgICAgaWYgKCFib3hTaGFkb3dTaG91bGRC
ZUFwcGxpZWRUb0JhY2tncm91bmQocGFpbnRSZWN0LmxvY2F0aW9uKCksIGJsZWVkQXZvaWRhbmNl
LCB7IH0pKQogICAgICAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgc3R5
bGUoKSwgU2hhZG93U3R5bGU6Ok5vcm1hbCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSwgZmFsc2UpOwpAQCAtMTU5MCw3ICsx
NTkxLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50QmFja2dyb3VuZChjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UmVjdCYgcGEKICAgICBpZiAoIXBhaW50c093bkJhY2tn
cm91bmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGJhY2tncm91bmRJc0tub3duVG9C
ZU9ic2N1cmVkKHBhaW50UmVjdC5sb2NhdGlvbigpKSAmJiAhYm94U2hhZG93U2hvdWxkQmVBcHBs
aWVkVG9CYWNrZ3JvdW5kKHBhaW50UmVjdC5sb2NhdGlvbigpLCBibGVlZEF2b2lkYW5jZSkpCisg
ICAgaWYgKGJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKHBhaW50UmVjdC5sb2NhdGlvbigp
KSAmJiAhYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKHBhaW50UmVjdC5sb2Nh
dGlvbigpLCBibGVlZEF2b2lkYW5jZSwgeyB9KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0
byBiYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvcik7CkBAIC0xODgyLDcgKzE4ODMsNyBAQCB2b2lkIFJlbmRlckJv
eDo6cGFpbnRGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBDb2xv
ciYgY29sb3IsCiB2b2lkIFJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IENvbG9yJiBjLCBjb25zdCBGaWxsTGF5ZXImIGZpbGxMYXllciwg
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCwKICAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxl
ZWRBdm9pZGFuY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3Jv
dW5kT2JqZWN0LCBCYXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgYmFzZUJnQ29sb3JVc2FnZSkKIHsK
LSAgICBwYWludEZpbGxMYXllckV4dGVuZGVkKHBhaW50SW5mbywgYywgZmlsbExheWVyLCByZWN0
LCBibGVlZEF2b2lkYW5jZSwgbnVsbHB0ciwgTGF5b3V0U2l6ZSgpLCBvcCwgYmFja2dyb3VuZE9i
amVjdCwgYmFzZUJnQ29sb3JVc2FnZSk7CisgICAgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChwYWlu
dEluZm8sIGMsIGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIHsgfSwgTGF5b3V0U2l6
ZSgpLCBvcCwgYmFja2dyb3VuZE9iamVjdCwgYmFzZUJnQ29sb3JVc2FnZSk7CiB9CiAKIHN0YXRp
YyBTdHlsZUltYWdlKiBmaW5kTGF5ZXJVc2VkSW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBj
b25zdCBGaWxsTGF5ZXImIGxheWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDNiZTRhM2U4OTQ2NDNkNGEwYmM4ZjYzMGM5
ZWZmMGRmY2Y5ODg2YjQuLjE1YmNlOGEwNTFhNjg2MzhkZWJmNzc0ZmY2OGI4ZTA4NDAwMDk5NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcApAQCAtNjIxLDExICs2MjEsMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Y29tcHV0ZWRDU1NQYWRkaW5nKGNvbnN0IExlbmd0aCYgcGFkZGluZykgY29uc3QKICAgICBy
ZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIHcpOwogfQogCi1Sb3VuZGVkUmVj
dCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNvbnN0IExh
eW91dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IExlZ2FjeUlubGluZUZsb3dCb3gqIGJveCwgTGF5
b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCitSb3Vu
ZGVkUmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNv
bnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIGNvbnN0IElubGluZUl0ZXJhdG9yOjpJbmxpbmVC
b3hJdGVyYXRvciYgYm94LCBMYXlvdXRVbml0IGlubGluZUJveFdpZHRoLCBMYXlvdXRVbml0IGlu
bGluZUJveEhlaWdodCwKICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0CiB7CiAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0g
c3R5bGUoKS5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QsIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBpZiAoYm94ICYmIChib3gtPm5l
eHRMaW5lQm94KCkgfHwgYm94LT5wcmV2TGluZUJveCgpKSkgeworICAgIGlmIChib3ggJiYgKGJv
eC0+bmV4dElubGluZUJveCgpIHx8IGJveC0+cHJldmlvdXNJbmxpbmVCb3goKSkpIHsKICAgICAg
ICAgUm91bmRlZFJlY3Qgc2VnbWVudEJvcmRlciA9IHN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZv
cihMYXlvdXRSZWN0KDBfbHUsIDBfbHUsIGlubGluZUJveFdpZHRoLCBpbmxpbmVCb3hIZWlnaHQp
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAg
ICAgIGJvcmRlci5zZXRSYWRpaShzZWdtZW50Qm9yZGVyLnJhZGlpKCkpOwogICAgIH0KQEAgLTY4
Miw3ICs2ODIsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5l
clJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0CiAgICAgcmV0dXJuIHNocmlua1Jl
Y3RCeU9uZURldmljZVBpeGVsKGNvbnRleHQsIHJlY3QsIGRvY3VtZW50KCkuZGV2aWNlU2NhbGVG
YWN0b3IoKSk7CiB9CiAKLVJvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpiYWNrZ3Jv
dW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KiBi
b3gsIGNvbnN0IExheW91dFNpemUmIGJveFNpemUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3QKK1JvdW5kZWRSZWN0IFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZv
aWRhbmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYg
Ym9yZGVyUmVjdCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBjb25z
dCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94SXRlcmF0b3ImIGJveCwgY29uc3QgTGF5b3V0U2l6
ZSYgYm94U2l6ZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3Jv
dW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5kKSB7CiAgICAgICAgIC8vIFdlIHNocmluayB0aGUgcmVj
dGFuZ2xlIGJ5IG9uZSBkZXZpY2UgcGl4ZWwgb24gZWFjaCBzaWRlIGJlY2F1c2UgdGhlIGJsZWVk
IGlzIG9uZSBwaXhlbCBtYXhpbXVtLgpAQCAtNzEwLDcgKzcxMCw3IEBAIEludGVycG9sYXRpb25R
dWFsaXR5IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShH
cmFwaGljc0NvCiAgICAgcmV0dXJuIHZpZXcoKS5pbWFnZVF1YWxpdHlDb250cm9sbGVyKCkuY2hv
b3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoY29udGV4dCwgdGhpcywgaW1hZ2UsIGxheWVyLCBzaXpl
KTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZpbGxC
b3goSW1hZ2VCdWZmZXIqIG1hc2tJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBtYXNrUmVjdCwgY29u
c3QgTGVnYWN5SW5saW5lRmxvd0JveCogYm94LCBjb25zdCBMYXlvdXRSZWN0JiBzY3JvbGxlZFBh
aW50UmVjdCkKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TWFza0ZvclRleHRGaWxs
Qm94KEltYWdlQnVmZmVyKiBtYXNrSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgbWFza1JlY3QsIGNv
bnN0IElubGluZUl0ZXJhdG9yOjpJbmxpbmVCb3hJdGVyYXRvciYgYm94LCBjb25zdCBMYXlvdXRS
ZWN0JiBzY3JvbGxlZFBhaW50UmVjdCkKIHsKICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFn
ZUNvbnRleHQgPSBtYXNrSW1hZ2UtPmNvbnRleHQoKTsKICAgICBtYXNrSW1hZ2VDb250ZXh0LnRy
YW5zbGF0ZSgtbWFza1JlY3QubG9jYXRpb24oKSk7CkBAIC03MTksOCArNzE5LDkgQEAgdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZpbGxCb3goSW1hZ2VCdWZmZXIq
IG1hc2tJbWFnZSwgY29uc3QKICAgICAvLyBMZWdhY3lJbmxpbmVUZXh0Qm94ZXMgdGhhdCB0aGV5
IHNob3VsZCBqdXN0IGFkZCB0aGVpciBjb250ZW50cyB0byB0aGUgY2xpcC4KICAgICBQYWludElu
Zm8gaW5mbyhtYXNrSW1hZ2VDb250ZXh0LCBMYXlvdXRSZWN0IHsgbWFza1JlY3QgfSwgUGFpbnRQ
aGFzZTo6VGV4dENsaXAsIFBhaW50QmVoYXZpb3I6OkZvcmNlQmxhY2tUZXh0KTsKICAgICBpZiAo
Ym94KSB7Ci0gICAgICAgIGNvbnN0IExlZ2FjeVJvb3RJbmxpbmVCb3gmIHJvb3RCb3ggPSBib3gt
PnJvb3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxMZWdhY3lJbmxpbmVGbG93Qm94Kj4oYm94KS0+
cGFpbnQoaW5mbywgTGF5b3V0UG9pbnQoc2Nyb2xsZWRQYWludFJlY3QueCgpIC0gYm94LT54KCks
IHNjcm9sbGVkUGFpbnRSZWN0LnkoKSAtIGJveC0+eSgpKSwgcm9vdEJveC5saW5lVG9wKCksIHJv
b3RCb3gubGluZUJvdHRvbSgpKTsKKyAgICAgICAgYXV0byogbGVnYWN5SW5saW5lQm94ID0gY29u
c3RfY2FzdDxMZWdhY3lJbmxpbmVGbG93Qm94Kj4oYm94LT5sZWdhY3lJbmxpbmVCb3goKSk7Cisg
ICAgICAgIGNvbnN0IGF1dG8mIHJvb3RCb3ggPSBsZWdhY3lJbmxpbmVCb3gtPnJvb3QoKTsKKyAg
ICAgICAgbGVnYWN5SW5saW5lQm94LT5wYWludChpbmZvLCBMYXlvdXRQb2ludChzY3JvbGxlZFBh
aW50UmVjdC54KCkgLSBsZWdhY3lJbmxpbmVCb3gtPngoKSwgc2Nyb2xsZWRQYWludFJlY3QueSgp
IC0gbGVnYWN5SW5saW5lQm94LT55KCkpLCByb290Qm94LmxpbmVUb3AoKSwgcm9vdEJveC5saW5l
Qm90dG9tKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIExheW91dFNpemUgbG9jYWxPZmZzZXQg
PSBpczxSZW5kZXJCb3g+KCp0aGlzKSA/IGRvd25jYXN0PFJlbmRlckJveD4oKnRoaXMpLmxvY2F0
aW9uT2Zmc2V0KCkgOiBMYXlvdXRTaXplKCk7CiAgICAgICAgIHBhaW50KGluZm8sIHNjcm9sbGVk
UGFpbnRSZWN0LmxvY2F0aW9uKCkgLSBsb2NhbE9mZnNldCk7CkBAIC03MjgsMTUgKzcyOSwxNCBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE1hc2tGb3JUZXh0RmlsbEJveChJbWFn
ZUJ1ZmZlciogbWFza0ltYWdlLCBjb25zdAogfQogCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBDb2xvciYgY29sb3IsIGNvbnN0IEZpbGxMYXllciYgYmdMYXllciwgY29uc3QgTGF5b3V0UmVj
dCYgcmVjdCwKLSAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGNv
bnN0IExlZ2FjeUlubGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5b3V0U2l6ZSYgYm94U2l6ZSwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QsIEJh
c2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSBiYXNlQmdDb2xvclVzYWdlKQorICAgIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGlu
ZUJveEl0ZXJhdG9yJiBib3gsIGNvbnN0IExheW91dFNpemUmIGJveFNpemUsIENvbXBvc2l0ZU9w
ZXJhdG9yIG9wLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3JvdW5kT2JqZWN0LCBCYXNlQmFja2dyb3Vu
ZENvbG9yVXNhZ2UgYmFzZUJnQ29sb3JVc2FnZSkKIHsKICAgICBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQgPSBwYWludEluZm8uY29udGV4dCgpOwogCiAgICAgaWYgKChjb250ZXh0LnBhaW50aW5n
RGlzYWJsZWQoKSAmJiAhY29udGV4dC5kZXRlY3RpbmdDb250ZW50ZnVsUGFpbnQoKSkgfHwgcmVj
dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaW5jbHVkZUxlZnRFZGdl
ID0gYm94ID8gYm94LT5pbmNsdWRlTG9naWNhbExlZnRFZGdlKCkgOiB0cnVlOwotICAgIGJvb2wg
aW5jbHVkZVJpZ2h0RWRnZSA9IGJveCA/IGJveC0+aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UoKSA6
IHRydWU7CisgICAgYXV0byBbaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlXSA9IGJv
eCA/IGJveC0+aGFzQ2xvc2VkTGVmdEFuZFJpZ2h0RWRnZSgpIDogc3RkOjpwYWlyKHRydWUsIHRy
dWUpOwogCiAgICAgYm9vbCBoYXNSb3VuZGVkQm9yZGVyID0gc3R5bGUoKS5oYXNCb3JkZXJSYWRp
dXMoKSAmJiAoaW5jbHVkZUxlZnRFZGdlIHx8IGluY2x1ZGVSaWdodEVkZ2UpOwogICAgIGJvb2wg
Y2xpcHBlZFdpdGhMb2NhbFNjcm9sbGluZyA9IGhhc05vblZpc2libGVPdmVyZmxvdygpICYmIGJn
TGF5ZXIuYXR0YWNobWVudCgpID09IEZpbGxBdHRhY2htZW50OjpMb2NhbEJhY2tncm91bmQ7CkBA
IC0yMzI2LDcgKzIzMjYsNyBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJPYnNj
dXJlc0JhY2tncm91bmQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29u
c3QgTGF5b3V0UG9pbnQmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2Us
IGNvbnN0IExlZ2FjeUlubGluZUZsb3dCb3gqIGlubGluZUZsb3dCb3gpIGNvbnN0Citib29sIFJl
bmRlckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQo
Y29uc3QgTGF5b3V0UG9pbnQmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFu
Y2UsIGNvbnN0IElubGluZUl0ZXJhdG9yOjpJbmxpbmVCb3hJdGVyYXRvciYgaW5saW5lQm94KSBj
b25zdAogewogICAgIGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWROb25lKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzY0LDcgKzIzNjQsMjAgQEAgYm9vbCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0
IExheW91dFBvaW4KICAgICBpZiAobGFzdEJhY2tncm91bmRMYXllci0+aW1hZ2UoKSAmJiBzdHls
ZSgpLmhhc0JvcmRlclJhZGl1cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
aW5saW5lRmxvd0JveCAmJiAhaW5saW5lRmxvd0JveC0+Ym94U2hhZG93Q2FuQmVBcHBsaWVkVG9C
YWNrZ3JvdW5kKCpsYXN0QmFja2dyb3VuZExheWVyKSkKKyAgICBhdXRvIGFwcGx5VG9JbmxpbmVC
b3ggPSBbJl0geworICAgICAgICAvLyBUaGUgY2hlY2tzIGhlcmUgbWF0Y2ggaG93IHBhaW50Rmls
bExheWVyKCkgZGVjaWRlcyB3aGV0aGVyIHRvIGNsaXAgKGlmIGl0IGRvZXMsIHRoZSBzaGFkb3cK
KyAgICAgICAgLy8gd291bGQgYmUgY2xpcHBlZCBvdXQsIHNvIGl0IGhhcyB0byBiZSBkcmF3biBz
ZXBhcmF0ZWx5KS4KKyAgICAgICAgaWYgKGlubGluZUJveC0+aXNSb290SW5saW5lQm94KCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCFpbmxpbmVCb3gtPnByZXZpb3Vz
SW5saW5lQm94KCkgJiYgIWlubGluZUJveC0+bmV4dElubGluZUJveCgpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGF1dG8qIGltYWdlID0gbGFzdEJhY2tncm91bmRMYXllci0+
aW1hZ2UoKTsKKyAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBpbmxpbmVCb3gtPnJlbmRlcmVyKCk7
CisgICAgICAgIGJvb2wgaGFzRmlsbEltYWdlID0gaW1hZ2UgJiYgaW1hZ2UtPmNhblJlbmRlcigm
cmVuZGVyZXIsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgcmV0
dXJuICFoYXNGaWxsSW1hZ2UgJiYgIXJlbmRlcmVyLnN0eWxlKCkuaGFzQm9yZGVyUmFkaXVzKCk7
CisgICAgfTsKKworICAgIGlmIChpbmxpbmVCb3ggJiYgIWFwcGx5VG9JbmxpbmVCb3goKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGhhc05vblZpc2libGVPdmVyZmxvdygpICYm
IGxhc3RCYWNrZ3JvdW5kTGF5ZXItPmF0dGFjaG1lbnQoKSA9PSBGaWxsQXR0YWNobWVudDo6TG9j
YWxCYWNrZ3JvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaAppbmRleCBiNGNjNjcxZjQ3YTE2MWUwMDM0NWM5YjNjNDhkZDdiNGY2NjZjNzJj
Li4wNDMwMzFjM2VmZDQ1ZWQ4MWE1ZDdkOTRjZDRjMWQ0MzY4MDI2ZWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtNjAsMTAgKzYw
LDEzIEBAIGVudW0gQ29udGVudENoYW5nZVR5cGUgewogCiBjbGFzcyBCb3JkZXJFZGdlOwogY2xh
c3MgSW1hZ2VCdWZmZXI7Ci1jbGFzcyBMZWdhY3lJbmxpbmVGbG93Qm94OwogY2xhc3MgUmVuZGVy
VGV4dEZyYWdtZW50OwogY2xhc3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwog
CituYW1lc3BhY2UgSW5saW5lSXRlcmF0b3IgeworY2xhc3MgSW5saW5lQm94SXRlcmF0b3I7Cit9
OworCiBlbnVtIGNsYXNzIEJveFNpZGVGbGFnIDogdWludDhfdDsKIHVzaW5nIEJveFNpZGVTZXQg
PSBPcHRpb25TZXQ8Qm94U2lkZUZsYWc+OwogdXNpbmcgQm9yZGVyRWRnZXMgPSBSZWN0RWRnZXM8
Qm9yZGVyRWRnZT47CkBAIC0yMTAsOSArMjEzLDkgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRC
b3JkZXIoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgYm9v
bCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSA9IHRydWUpOwogICAgIGJvb2wgcGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBOaW5lUGll
Y2VJbWFnZSYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92
ZXIpOwogICAgIHZvaWQgcGFpbnRCb3hTaGFkb3coY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgU2hhZG93U3R5bGUsIGJvb2wgaW5jbHVkZUxv
Z2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVl
KTsKLSAgICB2b2lkIHBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgQ29sb3ImLCBjb25zdCBGaWxsTGF5ZXImLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KiAgPSBudWxscHRyLCBj
b25zdCBMYXlvdXRTaXplJiA9IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21w
b3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVj
dCA9IG51bGxwdHIsIEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29s
b3JVc2UpOworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8m
LCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNr
Z3JvdW5kQmxlZWRBdm9pZGFuY2UsIGNvbnN0IElubGluZUl0ZXJhdG9yOjpJbmxpbmVCb3hJdGVy
YXRvciYsIGNvbnN0IExheW91dFNpemUmID0gTGF5b3V0U2l6ZSgpLCBDb21wb3NpdGVPcGVyYXRv
ciA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3Jv
dW5kT2JqZWN0ID0gbnVsbHB0ciwgQmFzZUJhY2tncm91bmRDb2xvclVzYWdlID0gQmFzZUJhY2tn
cm91bmRDb2xvclVzZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBs
aWVkVG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0ZVBhaW50UG9zdGlvbiwg
QmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KiAgPSBu
dWxscHRyKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVk
VG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0ZVBhaW50UG9zdGlvbiwgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94SXRl
cmF0b3ImKSBjb25zdDsKIAogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRl
cm1pbmUgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIHBvc2l0aW9uLgogICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGlu
ZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwpAQCAt
MjU2LDcgKzI1OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgcGFp
bnRSZWN0LCBSZW5kZXJFbGVtZW50KiA9IG51bGxwdHIpIGNvbnN0OwogICAgIGJvb2wgYm9yZGVy
T2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb25zdCBGbG9hdFNpemUmIGNvbnRleHRTY2FsZSkgY29u
c3Q7CiAgICAgYm9vbCBib3JkZXJPYnNjdXJlc0JhY2tncm91bmQoKSBjb25zdDsKLSAgICBSb3Vu
ZGVkUmVjdCBiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNv
bnN0IEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UsIGNvbnN0IExlZ2FjeUlubGluZUZsb3dCb3gqICwgY29uc3QgTGF5b3V0U2l6ZSYs
IGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSkgY29uc3Q7CisgICAgUm91bmRlZFJlY3QgYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRG
b3JCbGVlZEF2b2lkYW5jZShjb25zdCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRSZWN0
JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5l
Qm94SXRlcmF0b3ImLCBjb25zdCBMYXlvdXRTaXplJiwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdDsKICAgICBMYXlvdXRSZWN0
IGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29uc3QgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSkgY29u
c3Q7CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0
eShHcmFwaGljc0NvbnRleHQmLCBJbWFnZSYsIGNvbnN0IHZvaWQqLCBjb25zdCBMYXlvdXRTaXpl
Jik7CkBAIC0zMDcsNyArMzEwLDcgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFNpemUgY2FsY3Vs
YXRlRmlsbFRpbGVTaXplKGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFNpemUmIHNjYWxl
ZFBvc2l0aW9uaW5nQXJlYVNpemUpIGNvbnN0OwogCi0gICAgUm91bmRlZFJlY3QgZ2V0QmFja2dy
b3VuZFJvdW5kZWRSZWN0KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93
Qm94KiAsIExheW91dFVuaXQgaW5saW5lQm94V2lkdGgsIExheW91dFVuaXQgaW5saW5lQm94SGVp
Z2h0LAorICAgIFJvdW5kZWRSZWN0IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChjb25zdCBMYXlv
dXRSZWN0JiwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJiwgTGF5b3V0
VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCiAgICAgICAg
IGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBmaXhlZEJhY2tncm91bmRQYWludHNJbkxvY2FsQ29v
cmRpbmF0ZXMoKSBjb25zdDsKQEAgLTMyNiw3ICszMjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRSZWN0Jiwg
Y29uc3QgUGF0aCYsIGNvbnN0IEJvcmRlckVkZ2VzJiwKICAgICAgICAgZmxvYXQgdGhpY2tuZXNz
LCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hTaWRlLCBjb25zdCBSZW5kZXJTdHlsZSYsCiAgICAg
ICAgIENvbG9yLCBCb3JkZXJTdHlsZSwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwotICAg
IHZvaWQgcGFpbnRNYXNrRm9yVGV4dEZpbGxCb3goSW1hZ2VCdWZmZXIqLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94KiAsIGNvbnN0IExheW91dFJlY3QmKTsKKyAg
ICB2b2lkIHBhaW50TWFza0ZvclRleHRGaWxsQm94KEltYWdlQnVmZmVyKiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yJiwgY29uc3QgTGF5
b3V0UmVjdCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjRlNTMzYTY3OTBjNTMzNjIxNGE0ZjUyNDNi
NWJmZWI3YjliODgwNS4uMDAwMmNhNzcyZDQ1OWU5Mjc4MGM5MDAwNTU0MzgwNzI4ZmUzZjY2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC00NCw3ICs0NCw3
IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JCb3gu
aCIKKyNpbmNsdWRlICJJbmxpbmVJdGVyYXRvcklubGluZUJveC5oIgogI2luY2x1ZGUgIklubGlu
ZUl0ZXJhdG9yTGluZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWludEluZm8u
aCIKQEAgLTY5Miw5ICs2OTIsOSBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50
SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAgIHJldHVy
biBkcmF3UmVzdWx0OwogfQogCi1ib29sIFJlbmRlckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFw
cGxpZWRUb0JhY2tncm91bmQoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGNvbnN0IExlZ2FjeUlubGluZUZsb3dC
b3gqKSBjb25zdAorYm9vbCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9C
YWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94
SXRlcmF0b3ImKSBjb25zdAogewotICAgIGlmICghUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJveFNo
YWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChwYWludE9mZnNldCwgYmxlZWRBdm9pZGFu
Y2UpKQorICAgIGlmICghUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJveFNoYWRvd1Nob3VsZEJlQXBw
bGllZFRvQmFja2dyb3VuZChwYWludE9mZnNldCwgYmxlZWRBdm9pZGFuY2UsIHsgfSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiAhY29uc3RfY2FzdDxSZW5kZXJJbWFnZSo+
KHRoaXMpLT5iYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChwYWludE9mZnNldCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IGYxZGYyMmJhYzBjOTJlYjBiNTYz
MmNlMTk1MWJjYThhMjlkMTI3MzMuLjhhYWNkNGMwNzNkYzg5Nzk2NzBkNzVkMTNlY2QyMTc0YmM5
YzI3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMjEsNyAr
MTIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
JiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAgICAgYm9vbCBub2RlQXRQb2lu
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9j
YXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgZmluYWw7CiAKLSAgICBib29sIGJveFNoYWRvd1Nob3Vs
ZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSwgY29uc3QgTGVnYWN5SW5saW5lRmxvd0JveCopIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBj
b25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94SXRlcmF0b3ImKSBjb25zdCBmaW5hbDsKIAog
ICAgIEludFNpemUgaW1hZ2VTaXplRm9yRXJyb3IoQ2FjaGVkSW1hZ2UqKSBjb25zdDsKICAgICB2
b2lkIHJlcGFpbnRPck1hcmtGb3JMYXlvdXQoSW1hZ2VTaXplQ2hhbmdlVHlwZSwgY29uc3QgSW50
UmVjdCogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
CmluZGV4IDlkZDk3MzAzNWJhNTFiM2QyNzJjOGYzOTQxZTlmM2ZmNjBmMGIxYTkuLmI1ZGIxMWQ1
OTA1YWE3MGE4MDkzMWFmOWJlZmY0YTIwNzBiNGYyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RS
ZXN1bHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JJbmxpbmVCb3guaCIKICNpbmNsdWRlICJM
YXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRl
ICJSZW5kZXJDaGlsZEl0ZXJhdG9yLmgiCkBAIC03ODcsNyArNzg4LDcgQEAgdm9pZCBSZW5kZXJU
YWJsZTo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHAKICAgICBhZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRpbmcocmVjdCk7CiAg
ICAgCiAgICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlID0gZGV0ZXJt
aW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlKHBhaW50SW5mby5jb250ZXh0KCkpOwotICAgIGlm
ICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKHJlY3QubG9jYXRpb24oKSwg
YmxlZWRBdm9pZGFuY2UpKQorICAgIGlmICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNr
Z3JvdW5kKHJlY3QubG9jYXRpb24oKSwgYmxlZWRBdm9pZGFuY2UsIHsgfSkpCiAgICAgICAgIHBh
aW50Qm94U2hhZG93KHBhaW50SW5mbywgcmVjdCwgc3R5bGUoKSwgU2hhZG93U3R5bGU6Ok5vcm1h
bCk7CiAgICAgcGFpbnRCYWNrZ3JvdW5kKHBhaW50SW5mbywgcmVjdCwgYmxlZWRBdm9pZGFuY2Up
OwogICAgIHBhaW50Qm94U2hhZG93KHBhaW50SW5mbywgcmVjdCwgc3R5bGUoKSwgU2hhZG93U3R5
bGU6Okluc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAKaW5kZXggNGQ0MzE5MjIyZDc5Y2NkYTg1ZDNiNTA5ZDViOTQzOGQyN2MxMmE3ZS4uYTZiYmRi
NDVmMzdlMmExYmE0NDVhN2M0MTMxYjU1Yzg4OTA0NjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQg
UmVuZGVyVGFibGVDZWxsOjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mCiAgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgcGFpbnRS
ZWN0KTsKIH0KIAotYm9vbCBSZW5kZXJUYWJsZUNlbGw6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGll
ZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2ludCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSwgY29uc3QgTGVnYWN5SW5saW5lRmxvd0JveCopIGNvbnN0Citib29sIFJlbmRlclRhYmxlQ2Vs
bDo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0IExheW91dFBvaW50
JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5l
Qm94SXRlcmF0b3ImKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCAwNmVmNDg0MjdhMjgzZjlmMzg5
MGViOWRjNmE4M2FhNGFmOTAzYzk3Li5kYjliYWFlY2VjYzI4NWY0OWI4MmYwOWE4YmJiOWUzMGVl
MzYxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBA
IC0xNTEsNyArMTUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50
TWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogCi0gICAgYm9v
bCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGNvbnN0IExlZ2FjeUlubGlu
ZUZsb3dCb3gqKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBw
bGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIEJhY2tncm91
bmRCbGVlZEF2b2lkYW5jZSwgY29uc3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9y
JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIo
UmVuZGVyRWxlbWVudCYsIGNvbnN0IExheW91dFBvaW50JiwgYm9vbCogb2Zmc2V0RGVwZW5kc09u
UG9pbnQgPSAwKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFJlY3Q+
IGNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29u
c3Qgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>