<?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>237997</bug_id>
          
          <creation_ts>2022-03-16 20:56:18 -0700</creation_ts>
          <short_desc>[IFC][Integration] Introduce LineSelection</short_desc>
          <delta_ts>2022-03-17 19:33:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1852128</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-03-16 20:56:18 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852130</commentid>
    <comment_count>1</comment_count>
      <attachid>454930</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-16 21:00:04 -0700</bug_when>
    <thetext>Created attachment 454930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852313</commentid>
    <comment_count>2</comment_count>
      <attachid>454977</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-17 08:40:27 -0700</bug_when>
    <thetext>Created attachment 454977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852596</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-17 19:32:02 -0700</bug_when>
    <thetext>Committed r291463 (248579@main): &lt;https://commits.webkit.org/248579@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454977.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852598</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-17 19:33:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/90466947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454930</attachid>
            <date>2022-03-16 21:00:04 -0700</date>
            <delta_ts>2022-03-17 08:40:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237997-20220316210003.patch</filename>
            <type>text/plain</type>
            <size>25276</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3NWM5YTE5M2Y4ZTc4
MWEzMTllZjNkODc0NjMxNWM0MzVmMTMxYy4uODA2MTA2NjM2ZTk1MzNhN2ZkY2ZkNGQ2N2QxZmZm
NjhjOWM4MzJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTE2ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW50cm9kdWNlIExpbmVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzk5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBMaW5lU2VsZWN0aW9uIHRvIHJldHJpZXZlIGxpbmUgYmFzZWQg
c2VsZWN0aW9uIGluZm9ybWF0aW9uLgorICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZv
ciByZW1vdmluZyBzZWxlY3Rpb24vaGl0dGVzdGluZyByZWxhdGVkIGZ1bmN0aW9ucyBmcm9tIElu
bGluZUl0ZXJhdG9yOjpMaW5lLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbjo6YWJzb2x1dGVTZWxlY3Rpb25Cb3VuZHNGb3JM
aW5lIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JM
aW5lLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6VGV4dEJveDo6c2VsZWN0
aW9uUmVjdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20pOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNhbFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxIZWlnaHRBZGp1c3RlZEZvclByZWNl
ZGluZ0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnNlbGVjdGlvblN0
YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29tcHV0ZUNhcmV0UmVjdEZvckxpbmVQb3NpdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fwcyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRo
SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGluZUJyZWFrOjpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllcyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBv
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEJveFBhaW50ZXI6OnBhaW50QmFja2dyb3VuZCk6CisKIDIwMjItMDMtMTYg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0ludGVncmF0
aW9uXSBSZXBsYWNlIGVuY2xvc2luZ1RvcC9Cb3R0b20vaGVpZ2h0IGNhbGxzIHdpdGggTGluZTo6
ZW5jbG9zaW5nTG9naWNhbFJlY3Qgd2hlbiBhcHBsaWNhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDhkYzg2ODZjNDk4MTQ1
ZmJhMzdiMjQ1NjYxN2E4NDBhMjdjMjVhNi4uMDlhMjc3MjcxYjkzNjdhN2U5Zjc1YzBmNDY4MzIw
Y2U4MTc0ODYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjIxMiw2ICsyMjEyLDcgQEAKIAkJNkYwQ0Q2OTUyMjlFRDMyNzAw
QzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGMENENjk0MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi87
IH07CiAJCTZGMTU1MjIxMjY0NzZCNUMwMEUzNTNDNiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1h
dHRpbmdRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZGMTU1MjIwMjY0NzZCNUIwMEUzNTNDNiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRp
bmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2RjE3MjY0RjI0NzBDNjBCMDA1MThDOTYgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkYxNzI2NEUyNDcwQzYwQTAwNTE4Qzk2IC8qIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2RjFCMTAxNDI3RTJENTI0MDA3MTc4RTYgLyogTGluZVNlbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYxQjEwMTMyN0UyRDUyNDAw
NzE3OEU2IC8qIExpbmVTZWxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RjFDQzFERTIyNUY4QjQ5MDA3MjBBRDIgLyogSW5saW5lVGV4
dEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
MUNDMUREMjI1RjhCNDIwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGMUU4M0EyMjY2NTg4NEMwMDJF
OUQyOCAvKiBUYWJsZUZvcm1hdHRpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYxRTgzQTAyNjY1ODg0QzAwMkU5RDI4IC8qIFRh
YmxlRm9ybWF0dGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYxRTgzQTYyNjY1ODg4QzAwMkU5RDI4IC8qIEZvcm1hdHRp
bmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkYxRTgzQTUyNjY1ODg4QzAwMkU5RDI4IC8qIEZvcm1hdHRpbmdDb25zdHJhaW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDk0
OSw2ICsxMDk1MCw3IEBACiAJCTZGMTU1MjIwMjY0NzZCNUIwMEUzNTNDNiAvKiBUYWJsZVdyYXBw
ZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGMTcyNjRDMjQ3MEM1RjcwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjE3MjY0RTI0NzBDNjBBMDA1MThDOTYgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZVdyYXBwZXJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGMUIx
MDEzMjdFMkQ1MjQwMDcxNzhFNiAvKiBMaW5lU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExpbmVTZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkYxQ0MxREMyMjVGOEI0MTAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IElubGluZVRleHRJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElubGluZVRleHRJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGMUU4M0EwMjY2NTg4NEMwMDJFOUQyOCAvKiBUYWJsZUZvcm1hdHRpbmdDb25zdHJhaW50
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb25z
dHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE0OTEsNiArMzE0OTMs
NyBAQAogCQlFNEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEgLyogaW50ZWdyYXRpb24gKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZGMUIxMDEzMjdFMkQ1MjQw
MDcxNzhFNiAvKiBMaW5lU2VsZWN0aW9uLmggKi8sCiAJCQkJRTRBNjY0QzcyNTIxQjc3OTAwNzA4
MURDIC8qIElubGluZUl0ZXJhdG9yQm94LmNwcCAqLywKIAkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3
MDgxREMgLyogSW5saW5lSXRlcmF0b3JCb3guaCAqLywKIAkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3
MDgxREMgLyogSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmggKi8sCkBAIC0zMzc4OCw2ICsz
Mzc5MSw3IEBACiAJCQkJQkNGMTY0ODYyNjYyQUNBMzAwMDJGN0VGIC8qIENhbGNFeHByZXNzaW9u
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YxNjQ4RTI2NjJBREQ4MDAwMkY3RUYg
LyogQ2FsY09wZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YxNjQ2RTI2NjJBQTUwMDAw
MkY3RUYgLyogQ2FsY3VsYXRpb25DYXRlZ29yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkYxQjEw
MTQyN0UyRDUyNDAwNzE3OEU2IC8qIExpbmVTZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5QUUyRDk3MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzFFOEQwMTFFRDBDMkRBMDBCMUQ5ODMgLyogQ2FsbGJhY2tSZXN1bHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUVGQ0M2QzhGMjBGRTkxNDQwMEEyMzIxQiAvKiBDYW52YXNBY3Rp
dml0eVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVQb3NpdGlvbi5jcHAKaW5kZXggZDAzOTE0ZmI3NzYyYmRmN2I0ODBjNWI0OTBhZWEwMjVlY2Iy
YWQ0Mi4uZTk2YzM1OGNiNTU2NGY5ZDI2N2U4OWUzYmQ0Y2U0YTFlYTZmN2RjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JM
aW5lLmgiCiAjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCisjaW5jbHVkZSAiTGluZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgpAQCAtNjY5LDcgKzY3MCw3IEBAIEZsb2F0UmVjdCBW
aXNpYmxlUG9zaXRpb246OmFic29sdXRlU2VsZWN0aW9uQm91bmRzRm9yTGluZSgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICBhdXRvIGxpbmUgPSBydW4tPmxpbmUoKTsKLSAgICBy
ZXR1cm4gbGluZS0+Y29udGFpbmluZ0Jsb2NrKCkubG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJl
Y3QgeyBsaW5lLT5lbmNsb3NpbmdQaHlzaWNhbFJlY3QoKSB9KS5ib3VuZGluZ0JveCgpOworICAg
IHJldHVybiBsaW5lLT5jb250YWluaW5nQmxvY2soKS5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdCB7IExpbmVTZWxlY3Rpb246OnBoeXNpY2FsUmVjdCgqbGluZSkgfSkuYm91bmRpbmdCb3go
KTsKIH0KIAogaW50IFZpc2libGVQb3NpdGlvbjo6bGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tE
aXJlY3Rpb25OYXZpZ2F0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaAppbmRleCAxNWU4YmQwNWI0Y2Qx
Y2RiYWQ1YjViNDM4ZjE3YmFlN2U5N2FiNDBmLi5mZWQ4ZmM5MjMyNWFkMGQ2ZDMzNDc4ZjBlNjc0
MDE3NDQyZDg3YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vSW5saW5lSXRlcmF0b3JMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSA8
dmFyaWFudD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMaW5lU2VsZWN0aW9uOwor
CiBuYW1lc3BhY2UgSW5saW5lSXRlcmF0b3IgewogCiBjbGFzcyBMaW5lSXRlcmF0b3I7CkBAIC01
OCwyMiArNjEsMTIgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgbGluZUJveEJvdHRvbSgpIGNv
bnN0OwogICAgIExheW91dFVuaXQgbGluZUJveEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxpbmVC
b3hCb3R0b20oKSAtIGxpbmVCb3hUb3AoKTsgfQogCi0gICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdU
b3AoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVuY2xvc2luZ0JvdHRvbSgpIGNvbnN0OwotCi0g
ICAgTGF5b3V0UmVjdCBlbmNsb3NpbmdMb2dpY2FsUmVjdCgpIGNvbnN0OwotICAgIExheW91dFJl
Y3QgZW5jbG9zaW5nUGh5c2ljYWxSZWN0KCkgY29uc3Q7Ci0KLSAgICBMYXlvdXRVbml0IGVuY2xv
c2luZ1RvcEZvckhpdFRlc3RpbmcoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVuY2xvc2luZ1Rv
cEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVuY2xv
c2luZ0hlaWdodEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKSBjb25zdDsKLQotICAgIFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoKSBjb25zdDsKLQogICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsTGVmdCgpIGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2Fs
UmlnaHQoKSBjb25zdDsKICAgICBmbG9hdCBjb250ZW50TG9naWNhbFdpZHRoKCkgY29uc3Q7CiAK
KyAgICBMYXlvdXRVbml0IGVuY2xvc2luZ1RvcEZvckhpdFRlc3RpbmcoKSBjb25zdDsKKwogICAg
IGludCBibG9ja0RpcmVjdGlvblBvaW50SW5MaW5lKCkgY29uc3Q7CiAKICAgICBib29sIGlzSG9y
aXpvbnRhbCgpIGNvbnN0OwpAQCAtOTksNiArOTIsMTkgQEAgcHVibGljOgogICAgIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgTGluZUl0ZXJhdG9yOworICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHRlbXBvcmFyeS4KKyAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6TGluZVNlbGVjdGlvbjsKKwor
ICAgIExheW91dFVuaXQgZW5jbG9zaW5nVG9wKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBlbmNs
b3NpbmdCb3R0b20oKSBjb25zdDsKKworICAgIExheW91dFJlY3QgZW5jbG9zaW5nTG9naWNhbFJl
Y3QoKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGVuY2xvc2luZ1BoeXNpY2FsUmVjdCgpIGNvbnN0
OworCisgICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2Nr
KCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdIZWlnaHRBZGp1c3RlZEZvclByZWNl
ZGluZ0Jsb2NrKCkgY29uc3Q7CisKKyAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIHNl
bGVjdGlvblN0YXRlKCkgY29uc3Q7CiAKICAgICBQYXRoVmFyaWFudCBtX3BhdGhWYXJpYW50Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJ
dGVyYXRvclRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lu
bGluZUl0ZXJhdG9yVGV4dEJveC5jcHAKaW5kZXggMGNjOWI5MzY3OWE5YTNhMTg1Mzg5ZWU1NDg5
N2ZhMzliY2Y0YjZlMy4uNTk2YmFjMmY1ZGNjMWYzMTc3MzRmMzNlOGM0YTg5ZjdiNDhhYjQ0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJh
dG9yVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lu
bGluZUl0ZXJhdG9yVGV4dEJveC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIklu
bGluZUl0ZXJhdG9yTGluZS5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUxheW91
dC5oIgorI2luY2x1ZGUgIkxpbmVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJDb21iaW5l
VGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw3ICs0Niw3IEBAIExheW91dFJl
Y3QgVGV4dEJveDo6c2VsZWN0aW9uUmVjdCh1bnNpZ25lZCByYW5nZVN0YXJ0LCB1bnNpZ25lZCBy
YW5nZUVuZCkgY29uc3QKICAgICBpZiAoY2xhbXBlZFN0YXJ0ID49IGNsYW1wZWRFbmQgJiYgIShy
YW5nZVN0YXJ0ID09IHJhbmdlRW5kICYmIHJhbmdlU3RhcnQgPj0gc3RhcnQoKSAmJiByYW5nZVN0
YXJ0IDw9IGVuZCgpKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGluZVNlbGVj
dGlvblJlY3QgPSBsaW5lKCktPmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCk7CisgICAgYXV0byBsaW5l
U2VsZWN0aW9uUmVjdCA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxSZWN0KCpsaW5lKCkpOwogICAg
IGF1dG8gc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3QgeyBsb2dpY2FsTGVmdCgpLCBsaW5lU2Vs
ZWN0aW9uUmVjdC55KCksIGxvZ2ljYWxXaWR0aCgpLCBsaW5lU2VsZWN0aW9uUmVjdC5oZWlnaHQo
KSB9OwogCiAgICAgVGV4dFJ1biB0ZXh0UnVuID0gY3JlYXRlVGV4dFJ1bigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODlmZjcwYzg4MjBhMDI3OTNkOTVjYTY0YzliYjQzYmZlM2ZiMTU3NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
SW5saW5lSXRlcmF0b3JMaW5lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTGlu
ZVNlbGVjdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcChj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5lbmNsb3NpbmdU
b3AoKTsgfQorICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b20oY29uc3QgSW5saW5l
SXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuZW5jbG9zaW5nQm90dG9tKCk7IH0K
KworICAgIHN0YXRpYyBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0KGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCk7IH0KKyAg
ICBzdGF0aWMgTGF5b3V0UmVjdCBwaHlzaWNhbFJlY3QoY29uc3QgSW5saW5lSXRlcmF0b3I6Okxp
bmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuZW5jbG9zaW5nUGh5c2ljYWxSZWN0KCk7IH0KKworICAg
IHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xvc2luZ1Rv
cEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKTsgfQorICAgIHN0YXRpYyBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHRBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xvc2luZ0hlaWdodEFkanVzdGVkRm9yUHJl
Y2VkaW5nQmxvY2soKTsgfQorCisgICAgc3RhdGljIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGUgc2VsZWN0aW9uU3RhdGUoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0
dXJuIGxpbmUuc2VsZWN0aW9uU3RhdGUoKTsgfQorfTsKKworfQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcAppbmRleCA0NTRhZTRhOTkz
ZDI1M2YzZDc5NzBjM2RkYmE3YWJiNDM2M2Y3YWQwLi44OWY5MWJmMDQ0Y2U1M2M3MzUxNjVmYzg1
ZTlhNzYzZDU1NThjMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2Fy
ZXRSZWN0Q29tcHV0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJl
dFJlY3RDb21wdXRhdGlvbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJFZGl0aW5n
LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JMaW5lLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRl
cmF0b3JUZXh0Qm94LmgiCisjaW5jbHVkZSAiTGluZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJl
bmRlckxpbmVCcmVhay5oIgpAQCAtMTEyLDcgKzExMyw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGNv
bXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3Qm
IHJlCiBzdGF0aWMgTGF5b3V0UmVjdCBjb21wdXRlQ2FyZXRSZWN0Rm9yTGluZVBvc2l0aW9uKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3ImIGxpbmUsIGZsb2F0IGxvZ2ljYWxMZWZ0
UG9zaXRpb24sIENhcmV0UmVjdE1vZGUgY2FyZXRSZWN0TW9kZSkKIHsKICAgICBhdXRvJiBjb250
YWluaW5nQmxvY2sgPSBsaW5lLT5jb250YWluaW5nQmxvY2soKTsKLSAgICBhdXRvIGxpbmVTZWxl
Y3Rpb25SZWN0ID0gbGluZS0+ZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsKKyAgICBhdXRvIGxpbmVT
ZWxlY3Rpb25SZWN0ID0gTGluZVNlbGVjdGlvbjo6bG9naWNhbFJlY3QoKmxpbmUpOwogCiAgICAg
aW50IGhlaWdodCA9IGxpbmVTZWxlY3Rpb25SZWN0LmhlaWdodCgpOwogICAgIGludCB0b3AgPSBs
aW5lU2VsZWN0aW9uUmVjdC55KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCmluZGV4IDZhOWM3NWIyOThkYTY2NTYwYzJkODg5Yzk3ZTg1MWNlMzI4YTQw
ZTkuLjQwNDZmZmI4NWRmMmI5NzExZDA3Y2ZjMjFhNTZiODZiZmZkYmExNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiTGVnYWN5SW5saW5lVGV4
dEJveC5oIgogI2luY2x1ZGUgIkxlZ2FjeUxpbmVMYXlvdXQuaCIKKyNpbmNsdWRlICJMaW5lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJpbmVU
ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgiCkBAIC0zMDYx
LDExICszMDYyLDExIEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RFbmNsb3Np
bmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKICAgICAgICAgcmV0dXJuIHRv
cDsKIAogICAgIGlmIChhdXRvIGxhc3RMaW5lID0gSW5saW5lSXRlcmF0b3I6Omxhc3RMaW5lRm9y
KCpibG9ja0JlZm9yZSkpIHsKLSAgICAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBs
YXN0TGluZVNlbGVjdGlvblN0YXRlID0gbGFzdExpbmUtPnNlbGVjdGlvblN0YXRlKCk7CisgICAg
ICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25TdGF0ZSA9IExpbmVTZWxlY3Rpb246OnNlbGVjdGlv
blN0YXRlKCpsYXN0TGluZSk7CiAgICAgICAgIGlmIChsYXN0TGluZVNlbGVjdGlvblN0YXRlICE9
IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Okluc2lkZSAmJiBsYXN0TGluZVNlbGVjdGlv
blN0YXRlICE9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0YXJ0KQogICAgICAgICAg
ICAgcmV0dXJuIHRvcDsKIAotICAgICAgICBMYXlvdXRVbml0IGxhc3RMaW5lU2VsZWN0aW9uQm90
dG9tID0gbGFzdExpbmUtPmVuY2xvc2luZ0JvdHRvbSgpICsgb2Zmc2V0VG9CbG9ja0JlZm9yZS5o
ZWlnaHQoKTsKKyAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxl
Y3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RMaW5lKSArIG9mZnNldFRvQmxvY2tCZWZvcmUuaGVp
Z2h0KCk7CiAgICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdExpbmVTZWxlY3Rpb25Cb3R0
b20pOwogICAgIH0KICAgICByZXR1cm4gdG9wOwpAQCAtMzA4NywxMSArMzA4OCwxMSBAQCBHYXBS
ZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlvbkdhcHMoUmVuZGVyQmxvY2smIHJv
b3RCbG9jaywgY29uc3QgTGF5bwogICAgIH0KIAogICAgIGF1dG8gaGFzU2VsZWN0ZWRDaGlsZHJl
biA9IFsmXShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yJiBsaW5lKSB7Ci0gICAg
ICAgIHJldHVybiBsaW5lLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6SGlnaGxp
Z2h0U3RhdGU6Ok5vbmU7CisgICAgICAgIHJldHVybiBMaW5lU2VsZWN0aW9uOjpzZWxlY3Rpb25T
dGF0ZSgqbGluZSkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKICAgICB9
OwogCiAgICAgYXV0byBsaW5lU2VsZWN0aW9uR2FwID0gWyZdKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lSXRlcmF0b3ImIGxpbmUsIExheW91dFVuaXQgc2VsVG9wLCBMYXlvdXRVbml0IHNlbEhl
aWdodCkgLT4gR2FwUmVjdHMgewotICAgICAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRl
IGxpbmVTdGF0ZSA9IGxpbmUtPnNlbGVjdGlvblN0YXRlKCk7CisgICAgICAgIGF1dG8gbGluZVN0
YXRlID0gTGluZVNlbGVjdGlvbjo6c2VsZWN0aW9uU3RhdGUoKmxpbmUpOwogCiAgICAgICAgIGJv
b2wgbGVmdEdhcCwgcmlnaHRHYXA7CiAgICAgICAgIGdldFNlbGVjdGlvbkdhcEluZm8obGluZVN0
YXRlLCBsZWZ0R2FwLCByaWdodEdhcCk7CkBAIC0zMTY0LDE5ICszMTY1LDE5IEBAIEdhcFJlY3Rz
IFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJs
b2NrLCBjb25zdCBMYXlvCiAKICAgICAvLyBOb3cgcGFpbnQgdGhlIGdhcHMgZm9yIHRoZSBsaW5l
cy4KICAgICBmb3IgKDsgbGluZSAmJiBoYXNTZWxlY3RlZENoaWxkcmVuKGxpbmUpOyBsaW5lLnRy
YXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIExheW91dFVuaXQgc2VsVG9wID0gIGxpbmUtPmVuY2xv
c2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKTsKLSAgICAgICAgTGF5b3V0VW5pdCBz
ZWxIZWlnaHQgPSBsaW5lLT5lbmNsb3NpbmdIZWlnaHRBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2Nr
KCk7CisgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxU
b3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCpsaW5lKTsKKyAgICAgICAgYXV0byBzZWxlY3Rp
b25IZWlnaHQgPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRp
bmdCbG9jaygqbGluZSk7CiAKICAgICAgICAgaWYgKCFjb250YWluc1N0YXJ0ICYmICFsYXN0U2Vs
ZWN0ZWRMaW5lICYmCiAgICAgICAgICAgICBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0
YXRlOjpTdGFydCAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpCb3RoICYm
ICFpc1J1YnlCYXNlKCkpCi0gICAgICAgICAgICByZXN1bHQudW5pdGVDZW50ZXIoYmxvY2tTZWxl
Y3Rpb25HYXAocm9vdEJsb2NrLCByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBvZmZzZXRGcm9t
Um9vdEJsb2NrLCBsYXN0TG9naWNhbFRvcCwgbGFzdExvZ2ljYWxMZWZ0LCBsYXN0TG9naWNhbFJp
Z2h0LCBzZWxUb3AsIGNhY2hlLCBwYWludEluZm8pKTsKKyAgICAgICAgICAgIHJlc3VsdC51bml0
ZUNlbnRlcihibG9ja1NlbGVjdGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9z
aXRpb24sIG9mZnNldEZyb21Sb290QmxvY2ssIGxhc3RMb2dpY2FsVG9wLCBsYXN0TG9naWNhbExl
ZnQsIGxhc3RMb2dpY2FsUmlnaHQsIHNlbGVjdGlvblRvcCwgY2FjaGUsIHBhaW50SW5mbykpOwog
Ci0gICAgICAgIExheW91dFJlY3QgbG9naWNhbFJlY3QgeyBMYXlvdXRVbml0KGxpbmUtPmNvbnRl
bnRMb2dpY2FsTGVmdCgpKSwgc2VsVG9wLCBMYXlvdXRVbml0KGxpbmUtPmNvbnRlbnRMb2dpY2Fs
V2lkdGgoKSksIHNlbFRvcCArIHNlbEhlaWdodCB9OworICAgICAgICBMYXlvdXRSZWN0IGxvZ2lj
YWxSZWN0IHsgTGF5b3V0VW5pdChsaW5lLT5jb250ZW50TG9naWNhbExlZnQoKSksIHNlbGVjdGlv
blRvcCwgTGF5b3V0VW5pdChsaW5lLT5jb250ZW50TG9naWNhbFdpZHRoKCkpLCBzZWxlY3Rpb25U
b3AgKyBzZWxlY3Rpb25IZWlnaHQgfTsKICAgICAgICAgbG9naWNhbFJlY3QubW92ZShpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gb2Zmc2V0RnJvbVJvb3RCbG9jayA6IG9mZnNldEZyb21Sb290
QmxvY2sudHJhbnNwb3NlZFNpemUoKSk7CiAgICAgICAgIExheW91dFJlY3QgcGh5c2ljYWxSZWN0
ID0gcm9vdEJsb2NrLmxvZ2ljYWxSZWN0VG9QaHlzaWNhbFJlY3Qocm9vdEJsb2NrUGh5c2ljYWxQ
b3NpdGlvbiwgbG9naWNhbFJlY3QpOwogICAgICAgICBpZiAoIXBhaW50SW5mbyB8fCAoaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSAmJiBwaHlzaWNhbFJlY3QueSgpIDwgcGFpbnRJbmZvLT5yZWN0
Lm1heFkoKSAmJiBwaHlzaWNhbFJlY3QubWF4WSgpID4gcGFpbnRJbmZvLT5yZWN0LnkoKSkKICAg
ICAgICAgICAgIHx8ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiBwaHlzaWNhbFJlY3Qu
eCgpIDwgcGFpbnRJbmZvLT5yZWN0Lm1heFgoKSAmJiBwaHlzaWNhbFJlY3QubWF4WCgpID4gcGFp
bnRJbmZvLT5yZWN0LngoKSkpCi0gICAgICAgICAgICByZXN1bHQudW5pdGUobGluZVNlbGVjdGlv
bkdhcChsaW5lLCBzZWxUb3AsIHNlbEhlaWdodCkpOworICAgICAgICAgICAgcmVzdWx0LnVuaXRl
KGxpbmVTZWxlY3Rpb25HYXAobGluZSwgc2VsZWN0aW9uVG9wLCBzZWxlY3Rpb25IZWlnaHQpKTsK
IAogICAgICAgICBsYXN0U2VsZWN0ZWRMaW5lID0gbGluZTsKICAgICB9CkBAIC0zMTg3LDcgKzMx
ODgsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlvbkdhcHMoUmVu
ZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiAgICAgaWYgKGxhc3RTZWxlY3RlZExp
bmUgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6RW5kICYmIHNlbGVjdGlv
blN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGgpIHsKICAgICAgICAgLy8gVXBkYXRlIG91
ciBsYXN0WSB0byBiZSB0aGUgYm90dG9tIG9mIHRoZSBsYXN0IHNlbGVjdGVkIGxpbmUuCi0gICAg
ICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20gPSBsYXN0U2VsZWN0ZWRMaW5lLT5lbmNs
b3NpbmdCb3R0b20oKTsKKyAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExp
bmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RTZWxlY3RlZExpbmUpOwogICAgICAgICBs
YXN0TG9naWNhbFRvcCA9IGJsb2NrRGlyZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJv
bVJvb3RCbG9jaykgKyBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbTsKICAgICAgICAgbGFzdExvZ2lj
YWxMZWZ0ID0gbG9naWNhbExlZnRTZWxlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsYXN0TGluZVNl
bGVjdGlvbkJvdHRvbSwgY2FjaGUpOwogICAgICAgICBsYXN0TG9naWNhbFJpZ2h0ID0gbG9naWNh
bFJpZ2h0U2VsZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20s
IGNhY2hlKTsKQEAgLTMzOTQsNyArMzM5NSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9j
a0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAg
ICAgICAgIGxhc3RMaW5lV2l0aENoaWxkcmVuID0gbGluZTsKIAogICAgICAgICAvLyBjaGVjayBp
ZiB0aGlzIHJvb3QgbGluZSBib3ggaXMgbG9jYXRlZCBhdCB0aGlzIHkgY29vcmRpbmF0ZQotICAg
ICAgICBhdXRvIHNlbGVjdGlvbkJvdHRvbSA9IGxpbmUtPmVuY2xvc2luZ0JvdHRvbSgpOworICAg
ICAgICBhdXRvIHNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20o
KmxpbmUpOwogICAgICAgICBpZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBzZWxlY3Rp
b25Cb3R0b20gfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55
KCkgPT0gc2VsZWN0aW9uQm90dG9tKSkgewogICAgICAgICAgICAgaWYgKGxpbmVzQXJlRmxpcHBl
ZCkgewogICAgICAgICAgICAgICAgIGF1dG8gbmV4dExpbmVXaXRoQ2hpbGRyZW4gPSBsaW5lLT5u
ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCAwNTNi
NDc2YWI1NDAxN2MyYjE1MDJhYmJmYTE3NDIxOTQ2ZDlmZmQwLi5iYzBhMWEyZTJjZTMxMGUyNGYz
NzYzZDEyZjkzMzhlOTU1ODhhNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXkuaCIKICNp
bmNsdWRlICJJbmxpbmVJdGVyYXRvcklubGluZUJveC5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJh
dG9yTGluZS5oIgorI2luY2x1ZGUgIkxpbmVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5o
IgpAQCAtMTA5LDcgKzExMCw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmNvbGxlY3RTZWxlY3Rpb25H
ZW9tZXRyaWVzKFZlY3RvcjxTZWxlY3Rpb25HZW9tZXRyeT4mIGdlb21ldHJpCiAgICAgICAgICAg
ICBsaW5lRXh0ZW50UmVjdC5zZXRIZWlnaHQoY29udGFpbmluZ0Jsb2NrLT5oZWlnaHQoKSk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBhdXRvIHNlbGVjdGlvbkxvZ2ljYWxSZWN0
ID0gcnVuLT5saW5lKCktPmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCk7CisgICAgICAgIGF1dG8gc2Vs
ZWN0aW9uTG9naWNhbFJlY3QgPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsUmVjdCgqcnVuLT5saW5l
KCkpOwogICAgICAgICBhdXRvIHNlbGVjdGlvblRvcCA9ICFjb250YWluaW5nQmxvY2stPnN0eWxl
KCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkxvZ2ljYWxSZWN0Lnko
KSAtIGxvZ2ljYWxUb3AoKSA6IGxvZ2ljYWxCb3R0b20oKSAtIHNlbGVjdGlvbkxvZ2ljYWxSZWN0
Lm1heFkoKTsKICAgICAgICAgaW1hZ2VSZWN0ID0gSW50UmVjdCB7IDAsICBzZWxlY3Rpb25Ub3As
IGxvZ2ljYWxXaWR0aCgpLCBzZWxlY3Rpb25Mb2dpY2FsUmVjdC5oZWlnaHQoKSB9OwogICAgICAg
ICBpc0ZpcnN0T25MaW5lID0gIXJ1bi0+cHJldmlvdXNPbkxpbmUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggMmZjNjMxNTRmYTUzYWJiNzVk
NTM4YWI4NTI4MzAwOGMzNmEyMDRhNC4uZDcyZjI0NTdlZWE0ZDA2YjI4YmNhMzBjOWJjM2Q0NDI4
NDM4YmNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKICNp
bmNsdWRlICJMZWdhY3lJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGVnYWN5Um9vdElu
bGluZUJveC5oIgorI2luY2x1ZGUgIkxpbmVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJMb2dpY2Fs
U2VsZWN0aW9uT2Zmc2V0Q2FjaGVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBSZW5kZXJMaW5lQnJl
YWs6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzKFZlY3RvcjxTZWxlY3Rpb25HZW9tZXRyeT4m
IHJlY3QKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwogCi0g
ICAgYXV0byBsaW5lU2VsZWN0aW9uUmVjdCA9IGxpbmUtPmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCk7
CisgICAgYXV0byBsaW5lU2VsZWN0aW9uUmVjdCA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxSZWN0
KCpsaW5lKTsKICAgICBMYXlvdXRSZWN0IHJlY3QgPSBJbnRSZWN0KHJ1bi0+bG9naWNhbExlZnQo
KSwgbGluZVNlbGVjdGlvblJlY3QueSgpLCAwLCBsaW5lU2VsZWN0aW9uUmVjdC5oZWlnaHQoKSk7
CiAgICAgaWYgKCFsaW5lLT5pc0hvcml6b250YWwoKSkKICAgICAgICAgcmVjdCA9IHJlY3QudHJh
bnNwb3NlZFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwCmluZGV4IGFjOTI2NjVlNWU1YmVjNWM3Y2EzNTE5Y2NmNWJlNzNkNDhjZmYzOTguLmVmOTY2
NzJmNjkwMjg2ODFlZDIyZjkyMDlkYzNmMmQzMmM3ZjgyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IklubGluZUl0ZXJhdG9yQm94LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JMaW5lLmgiCiAj
aW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCisjaW5jbHVkZSAiTGluZVNlbGVjdGlvbi5oIgog
I2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRlZEZsb3cu
aCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgpAQCAtNzIxLDcgKzcyMiw3IEBAIFZpc2libGVQ
b3NpdGlvbiBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2lu
dCYgcG9pbnQsIGNvbnN0CiAgICAgYXV0byBbdG9wLCBib3R0b21dID0gWyZdIHsKICAgICAgICAg
aWYgKGF1dG8gcnVuID0gSW5saW5lSXRlcmF0b3I6OmJveEZvcigqdGhpcykpIHsKICAgICAgICAg
ICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKGxpbmUtPmVuY2xvc2luZ1RvcEZvckhpdFRlc3RpbmcoKSwgbGluZS0+ZW5jbG9zaW5n
Qm90dG9tKCkpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGxpbmUtPmVuY2xv
c2luZ1RvcEZvckhpdFRlc3RpbmcoKSwgTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGlu
ZSkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihsb2dpY2FsVG9w
KCksIGxvZ2ljYWxCb3R0b20oKSk7CiAgICAgfSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCmluZGV4IGRjMmU0YjRlMWUxZDJkODA5YTdjM2NmNzQxZWYyYTA2MjZiMzQ1
OTIuLjc3MGViNzY0YWJlODIxNTI2YTIzMTA3OTA2ZDcwNTFkOGFhYjBlZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuaCIKICNpbmNsdWRlICJMZWdhY3lFbGxpcHNpc0JveC5oIgorI2luY2x1ZGUgIkxpbmVT
ZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ29tYmluZVRleHQuaCIKQEAgLTY3NSw3ICs2NzYsNyBAQCBWaXNp
YmxlUG9zaXRpb24gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2lu
dCYgcG9pbnQsIGNvbnN0IFJlbgogICAgICAgICBhdXRvIGxpbmUgPSBydW4tPmxpbmUoKTsKICAg
ICAgICAgTGF5b3V0VW5pdCB0b3AgPSBzdGQ6Om1pbihsaW5lLT5lbmNsb3NpbmdUb3BGb3JIaXRU
ZXN0aW5nKCksIGxpbmUtPnRvcCgpKTsKICAgICAgICAgaWYgKHBvaW50QmxvY2tEaXJlY3Rpb24g
PiB0b3AgfHwgKCFibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50QmxvY2tEaXJlY3Rpb24gPT0gdG9w
KSkgewotICAgICAgICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSBsaW5lLT5lbmNsb3NpbmdCb3R0
b20oKTsKKyAgICAgICAgICAgIGF1dG8gYm90dG9tID0gTGluZVNlbGVjdGlvbjo6bG9naWNhbEJv
dHRvbSgqbGluZSk7CiAgICAgICAgICAgICBpZiAoYXV0byBuZXh0TGluZSA9IGxpbmUtPm5leHQo
KSkKICAgICAgICAgICAgICAgICBib3R0b20gPSBzdGQ6Om1pbihib3R0b20sIG5leHRMaW5lLT50
b3AoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFp
bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCmlu
ZGV4IGYxN2ZiODVjNWZmZjAwMjA0NjZjZjgxNzhlZmI4N2M2YTYwMjAzOWIuLmU2ODc4YzI4ZDE5
NWE4MjQ3NzQ1OGJhZmJiYzgyN2JkMWFiNjA1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRCb3hQYWludGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yTGluZS5oIgogI2luY2x1ZGUg
IkxlZ2FjeUlubGluZVRleHRCb3guaCIKKyNpbmNsdWRlICJMaW5lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJS
ZW5kZXJDb21iaW5lVGV4dC5oIgpAQCAtMjg5LDggKzI5MCw4IEBAIHZvaWQgVGV4dEJveFBhaW50
ZXI6OnBhaW50QmFja2dyb3VuZCh1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0LCBjCiAgICAgLy8gTm90ZSB0aGF0IGlmIHRoZSB0ZXh0IGlzIHRydW5jYXRlZCwgd2UgbGV0
IHRoZSB0aGluZyBiZWluZyBwYWludGVkIGluIHRoZSB0cnVuY2F0aW9uCiAgICAgLy8gZHJhdyBp
dHMgb3duIGhpZ2hsaWdodC4KICAgICBhdXRvIGxpbmUgPSB0ZXh0Qm94KCkubGluZSgpOwotICAg
IGF1dG8gc2VsZWN0aW9uQm90dG9tID0gbGluZS0+ZW5jbG9zaW5nQm90dG9tKCk7Ci0gICAgYXV0
byBzZWxlY3Rpb25Ub3AgPSBsaW5lLT5lbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Js
b2NrKCk7CisgICAgYXV0byBzZWxlY3Rpb25Cb3R0b20gPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2Fs
Qm90dG9tKCpsaW5lKTsKKyAgICBhdXRvIHNlbGVjdGlvblRvcCA9IExpbmVTZWxlY3Rpb246Omxv
Z2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCpsaW5lKTsKICAgICAvLyBVc2Ugc2Ft
ZSB5IHBvc2l0aW9uaW5nIGFuZCBoZWlnaHQgYXMgZm9yIHNlbGVjdGlvbiwgc28gdGhhdCB3aGVu
IHRoZSBzZWxlY3Rpb24gYW5kIHRoaXMgc3VicmFuZ2UgYXJlIG9uCiAgICAgLy8gdGhlIHNhbWUg
d29yZCB0aGVyZSBhcmUgbm8gcGllY2VzIHN0aWNraW5nIG91dC4KICAgICBhdXRvIGRlbHRhWSA9
IExheW91dFVuaXQgeyBtX3N0eWxlLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVj
dGlvbkJvdHRvbSAtIHRleHRCb3goKS5sb2dpY2FsQm90dG9tKCkgOiB0ZXh0Qm94KCkubG9naWNh
bFRvcCgpIC0gc2VsZWN0aW9uVG9wIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454977</attachid>
            <date>2022-03-17 08:40:27 -0700</date>
            <delta_ts>2022-03-17 19:32:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237997-20220317084026.patch</filename>
            <type>text/plain</type>
            <size>26301</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhOTgyNWRiNjgyZjJi
ZmZhZTNiNmNlZDFkNDk5ZTVjYTE2YzY4ZC4uZTc0Y2JlMzE1NmFlNDA3NjliNjAxN2YxNGY1NTMz
ZGI1Nzk1NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTE3ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW50cm9kdWNlIExpbmVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzk5NworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIFVzZSBMaW5lU2VsZWN0aW9uIHRvIHJldHJpZXZlIGxpbmUgYmFzZWQg
c2VsZWN0aW9uIGluZm9ybWF0aW9uLgorICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZv
ciByZW1vdmluZyBzZWxlY3Rpb24vaGl0dGVzdGluZyByZWxhdGVkIGZ1bmN0aW9ucyBmcm9tIElu
bGluZUl0ZXJhdG9yOjpMaW5lLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbjo6YWJzb2x1dGVTZWxlY3Rpb25Cb3VuZHNGb3JM
aW5lIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JM
aW5lLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6VGV4dEJveDo6c2VsZWN0
aW9uUmVjdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20pOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNhbFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxIZWlnaHRBZGp1c3RlZEZvclByZWNl
ZGluZ0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnNlbGVjdGlvblN0
YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29tcHV0ZUNhcmV0UmVjdEZvckxpbmVQb3NpdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fwcyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRo
SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGluZUJyZWFrOjpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllcyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBv
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEJveFBhaW50ZXI6OnBhaW50QmFja2dyb3VuZCk6CisKIDIwMjItMDMtMTcg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0ludGVncmF0
aW9uXSBSZXBsYWNlIGVuY2xvc2luZ1RvcC9Cb3R0b20vaGVpZ2h0IGNhbGxzIHdpdGggTGluZTo6
ZW5jbG9zaW5nTG9naWNhbFJlY3Qgd2hlbiBhcHBsaWNhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGRjMDc0NGJkOWFhY2I1
ZDkzMTI3NjNmODE2ZTExY2FjODhjNjI3Mi4uNDQwZjg5Y2YxZjM0MmQ4ZTQ1YTY2Yzg4ZjM2NWI2
NThlOGQwZDgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjIxMiw2ICsyMjEyLDcgQEAKIAkJNkYwQ0Q2OTUyMjlFRDMyNzAw
QzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGMENENjk0MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi87
IH07CiAJCTZGMTU1MjIxMjY0NzZCNUMwMEUzNTNDNiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1h
dHRpbmdRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZGMTU1MjIwMjY0NzZCNUIwMEUzNTNDNiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRp
bmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2RjE3MjY0RjI0NzBDNjBCMDA1MThDOTYgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkYxNzI2NEUyNDcwQzYwQTAwNTE4Qzk2IC8qIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2RjFCMTAxNDI3RTJENTI0MDA3MTc4RTYgLyogTGluZVNlbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYxQjEwMTMyN0UyRDUyNDAw
NzE3OEU2IC8qIExpbmVTZWxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RjFDQzFERTIyNUY4QjQ5MDA3MjBBRDIgLyogSW5saW5lVGV4
dEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
MUNDMUREMjI1RjhCNDIwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGMUU4M0EyMjY2NTg4NEMwMDJF
OUQyOCAvKiBUYWJsZUZvcm1hdHRpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYxRTgzQTAyNjY1ODg0QzAwMkU5RDI4IC8qIFRh
YmxlRm9ybWF0dGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYxRTgzQTYyNjY1ODg4QzAwMkU5RDI4IC8qIEZvcm1hdHRp
bmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkYxRTgzQTUyNjY1ODg4QzAwMkU5RDI4IC8qIEZvcm1hdHRpbmdDb25zdHJhaW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDk1
NCw2ICsxMDk1NSw3IEBACiAJCTZGMTU1MjIwMjY0NzZCNUIwMEUzNTNDNiAvKiBUYWJsZVdyYXBw
ZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGMTcyNjRDMjQ3MEM1RjcwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjE3MjY0RTI0NzBDNjBBMDA1MThDOTYgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZVdyYXBwZXJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGMUIx
MDEzMjdFMkQ1MjQwMDcxNzhFNiAvKiBMaW5lU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExpbmVTZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkYxQ0MxREMyMjVGOEI0MTAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IElubGluZVRleHRJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElubGluZVRleHRJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGMUU4M0EwMjY2NTg4NEMwMDJFOUQyOCAvKiBUYWJsZUZvcm1hdHRpbmdDb25zdHJhaW50
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb25z
dHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE1MzUsNiArMzE1Mzcs
NyBAQAogCQkJCUU0QUJBQkRCMjM2MDg4RkQwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuaCAqLywKIAkJCQlFNDMxMkFCNTI0QjMyNjU2MDA2NzgzNDkgLyogTGF5b3V0SW50
ZWdyYXRpb25QYWdpbmF0aW9uLmNwcCAqLywKIAkJCQlFNDMxMkFCNzI0QjMyNjU2MDA2NzgzNDkg
LyogTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmggKi8sCisJCQkJNkYxQjEwMTMyN0UyRDUy
NDAwNzE3OEU2IC8qIExpbmVTZWxlY3Rpb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW50ZWdy
YXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzYxODgsNiArMzYxOTEsNyBA
QAogCQkJCUIyMjI3OTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBMaW5lYXJHcmFkaWVudEF0dHJpYnV0
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFCMzFDOTFFMTBBRTFCOEUwMDBDN0I5MiAvKiBMaW5l
Q2xhbXBWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkZFRkFCMkExODM4MERBMDAwNTE0NTM0
IC8qIExpbmVMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkYxQjEwMTQyN0UyRDUy
NDAwNzE3OEU2IC8qIExpbmVTZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZGREJDMDQ3
MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUNCQTlE
QzBCMURGNDRERjQwMDA1Njc1QyAvKiBMaW5rSGVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTQzQjI2MzFEREQxNTIwMDAxNEZBQzYgLyogTGlua0ljb24uaCBpbiBIZWFkZXJzICovLApAQCAt
Mzc5NDMsNiArMzc5NDcsNyBAQAogCQkJCTQxRUI3OTdFMjdDM0U0NUUwMDFDM0UzRSAvKiBWaWRl
b0ZyYW1lTGliV2ViUlRDLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MURFRUZCNjI3MTlCQTFBMDBD
QjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MURFRUZC
MDI3MTlCMjkwMDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE2MDQ5MzMyNzQzQjBFODAwQTg2RkEwIC8qIFZpZGVvRnJhbWVUaW1lTWV0
YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLywKQEAgLTM3OTUzLDcgKzM3OTU4LDYgQEAK
IAkJCQlDREU4M0RCMjE4M0M0NDA2MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTdCMTNFMjE0QUU3OTkw
MDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE2MDQ5MzMyNzQz
QjBFODAwQTg2RkEwIC8qIFZpZGVvRnJhbWVUaW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEQzkzOUE4MUU5QkRGQjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwREYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVBvc2l0aW9uLmNwcAppbmRleCBkMDM5MTRmYjc3NjJiZGY3YjQ4MGM1YjQ5MGFlYTAyNWVjYjJh
ZDQyLi5lOTZjMzU4Y2I1NTY0ZjlkMjY3ZTg5ZTNiZDRjZTRhMWVhNmY3ZGNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSAiSW5saW5lSXRlcmF0b3JCb3guaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxp
bmUuaCIKICNpbmNsdWRlICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKKyNpbmNsdWRlICJMaW5lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCkBAIC02NjksNyArNjcwLDcgQEAgRmxvYXRSZWN0IFZp
c2libGVQb3NpdGlvbjo6YWJzb2x1dGVTZWxlY3Rpb25Cb3VuZHNGb3JMaW5lKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwotICAgIHJl
dHVybiBsaW5lLT5jb250YWluaW5nQmxvY2soKS5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVj
dCB7IGxpbmUtPmVuY2xvc2luZ1BoeXNpY2FsUmVjdCgpIH0pLmJvdW5kaW5nQm94KCk7CisgICAg
cmV0dXJuIGxpbmUtPmNvbnRhaW5pbmdCbG9jaygpLmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRS
ZWN0IHsgTGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KCpsaW5lKSB9KS5ib3VuZGluZ0JveCgp
OwogfQogCiBpbnQgVmlzaWJsZVBvc2l0aW9uOjpsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0Rp
cmVjdGlvbk5hdmlnYXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCmluZGV4IDE1ZThiZDA1YjRjZDFj
ZGJhZDViNWI0MzhmMTdiYWU3ZTk3YWI0MGYuLmZlZDhmYzkyMzI1YWQwZDZkMzM0NzhmMGU2NzQw
MTc0NDJkODdhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9JbmxpbmVJdGVyYXRvckxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlIDx2
YXJpYW50PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExpbmVTZWxlY3Rpb247CisK
IG5hbWVzcGFjZSBJbmxpbmVJdGVyYXRvciB7CiAKIGNsYXNzIExpbmVJdGVyYXRvcjsKQEAgLTU4
LDIyICs2MSwxMiBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29u
c3Q7CiAgICAgTGF5b3V0VW5pdCBsaW5lQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbGluZUJv
eEJvdHRvbSgpIC0gbGluZUJveFRvcCgpOyB9CiAKLSAgICBMYXlvdXRVbml0IGVuY2xvc2luZ1Rv
cCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgZW5jbG9zaW5nQm90dG9tKCkgY29uc3Q7Ci0KLSAg
ICBMYXlvdXRSZWN0IGVuY2xvc2luZ0xvZ2ljYWxSZWN0KCkgY29uc3Q7Ci0gICAgTGF5b3V0UmVj
dCBlbmNsb3NpbmdQaHlzaWNhbFJlY3QoKSBjb25zdDsKLQotICAgIExheW91dFVuaXQgZW5jbG9z
aW5nVG9wRm9ySGl0VGVzdGluZygpIGNvbnN0OwotICAgIExheW91dFVuaXQgZW5jbG9zaW5nVG9w
QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0OwotICAgIExheW91dFVuaXQgZW5jbG9z
aW5nSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0OwotCi0gICAgUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIGNvbnN0OwotCiAgICAgZmxv
YXQgY29udGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxS
aWdodCgpIGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAor
ICAgIExheW91dFVuaXQgZW5jbG9zaW5nVG9wRm9ySGl0VGVzdGluZygpIGNvbnN0OworCiAgICAg
aW50IGJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUoKSBjb25zdDsKIAogICAgIGJvb2wgaXNIb3Jp
em9udGFsKCkgY29uc3Q7CkBAIC05OSw2ICs5MiwxOSBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBMaW5lSXRlcmF0b3I7CisgICAgLy8gRklYTUU6IFRoaXMgaXMg
dGVtcG9yYXJ5LgorICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlOjpMaW5lU2VsZWN0aW9uOworCisg
ICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdUb3AoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGVuY2xv
c2luZ0JvdHRvbSgpIGNvbnN0OworCisgICAgTGF5b3V0UmVjdCBlbmNsb3NpbmdMb2dpY2FsUmVj
dCgpIGNvbnN0OworICAgIExheW91dFJlY3QgZW5jbG9zaW5nUGh5c2ljYWxSZWN0KCkgY29uc3Q7
CisKKyAgICBMYXlvdXRVbml0IGVuY2xvc2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2so
KSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGVuY2xvc2luZ0hlaWdodEFkanVzdGVkRm9yUHJlY2Vk
aW5nQmxvY2soKSBjb25zdDsKKworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2Vs
ZWN0aW9uU3RhdGUoKSBjb25zdDsKIAogICAgIFBhdGhWYXJpYW50IG1fcGF0aFZhcmlhbnQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0
ZXJhdG9yVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5s
aW5lSXRlcmF0b3JUZXh0Qm94LmNwcAppbmRleCAwY2M5YjkzNjc5YTlhM2ExODUzODllZTU0ODk3
ZmEzOWJjZjRiNmUzLi41OTZiYWMyZjVkY2MxZjMxNzczNGYzM2U4YzRhODlmN2I0OGFiNDQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0
b3JUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5s
aW5lSXRlcmF0b3JUZXh0Qm94LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW5s
aW5lSXRlcmF0b3JMaW5lLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
LmgiCisjaW5jbHVkZSAiTGluZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJpbmVU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDcgKzQ2LDcgQEAgTGF5b3V0UmVj
dCBUZXh0Qm94OjpzZWxlY3Rpb25SZWN0KHVuc2lnbmVkIHJhbmdlU3RhcnQsIHVuc2lnbmVkIHJh
bmdlRW5kKSBjb25zdAogICAgIGlmIChjbGFtcGVkU3RhcnQgPj0gY2xhbXBlZEVuZCAmJiAhKHJh
bmdlU3RhcnQgPT0gcmFuZ2VFbmQgJiYgcmFuZ2VTdGFydCA+PSBzdGFydCgpICYmIHJhbmdlU3Rh
cnQgPD0gZW5kKCkpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBsaW5lU2VsZWN0
aW9uUmVjdCA9IGxpbmUoKS0+ZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsKKyAgICBhdXRvIGxpbmVT
ZWxlY3Rpb25SZWN0ID0gTGluZVNlbGVjdGlvbjo6bG9naWNhbFJlY3QoKmxpbmUoKSk7CiAgICAg
YXV0byBzZWxlY3Rpb25SZWN0ID0gTGF5b3V0UmVjdCB7IGxvZ2ljYWxMZWZ0KCksIGxpbmVTZWxl
Y3Rpb25SZWN0LnkoKSwgbG9naWNhbFdpZHRoKCksIGxpbmVTZWxlY3Rpb25SZWN0LmhlaWdodCgp
IH07CiAKICAgICBUZXh0UnVuIHRleHRSdW4gPSBjcmVhdGVUZXh0UnVuKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OWZmNzBjODgyMGEwMjc5M2Q5NWNhNjRjOWJiNDNiZmUzZmIxNTc0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJJ
bmxpbmVJdGVyYXRvckxpbmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMaW5l
U2VsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xvc2luZ1Rv
cCgpOyB9CisgICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEJvdHRvbShjb25zdCBJbmxpbmVJ
dGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5lbmNsb3NpbmdCb3R0b20oKTsgfQor
CisgICAgc3RhdGljIExheW91dFJlY3QgbG9naWNhbFJlY3QoY29uc3QgSW5saW5lSXRlcmF0b3I6
OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsgfQorICAg
IHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGlu
ZSYgbGluZSkgeyByZXR1cm4gbGluZS5lbmNsb3NpbmdQaHlzaWNhbFJlY3QoKTsgfQorCisgICAg
c3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29u
c3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuZW5jbG9zaW5nVG9w
QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpOyB9CisgICAgc3RhdGljIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29uc3QgSW5saW5lSXRlcmF0b3I6
OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuZW5jbG9zaW5nSGVpZ2h0QWRqdXN0ZWRGb3JQcmVj
ZWRpbmdCbG9jaygpOyB9CisKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0
ZSBzZWxlY3Rpb25TdGF0ZShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1
cm4gbGluZS5zZWxlY3Rpb25TdGF0ZSgpOyB9Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwCmluZGV4IDQ1NGFlNGE5OTNk
MjUzZjNkNzk3MGMzZGRiYTdhYmI0MzYzZjdhZDAuLjg5ZjkxYmYwNDRjZTUzYzczNTE2NWZjODVl
OWE3NjNkNTU1OGMxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJl
dFJlY3RDb21wdXRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0
UmVjdENvbXB1dGF0aW9uLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxpbmUuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVy
YXRvclRleHRCb3guaCIKKyNpbmNsdWRlICJMaW5lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGluZUJyZWFrLmgiCkBAIC0xMTIsNyArMTEzLDcgQEAgc3RhdGljIExheW91dFJlY3QgY29t
cHV0ZUNhcmV0UmVjdEZvckVtcHR5RWxlbWVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYg
cmUKIHN0YXRpYyBMYXlvdXRSZWN0IGNvbXB1dGVDYXJldFJlY3RGb3JMaW5lUG9zaXRpb24oY29u
c3QgSW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvciYgbGluZSwgZmxvYXQgbG9naWNhbExlZnRQ
b3NpdGlvbiwgQ2FyZXRSZWN0TW9kZSBjYXJldFJlY3RNb2RlKQogewogICAgIGF1dG8mIGNvbnRh
aW5pbmdCbG9jayA9IGxpbmUtPmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGF1dG8gbGluZVNlbGVj
dGlvblJlY3QgPSBsaW5lLT5lbmNsb3NpbmdMb2dpY2FsUmVjdCgpOworICAgIGF1dG8gbGluZVNl
bGVjdGlvblJlY3QgPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsUmVjdCgqbGluZSk7CiAKICAgICBp
bnQgaGVpZ2h0ID0gbGluZVNlbGVjdGlvblJlY3QuaGVpZ2h0KCk7CiAgICAgaW50IHRvcCA9IGxp
bmVTZWxlY3Rpb25SZWN0LnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKaW5kZXggNmE5Yzc1YjI5OGRhNjY1NjBjMmQ4ODljOTdlODUxY2UzMjhhNDBl
OS4uNDA0NmZmYjg1ZGYyYjk3MTFkMDdjZmMyMWE1NmI4NmJmZmRiYTE0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJMZWdhY3lJbmxpbmVUZXh0
Qm94LmgiCiAjaW5jbHVkZSAiTGVnYWN5TGluZUxheW91dC5oIgorI2luY2x1ZGUgIkxpbmVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ29tYmluZVRl
eHQuaCIKICNpbmNsdWRlICJSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIKQEAgLTMwNjEs
MTEgKzMwNjIsMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2lu
Z1RvcEZvclByZWNlZGluZ0Jsb2NrKExheW91dFVuaXQgdG9wKQogICAgICAgICByZXR1cm4gdG9w
OwogCiAgICAgaWYgKGF1dG8gbGFzdExpbmUgPSBJbmxpbmVJdGVyYXRvcjo6bGFzdExpbmVGb3Io
KmJsb2NrQmVmb3JlKSkgewotICAgICAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIGxh
c3RMaW5lU2VsZWN0aW9uU3RhdGUgPSBsYXN0TGluZS0+c2VsZWN0aW9uU3RhdGUoKTsKKyAgICAg
ICAgYXV0byBsYXN0TGluZVNlbGVjdGlvblN0YXRlID0gTGluZVNlbGVjdGlvbjo6c2VsZWN0aW9u
U3RhdGUoKmxhc3RMaW5lKTsKICAgICAgICAgaWYgKGxhc3RMaW5lU2VsZWN0aW9uU3RhdGUgIT0g
UmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6SW5zaWRlICYmIGxhc3RMaW5lU2VsZWN0aW9u
U3RhdGUgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6U3RhcnQpCiAgICAgICAgICAg
ICByZXR1cm4gdG9wOwogCi0gICAgICAgIExheW91dFVuaXQgbGFzdExpbmVTZWxlY3Rpb25Cb3R0
b20gPSBsYXN0TGluZS0+ZW5jbG9zaW5nQm90dG9tKCkgKyBvZmZzZXRUb0Jsb2NrQmVmb3JlLmhl
aWdodCgpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tID0gTGluZVNlbGVj
dGlvbjo6bG9naWNhbEJvdHRvbSgqbGFzdExpbmUpICsgb2Zmc2V0VG9CbG9ja0JlZm9yZS5oZWln
aHQoKTsKICAgICAgICAgdG9wID0gc3RkOjptYXgodG9wLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRv
bSk7CiAgICAgfQogICAgIHJldHVybiB0b3A7CkBAIC0zMDg3LDExICszMDg4LDExIEBAIEdhcFJl
Y3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9v
dEJsb2NrLCBjb25zdCBMYXlvCiAgICAgfQogCiAgICAgYXV0byBoYXNTZWxlY3RlZENoaWxkcmVu
ID0gWyZdKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3ImIGxpbmUpIHsKLSAgICAg
ICAgcmV0dXJuIGxpbmUtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGln
aHRTdGF0ZTo6Tm9uZTsKKyAgICAgICAgcmV0dXJuIExpbmVTZWxlY3Rpb246OnNlbGVjdGlvblN0
YXRlKCpsaW5lKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOwogICAgIH07
CiAKICAgICBhdXRvIGxpbmVTZWxlY3Rpb25HYXAgPSBbJl0oY29uc3QgSW5saW5lSXRlcmF0b3I6
OkxpbmVJdGVyYXRvciYgbGluZSwgTGF5b3V0VW5pdCBzZWxUb3AsIExheW91dFVuaXQgc2VsSGVp
Z2h0KSAtPiBHYXBSZWN0cyB7Ci0gICAgICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUg
bGluZVN0YXRlID0gbGluZS0+c2VsZWN0aW9uU3RhdGUoKTsKKyAgICAgICAgYXV0byBsaW5lU3Rh
dGUgPSBMaW5lU2VsZWN0aW9uOjpzZWxlY3Rpb25TdGF0ZSgqbGluZSk7CiAKICAgICAgICAgYm9v
bCBsZWZ0R2FwLCByaWdodEdhcDsKICAgICAgICAgZ2V0U2VsZWN0aW9uR2FwSW5mbyhsaW5lU3Rh
dGUsIGxlZnRHYXAsIHJpZ2h0R2FwKTsKQEAgLTMxNjQsMTkgKzMxNjUsMTkgQEAgR2FwUmVjdHMg
UmVuZGVyQmxvY2tGbG93OjppbmxpbmVTZWxlY3Rpb25HYXBzKFJlbmRlckJsb2NrJiByb290Qmxv
Y2ssIGNvbnN0IExheW8KIAogICAgIC8vIE5vdyBwYWludCB0aGUgZ2FwcyBmb3IgdGhlIGxpbmVz
LgogICAgIGZvciAoOyBsaW5lICYmIGhhc1NlbGVjdGVkQ2hpbGRyZW4obGluZSk7IGxpbmUudHJh
dmVyc2VOZXh0KCkpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBzZWxUb3AgPSAgbGluZS0+ZW5jbG9z
aW5nVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpOwotICAgICAgICBMYXlvdXRVbml0IHNl
bEhlaWdodCA9IGxpbmUtPmVuY2xvc2luZ0hlaWdodEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2so
KTsKKyAgICAgICAgYXV0byBzZWxlY3Rpb25Ub3AgPSAgTGluZVNlbGVjdGlvbjo6bG9naWNhbFRv
cEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKmxpbmUpOworICAgICAgICBhdXRvIHNlbGVjdGlv
bkhlaWdodCA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxIZWlnaHRBZGp1c3RlZEZvclByZWNlZGlu
Z0Jsb2NrKCpsaW5lKTsKIAogICAgICAgICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxl
Y3RlZExpbmUgJiYKICAgICAgICAgICAgIHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3Rh
dGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGggJiYg
IWlzUnVieUJhc2UoKSkKLSAgICAgICAgICAgIHJlc3VsdC51bml0ZUNlbnRlcihibG9ja1NlbGVj
dGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZyb21S
b290QmxvY2ssIGxhc3RMb2dpY2FsVG9wLCBsYXN0TG9naWNhbExlZnQsIGxhc3RMb2dpY2FsUmln
aHQsIHNlbFRvcCwgY2FjaGUsIHBhaW50SW5mbykpOworICAgICAgICAgICAgcmVzdWx0LnVuaXRl
Q2VudGVyKGJsb2NrU2VsZWN0aW9uR2FwKHJvb3RCbG9jaywgcm9vdEJsb2NrUGh5c2ljYWxQb3Np
dGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgbGFzdExvZ2ljYWxUb3AsIGxhc3RMb2dpY2FsTGVm
dCwgbGFzdExvZ2ljYWxSaWdodCwgc2VsZWN0aW9uVG9wLCBjYWNoZSwgcGFpbnRJbmZvKSk7CiAK
LSAgICAgICAgTGF5b3V0UmVjdCBsb2dpY2FsUmVjdCB7IExheW91dFVuaXQobGluZS0+Y29udGVu
dExvZ2ljYWxMZWZ0KCkpLCBzZWxUb3AsIExheW91dFVuaXQobGluZS0+Y29udGVudExvZ2ljYWxX
aWR0aCgpKSwgc2VsVG9wICsgc2VsSGVpZ2h0IH07CisgICAgICAgIExheW91dFJlY3QgbG9naWNh
bFJlY3QgeyBMYXlvdXRVbml0KGxpbmUtPmNvbnRlbnRMb2dpY2FsTGVmdCgpKSwgc2VsZWN0aW9u
VG9wLCBMYXlvdXRVbml0KGxpbmUtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKSksIHNlbGVjdGlvblRv
cCArIHNlbGVjdGlvbkhlaWdodCB9OwogICAgICAgICBsb2dpY2FsUmVjdC5tb3ZlKGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBvZmZzZXRGcm9tUm9vdEJsb2NrIDogb2Zmc2V0RnJvbVJvb3RC
bG9jay50cmFuc3Bvc2VkU2l6ZSgpKTsKICAgICAgICAgTGF5b3V0UmVjdCBwaHlzaWNhbFJlY3Qg
PSByb290QmxvY2subG9naWNhbFJlY3RUb1BoeXNpY2FsUmVjdChyb290QmxvY2tQaHlzaWNhbFBv
c2l0aW9uLCBsb2dpY2FsUmVjdCk7CiAgICAgICAgIGlmICghcGFpbnRJbmZvIHx8IChpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpICYmIHBoeXNpY2FsUmVjdC55KCkgPCBwYWludEluZm8tPnJlY3Qu
bWF4WSgpICYmIHBoeXNpY2FsUmVjdC5tYXhZKCkgPiBwYWludEluZm8tPnJlY3QueSgpKQogICAg
ICAgICAgICAgfHwgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHBoeXNpY2FsUmVjdC54
KCkgPCBwYWludEluZm8tPnJlY3QubWF4WCgpICYmIHBoeXNpY2FsUmVjdC5tYXhYKCkgPiBwYWlu
dEluZm8tPnJlY3QueCgpKSkKLSAgICAgICAgICAgIHJlc3VsdC51bml0ZShsaW5lU2VsZWN0aW9u
R2FwKGxpbmUsIHNlbFRvcCwgc2VsSGVpZ2h0KSk7CisgICAgICAgICAgICByZXN1bHQudW5pdGUo
bGluZVNlbGVjdGlvbkdhcChsaW5lLCBzZWxlY3Rpb25Ub3AsIHNlbGVjdGlvbkhlaWdodCkpOwog
CiAgICAgICAgIGxhc3RTZWxlY3RlZExpbmUgPSBsaW5lOwogICAgIH0KQEAgLTMxODcsNyArMzE4
OCw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2FwcyhSZW5k
ZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAobGFzdFNlbGVjdGVkTGlu
ZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQgJiYgc2VsZWN0aW9u
U3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAvLyBVcGRhdGUgb3Vy
IGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4KLSAgICAg
ICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IGxhc3RTZWxlY3RlZExpbmUtPmVuY2xv
c2luZ0JvdHRvbSgpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tID0gTGlu
ZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGFzdFNlbGVjdGVkTGluZSk7CiAgICAgICAgIGxh
c3RMb2dpY2FsVG9wID0gYmxvY2tEaXJlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9t
Um9vdEJsb2NrKSArIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tOwogICAgICAgICBsYXN0TG9naWNh
bExlZnQgPSBsb2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldChyb290QmxvY2ssIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tLCBjYWNoZSk7CiAgICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2Fs
UmlnaHRTZWxlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwg
Y2FjaGUpOwpAQCAtMzM5NCw3ICszMzk1LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2Nr
Rmxvdzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKICAg
ICAgICAgbGFzdExpbmVXaXRoQ2hpbGRyZW4gPSBsaW5lOwogCiAgICAgICAgIC8vIGNoZWNrIGlm
IHRoaXMgcm9vdCBsaW5lIGJveCBpcyBsb2NhdGVkIGF0IHRoaXMgeSBjb29yZGluYXRlCi0gICAg
ICAgIGF1dG8gc2VsZWN0aW9uQm90dG9tID0gbGluZS0+ZW5jbG9zaW5nQm90dG9tKCk7CisgICAg
ICAgIGF1dG8gc2VsZWN0aW9uQm90dG9tID0gTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgq
bGluZSk7CiAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IHNlbGVjdGlv
bkJvdHRvbSB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRlbnRzLnko
KSA9PSBzZWxlY3Rpb25Cb3R0b20pKSB7CiAgICAgICAgICAgICBpZiAobGluZXNBcmVGbGlwcGVk
KSB7CiAgICAgICAgICAgICAgICAgYXV0byBuZXh0TGluZVdpdGhDaGlsZHJlbiA9IGxpbmUtPm5l
eHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDA1M2I0
NzZhYjU0MDE3YzJiMTUwMmFiYmZhMTc0MjE5NDZkOWZmZDAuLmJjMGExYTJlMmNlMzEwZTI0ZjM3
NjNkMTJmOTMzOGU5NTU4OGE3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkltYWdlT3ZlcmxheS5oIgogI2lu
Y2x1ZGUgIklubGluZUl0ZXJhdG9ySW5saW5lQm94LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0
b3JMaW5lLmgiCisjaW5jbHVkZSAiTGluZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJDaGlsZEl0ZXJhdG9yLmgi
CkBAIC0xMDksNyArMTEwLDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVjdGlvbkdl
b21ldHJpZXMoVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiYgZ2VvbWV0cmkKICAgICAgICAgICAg
IGxpbmVFeHRlbnRSZWN0LnNldEhlaWdodChjb250YWluaW5nQmxvY2stPmhlaWdodCgpKTsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uTG9naWNhbFJlY3Qg
PSBydW4tPmxpbmUoKS0+ZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsKKyAgICAgICAgYXV0byBzZWxl
Y3Rpb25Mb2dpY2FsUmVjdCA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxSZWN0KCpydW4tPmxpbmUo
KSk7CiAgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIWNvbnRhaW5pbmdCbG9jay0+c3R5bGUo
KS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gc2VsZWN0aW9uTG9naWNhbFJlY3QueSgp
IC0gbG9naWNhbFRvcCgpIDogbG9naWNhbEJvdHRvbSgpIC0gc2VsZWN0aW9uTG9naWNhbFJlY3Qu
bWF4WSgpOwogICAgICAgICBpbWFnZVJlY3QgPSBJbnRSZWN0IHsgMCwgIHNlbGVjdGlvblRvcCwg
bG9naWNhbFdpZHRoKCksIHNlbGVjdGlvbkxvZ2ljYWxSZWN0LmhlaWdodCgpIH07CiAgICAgICAg
IGlzRmlyc3RPbkxpbmUgPSAhcnVuLT5wcmV2aW91c09uTGluZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCAyZmM2MzE1NGZhNTNhYmI3NWQ1
MzhhYjg1MjgzMDA4YzM2YTIwNGE0Li5kNzJmMjQ1N2VlYTRkMDZiMjhiY2EzMGM5YmMzZDQ0Mjg0
MzhiY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJy
ZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIklubGluZVJ1bkFuZE9mZnNldC5oIgogI2lu
Y2x1ZGUgIkxlZ2FjeUlubGluZUVsZW1lbnRCb3guaCIKICNpbmNsdWRlICJMZWdhY3lSb290SW5s
aW5lQm94LmgiCisjaW5jbHVkZSAiTGluZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2ljYWxT
ZWxlY3Rpb25PZmZzZXRDYWNoZXMuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIFJlbmRlckxpbmVCcmVh
azo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXMoVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiYg
cmVjdAogICAgICAgICByZXR1cm47CiAgICAgYXV0byBsaW5lID0gcnVuLT5saW5lKCk7CiAKLSAg
ICBhdXRvIGxpbmVTZWxlY3Rpb25SZWN0ID0gbGluZS0+ZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsK
KyAgICBhdXRvIGxpbmVTZWxlY3Rpb25SZWN0ID0gTGluZVNlbGVjdGlvbjo6bG9naWNhbFJlY3Qo
KmxpbmUpOwogICAgIExheW91dFJlY3QgcmVjdCA9IEludFJlY3QocnVuLT5sb2dpY2FsTGVmdCgp
LCBsaW5lU2VsZWN0aW9uUmVjdC55KCksIDAsIGxpbmVTZWxlY3Rpb25SZWN0LmhlaWdodCgpKTsK
ICAgICBpZiAoIWxpbmUtPmlzSG9yaXpvbnRhbCgpKQogICAgICAgICByZWN0ID0gcmVjdC50cmFu
c3Bvc2VkUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKaW5kZXggYWM5MjY2NWU1ZTViZWM1YzdjYTM1MTljY2Y1YmU3M2Q0OGNmZjM5OC4uZWY5NjY3
MmY2OTAyODY4MWVkMjJmOTIwOWRjM2YyZDMyYzdmODI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
SW5saW5lSXRlcmF0b3JCb3guaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxpbmUuaCIKICNp
bmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKKyNpbmNsdWRlICJMaW5lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJGcmFnbWVudGVkRmxvdy5o
IgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCkBAIC03MjEsNyArNzIyLDcgQEAgVmlzaWJsZVBv
c2l0aW9uIFJlbmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgY29uc3QKICAgICBhdXRvIFt0b3AsIGJvdHRvbV0gPSBbJl0gewogICAgICAgICBp
ZiAoYXV0byBydW4gPSBJbmxpbmVJdGVyYXRvcjo6Ym94Rm9yKCp0aGlzKSkgewogICAgICAgICAg
ICAgYXV0byBsaW5lID0gcnVuLT5saW5lKCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3BhaXIobGluZS0+ZW5jbG9zaW5nVG9wRm9ySGl0VGVzdGluZygpLCBsaW5lLT5lbmNsb3NpbmdC
b3R0b20oKSk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobGluZS0+ZW5jbG9z
aW5nVG9wRm9ySGl0VGVzdGluZygpLCBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5l
KSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGxvZ2ljYWxUb3Ao
KSwgbG9naWNhbEJvdHRvbSgpKTsKICAgICB9KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKaW5kZXggZGMyZTRiNGUxZTFkMmQ4MDlhN2MzY2Y3NDFlZjJhMDYyNmIzNDU5
Mi4uNzcwZWI3NjRhYmU4MjE1MjZhMjMxMDc5MDZkNzA1MWQ4YWFiMGVlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IklubGluZVJ1bkFuZE9mZnNldC5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5oIgogI2luY2x1ZGUgIkxlZ2FjeUVsbGlwc2lzQm94LmgiCisjaW5jbHVkZSAiTGluZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
ICNpbmNsdWRlICJSZW5kZXJDb21iaW5lVGV4dC5oIgpAQCAtNjc1LDcgKzY3Niw3IEBAIFZpc2li
bGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgY29uc3QgUmVuCiAgICAgICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwogICAg
ICAgICBMYXlvdXRVbml0IHRvcCA9IHN0ZDo6bWluKGxpbmUtPmVuY2xvc2luZ1RvcEZvckhpdFRl
c3RpbmcoKSwgbGluZS0+dG9wKCkpOwogICAgICAgICBpZiAocG9pbnRCbG9ja0RpcmVjdGlvbiA+
IHRvcCB8fCAoIWJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRCbG9ja0RpcmVjdGlvbiA9PSB0b3Ap
KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IGJvdHRvbSA9IGxpbmUtPmVuY2xvc2luZ0JvdHRv
bSgpOworICAgICAgICAgICAgYXV0byBib3R0b20gPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90
dG9tKCpsaW5lKTsKICAgICAgICAgICAgIGlmIChhdXRvIG5leHRMaW5lID0gbGluZS0+bmV4dCgp
KQogICAgICAgICAgICAgICAgIGJvdHRvbSA9IHN0ZDo6bWluKGJvdHRvbSwgbmV4dExpbmUtPnRv
cCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWlu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKaW5k
ZXggZjE3ZmI4NWM1ZmZmMDAyMDQ2NmNmODE3OGVmYjg3YzZhNjAyMDM5Yi4uZTY4NzhjMjhkMTk1
YTgyNDc3NDU4YmFmYmJjODI3YmQxYWI2MDU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dEJveFBhaW50ZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JMaW5lLmgiCiAjaW5jbHVkZSAi
TGVnYWN5SW5saW5lVGV4dEJveC5oIgorI2luY2x1ZGUgIkxpbmVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJl
bmRlckNvbWJpbmVUZXh0LmgiCkBAIC0yODksOCArMjkwLDggQEAgdm9pZCBUZXh0Qm94UGFpbnRl
cjo6cGFpbnRCYWNrZ3JvdW5kKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZz
ZXQsIGMKICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlIHRleHQgaXMgdHJ1bmNhdGVkLCB3ZSBsZXQg
dGhlIHRoaW5nIGJlaW5nIHBhaW50ZWQgaW4gdGhlIHRydW5jYXRpb24KICAgICAvLyBkcmF3IGl0
cyBvd24gaGlnaGxpZ2h0LgogICAgIGF1dG8gbGluZSA9IHRleHRCb3goKS5saW5lKCk7Ci0gICAg
YXV0byBzZWxlY3Rpb25Cb3R0b20gPSBsaW5lLT5lbmNsb3NpbmdCb3R0b20oKTsKLSAgICBhdXRv
IHNlbGVjdGlvblRvcCA9IGxpbmUtPmVuY2xvc2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxv
Y2soKTsKKyAgICBhdXRvIHNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxC
b3R0b20oKmxpbmUpOworICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gTGluZVNlbGVjdGlvbjo6bG9n
aWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKmxpbmUpOwogICAgIC8vIFVzZSBzYW1l
IHkgcG9zaXRpb25pbmcgYW5kIGhlaWdodCBhcyBmb3Igc2VsZWN0aW9uLCBzbyB0aGF0IHdoZW4g
dGhlIHNlbGVjdGlvbiBhbmQgdGhpcyBzdWJyYW5nZSBhcmUgb24KICAgICAvLyB0aGUgc2FtZSB3
b3JkIHRoZXJlIGFyZSBubyBwaWVjZXMgc3RpY2tpbmcgb3V0LgogICAgIGF1dG8gZGVsdGFZID0g
TGF5b3V0VW5pdCB7IG1fc3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpID8gc2VsZWN0
aW9uQm90dG9tIC0gdGV4dEJveCgpLmxvZ2ljYWxCb3R0b20oKSA6IHRleHRCb3goKS5sb2dpY2Fs
VG9wKCkgLSBzZWxlY3Rpb25Ub3AgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>