<?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>229719</bug_id>
          
          <creation_ts>2021-08-31 09:59:27 -0700</creation_ts>
          <short_desc>[LFC][IFC] Do not generate integration runs out of IFC&apos;s display runs</short_desc>
          <delta_ts>2021-09-01 18:34:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</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>1788949</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-08-31 09:59:27 -0700</bug_when>
    <thetext>They pretty much the same set of runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788950</commentid>
    <comment_count>1</comment_count>
      <attachid>436899</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-31 10:06:55 -0700</bug_when>
    <thetext>Created attachment 436899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788963</commentid>
    <comment_count>2</comment_count>
      <attachid>436909</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-31 10:47:06 -0700</bug_when>
    <thetext>Created attachment 436909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789210</commentid>
    <comment_count>3</comment_count>
      <attachid>436990</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-31 20:41:34 -0700</bug_when>
    <thetext>Created attachment 436990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789324</commentid>
    <comment_count>4</comment_count>
      <attachid>437030</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-09-01 08:15:42 -0700</bug_when>
    <thetext>Created attachment 437030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789473</commentid>
    <comment_count>5</comment_count>
      <attachid>437066</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-09-01 14:07:55 -0700</bug_when>
    <thetext>Created attachment 437066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789579</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-01 18:33:10 -0700</bug_when>
    <thetext>Committed r281905 (241218@main): &lt;https://commits.webkit.org/241218@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437066.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789580</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-01 18:34:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/82655128&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436899</attachid>
            <date>2021-08-31 10:06:55 -0700</date>
            <delta_ts>2021-08-31 10:59:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229719-20210831100654.patch</filename>
            <type>text/plain</type>
            <size>28651</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0OWIxNWE0NThiNzYw
NWZjZmU1MzliY2Y3NTVmMTljNDNmNTk0Zi4uZWI2OGYyNDcxMDJiZTIxOGY3ZWIwYzJmMzI0ZmUx
N2FkN2NkM2IzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA4LTMxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBn
ZW5lcmF0ZSBpbnRlZ3JhdGlvbiBydW5zIG91dCBvZiBJRkMncyBkaXNwbGF5IHJ1bnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVncmF0aW9uIHJ1
bnMgYW5kIElGQyBkaXNwbGF5IHJ1bnMgaG9sZCB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YgZGF0YSwg
c28gbGV0J3Mgbm90IGR1cGxpY2F0ZSB0aGVuIGZvciB0aGUgaW50ZWdyYXRpb24gbGF5ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6VGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpi
dWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UnVuOjpUZXh0OjpvcmlnaW5hbENv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSdW46OlRleHQ6OnJlbmRl
cmVkQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJ1bjo6c2V0VmVy
dGljYWxQb3NpdGlvbkludGVncmFsKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50QnVp
bGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjptYWtlQWRqdXN0ZWRD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorCiAy
MDIxLTA4LTMxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJbnRlZ3JhdGlvbl0gUmVtb3ZlIHVudXNlZCBMYXlvdXRJbnRlZ2F0aW9uOjpSdW4gZnVuY3Rp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNTM5NmFmMGNjOWZiZTc3NDY5N2ZkN2VlYWUwZjQ0ZTI2YzA0MDI0ZS4uMDJhYmM3
MTZiYWZhMTYzYWE1OGQ5MjZiYmE3MmQzNGE5NmQzNTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE3NSw3ICsyMTc1LDYg
QEAKIAkJNkZCN0QyREUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUw
RkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVB
IC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1NjYwMEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDQkRCOTcy
NjVERjJDODAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQ0JEQjk1MjY1
REYyQzcwMDIxRUE3QiAvKiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNkZDRTFBMUEy
MjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RkQwOTU0MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2Vv
bWV0cnlSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFMTk4MTcyMTc4
Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyog
SW5saW5lQ29udGVudEJyZWFrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2RkU2MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0
dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkZFNjM2RTcyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNTUs
NyArMTAwNTQsNiBAQAogCQk2RkM1Q0E5NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0
aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAvKiBU
YWJsZUZvcm1hdHRpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkNCREI5NTI2NURGMkM3MDAyMUVB
N0IgLyogTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0MyAv
KiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlv
blJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkQwOTU0MTI1MTExNTIyMDA5
ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExheW91dEdlb21ldHJ5UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lQ29udGVudEJyZWFrZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5saW5lQ29udGVudEJyZWFrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI5MDYyLDcgKzI5MDYwLDYgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyog
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJBQjUyNEIzMjY1NjAw
Njc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8sCiAJCQkJRTQzMTJB
QjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5oICovLAot
CQkJCTZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oICov
LAogCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0
ZXJhdG9yLmNwcCAqLywKIAkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAogCQkJCUU0QTY2NEM1MjUyMUI3NzgwMDcwODFEQyAv
KiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLApAQCAtMzM1MTIs
NyArMzM1MDksNiBAQAogCQkJCUU0RDMzRjQ2MjUyQzUwRkMwMDgzN0QwNSAvKiBMYXlvdXRJbnRl
Z3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUJB
QkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTZGQ0UxQTFBMjI2MThBQkQwMDRG
MDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0
Q0MyNTIxRDRBRjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0Uy
NTIxRDRDOTAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRo
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3Nz
L0Rpc3BsYXlUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlU
ZXh0Qm94LmNwcAppbmRleCBiMDQ3YjdmZmJhZTE2YmFkMmFhY2VlODIyNDlmYmU2OGZmYjU2OWY3
Li5kYjIzMTRkYjQ3NDMwMDhlYjYwNmYyZmYxMjc4ZDQ2MTUxMjhhZjBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5VGV4dEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwCkBAIC01Myw3ICs1Myw3IEBA
IFN0cmluZyBUZXh0Qm94OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKICAgICBUZXh0U3RyZWFt
IHN0cmVhbTsKIAogICAgIHN0cmVhbSA8PCBib3hOYW1lKCkgPDwgIiAiIDw8IGFic29sdXRlQm94
UmVjdCgpIDw8ICIgKCIgPDwgdGhpcyA8PCAiKSI7Ci0gICAgYXV0byB0ZXh0Q29udGVudCA9IHRl
eHQoKS5vcmlnaW5hbENvbnRlbnQoKS5zdWJzdHJpbmcodGV4dCgpLnN0YXJ0KCksIHRleHQoKS5s
ZW5ndGgoKSk7CisgICAgYXV0byB0ZXh0Q29udGVudCA9IHRleHQoKS5vcmlnaW5hbENvbnRlbnQo
KS5zdWJzdHJpbmcodGV4dCgpLnN0YXJ0KCksIHRleHQoKS5sZW5ndGgoKSkudG9TdHJpbmcoKTsK
ICAgICB0ZXh0Q29udGVudC5yZXBsYWNlV2l0aExpdGVyYWwoJ1xcJywgIlxcXFwiKTsKICAgICB0
ZXh0Q29udGVudC5yZXBsYWNlV2l0aExpdGVyYWwoJ1xuJywgIlxcbiIpOwogICAgIGNvbnN0IHNp
emVfdCBtYXhQcmludGVkTGVuZ3RoID0gODA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCA0MzIwMTBiNmViOGNiZmI4ZWE1
MWUxMzRiNjI1NTY3ZmFkNWQ4YjNiLi4xYTEzYTJhMjllMTE0NjcyNjJhNzcwOWIxMGM5ZmU2MjYy
YzMwYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBMYXlvdXQgewogCisjZGVmaW5lIEFMTE9XX1JPT1RfQU5EX0xJTkVfU1BBTk5JTkdf
SU5MSU5FX0JPWCAwCiAKIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6SW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290
LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKICAgICA6IG1fZm9ybWF0
dGluZ0NvbnRleHRSb290KGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKQEAgLTQ3LDExICs0OCwxMiBA
QCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRl
cihjb25zdCBDb250YWluZXJCb3gmIGZvcgogdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXI6OmJ1aWxkKGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGluZUNvbnRlbnQsIGNv
bnN0IExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IElubGluZUxheW91dFBvaW50JiBsaW5lQm94TG9n
aWNhbFRvcExlZnQsIGNvbnN0IHNpemVfdCBsaW5lSW5kZXgpCiB7CiAgICAgYXV0byYgZm9ybWF0
dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7CisjaWYgQUxMT1dfUk9PVF9BTkRf
TElORV9TUEFOTklOR19JTkxJTkVfQk9YCiAgICAgLy8gRXZlcnkgbGluZSBzdGFydHMgd2l0aCBh
IHJvb3QgcnVuLCBldmVuIHRoZSBlbXB0eSBvbmVzLgogICAgIGF1dG8gcm9vdElubGluZUJveFJl
Y3QgPSBsaW5lQm94LmxvZ2ljYWxSZWN0Rm9yUm9vdElubGluZUJveCgpOwogICAgIHJvb3RJbmxp
bmVCb3hSZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwogICAgIGZvcm1hdHRpbmdT
dGF0ZS5hZGRSdW4oeyBsaW5lSW5kZXgsIFJ1bjo6VHlwZTo6Um9vdElubGluZUJveCwgcm9vdCgp
LCByb290SW5saW5lQm94UmVjdCwgcm9vdElubGluZUJveFJlY3QsIHsgfSwgeyB9LCAgbGluZUJv
eC5yb290SW5saW5lQm94KCkuaGFzQ29udGVudCgpfSk7Ci0KKyNlbmRpZgogICAgIC8vIFNwYW5u
aW5nIGlubGluZSBib3hlcyBzdGFydCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUu
CiAgICAgYXV0byBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJbmRleCA9IGZvcm1hdHRpbmdTdGF0ZS5y
dW5zKCkuc2l6ZSgpOwogICAgIGNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVDb250
ZW50KGxpbmVDb250ZW50LCBsaW5lQm94LCBsaW5lQm94TG9naWNhbFRvcExlZnQsIGxpbmVJbmRl
eCk7CkBAIC0xODEsNyArMTgzLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6
OmNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVDb250ZW50KGNvbnMKICAgICBmb3Jt
YXR0aW5nU3RhdGUubGluZXMoKS5sYXN0KCkuc2V0TmVlZHNJbnRlZ3JhbFBvc2l0aW9uKGxpbmVO
ZWVkSW50ZWdyYWxQb3NpdGlvbik7CiB9CiAKLXZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyOjpjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lU3Bhbm5pbmdJbmxpbmVCb3hl
cyhjb25zdCBMaW5lQm94JiBsaW5lQm94LCBjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgbGluZUJv
eExvZ2ljYWxUb3BMZWZ0LCBjb25zdCBzaXplX3QgbGluZUluZGV4LCBzaXplX3QgbGluZVNwYW5u
aW5nSW5saW5lQm94SW5kZXgpCit2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3Jl
YXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94ZXMoY29uc3Qg
TGluZUJveCYgbGluZUJveCwgY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIGxpbmVCb3hMb2dpY2Fs
VG9wTGVmdCwgY29uc3Qgc2l6ZV90IC8qbGluZUluZGV4Ki8sIHNpemVfdCAvKmxpbmVTcGFubmlu
Z0lubGluZUJveEluZGV4Ki8pCiB7CiAgICAgaWYgKCFsaW5lQm94Lmhhc0NvbnRlbnQoKSkgewog
ICAgICAgICAvLyBXaGVuIGEgc3Bhbm5pbmcgaW5saW5lIGJveCAoZS5nLiA8ZGl2PnRleHQ8c3Bh
bj48YnI+PC9zcGFuPjwvZGl2PikgbGFuZHMgb24gYW4gZW1wdHkgbGluZQpAQCAtMjAyLDggKzIw
NCw5IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVSdW5zQW5kVXBk
YXRlR2VvbWV0cnlGb3JMaW5lU3Bhbm5pbmdJbmxpCiAgICAgICAgIGF1dG8gaW5saW5lQm94Qm9y
ZGVyQm94ID0gbGluZUJveC5sb2dpY2FsQm9yZGVyQm94Rm9ySW5saW5lQm94KGxheW91dEJveCwg
Ym94R2VvbWV0cnkpOwogICAgICAgICBpbmxpbmVCb3hCb3JkZXJCb3gubW92ZUJ5KGxpbmVCb3hM
b2dpY2FsVG9wTGVmdCk7CiAKKyNpZiBBTExPV19ST09UX0FORF9MSU5FX1NQQU5OSU5HX0lOTElO
RV9CT1gKICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLnJ1bnMoKS5pbnNlcnQobGluZVNwYW5uaW5n
SW5saW5lQm94SW5kZXgrKywgeyBsaW5lSW5kZXgsIFJ1bjo6VHlwZTo6Tm9uUm9vdElubGluZUJv
eCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIGlubGluZUJveEJvcmRlckJveCwgeyB9
LCB7IH0sIGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSwgdHJ1ZSB9KTsKLQorI2VuZGlmCiAg
ICAgICAgIGF1dG8gaW5saW5lQm94U2l6ZSA9IExheW91dFNpemUgeyBMYXlvdXRVbml0Ojpmcm9t
RmxvYXRDZWlsKGlubGluZUJveEJvcmRlckJveC53aWR0aCgpKSwgTGF5b3V0VW5pdDo6ZnJvbUZs
b2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJCb3guaGVpZ2h0KCkpIH07CiAgICAgICAgIGF1dG8gbG9n
aWNhbFJlY3QgPSBSZWN0IHsgTGF5b3V0UG9pbnQgeyBpbmxpbmVCb3hCb3JkZXJCb3gudG9wTGVm
dCgpIH0sIGlubGluZUJveFNpemUgfTsKICAgICAgICAgLy8gTWlkZGxlIG9yIGVuZCBvZiB0aGUg
aW5saW5lIGJveC4gTGV0J3Mgc3RyZXRjaCB0aGUgYm94IGFzIG5lZWRlZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVSdW4uaAppbmRleCAwMmFhYjc1YzJlMTQ1YmI1MWFhMjc2MjA1MjJkMTk1YmE4
MjdlZjA4Li5mMmYwOWQxOTViYTc4MjllMTcxODQ0ZWMwNWY0M2ZlNDM5ZmYzOTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lUnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZVJ1bi5oCkBAIC00NCw4ICs0NCw4IEBAIHN0cnVjdCBSdW4gewog
ICAgICAgICBzaXplX3Qgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0OyB9CiAgICAgICAg
IHNpemVfdCBlbmQoKSBjb25zdCB7IHJldHVybiBzdGFydCgpICsgbGVuZ3RoKCk7IH0KICAgICAg
ICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9Ci0gICAgICAgIFN0
cmluZyBvcmlnaW5hbENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpbmFsQ29udGVudDsg
fQotICAgICAgICBTdHJpbmcgcmVuZGVyZWRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1
c3RlZENvbnRlbnRUb1JlbmRlcjsgfQorICAgICAgICBTdHJpbmdWaWV3IG9yaWdpbmFsQ29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZ1ZpZXcobV9vcmlnaW5hbENvbnRlbnQpLnN1YnN0cmlu
ZyhtX3N0YXJ0LCBtX2xlbmd0aCk7IH0KKyAgICAgICAgU3RyaW5nVmlldyByZW5kZXJlZENvbnRl
bnQoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyLmlzTnVsbCgpID8g
b3JpZ2luYWxDb250ZW50KCkgOiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyOyB9CiAKICAgICAg
ICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc0h5cGhlbjsgfQogCkBAIC0x
MTEsNiArMTExLDggQEAgc3RydWN0IFJ1biB7CiAKICAgICBzaXplX3QgbGluZUluZGV4KCkgY29u
c3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KIAorICAgIHZvaWQgc2V0VmVydGljYWxQb3NpdGlv
bkludGVncmFsKCk7CisKIHByaXZhdGU6CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4Owog
ICAgIGNvbnN0IFR5cGUgbV90eXBlOwpAQCAtMTQ2LDYgKzE0OCwxMiBAQCBpbmxpbmUgUnVuOjpU
ZXh0OjpUZXh0KHNpemVfdCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBvcmln
aW5hbENvbnRlbgogewogfQogCitpbmxpbmUgdm9pZCBSdW46OnNldFZlcnRpY2FsUG9zaXRpb25J
bnRlZ3JhbCgpCit7CisgICAgbV9sb2dpY2FsUmVjdC5zZXRUb3Aocm91bmRUb0ludChtX2xvZ2lj
YWxSZWN0LnRvcCgpKSk7CisgICAgbV9pbmtPdmVyZmxvdy5zZXRUb3Aocm91bmRUb0ludChtX2lu
a092ZXJmbG93LnRvcCgpKSk7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVj
dC5oCmluZGV4IDI5YWUyOTUzMDdlOGRlNzNmNGJhOTczYWQ3MzFkMmY2YjQyNzRlZTcuLmM0YzI1
ZDllYzQ4NGQ1OWI1ZmYwMjJiYmEwMmI1YjRmMWNjY2ZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVS
ZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogICAgIElubGluZVJlY3QoSW5saW5lTGF5
b3V0VW5pdCB0b3AsIElubGluZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0
aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpOwogICAgIElubGluZVJlY3QoY29uc3QgSW5saW5l
TGF5b3V0UG9pbnQmIHRvcExlZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91
dFVuaXQgaGVpZ2h0KTsKICAgICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0
b3BMZWZ0LCBjb25zdCBJbmxpbmVMYXlvdXRTaXplJik7CisgICAgSW5saW5lUmVjdChjb25zdCBG
bG9hdFJlY3QmKTsKICAgICAKICAgICBJbmxpbmVMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwogICAg
IElubGluZUxheW91dFVuaXQgbGVmdCgpIGNvbnN0OwpAQCAtMTE0LDYgKzExNSwxMSBAQCBpbmxp
bmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVm
dCwgY29uc3QgSW5saW5lTGF5bwogewogfQogCitpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCisgICAgOiBJbmxpbmVSZWN0KHJlY3QueSgpLCByZWN0
LngoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKQoreworfQorCiAjaWYgQVNTRVJUX0VO
QUJMRUQKIGlubGluZSB2b2lkIElubGluZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlvbigpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKaW5kZXggYmZjOWNiMmIwMzk1YzVjZmIz
MWViMmM3YTllMTkzOGQzY2E1ZjI0ZC4uYjA3YjEwZTBjOGUwZDQyZTk2YTg0YzNiOTM1ZmI5ZmM1
ODQwZjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaApAQCAtMjcsOCAr
MjcsOCBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNs
dWRlICJJbmxpbmVMaW5lUnVuLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgi
Ci0jaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW4uaCIKICNpbmNsdWRlIDx3dGYvSXRlcmF0
b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBMaW5lTGF5b3V0OwogY2xhc3MgUnVuSXRlcmF0
b3I7CiBjbGFzcyBUZXh0UnVuSXRlcmF0b3I7CiAKK3VzaW5nIFJ1biA9IExheW91dDo6UnVuOwor
CiBzdHJ1Y3QgSW5saW5lQ29udGVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElubGluZUNvbnRlbnQ+
IHsKICAgICBzdGF0aWMgUmVmPElubGluZUNvbnRlbnQ+IGNyZWF0ZShjb25zdCBMaW5lTGF5b3V0
JiBsaW5lTGF5b3V0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IElubGluZUNvbnRlbnQobGluZUxh
eW91dCkpOyB9CiAgICAgfklubGluZUNvbnRlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBjOTRiYjYzYmYxZWJkYWUzN2U5YTdj
Y2UyZjBjZjRkNzZlMjFkYWY5Li5mM2Y1OTk3MDZjMjM3ODMxNTc1YmExMzk2ZDVkNGQyNmYxOTBj
NDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIu
Y3BwCkBAIC0yOSwxMCArMjksMTAgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKIAogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIklu
bGluZUxpbmVSdW4uaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUg
IkxheW91dEludGVncmF0aW9uQm94VHJlZS5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9u
SW5saW5lQ29udGVudC5oIgotI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVuLmgiCiAjaW5j
bHVkZSAiTGF5b3V0UmVwbGFjZWRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgpAQCAtNjUsMzggKzY1LDI3IEBAIElubGluZUNvbnRl
bnRCdWlsZGVyOjpJbmxpbmVDb250ZW50QnVpbGRlcihjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRl
JiBsYXlvdXRTdGF0CiB7CiB9CiAKLXZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkKGNv
bnN0IExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUs
IElubGluZUNvbnRlbnQmIGlubGluZUNvbnRlbnQpIGNvbnN0Cit2b2lkIElubGluZUNvbnRlbnRC
dWlsZGVyOjpidWlsZChMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYgaW5saW5lRm9ybWF0
dGluZ1N0YXRlLCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50KSBjb25zdAogewogICAgIGNy
ZWF0ZURpc3BsYXlSdW5zKGlubGluZUZvcm1hdHRpbmdTdGF0ZS5ydW5zKCksIGlubGluZUNvbnRl
bnQpOwogICAgIGNyZWF0ZURpc3BsYXlMaW5lcyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMo
KSwgaW5saW5lQ29udGVudCk7CiB9CiAKLXZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0
ZURpc3BsYXlSdW5zKGNvbnN0IExheW91dDo6SW5saW5lUnVucyYgcnVucywgSW5saW5lQ29udGVu
dCYgaW5saW5lQ29udGVudCkgY29uc3QKK3ZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0
ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5lUnVucyYgcnVucywgSW5saW5lQ29udGVudCYgaW5s
aW5lQ29udGVudCkgY29uc3QKIHsKLSAgICBpZiAocnVucy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlubGluZUNvbnRlbnQucnVucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJ1
bnMuc2l6ZSgpKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbG9vcCB3aGVuIHdlIHRyYW5z
aXRpb25lZCB0byB0aGUgInJ1biBvbmx5IiBzZXR1cCAoaS5lLiBlYWNoIGlubGluZSBib3ggaXMg
cmVwcmVzZW50ZWQgYXMgYSBydW4gYXMgd2VsbCkgCiAgICAgZm9yIChhdXRvJiBydW4gOiBydW5z
KSB7Ci0gICAgICAgIGlmIChhdXRvIHRleHQgPSBydW4udGV4dCgpKSB7Ci0gICAgICAgICAgICBp
bmxpbmVDb250ZW50LnJ1bnMuYXBwZW5kKHsgcnVuLmxpbmVJbmRleCgpLCBydW4ubGF5b3V0Qm94
KCksIHJ1bi5sb2dpY2FsUmVjdCgpLCBydW4uaW5rT3ZlcmZsb3coKSwgUnVuOjpFeHBhbnNpb24g
eyBydW4uZXhwYW5zaW9uKCkuYmVoYXZpb3IsIHJ1bi5leHBhbnNpb24oKS5ob3Jpem9udGFsRXhw
YW5zaW9uIH0KLSAgICAgICAgICAgICAgICAsIFJ1bjo6VGV4dCB7IHRleHQtPnN0YXJ0KCksIHRl
eHQtPmxlbmd0aCgpLCB0ZXh0LT5vcmlnaW5hbENvbnRlbnQoKSwgdGV4dC0+cmVuZGVyZWRDb250
ZW50KCksIHRleHQtPmhhc0h5cGhlbigpIH0gfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXJ1bi5p
c1Jvb3RJbmxpbmVCb3goKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRlYWNoIHRoZSBydW4g
aXRlcmF0b3JzIHRvIGlnbm9yZSB0aGUgcm9vdCBpbmxpbmUgYm94IHJ1bnMuCisgICAgICAgIGlm
IChydW4uaXNOb25Sb290SW5saW5lQm94KCkpIHsKICAgICAgICAgICAgIGF1dG8mIGdlb21ldHJ5
ID0gbV9sYXlvdXRTdGF0ZS5nZW9tZXRyeUZvckJveChydW4ubGF5b3V0Qm94KCkpOwotICAgICAg
ICAgICAgaWYgKCFydW4uaXNJbmxpbmVCb3goKSB8fCAhcnVuLmlzTGluZVNwYW5uaW5nKCkpIHsK
LSAgICAgICAgICAgICAgICAvLyBGSVhNRTogUnVuIGl0ZXJhdG9ycyB3aXRoICh0ZXh0KXJ1bnMg
c3Bhbm5pbmcgb3ZlciBtdWx0aXBsZSBsaW5lcyBleHBlY3Qgbm8gImluLWJldHdlZW4iIHJ1bnMg
KGUuZy4gbGluZSBzcGFubmluZyBvciByb290IGlubGluZSBib3hlcykuCi0gICAgICAgICAgICAg
ICAgaW5saW5lQ29udGVudC5ydW5zLmFwcGVuZCh7IHJ1bi5saW5lSW5kZXgoKSwgcnVuLmxheW91
dEJveCgpLCBydW4ubG9naWNhbFJlY3QoKSwgcnVuLmlua092ZXJmbG93KCksIHsgfSwgeyB9IH0p
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJ1bi5pc0lubGluZUJveCgpKSB7Ci0g
ICAgICAgICAgICAgICAgYXV0byBoYXNTY3JvbGxhYmxlQ29udGVudCA9IFsmXSB7Ci0gICAgICAg
ICAgICAgICAgICAgIC8vIEluIHN0YW5kYXJkcyBtb2RlLCBpbmxpbmUgYm94ZXMgYWx3YXlzIHN0
YXJ0IHdpdGggYW4gaW1hZ2luYXJ5IHN0cnV0LgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9sYXlvdXRTdGF0ZS5pblN0YW5kYXJkc01vZGUoKSB8fCBydW4uaGFzQ29udGVudCgpIHx8IGdl
b21ldHJ5Lmhvcml6b250YWxCb3JkZXIoKSB8fCAoZ2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmco
KSAmJiBnZW9tZXRyeS5ob3Jpem9udGFsUGFkZGluZygpLnZhbHVlKCkpOwotICAgICAgICAgICAg
ICAgIH07Ci0gICAgICAgICAgICAgICAgaW5saW5lQ29udGVudC5ub25Sb290SW5saW5lQm94ZXMu
YXBwZW5kKHsgcnVuLmxpbmVJbmRleCgpLCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVj
dCgpLCBoYXNTY3JvbGxhYmxlQ29udGVudCgpIH0pOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYXV0byBoYXNTY3JvbGxhYmxlQ29udGVudCA9IFsmXSB7CisgICAgICAgICAgICAgICAgLy8g
SW4gc3RhbmRhcmRzIG1vZGUsIGlubGluZSBib3hlcyBhbHdheXMgc3RhcnQgd2l0aCBhbiBpbWFn
aW5hcnkgc3RydXQuCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUuaW5TdGFu
ZGFyZHNNb2RlKCkgfHwgcnVuLmhhc0NvbnRlbnQoKSB8fCBnZW9tZXRyeS5ob3Jpem9udGFsQm9y
ZGVyKCkgfHwgKGdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkgJiYgZ2VvbWV0cnkuaG9yaXpv
bnRhbFBhZGRpbmcoKS52YWx1ZSgpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBpbmxp
bmVDb250ZW50Lm5vblJvb3RJbmxpbmVCb3hlcy5hcHBlbmQoeyBydW4ubGluZUluZGV4KCksIHJ1
bi5sYXlvdXRCb3goKSwgcnVuLmxvZ2ljYWxSZWN0KCksIGhhc1Njcm9sbGFibGVDb250ZW50KCkg
fSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgbmVlZCBhIGRp
ZmZlcmVudCBhcHByb2FjaCB3aXRoIHBhcnRpYWwgbGF5b3V0IHdoZXJlIHRoZSBsYXlvdXQgY29k
ZSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBydW5zLgorICAgIGlubGluZUNvbnRlbnQucnVucyA9
IFdURk1vdmUocnVucyk7CiB9CiAKIHZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURp
c3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiBsaW5lcywgSW5saW5lQ29udGVu
dCYgaW5saW5lQ29udGVudCkgY29uc3QKQEAgLTEzMSwxMSArMTIwLDExIEBAIHZvaWQgSW5saW5l
Q29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxp
bmVzJiBsaW5lcywKICAgICAgICAgICAgIGF1dG8gcnVuTG9naWNhbFJlY3QgPSBydW4ubG9naWNh
bFJlY3QoKTsKICAgICAgICAgICAgIGlmICghYm94Lmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsK
ICAgICAgICAgICAgICAgICBhdXRvIGNoaWxkSW5rT3ZlcmZsb3cgPSBib3gubG9naWNhbFZpc3Vh
bE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKCZib3gucGFyZW50KCktPnN0eWxlKCkpOwotICAg
ICAgICAgICAgICAgIGNoaWxkSW5rT3ZlcmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC54KCksIHJ1
bkxvZ2ljYWxSZWN0LnkoKSk7CisgICAgICAgICAgICAgICAgY2hpbGRJbmtPdmVyZmxvdy5tb3Zl
KHJ1bkxvZ2ljYWxSZWN0LmxlZnQoKSwgcnVuTG9naWNhbFJlY3QudG9wKCkpOwogICAgICAgICAg
ICAgICAgIGxpbmVJbmtPdmVyZmxvd1JlY3QudW5pdGUoY2hpbGRJbmtPdmVyZmxvdyk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBhdXRvIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93ID0gYm94
LmxvZ2ljYWxMYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbigmYm94LnBhcmVudCgpLT5z
dHlsZSgpKTsKLSAgICAgICAgICAgIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93Lm1vdmUocnVuTG9n
aWNhbFJlY3QueCgpLCBydW5Mb2dpY2FsUmVjdC55KCkpOworICAgICAgICAgICAgY2hpbGRTY3Jv
bGxhYmxlT3ZlcmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC5sZWZ0KCksIHJ1bkxvZ2ljYWxSZWN0
LnRvcCgpKTsKICAgICAgICAgICAgIHNjcm9sbGFibGVPdmVyZmxvd1JlY3QudW5pdGUoY2hpbGRT
Y3JvbGxhYmxlT3ZlcmZsb3cpOwogICAgICAgICB9CiAgICAgICAgIC8vIENvbGxlY3Qgc2Nyb2xs
YWJsZSBvdmVyZmxvdyBmcm9tIGlubGluZSBib3hlcy4gQWxsIG90aGVyIGlubGluZSBsZXZlbCBi
b3hlcyAoZS5nIGF0b21pYyBpbmxpbmUgbGV2ZWwgYm94ZXMpIHN0cmV0Y2ggdGhlIGxpbmUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuaAppbmRleCAyMDdl
ZjE0MGZkMWZiNzE3MjVlN2EyYjE0MWUyOWZkNjgxNTk4OTk2Li4zYTE1ZTEwMTUxNDc2OWJjZjg5
YTFmYjBjNTU0ZTAyYmZlOTcwNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmgKQEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBJbmxpbmVDb250ZW50
QnVpbGRlciB7CiBwdWJsaWM6CiAgICAgSW5saW5lQ29udGVudEJ1aWxkZXIoY29uc3QgTGF5b3V0
OjpMYXlvdXRTdGF0ZSYsIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IEJveFRyZWUmKTsK
IAotICAgIHZvaWQgYnVpbGQoY29uc3QgTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmLCBJ
bmxpbmVDb250ZW50JikgY29uc3Q7CisgICAgdm9pZCBidWlsZChMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdTdGF0ZSYsIElubGluZUNvbnRlbnQmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IGNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91dDo6SW5saW5lUnVucyYsIElubGluZUNvbnRl
bnQmKSBjb25zdDsKKyAgICB2b2lkIGNyZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5lUnVu
cyYsIElubGluZUNvbnRlbnQmKSBjb25zdDsKICAgICB2b2lkIGNyZWF0ZURpc3BsYXlMaW5lcyhj
b25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiwgSW5saW5lQ29udGVudCYpIGNvbnN0OwogCiAgICAg
Y29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uTGluZUxheW91dC5jcHAKaW5kZXggZWUyMGQ0YmZmNmQwYTE1NTdlYzlhZWIzOGMyNGE3YzA2
YmU3OTA2ZC4uZmVkNTE2M2Q1NzYwY2IxZmNhNDdmYmFhYjE1ZjI5MzJiZTQ5MTUyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKQEAgLTU2MywxMSArNTYzLDExIEBAIHZvaWQg
TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zCiAgICAgICAgIHBoeXNpY2FsUGFpbnRPZmZzZXQubW92ZSh7IDAs
IC1ydW4ubG9naWNhbFJlY3QoKS5oZWlnaHQoKSB9KTsKICAgICB9CiAKLSAgICBhdXRvIHBoeXNp
Y2FsUmVjdCA9IFsmXShjb25zdCBhdXRvJiByZWN0KSB7CisgICAgYXV0byBwaHlzaWNhbFJlY3Qg
PSBbJl0oY29uc3QgYXV0byYgcmVjdCkgLT4gRmxvYXRSZWN0IHsKICAgICAgICAgaWYgKCFzdHls
ZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlY3Q7
CiAgICAgICAgIGlmICghYmxvY2tJc0hvcml6b250YWxXcml0aW5nKQotICAgICAgICAgICAgcmV0
dXJuIEZsb2F0UmVjdCB7IGZvcm1hdHRpbmdDb250ZXh0Um9vdC53aWR0aCgpIC0gcmVjdC5tYXhZ
KCksIHJlY3QueCgpICwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpIH07CisgICAgICAgICAg
ICByZXR1cm4gRmxvYXRSZWN0IHsgZm9ybWF0dGluZ0NvbnRleHRSb290LndpZHRoKCkgLSByZWN0
LmJvdHRvbSgpLCByZWN0LmxlZnQoKSAsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSB9Owog
ICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwogICAgICAgICByZXR1cm4gcmVj
dDsKICAgICB9OwpAQCAtNTkyLDcgKzU5Miw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnRUZXh0
UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zCiAg
ICAgLy8gVGV4dFJ1biBleHBlY3RzIHRoZSB4UG9zIHRvIGJlIGFkanVzdGVkIHdpdGggdGhlIGFs
aWdtZW50IG9mZnNldCAoZS5nLiB3aGVuIHRoZSBsaW5lIGlzIGNlbnRlciBhbGlnbmVkCiAgICAg
Ly8gYW5kIHRoZSBydW4gc3RhcnRzIGF0IDEwMHB4LCBkdWUgdG8gdGhlIGhvcml6b250YWwgYWxp
Z21lbnQsIHRoZSB4cG9zIGlzIHN1cHBvc2VkIHRvIGJlIGF0IDBweCkuCiAgICAgYXV0byYgZm9u
dENhc2NhZGUgPSBzdHlsZS5mb250Q2FzY2FkZSgpOwotICAgIGF1dG8geFBvcyA9IHJ1bi5sb2dp
Y2FsUmVjdCgpLngoKSAtIChsaW5lLmxpbmVCb3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRMZWZ0KCkp
OworICAgIGF1dG8geFBvcyA9IHJ1bi5sb2dpY2FsUmVjdCgpLmxlZnQoKSAtIChsaW5lLmxpbmVC
b3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRMZWZ0KCkpOwogICAgIGF1dG8gdGV4dFJ1biA9IFdlYkNv
cmU6OlRleHRSdW4geyB0ZXh0Q29udGVudC5yZW5kZXJlZENvbnRlbnQoKSwgeFBvcywgZXhwYW5z
aW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4cGFuc2lvbi5iZWhhdmlvciB9OwogICAgIHRleHRS
dW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKaW5kZXggNThlN2ZjMzgyMWFm
ZWIyNzJkMGRhMTEzYWRkNWYzNjk2YmRiOGZkZi4uMDk5OTI5ZGNhNzk4MGNmZjdmNTQwMjhjMGNm
YTE1OTRjMzJlN2IyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKQEAgLTE0
NCw2ICsxNDQsNyBAQCBzdGF0aWMgUmVmPElubGluZUNvbnRlbnQ+IG1ha2VBZGp1c3RlZENvbnRl
bnQoY29uc3QgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudAogICAgIHsKICAgICAgICAgcmV0
dXJuIFJ1biB7CiAgICAgICAgICAgICBydW4ubGluZUluZGV4KCksCisgICAgICAgICAgICBydW4u
dHlwZSgpLAogICAgICAgICAgICAgcnVuLmxheW91dEJveCgpLAogICAgICAgICAgICAgbW92ZVZl
cnRpY2FsbHkocnVuLmxvZ2ljYWxSZWN0KCksIG9mZnNldCksCiAgICAgICAgICAgICBtb3ZlVmVy
dGljYWxseShydW4uaW5rT3ZlcmZsb3coKSwgb2Zmc2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyYTVlNDBkOTI5MzM4YzIxNTJkZTk1MTNiODk5Mzdi
NTVkMmVhYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJJ
bmxpbmVSZWN0LmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKLSNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDYWNoZWRJbWFnZTsKLQotbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKLQotc3Ry
dWN0IFJ1biB7Ci0gICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHN0cnVj
dCBUZXh0IHsKLSAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1
YmxpYzoKLSAgICAgICAgVGV4dChzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0
IFN0cmluZyYsIFN0cmluZyBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciwgYm9vbCBoYXNIeXBoZW4p
OwotCi0gICAgICAgIHNpemVfdCBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KLSAg
ICAgICAgc2l6ZV90IGVuZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0KCkgKyBsZW5ndGgoKTsgfQot
ICAgICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KLSAgICAg
ICAgU3RyaW5nVmlldyBvcmlnaW5hbENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3
KG1fb3JpZ2luYWxDb250ZW50KS5zdWJzdHJpbmcobV9zdGFydCwgbV9sZW5ndGgpOyB9Ci0gICAg
ICAgIFN0cmluZ1ZpZXcgcmVuZGVyZWRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlci5pc051bGwoKSA/IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlcjsgfQotICAgICAgICBib29sIGhhc0h5cGhlbigpIGNvbnN0IHsgcmV0
dXJuIG1faGFzSHlwaGVuOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBzaXplX3QgbV9zdGFy
dCB7IDAgfTsKLSAgICAgICAgc2l6ZV90IG1fbGVuZ3RoIHsgMCB9OwotICAgICAgICBib29sIG1f
aGFzSHlwaGVuIHsgZmFsc2UgfTsKLSAgICAgICAgU3RyaW5nIG1fb3JpZ2luYWxDb250ZW50Owot
ICAgICAgICBTdHJpbmcgbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsKLSAgICB9OwotCi0gICAg
c3RydWN0IEV4cGFuc2lvbjsKLSAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0
OjpCb3gmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93LCBF
eHBhbnNpb24sIHN0ZDo6b3B0aW9uYWw8VGV4dD4gPSBzdGQ6Om51bGxvcHQpOwotCi0gICAgY29u
c3QgRmxvYXRSZWN0JiBsb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAg
IGNvbnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJm
bG93OyB9Ci0KLSAgICB2b2lkIHNldFZlcnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgpOwotCi0gICAg
c3RkOjpvcHRpb25hbDxUZXh0PiYgdGV4dCgpIHsgcmV0dXJuIG1fdGV4dDsgfQotICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VGV4dD4mIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KLSAg
ICAvLyBGSVhNRTogVGhpcyBpbmZvcm1hdGlvbiBzaG91bGQgYmUgcHJlc2VydmVkIGF0IFJ1biBj
b25zdHJ1Y3Rpb24gdGltZS4KLSAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4g
bGF5b3V0Qm94KCkuaXNMaW5lQnJlYWtCb3goKSB8fCAodGV4dCgpICYmIHRleHQoKS0+b3JpZ2lu
YWxDb250ZW50KCkgPT0gIlxuIiAmJiBzdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKTsgfQotCi0g
ICAgc3RydWN0IEV4cGFuc2lvbiB7Ci0gICAgICAgIEV4cGFuc2lvbkJlaGF2aW9yIGJlaGF2aW9y
IHsgRGVmYXVsdEV4cGFuc2lvbiB9OwotICAgICAgICBMYXlvdXQ6OklubGluZUxheW91dFVuaXQg
aG9yaXpvbnRhbEV4cGFuc2lvbiB7IDAgfTsKLSAgICB9OwotICAgIEV4cGFuc2lvbiBleHBhbnNp
b24oKSBjb25zdCB7IHJldHVybiBtX2V4cGFuc2lvbjsgfQotCi0gICAgY29uc3QgTGF5b3V0OjpC
b3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dEJveDsgfQotICAgIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94LT5zdHlsZSgp
OyB9Ci0KLSAgICBzaXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7
IH0KLQotcHJpdmF0ZToKLSAgICAvLyBGSVhNRTogRmluZCBvdXQgdGhlIERpc3BsYXk6OlJ1biA8
LT4gcGFpbnQgc3R5bGUgc2V0dXAuCi0gICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwotICAg
IFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0Qm94OwotICAgIEZsb2F0UmVjdCBt
X3JlY3Q7Ci0gICAgRmxvYXRSZWN0IG1faW5rT3ZlcmZsb3c7Ci0gICAgRXhwYW5zaW9uIG1fZXhw
YW5zaW9uOwotICAgIHN0ZDo6b3B0aW9uYWw8VGV4dD4gbV90ZXh0OwotfTsKLQotaW5saW5lIFJ1
bjo6UnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5z
aW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiB0ZXh0KQotICAgIDogbV9saW5lSW5k
ZXgobGluZUluZGV4KQotICAgICwgbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkK
LSAgICAsIG1fcmVjdChyZWN0KQotICAgICwgbV9pbmtPdmVyZmxvdyhpbmtPdmVyZmxvdykKLSAg
ICAsIG1fZXhwYW5zaW9uKGV4cGFuc2lvbikKLSAgICAsIG1fdGV4dCh0ZXh0KQotewotfQotCi1p
bmxpbmUgUnVuOjpUZXh0OjpUZXh0KHNpemVfdCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5hbENvbnRlbnQsIFN0cmluZyBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciwg
Ym9vbCBoYXNIeXBoZW4pCi0gICAgOiBtX3N0YXJ0KHN0YXJ0KQotICAgICwgbV9sZW5ndGgobGVu
Z3RoKQotICAgICwgbV9oYXNIeXBoZW4oaGFzSHlwaGVuKQotICAgICwgbV9vcmlnaW5hbENvbnRl
bnQob3JpZ2luYWxDb250ZW50KQotICAgICwgbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcihhZGp1
c3RlZENvbnRlbnRUb1JlbmRlcikKLXsKLX0KLQotaW5saW5lIHZvaWQgUnVuOjpzZXRWZXJ0aWNh
bFBvc2l0aW9uSW50ZWdyYWwoKQotewotICAgIG1fcmVjdC5zZXRZKHJvdW5kVG9JbnQobV9yZWN0
LnkoKSkpOwotICAgIG1faW5rT3ZlcmZsb3cuc2V0WShyb3VuZFRvSW50KG1faW5rT3ZlcmZsb3cu
eSgpKSk7Ci19Ci0KLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFp
bnRlci5jcHAKaW5kZXggNzQ4NTJhNmIwZDI1MWI1YTUxNmM0YjM1MGNiMTk0MGYxZmM1NmQxOS4u
N2ExM2FkYzEwZWJkMWM1MzY3OTNkNjM5Yzk1YTBjOTc4MTZiNzUwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5o
IgogI2luY2x1ZGUgIkxlZ2FjeUlubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJSZW5kZXJDb21i
aW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCg==
</data>
<flag name="commit-queue"
          id="460007"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436909</attachid>
            <date>2021-08-31 10:47:06 -0700</date>
            <delta_ts>2021-08-31 20:41:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229719-20210831104706.patch</filename>
            <type>text/plain</type>
            <size>29368</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0OWIxNWE0NThiNzYw
NWZjZmU1MzliY2Y3NTVmMTljNDNmNTk0Zi4uYTQzNWI1MzczMTRhOWJhOWM2ZjEzY2Y0OGI0ZWQ5
MmM5NGFlZjc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA4LTMxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBn
ZW5lcmF0ZSBpbnRlZ3JhdGlvbiBydW5zIG91dCBvZiBJRkMncyBkaXNwbGF5IHJ1bnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEludGVncmF0aW9uIHJ1
bnMgYW5kIElGQyBkaXNwbGF5IHJ1bnMgaG9sZCB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YgZGF0YSwg
c28gbGV0J3Mgbm90IGR1cGxpY2F0ZSB0aGVuIGZvciB0aGUgaW50ZWdyYXRpb24gbGF5ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6VGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpi
dWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UnVuOjpUZXh0OjpvcmlnaW5hbENv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSdW46OlRleHQ6OnJlbmRl
cmVkQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJ1bjo6c2V0VmVy
dGljYWxQb3NpdGlvbkludGVncmFsKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50QnVp
bGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjptYWtlQWRqdXN0ZWRD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorCiAy
MDIxLTA4LTMxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJbnRlZ3JhdGlvbl0gUmVtb3ZlIHVudXNlZCBMYXlvdXRJbnRlZ2F0aW9uOjpSdW4gZnVuY3Rp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3NmNlMGM2NjFmZWU4MzBkMTc2ZTM2MWY1Nzk4NzM1
YzdhZTFlMGNlLi5iNTE2MGQwMjBiMjYwYjQ1ZWFlYjgxMmFjMWI1OTNjN2VlZjc0NmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTc3NCw3ICs3NzQsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUl0ZXJhdG9yLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lSXRlcmF0b3JMZWdhY3lQYXRoLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgKLSAgICBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25SdW4uaAogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTM5NmFmMGNjOWZiZTc3
NDY5N2ZkN2VlYWUwZjQ0ZTI2YzA0MDI0ZS4uMDJhYmM3MTZiYWZhMTYzYWE1OGQ5MjZiYmE3MmQz
NGE5NmQzNTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjE3NSw3ICsyMTc1LDYgQEAKIAkJNkZCN0QyREUyNTBGRDgyRTAw
MDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9y
bWF0dGluZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1
NjYwMEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDQkRCOTcyNjVERjJDODAwMjFFQTdCIC8qIExheW91
dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQ0JEQjk1MjY1REYyQzcwMDIxRUE3QiAvKiBMYXlvdXRD
b250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8qIExheW91
dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkQw
OTU0MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQwOTU0MTI1MTExNTIyMDA5ODg3
N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkU2MzZF
ODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFNjM2RTcyNjQ3OTYyOTAwRjA5
NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNTUsNyArMTAwNTQsNiBAQAogCQk2RkM1Q0E5
NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkNCREI5NTI2NURGMkM3MDAyMUVBN0IgLyogTGF5b3V0Q29udGFpbmluZ0Js
b2NrQ2hhaW5JdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlv
dXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlS
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEdlb21ldHJ5UmVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZG
MDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5saW5lQ29udGVudEJyZWFrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQ29udGVudEJyZWFr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MDYyLDcgKzI5MDYwLDYgQEAK
IAkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmggKi8sCiAJCQkJRTQzMTJBQjUyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0
aW9uUGFnaW5hdGlvbi5jcHAgKi8sCiAJCQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExh
eW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5oICovLAotCQkJCTZGQ0UxQTE4MjI2MThBQjMwMDRG
MDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oICovLAogCQkJCUU0QTY2NEM3MjUyMUI3Nzkw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcCAqLywKIAkJCQlFNEE2
NjRDNjI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICov
LAogCQkJCUU0QTY2NEM1MjUyMUI3NzgwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0
ZXJhdG9yTGVnYWN5UGF0aC5oICovLApAQCAtMzM1MTIsNyArMzM1MDksNiBAQAogCQkJCUU0RDMz
RjQ2MjUyQzUwRkMwMDgzN0QwNSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVy
blBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBM
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0Ez
MjUxQjExQzEwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFk
ZXJzICovLAotCQkJCTZGQ0UxQTFBMjI2MThBQkQwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlv
blJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0MyNTIxRDRBRjAwNzA4MURDIC8qIExh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTY2NENG
MjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0UyNTIxRDRDOTAwNzA4MURDIC8qIExheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlUZXh0Qm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlUZXh0Qm94LmNwcAppbmRleCBiMDQ3Yjdm
ZmJhZTE2YmFkMmFhY2VlODIyNDlmYmU2OGZmYjU2OWY3Li5kYjIzMTRkYjQ3NDMwMDhlYjYwNmYy
ZmYxMjc4ZDQ2MTUxMjhhZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nz
cy9EaXNwbGF5VGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlz
cGxheVRleHRCb3guY3BwCkBAIC01Myw3ICs1Myw3IEBAIFN0cmluZyBUZXh0Qm94OjpkZWJ1Z0Rl
c2NyaXB0aW9uKCkgY29uc3QKICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKIAogICAgIHN0cmVhbSA8
PCBib3hOYW1lKCkgPDwgIiAiIDw8IGFic29sdXRlQm94UmVjdCgpIDw8ICIgKCIgPDwgdGhpcyA8
PCAiKSI7Ci0gICAgYXV0byB0ZXh0Q29udGVudCA9IHRleHQoKS5vcmlnaW5hbENvbnRlbnQoKS5z
dWJzdHJpbmcodGV4dCgpLnN0YXJ0KCksIHRleHQoKS5sZW5ndGgoKSk7CisgICAgYXV0byB0ZXh0
Q29udGVudCA9IHRleHQoKS5vcmlnaW5hbENvbnRlbnQoKS5zdWJzdHJpbmcodGV4dCgpLnN0YXJ0
KCksIHRleHQoKS5sZW5ndGgoKSkudG9TdHJpbmcoKTsKICAgICB0ZXh0Q29udGVudC5yZXBsYWNl
V2l0aExpdGVyYWwoJ1xcJywgIlxcXFwiKTsKICAgICB0ZXh0Q29udGVudC5yZXBsYWNlV2l0aExp
dGVyYWwoJ1xuJywgIlxcbiIpOwogICAgIGNvbnN0IHNpemVfdCBtYXhQcmludGVkTGVuZ3RoID0g
ODA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcAppbmRleCA0MzIwMTBiNmViOGNiZmI4ZWE1MWUxMzRiNjI1NTY3ZmFkNWQ4YjNiLi4x
YTEzYTJhMjllMTE0NjcyNjJhNzcwOWIxMGM5ZmU2MjYyYzMwYjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCisjZGVm
aW5lIEFMTE9XX1JPT1RfQU5EX0xJTkVfU1BBTk5JTkdfSU5MSU5FX0JPWCAwCiAKIElubGluZURp
c3BsYXlDb250ZW50QnVpbGRlcjo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyKGNvbnN0IENv
bnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
IGZvcm1hdHRpbmdTdGF0ZSkKICAgICA6IG1fZm9ybWF0dGluZ0NvbnRleHRSb290KGZvcm1hdHRp
bmdDb250ZXh0Um9vdCkKQEAgLTQ3LDExICs0OCwxMiBAQCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcihjb25zdCBDb250YWluZXJCb3gmIGZv
cgogdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IExpbmVCdWls
ZGVyOjpMaW5lQ29udGVudCYgbGluZUNvbnRlbnQsIGNvbnN0IExpbmVCb3gmIGxpbmVCb3gsIGNv
bnN0IElubGluZUxheW91dFBvaW50JiBsaW5lQm94TG9naWNhbFRvcExlZnQsIGNvbnN0IHNpemVf
dCBsaW5lSW5kZXgpCiB7CiAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0
dGluZ1N0YXRlKCk7CisjaWYgQUxMT1dfUk9PVF9BTkRfTElORV9TUEFOTklOR19JTkxJTkVfQk9Y
CiAgICAgLy8gRXZlcnkgbGluZSBzdGFydHMgd2l0aCBhIHJvb3QgcnVuLCBldmVuIHRoZSBlbXB0
eSBvbmVzLgogICAgIGF1dG8gcm9vdElubGluZUJveFJlY3QgPSBsaW5lQm94LmxvZ2ljYWxSZWN0
Rm9yUm9vdElubGluZUJveCgpOwogICAgIHJvb3RJbmxpbmVCb3hSZWN0Lm1vdmVCeShsaW5lQm94
TG9naWNhbFRvcExlZnQpOwogICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRSdW4oeyBsaW5lSW5kZXgs
IFJ1bjo6VHlwZTo6Um9vdElubGluZUJveCwgcm9vdCgpLCByb290SW5saW5lQm94UmVjdCwgcm9v
dElubGluZUJveFJlY3QsIHsgfSwgeyB9LCAgbGluZUJveC5yb290SW5saW5lQm94KCkuaGFzQ29u
dGVudCgpfSk7Ci0KKyNlbmRpZgogICAgIC8vIFNwYW5uaW5nIGlubGluZSBib3hlcyBzdGFydCBh
dCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuCiAgICAgYXV0byBsaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hJbmRleCA9IGZvcm1hdHRpbmdTdGF0ZS5ydW5zKCkuc2l6ZSgpOwogICAgIGNyZWF0
ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVDb250ZW50KGxpbmVDb250ZW50LCBsaW5lQm94
LCBsaW5lQm94TG9naWNhbFRvcExlZnQsIGxpbmVJbmRleCk7CkBAIC0xODEsNyArMTgzLDcgQEAg
dm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9t
ZXRyeUZvckxpbmVDb250ZW50KGNvbnMKICAgICBmb3JtYXR0aW5nU3RhdGUubGluZXMoKS5sYXN0
KCkuc2V0TmVlZHNJbnRlZ3JhbFBvc2l0aW9uKGxpbmVOZWVkSW50ZWdyYWxQb3NpdGlvbik7CiB9
CiAKLXZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVSdW5zQW5kVXBkYXRl
R2VvbWV0cnlGb3JMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyhjb25zdCBMaW5lQm94JiBsaW5lQm94
LCBjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBjb25zdCBz
aXplX3QgbGluZUluZGV4LCBzaXplX3QgbGluZVNwYW5uaW5nSW5saW5lQm94SW5kZXgpCit2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5
Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94ZXMoY29uc3QgTGluZUJveCYgbGluZUJveCwgY29uc3Qg
SW5saW5lTGF5b3V0UG9pbnQmIGxpbmVCb3hMb2dpY2FsVG9wTGVmdCwgY29uc3Qgc2l6ZV90IC8q
bGluZUluZGV4Ki8sIHNpemVfdCAvKmxpbmVTcGFubmluZ0lubGluZUJveEluZGV4Ki8pCiB7CiAg
ICAgaWYgKCFsaW5lQm94Lmhhc0NvbnRlbnQoKSkgewogICAgICAgICAvLyBXaGVuIGEgc3Bhbm5p
bmcgaW5saW5lIGJveCAoZS5nLiA8ZGl2PnRleHQ8c3Bhbj48YnI+PC9zcGFuPjwvZGl2PikgbGFu
ZHMgb24gYW4gZW1wdHkgbGluZQpAQCAtMjAyLDggKzIwNCw5IEBAIHZvaWQgSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lU3Bhbm5p
bmdJbmxpCiAgICAgICAgIGF1dG8gaW5saW5lQm94Qm9yZGVyQm94ID0gbGluZUJveC5sb2dpY2Fs
Qm9yZGVyQm94Rm9ySW5saW5lQm94KGxheW91dEJveCwgYm94R2VvbWV0cnkpOwogICAgICAgICBp
bmxpbmVCb3hCb3JkZXJCb3gubW92ZUJ5KGxpbmVCb3hMb2dpY2FsVG9wTGVmdCk7CiAKKyNpZiBB
TExPV19ST09UX0FORF9MSU5FX1NQQU5OSU5HX0lOTElORV9CT1gKICAgICAgICAgZm9ybWF0dGlu
Z1N0YXRlLnJ1bnMoKS5pbnNlcnQobGluZVNwYW5uaW5nSW5saW5lQm94SW5kZXgrKywgeyBsaW5l
SW5kZXgsIFJ1bjo6VHlwZTo6Tm9uUm9vdElubGluZUJveCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hC
b3JkZXJCb3gsIGlubGluZUJveEJvcmRlckJveCwgeyB9LCB7IH0sIGlubGluZUxldmVsQm94Lmhh
c0NvbnRlbnQoKSwgdHJ1ZSB9KTsKLQorI2VuZGlmCiAgICAgICAgIGF1dG8gaW5saW5lQm94U2l6
ZSA9IExheW91dFNpemUgeyBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGlubGluZUJveEJvcmRl
ckJveC53aWR0aCgpKSwgTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJC
b3guaGVpZ2h0KCkpIH07CiAgICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBSZWN0IHsgTGF5b3V0
UG9pbnQgeyBpbmxpbmVCb3hCb3JkZXJCb3gudG9wTGVmdCgpIH0sIGlubGluZUJveFNpemUgfTsK
ICAgICAgICAgLy8gTWlkZGxlIG9yIGVuZCBvZiB0aGUgaW5saW5lIGJveC4gTGV0J3Mgc3RyZXRj
aCB0aGUgYm94IGFzIG5lZWRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVSdW4uaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVSdW4uaAppbmRleCAw
MmFhYjc1YzJlMTQ1YmI1MWFhMjc2MjA1MjJkMTk1YmE4MjdlZjA4Li5mMmYwOWQxOTViYTc4Mjll
MTcxODQ0ZWMwNWY0M2ZlNDM5ZmYzOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lUnVuLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZVJ1bi5o
CkBAIC00NCw4ICs0NCw4IEBAIHN0cnVjdCBSdW4gewogICAgICAgICBzaXplX3Qgc3RhcnQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXJ0OyB9CiAgICAgICAgIHNpemVfdCBlbmQoKSBjb25zdCB7IHJl
dHVybiBzdGFydCgpICsgbGVuZ3RoKCk7IH0KICAgICAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGVuZ3RoOyB9Ci0gICAgICAgIFN0cmluZyBvcmlnaW5hbENvbnRlbnQoKSBj
b25zdCB7IHJldHVybiBtX29yaWdpbmFsQ29udGVudDsgfQotICAgICAgICBTdHJpbmcgcmVuZGVy
ZWRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsgfQor
ICAgICAgICBTdHJpbmdWaWV3IG9yaWdpbmFsQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIFN0cmlu
Z1ZpZXcobV9vcmlnaW5hbENvbnRlbnQpLnN1YnN0cmluZyhtX3N0YXJ0LCBtX2xlbmd0aCk7IH0K
KyAgICAgICAgU3RyaW5nVmlldyByZW5kZXJlZENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2Fk
anVzdGVkQ29udGVudFRvUmVuZGVyLmlzTnVsbCgpID8gb3JpZ2luYWxDb250ZW50KCkgOiBtX2Fk
anVzdGVkQ29udGVudFRvUmVuZGVyOyB9CiAKICAgICAgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25z
dCB7IHJldHVybiBtX2hhc0h5cGhlbjsgfQogCkBAIC0xMTEsNiArMTExLDggQEAgc3RydWN0IFJ1
biB7CiAKICAgICBzaXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7
IH0KIAorICAgIHZvaWQgc2V0VmVydGljYWxQb3NpdGlvbkludGVncmFsKCk7CisKIHByaXZhdGU6
CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwogICAgIGNvbnN0IFR5cGUgbV90eXBlOwpA
QCAtMTQ2LDYgKzE0OCwxMiBAQCBpbmxpbmUgUnVuOjpUZXh0OjpUZXh0KHNpemVfdCBzdGFydCwg
c2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbENvbnRlbgogewogfQogCitpbmxp
bmUgdm9pZCBSdW46OnNldFZlcnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgpCit7CisgICAgbV9sb2dp
Y2FsUmVjdC5zZXRUb3Aocm91bmRUb0ludChtX2xvZ2ljYWxSZWN0LnRvcCgpKSk7CisgICAgbV9p
bmtPdmVyZmxvdy5zZXRUb3Aocm91bmRUb0ludChtX2lua092ZXJmbG93LnRvcCgpKSk7Cit9CisK
IH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVjdC5oCmluZGV4IDI5YWUyOTUzMDdlOGRl
NzNmNGJhOTczYWQ3MzFkMmY2YjQyNzRlZTcuLmM0YzI1ZDllYzQ4NGQ1OWI1ZmYwMjJiYmEwMmI1
YjRmMWNjY2ZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZVJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVSZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAg
cHVibGljOgogICAgIElubGluZVJlY3QoSW5saW5lTGF5b3V0VW5pdCB0b3AsIElubGluZUxheW91
dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWln
aHQpOwogICAgIElubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIElu
bGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KTsKICAgICBJbmxp
bmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBjb25zdCBJbmxpbmVMYXlv
dXRTaXplJik7CisgICAgSW5saW5lUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKICAgICAKICAgICBJ
bmxpbmVMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwogICAgIElubGluZUxheW91dFVuaXQgbGVmdCgp
IGNvbnN0OwpAQCAtMTE0LDYgKzExNSwxMSBAQCBpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVj
dChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5bwogewog
fQogCitpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CisgICAgOiBJbmxpbmVSZWN0KHJlY3QueSgpLCByZWN0LngoKSwgcmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKQoreworfQorCiAjaWYgQVNTRVJUX0VOQUJMRUQKIGlubGluZSB2b2lkIElubGlu
ZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVD
b250ZW50LmgKaW5kZXggYmZjOWNiMmIwMzk1YzVjZmIzMWViMmM3YTllMTkzOGQzY2E1ZjI0ZC4u
YjA3YjEwZTBjOGUwZDQyZTk2YTg0YzNiOTM1ZmI5ZmM1ODQwZjEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbklubGluZUNvbnRlbnQuaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJJbmxpbmVMaW5lUnVuLmgiCiAj
aW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgiCi0jaW5jbHVkZSAiTGF5b3V0SW50ZWdy
YXRpb25SdW4uaCIKICNpbmNsdWRlIDx3dGYvSXRlcmF0b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtNDgsNiArNDgsOCBAQCBj
bGFzcyBMaW5lTGF5b3V0OwogY2xhc3MgUnVuSXRlcmF0b3I7CiBjbGFzcyBUZXh0UnVuSXRlcmF0
b3I7CiAKK3VzaW5nIFJ1biA9IExheW91dDo6UnVuOworCiBzdHJ1Y3QgSW5saW5lQ29udGVudCA6
IHB1YmxpYyBSZWZDb3VudGVkPElubGluZUNvbnRlbnQ+IHsKICAgICBzdGF0aWMgUmVmPElubGlu
ZUNvbnRlbnQ+IGNyZWF0ZShjb25zdCBMaW5lTGF5b3V0JiBsaW5lTGF5b3V0KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IElubGluZUNvbnRlbnQobGluZUxheW91dCkpOyB9CiAgICAgfklubGluZUNv
bnRlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVy
LmNwcAppbmRleCBjOTRiYjYzYmYxZWJkYWUzN2U5YTdjY2UyZjBjZjRkNzZlMjFkYWY5Li5mM2Y1
OTk3MDZjMjM3ODMxNTc1YmExMzk2ZDVkNGQyNmYxOTBjNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuY3BwCkBAIC0yOSwxMCArMjksMTAgQEAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIklubGluZUxpbmVSdW4uaCIKICNpbmNsdWRl
ICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uQm94VHJl
ZS5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIgotI2luY2x1
ZGUgIkxheW91dEludGVncmF0aW9uUnVuLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwbGFjZWRCb3gu
aCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5o
IgpAQCAtNjUsMzggKzY1LDI3IEBAIElubGluZUNvbnRlbnRCdWlsZGVyOjpJbmxpbmVDb250ZW50
QnVpbGRlcihjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0CiB7CiB9CiAKLXZv
aWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IExheW91dDo6SW5saW5lRm9ybWF0
dGluZ1N0YXRlJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUsIElubGluZUNvbnRlbnQmIGlubGluZUNv
bnRlbnQpIGNvbnN0Cit2b2lkIElubGluZUNvbnRlbnRCdWlsZGVyOjpidWlsZChMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdTdGF0ZSYgaW5saW5lRm9ybWF0dGluZ1N0YXRlLCBJbmxpbmVDb250ZW50
JiBpbmxpbmVDb250ZW50KSBjb25zdAogewogICAgIGNyZWF0ZURpc3BsYXlSdW5zKGlubGluZUZv
cm1hdHRpbmdTdGF0ZS5ydW5zKCksIGlubGluZUNvbnRlbnQpOwogICAgIGNyZWF0ZURpc3BsYXlM
aW5lcyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKSwgaW5saW5lQ29udGVudCk7CiB9CiAK
LXZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91
dDo6SW5saW5lUnVucyYgcnVucywgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QK
K3ZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5s
aW5lUnVucyYgcnVucywgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKIHsKLSAg
ICBpZiAocnVucy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlubGluZUNvbnRl
bnQucnVucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJ1bnMuc2l6ZSgpKTsKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgbG9vcCB3aGVuIHdlIHRyYW5zaXRpb25lZCB0byB0aGUgInJ1biBvbmx5
IiBzZXR1cCAoaS5lLiBlYWNoIGlubGluZSBib3ggaXMgcmVwcmVzZW50ZWQgYXMgYSBydW4gYXMg
d2VsbCkgCiAgICAgZm9yIChhdXRvJiBydW4gOiBydW5zKSB7Ci0gICAgICAgIGlmIChhdXRvIHRl
eHQgPSBydW4udGV4dCgpKSB7Ci0gICAgICAgICAgICBpbmxpbmVDb250ZW50LnJ1bnMuYXBwZW5k
KHsgcnVuLmxpbmVJbmRleCgpLCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVjdCgpLCBy
dW4uaW5rT3ZlcmZsb3coKSwgUnVuOjpFeHBhbnNpb24geyBydW4uZXhwYW5zaW9uKCkuYmVoYXZp
b3IsIHJ1bi5leHBhbnNpb24oKS5ob3Jpem9udGFsRXhwYW5zaW9uIH0KLSAgICAgICAgICAgICAg
ICAsIFJ1bjo6VGV4dCB7IHRleHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0LT5vcmln
aW5hbENvbnRlbnQoKSwgdGV4dC0+cmVuZGVyZWRDb250ZW50KCksIHRleHQtPmhhc0h5cGhlbigp
IH0gfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXJ1bi5pc1Jvb3RJbmxpbmVCb3goKSkgewotICAg
ICAgICAgICAgLy8gRklYTUU6IFRlYWNoIHRoZSBydW4gaXRlcmF0b3JzIHRvIGlnbm9yZSB0aGUg
cm9vdCBpbmxpbmUgYm94IHJ1bnMuCisgICAgICAgIGlmIChydW4uaXNOb25Sb290SW5saW5lQm94
KCkpIHsKICAgICAgICAgICAgIGF1dG8mIGdlb21ldHJ5ID0gbV9sYXlvdXRTdGF0ZS5nZW9tZXRy
eUZvckJveChydW4ubGF5b3V0Qm94KCkpOwotICAgICAgICAgICAgaWYgKCFydW4uaXNJbmxpbmVC
b3goKSB8fCAhcnVuLmlzTGluZVNwYW5uaW5nKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogUnVuIGl0ZXJhdG9ycyB3aXRoICh0ZXh0KXJ1bnMgc3Bhbm5pbmcgb3ZlciBtdWx0aXBsZSBs
aW5lcyBleHBlY3Qgbm8gImluLWJldHdlZW4iIHJ1bnMgKGUuZy4gbGluZSBzcGFubmluZyBvciBy
b290IGlubGluZSBib3hlcykuCi0gICAgICAgICAgICAgICAgaW5saW5lQ29udGVudC5ydW5zLmFw
cGVuZCh7IHJ1bi5saW5lSW5kZXgoKSwgcnVuLmxheW91dEJveCgpLCBydW4ubG9naWNhbFJlY3Qo
KSwgcnVuLmlua092ZXJmbG93KCksIHsgfSwgeyB9IH0pOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKHJ1bi5pc0lubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBoYXNT
Y3JvbGxhYmxlQ29udGVudCA9IFsmXSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEluIHN0YW5k
YXJkcyBtb2RlLCBpbmxpbmUgYm94ZXMgYWx3YXlzIHN0YXJ0IHdpdGggYW4gaW1hZ2luYXJ5IHN0
cnV0LgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9sYXlvdXRTdGF0ZS5pblN0YW5kYXJk
c01vZGUoKSB8fCBydW4uaGFzQ29udGVudCgpIHx8IGdlb21ldHJ5Lmhvcml6b250YWxCb3JkZXIo
KSB8fCAoZ2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKSAmJiBnZW9tZXRyeS5ob3Jpem9udGFs
UGFkZGluZygpLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAg
aW5saW5lQ29udGVudC5ub25Sb290SW5saW5lQm94ZXMuYXBwZW5kKHsgcnVuLmxpbmVJbmRleCgp
LCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVjdCgpLCBoYXNTY3JvbGxhYmxlQ29udGVu
dCgpIH0pOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBoYXNTY3JvbGxhYmxlQ29u
dGVudCA9IFsmXSB7CisgICAgICAgICAgICAgICAgLy8gSW4gc3RhbmRhcmRzIG1vZGUsIGlubGlu
ZSBib3hlcyBhbHdheXMgc3RhcnQgd2l0aCBhbiBpbWFnaW5hcnkgc3RydXQuCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUuaW5TdGFuZGFyZHNNb2RlKCkgfHwgcnVuLmhhc0Nv
bnRlbnQoKSB8fCBnZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgKGdlb21ldHJ5Lmhvcml6
b250YWxQYWRkaW5nKCkgJiYgZ2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1ZSgpKTsK
KyAgICAgICAgICAgIH07CisgICAgICAgICAgICBpbmxpbmVDb250ZW50Lm5vblJvb3RJbmxpbmVC
b3hlcy5hcHBlbmQoeyBydW4ubGluZUluZGV4KCksIHJ1bi5sYXlvdXRCb3goKSwgcnVuLmxvZ2lj
YWxSZWN0KCksIGhhc1Njcm9sbGFibGVDb250ZW50KCkgfSk7CiAgICAgICAgIH0KICAgICB9Cisg
ICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgbmVlZCBhIGRpZmZlcmVudCBhcHByb2FjaCB3aXRoIHBh
cnRpYWwgbGF5b3V0IHdoZXJlIHRoZSBsYXlvdXQgY29kZSBuZWVkcyB0byBrbm93IGFib3V0IHRo
ZSBydW5zLgorICAgIGlubGluZUNvbnRlbnQucnVucyA9IFdURk1vdmUocnVucyk7CiB9CiAKIHZv
aWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6
OklubGluZUxpbmVzJiBsaW5lcywgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QK
QEAgLTEzMSwxMSArMTIwLDExIEBAIHZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURp
c3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiBsaW5lcywKICAgICAgICAgICAg
IGF1dG8gcnVuTG9naWNhbFJlY3QgPSBydW4ubG9naWNhbFJlY3QoKTsKICAgICAgICAgICAgIGlm
ICghYm94Lmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIGNo
aWxkSW5rT3ZlcmZsb3cgPSBib3gubG9naWNhbFZpc3VhbE92ZXJmbG93UmVjdEZvclByb3BhZ2F0
aW9uKCZib3gucGFyZW50KCktPnN0eWxlKCkpOwotICAgICAgICAgICAgICAgIGNoaWxkSW5rT3Zl
cmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC54KCksIHJ1bkxvZ2ljYWxSZWN0LnkoKSk7CisgICAg
ICAgICAgICAgICAgY2hpbGRJbmtPdmVyZmxvdy5tb3ZlKHJ1bkxvZ2ljYWxSZWN0LmxlZnQoKSwg
cnVuTG9naWNhbFJlY3QudG9wKCkpOwogICAgICAgICAgICAgICAgIGxpbmVJbmtPdmVyZmxvd1Jl
Y3QudW5pdGUoY2hpbGRJbmtPdmVyZmxvdyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBh
dXRvIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93ID0gYm94LmxvZ2ljYWxMYXlvdXRPdmVyZmxvd1Jl
Y3RGb3JQcm9wYWdhdGlvbigmYm94LnBhcmVudCgpLT5zdHlsZSgpKTsKLSAgICAgICAgICAgIGNo
aWxkU2Nyb2xsYWJsZU92ZXJmbG93Lm1vdmUocnVuTG9naWNhbFJlY3QueCgpLCBydW5Mb2dpY2Fs
UmVjdC55KCkpOworICAgICAgICAgICAgY2hpbGRTY3JvbGxhYmxlT3ZlcmZsb3cubW92ZShydW5M
b2dpY2FsUmVjdC5sZWZ0KCksIHJ1bkxvZ2ljYWxSZWN0LnRvcCgpKTsKICAgICAgICAgICAgIHNj
cm9sbGFibGVPdmVyZmxvd1JlY3QudW5pdGUoY2hpbGRTY3JvbGxhYmxlT3ZlcmZsb3cpOwogICAg
ICAgICB9CiAgICAgICAgIC8vIENvbGxlY3Qgc2Nyb2xsYWJsZSBvdmVyZmxvdyBmcm9tIGlubGlu
ZSBib3hlcy4gQWxsIG90aGVyIGlubGluZSBsZXZlbCBib3hlcyAoZS5nIGF0b21pYyBpbmxpbmUg
bGV2ZWwgYm94ZXMpIHN0cmV0Y2ggdGhlIGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
SW5saW5lQ29udGVudEJ1aWxkZXIuaAppbmRleCAyMDdlZjE0MGZkMWZiNzE3MjVlN2EyYjE0MWUy
OWZkNjgxNTk4OTk2Li4zYTE1ZTEwMTUxNDc2OWJjZjg5YTFmYjBjNTU0ZTAyYmZlOTcwNTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmgKQEAgLTQz
LDEwICs0MywxMCBAQCBjbGFzcyBJbmxpbmVDb250ZW50QnVpbGRlciB7CiBwdWJsaWM6CiAgICAg
SW5saW5lQ29udGVudEJ1aWxkZXIoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYsIGNvbnN0IEJveFRyZWUmKTsKIAotICAgIHZvaWQgYnVpbGQoY29uc3Qg
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmLCBJbmxpbmVDb250ZW50JikgY29uc3Q7Cisg
ICAgdm9pZCBidWlsZChMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYsIElubGluZUNvbnRl
bnQmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0
IExheW91dDo6SW5saW5lUnVucyYsIElubGluZUNvbnRlbnQmKSBjb25zdDsKKyAgICB2b2lkIGNy
ZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5lUnVucyYsIElubGluZUNvbnRlbnQmKSBjb25z
dDsKICAgICB2b2lkIGNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVz
JiwgSW5saW5lQ29udGVudCYpIGNvbnN0OwogCiAgICAgY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0
ZSYgbV9sYXlvdXRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKaW5kZXgg
ZWUyMGQ0YmZmNmQwYTE1NTdlYzlhZWIzOGMyNGE3YzA2YmU3OTA2ZC4uZmVkNTE2M2Q1NzYwY2Ix
ZmNhNDdmYmFhYjE1ZjI5MzJiZTQ5MTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91
dC5jcHAKQEAgLTU2MywxMSArNTYzLDExIEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnRUZXh0UnVu
VXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zCiAgICAg
ICAgIHBoeXNpY2FsUGFpbnRPZmZzZXQubW92ZSh7IDAsIC1ydW4ubG9naWNhbFJlY3QoKS5oZWln
aHQoKSB9KTsKICAgICB9CiAKLSAgICBhdXRvIHBoeXNpY2FsUmVjdCA9IFsmXShjb25zdCBhdXRv
JiByZWN0KSB7CisgICAgYXV0byBwaHlzaWNhbFJlY3QgPSBbJl0oY29uc3QgYXV0byYgcmVjdCkg
LT4gRmxvYXRSZWN0IHsKICAgICAgICAgaWYgKCFzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlY3Q7CiAgICAgICAgIGlmICghYmxvY2tJc0hv
cml6b250YWxXcml0aW5nKQotICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCB7IGZvcm1hdHRp
bmdDb250ZXh0Um9vdC53aWR0aCgpIC0gcmVjdC5tYXhZKCksIHJlY3QueCgpICwgcmVjdC53aWR0
aCgpLCByZWN0LmhlaWdodCgpIH07CisgICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0IHsgZm9y
bWF0dGluZ0NvbnRleHRSb290LndpZHRoKCkgLSByZWN0LmJvdHRvbSgpLCByZWN0LmxlZnQoKSAs
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSB9OwogICAgICAgICBBU1NFUlRfTk9UX0lNUExF
TUVOVEVEX1lFVCgpOwogICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9OwpAQCAtNTkyLDcgKzU5
Miw3IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5h
dGVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zCiAgICAgLy8gVGV4dFJ1biBleHBlY3RzIHRo
ZSB4UG9zIHRvIGJlIGFkanVzdGVkIHdpdGggdGhlIGFsaWdtZW50IG9mZnNldCAoZS5nLiB3aGVu
IHRoZSBsaW5lIGlzIGNlbnRlciBhbGlnbmVkCiAgICAgLy8gYW5kIHRoZSBydW4gc3RhcnRzIGF0
IDEwMHB4LCBkdWUgdG8gdGhlIGhvcml6b250YWwgYWxpZ21lbnQsIHRoZSB4cG9zIGlzIHN1cHBv
c2VkIHRvIGJlIGF0IDBweCkuCiAgICAgYXV0byYgZm9udENhc2NhZGUgPSBzdHlsZS5mb250Q2Fz
Y2FkZSgpOwotICAgIGF1dG8geFBvcyA9IHJ1bi5sb2dpY2FsUmVjdCgpLngoKSAtIChsaW5lLmxp
bmVCb3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRMZWZ0KCkpOworICAgIGF1dG8geFBvcyA9IHJ1bi5s
b2dpY2FsUmVjdCgpLmxlZnQoKSAtIChsaW5lLmxpbmVCb3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRM
ZWZ0KCkpOwogICAgIGF1dG8gdGV4dFJ1biA9IFdlYkNvcmU6OlRleHRSdW4geyB0ZXh0Q29udGVu
dC5yZW5kZXJlZENvbnRlbnQoKSwgeFBvcywgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24s
IGV4cGFuc2lvbi5iZWhhdmlvciB9OwogICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29s
bGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UGFnaW5hdGlvbi5jcHAKaW5kZXggNThlN2ZjMzgyMWFmZWIyNzJkMGRhMTEzYWRkNWYzNjk2YmRi
OGZkZi4uMDk5OTI5ZGNhNzk4MGNmZjdmNTQwMjhjMGNmYTE1OTRjMzJlN2IyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFn
aW5hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKQEAgLTE0NCw2ICsxNDQsNyBAQCBzdGF0aWMgUmVm
PElubGluZUNvbnRlbnQ+IG1ha2VBZGp1c3RlZENvbnRlbnQoY29uc3QgSW5saW5lQ29udGVudCYg
aW5saW5lQ29udGVudAogICAgIHsKICAgICAgICAgcmV0dXJuIFJ1biB7CiAgICAgICAgICAgICBy
dW4ubGluZUluZGV4KCksCisgICAgICAgICAgICBydW4udHlwZSgpLAogICAgICAgICAgICAgcnVu
LmxheW91dEJveCgpLAogICAgICAgICAgICAgbW92ZVZlcnRpY2FsbHkocnVuLmxvZ2ljYWxSZWN0
KCksIG9mZnNldCksCiAgICAgICAgICAgICBtb3ZlVmVydGljYWxseShydW4uaW5rT3ZlcmZsb3co
KSwgb2Zmc2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDgyYTVlNDBkOTI5MzM4YzIxNTJkZTk1MTNiODk5MzdiNTVkMmVhYWEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCi0jaW5jbHVkZSAi
TGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUZXh0Rmxh
Z3MuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRJbWFnZTsKLQotbmFt
ZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKLQotc3RydWN0IFJ1biB7Ci0gICAgV1RGX01BS0Vf
U1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHN0cnVjdCBUZXh0IHsKLSAgICAgICAgV1RGX01B
S0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgVGV4dChzaXpl
X3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYsIFN0cmluZyBhZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlciwgYm9vbCBoYXNIeXBoZW4pOwotCi0gICAgICAgIHNpemVfdCBzdGFy
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KLSAgICAgICAgc2l6ZV90IGVuZCgpIGNvbnN0
IHsgcmV0dXJuIHN0YXJ0KCkgKyBsZW5ndGgoKTsgfQotICAgICAgICBzaXplX3QgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KLSAgICAgICAgU3RyaW5nVmlldyBvcmlnaW5hbENv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3KG1fb3JpZ2luYWxDb250ZW50KS5zdWJz
dHJpbmcobV9zdGFydCwgbV9sZW5ndGgpOyB9Ci0gICAgICAgIFN0cmluZ1ZpZXcgcmVuZGVyZWRD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlci5pc051bGwo
KSA/IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsgfQotICAg
ICAgICBib29sIGhhc0h5cGhlbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzSHlwaGVuOyB9Ci0KLSAg
ICBwcml2YXRlOgotICAgICAgICBzaXplX3QgbV9zdGFydCB7IDAgfTsKLSAgICAgICAgc2l6ZV90
IG1fbGVuZ3RoIHsgMCB9OwotICAgICAgICBib29sIG1faGFzSHlwaGVuIHsgZmFsc2UgfTsKLSAg
ICAgICAgU3RyaW5nIG1fb3JpZ2luYWxDb250ZW50OwotICAgICAgICBTdHJpbmcgbV9hZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlcjsKLSAgICB9OwotCi0gICAgc3RydWN0IEV4cGFuc2lvbjsKLSAgICBS
dW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24sIHN0ZDo6b3B0aW9uYWw8
VGV4dD4gPSBzdGQ6Om51bGxvcHQpOwotCi0gICAgY29uc3QgRmxvYXRSZWN0JiBsb2dpY2FsUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IEZsb2F0UmVjdCYgaW5rT3Zl
cmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93OyB9Ci0KLSAgICB2b2lkIHNldFZl
cnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgpOwotCi0gICAgc3RkOjpvcHRpb25hbDxUZXh0PiYgdGV4
dCgpIHsgcmV0dXJuIG1fdGV4dDsgfQotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dD4mIHRl
eHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICAvLyBGSVhNRTogVGhpcyBpbmZvcm1h
dGlvbiBzaG91bGQgYmUgcHJlc2VydmVkIGF0IFJ1biBjb25zdHJ1Y3Rpb24gdGltZS4KLSAgICBi
b29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbGF5b3V0Qm94KCkuaXNMaW5lQnJlYWtC
b3goKSB8fCAodGV4dCgpICYmIHRleHQoKS0+b3JpZ2luYWxDb250ZW50KCkgPT0gIlxuIiAmJiBz
dHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKTsgfQotCi0gICAgc3RydWN0IEV4cGFuc2lvbiB7Ci0g
ICAgICAgIEV4cGFuc2lvbkJlaGF2aW9yIGJlaGF2aW9yIHsgRGVmYXVsdEV4cGFuc2lvbiB9Owot
ICAgICAgICBMYXlvdXQ6OklubGluZUxheW91dFVuaXQgaG9yaXpvbnRhbEV4cGFuc2lvbiB7IDAg
fTsKLSAgICB9OwotICAgIEV4cGFuc2lvbiBleHBhbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2V4
cGFuc2lvbjsgfQotCi0gICAgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCgpIGNvbnN0IHsg
cmV0dXJuICptX2xheW91dEJveDsgfQotICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94LT5zdHlsZSgpOyB9Ci0KLSAgICBzaXplX3QgbGluZUlu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KLQotcHJpdmF0ZToKLSAgICAvLyBG
SVhNRTogRmluZCBvdXQgdGhlIERpc3BsYXk6OlJ1biA8LT4gcGFpbnQgc3R5bGUgc2V0dXAuCi0g
ICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwotICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpC
b3g+IG1fbGF5b3V0Qm94OwotICAgIEZsb2F0UmVjdCBtX3JlY3Q7Ci0gICAgRmxvYXRSZWN0IG1f
aW5rT3ZlcmZsb3c7Ci0gICAgRXhwYW5zaW9uIG1fZXhwYW5zaW9uOwotICAgIHN0ZDo6b3B0aW9u
YWw8VGV4dD4gbV90ZXh0OwotfTsKLQotaW5saW5lIFJ1bjo6UnVuKHNpemVfdCBsaW5lSW5kZXgs
IGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRp
b25hbDxUZXh0PiB0ZXh0KQotICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQotICAgICwgbV9s
YXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKLSAgICAsIG1fcmVjdChyZWN0KQotICAg
ICwgbV9pbmtPdmVyZmxvdyhpbmtPdmVyZmxvdykKLSAgICAsIG1fZXhwYW5zaW9uKGV4cGFuc2lv
bikKLSAgICAsIG1fdGV4dCh0ZXh0KQotewotfQotCi1pbmxpbmUgUnVuOjpUZXh0OjpUZXh0KHNp
emVfdCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbENvbnRlbnQs
IFN0cmluZyBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciwgYm9vbCBoYXNIeXBoZW4pCi0gICAgOiBt
X3N0YXJ0KHN0YXJ0KQotICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgICwgbV9oYXNIeXBoZW4o
aGFzSHlwaGVuKQotICAgICwgbV9vcmlnaW5hbENvbnRlbnQob3JpZ2luYWxDb250ZW50KQotICAg
ICwgbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcihhZGp1c3RlZENvbnRlbnRUb1JlbmRlcikKLXsK
LX0KLQotaW5saW5lIHZvaWQgUnVuOjpzZXRWZXJ0aWNhbFBvc2l0aW9uSW50ZWdyYWwoKQotewot
ICAgIG1fcmVjdC5zZXRZKHJvdW5kVG9JbnQobV9yZWN0LnkoKSkpOwotICAgIG1faW5rT3ZlcmZs
b3cuc2V0WShyb3VuZFRvSW50KG1faW5rT3ZlcmZsb3cueSgpKSk7Ci19Ci0KLX0KLX0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKaW5kZXggNzQ4NTJhNmIw
ZDI1MWI1YTUxNmM0YjM1MGNiMTk0MGYxZmM1NmQxOS4uN2ExM2FkYzEwZWJkMWM1MzY3OTNkNjM5
Yzk1YTBjOTc4MTZiNzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIu
Y3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
LSNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIgogI2luY2x1ZGUgIkxlZ2FjeUlubGlu
ZVRleHRCb3guaCIKICNpbmNsdWRlICJSZW5kZXJDb21iaW5lVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436990</attachid>
            <date>2021-08-31 20:41:34 -0700</date>
            <delta_ts>2021-09-01 08:15:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229719-20210831204133.patch</filename>
            <type>text/plain</type>
            <size>30603</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5YzJiZGQ3ODhmMjBl
ODQyODMyMDA3NmIxZjUxZGMxYjg5NGZhYy4uNGQwOTc4OTZmZWJmNjBmYzQyNDA3MDU2ZjllMDkz
NGJiYmNkNjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA4LTMxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBn
ZW5lcmF0ZSBpbnRlZ3JhdGlvbiBydW5zIG91dCBvZiBJRkMncyBkaXNwbGF5IHJ1bnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEludGVncmF0aW9uIHJ1
bnMgYW5kIElGQyBkaXNwbGF5IHJ1bnMgaG9sZCB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YgZGF0YSwg
c28gbGV0J3Mgbm90IGR1cGxpY2F0ZSB0aGVuIGZvciB0aGUgaW50ZWdyYXRpb24gbGF5ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6VGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpi
dWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UnVuOjpUZXh0OjpvcmlnaW5hbENv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSdW46OlRleHQ6OnJlbmRl
cmVkQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJ1bjo6c2V0VmVy
dGljYWxQb3NpdGlvbkludGVncmFsKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50QnVp
bGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjptYWtlQWRqdXN0ZWRD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorCiAy
MDIxLTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUg
dXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzQ1MWNiZWE5M2VmYTYyYjZjYjYxNjEyNjY4ZTgy
NzhkNzUyMzY5Zi4uNTgzMjUxOTRiMzNhYTIyYjdhMmUwNWZjNDg0Y2NiM2U0MGEwZDRiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC03NjgsNiArNzY4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIGxheW91dC9MYXlvdXRVbml0cy5oCiAgICAgbGF5b3V0L01h
cmdpblR5cGVzLmgKIAorICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVSdW4uaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJl
Y3QuaAogCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudC5oCkBAIC03NzUsNyArNzc2LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVy
YXRvci5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJh
dG9yTGVnYWN5UGF0aC5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCi0gICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUnVuLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvci5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JMZWdhY3lQYXRoLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwMjYxMDMyNWEzMzZmNTEzZmMyMTI2
NGZhMDE3NzMzOGY0ZDg4ZDAuLjY3YjhmM2M5MmZiMjM1MDQ4NzBjMTM0ODVmNmZhMjY5ZGNhMDNk
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIxNzcsNyArMjE3Nyw2IEBACiAJCTZGQjdEMkRFMjUwRkQ4MkUwMDAyMDdBQSAv
KiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTZGQzNGOTQ3MjUxNjc1NjcwMEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkMzRjk0NTI1MTY3NTY2MDBBNDlC
RUEgLyogSW5saW5lTGluZVJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGQ0JEQjk3MjY1REYyQzgwMDIxRUE3QiAvKiBMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkNCREI5NTI2NURGMkM3MDAyMUVBN0IgLyogTGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTZGQ0UxQTFBMjI2MThBQkQwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZEMDk1NDMyNTEx
MTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExh
eW91dEdlb21ldHJ5UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZF
MTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFNjM2RTgyNjQ3OTYy
OTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTYzNkU3MjY0Nzk2MjkwMEYwOTUxRSAvKiBJ
bmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDYwLDcgKzEwMDU5LDYgQEAKIAkJNkZDNUNBOTUyMkUzNTk5
NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFi
bGVGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1
Q0E5NjIyRTM1OTk1MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkZDQkRCOTUyNjVERjJDNzAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0Q29udGFp
bmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25SdW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRHZW9tZXRyeVJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTA2OSw3ICsyOTA2Nyw2IEBACiAJCQkJRTRB
QkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oICov
LAogCQkJCUU0MzEyQUI1MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2lu
YXRpb24uY3BwICovLAogCQkJCUU0MzEyQUI3MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uaCAqLywKLQkJCQk2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLywKIAkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCiAJCQkJRTRBNjY0QzYyNTIx
Qjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywKIAkJCQlF
NEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxl
Z2FjeVBhdGguaCAqLywKQEAgLTMzNTIxLDcgKzMzNTE4LDYgQEAKIAkJCQlFNEQzM0Y0NjI1MkM1
MEZDMDA4MzdEMDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDAzQjdBMzI1MUIxMUMx
MDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQk2RkNFMUExQTIyNjE4QUJEMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCBp
biBIZWFkZXJzICovLAogCQkJCUU0QTY2NENDMjUyMUQ0QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEE2NjRDRjI1MjFENEUy
MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0QTY2NENFMjUyMUQ0QzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5VGV4dEJveC5jcHAKaW5kZXggYjA0N2I3ZmZiYWUxNmJh
ZDJhYWNlZTgyMjQ5ZmJlNjhmZmI1NjlmNy4uZGIyMzE0ZGI0NzQzMDA4ZWI2MDZmMmZmMTI3OGQ0
NjE1MTI4YWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxh
eVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlUZXh0
Qm94LmNwcApAQCAtNTMsNyArNTMsNyBAQCBTdHJpbmcgVGV4dEJveDo6ZGVidWdEZXNjcmlwdGlv
bigpIGNvbnN0CiAgICAgVGV4dFN0cmVhbSBzdHJlYW07CiAKICAgICBzdHJlYW0gPDwgYm94TmFt
ZSgpIDw8ICIgIiA8PCBhYnNvbHV0ZUJveFJlY3QoKSA8PCAiICgiIDw8IHRoaXMgPDwgIikiOwot
ICAgIGF1dG8gdGV4dENvbnRlbnQgPSB0ZXh0KCkub3JpZ2luYWxDb250ZW50KCkuc3Vic3RyaW5n
KHRleHQoKS5zdGFydCgpLCB0ZXh0KCkubGVuZ3RoKCkpOworICAgIGF1dG8gdGV4dENvbnRlbnQg
PSB0ZXh0KCkub3JpZ2luYWxDb250ZW50KCkuc3Vic3RyaW5nKHRleHQoKS5zdGFydCgpLCB0ZXh0
KCkubGVuZ3RoKCkpLnRvU3RyaW5nKCk7CiAgICAgdGV4dENvbnRlbnQucmVwbGFjZVdpdGhMaXRl
cmFsKCdcXCcsICJcXFxcIik7CiAgICAgdGV4dENvbnRlbnQucmVwbGFjZVdpdGhMaXRlcmFsKCdc
bicsICJcXG4iKTsKICAgICBjb25zdCBzaXplX3QgbWF4UHJpbnRlZExlbmd0aCA9IDgwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAK
aW5kZXggNDMyMDEwYjZlYjhjYmZiOGVhNTFlMTM0YjYyNTU2N2ZhZDVkOGIzYi4uMWExM2EyYTI5
ZTExNDY3MjYyYTc3MDliMTBjOWZlNjI2MmMzMGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAorI2RlZmluZSBBTExP
V19ST09UX0FORF9MSU5FX1NQQU5OSU5HX0lOTElORV9CT1ggMAogCiBJbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXI6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcihjb25zdCBDb250YWluZXJC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0
aW5nU3RhdGUpCiAgICAgOiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdChmb3JtYXR0aW5nQ29udGV4
dFJvb3QpCkBAIC00NywxMSArNDgsMTIgQEAgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIoY29uc3QgQ29udGFpbmVyQm94JiBmb3IKIHZvaWQg
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpidWlsZChjb25zdCBMaW5lQnVpbGRlcjo6TGlu
ZUNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25zdCBMaW5lQm94JiBsaW5lQm94LCBjb25zdCBJbmxp
bmVMYXlvdXRQb2ludCYgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBjb25zdCBzaXplX3QgbGluZUlu
ZGV4KQogewogICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0
ZSgpOworI2lmIEFMTE9XX1JPT1RfQU5EX0xJTkVfU1BBTk5JTkdfSU5MSU5FX0JPWAogICAgIC8v
IEV2ZXJ5IGxpbmUgc3RhcnRzIHdpdGggYSByb290IHJ1biwgZXZlbiB0aGUgZW1wdHkgb25lcy4K
ICAgICBhdXRvIHJvb3RJbmxpbmVCb3hSZWN0ID0gbGluZUJveC5sb2dpY2FsUmVjdEZvclJvb3RJ
bmxpbmVCb3goKTsKICAgICByb290SW5saW5lQm94UmVjdC5tb3ZlQnkobGluZUJveExvZ2ljYWxU
b3BMZWZ0KTsKICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkUnVuKHsgbGluZUluZGV4LCBSdW46OlR5
cGU6OlJvb3RJbmxpbmVCb3gsIHJvb3QoKSwgcm9vdElubGluZUJveFJlY3QsIHJvb3RJbmxpbmVC
b3hSZWN0LCB7IH0sIHsgfSwgIGxpbmVCb3gucm9vdElubGluZUJveCgpLmhhc0NvbnRlbnQoKX0p
OwotCisjZW5kaWYKICAgICAvLyBTcGFubmluZyBpbmxpbmUgYm94ZXMgc3RhcnQgYXQgdGhlIHZl
cnkgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLgogICAgIGF1dG8gbGluZVNwYW5uaW5nSW5saW5lQm94
SW5kZXggPSBmb3JtYXR0aW5nU3RhdGUucnVucygpLnNpemUoKTsKICAgICBjcmVhdGVSdW5zQW5k
VXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChsaW5lQ29udGVudCwgbGluZUJveCwgbGluZUJv
eExvZ2ljYWxUb3BMZWZ0LCBsaW5lSW5kZXgpOwpAQCAtMTgxLDcgKzE4Myw3IEBAIHZvaWQgSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JM
aW5lQ29udGVudChjb25zCiAgICAgZm9ybWF0dGluZ1N0YXRlLmxpbmVzKCkubGFzdCgpLnNldE5l
ZWRzSW50ZWdyYWxQb3NpdGlvbihsaW5lTmVlZEludGVncmFsUG9zaXRpb24pOwogfQogCi12b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5
Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94ZXMoY29uc3QgTGluZUJveCYgbGluZUJveCwgY29uc3Qg
SW5saW5lTGF5b3V0UG9pbnQmIGxpbmVCb3hMb2dpY2FsVG9wTGVmdCwgY29uc3Qgc2l6ZV90IGxp
bmVJbmRleCwgc2l6ZV90IGxpbmVTcGFubmluZ0lubGluZUJveEluZGV4KQordm9pZCBJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVT
cGFubmluZ0lubGluZUJveGVzKGNvbnN0IExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IElubGluZUxh
eW91dFBvaW50JiBsaW5lQm94TG9naWNhbFRvcExlZnQsIGNvbnN0IHNpemVfdCAvKmxpbmVJbmRl
eCovLCBzaXplX3QgLypsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJbmRleCovKQogewogICAgIGlmICgh
bGluZUJveC5oYXNDb250ZW50KCkpIHsKICAgICAgICAgLy8gV2hlbiBhIHNwYW5uaW5nIGlubGlu
ZSBib3ggKGUuZy4gPGRpdj50ZXh0PHNwYW4+PGJyPjwvc3Bhbj48L2Rpdj4pIGxhbmRzIG9uIGFu
IGVtcHR5IGxpbmUKQEAgLTIwMiw4ICsyMDQsOSBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50
QnVpbGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saQog
ICAgICAgICBhdXRvIGlubGluZUJveEJvcmRlckJveCA9IGxpbmVCb3gubG9naWNhbEJvcmRlckJv
eEZvcklubGluZUJveChsYXlvdXRCb3gsIGJveEdlb21ldHJ5KTsKICAgICAgICAgaW5saW5lQm94
Qm9yZGVyQm94Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwogCisjaWYgQUxMT1dfUk9P
VF9BTkRfTElORV9TUEFOTklOR19JTkxJTkVfQk9YCiAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5y
dW5zKCkuaW5zZXJ0KGxpbmVTcGFubmluZ0lubGluZUJveEluZGV4KyssIHsgbGluZUluZGV4LCBS
dW46OlR5cGU6Ok5vblJvb3RJbmxpbmVCb3gsIGxheW91dEJveCwgaW5saW5lQm94Qm9yZGVyQm94
LCBpbmxpbmVCb3hCb3JkZXJCb3gsIHsgfSwgeyB9LCBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50
KCksIHRydWUgfSk7Ci0KKyNlbmRpZgogICAgICAgICBhdXRvIGlubGluZUJveFNpemUgPSBMYXlv
dXRTaXplIHsgTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJCb3gud2lk
dGgoKSksIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwoaW5saW5lQm94Qm9yZGVyQm94LmhlaWdo
dCgpKSB9OwogICAgICAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gUmVjdCB7IExheW91dFBvaW50IHsg
aW5saW5lQm94Qm9yZGVyQm94LnRvcExlZnQoKSB9LCBpbmxpbmVCb3hTaXplIH07CiAgICAgICAg
IC8vIE1pZGRsZSBvciBlbmQgb2YgdGhlIGlubGluZSBib3guIExldCdzIHN0cmV0Y2ggdGhlIGJv
eCBhcyBuZWVkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lUnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lUnVuLmgKaW5kZXggMDJhYWI3NWMy
ZTE0NWJiNTFhYTI3NjIwNTIyZDE5NWJhODI3ZWYwOC4uZjJmMDlkMTk1YmE3ODI5ZTE3MTg0NGVj
MDVmNDNmZTQzOWZmMzk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZVJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVSdW4uaApAQCAtNDQs
OCArNDQsOCBAQCBzdHJ1Y3QgUnVuIHsKICAgICAgICAgc2l6ZV90IHN0YXJ0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydDsgfQogICAgICAgICBzaXplX3QgZW5kKCkgY29uc3QgeyByZXR1cm4gc3Rh
cnQoKSArIGxlbmd0aCgpOyB9CiAgICAgICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX2xlbmd0aDsgfQotICAgICAgICBTdHJpbmcgb3JpZ2luYWxDb250ZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9vcmlnaW5hbENvbnRlbnQ7IH0KLSAgICAgICAgU3RyaW5nIHJlbmRlcmVkQ29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXI7IH0KKyAgICAgICAg
U3RyaW5nVmlldyBvcmlnaW5hbENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3KG1f
b3JpZ2luYWxDb250ZW50KS5zdWJzdHJpbmcobV9zdGFydCwgbV9sZW5ndGgpOyB9CisgICAgICAg
IFN0cmluZ1ZpZXcgcmVuZGVyZWRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENv
bnRlbnRUb1JlbmRlci5pc051bGwoKSA/IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3RlZENv
bnRlbnRUb1JlbmRlcjsgfQogCiAgICAgICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNIeXBoZW47IH0KIApAQCAtMTExLDYgKzExMSw4IEBAIHN0cnVjdCBSdW4gewogCiAg
ICAgc2l6ZV90IGxpbmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CiAKKyAg
ICB2b2lkIHNldFZlcnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgpOworCiBwcml2YXRlOgogICAgIGNv
bnN0IHNpemVfdCBtX2xpbmVJbmRleDsKICAgICBjb25zdCBUeXBlIG1fdHlwZTsKQEAgLTE0Niw2
ICsxNDgsMTIgQEAgaW5saW5lIFJ1bjo6VGV4dDo6VGV4dChzaXplX3Qgc3RhcnQsIHNpemVfdCBs
ZW5ndGgsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxDb250ZW4KIHsKIH0KIAoraW5saW5lIHZvaWQg
UnVuOjpzZXRWZXJ0aWNhbFBvc2l0aW9uSW50ZWdyYWwoKQoreworICAgIG1fbG9naWNhbFJlY3Qu
c2V0VG9wKHJvdW5kVG9JbnQobV9sb2dpY2FsUmVjdC50b3AoKSkpOworICAgIG1faW5rT3ZlcmZs
b3cuc2V0VG9wKHJvdW5kVG9JbnQobV9pbmtPdmVyZmxvdy50b3AoKSkpOworfQorCiB9CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZVJlY3QuaAppbmRleCAyOWFlMjk1MzA3ZThkZTczZjRiYTk3
M2FkNzMxZDJmNmI0Mjc0ZWU3Li5jNGMyNWQ5ZWM0ODRkNTliNWZmMDIyYmJhMDJiNWI0ZjFjY2Nm
YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVjdC5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoK
ICAgICBJbmxpbmVSZWN0KElubGluZUxheW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRVbml0IGxl
ZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KTsKICAg
ICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxpbmVMYXlv
dXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7CiAgICAgSW5saW5lUmVjdChj
b25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0U2l6ZSYp
OworICAgIElubGluZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgCiAgICAgSW5saW5lTGF5
b3V0VW5pdCB0b3AoKSBjb25zdDsKICAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdDsK
QEAgLTExNCw2ICsxMTUsMTEgQEAgaW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3Qg
SW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW8KIHsKIH0KIAoraW5s
aW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorICAgIDog
SW5saW5lUmVjdChyZWN0LnkoKSwgcmVjdC54KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSkKK3sKK30KKwogI2lmIEFTU0VSVF9FTkFCTEVECiBpbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojpp
bnZhbGlkYXRlUG9zaXRpb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5o
CmluZGV4IGJmYzljYjJiMDM5NWM1Y2ZiMzFlYjJjN2E5ZTE5MzhkM2NhNWYyNGQuLmIwN2IxMGUw
YzhlMGQ0MmU5NmE4NGMzYjkzNWZiOWZjNTg0MGYxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25J
bmxpbmVDb250ZW50LmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAiSW5saW5lTGluZVJ1bi5oIgogI2luY2x1ZGUg
IkxheW91dEludGVncmF0aW9uTGluZS5oIgotI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVu
LmgiCiAjaW5jbHVkZSA8d3RmL0l0ZXJhdG9yUmFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgTGlu
ZUxheW91dDsKIGNsYXNzIFJ1bkl0ZXJhdG9yOwogY2xhc3MgVGV4dFJ1bkl0ZXJhdG9yOwogCit1
c2luZyBSdW4gPSBMYXlvdXQ6OlJ1bjsKKwogc3RydWN0IElubGluZUNvbnRlbnQgOiBwdWJsaWMg
UmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAgc3RhdGljIFJlZjxJbmxpbmVDb250ZW50
PiBjcmVhdGUoY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbmxpbmVDb250ZW50KGxpbmVMYXlvdXQpKTsgfQogICAgIH5JbmxpbmVDb250ZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKaW5k
ZXggYzk0YmI2M2JmMWViZGFlMzdlOWE3Y2NlMmYwY2Y0ZDc2ZTIxZGFmOS4uNTkxOWZmMGMwMmM0
NjAyNTU0YmJjZmE2ZThmYmNlYTVmNjBlMzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMjksMTAgKzI5LDEwIEBACiAjaWYgRU5B
QkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJJbmxpbmVMaW5lUnVuLmgiCiAjaW5jbHVkZSAiTGF5b3V0
Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIKICNp
bmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaCIKLSNpbmNsdWRlICJMYXlv
dXRJbnRlZ3JhdGlvblJ1bi5oIgogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkQm94LmgiCiAjaW5j
bHVkZSAiTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKQEAgLTY1
LDM4ICs2NSwzNCBAQCBJbmxpbmVDb250ZW50QnVpbGRlcjo6SW5saW5lQ29udGVudEJ1aWxkZXIo
Y29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdAogewogfQogCi12b2lkIElubGlu
ZUNvbnRlbnRCdWlsZGVyOjpidWlsZChjb25zdCBMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0
ZSYgaW5saW5lRm9ybWF0dGluZ1N0YXRlLCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50KSBj
b25zdAordm9pZCBJbmxpbmVDb250ZW50QnVpbGRlcjo6YnVpbGQoTGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUmIGlubGluZUZvcm1hdHRpbmdTdGF0ZSwgSW5saW5lQ29udGVudCYgaW5saW5l
Q29udGVudCkgY29uc3QKIHsKLSAgICBjcmVhdGVEaXNwbGF5UnVucyhpbmxpbmVGb3JtYXR0aW5n
U3RhdGUucnVucygpLCBpbmxpbmVDb250ZW50KTsKKyAgICBjcmVhdGVEaXNwbGF5UnVucyhpbmxp
bmVGb3JtYXR0aW5nU3RhdGUsIGlubGluZUNvbnRlbnQpOwogICAgIGNyZWF0ZURpc3BsYXlMaW5l
cyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKSwgaW5saW5lQ29udGVudCk7CiB9CiAKLXZv
aWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91dDo6
SW5saW5lUnVucyYgcnVucywgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKK3Zv
aWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUsIElubGluZUNvbnRlbnQmIGlu
bGluZUNvbnRlbnQpIGNvbnN0CiB7Ci0gICAgaWYgKHJ1bnMuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpbmxpbmVDb250ZW50LnJ1bnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShy
dW5zLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBydW4gOiBydW5zKSB7Ci0gICAgICAgIGlmIChh
dXRvIHRleHQgPSBydW4udGV4dCgpKSB7Ci0gICAgICAgICAgICBpbmxpbmVDb250ZW50LnJ1bnMu
YXBwZW5kKHsgcnVuLmxpbmVJbmRleCgpLCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVj
dCgpLCBydW4uaW5rT3ZlcmZsb3coKSwgUnVuOjpFeHBhbnNpb24geyBydW4uZXhwYW5zaW9uKCku
YmVoYXZpb3IsIHJ1bi5leHBhbnNpb24oKS5ob3Jpem9udGFsRXhwYW5zaW9uIH0KLSAgICAgICAg
ICAgICAgICAsIFJ1bjo6VGV4dCB7IHRleHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0
LT5vcmlnaW5hbENvbnRlbnQoKSwgdGV4dC0+cmVuZGVyZWRDb250ZW50KCksIHRleHQtPmhhc0h5
cGhlbigpIH0gfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXJ1bi5pc1Jvb3RJbmxpbmVCb3goKSkg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFRlYWNoIHRoZSBydW4gaXRlcmF0b3JzIHRvIGlnbm9y
ZSB0aGUgcm9vdCBpbmxpbmUgYm94IHJ1bnMuCi0gICAgICAgICAgICBhdXRvJiBnZW9tZXRyeSA9
IG1fbGF5b3V0U3RhdGUuZ2VvbWV0cnlGb3JCb3gocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAg
ICAgIGlmICghcnVuLmlzSW5saW5lQm94KCkgfHwgIXJ1bi5pc0xpbmVTcGFubmluZygpKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gRklYTUU6IFJ1biBpdGVyYXRvcnMgd2l0aCAodGV4dClydW5zIHNw
YW5uaW5nIG92ZXIgbXVsdGlwbGUgbGluZXMgZXhwZWN0IG5vICJpbi1iZXR3ZWVuIiBydW5zIChl
LmcuIGxpbmUgc3Bhbm5pbmcgb3Igcm9vdCBpbmxpbmUgYm94ZXMpLgotICAgICAgICAgICAgICAg
IGlubGluZUNvbnRlbnQucnVucy5hcHBlbmQoeyBydW4ubGluZUluZGV4KCksIHJ1bi5sYXlvdXRC
b3goKSwgcnVuLmxvZ2ljYWxSZWN0KCksIHJ1bi5pbmtPdmVyZmxvdygpLCB7IH0sIHsgfSB9KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChydW4uaXNJbmxpbmVCb3goKSkgewotICAg
ICAgICAgICAgICAgIGF1dG8gaGFzU2Nyb2xsYWJsZUNvbnRlbnQgPSBbJl0gewotICAgICAgICAg
ICAgICAgICAgICAvLyBJbiBzdGFuZGFyZHMgbW9kZSwgaW5saW5lIGJveGVzIGFsd2F5cyBzdGFy
dCB3aXRoIGFuIGltYWdpbmFyeSBzdHJ1dC4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
bGF5b3V0U3RhdGUuaW5TdGFuZGFyZHNNb2RlKCkgfHwgcnVuLmhhc0NvbnRlbnQoKSB8fCBnZW9t
ZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgKGdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkg
JiYgZ2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1ZSgpKTsKLSAgICAgICAgICAgICAg
ICB9OwotICAgICAgICAgICAgICAgIGlubGluZUNvbnRlbnQubm9uUm9vdElubGluZUJveGVzLmFw
cGVuZCh7IHJ1bi5saW5lSW5kZXgoKSwgcnVuLmxheW91dEJveCgpLCBydW4ubG9naWNhbFJlY3Qo
KSwgaGFzU2Nyb2xsYWJsZUNvbnRlbnQoKSB9KTsKLSAgICAgICAgICAgIH0KKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgbG9vcCB3aGVuIHdlIHRyYW5zaXRpb25lZCB0byB0aGUgInJ1biBvbmx5
IiBzZXR1cCAoaS5lLiBlYWNoIGlubGluZSBib3ggaXMgcmVwcmVzZW50ZWQgYXMgYSBydW4gYXMg
d2VsbCkKKyAgICBhdXRvJiBsaW5lQm94ZXMgPSBjb25zdF9jYXN0PExheW91dDo6SW5saW5lRm9y
bWF0dGluZ1N0YXRlJj4oaW5saW5lRm9ybWF0dGluZ1N0YXRlKS5saW5lQm94ZXMoKTsKKyAgICBm
b3IgKHNpemVfdCBsaW5lSW5kZXggPSAwOyBsaW5lSW5kZXggPCBsaW5lQm94ZXMuc2l6ZSgpOyAr
K2xpbmVJbmRleCkgeworICAgICAgICBhdXRvJiBsaW5lQm94ID0gbGluZUJveGVzW2xpbmVJbmRl
eF07CisgICAgICAgIGF1dG8gbGluZUJveExvZ2ljYWxUb3BMZWZ0ID0gaW5saW5lRm9ybWF0dGlu
Z1N0YXRlLmxpbmVzKClbbGluZUluZGV4XS5saW5lQm94TG9naWNhbFJlY3QoKS50b3BMZWZ0KCk7
CisgICAgICAgIGZvciAoYXV0byYgbm9uUm9vdElubGluZUJveCA6IGxpbmVCb3gubm9uUm9vdElu
bGluZUxldmVsQm94ZXMoKSkgeworICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gbm9uUm9v
dElubGluZUJveC5sYXlvdXRCb3goKTsKKyAgICAgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0g
aW5saW5lRm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91dEJveCk7CisgICAgICAgICAg
ICBhdXRvIGhhc1Njcm9sbGFibGVDb250ZW50ID0gWyZdIHsKKyAgICAgICAgICAgICAgICAvLyBJ
biBzdGFuZGFyZHMgbW9kZSwgaW5saW5lIGJveGVzIGFsd2F5cyBzdGFydCB3aXRoIGFuIGltYWdp
bmFyeSBzdHJ1dC4KKyAgICAgICAgICAgICAgICByZXR1cm4gbV9sYXlvdXRTdGF0ZS5pblN0YW5k
YXJkc01vZGUoKSB8fCBub25Sb290SW5saW5lQm94Lmhhc0NvbnRlbnQoKSB8fCBib3hHZW9tZXRy
eS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgKGJveEdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkg
JiYgYm94R2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1ZSgpKTsKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICAvLyBJbmxpbmUgYm94ZXMgbWF5IG9yIG1heSBub3QgYmUgd3JhcHBl
ZCBhbmQgaGF2ZSBydW5zIG9uIG11bHRpcGxlIGxpbmVzIChlLmcuIDxzcGFuPmZpcnN0IGxpbmU8
YnI+c2Vjb25kIGxpbmU8YnI+dGhpcmQgbGluZTwvc3Bhbj4pCisgICAgICAgICAgICBhdXRvIGlu
bGluZUJveEJvcmRlckJveCA9IGxpbmVCb3gubG9naWNhbEJvcmRlckJveEZvcklubGluZUJveChs
YXlvdXRCb3gsIGJveEdlb21ldHJ5KTsKKyAgICAgICAgICAgIGlubGluZUJveEJvcmRlckJveC5t
b3ZlQnkobGluZUJveExvZ2ljYWxUb3BMZWZ0KTsKKyAgICAgICAgICAgIGlubGluZUNvbnRlbnQu
bm9uUm9vdElubGluZUJveGVzLmFwcGVuZCh7IGxpbmVJbmRleCwgbGF5b3V0Qm94LCBpbmxpbmVC
b3hCb3JkZXJCb3gsIGhhc1Njcm9sbGFibGVDb250ZW50KCkgfSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgbmVlZCBhIGRpZmZlcmVudCBhcHByb2FjaCB3aXRo
IHBhcnRpYWwgbGF5b3V0IHdoZXJlIHRoZSBsYXlvdXQgY29kZSBuZWVkcyB0byBrbm93IGFib3V0
IHRoZSBydW5zLgorICAgIGlubGluZUNvbnRlbnQucnVucyA9IFdURk1vdmUoaW5saW5lRm9ybWF0
dGluZ1N0YXRlLnJ1bnMoKSk7CiB9CiAKIHZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0
ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiBsaW5lcywgSW5saW5lQ29u
dGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKQEAgLTEzMSwxMSArMTI3LDExIEBAIHZvaWQgSW5s
aW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGlu
ZUxpbmVzJiBsaW5lcywKICAgICAgICAgICAgIGF1dG8gcnVuTG9naWNhbFJlY3QgPSBydW4ubG9n
aWNhbFJlY3QoKTsKICAgICAgICAgICAgIGlmICghYm94Lmhhc1NlbGZQYWludGluZ0xheWVyKCkp
IHsKICAgICAgICAgICAgICAgICBhdXRvIGNoaWxkSW5rT3ZlcmZsb3cgPSBib3gubG9naWNhbFZp
c3VhbE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKCZib3gucGFyZW50KCktPnN0eWxlKCkpOwot
ICAgICAgICAgICAgICAgIGNoaWxkSW5rT3ZlcmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC54KCks
IHJ1bkxvZ2ljYWxSZWN0LnkoKSk7CisgICAgICAgICAgICAgICAgY2hpbGRJbmtPdmVyZmxvdy5t
b3ZlKHJ1bkxvZ2ljYWxSZWN0LmxlZnQoKSwgcnVuTG9naWNhbFJlY3QudG9wKCkpOwogICAgICAg
ICAgICAgICAgIGxpbmVJbmtPdmVyZmxvd1JlY3QudW5pdGUoY2hpbGRJbmtPdmVyZmxvdyk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhdXRvIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93ID0g
Ym94LmxvZ2ljYWxMYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbigmYm94LnBhcmVudCgp
LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93Lm1vdmUocnVu
TG9naWNhbFJlY3QueCgpLCBydW5Mb2dpY2FsUmVjdC55KCkpOworICAgICAgICAgICAgY2hpbGRT
Y3JvbGxhYmxlT3ZlcmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC5sZWZ0KCksIHJ1bkxvZ2ljYWxS
ZWN0LnRvcCgpKTsKICAgICAgICAgICAgIHNjcm9sbGFibGVPdmVyZmxvd1JlY3QudW5pdGUoY2hp
bGRTY3JvbGxhYmxlT3ZlcmZsb3cpOwogICAgICAgICB9CiAgICAgICAgIC8vIENvbGxlY3Qgc2Ny
b2xsYWJsZSBvdmVyZmxvdyBmcm9tIGlubGluZSBib3hlcy4gQWxsIG90aGVyIGlubGluZSBsZXZl
bCBib3hlcyAoZS5nIGF0b21pYyBpbmxpbmUgbGV2ZWwgYm94ZXMpIHN0cmV0Y2ggdGhlIGxpbmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuaAppbmRleCAy
MDdlZjE0MGZkMWZiNzE3MjVlN2EyYjE0MWUyOWZkNjgxNTk4OTk2Li4yMGRlM2RkZWRiOGUwZGMx
NzUzYzY5MmFkMzIyMzM3ZGM1MzU4ZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklu
bGluZUNvbnRlbnRCdWlsZGVyLmgKQEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBJbmxpbmVDb250
ZW50QnVpbGRlciB7CiBwdWJsaWM6CiAgICAgSW5saW5lQ29udGVudEJ1aWxkZXIoY29uc3QgTGF5
b3V0OjpMYXlvdXRTdGF0ZSYsIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IEJveFRyZWUm
KTsKIAotICAgIHZvaWQgYnVpbGQoY29uc3QgTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
LCBJbmxpbmVDb250ZW50JikgY29uc3Q7CisgICAgdm9pZCBidWlsZChMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdTdGF0ZSYsIElubGluZUNvbnRlbnQmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIGNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91dDo6SW5saW5lUnVucyYsIElubGluZUNv
bnRlbnQmKSBjb25zdDsKKyAgICB2b2lkIGNyZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlJiwgSW5saW5lQ29udGVudCYpIGNvbnN0OwogICAgIHZvaWQgY3JlYXRl
RGlzcGxheUxpbmVzKGNvbnN0IExheW91dDo6SW5saW5lTGluZXMmLCBJbmxpbmVDb250ZW50Jikg
Y29uc3Q7CiAKICAgICBjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCBlZTIwZDRiZmY2ZDBhMTU1N2Vj
OWFlYjM4YzI0YTdjMDZiZTc5MDZkLi5mZWQ1MTYzZDU3NjBjYjFmY2E0N2ZiYWFiMTVmMjkzMmJl
NDkxNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtNTYzLDExICs1
NjMsMTEgQEAgdm9pZCBMaW5lTGF5b3V0OjpwYWludFRleHRSdW5Vc2luZ1BoeXNpY2FsQ29vcmRp
bmF0ZXMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnMKICAgICAgICAgcGh5c2ljYWxQYWludE9m
ZnNldC5tb3ZlKHsgMCwgLXJ1bi5sb2dpY2FsUmVjdCgpLmhlaWdodCgpIH0pOwogICAgIH0KIAot
ICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gWyZdKGNvbnN0IGF1dG8mIHJlY3QpIHsKKyAgICBhdXRv
IHBoeXNpY2FsUmVjdCA9IFsmXShjb25zdCBhdXRvJiByZWN0KSAtPiBGbG9hdFJlY3QgewogICAg
ICAgICBpZiAoIXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcmVjdDsKICAgICAgICAgaWYgKCFibG9ja0lzSG9yaXpvbnRhbFdyaXRpbmcpCi0g
ICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0IHsgZm9ybWF0dGluZ0NvbnRleHRSb290LndpZHRo
KCkgLSByZWN0Lm1heFkoKSwgcmVjdC54KCkgLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkg
fTsKKyAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QgeyBmb3JtYXR0aW5nQ29udGV4dFJvb3Qu
d2lkdGgoKSAtIHJlY3QuYm90dG9tKCksIHJlY3QubGVmdCgpICwgcmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpIH07CiAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7CiAgICAg
ICAgIHJldHVybiByZWN0OwogICAgIH07CkBAIC01OTIsNyArNTkyLDcgQEAgdm9pZCBMaW5lTGF5
b3V0OjpwYWludFRleHRSdW5Vc2luZ1BoeXNpY2FsQ29vcmRpbmF0ZXMoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnMKICAgICAvLyBUZXh0UnVuIGV4cGVjdHMgdGhlIHhQb3MgdG8gYmUgYWRqdXN0
ZWQgd2l0aCB0aGUgYWxpZ21lbnQgb2Zmc2V0IChlLmcuIHdoZW4gdGhlIGxpbmUgaXMgY2VudGVy
IGFsaWduZWQKICAgICAvLyBhbmQgdGhlIHJ1biBzdGFydHMgYXQgMTAwcHgsIGR1ZSB0byB0aGUg
aG9yaXpvbnRhbCBhbGlnbWVudCwgdGhlIHhwb3MgaXMgc3VwcG9zZWQgdG8gYmUgYXQgMHB4KS4K
ICAgICBhdXRvJiBmb250Q2FzY2FkZSA9IHN0eWxlLmZvbnRDYXNjYWRlKCk7Ci0gICAgYXV0byB4
UG9zID0gcnVuLmxvZ2ljYWxSZWN0KCkueCgpIC0gKGxpbmUubGluZUJveExlZnQoKSArIGxpbmUu
Y29udGVudExlZnQoKSk7CisgICAgYXV0byB4UG9zID0gcnVuLmxvZ2ljYWxSZWN0KCkubGVmdCgp
IC0gKGxpbmUubGluZUJveExlZnQoKSArIGxpbmUuY29udGVudExlZnQoKSk7CiAgICAgYXV0byB0
ZXh0UnVuID0gV2ViQ29yZTo6VGV4dFJ1biB7IHRleHRDb250ZW50LnJlbmRlcmVkQ29udGVudCgp
LCB4UG9zLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9y
IH07CiAgICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwg
c3R5bGUudGFiU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmNwcAppbmRl
eCA1OGU3ZmMzODIxYWZlYjI3MmQwZGExMTNhZGQ1ZjM2OTZiZGI4ZmRmLi4wOTk5MjlkY2E3OTgw
Y2ZmN2Y1NDAyOGMwY2ZhMTU5NGMzMmU3YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0
aW9uLmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBAIHN0YXRpYyBSZWY8SW5saW5lQ29udGVudD4gbWFr
ZUFkanVzdGVkQ29udGVudChjb25zdCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50CiAgICAg
ewogICAgICAgICByZXR1cm4gUnVuIHsKICAgICAgICAgICAgIHJ1bi5saW5lSW5kZXgoKSwKKyAg
ICAgICAgICAgIHJ1bi50eXBlKCksCiAgICAgICAgICAgICBydW4ubGF5b3V0Qm94KCksCiAgICAg
ICAgICAgICBtb3ZlVmVydGljYWxseShydW4ubG9naWNhbFJlY3QoKSwgb2Zmc2V0KSwKICAgICAg
ICAgICAgIG1vdmVWZXJ0aWNhbGx5KHJ1bi5pbmtPdmVyZmxvdygpLCBvZmZzZXQpLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25SdW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJhNWU0MGQ5MjkzMzhjMjE1
MmRlOTUxM2I4OTkzN2I1NWQyZWFhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW4uaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
LQotI2luY2x1ZGUgIklubGluZVJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRCb3guaCIKLSNpbmNs
dWRlICJSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlRleHRGbGFncy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZEltYWdlOwotCi1uYW1lc3BhY2UgTGF5b3V0SW50ZWdy
YXRpb24gewotCi1zdHJ1Y3QgUnVuIHsKLSAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FU
RUQ7Ci0gICAgc3RydWN0IFRleHQgewotICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExP
Q0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBUZXh0KHNpemVfdCBwb3NpdGlvbiwgc2l6ZV90
IGxlbmd0aCwgY29uc3QgU3RyaW5nJiwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBi
b29sIGhhc0h5cGhlbik7Ci0KLSAgICAgICAgc2l6ZV90IHN0YXJ0KCkgY29uc3QgeyByZXR1cm4g
bV9zdGFydDsgfQotICAgICAgICBzaXplX3QgZW5kKCkgY29uc3QgeyByZXR1cm4gc3RhcnQoKSAr
IGxlbmd0aCgpOyB9Ci0gICAgICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xl
bmd0aDsgfQotICAgICAgICBTdHJpbmdWaWV3IG9yaWdpbmFsQ29udGVudCgpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZ1ZpZXcobV9vcmlnaW5hbENvbnRlbnQpLnN1YnN0cmluZyhtX3N0YXJ0LCBtX2xl
bmd0aCk7IH0KLSAgICAgICAgU3RyaW5nVmlldyByZW5kZXJlZENvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyLmlzTnVsbCgpID8gb3JpZ2luYWxDb250ZW50
KCkgOiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyOyB9Ci0gICAgICAgIGJvb2wgaGFzSHlwaGVu
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNIeXBoZW47IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IHNpemVfdCBtX3N0YXJ0IHsgMCB9OwotICAgICAgICBzaXplX3QgbV9sZW5ndGggeyAwIH07Ci0g
ICAgICAgIGJvb2wgbV9oYXNIeXBoZW4geyBmYWxzZSB9OwotICAgICAgICBTdHJpbmcgbV9vcmln
aW5hbENvbnRlbnQ7Ci0gICAgICAgIFN0cmluZyBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyOwot
ICAgIH07Ci0KLSAgICBzdHJ1Y3QgRXhwYW5zaW9uOwotICAgIFJ1bihzaXplX3QgbGluZUluZGV4
LCBjb25zdCBMYXlvdXQ6OkJveCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYg
aW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiA9IHN0ZDo6bnVsbG9w
dCk7Ci0KLSAgICBjb25zdCBGbG9hdFJlY3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9yZWN0OyB9Ci0gICAgY29uc3QgRmxvYXRSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0
dXJuIG1faW5rT3ZlcmZsb3c7IH0KLQotICAgIHZvaWQgc2V0VmVydGljYWxQb3NpdGlvbkludGVn
cmFsKCk7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+JiB0ZXh0KCkgeyByZXR1cm4gbV90ZXh0
OyB9Ci0gICAgY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0PiYgdGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGV4dDsgfQotICAgIC8vIEZJWE1FOiBUaGlzIGluZm9ybWF0aW9uIHNob3VsZCBiZSBwcmVz
ZXJ2ZWQgYXQgUnVuIGNvbnN0cnVjdGlvbiB0aW1lLgotICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBj
b25zdCB7IHJldHVybiBsYXlvdXRCb3goKS5pc0xpbmVCcmVha0JveCgpIHx8ICh0ZXh0KCkgJiYg
dGV4dCgpLT5vcmlnaW5hbENvbnRlbnQoKSA9PSAiXG4iICYmIHN0eWxlKCkucHJlc2VydmVOZXds
aW5lKCkpOyB9Ci0KLSAgICBzdHJ1Y3QgRXhwYW5zaW9uIHsKLSAgICAgICAgRXhwYW5zaW9uQmVo
YXZpb3IgYmVoYXZpb3IgeyBEZWZhdWx0RXhwYW5zaW9uIH07Ci0gICAgICAgIExheW91dDo6SW5s
aW5lTGF5b3V0VW5pdCBob3Jpem9udGFsRXhwYW5zaW9uIHsgMCB9OwotICAgIH07Ci0gICAgRXhw
YW5zaW9uIGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9Ci0KLSAgICBj
b25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94
OyB9Ci0gICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlv
dXRCb3gtPnN0eWxlKCk7IH0KLQotICAgIHNpemVfdCBsaW5lSW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX2xpbmVJbmRleDsgfQotCi1wcml2YXRlOgotICAgIC8vIEZJWE1FOiBGaW5kIG91dCB0aGUg
RGlzcGxheTo6UnVuIDwtPiBwYWludCBzdHlsZSBzZXR1cC4KLSAgICBjb25zdCBzaXplX3QgbV9s
aW5lSW5kZXg7Ci0gICAgV2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7Ci0g
ICAgRmxvYXRSZWN0IG1fcmVjdDsKLSAgICBGbG9hdFJlY3QgbV9pbmtPdmVyZmxvdzsKLSAgICBF
eHBhbnNpb24gbV9leHBhbnNpb247Ci0gICAgc3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHQ7Ci19
OwotCi1pbmxpbmUgUnVuOjpSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gm
IGxheW91dEJveCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJlY3QmIGlua092
ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBzdGQ6Om9wdGlvbmFsPFRleHQ+IHRleHQpCi0g
ICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgpCi0gICAgLCBtX2xheW91dEJveChtYWtlV2Vha1B0
cihsYXlvdXRCb3gpKQotICAgICwgbV9yZWN0KHJlY3QpCi0gICAgLCBtX2lua092ZXJmbG93KGlu
a092ZXJmbG93KQotICAgICwgbV9leHBhbnNpb24oZXhwYW5zaW9uKQotICAgICwgbV90ZXh0KHRl
eHQpCi17Ci19Ci0KLWlubGluZSBSdW46OlRleHQ6OlRleHQoc2l6ZV90IHN0YXJ0LCBzaXplX3Qg
bGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsQ29udGVudCwgU3RyaW5nIGFkanVzdGVkQ29u
dGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhlbikKLSAgICA6IG1fc3RhcnQoc3RhcnQpCi0gICAg
LCBtX2xlbmd0aChsZW5ndGgpCi0gICAgLCBtX2hhc0h5cGhlbihoYXNIeXBoZW4pCi0gICAgLCBt
X29yaWdpbmFsQ29udGVudChvcmlnaW5hbENvbnRlbnQpCi0gICAgLCBtX2FkanVzdGVkQ29udGVu
dFRvUmVuZGVyKGFkanVzdGVkQ29udGVudFRvUmVuZGVyKQotewotfQotCi1pbmxpbmUgdm9pZCBS
dW46OnNldFZlcnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgpCi17Ci0gICAgbV9yZWN0LnNldFkocm91
bmRUb0ludChtX3JlY3QueSgpKSk7Ci0gICAgbV9pbmtPdmVyZmxvdy5zZXRZKHJvdW5kVG9JbnQo
bV9pbmtPdmVyZmxvdy55KCkpKTsKLX0KLQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRQYWludGVyLmNwcAppbmRleCA3NDg1MmE2YjBkMjUxYjVhNTE2YzRiMzUwY2Ix
OTQwZjFmYzU2ZDE5Li43YTEzYWRjMTBlYmQxYzUzNjc5M2Q2MzljOTVhMGM5NzgxNmI3NTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKQEAgLTI3LDcgKzI3LDYg
QEAKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIkxheW91dElu
dGVncmF0aW9uUnVuLmgiCiAjaW5jbHVkZSAiTGVnYWN5SW5saW5lVGV4dEJveC5oIgogI2luY2x1
ZGUgIlJlbmRlckNvbWJpbmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437030</attachid>
            <date>2021-09-01 08:15:42 -0700</date>
            <delta_ts>2021-09-01 14:07:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229719-20210901081541.patch</filename>
            <type>text/plain</type>
            <size>30684</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY3NmJiNGQ4MDI3OGZj
MWE5NGE4NjlhODFiMzE2YWI4ZDkwMmIwMC4uMTIwOGJjMDA5YTI2Y2ZkN2E5Y2ZkNzRkZjY5NThh
ZDkzODY4N2E4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA5LTAxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBn
ZW5lcmF0ZSBpbnRlZ3JhdGlvbiBydW5zIG91dCBvZiBJRkMncyBkaXNwbGF5IHJ1bnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEludGVncmF0aW9uIHJ1
bnMgYW5kIElGQyBkaXNwbGF5IHJ1bnMgaG9sZCB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YgZGF0YSwg
c28gbGV0J3Mgbm90IGR1cGxpY2F0ZSB0aGVuIGZvciB0aGUgaW50ZWdyYXRpb24gbGF5ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6VGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpi
dWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UnVuOjpUZXh0OjpvcmlnaW5hbENv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSdW46OlRleHQ6OnJlbmRl
cmVkQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJ1bjo6c2V0VmVy
dGljYWxQb3NpdGlvbkludGVncmFsKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50QnVp
bGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjptYWtlQWRqdXN0ZWRD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorCiAy
MDIxLTA4LTMxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICB2aXN1
YWxXb3JkUG9zaXRpb24gc2hvdWxkIG9wZXJhdGUgb24gYSBjbGVhbiB0cmVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA3NmNlMGM2NjFmZWU4MzBkMTc2ZTM2MWY1Nzk4NzM1YzdhZTFlMGNlLi5jM2Nk
ZDUxNjBkMmM5MTM2ZDAyMTRlNjI4YTk0MmIwNjJjNDQ2ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTc2Nyw2ICs3NjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgbGF5b3V0L0xheW91dFVuaXRzLmgKICAgICBsYXlvdXQvTWFyZ2luVHlwZXMuaAogCisg
ICAgbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZVJ1bi5oCiAgICAg
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lUmVjdC5oCiAKICAgICBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKQEAgLTc3NCw3
ICs3NzUsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmgKICAgICBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmgK
ICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rl
cm5QYXRoLmgKLSAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW4uaAog
ICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKICAg
ICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBh
dGguaAogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TW9kZXJuUGF0aC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNTM5NmFmMGNjOWZiZTc3NDY5N2ZkN2VlYWUwZjQ0ZTI2YzA0MDI0
ZS4uMDJhYmM3MTZiYWZhMTYzYWE1OGQ5MjZiYmE3MmQzNGE5NmQzNTJkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE3NSw3
ICsyMTc1LDYgQEAKIAkJNkZCN0QyREUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
QjdEMkRBMjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDM0Y5NDcyNTE2NzU2
NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1NjYwMEE0OUJFQSAvKiBJbmxpbmVMaW5l
UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkZDQkRCOTcyNjVERjJDODAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
Q0JEQjk1MjY1REYyQzcwMDIxRUE3QiAvKiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
NkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkNFMUExODIyNjE4QUIz
MDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkQwOTU0MzI1MTExNTIyMDA5ODg3N0QgLyog
TGF5b3V0R2VvbWV0cnlSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZF
MTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkUxOTgxNTIxNzgzOTdDMDA0
NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkU2MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5s
aW5lRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkZFNjM2RTcyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdR
dWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTAwNTUsNyArMTAwNTQsNiBAQAogCQk2RkM1Q0E5NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFi
bGVGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzVDQTk2MjJFMzU5OTUwMEIx
M0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1h
dHRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkNCREI5NTI2NURG
MkM3MDAyMUVBN0IgLyogTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0
ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQ0UxQTE4MjI2MThBQjMw
MDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJ
bnRlZ3JhdGlvblJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkQwOTU0MTI1
MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExheW91dEdlb21ldHJ5UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lQ29udGVu
dEJyZWFrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxNTIxNzgz
OTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5saW5lQ29udGVudEJyZWFrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI5MDYyLDcgKzI5MDYwLDYgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZEMDBG
QTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJBQjUy
NEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8sCiAJ
CQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlv
bi5oICovLAotCQkJCTZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlv
blJ1bi5oICovLAogCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmNwcCAqLywKIAkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAogCQkJCUU0QTY2NEM1MjUyMUI3Nzgw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLApA
QCAtMzM1MTIsNyArMzM1MDksNiBAQAogCQkJCUU0RDMzRjQ2MjUyQzUwRkMwMDgzN0QwNSAvKiBM
YXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTZGQ0UxQTFBMjI2
MThBQkQwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTRBNjY0Q0MyNTIxRDRBRjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTRBNjY0Q0UyNTIxRDRDOTAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JN
b2Rlcm5QYXRoLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rp
c3BsYXkvY3NzL0Rpc3BsYXlUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3Nz
L0Rpc3BsYXlUZXh0Qm94LmNwcAppbmRleCBiMDQ3YjdmZmJhZTE2YmFkMmFhY2VlODIyNDlmYmU2
OGZmYjU2OWY3Li5kYjIzMTRkYjQ3NDMwMDhlYjYwNmYyZmYxMjc4ZDQ2MTUxMjhhZjBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5VGV4dEJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwCkBAIC01Myw3
ICs1Myw3IEBAIFN0cmluZyBUZXh0Qm94OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKICAgICBU
ZXh0U3RyZWFtIHN0cmVhbTsKIAogICAgIHN0cmVhbSA8PCBib3hOYW1lKCkgPDwgIiAiIDw8IGFi
c29sdXRlQm94UmVjdCgpIDw8ICIgKCIgPDwgdGhpcyA8PCAiKSI7Ci0gICAgYXV0byB0ZXh0Q29u
dGVudCA9IHRleHQoKS5vcmlnaW5hbENvbnRlbnQoKS5zdWJzdHJpbmcodGV4dCgpLnN0YXJ0KCks
IHRleHQoKS5sZW5ndGgoKSk7CisgICAgYXV0byB0ZXh0Q29udGVudCA9IHRleHQoKS5vcmlnaW5h
bENvbnRlbnQoKS5zdWJzdHJpbmcodGV4dCgpLnN0YXJ0KCksIHRleHQoKS5sZW5ndGgoKSkudG9T
dHJpbmcoKTsKICAgICB0ZXh0Q29udGVudC5yZXBsYWNlV2l0aExpdGVyYWwoJ1xcJywgIlxcXFwi
KTsKICAgICB0ZXh0Q29udGVudC5yZXBsYWNlV2l0aExpdGVyYWwoJ1xuJywgIlxcbiIpOwogICAg
IGNvbnN0IHNpemVfdCBtYXhQcmludGVkTGVuZ3RoID0gODA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCA0MzIwMTBiNmVi
OGNiZmI4ZWE1MWUxMzRiNjI1NTY3ZmFkNWQ4YjNiLi4xYTEzYTJhMjllMTE0NjcyNjJhNzcwOWIx
MGM5ZmU2MjYyYzMwYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCisjZGVmaW5lIEFMTE9XX1JPT1RfQU5EX0xJTkVf
U1BBTk5JTkdfSU5MSU5FX0JPWCAwCiAKIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6SW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKICAgICA6
IG1fZm9ybWF0dGluZ0NvbnRleHRSb290KGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKQEAgLTQ3LDEx
ICs0OCwxMiBAQCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OklubGluZURpc3BsYXlDb250
ZW50QnVpbGRlcihjb25zdCBDb250YWluZXJCb3gmIGZvcgogdm9pZCBJbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGluZUNv
bnRlbnQsIGNvbnN0IExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IElubGluZUxheW91dFBvaW50JiBs
aW5lQm94TG9naWNhbFRvcExlZnQsIGNvbnN0IHNpemVfdCBsaW5lSW5kZXgpCiB7CiAgICAgYXV0
byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7CisjaWYgQUxMT1df
Uk9PVF9BTkRfTElORV9TUEFOTklOR19JTkxJTkVfQk9YCiAgICAgLy8gRXZlcnkgbGluZSBzdGFy
dHMgd2l0aCBhIHJvb3QgcnVuLCBldmVuIHRoZSBlbXB0eSBvbmVzLgogICAgIGF1dG8gcm9vdElu
bGluZUJveFJlY3QgPSBsaW5lQm94LmxvZ2ljYWxSZWN0Rm9yUm9vdElubGluZUJveCgpOwogICAg
IHJvb3RJbmxpbmVCb3hSZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwogICAgIGZv
cm1hdHRpbmdTdGF0ZS5hZGRSdW4oeyBsaW5lSW5kZXgsIFJ1bjo6VHlwZTo6Um9vdElubGluZUJv
eCwgcm9vdCgpLCByb290SW5saW5lQm94UmVjdCwgcm9vdElubGluZUJveFJlY3QsIHsgfSwgeyB9
LCAgbGluZUJveC5yb290SW5saW5lQm94KCkuaGFzQ29udGVudCgpfSk7Ci0KKyNlbmRpZgogICAg
IC8vIFNwYW5uaW5nIGlubGluZSBib3hlcyBzdGFydCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2Yg
dGhlIGxpbmUuCiAgICAgYXV0byBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJbmRleCA9IGZvcm1hdHRp
bmdTdGF0ZS5ydW5zKCkuc2l6ZSgpOwogICAgIGNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZv
ckxpbmVDb250ZW50KGxpbmVDb250ZW50LCBsaW5lQm94LCBsaW5lQm94TG9naWNhbFRvcExlZnQs
IGxpbmVJbmRleCk7CkBAIC0xODEsNyArMTgzLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmNyZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVDb250ZW50KGNvbnMK
ICAgICBmb3JtYXR0aW5nU3RhdGUubGluZXMoKS5sYXN0KCkuc2V0TmVlZHNJbnRlZ3JhbFBvc2l0
aW9uKGxpbmVOZWVkSW50ZWdyYWxQb3NpdGlvbik7CiB9CiAKLXZvaWQgSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyOjpjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hlcyhjb25zdCBMaW5lQm94JiBsaW5lQm94LCBjb25zdCBJbmxpbmVMYXlvdXRQb2lu
dCYgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBjb25zdCBzaXplX3QgbGluZUluZGV4LCBzaXplX3Qg
bGluZVNwYW5uaW5nSW5saW5lQm94SW5kZXgpCit2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMoY29uc3QgTGluZUJveCYgbGluZUJveCwgY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIGxpbmVC
b3hMb2dpY2FsVG9wTGVmdCwgY29uc3Qgc2l6ZV90IC8qbGluZUluZGV4Ki8sIHNpemVfdCAvKmxp
bmVTcGFubmluZ0lubGluZUJveEluZGV4Ki8pCiB7CiAgICAgaWYgKCFsaW5lQm94Lmhhc0NvbnRl
bnQoKSkgewogICAgICAgICAvLyBXaGVuIGEgc3Bhbm5pbmcgaW5saW5lIGJveCAoZS5nLiA8ZGl2
PnRleHQ8c3Bhbj48YnI+PC9zcGFuPjwvZGl2PikgbGFuZHMgb24gYW4gZW1wdHkgbGluZQpAQCAt
MjAyLDggKzIwNCw5IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVS
dW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lU3Bhbm5pbmdJbmxpCiAgICAgICAgIGF1dG8gaW5s
aW5lQm94Qm9yZGVyQm94ID0gbGluZUJveC5sb2dpY2FsQm9yZGVyQm94Rm9ySW5saW5lQm94KGxh
eW91dEJveCwgYm94R2VvbWV0cnkpOwogICAgICAgICBpbmxpbmVCb3hCb3JkZXJCb3gubW92ZUJ5
KGxpbmVCb3hMb2dpY2FsVG9wTGVmdCk7CiAKKyNpZiBBTExPV19ST09UX0FORF9MSU5FX1NQQU5O
SU5HX0lOTElORV9CT1gKICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLnJ1bnMoKS5pbnNlcnQobGlu
ZVNwYW5uaW5nSW5saW5lQm94SW5kZXgrKywgeyBsaW5lSW5kZXgsIFJ1bjo6VHlwZTo6Tm9uUm9v
dElubGluZUJveCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIGlubGluZUJveEJvcmRl
ckJveCwgeyB9LCB7IH0sIGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSwgdHJ1ZSB9KTsKLQor
I2VuZGlmCiAgICAgICAgIGF1dG8gaW5saW5lQm94U2l6ZSA9IExheW91dFNpemUgeyBMYXlvdXRV
bml0Ojpmcm9tRmxvYXRDZWlsKGlubGluZUJveEJvcmRlckJveC53aWR0aCgpKSwgTGF5b3V0VW5p
dDo6ZnJvbUZsb2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJCb3guaGVpZ2h0KCkpIH07CiAgICAgICAg
IGF1dG8gbG9naWNhbFJlY3QgPSBSZWN0IHsgTGF5b3V0UG9pbnQgeyBpbmxpbmVCb3hCb3JkZXJC
b3gudG9wTGVmdCgpIH0sIGlubGluZUJveFNpemUgfTsKICAgICAgICAgLy8gTWlkZGxlIG9yIGVu
ZCBvZiB0aGUgaW5saW5lIGJveC4gTGV0J3Mgc3RyZXRjaCB0aGUgYm94IGFzIG5lZWRlZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVSdW4uaAppbmRleCAwMmFhYjc1YzJlMTQ1YmI1MWFhMjc2MjA1
MjJkMTk1YmE4MjdlZjA4Li5mMmYwOWQxOTViYTc4MjllMTcxODQ0ZWMwNWY0M2ZlNDM5ZmYzOTZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lUnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZVJ1bi5oCkBAIC00NCw4ICs0NCw4IEBAIHN0cnVj
dCBSdW4gewogICAgICAgICBzaXplX3Qgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0OyB9
CiAgICAgICAgIHNpemVfdCBlbmQoKSBjb25zdCB7IHJldHVybiBzdGFydCgpICsgbGVuZ3RoKCk7
IH0KICAgICAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9Ci0g
ICAgICAgIFN0cmluZyBvcmlnaW5hbENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpbmFs
Q29udGVudDsgfQotICAgICAgICBTdHJpbmcgcmVuZGVyZWRDb250ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsgfQorICAgICAgICBTdHJpbmdWaWV3IG9yaWdp
bmFsQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZ1ZpZXcobV9vcmlnaW5hbENvbnRlbnQp
LnN1YnN0cmluZyhtX3N0YXJ0LCBtX2xlbmd0aCk7IH0KKyAgICAgICAgU3RyaW5nVmlldyByZW5k
ZXJlZENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyLmlz
TnVsbCgpID8gb3JpZ2luYWxDb250ZW50KCkgOiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyOyB9
CiAKICAgICAgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc0h5cGhlbjsg
fQogCkBAIC0xMTEsNiArMTExLDggQEAgc3RydWN0IFJ1biB7CiAKICAgICBzaXplX3QgbGluZUlu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KIAorICAgIHZvaWQgc2V0VmVydGlj
YWxQb3NpdGlvbkludGVncmFsKCk7CisKIHByaXZhdGU6CiAgICAgY29uc3Qgc2l6ZV90IG1fbGlu
ZUluZGV4OwogICAgIGNvbnN0IFR5cGUgbV90eXBlOwpAQCAtMTQ2LDYgKzE0OCwxMiBAQCBpbmxp
bmUgUnVuOjpUZXh0OjpUZXh0KHNpemVfdCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5hbENvbnRlbgogewogfQogCitpbmxpbmUgdm9pZCBSdW46OnNldFZlcnRpY2Fs
UG9zaXRpb25JbnRlZ3JhbCgpCit7CisgICAgbV9sb2dpY2FsUmVjdC5zZXRUb3Aocm91bmRUb0lu
dChtX2xvZ2ljYWxSZWN0LnRvcCgpKSk7CisgICAgbV9pbmtPdmVyZmxvdy5zZXRUb3Aocm91bmRU
b0ludChtX2lua092ZXJmbG93LnRvcCgpKSk7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lUmVjdC5oCmluZGV4IDI5YWUyOTUzMDdlOGRlNzNmNGJhOTczYWQ3MzFkMmY2YjQyNzRl
ZTcuLmM0YzI1ZDllYzQ4NGQ1OWI1ZmYwMjJiYmEwMmI1YjRmMWNjY2ZiNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVSZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogICAgIElubGluZVJlY3Qo
SW5saW5lTGF5b3V0VW5pdCB0b3AsIElubGluZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0
VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpOwogICAgIElubGluZVJlY3QoY29u
c3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElu
bGluZUxheW91dFVuaXQgaGVpZ2h0KTsKICAgICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91
dFBvaW50JiB0b3BMZWZ0LCBjb25zdCBJbmxpbmVMYXlvdXRTaXplJik7CisgICAgSW5saW5lUmVj
dChjb25zdCBGbG9hdFJlY3QmKTsKICAgICAKICAgICBJbmxpbmVMYXlvdXRVbml0IHRvcCgpIGNv
bnN0OwogICAgIElubGluZUxheW91dFVuaXQgbGVmdCgpIGNvbnN0OwpAQCAtMTE0LDYgKzExNSwx
MSBAQCBpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2lu
dCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5bwogewogfQogCitpbmxpbmUgSW5saW5lUmVjdDo6
SW5saW5lUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCisgICAgOiBJbmxpbmVSZWN0KHJlY3Qu
eSgpLCByZWN0LngoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKQoreworfQorCiAjaWYg
QVNTRVJUX0VOQUJMRUQKIGlubGluZSB2b2lkIElubGluZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlv
bigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKaW5kZXggYmZjOWNiMmIw
Mzk1YzVjZmIzMWViMmM3YTllMTkzOGQzY2E1ZjI0ZC4uYjA3YjEwZTBjOGUwZDQyZTk2YTg0YzNi
OTM1ZmI5ZmM1ODQwZjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaApA
QCAtMjcsOCArMjcsOCBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CiAKKyNpbmNsdWRlICJJbmxpbmVMaW5lUnVuLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRp
b25MaW5lLmgiCi0jaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW4uaCIKICNpbmNsdWRlIDx3
dGYvSXRlcmF0b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgpAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBMaW5lTGF5b3V0OwogY2xhc3Mg
UnVuSXRlcmF0b3I7CiBjbGFzcyBUZXh0UnVuSXRlcmF0b3I7CiAKK3VzaW5nIFJ1biA9IExheW91
dDo6UnVuOworCiBzdHJ1Y3QgSW5saW5lQ29udGVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElubGlu
ZUNvbnRlbnQ+IHsKICAgICBzdGF0aWMgUmVmPElubGluZUNvbnRlbnQ+IGNyZWF0ZShjb25zdCBM
aW5lTGF5b3V0JiBsaW5lTGF5b3V0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IElubGluZUNvbnRl
bnQobGluZUxheW91dCkpOyB9CiAgICAgfklubGluZUNvbnRlbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNv
bnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBjOTRiYjYzYmYxZWJk
YWUzN2U5YTdjY2UyZjBjZjRkNzZlMjFkYWY5Li5hZmFlZmQzZWRlYWFlODhmYjljYzgyY2M5YWE1
OWFkYTA4MWE4OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVu
dEJ1aWxkZXIuY3BwCkBAIC0yOSwxMCArMjksMTAgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2lu
Y2x1ZGUgIklubGluZUxpbmVSdW4uaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgog
I2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uQm94VHJlZS5oIgogI2luY2x1ZGUgIkxheW91dElu
dGVncmF0aW9uSW5saW5lQ29udGVudC5oIgotI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVu
LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwbGFjZWRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0
ZS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgpAQCAtNjUsMzggKzY1LDM2IEBAIElu
bGluZUNvbnRlbnRCdWlsZGVyOjpJbmxpbmVDb250ZW50QnVpbGRlcihjb25zdCBMYXlvdXQ6Okxh
eW91dFN0YXRlJiBsYXlvdXRTdGF0CiB7CiB9CiAKLXZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6
OmJ1aWxkKGNvbnN0IExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJiBpbmxpbmVGb3JtYXR0
aW5nU3RhdGUsIElubGluZUNvbnRlbnQmIGlubGluZUNvbnRlbnQpIGNvbnN0Cit2b2lkIElubGlu
ZUNvbnRlbnRCdWlsZGVyOjpidWlsZChMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYgaW5s
aW5lRm9ybWF0dGluZ1N0YXRlLCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50KSBjb25zdAog
ewotICAgIGNyZWF0ZURpc3BsYXlSdW5zKGlubGluZUZvcm1hdHRpbmdTdGF0ZS5ydW5zKCksIGlu
bGluZUNvbnRlbnQpOworICAgIGNyZWF0ZURpc3BsYXlSdW5zKGlubGluZUZvcm1hdHRpbmdTdGF0
ZSwgaW5saW5lQ29udGVudCk7CiAgICAgY3JlYXRlRGlzcGxheUxpbmVzKGlubGluZUZvcm1hdHRp
bmdTdGF0ZS5saW5lcygpLCBpbmxpbmVDb250ZW50KTsKIH0KIAotdm9pZCBJbmxpbmVDb250ZW50
QnVpbGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMoY29uc3QgTGF5b3V0OjpJbmxpbmVSdW5zJiBydW5z
LCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50KSBjb25zdAordm9pZCBJbmxpbmVDb250ZW50
QnVpbGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMoTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
IGlubGluZUZvcm1hdHRpbmdTdGF0ZSwgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29u
c3QKIHsKLSAgICBpZiAocnVucy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlu
bGluZUNvbnRlbnQucnVucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJ1bnMuc2l6ZSgpKTsKLSAg
ICBmb3IgKGF1dG8mIHJ1biA6IHJ1bnMpIHsKLSAgICAgICAgaWYgKGF1dG8gdGV4dCA9IHJ1bi50
ZXh0KCkpIHsKLSAgICAgICAgICAgIGlubGluZUNvbnRlbnQucnVucy5hcHBlbmQoeyBydW4ubGlu
ZUluZGV4KCksIHJ1bi5sYXlvdXRCb3goKSwgcnVuLmxvZ2ljYWxSZWN0KCksIHJ1bi5pbmtPdmVy
ZmxvdygpLCBSdW46OkV4cGFuc2lvbiB7IHJ1bi5leHBhbnNpb24oKS5iZWhhdmlvciwgcnVuLmV4
cGFuc2lvbigpLmhvcml6b250YWxFeHBhbnNpb24gfQotICAgICAgICAgICAgICAgICwgUnVuOjpU
ZXh0IHsgdGV4dC0+c3RhcnQoKSwgdGV4dC0+bGVuZ3RoKCksIHRleHQtPm9yaWdpbmFsQ29udGVu
dCgpLCB0ZXh0LT5yZW5kZXJlZENvbnRlbnQoKSwgdGV4dC0+aGFzSHlwaGVuKCkgfSB9KTsKLSAg
ICAgICAgfSBlbHNlIGlmICghcnVuLmlzUm9vdElubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAv
LyBGSVhNRTogVGVhY2ggdGhlIHJ1biBpdGVyYXRvcnMgdG8gaWdub3JlIHRoZSByb290IGlubGlu
ZSBib3ggcnVucy4KLSAgICAgICAgICAgIGF1dG8mIGdlb21ldHJ5ID0gbV9sYXlvdXRTdGF0ZS5n
ZW9tZXRyeUZvckJveChydW4ubGF5b3V0Qm94KCkpOwotICAgICAgICAgICAgaWYgKCFydW4uaXNJ
bmxpbmVCb3goKSB8fCAhcnVuLmlzTGluZVNwYW5uaW5nKCkpIHsKLSAgICAgICAgICAgICAgICAv
LyBGSVhNRTogUnVuIGl0ZXJhdG9ycyB3aXRoICh0ZXh0KXJ1bnMgc3Bhbm5pbmcgb3ZlciBtdWx0
aXBsZSBsaW5lcyBleHBlY3Qgbm8gImluLWJldHdlZW4iIHJ1bnMgKGUuZy4gbGluZSBzcGFubmlu
ZyBvciByb290IGlubGluZSBib3hlcykuCi0gICAgICAgICAgICAgICAgaW5saW5lQ29udGVudC5y
dW5zLmFwcGVuZCh7IHJ1bi5saW5lSW5kZXgoKSwgcnVuLmxheW91dEJveCgpLCBydW4ubG9naWNh
bFJlY3QoKSwgcnVuLmlua092ZXJmbG93KCksIHsgfSwgeyB9IH0pOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKHJ1bi5pc0lubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byBoYXNTY3JvbGxhYmxlQ29udGVudCA9IFsmXSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElu
IHN0YW5kYXJkcyBtb2RlLCBpbmxpbmUgYm94ZXMgYWx3YXlzIHN0YXJ0IHdpdGggYW4gaW1hZ2lu
YXJ5IHN0cnV0LgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9sYXlvdXRTdGF0ZS5pblN0
YW5kYXJkc01vZGUoKSB8fCBydW4uaGFzQ29udGVudCgpIHx8IGdlb21ldHJ5Lmhvcml6b250YWxC
b3JkZXIoKSB8fCAoZ2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKSAmJiBnZW9tZXRyeS5ob3Jp
em9udGFsUGFkZGluZygpLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAg
ICAgICAgaW5saW5lQ29udGVudC5ub25Sb290SW5saW5lQm94ZXMuYXBwZW5kKHsgcnVuLmxpbmVJ
bmRleCgpLCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVjdCgpLCBoYXNTY3JvbGxhYmxl
Q29udGVudCgpIH0pOwotICAgICAgICAgICAgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBs
b29wIHdoZW4gd2UgdHJhbnNpdGlvbmVkIHRvIHRoZSAicnVuIG9ubHkiIHNldHVwIChpLmUuIGVh
Y2ggaW5saW5lIGJveCBpcyByZXByZXNlbnRlZCBhcyBhIHJ1biBhcyB3ZWxsKQorICAgIGF1dG8m
IGxpbmVCb3hlcyA9IGNvbnN0X2Nhc3Q8TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmPihp
bmxpbmVGb3JtYXR0aW5nU3RhdGUpLmxpbmVCb3hlcygpOworICAgIGZvciAoc2l6ZV90IGxpbmVJ
bmRleCA9IDA7IGxpbmVJbmRleCA8IGxpbmVCb3hlcy5zaXplKCk7ICsrbGluZUluZGV4KSB7Cisg
ICAgICAgIGF1dG8mIGxpbmVCb3ggPSBsaW5lQm94ZXNbbGluZUluZGV4XTsKKyAgICAgICAgYXV0
byBsaW5lQm94TG9naWNhbFRvcExlZnQgPSBpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKVts
aW5lSW5kZXhdLmxpbmVCb3hMb2dpY2FsUmVjdCgpLnRvcExlZnQoKTsKKyAgICAgICAgZm9yIChh
dXRvJiBub25Sb290SW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJv
eGVzKCkpIHsKKyAgICAgICAgICAgIGlmICghbm9uUm9vdElubGluZUxldmVsQm94LmlzSW5saW5l
Qm94KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvJiBsYXlv
dXRCb3ggPSBub25Sb290SW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCk7CisgICAgICAgICAgICBh
dXRvJiBib3hHZW9tZXRyeSA9IGlubGluZUZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShsYXlv
dXRCb3gpOworICAgICAgICAgICAgYXV0byBoYXNTY3JvbGxhYmxlQ29udGVudCA9IFsmXSB7Cisg
ICAgICAgICAgICAgICAgLy8gSW4gc3RhbmRhcmRzIG1vZGUsIGlubGluZSBib3hlcyBhbHdheXMg
c3RhcnQgd2l0aCBhbiBpbWFnaW5hcnkgc3RydXQuCisgICAgICAgICAgICAgICAgcmV0dXJuIG1f
bGF5b3V0U3RhdGUuaW5TdGFuZGFyZHNNb2RlKCkgfHwgbm9uUm9vdElubGluZUxldmVsQm94Lmhh
c0NvbnRlbnQoKSB8fCBib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgKGJveEdlb21l
dHJ5Lmhvcml6b250YWxQYWRkaW5nKCkgJiYgYm94R2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmco
KS52YWx1ZSgpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAvLyBJbmxpbmUgYm94ZXMg
bWF5IG9yIG1heSBub3QgYmUgd3JhcHBlZCBhbmQgaGF2ZSBydW5zIG9uIG11bHRpcGxlIGxpbmVz
IChlLmcuIDxzcGFuPmZpcnN0IGxpbmU8YnI+c2Vjb25kIGxpbmU8YnI+dGhpcmQgbGluZTwvc3Bh
bj4pCisgICAgICAgICAgICBhdXRvIGlubGluZUJveEJvcmRlckJveCA9IGxpbmVCb3gubG9naWNh
bEJvcmRlckJveEZvcklubGluZUJveChsYXlvdXRCb3gsIGJveEdlb21ldHJ5KTsKKyAgICAgICAg
ICAgIGlubGluZUJveEJvcmRlckJveC5tb3ZlQnkobGluZUJveExvZ2ljYWxUb3BMZWZ0KTsKKyAg
ICAgICAgICAgIGlubGluZUNvbnRlbnQubm9uUm9vdElubGluZUJveGVzLmFwcGVuZCh7IGxpbmVJ
bmRleCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIGhhc1Njcm9sbGFibGVDb250ZW50
KCkgfSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgbmVlZCBh
IGRpZmZlcmVudCBhcHByb2FjaCB3aXRoIHBhcnRpYWwgbGF5b3V0IHdoZXJlIHRoZSBsYXlvdXQg
Y29kZSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBydW5zLgorICAgIGlubGluZUNvbnRlbnQucnVu
cyA9IFdURk1vdmUoaW5saW5lRm9ybWF0dGluZ1N0YXRlLnJ1bnMoKSk7CiB9CiAKIHZvaWQgSW5s
aW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGlu
ZUxpbmVzJiBsaW5lcywgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKQEAgLTEz
MSwxMSArMTI5LDExIEBAIHZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6OmNyZWF0ZURpc3BsYXlM
aW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiBsaW5lcywKICAgICAgICAgICAgIGF1dG8g
cnVuTG9naWNhbFJlY3QgPSBydW4ubG9naWNhbFJlY3QoKTsKICAgICAgICAgICAgIGlmICghYm94
Lmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIGNoaWxkSW5r
T3ZlcmZsb3cgPSBib3gubG9naWNhbFZpc3VhbE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKCZi
b3gucGFyZW50KCktPnN0eWxlKCkpOwotICAgICAgICAgICAgICAgIGNoaWxkSW5rT3ZlcmZsb3cu
bW92ZShydW5Mb2dpY2FsUmVjdC54KCksIHJ1bkxvZ2ljYWxSZWN0LnkoKSk7CisgICAgICAgICAg
ICAgICAgY2hpbGRJbmtPdmVyZmxvdy5tb3ZlKHJ1bkxvZ2ljYWxSZWN0LmxlZnQoKSwgcnVuTG9n
aWNhbFJlY3QudG9wKCkpOwogICAgICAgICAgICAgICAgIGxpbmVJbmtPdmVyZmxvd1JlY3QudW5p
dGUoY2hpbGRJbmtPdmVyZmxvdyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhdXRvIGNo
aWxkU2Nyb2xsYWJsZU92ZXJmbG93ID0gYm94LmxvZ2ljYWxMYXlvdXRPdmVyZmxvd1JlY3RGb3JQ
cm9wYWdhdGlvbigmYm94LnBhcmVudCgpLT5zdHlsZSgpKTsKLSAgICAgICAgICAgIGNoaWxkU2Ny
b2xsYWJsZU92ZXJmbG93Lm1vdmUocnVuTG9naWNhbFJlY3QueCgpLCBydW5Mb2dpY2FsUmVjdC55
KCkpOworICAgICAgICAgICAgY2hpbGRTY3JvbGxhYmxlT3ZlcmZsb3cubW92ZShydW5Mb2dpY2Fs
UmVjdC5sZWZ0KCksIHJ1bkxvZ2ljYWxSZWN0LnRvcCgpKTsKICAgICAgICAgICAgIHNjcm9sbGFi
bGVPdmVyZmxvd1JlY3QudW5pdGUoY2hpbGRTY3JvbGxhYmxlT3ZlcmZsb3cpOwogICAgICAgICB9
CiAgICAgICAgIC8vIENvbGxlY3Qgc2Nyb2xsYWJsZSBvdmVyZmxvdyBmcm9tIGlubGluZSBib3hl
cy4gQWxsIG90aGVyIGlubGluZSBsZXZlbCBib3hlcyAoZS5nIGF0b21pYyBpbmxpbmUgbGV2ZWwg
Ym94ZXMpIHN0cmV0Y2ggdGhlIGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5l
Q29udGVudEJ1aWxkZXIuaAppbmRleCAyMDdlZjE0MGZkMWZiNzE3MjVlN2EyYjE0MWUyOWZkNjgx
NTk4OTk2Li4yMGRlM2RkZWRiOGUwZGMxNzUzYzY5MmFkMzIyMzM3ZGM1MzU4ZmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25J
bmxpbmVDb250ZW50QnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmgKQEAgLTQzLDEwICs0
MywxMCBAQCBjbGFzcyBJbmxpbmVDb250ZW50QnVpbGRlciB7CiBwdWJsaWM6CiAgICAgSW5saW5l
Q29udGVudEJ1aWxkZXIoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIGNvbnN0IFJlbmRlckJs
b2NrRmxvdyYsIGNvbnN0IEJveFRyZWUmKTsKIAotICAgIHZvaWQgYnVpbGQoY29uc3QgTGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmLCBJbmxpbmVDb250ZW50JikgY29uc3Q7CisgICAgdm9p
ZCBidWlsZChMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYsIElubGluZUNvbnRlbnQmKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91
dDo6SW5saW5lUnVucyYsIElubGluZUNvbnRlbnQmKSBjb25zdDsKKyAgICB2b2lkIGNyZWF0ZURp
c3BsYXlSdW5zKExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJiwgSW5saW5lQ29udGVudCYp
IGNvbnN0OwogICAgIHZvaWQgY3JlYXRlRGlzcGxheUxpbmVzKGNvbnN0IExheW91dDo6SW5saW5l
TGluZXMmLCBJbmxpbmVDb250ZW50JikgY29uc3Q7CiAKICAgICBjb25zdCBMYXlvdXQ6OkxheW91
dFN0YXRlJiBtX2xheW91dFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApp
bmRleCBlZTIwZDRiZmY2ZDBhMTU1N2VjOWFlYjM4YzI0YTdjMDZiZTc5MDZkLi5mZWQ1MTYzZDU3
NjBjYjFmY2E0N2ZiYWFiMTVmMjkzMmJlNDkxNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcApAQCAtNTYzLDExICs1NjMsMTEgQEAgdm9pZCBMaW5lTGF5b3V0OjpwYWludFRl
eHRSdW5Vc2luZ1BoeXNpY2FsQ29vcmRpbmF0ZXMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnMK
ICAgICAgICAgcGh5c2ljYWxQYWludE9mZnNldC5tb3ZlKHsgMCwgLXJ1bi5sb2dpY2FsUmVjdCgp
LmhlaWdodCgpIH0pOwogICAgIH0KIAotICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gWyZdKGNvbnN0
IGF1dG8mIHJlY3QpIHsKKyAgICBhdXRvIHBoeXNpY2FsUmVjdCA9IFsmXShjb25zdCBhdXRvJiBy
ZWN0KSAtPiBGbG9hdFJlY3QgewogICAgICAgICBpZiAoIXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVjdDsKICAgICAgICAgaWYgKCFibG9j
a0lzSG9yaXpvbnRhbFdyaXRpbmcpCi0gICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0IHsgZm9y
bWF0dGluZ0NvbnRleHRSb290LndpZHRoKCkgLSByZWN0Lm1heFkoKSwgcmVjdC54KCkgLCByZWN0
LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkgfTsKKyAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3Qg
eyBmb3JtYXR0aW5nQ29udGV4dFJvb3Qud2lkdGgoKSAtIHJlY3QuYm90dG9tKCksIHJlY3QubGVm
dCgpICwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpIH07CiAgICAgICAgIEFTU0VSVF9OT1Rf
SU1QTEVNRU5URURfWUVUKCk7CiAgICAgICAgIHJldHVybiByZWN0OwogICAgIH07CkBAIC01OTIs
NyArNTkyLDcgQEAgdm9pZCBMaW5lTGF5b3V0OjpwYWludFRleHRSdW5Vc2luZ1BoeXNpY2FsQ29v
cmRpbmF0ZXMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnMKICAgICAvLyBUZXh0UnVuIGV4cGVj
dHMgdGhlIHhQb3MgdG8gYmUgYWRqdXN0ZWQgd2l0aCB0aGUgYWxpZ21lbnQgb2Zmc2V0IChlLmcu
IHdoZW4gdGhlIGxpbmUgaXMgY2VudGVyIGFsaWduZWQKICAgICAvLyBhbmQgdGhlIHJ1biBzdGFy
dHMgYXQgMTAwcHgsIGR1ZSB0byB0aGUgaG9yaXpvbnRhbCBhbGlnbWVudCwgdGhlIHhwb3MgaXMg
c3VwcG9zZWQgdG8gYmUgYXQgMHB4KS4KICAgICBhdXRvJiBmb250Q2FzY2FkZSA9IHN0eWxlLmZv
bnRDYXNjYWRlKCk7Ci0gICAgYXV0byB4UG9zID0gcnVuLmxvZ2ljYWxSZWN0KCkueCgpIC0gKGxp
bmUubGluZUJveExlZnQoKSArIGxpbmUuY29udGVudExlZnQoKSk7CisgICAgYXV0byB4UG9zID0g
cnVuLmxvZ2ljYWxSZWN0KCkubGVmdCgpIC0gKGxpbmUubGluZUJveExlZnQoKSArIGxpbmUuY29u
dGVudExlZnQoKSk7CiAgICAgYXV0byB0ZXh0UnVuID0gV2ViQ29yZTo6VGV4dFJ1biB7IHRleHRD
b250ZW50LnJlbmRlcmVkQ29udGVudCgpLCB4UG9zLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFu
c2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9yIH07CiAgICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHls
ZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25QYWdpbmF0aW9uLmNwcAppbmRleCA1OGU3ZmMzODIxYWZlYjI3MmQwZGExMTNhZGQ1ZjM2
OTZiZGI4ZmRmLi4wOTk5MjlkY2E3OTgwY2ZmN2Y1NDAyOGMwY2ZhMTU5NGMzMmU3YjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25QYWdpbmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBAIHN0YXRp
YyBSZWY8SW5saW5lQ29udGVudD4gbWFrZUFkanVzdGVkQ29udGVudChjb25zdCBJbmxpbmVDb250
ZW50JiBpbmxpbmVDb250ZW50CiAgICAgewogICAgICAgICByZXR1cm4gUnVuIHsKICAgICAgICAg
ICAgIHJ1bi5saW5lSW5kZXgoKSwKKyAgICAgICAgICAgIHJ1bi50eXBlKCksCiAgICAgICAgICAg
ICBydW4ubGF5b3V0Qm94KCksCiAgICAgICAgICAgICBtb3ZlVmVydGljYWxseShydW4ubG9naWNh
bFJlY3QoKSwgb2Zmc2V0KSwKICAgICAgICAgICAgIG1vdmVWZXJ0aWNhbGx5KHJ1bi5pbmtPdmVy
ZmxvdygpLCBvZmZzZXQpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODJhNWU0MGQ5MjkzMzhjMjE1MmRlOTUxM2I4OTkzN2I1NWQyZWFhYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW4uaAorKysgL2Rldi9udWxsCkBAIC0x
LDEyNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIklubGluZVJlY3QuaCIKLSNpbmNs
dWRlICJMYXlvdXRCb3guaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlRl
eHRGbGFncy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZEltYWdlOwot
Ci1uYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewotCi1zdHJ1Y3QgUnVuIHsKLSAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7Ci0gICAgc3RydWN0IFRleHQgewotICAgICAgICBX
VEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBUZXh0
KHNpemVfdCBwb3NpdGlvbiwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiwgU3RyaW5nIGFk
anVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhlbik7Ci0KLSAgICAgICAgc2l6ZV90
IHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydDsgfQotICAgICAgICBzaXplX3QgZW5kKCkg
Y29uc3QgeyByZXR1cm4gc3RhcnQoKSArIGxlbmd0aCgpOyB9Ci0gICAgICAgIHNpemVfdCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQotICAgICAgICBTdHJpbmdWaWV3IG9yaWdp
bmFsQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZ1ZpZXcobV9vcmlnaW5hbENvbnRlbnQp
LnN1YnN0cmluZyhtX3N0YXJ0LCBtX2xlbmd0aCk7IH0KLSAgICAgICAgU3RyaW5nVmlldyByZW5k
ZXJlZENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyLmlz
TnVsbCgpID8gb3JpZ2luYWxDb250ZW50KCkgOiBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyOyB9
Ci0gICAgICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIeXBoZW47IH0K
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIHNpemVfdCBtX3N0YXJ0IHsgMCB9OwotICAgICAgICBz
aXplX3QgbV9sZW5ndGggeyAwIH07Ci0gICAgICAgIGJvb2wgbV9oYXNIeXBoZW4geyBmYWxzZSB9
OwotICAgICAgICBTdHJpbmcgbV9vcmlnaW5hbENvbnRlbnQ7Ci0gICAgICAgIFN0cmluZyBtX2Fk
anVzdGVkQ29udGVudFRvUmVuZGVyOwotICAgIH07Ci0KLSAgICBzdHJ1Y3QgRXhwYW5zaW9uOwot
ICAgIFJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgc3RkOjpvcHRp
b25hbDxUZXh0PiA9IHN0ZDo6bnVsbG9wdCk7Ci0KLSAgICBjb25zdCBGbG9hdFJlY3QmIGxvZ2lj
YWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9Ci0gICAgY29uc3QgRmxvYXRSZWN0JiBp
bmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5rT3ZlcmZsb3c7IH0KLQotICAgIHZvaWQg
c2V0VmVydGljYWxQb3NpdGlvbkludGVncmFsKCk7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+
JiB0ZXh0KCkgeyByZXR1cm4gbV90ZXh0OyB9Ci0gICAgY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0
PiYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQotICAgIC8vIEZJWE1FOiBUaGlzIGlu
Zm9ybWF0aW9uIHNob3VsZCBiZSBwcmVzZXJ2ZWQgYXQgUnVuIGNvbnN0cnVjdGlvbiB0aW1lLgot
ICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBsYXlvdXRCb3goKS5pc0xpbmVC
cmVha0JveCgpIHx8ICh0ZXh0KCkgJiYgdGV4dCgpLT5vcmlnaW5hbENvbnRlbnQoKSA9PSAiXG4i
ICYmIHN0eWxlKCkucHJlc2VydmVOZXdsaW5lKCkpOyB9Ci0KLSAgICBzdHJ1Y3QgRXhwYW5zaW9u
IHsKLSAgICAgICAgRXhwYW5zaW9uQmVoYXZpb3IgYmVoYXZpb3IgeyBEZWZhdWx0RXhwYW5zaW9u
IH07Ci0gICAgICAgIExheW91dDo6SW5saW5lTGF5b3V0VW5pdCBob3Jpem9udGFsRXhwYW5zaW9u
IHsgMCB9OwotICAgIH07Ci0gICAgRXhwYW5zaW9uIGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZXhwYW5zaW9uOyB9Ci0KLSAgICBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94KCkgY29u
c3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94OyB9Ci0gICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3gtPnN0eWxlKCk7IH0KLQotICAgIHNpemVfdCBs
aW5lSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2xpbmVJbmRleDsgfQotCi1wcml2YXRlOgotICAg
IC8vIEZJWE1FOiBGaW5kIG91dCB0aGUgRGlzcGxheTo6UnVuIDwtPiBwYWludCBzdHlsZSBzZXR1
cC4KLSAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7Ci0gICAgV2Vha1B0cjxjb25zdCBMYXlv
dXQ6OkJveD4gbV9sYXlvdXRCb3g7Ci0gICAgRmxvYXRSZWN0IG1fcmVjdDsKLSAgICBGbG9hdFJl
Y3QgbV9pbmtPdmVyZmxvdzsKLSAgICBFeHBhbnNpb24gbV9leHBhbnNpb247Ci0gICAgc3RkOjpv
cHRpb25hbDxUZXh0PiBtX3RleHQ7Ci19OwotCi1pbmxpbmUgUnVuOjpSdW4oc2l6ZV90IGxpbmVJ
bmRleCwgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBjb25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBzdGQ6
Om9wdGlvbmFsPFRleHQ+IHRleHQpCi0gICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgpCi0gICAg
LCBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gpKQotICAgICwgbV9yZWN0KHJlY3Qp
Ci0gICAgLCBtX2lua092ZXJmbG93KGlua092ZXJmbG93KQotICAgICwgbV9leHBhbnNpb24oZXhw
YW5zaW9uKQotICAgICwgbV90ZXh0KHRleHQpCi17Ci19Ci0KLWlubGluZSBSdW46OlRleHQ6OlRl
eHQoc2l6ZV90IHN0YXJ0LCBzaXplX3QgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsQ29u
dGVudCwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhlbikKLSAg
ICA6IG1fc3RhcnQoc3RhcnQpCi0gICAgLCBtX2xlbmd0aChsZW5ndGgpCi0gICAgLCBtX2hhc0h5
cGhlbihoYXNIeXBoZW4pCi0gICAgLCBtX29yaWdpbmFsQ29udGVudChvcmlnaW5hbENvbnRlbnQp
Ci0gICAgLCBtX2FkanVzdGVkQ29udGVudFRvUmVuZGVyKGFkanVzdGVkQ29udGVudFRvUmVuZGVy
KQotewotfQotCi1pbmxpbmUgdm9pZCBSdW46OnNldFZlcnRpY2FsUG9zaXRpb25JbnRlZ3JhbCgp
Ci17Ci0gICAgbV9yZWN0LnNldFkocm91bmRUb0ludChtX3JlY3QueSgpKSk7Ci0gICAgbV9pbmtP
dmVyZmxvdy5zZXRZKHJvdW5kVG9JbnQobV9pbmtPdmVyZmxvdy55KCkpKTsKLX0KLQotfQotfQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAppbmRleCA3NDg1
MmE2YjBkMjUxYjVhNTE2YzRiMzUwY2IxOTQwZjFmYzU2ZDE5Li43YTEzYWRjMTBlYmQxYzUzNjc5
M2Q2MzljOTVhMGM5NzgxNmI3NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFp
bnRlci5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgotI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVuLmgiCiAjaW5jbHVkZSAiTGVnYWN5
SW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJpbmVUZXh0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437066</attachid>
            <date>2021-09-01 14:07:55 -0700</date>
            <delta_ts>2021-09-01 18:33:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229719-20210901140754.patch</filename>
            <type>text/plain</type>
            <size>31759</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5YzJiZGQ3ODhmMjBl
ODQyODMyMDA3NmIxZjUxZGMxYjg5NGZhYy4uZGJkMzExNGFlYzYxMzMxMTdhMjg4MjM2N2VhYTJj
N2EzZGFhZDFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA5LTAxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBn
ZW5lcmF0ZSBpbnRlZ3JhdGlvbiBydW5zIG91dCBvZiBJRkMncyBkaXNwbGF5IHJ1bnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEludGVncmF0aW9uIHJ1
bnMgYW5kIElGQyBkaXNwbGF5IHJ1bnMgaG9sZCB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YgZGF0YSwg
c28gbGV0J3Mgbm90IGR1cGxpY2F0ZSB0aGVuIGZvciB0aGUgaW50ZWdyYXRpb24gbGF5ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6VGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpi
dWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UnVuOjpUZXh0OjpvcmlnaW5hbENv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSdW46OlRleHQ6OnJlbmRl
cmVkQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJ1bjo6c2V0VmVy
dGljYWxQb3NpdGlvbkludGVncmFsKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudEJ1aWxkZXI6OmJ1aWxkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50QnVp
bGRlcjo6Y3JlYXRlRGlzcGxheVJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6TGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVzKToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjptYWtlQWRqdXN0ZWRD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorCiAy
MDIxLTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUg
dXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzQ1MWNiZWE5M2VmYTYyYjZjYjYxNjEyNjY4ZTgy
NzhkNzUyMzY5Zi4uNTgzMjUxOTRiMzNhYTIyYjdhMmUwNWZjNDg0Y2NiM2U0MGEwZDRiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC03NjgsNiArNzY4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIGxheW91dC9MYXlvdXRVbml0cy5oCiAgICAgbGF5b3V0L01h
cmdpblR5cGVzLmgKIAorICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVSdW4uaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJl
Y3QuaAogCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudC5oCkBAIC03NzUsNyArNzc2LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVy
YXRvci5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJh
dG9yTGVnYWN5UGF0aC5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCi0gICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUnVuLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvci5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JMZWdhY3lQYXRoLmgKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwMjYxMDMyNWEzMzZmNTEzZmMyMTI2
NGZhMDE3NzMzOGY0ZDg4ZDAuLjY3YjhmM2M5MmZiMjM1MDQ4NzBjMTM0ODVmNmZhMjY5ZGNhMDNk
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIxNzcsNyArMjE3Nyw2IEBACiAJCTZGQjdEMkRFMjUwRkQ4MkUwMDAyMDdBQSAv
KiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTZGQzNGOTQ3MjUxNjc1NjcwMEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkMzRjk0NTI1MTY3NTY2MDBBNDlC
RUEgLyogSW5saW5lTGluZVJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGQ0JEQjk3MjY1REYyQzgwMDIxRUE3QiAvKiBMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkNCREI5NTI2NURGMkM3MDAyMUVBN0IgLyogTGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTZGQ0UxQTFBMjI2MThBQkQwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZEMDk1NDMyNTEx
MTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExh
eW91dEdlb21ldHJ5UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZF
MTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFNjM2RTgyNjQ3OTYy
OTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTYzNkU3MjY0Nzk2MjkwMEYwOTUxRSAvKiBJ
bmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDYwLDcgKzEwMDU5LDYgQEAKIAkJNkZDNUNBOTUyMkUzNTk5
NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFi
bGVGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1
Q0E5NjIyRTM1OTk1MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkZDQkRCOTUyNjVERjJDNzAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0Q29udGFp
bmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25SdW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRHZW9tZXRyeVJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTA2OSw3ICsyOTA2Nyw2IEBACiAJCQkJRTRB
QkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oICov
LAogCQkJCUU0MzEyQUI1MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2lu
YXRpb24uY3BwICovLAogCQkJCUU0MzEyQUI3MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uaCAqLywKLQkJCQk2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLywKIAkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCiAJCQkJRTRBNjY0QzYyNTIx
Qjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywKIAkJCQlF
NEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxl
Z2FjeVBhdGguaCAqLywKQEAgLTMzNTIxLDcgKzMzNTE4LDYgQEAKIAkJCQlFNEQzM0Y0NjI1MkM1
MEZDMDA4MzdEMDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDAzQjdBMzI1MUIxMUMx
MDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQk2RkNFMUExQTIyNjE4QUJEMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCBp
biBIZWFkZXJzICovLAogCQkJCUU0QTY2NENDMjUyMUQ0QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEE2NjRDRjI1MjFENEUy
MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0QTY2NENFMjUyMUQ0QzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94UGFpbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94UGFpbnRlci5jcHAKaW5kZXggZTQ5NDVhYjEz
ZWM2YTJlYmZmMmZiNDUxY2E2NWNjNjljMGI5Njc5NC4uMmM2M2FlOGM0YWVlYmVmMGMxMGE2ZWQy
NTE4ZDUwYWMzYmUyNWM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3Mv
RGlzcGxheUJveFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rp
c3BsYXlCb3hQYWludGVyLmNwcApAQCAtODAsNyArODAsNyBAQCB2b2lkIEJveFBhaW50ZXI6OnBh
aW50Qm94Q29udGVudChjb25zdCBCb3gmIGJveCwgUGFpbnRpbmdDb250ZXh0JiBwYWludGluZ0Nv
bnRleAogICAgICAgICBhdXRvIGJhc2VsaW5lID0gdGV4dFJlY3QueSgpICsgc3R5bGUuZm9udE1l
dHJpY3MoKS5hc2NlbnQoKTsKICAgICAgICAgYXV0byBleHBhbnNpb24gPSB0ZXh0Qm94LmV4cGFu
c2lvbigpOwogCi0gICAgICAgIGF1dG8gdGV4dFJ1biA9IFRleHRSdW4geyB0ZXh0Qm94LnRleHQo
KS5vcmlnaW5hbENvbnRlbnQoKS5zdWJzdHJpbmcodGV4dEJveC50ZXh0KCkuc3RhcnQoKSwgdGV4
dEJveC50ZXh0KCkubGVuZ3RoKCkpLCB0ZXh0UmVjdC54KCksIGV4cGFuc2lvbi5ob3Jpem9udGFs
RXhwYW5zaW9uLCBleHBhbnNpb24uYmVoYXZpb3IgfTsKKyAgICAgICAgYXV0byB0ZXh0UnVuID0g
VGV4dFJ1biB7IHRleHRCb3gudGV4dCgpLm9yaWdpbmFsQ29udGVudCgpLCB0ZXh0UmVjdC54KCks
IGV4cGFuc2lvbi5ob3Jpem9udGFsRXhwYW5zaW9uLCBleHBhbnNpb24uYmVoYXZpb3IgfTsKICAg
ICAgICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5
bGUudGFiU2l6ZSgpKTsKICAgICAgICAgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQuZHJhd1RleHQo
c3R5bGUuZm9udENhc2NhZGUoKSwgdGV4dFJ1biwgeyB0ZXh0UmVjdC54KCksIGJhc2VsaW5lIH0p
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nz
cy9EaXNwbGF5VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5
VGV4dEJveC5jcHAKaW5kZXggYjA0N2I3ZmZiYWUxNmJhZDJhYWNlZTgyMjQ5ZmJlNjhmZmI1Njlm
Ny4uZGIyMzE0ZGI0NzQzMDA4ZWI2MDZmMmZmMTI3OGQ0NjE1MTI4YWYwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlUZXh0Qm94LmNwcApAQCAtNTMsNyArNTMsNyBA
QCBTdHJpbmcgVGV4dEJveDo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgVGV4dFN0cmVh
bSBzdHJlYW07CiAKICAgICBzdHJlYW0gPDwgYm94TmFtZSgpIDw8ICIgIiA8PCBhYnNvbHV0ZUJv
eFJlY3QoKSA8PCAiICgiIDw8IHRoaXMgPDwgIikiOwotICAgIGF1dG8gdGV4dENvbnRlbnQgPSB0
ZXh0KCkub3JpZ2luYWxDb250ZW50KCkuc3Vic3RyaW5nKHRleHQoKS5zdGFydCgpLCB0ZXh0KCku
bGVuZ3RoKCkpOworICAgIGF1dG8gdGV4dENvbnRlbnQgPSB0ZXh0KCkub3JpZ2luYWxDb250ZW50
KCkuc3Vic3RyaW5nKHRleHQoKS5zdGFydCgpLCB0ZXh0KCkubGVuZ3RoKCkpLnRvU3RyaW5nKCk7
CiAgICAgdGV4dENvbnRlbnQucmVwbGFjZVdpdGhMaXRlcmFsKCdcXCcsICJcXFxcIik7CiAgICAg
dGV4dENvbnRlbnQucmVwbGFjZVdpdGhMaXRlcmFsKCdcbicsICJcXG4iKTsKICAgICBjb25zdCBz
aXplX3QgbWF4UHJpbnRlZExlbmd0aCA9IDgwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggNDMyMDEwYjZlYjhjYmZiOGVh
NTFlMTM0YjYyNTU2N2ZhZDVkOGIzYi4uMWExM2EyYTI5ZTExNDY3MjYyYTc3MDliMTBjOWZlNjI2
MmMzMGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgTGF5b3V0IHsKIAorI2RlZmluZSBBTExPV19ST09UX0FORF9MSU5FX1NQQU5OSU5H
X0lOTElORV9CT1ggMAogCiBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OklubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlcihjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCwgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCiAgICAgOiBtX2Zvcm1h
dHRpbmdDb250ZXh0Um9vdChmb3JtYXR0aW5nQ29udGV4dFJvb3QpCkBAIC00NywxMSArNDgsMTIg
QEAgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIoY29uc3QgQ29udGFpbmVyQm94JiBmb3IKIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyOjpidWlsZChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmIGxpbmVDb250ZW50LCBj
b25zdCBMaW5lQm94JiBsaW5lQm94LCBjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgbGluZUJveExv
Z2ljYWxUb3BMZWZ0LCBjb25zdCBzaXplX3QgbGluZUluZGV4KQogewogICAgIGF1dG8mIGZvcm1h
dHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgpOworI2lmIEFMTE9XX1JPT1RfQU5E
X0xJTkVfU1BBTk5JTkdfSU5MSU5FX0JPWAogICAgIC8vIEV2ZXJ5IGxpbmUgc3RhcnRzIHdpdGgg
YSByb290IHJ1biwgZXZlbiB0aGUgZW1wdHkgb25lcy4KICAgICBhdXRvIHJvb3RJbmxpbmVCb3hS
ZWN0ID0gbGluZUJveC5sb2dpY2FsUmVjdEZvclJvb3RJbmxpbmVCb3goKTsKICAgICByb290SW5s
aW5lQm94UmVjdC5tb3ZlQnkobGluZUJveExvZ2ljYWxUb3BMZWZ0KTsKICAgICBmb3JtYXR0aW5n
U3RhdGUuYWRkUnVuKHsgbGluZUluZGV4LCBSdW46OlR5cGU6OlJvb3RJbmxpbmVCb3gsIHJvb3Qo
KSwgcm9vdElubGluZUJveFJlY3QsIHJvb3RJbmxpbmVCb3hSZWN0LCB7IH0sIHsgfSwgIGxpbmVC
b3gucm9vdElubGluZUJveCgpLmhhc0NvbnRlbnQoKX0pOwotCisjZW5kaWYKICAgICAvLyBTcGFu
bmluZyBpbmxpbmUgYm94ZXMgc3RhcnQgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBsaW5l
LgogICAgIGF1dG8gbGluZVNwYW5uaW5nSW5saW5lQm94SW5kZXggPSBmb3JtYXR0aW5nU3RhdGUu
cnVucygpLnNpemUoKTsKICAgICBjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29u
dGVudChsaW5lQ29udGVudCwgbGluZUJveCwgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBsaW5lSW5k
ZXgpOwpAQCAtMTgxLDcgKzE4Myw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVy
OjpjcmVhdGVSdW5zQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zCiAgICAgZm9y
bWF0dGluZ1N0YXRlLmxpbmVzKCkubGFzdCgpLnNldE5lZWRzSW50ZWdyYWxQb3NpdGlvbihsaW5l
TmVlZEludGVncmFsUG9zaXRpb24pOwogfQogCi12b2lkIElubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlUnVuc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5lQm94
ZXMoY29uc3QgTGluZUJveCYgbGluZUJveCwgY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIGxpbmVC
b3hMb2dpY2FsVG9wTGVmdCwgY29uc3Qgc2l6ZV90IGxpbmVJbmRleCwgc2l6ZV90IGxpbmVTcGFu
bmluZ0lubGluZUJveEluZGV4KQordm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNy
ZWF0ZVJ1bnNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVTcGFubmluZ0lubGluZUJveGVzKGNvbnN0
IExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IElubGluZUxheW91dFBvaW50JiBsaW5lQm94TG9naWNh
bFRvcExlZnQsIGNvbnN0IHNpemVfdCAvKmxpbmVJbmRleCovLCBzaXplX3QgLypsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hJbmRleCovKQogewogICAgIGlmICghbGluZUJveC5oYXNDb250ZW50KCkpIHsK
ICAgICAgICAgLy8gV2hlbiBhIHNwYW5uaW5nIGlubGluZSBib3ggKGUuZy4gPGRpdj50ZXh0PHNw
YW4+PGJyPjwvc3Bhbj48L2Rpdj4pIGxhbmRzIG9uIGFuIGVtcHR5IGxpbmUKQEAgLTIwMiw4ICsy
MDQsOSBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlUnVuc0FuZFVw
ZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saQogICAgICAgICBhdXRvIGlubGluZUJveEJv
cmRlckJveCA9IGxpbmVCb3gubG9naWNhbEJvcmRlckJveEZvcklubGluZUJveChsYXlvdXRCb3gs
IGJveEdlb21ldHJ5KTsKICAgICAgICAgaW5saW5lQm94Qm9yZGVyQm94Lm1vdmVCeShsaW5lQm94
TG9naWNhbFRvcExlZnQpOwogCisjaWYgQUxMT1dfUk9PVF9BTkRfTElORV9TUEFOTklOR19JTkxJ
TkVfQk9YCiAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5ydW5zKCkuaW5zZXJ0KGxpbmVTcGFubmlu
Z0lubGluZUJveEluZGV4KyssIHsgbGluZUluZGV4LCBSdW46OlR5cGU6Ok5vblJvb3RJbmxpbmVC
b3gsIGxheW91dEJveCwgaW5saW5lQm94Qm9yZGVyQm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIHsg
fSwgeyB9LCBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCksIHRydWUgfSk7Ci0KKyNlbmRpZgog
ICAgICAgICBhdXRvIGlubGluZUJveFNpemUgPSBMYXlvdXRTaXplIHsgTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJCb3gud2lkdGgoKSksIExheW91dFVuaXQ6OmZyb21G
bG9hdENlaWwoaW5saW5lQm94Qm9yZGVyQm94LmhlaWdodCgpKSB9OwogICAgICAgICBhdXRvIGxv
Z2ljYWxSZWN0ID0gUmVjdCB7IExheW91dFBvaW50IHsgaW5saW5lQm94Qm9yZGVyQm94LnRvcExl
ZnQoKSB9LCBpbmxpbmVCb3hTaXplIH07CiAgICAgICAgIC8vIE1pZGRsZSBvciBlbmQgb2YgdGhl
IGlubGluZSBib3guIExldCdzIHN0cmV0Y2ggdGhlIGJveCBhcyBuZWVkZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lUnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lUnVuLmgKaW5kZXggMDJhYWI3NWMyZTE0NWJiNTFhYTI3NjIwNTIyZDE5NWJh
ODI3ZWYwOC4uZjJmMDlkMTk1YmE3ODI5ZTE3MTg0NGVjMDVmNDNmZTQzOWZmMzk2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZVJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVSdW4uaApAQCAtNDQsOCArNDQsOCBAQCBzdHJ1Y3QgUnVuIHsK
ICAgICAgICAgc2l6ZV90IHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydDsgfQogICAgICAg
ICBzaXplX3QgZW5kKCkgY29uc3QgeyByZXR1cm4gc3RhcnQoKSArIGxlbmd0aCgpOyB9CiAgICAg
ICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQotICAgICAgICBT
dHJpbmcgb3JpZ2luYWxDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbENvbnRlbnQ7
IH0KLSAgICAgICAgU3RyaW5nIHJlbmRlcmVkQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRq
dXN0ZWRDb250ZW50VG9SZW5kZXI7IH0KKyAgICAgICAgU3RyaW5nVmlldyBvcmlnaW5hbENvbnRl
bnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3KG1fb3JpZ2luYWxDb250ZW50KS5zdWJzdHJp
bmcobV9zdGFydCwgbV9sZW5ndGgpOyB9CisgICAgICAgIFN0cmluZ1ZpZXcgcmVuZGVyZWRDb250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlci5pc051bGwoKSA/
IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsgfQogCiAgICAg
ICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIeXBoZW47IH0KIApAQCAt
MTExLDYgKzExMSw4IEBAIHN0cnVjdCBSdW4gewogCiAgICAgc2l6ZV90IGxpbmVJbmRleCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CiAKKyAgICB2b2lkIHNldFZlcnRpY2FsUG9zaXRp
b25JbnRlZ3JhbCgpOworCiBwcml2YXRlOgogICAgIGNvbnN0IHNpemVfdCBtX2xpbmVJbmRleDsK
ICAgICBjb25zdCBUeXBlIG1fdHlwZTsKQEAgLTE0Niw2ICsxNDgsMTIgQEAgaW5saW5lIFJ1bjo6
VGV4dDo6VGV4dChzaXplX3Qgc3RhcnQsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luYWxDb250ZW4KIHsKIH0KIAoraW5saW5lIHZvaWQgUnVuOjpzZXRWZXJ0aWNhbFBvc2l0aW9u
SW50ZWdyYWwoKQoreworICAgIG1fbG9naWNhbFJlY3Quc2V0VG9wKHJvdW5kVG9JbnQobV9sb2dp
Y2FsUmVjdC50b3AoKSkpOworICAgIG1faW5rT3ZlcmZsb3cuc2V0VG9wKHJvdW5kVG9JbnQobV9p
bmtPdmVyZmxvdy50b3AoKSkpOworfQorCiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJlY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVJl
Y3QuaAppbmRleCAyOWFlMjk1MzA3ZThkZTczZjRiYTk3M2FkNzMxZDJmNmI0Mjc0ZWU3Li5jNGMy
NWQ5ZWM0ODRkNTliNWZmMDIyYmJhMDJiNWI0ZjFjY2NmYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVSZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
UmVjdC5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVSZWN0KElubGluZUxh
eW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRVbml0IGxlZnQsIElubGluZUxheW91dFVuaXQgd2lk
dGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KTsKICAgICBJbmxpbmVSZWN0KGNvbnN0IElubGlu
ZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlv
dXRVbml0IGhlaWdodCk7CiAgICAgSW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYg
dG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0U2l6ZSYpOworICAgIElubGluZVJlY3QoY29uc3Qg
RmxvYXRSZWN0Jik7CiAgICAgCiAgICAgSW5saW5lTGF5b3V0VW5pdCB0b3AoKSBjb25zdDsKICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdDsKQEAgLTExNCw2ICsxMTUsMTEgQEAgaW5s
aW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExl
ZnQsIGNvbnN0IElubGluZUxheW8KIHsKIH0KIAoraW5saW5lIElubGluZVJlY3Q6OklubGluZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorICAgIDogSW5saW5lUmVjdChyZWN0LnkoKSwgcmVj
dC54KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkKK3sKK30KKwogI2lmIEFTU0VSVF9F
TkFCTEVECiBpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjppbnZhbGlkYXRlUG9zaXRpb24oKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCmluZGV4IGJmYzljYjJiMDM5NWM1Y2Zi
MzFlYjJjN2E5ZTE5MzhkM2NhNWYyNGQuLmIwN2IxMGUwYzhlMGQ0MmU5NmE4NGMzYjkzNWZiOWZj
NTg0MGYxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKQEAgLTI3LDgg
KzI3LDggQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCisjaW5j
bHVkZSAiSW5saW5lTGluZVJ1bi5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZS5o
IgotI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVuLmgiCiAjaW5jbHVkZSA8d3RmL0l0ZXJh
dG9yUmFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgTGluZUxheW91dDsKIGNsYXNzIFJ1bkl0ZXJh
dG9yOwogY2xhc3MgVGV4dFJ1bkl0ZXJhdG9yOwogCit1c2luZyBSdW4gPSBMYXlvdXQ6OlJ1bjsK
Kwogc3RydWN0IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50
PiB7CiAgICAgc3RhdGljIFJlZjxJbmxpbmVDb250ZW50PiBjcmVhdGUoY29uc3QgTGluZUxheW91
dCYgbGluZUxheW91dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmxpbmVDb250ZW50KGxpbmVM
YXlvdXQpKTsgfQogICAgIH5JbmxpbmVDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKaW5kZXggYzk0YmI2M2JmMWViZGFlMzdlOWE3
Y2NlMmYwY2Y0ZDc2ZTIxZGFmOS4uYWZhZWZkM2VkZWFhZTg4ZmI5Y2M4MmNjOWFhNTlhZGEwODFh
ODkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRCdWlsZGVy
LmNwcApAQCAtMjksMTAgKzI5LDEwIEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCiAKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJJ
bmxpbmVMaW5lUnVuLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRl
ICJMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuaCIKLSNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIgogI2lu
Y2x1ZGUgIkxheW91dFJlcGxhY2VkQm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKICNp
bmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKQEAgLTY1LDM4ICs2NSwzNiBAQCBJbmxpbmVDb250
ZW50QnVpbGRlcjo6SW5saW5lQ29udGVudEJ1aWxkZXIoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0
ZSYgbGF5b3V0U3RhdAogewogfQogCi12b2lkIElubGluZUNvbnRlbnRCdWlsZGVyOjpidWlsZChj
b25zdCBMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYgaW5saW5lRm9ybWF0dGluZ1N0YXRl
LCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50KSBjb25zdAordm9pZCBJbmxpbmVDb250ZW50
QnVpbGRlcjo6YnVpbGQoTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGlubGluZUZvcm1h
dHRpbmdTdGF0ZSwgSW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKIHsKLSAgICBj
cmVhdGVEaXNwbGF5UnVucyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUucnVucygpLCBpbmxpbmVDb250
ZW50KTsKKyAgICBjcmVhdGVEaXNwbGF5UnVucyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUsIGlubGlu
ZUNvbnRlbnQpOwogICAgIGNyZWF0ZURpc3BsYXlMaW5lcyhpbmxpbmVGb3JtYXR0aW5nU3RhdGUu
bGluZXMoKSwgaW5saW5lQ29udGVudCk7CiB9CiAKLXZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6
OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExheW91dDo6SW5saW5lUnVucyYgcnVucywgSW5saW5l
Q29udGVudCYgaW5saW5lQ29udGVudCkgY29uc3QKK3ZvaWQgSW5saW5lQ29udGVudEJ1aWxkZXI6
OmNyZWF0ZURpc3BsYXlSdW5zKExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJiBpbmxpbmVG
b3JtYXR0aW5nU3RhdGUsIElubGluZUNvbnRlbnQmIGlubGluZUNvbnRlbnQpIGNvbnN0CiB7Ci0g
ICAgaWYgKHJ1bnMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbmxpbmVDb250
ZW50LnJ1bnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShydW5zLnNpemUoKSk7Ci0gICAgZm9yIChh
dXRvJiBydW4gOiBydW5zKSB7Ci0gICAgICAgIGlmIChhdXRvIHRleHQgPSBydW4udGV4dCgpKSB7
Ci0gICAgICAgICAgICBpbmxpbmVDb250ZW50LnJ1bnMuYXBwZW5kKHsgcnVuLmxpbmVJbmRleCgp
LCBydW4ubGF5b3V0Qm94KCksIHJ1bi5sb2dpY2FsUmVjdCgpLCBydW4uaW5rT3ZlcmZsb3coKSwg
UnVuOjpFeHBhbnNpb24geyBydW4uZXhwYW5zaW9uKCkuYmVoYXZpb3IsIHJ1bi5leHBhbnNpb24o
KS5ob3Jpem9udGFsRXhwYW5zaW9uIH0KLSAgICAgICAgICAgICAgICAsIFJ1bjo6VGV4dCB7IHRl
eHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0LT5vcmlnaW5hbENvbnRlbnQoKSwgdGV4
dC0+cmVuZGVyZWRDb250ZW50KCksIHRleHQtPmhhc0h5cGhlbigpIH0gfSk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoIXJ1bi5pc1Jvb3RJbmxpbmVCb3goKSkgewotICAgICAgICAgICAgLy8gRklYTUU6
IFRlYWNoIHRoZSBydW4gaXRlcmF0b3JzIHRvIGlnbm9yZSB0aGUgcm9vdCBpbmxpbmUgYm94IHJ1
bnMuCi0gICAgICAgICAgICBhdXRvJiBnZW9tZXRyeSA9IG1fbGF5b3V0U3RhdGUuZ2VvbWV0cnlG
b3JCb3gocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGlmICghcnVuLmlzSW5saW5lQm94
KCkgfHwgIXJ1bi5pc0xpbmVTcGFubmluZygpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6
IFJ1biBpdGVyYXRvcnMgd2l0aCAodGV4dClydW5zIHNwYW5uaW5nIG92ZXIgbXVsdGlwbGUgbGlu
ZXMgZXhwZWN0IG5vICJpbi1iZXR3ZWVuIiBydW5zIChlLmcuIGxpbmUgc3Bhbm5pbmcgb3Igcm9v
dCBpbmxpbmUgYm94ZXMpLgotICAgICAgICAgICAgICAgIGlubGluZUNvbnRlbnQucnVucy5hcHBl
bmQoeyBydW4ubGluZUluZGV4KCksIHJ1bi5sYXlvdXRCb3goKSwgcnVuLmxvZ2ljYWxSZWN0KCks
IHJ1bi5pbmtPdmVyZmxvdygpLCB7IH0sIHsgfSB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChydW4uaXNJbmxpbmVCb3goKSkgewotICAgICAgICAgICAgICAgIGF1dG8gaGFzU2Ny
b2xsYWJsZUNvbnRlbnQgPSBbJl0gewotICAgICAgICAgICAgICAgICAgICAvLyBJbiBzdGFuZGFy
ZHMgbW9kZSwgaW5saW5lIGJveGVzIGFsd2F5cyBzdGFydCB3aXRoIGFuIGltYWdpbmFyeSBzdHJ1
dC4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUuaW5TdGFuZGFyZHNN
b2RlKCkgfHwgcnVuLmhhc0NvbnRlbnQoKSB8fCBnZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkg
fHwgKGdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkgJiYgZ2VvbWV0cnkuaG9yaXpvbnRhbFBh
ZGRpbmcoKS52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGlu
bGluZUNvbnRlbnQubm9uUm9vdElubGluZUJveGVzLmFwcGVuZCh7IHJ1bi5saW5lSW5kZXgoKSwg
cnVuLmxheW91dEJveCgpLCBydW4ubG9naWNhbFJlY3QoKSwgaGFzU2Nyb2xsYWJsZUNvbnRlbnQo
KSB9KTsKLSAgICAgICAgICAgIH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbG9vcCB3aGVu
IHdlIHRyYW5zaXRpb25lZCB0byB0aGUgInJ1biBvbmx5IiBzZXR1cCAoaS5lLiBlYWNoIGlubGlu
ZSBib3ggaXMgcmVwcmVzZW50ZWQgYXMgYSBydW4gYXMgd2VsbCkKKyAgICBhdXRvJiBsaW5lQm94
ZXMgPSBjb25zdF9jYXN0PExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJj4oaW5saW5lRm9y
bWF0dGluZ1N0YXRlKS5saW5lQm94ZXMoKTsKKyAgICBmb3IgKHNpemVfdCBsaW5lSW5kZXggPSAw
OyBsaW5lSW5kZXggPCBsaW5lQm94ZXMuc2l6ZSgpOyArK2xpbmVJbmRleCkgeworICAgICAgICBh
dXRvJiBsaW5lQm94ID0gbGluZUJveGVzW2xpbmVJbmRleF07CisgICAgICAgIGF1dG8gbGluZUJv
eExvZ2ljYWxUb3BMZWZ0ID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKClbbGluZUluZGV4
XS5saW5lQm94TG9naWNhbFJlY3QoKS50b3BMZWZ0KCk7CisgICAgICAgIGZvciAoYXV0byYgbm9u
Um9vdElubGluZUxldmVsQm94IDogbGluZUJveC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7
CisgICAgICAgICAgICBpZiAoIW5vblJvb3RJbmxpbmVMZXZlbEJveC5pc0lubGluZUJveCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0g
bm9uUm9vdElubGluZUxldmVsQm94LmxheW91dEJveCgpOworICAgICAgICAgICAgYXV0byYgYm94
R2VvbWV0cnkgPSBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KTsK
KyAgICAgICAgICAgIGF1dG8gaGFzU2Nyb2xsYWJsZUNvbnRlbnQgPSBbJl0geworICAgICAgICAg
ICAgICAgIC8vIEluIHN0YW5kYXJkcyBtb2RlLCBpbmxpbmUgYm94ZXMgYWx3YXlzIHN0YXJ0IHdp
dGggYW4gaW1hZ2luYXJ5IHN0cnV0LgorICAgICAgICAgICAgICAgIHJldHVybiBtX2xheW91dFN0
YXRlLmluU3RhbmRhcmRzTW9kZSgpIHx8IG5vblJvb3RJbmxpbmVMZXZlbEJveC5oYXNDb250ZW50
KCkgfHwgYm94R2VvbWV0cnkuaG9yaXpvbnRhbEJvcmRlcigpIHx8IChib3hHZW9tZXRyeS5ob3Jp
em9udGFsUGFkZGluZygpICYmIGJveEdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkudmFsdWUo
KSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgLy8gSW5saW5lIGJveGVzIG1heSBvciBt
YXkgbm90IGJlIHdyYXBwZWQgYW5kIGhhdmUgcnVucyBvbiBtdWx0aXBsZSBsaW5lcyAoZS5nLiA8
c3Bhbj5maXJzdCBsaW5lPGJyPnNlY29uZCBsaW5lPGJyPnRoaXJkIGxpbmU8L3NwYW4+KQorICAg
ICAgICAgICAgYXV0byBpbmxpbmVCb3hCb3JkZXJCb3ggPSBsaW5lQm94LmxvZ2ljYWxCb3JkZXJC
b3hGb3JJbmxpbmVCb3gobGF5b3V0Qm94LCBib3hHZW9tZXRyeSk7CisgICAgICAgICAgICBpbmxp
bmVCb3hCb3JkZXJCb3gubW92ZUJ5KGxpbmVCb3hMb2dpY2FsVG9wTGVmdCk7CisgICAgICAgICAg
ICBpbmxpbmVDb250ZW50Lm5vblJvb3RJbmxpbmVCb3hlcy5hcHBlbmQoeyBsaW5lSW5kZXgsIGxh
eW91dEJveCwgaW5saW5lQm94Qm9yZGVyQm94LCBoYXNTY3JvbGxhYmxlQ29udGVudCgpIH0pOwog
ICAgICAgICB9CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGlzIG1pZ2h0IG5lZWQgYSBkaWZmZXJl
bnQgYXBwcm9hY2ggd2l0aCBwYXJ0aWFsIGxheW91dCB3aGVyZSB0aGUgbGF5b3V0IGNvZGUgbmVl
ZHMgdG8ga25vdyBhYm91dCB0aGUgcnVucy4KKyAgICBpbmxpbmVDb250ZW50LnJ1bnMgPSBXVEZN
b3ZlKGlubGluZUZvcm1hdHRpbmdTdGF0ZS5ydW5zKCkpOwogfQogCiB2b2lkIElubGluZUNvbnRl
bnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMoY29uc3QgTGF5b3V0OjpJbmxpbmVMaW5lcyYg
bGluZXMsIElubGluZUNvbnRlbnQmIGlubGluZUNvbnRlbnQpIGNvbnN0CkBAIC0xMzEsMTEgKzEy
OSwxMSBAQCB2b2lkIElubGluZUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVEaXNwbGF5TGluZXMoY29u
c3QgTGF5b3V0OjpJbmxpbmVMaW5lcyYgbGluZXMsCiAgICAgICAgICAgICBhdXRvIHJ1bkxvZ2lj
YWxSZWN0ID0gcnVuLmxvZ2ljYWxSZWN0KCk7CiAgICAgICAgICAgICBpZiAoIWJveC5oYXNTZWxm
UGFpbnRpbmdMYXllcigpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBjaGlsZElua092ZXJmbG93
ID0gYm94LmxvZ2ljYWxWaXN1YWxPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbigmYm94LnBhcmVu
dCgpLT5zdHlsZSgpKTsKLSAgICAgICAgICAgICAgICBjaGlsZElua092ZXJmbG93Lm1vdmUocnVu
TG9naWNhbFJlY3QueCgpLCBydW5Mb2dpY2FsUmVjdC55KCkpOworICAgICAgICAgICAgICAgIGNo
aWxkSW5rT3ZlcmZsb3cubW92ZShydW5Mb2dpY2FsUmVjdC5sZWZ0KCksIHJ1bkxvZ2ljYWxSZWN0
LnRvcCgpKTsKICAgICAgICAgICAgICAgICBsaW5lSW5rT3ZlcmZsb3dSZWN0LnVuaXRlKGNoaWxk
SW5rT3ZlcmZsb3cpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYXV0byBjaGlsZFNjcm9s
bGFibGVPdmVyZmxvdyA9IGJveC5sb2dpY2FsTGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRp
b24oJmJveC5wYXJlbnQoKS0+c3R5bGUoKSk7Ci0gICAgICAgICAgICBjaGlsZFNjcm9sbGFibGVP
dmVyZmxvdy5tb3ZlKHJ1bkxvZ2ljYWxSZWN0LngoKSwgcnVuTG9naWNhbFJlY3QueSgpKTsKKyAg
ICAgICAgICAgIGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93Lm1vdmUocnVuTG9naWNhbFJlY3QubGVm
dCgpLCBydW5Mb2dpY2FsUmVjdC50b3AoKSk7CiAgICAgICAgICAgICBzY3JvbGxhYmxlT3ZlcmZs
b3dSZWN0LnVuaXRlKGNoaWxkU2Nyb2xsYWJsZU92ZXJmbG93KTsKICAgICAgICAgfQogICAgICAg
ICAvLyBDb2xsZWN0IHNjcm9sbGFibGUgb3ZlcmZsb3cgZnJvbSBpbmxpbmUgYm94ZXMuIEFsbCBv
dGhlciBpbmxpbmUgbGV2ZWwgYm94ZXMgKGUuZyBhdG9taWMgaW5saW5lIGxldmVsIGJveGVzKSBz
dHJldGNoIHRoZSBsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnRC
dWlsZGVyLmgKaW5kZXggMjA3ZWYxNDBmZDFmYjcxNzI1ZTdhMmIxNDFlMjlmZDY4MTU5ODk5Ni4u
MjBkZTNkZGVkYjhlMGRjMTc1M2M2OTJhZDMyMjMzN2RjNTM1OGZlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oCkBAIC00MywxMCArNDMsMTAgQEAg
Y2xhc3MgSW5saW5lQ29udGVudEJ1aWxkZXIgewogcHVibGljOgogICAgIElubGluZUNvbnRlbnRC
dWlsZGVyKGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmLCBjb25zdCBSZW5kZXJCbG9ja0Zsb3cm
LCBjb25zdCBCb3hUcmVlJik7CiAKLSAgICB2b2lkIGJ1aWxkKGNvbnN0IExheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlJiwgSW5saW5lQ29udGVudCYpIGNvbnN0OworICAgIHZvaWQgYnVpbGQo
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmLCBJbmxpbmVDb250ZW50JikgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMYXlvdXQ6OklubGlu
ZVJ1bnMmLCBJbmxpbmVDb250ZW50JikgY29uc3Q7CisgICAgdm9pZCBjcmVhdGVEaXNwbGF5UnVu
cyhMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYsIElubGluZUNvbnRlbnQmKSBjb25zdDsK
ICAgICB2b2lkIGNyZWF0ZURpc3BsYXlMaW5lcyhjb25zdCBMYXlvdXQ6OklubGluZUxpbmVzJiwg
SW5saW5lQ29udGVudCYpIGNvbnN0OwogCiAgICAgY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYg
bV9sYXlvdXRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKaW5kZXggZWUy
MGQ0YmZmNmQwYTE1NTdlYzlhZWIzOGMyNGE3YzA2YmU3OTA2ZC4uZmVkNTE2M2Q1NzYwY2IxZmNh
NDdmYmFhYjE1ZjI5MzJiZTQ5MTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5j
cHAKQEAgLTU2MywxMSArNTYzLDExIEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNp
bmdQaHlzaWNhbENvb3JkaW5hdGVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zCiAgICAgICAg
IHBoeXNpY2FsUGFpbnRPZmZzZXQubW92ZSh7IDAsIC1ydW4ubG9naWNhbFJlY3QoKS5oZWlnaHQo
KSB9KTsKICAgICB9CiAKLSAgICBhdXRvIHBoeXNpY2FsUmVjdCA9IFsmXShjb25zdCBhdXRvJiBy
ZWN0KSB7CisgICAgYXV0byBwaHlzaWNhbFJlY3QgPSBbJl0oY29uc3QgYXV0byYgcmVjdCkgLT4g
RmxvYXRSZWN0IHsKICAgICAgICAgaWYgKCFzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9k
ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlY3Q7CiAgICAgICAgIGlmICghYmxvY2tJc0hvcml6
b250YWxXcml0aW5nKQotICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCB7IGZvcm1hdHRpbmdD
b250ZXh0Um9vdC53aWR0aCgpIC0gcmVjdC5tYXhZKCksIHJlY3QueCgpICwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpIH07CisgICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0IHsgZm9ybWF0
dGluZ0NvbnRleHRSb290LndpZHRoKCkgLSByZWN0LmJvdHRvbSgpLCByZWN0LmxlZnQoKSAsIHJl
Y3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSB9OwogICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVO
VEVEX1lFVCgpOwogICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9OwpAQCAtNTkyLDcgKzU5Miw3
IEBAIHZvaWQgTGluZUxheW91dDo6cGFpbnRUZXh0UnVuVXNpbmdQaHlzaWNhbENvb3JkaW5hdGVz
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zCiAgICAgLy8gVGV4dFJ1biBleHBlY3RzIHRoZSB4
UG9zIHRvIGJlIGFkanVzdGVkIHdpdGggdGhlIGFsaWdtZW50IG9mZnNldCAoZS5nLiB3aGVuIHRo
ZSBsaW5lIGlzIGNlbnRlciBhbGlnbmVkCiAgICAgLy8gYW5kIHRoZSBydW4gc3RhcnRzIGF0IDEw
MHB4LCBkdWUgdG8gdGhlIGhvcml6b250YWwgYWxpZ21lbnQsIHRoZSB4cG9zIGlzIHN1cHBvc2Vk
IHRvIGJlIGF0IDBweCkuCiAgICAgYXV0byYgZm9udENhc2NhZGUgPSBzdHlsZS5mb250Q2FzY2Fk
ZSgpOwotICAgIGF1dG8geFBvcyA9IHJ1bi5sb2dpY2FsUmVjdCgpLngoKSAtIChsaW5lLmxpbmVC
b3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRMZWZ0KCkpOworICAgIGF1dG8geFBvcyA9IHJ1bi5sb2dp
Y2FsUmVjdCgpLmxlZnQoKSAtIChsaW5lLmxpbmVCb3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRMZWZ0
KCkpOwogICAgIGF1dG8gdGV4dFJ1biA9IFdlYkNvcmU6OlRleHRSdW4geyB0ZXh0Q29udGVudC5y
ZW5kZXJlZENvbnRlbnQoKSwgeFBvcywgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4
cGFuc2lvbi5iZWhhdmlvciB9OwogICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFw
c2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFn
aW5hdGlvbi5jcHAKaW5kZXggNThlN2ZjMzgyMWFmZWIyNzJkMGRhMTEzYWRkNWYzNjk2YmRiOGZk
Zi4uMDk5OTI5ZGNhNzk4MGNmZjdmNTQwMjhjMGNmYTE1OTRjMzJlN2IyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKQEAgLTE0NCw2ICsxNDQsNyBAQCBzdGF0aWMgUmVmPElu
bGluZUNvbnRlbnQ+IG1ha2VBZGp1c3RlZENvbnRlbnQoY29uc3QgSW5saW5lQ29udGVudCYgaW5s
aW5lQ29udGVudAogICAgIHsKICAgICAgICAgcmV0dXJuIFJ1biB7CiAgICAgICAgICAgICBydW4u
bGluZUluZGV4KCksCisgICAgICAgICAgICBydW4udHlwZSgpLAogICAgICAgICAgICAgcnVuLmxh
eW91dEJveCgpLAogICAgICAgICAgICAgbW92ZVZlcnRpY2FsbHkocnVuLmxvZ2ljYWxSZWN0KCks
IG9mZnNldCksCiAgICAgICAgICAgICBtb3ZlVmVydGljYWxseShydW4uaW5rT3ZlcmZsb3coKSwg
b2Zmc2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uUnVuLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgy
YTVlNDBkOTI5MzM4YzIxNTJkZTk1MTNiODk5MzdiNTVkMmVhYWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCi0jaW5jbHVkZSAiTGF5
b3V0Qm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUZXh0RmxhZ3Mu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRJbWFnZTsKLQotbmFtZXNw
YWNlIExheW91dEludGVncmF0aW9uIHsKLQotc3RydWN0IFJ1biB7Ci0gICAgV1RGX01BS0VfU1RS
VUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHN0cnVjdCBUZXh0IHsKLSAgICAgICAgV1RGX01BS0Vf
U1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgVGV4dChzaXplX3Qg
cG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYsIFN0cmluZyBhZGp1c3RlZENv
bnRlbnRUb1JlbmRlciwgYm9vbCBoYXNIeXBoZW4pOwotCi0gICAgICAgIHNpemVfdCBzdGFydCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KLSAgICAgICAgc2l6ZV90IGVuZCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXJ0KCkgKyBsZW5ndGgoKTsgfQotICAgICAgICBzaXplX3QgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KLSAgICAgICAgU3RyaW5nVmlldyBvcmlnaW5hbENvbnRl
bnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3KG1fb3JpZ2luYWxDb250ZW50KS5zdWJzdHJp
bmcobV9zdGFydCwgbV9sZW5ndGgpOyB9Ci0gICAgICAgIFN0cmluZ1ZpZXcgcmVuZGVyZWRDb250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlci5pc051bGwoKSA/
IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcjsgfQotICAgICAg
ICBib29sIGhhc0h5cGhlbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzSHlwaGVuOyB9Ci0KLSAgICBw
cml2YXRlOgotICAgICAgICBzaXplX3QgbV9zdGFydCB7IDAgfTsKLSAgICAgICAgc2l6ZV90IG1f
bGVuZ3RoIHsgMCB9OwotICAgICAgICBib29sIG1faGFzSHlwaGVuIHsgZmFsc2UgfTsKLSAgICAg
ICAgU3RyaW5nIG1fb3JpZ2luYWxDb250ZW50OwotICAgICAgICBTdHJpbmcgbV9hZGp1c3RlZENv
bnRlbnRUb1JlbmRlcjsKLSAgICB9OwotCi0gICAgc3RydWN0IEV4cGFuc2lvbjsKLSAgICBSdW4o
c2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24sIHN0ZDo6b3B0aW9uYWw8VGV4
dD4gPSBzdGQ6Om51bGxvcHQpOwotCi0gICAgY29uc3QgRmxvYXRSZWN0JiBsb2dpY2FsUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZs
b3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93OyB9Ci0KLSAgICB2b2lkIHNldFZlcnRp
Y2FsUG9zaXRpb25JbnRlZ3JhbCgpOwotCi0gICAgc3RkOjpvcHRpb25hbDxUZXh0PiYgdGV4dCgp
IHsgcmV0dXJuIG1fdGV4dDsgfQotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dD4mIHRleHQo
KSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICAvLyBGSVhNRTogVGhpcyBpbmZvcm1hdGlv
biBzaG91bGQgYmUgcHJlc2VydmVkIGF0IFJ1biBjb25zdHJ1Y3Rpb24gdGltZS4KLSAgICBib29s
IGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbGF5b3V0Qm94KCkuaXNMaW5lQnJlYWtCb3go
KSB8fCAodGV4dCgpICYmIHRleHQoKS0+b3JpZ2luYWxDb250ZW50KCkgPT0gIlxuIiAmJiBzdHls
ZSgpLnByZXNlcnZlTmV3bGluZSgpKTsgfQotCi0gICAgc3RydWN0IEV4cGFuc2lvbiB7Ci0gICAg
ICAgIEV4cGFuc2lvbkJlaGF2aW9yIGJlaGF2aW9yIHsgRGVmYXVsdEV4cGFuc2lvbiB9OwotICAg
ICAgICBMYXlvdXQ6OklubGluZUxheW91dFVuaXQgaG9yaXpvbnRhbEV4cGFuc2lvbiB7IDAgfTsK
LSAgICB9OwotICAgIEV4cGFuc2lvbiBleHBhbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2V4cGFu
c2lvbjsgfQotCi0gICAgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0
dXJuICptX2xheW91dEJveDsgfQotICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5b3V0Qm94LT5zdHlsZSgpOyB9Ci0KLSAgICBzaXplX3QgbGluZUluZGV4
KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KLQotcHJpdmF0ZToKLSAgICAvLyBGSVhN
RTogRmluZCBvdXQgdGhlIERpc3BsYXk6OlJ1biA8LT4gcGFpbnQgc3R5bGUgc2V0dXAuCi0gICAg
Y29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwotICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpCb3g+
IG1fbGF5b3V0Qm94OwotICAgIEZsb2F0UmVjdCBtX3JlY3Q7Ci0gICAgRmxvYXRSZWN0IG1faW5r
T3ZlcmZsb3c7Ci0gICAgRXhwYW5zaW9uIG1fZXhwYW5zaW9uOwotICAgIHN0ZDo6b3B0aW9uYWw8
VGV4dD4gbV90ZXh0OwotfTsKLQotaW5saW5lIFJ1bjo6UnVuKHNpemVfdCBsaW5lSW5kZXgsIGNv
bnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRpb25h
bDxUZXh0PiB0ZXh0KQotICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQotICAgICwgbV9sYXlv
dXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKLSAgICAsIG1fcmVjdChyZWN0KQotICAgICwg
bV9pbmtPdmVyZmxvdyhpbmtPdmVyZmxvdykKLSAgICAsIG1fZXhwYW5zaW9uKGV4cGFuc2lvbikK
LSAgICAsIG1fdGV4dCh0ZXh0KQotewotfQotCi1pbmxpbmUgUnVuOjpUZXh0OjpUZXh0KHNpemVf
dCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbENvbnRlbnQsIFN0
cmluZyBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciwgYm9vbCBoYXNIeXBoZW4pCi0gICAgOiBtX3N0
YXJ0KHN0YXJ0KQotICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgICwgbV9oYXNIeXBoZW4oaGFz
SHlwaGVuKQotICAgICwgbV9vcmlnaW5hbENvbnRlbnQob3JpZ2luYWxDb250ZW50KQotICAgICwg
bV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcihhZGp1c3RlZENvbnRlbnRUb1JlbmRlcikKLXsKLX0K
LQotaW5saW5lIHZvaWQgUnVuOjpzZXRWZXJ0aWNhbFBvc2l0aW9uSW50ZWdyYWwoKQotewotICAg
IG1fcmVjdC5zZXRZKHJvdW5kVG9JbnQobV9yZWN0LnkoKSkpOwotICAgIG1faW5rT3ZlcmZsb3cu
c2V0WShyb3VuZFRvSW50KG1faW5rT3ZlcmZsb3cueSgpKSk7Ci19Ci0KLX0KLX0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKaW5kZXggNzQ4NTJhNmIwZDI1
MWI1YTUxNmM0YjM1MGNiMTk0MGYxZmM1NmQxOS4uN2ExM2FkYzEwZWJkMWM1MzY3OTNkNjM5Yzk1
YTBjOTc4MTZiNzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQ
YWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3Bw
CkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNp
bmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIgogI2luY2x1ZGUgIkxlZ2FjeUlubGluZVRl
eHRCb3guaCIKICNpbmNsdWRlICJSZW5kZXJDb21iaW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>