<?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>8876</bug_id>
          
          <creation_ts>2006-05-12 13:55:17 -0700</creation_ts>
          <short_desc>move most private WebDataSource methods to uninstalled header</short_desc>
          <delta_ts>2006-05-16 10:07:36 -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>WebKit API</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42132</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-05-12 13:55:17 -0700</bug_when>
    <thetext>WebDataSource has a lot of methods in an SPI header that are not used outside WebKit and shouldn&apos;t be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42133</commentid>
    <comment_count>1</comment_count>
      <attachid>8271</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-05-12 13:55:42 -0700</bug_when>
    <thetext>Created attachment 8271
SPI removal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42137</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-05-12 14:59:08 -0700</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42139</commentid>
    <comment_count>3</comment_count>
      <attachid>8271</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-05-12 15:17:28 -0700</bug_when>
    <thetext>Comment on attachment 8271
SPI removal

Brady reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42495</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-16 10:07:36 -0700</bug_when>
    <thetext>Maciej landed this 2006-05-12, r14333.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8271</attachid>
            <date>2006-05-12 13:55:42 -0700</date>
            <delta_ts>2006-05-12 15:17:28 -0700</delta_ts>
            <desc>SPI removal</desc>
            <filename>datasource-internal.patch.txt</filename>
            <type>text/plain</type>
            <size>36799</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDMyNikKKysrIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAJCTY1NDg4REEyMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMu
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEw
MDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU1
MEI3QzcwOTlFRkFFOTAwOTBENzgxIC8qIFdlYkFyY2hpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTUwQjdDNTA5OUVGQUU5MDA5MEQ3ODEgLyog
V2ViQXJjaGl2ZXIuaCAqLzsgfTsKIAkJNjU1MEI3QzgwOTlFRkFFOTAwOTBENzgxIC8qIFdlYkFy
Y2hpdmVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTUwQjdDNjA5OUVGQUU5MDA5MEQ3ODEgLyogV2ViQXJjaGl2ZXIubSAqLzsgfTsKKwkJNjU4QTQw
OTYwQTE0ODUzQjAwNUU2OTg3IC8qIFdlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU4QTQwOTUwQTE0ODUzQjAwNUU2
OTg3IC8qIFdlYkRhdGFTb3VyY2VJbnRlcm5hbC5oICovOyB9OwogCQk2NUEwMDA2OTA4NTI3RDFB
MDA1NjIwRkEgLyogbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmEgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUEwMDA2ODA4NTI3RDFBMDA1NjIwRkEg
LyogbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmEgKi87IH07CiAJCTY1QzdGNDJDMDk3OURFNjQw
MDIyRTQ1MyAvKiBXZWJQYWdlQnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUM3RjQyQTA5NzlERTY0MDAyMkU0NTMgLyogV2ViUGFnZUJyaWRn
ZS5oICovOyB9OwogCQk2NUM3RjQyRDA5NzlERTY0MDAyMkU0NTMgLyogV2ViUGFnZUJyaWRnZS5t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVDN0Y0MkIw
OTc5REU2NDAwMjJFNDUzIC8qIFdlYlBhZ2VCcmlkZ2UubSAqLzsgfTsKQEAgLTQyMiw2ICs0MjMs
NyBAQAogCQk2NTc4RjVERTA0NUY4MTc0MDAwMDAxMjggLyogV2ViRG93bmxvYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRG93bmxvYWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTY1NzhGNURGMDQ1RjgxNzQwMDAwMDEyOCAvKiBXZWJEb3dubG9hZC5tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBXZWJEb3dubG9hZC5t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJNjU4MzZGNUUwN0VFNDI1OTAwNjgyRjk1IC8qIFdlYlBsdWdpbkNvbnRhaW5lclByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UGx1Z2luQ29udGFpbmVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJNjU4QTQwOTUwQTE0ODUzQjAwNUU2OTg3IC8qIFdl
YkRhdGFTb3VyY2VJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGF0YVNvdXJjZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1
QTAwMDY4MDg1MjdEMUEwMDU2MjBGQSAvKiBsaWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuYSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7
IHBhdGggPSBsaWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNjVBN0Q0NEEwNTY4QUIyNjAwRTcwRUY2IC8qIFdlYlVJRGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlVJRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk2NUM3RjQyQTA5NzlERTY0MDAyMkU0NTMg
LyogV2ViUGFnZUJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UGFnZUJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk2LDYgKzg5OCw3
IEBACiAJCTlDN0NBQkJCMDE5MEEzN0MwRUNBMTZFQSAvKiBXZWJWaWV3ICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2NThBNDA5NTBBMTQ4NTNCMDA1RTY5
ODcgLyogV2ViRGF0YVNvdXJjZUludGVybmFsLmggKi8sCiAJCQkJNjUwRjc0RTIwOUU0ODhGNzAw
MjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3RhdGUuaCAqLywKIAkJCQk2NTBGNzRFMzA5RTQ4OEY3
MDAyMDExOEEgLyogV2ViVW5hcmNoaXZpbmdTdGF0ZS5tICovLAogCQkJCTY1NTBCN0M1MDk5RUZB
RTkwMDkwRDc4MSAvKiBXZWJBcmNoaXZlci5oICovLApAQCAtMTI4MCw2ICsxMjgzLDcgQEAKIAkJ
CQk2NTBGNzRFNDA5RTQ4OEY3MDAyMDExOEEgLyogV2ViVW5hcmNoaXZpbmdTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNFQjE3OEYwOUY4OEQ1MTAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjI1Rjg4MTUwOUY5N0U4QTAwNDIzQTQwIC8qIFdl
YlBsdWdpblByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTY1OEE0MDk2MEExNDg1M0IwMDVF
Njk4NyAvKiBXZWJEYXRhU291cmNlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogUGx1
Z2lucy9XZWJQbHVnaW5Eb2N1bWVudFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQbHVnaW5zL1dlYlBs
dWdpbkRvY3VtZW50Vmlldy5tCShyZXZpc2lvbiAxNDMyNikKKysrIFBsdWdpbnMvV2ViUGx1Z2lu
RG9jdW1lbnRWaWV3Lm0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQg
PFdlYktpdC9XZWJQbHVnaW5Eb2N1bWVudFZpZXcuaD4KIAogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZUludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVZpZXcuaD4KICNpbXBvcnQg
PFdlYktpdC9XZWJLaXRFcnJvcnNQcml2YXRlLmg+CkluZGV4OiBQbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luU3RyZWFtLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0
cmVhbS5tCShyZXZpc2lvbiAxNDMyNikKKysrIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQv
V2ViTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVCcmlkZ2UuaD4KLSNpbXBvcnQg
PFdlYktpdC9XZWJEYXRhU291cmNlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFT
b3VyY2VJbnRlcm5hbC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdEVycm9yc1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XZWJLaXRMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTmV0
c2NhcGVQbHVnaW5FbWJlZGRlZFZpZXcuaD4KSW5kZXg6IFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5SZXByZXNlbnRhdGlvbi5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5SZXByZXNlbnRhdGlvbi5tCShyZXZpc2lvbiAxNDMyNikKKysrIFBsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5SZXByZXNlbnRhdGlvbi5tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5SZXByZXNlbnRhdGlvbi5oPgogCiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Bc3NlcnRpb25zLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2Vi
RGF0YVNvdXJjZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291cmNlSW50ZXJu
YWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkZy
YW1lVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5ldHNjYXBlUGx1Z2luRG9jdW1lbnRWaWV3
Lmg+CkluZGV4OiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQ
bHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubQkocmV2aXNpb24gMTQzMjYpCisrKyBQbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubQkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dlYlBsdWdpblZpZXdGYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJLaXQv
V2ViVmlld0ludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVUlEZWxlZ2F0ZS5oPgotI2lt
cG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2Vi
RGF0YVNvdXJjZUludGVybmFsLmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUZyYW1lQnJp
ZGdlLmg+CiAKSW5kZXg6IFdlYkNvcmVTdXBwb3J0L1dlYlN1YnJlc291cmNlTG9hZGVyLm0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubQkocmV2aXNp
b24gMTQzMjYpCisrKyBXZWJDb3JlU3VwcG9ydC9XZWJTdWJyZXNvdXJjZUxvYWRlci5tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZUJyaWRnZS5oPgotI2ltcG9ydCA8
V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNv
dXJjZUludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRm9ybURhdGFTdHJlYW0uaD4KICNp
bXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdEVycm9yc1By
aXZhdGUuaD4KSW5kZXg6IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkocmV2aXNpb24gMTQzMjYpCisr
KyBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBACiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbXBvcnQgIldlYkJh
c2VOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgIldlYkJhc2VQbHVnaW5QYWNrYWdlLmgi
Ci0jaW1wb3J0ICJXZWJEYXRhU291cmNlUHJpdmF0ZS5oIgorI2ltcG9ydCAiV2ViRGF0YVNvdXJj
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJEZWZhdWx0VUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAi
V2ViRWRpdGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGb3JtRGF0YVN0cmVhbS5oIgpAQCAt
NDYxLDcgKzQ2MSw2IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UK
ICAgICBXZWJEYXRhU291cmNlICpkYXRhU291cmNlID0gW19mcmFtZSBkYXRhU291cmNlXTsKIAog
ICAgIEFTU0VSVChkYXRhU291cmNlICE9IG5pbCk7Ci0gICAgQVNTRVJUKFtkYXRhU291cmNlIF9p
c0NvbW1pdHRlZF0pOwogCiAgICAgcmV0dXJuIGRhdGFTb3VyY2U7CiB9CkluZGV4OiBDaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDMzMikKKysrIENoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDA2LTA1LTEyICBNYWNpZWogU3Rh
Y2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisgICAgICAgIAorICAgICAgICAtIG1vdmUgbW9zdCBwcml2YXRlIFdlYkRhdGFTb3Vy
Y2UgbWV0aG9kcyB0byB1bmluc3RhbGxlZCBoZWFkZXIKKyAgICAgICAgCisgICAgICAgIEkgcHV0
IHRoZSBkZWNsYXJhdGlvbnMgZm9yIHRoZSBvbmVzIG9ubHkgdXNlZCBpbiBXZWJLaXQgaW4gV2Vi
RGF0YVNvdXJjZUludGVybmFsLmgKKyAgICAgICAgYW5kIHJlbW92ZWQgdHdvIGVudGlyZXkgdW51
c2VkIG9uZXMuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUmVwcmVzZW50
YXRpb24ubToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm06Cisg
ICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm06CisgICAgICAgICogUGx1Z2lu
cy9XZWJQbHVnaW5Eb2N1bWVudFZpZXcubToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUJyaWRnZS5tOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBkYXRhU291cmNlXSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkRhdGFTb3VyY2UubToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfdXBkYXRlSWNvbkRhdGFi
YXNlV2l0aFVSTDpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfbG9hZEljb25dKToKKyAg
ICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfY2xlYXJFcnJvcnNdKToKKyAgICAgICAgKC1bV2ViRGF0
YVNvdXJjZSBfY29tbWl0TG9hZFdpdGhEYXRhOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IF9kb2VzUHJvZ3Jlc3NpdmVMb2FkV2l0aE1JTUVUeXBlOl0pOgorICAgICAgICAoLVtXZWJEYXRh
U291cmNlIF9hZGRSZXNwb25zZTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2VJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2VQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
SFRNTFJlcHJlc2VudGF0aW9uLm06CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViSW1hZ2VWaWV3Lm06CisgICAgICAgICogV2ViVmlldy9XZWJM
b2FkZXIubToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1haW5SZXNvdXJjZUxvYWRlci5tOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVuZGVy
Tm9kZS5tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tOgorCiAyMDA2LTA1LTEyICBUaW0g
T21lcm5pY2sgIDx0aW1vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1
bGxpdmFuLgpJbmRleDogV2ViVmlldy9XZWJEYXRhU291cmNlUHJpdmF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYlZpZXcvV2ViRGF0YVNvdXJjZVByaXZhdGUuaAkocmV2aXNpb24gMTQzMjYpCisrKyBX
ZWJWaWV3L1dlYkRhdGFTb3VyY2VQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE5MCAr
MjgsMTIgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2UuaD4KIAotQGNsYXNzIERP
TURvY3VtZW50RnJhZ21lbnQ7Ci1AY2xhc3MgRE9NRWxlbWVudDsKLUBjbGFzcyBET01SYW5nZTsK
LUBjbGFzcyBOU0Vycm9yOwotQGNsYXNzIE5TVVJMUmVxdWVzdDsKLUBjbGFzcyBOU1VSTFJlc3Bv
bnNlOwotQGNsYXNzIFdlYkFyY2hpdmU7Ci1AY2xhc3MgV2ViTG9hZGVyOwotQGNsYXNzIFdlYkZy
YW1lQnJpZGdlOwotQGNsYXNzIFdlYkhpc3RvcnlJdGVtOwotQGNsYXNzIFdlYkljb25Mb2FkZXI7
Ci1AY2xhc3MgV2ViTWFpblJlc291cmNlTG9hZGVyOwotQGNsYXNzIFdlYlJlc291cmNlOwotQGNs
YXNzIFdlYlVuYXJjaGl2aW5nU3RhdGU7Ci1AY2xhc3MgV2ViVmlldzsKLQotQHByb3RvY29sIFdl
YkRvY3VtZW50UmVwcmVzZW50YXRpb247Ci0KLUBpbnRlcmZhY2UgV2ViRGF0YVNvdXJjZVByaXZh
dGUgOiBOU09iamVjdAotewotQHB1YmxpYwotICAgIE5TRGF0YSAqcmVzb3VyY2VEYXRhOwotCi0g
ICAgaWQgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+IHJlcHJlc2VudGF0aW9uOwotICAgIAot
ICAgIC8vIEEgcmVmZXJlbmNlIHRvIGFjdHVhbCByZXF1ZXN0IHVzZWQgdG8gY3JlYXRlIHRoZSBk
YXRhIHNvdXJjZS4KLSAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgdGhlIHJlc291
cmNlTG9hZERlbGVnYXRlJ3MKLSAgICAvLyBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Q6ZnJv
bURhdGFzb3VyY2U6IG1ldGhvZC4gIEl0IGlzCi0gICAgLy8gbm90IGd1YXJhbnRlZWQgdG8gcmVt
YWluIHVuY2hhbmdlZCwgYXMgcmVxdWVzdHMgYXJlIG11dGFibGUuCi0gICAgTlNVUkxSZXF1ZXN0
ICpvcmlnaW5hbFJlcXVlc3Q7Ci0gICAgCi0gICAgLy8gQSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBy
ZXF1ZXN0IHVzZWQgdG8gY3JlYXRlIHRoZSBkYXRhIHNvdXJjZS4KLSAgICAvLyBXZSBoYXZlIHRv
IGNvcHkgdGhlIHJlcXVlc3QgYmVjYXVzZSByZXF1ZXN0cyBhcmUgbXV0YWJsZS4KLSAgICBOU1VS
TFJlcXVlc3QgKm9yaWdpbmFsUmVxdWVzdENvcHk7Ci0gICAgCi0gICAgLy8gVGhlICd3b3JraW5n
JyByZXF1ZXN0IGZvciB0aGlzIGRhdGFzb3VyY2UuICBJdCBtYXkgYmUgbXV0YXRlZAotICAgIC8v
IHNldmVyYWwgdGltZXMgZnJvbSB0aGUgb3JpZ2luYWwgcmVxdWVzdCB0byBpbmNsdWRlIGFkZGl0
aW9uYWwKLSAgICAvLyBoZWFkZXJzLCBjb29raWUgaW5mb3JtYXRpb24sIGNhbm9uaWNhbGl6YXRp
b24gYW5kIHJlZGlyZWN0cy4KLSAgICBOU011dGFibGVVUkxSZXF1ZXN0ICpyZXF1ZXN0OwotICAg
IAotICAgIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlOwotCi0gICAgLy8gQ2xpZW50IGZvciBtYWlu
IHJlc291cmNlLgotICAgIFdlYk1haW5SZXNvdXJjZUxvYWRlciAqbWFpblJlc291cmNlTG9hZGVy
OwotICAgIAotICAgIC8vIENsaWVudHMgZm9yIG90aGVyIHJlc291cmNlcy4KLSAgICBOU011dGFi
bGVBcnJheSAqc3VicmVzb3VyY2VMb2FkZXJzOwotICAgIE5TTXV0YWJsZUFycmF5ICpwbHVnSW5T
dHJlYW1Mb2FkZXJzOwotCi0gICAgLy8gVGhlIHRpbWUgd2hlbiB0aGUgZGF0YSBzb3VyY2Ugd2Fz
IHRvbGQgdG8gc3RhcnQgbG9hZGluZy4KLSAgICBkb3VibGUgbG9hZGluZ1N0YXJ0ZWRUaW1lOwot
ICAgIAotICAgIEJPT0wgcHJpbWFyeUxvYWRDb21wbGV0ZTsKLQotICAgIEJPT0wgc3RvcHBpbmc7
Ci0KLSAgICBCT09MIGlzQ2xpZW50UmVkaXJlY3Q7Ci0KLSAgICBOU1N0cmluZyAqcGFnZVRpdGxl
OwotICAgIAotICAgIE5TU3RyaW5nICplbmNvZGluZzsKLSAgICBOU1N0cmluZyAqb3ZlcnJpZGVF
bmNvZGluZzsKLQotICAgIC8vIEVycm9yIGFzc29jaWF0ZWQgd2l0aCBtYWluIGRvY3VtZW50Lgot
ICAgIE5TRXJyb3IgKm1haW5Eb2N1bWVudEVycm9yOwotCi0gICAgQk9PTCBsb2FkaW5nOyAvLyBz
ZWxmIGFuZCB3ZWJWaWV3IGFyZSByZXRhaW5lZCB3aGlsZSBsb2FkaW5nCi0KLSAgICBCT09MIGdv
dEZpcnN0Qnl0ZTsgLy8gZ290IGZpcnN0IGJ5dGUKLSAgICBCT09MIGNvbW1pdHRlZDsgLy8gVGhp
cyBkYXRhIHNvdXJjZSBoYXMgYmVlbiBjb21taXR0ZWQKLSAgICBCT09MIHJlcHJlc2VudGF0aW9u
RmluaXNoZWRMb2FkaW5nOwotCi0gICAgQk9PTCBkZWZlcnNDYWxsYmFja3M7Ci0KLSAgICBOU1VS
TCAqaWNvblVSTDsKLSAgICBXZWJJY29uTG9hZGVyICppY29uTG9hZGVyOwotCi0gICAgLy8gVGhl
IGFjdGlvbiB0aGF0IHRyaWdnZXJlZCBsb2FkaW5nIG9mIHRoaXMgZGF0YSBzb3VyY2UgLQotICAg
IC8vIHdlIGtlZXAgdGhpcyBhcm91bmQgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSB2YXJpb3VzIHBv
bGljeQotICAgIC8vIGhhbmRsZXJzLgotICAgIE5TRGljdGlvbmFyeSAqdHJpZ2dlcmluZ0FjdGlv
bjsKLQotICAgIC8vIFRoZSBsYXN0IHJlcXVlc3QgdGhhdCB3ZSBjaGVja2VkIGNsaWNrIHBvbGlj
eSBmb3IgLSBrZXB0IGFyb3VuZAotICAgIC8vIHNvIHdlIGNhbiBhdm9pZCBhc2tpbmcgYWdhaW4g
bmVlZGxlc3NseS4KLSAgICBOU1VSTFJlcXVlc3QgKmxhc3RDaGVja2VkUmVxdWVzdDsKLQotICAg
IC8vIFdlIHJldGFpbiBhbGwgdGhlIHJlY2VpdmVkIHJlc3BvbnNlcyBzbyB3ZSBjYW4gcGxheSBi
YWNrIHRoZQotICAgIC8vIFdlYlJlc291cmNlTG9hZERlbGVnYXRlIG1lc3NhZ2VzIGlmIHRoZSBp
dGVtIGlzIGxvYWRlZCBmcm9tIHRoZQotICAgIC8vIHBhZ2UgY2FjaGUuCi0gICAgTlNNdXRhYmxl
QXJyYXkgKnJlc3BvbnNlczsKLSAgICBCT09MIHN0b3BSZWNvcmRpbmdSZXNwb25zZXM7Ci0KLSAg
ICBCT09MIGxvYWRpbmdGcm9tUGFnZUNhY2hlOwotCi0gICAgV2ViRnJhbWUgKndlYkZyYW1lOwot
ICAgIAotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnN1YnJlc291cmNlczsKLQotICAgIFdlYlVu
YXJjaGl2aW5nU3RhdGUgKnVuYXJjaGl2aW5nU3RhdGU7Ci0gICAgCi0gICAgQk9PTCBzdXBwb3J0
c011bHRpcGFydENvbnRlbnQ7Ci19Ci0KLUBlbmQKLQogQGludGVyZmFjZSBXZWJEYXRhU291cmNl
IChXZWJQcml2YXRlKQogCi0vLyBPdGhlciBwcml2YXRlIG1ldGhvZHMKIC0gKE5TRmlsZVdyYXBw
ZXIgKilfZmlsZVdyYXBwZXJGb3JVUkw6KE5TVVJMICopVVJMOwotLSAodm9pZClfYWRkVG9VbmFy
Y2hpdmVTdGF0ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmU7CiAKLS0gKFdlYkFyY2hpdmUgKilfcG9w
U3ViZnJhbWVBcmNoaXZlV2l0aE5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lOwotCi0tIChET01F
bGVtZW50ICopX2ltYWdlRWxlbWVudFdpdGhJbWFnZVJlc291cmNlOihXZWJSZXNvdXJjZSAqKXJl
c291cmNlOwotLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aElt
YWdlUmVzb3VyY2U6KFdlYlJlc291cmNlICopcmVzb3VyY2U7Ci0tIChET01Eb2N1bWVudEZyYWdt
ZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmU7
Ci0tICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aEFyY2hpdmU6KFdlYkFyY2hpdmUgKilhcmNo
aXZlIHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50OworLy8gTmVlZCB0
byBhZGQgdGhpcyBiYWNrLCBNYWlsIHVzZXMgaXQKKy8vIC0gKHZvaWQpX2FkZFN1YmZyYW1lQXJj
aGl2ZXM6KE5TQXJyYXkgKikgYXJjaGl2ZXM7CiAKIC0gKE5TRXJyb3IgKilfbWFpbkRvY3VtZW50
RXJyb3I7Ci0tIChOU1N0cmluZyAqKV9zdHJpbmdXaXRoRGF0YTooTlNEYXRhICopZGF0YTsKLS0g
KHZvaWQpX3N0YXJ0TG9hZGluZzsKLS0gKHZvaWQpX3N0b3BMb2FkaW5nOwotLSAoTlNVUkwgKilf
VVJMOwotLSAoTlNVUkwgKilfVVJMRm9ySGlzdG9yeTsKLS0gKFdlYlZpZXcgKilfd2ViVmlldzsK
LS0gKHZvaWQpX3NldFJlcHJlc2VudGF0aW9uOihpZDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9u
PilyZXByZXNlbnRhdGlvbjsKLS0gKHZvaWQpX2xvYWRGcm9tUGFnZUNhY2hlOihOU0RpY3Rpb25h
cnkgKilwYWdlQ2FjaGU7Ci0tIChCT09MKV9pc1N0b3BwaW5nOwotLSAodm9pZClfYWRkU3VicmVz
b3VyY2VMb2FkZXI6KFdlYkxvYWRlciAqKWxvYWRlcjsKLS0gKHZvaWQpX3JlbW92ZVN1YnJlc291
cmNlTG9hZGVyOihXZWJMb2FkZXIgKilsb2FkZXI7Ci0tICh2b2lkKV9hZGRQbHVnSW5TdHJlYW1M
b2FkZXI6KFdlYkxvYWRlciAqKWxvYWRlcjsKLS0gKHZvaWQpX3JlbW92ZVBsdWdJblN0cmVhbUxv
YWRlcjooV2ViTG9hZGVyICopbG9hZGVyOwotLSAodm9pZClfc2V0UHJpbWFyeUxvYWRDb21wbGV0
ZTooQk9PTClmbGFnOwotLSAoZG91YmxlKV9sb2FkaW5nU3RhcnRlZFRpbWU7Ci0tICh2b2lkKV9z
ZXRUaXRsZTooTlNTdHJpbmcgKil0aXRsZTsKLS0gKHZvaWQpX3NldFVSTDooTlNVUkwgKilVUkw7
Ci0tICh2b2lkKV9fYWRvcHRSZXF1ZXN0OihOU011dGFibGVVUkxSZXF1ZXN0ICopcmVxdWVzdDsK
LS0gKHZvaWQpX3NldFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7Ci0tICh2b2lkKV9z
ZXRSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlOwotLSAodm9pZClfY2xlYXJFcnJv
cnM7Ci0tICh2b2lkKV9zZXRNYWluRG9jdW1lbnRFcnJvcjooTlNFcnJvciAqKWVycm9yOwotKyAo
TlNNdXRhYmxlRGljdGlvbmFyeSAqKV9yZXBUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Npb246KEJP
T0wpYWxsb3dJbWFnZVR5cGVPbWlzc2lvbjsKLSsgKENsYXNzKV9yZXByZXNlbnRhdGlvbkNsYXNz
Rm9yTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGU7Ci0tICh2b2lkKV9sb2FkSWNvbjsKLS0g
KHZvaWQpX3NldEljb25VUkw6KE5TVVJMICopVVJMOwotLSAodm9pZClfc2V0SWNvblVSTDooTlNV
UkwgKilVUkwgd2l0aFR5cGU6KE5TU3RyaW5nICopaWNvblR5cGU7Ci0tICh2b2lkKV9zZXRPdmVy
cmlkZUVuY29kaW5nOihOU1N0cmluZyAqKW92ZXJyaWRlRW5jb2Rpbmc7Ci0tIChOU1N0cmluZyAq
KV9vdmVycmlkZUVuY29kaW5nOwotLSAodm9pZClfc2V0SXNDbGllbnRSZWRpcmVjdDooQk9PTClm
bGFnOwotLSAoQk9PTClfaXNDbGllbnRSZWRpcmVjdDsKLQotLy8gQ29udmVuaWVuY2UgaW50ZXJm
YWNlIGZvciBnZXR0aW5nIGhlcmUgZnJvbSBhbiBXZWJEYXRhU291cmNlLgotLy8gVGhpcyByZXR1
cm5zIG5pbCBpZiB0aGUgcmVwcmVzZW50YXRpb24gaXMgbm90IGFuIFdlYkhUTUxSZXByZXNlbnRh
dGlvbi4KLS0gKFdlYkZyYW1lQnJpZGdlICopX2JyaWRnZTsKLQotLSAoQk9PTClfaXNDb21taXR0
ZWQ7Ci0tICh2b2lkKV9jb21taXRJZlJlYWR5OwotLSAodm9pZClfbWFrZVJlcHJlc2VudGF0aW9u
OwotLSAodm9pZClfcmVjZWl2ZWREYXRhOihOU0RhdGEgKilkYXRhOwotLSAodm9pZClfZmluaXNo
ZWRMb2FkaW5nOwotLSAodm9pZClfcmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcjooTlNFcnJvciAq
KWVycm9yIGNvbXBsZXRlOihCT09MKWlzQ29tcGxldGU7Ci0tICh2b2lkKV9kZWZlcnNDYWxsYmFj
a3NDaGFuZ2VkOwotLSAoTlNVUkxSZXF1ZXN0ICopX29yaWdpbmFsUmVxdWVzdDsKLS0gKE5TRGlj
dGlvbmFyeSAqKV90cmlnZ2VyaW5nQWN0aW9uOwotLSAodm9pZClfc2V0VHJpZ2dlcmluZ0FjdGlv
bjooTlNEaWN0aW9uYXJ5ICopYWN0aW9uOwotLSAoTlNVUkxSZXF1ZXN0ICopX2xhc3RDaGVja2Vk
UmVxdWVzdDsKLS0gKHZvaWQpX3NldExhc3RDaGVja2VkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICop
cmVxdWVzdDsKLS0gKEJPT0wpX2xvYWRpbmdGcm9tUGFnZUNhY2hlOwotCi0tICh2b2lkKV9hZGRS
ZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXI7Ci0tIChOU0FycmF5ICopX3Jlc3BvbnNlczsKLS0g
KHZvaWQpX3N0b3BSZWNvcmRpbmdSZXNwb25zZXM7Ci0KLS0gKHZvaWQpX3N0b3BMb2FkaW5nV2l0
aEVycm9yOihOU0Vycm9yICopZXJyb3I7Ci0KLS0gKHZvaWQpX3NldFdlYkZyYW1lOihXZWJGcmFt
ZSAqKWZyYW1lOwotCi0tIChCT09MKV9pc0RvY3VtZW50SFRNTDsKLS0gKE5TU3RyaW5nICopX3Rp
dGxlOwotCi0tICh2b2lkKV9zZXR1cEZvclJlcGxhY2VCeU1JTUVUeXBlOihOU1N0cmluZyAqKW1p
bWVUeXBlOwotLSAoQk9PTClfZG9lc1Byb2dyZXNzaXZlTG9hZFdpdGhNSU1FVHlwZTooTlNTdHJp
bmcgKilNSU1FVHlwZTsKLS0gKHZvaWQpX2NvbW1pdExvYWRXaXRoRGF0YTooTlNEYXRhICopZGF0
YTsKLQotLSAoV2ViUmVzb3VyY2UgKilfYXJjaGl2ZWRTdWJyZXNvdXJjZUZvclVSTDooTlNVUkwg
KilVUkw7Ci0KIEBlbmQKSW5kZXg6IFdlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaAkocmV2aXNpb24gMCkK
KysrIFdlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291
cmNlUHJpdmF0ZS5oPgorCitAY2xhc3MgTlNVUkw7CisKK0BjbGFzcyBET01Eb2N1bWVudEZyYWdt
ZW50OworQGNsYXNzIERPTUVsZW1lbnQ7CitAY2xhc3MgRE9NUmFuZ2U7CitAY2xhc3MgTlNFcnJv
cjsKK0BjbGFzcyBOU1VSTFJlcXVlc3Q7CitAY2xhc3MgTlNVUkxSZXNwb25zZTsKK0BjbGFzcyBX
ZWJBcmNoaXZlOworQGNsYXNzIFdlYkxvYWRlcjsKK0BjbGFzcyBXZWJGcmFtZUJyaWRnZTsKK0Bj
bGFzcyBXZWJIaXN0b3J5SXRlbTsKK0BjbGFzcyBXZWJJY29uTG9hZGVyOworQGNsYXNzIFdlYk1h
aW5SZXNvdXJjZUxvYWRlcjsKK0BjbGFzcyBXZWJSZXNvdXJjZTsKK0BjbGFzcyBXZWJVbmFyY2hp
dmluZ1N0YXRlOworQGNsYXNzIFdlYlZpZXc7CitAcHJvdG9jb2wgV2ViRG9jdW1lbnRSZXByZXNl
bnRhdGlvbjsKKworQGludGVyZmFjZSBXZWJEYXRhU291cmNlIChXZWJJbnRlcm5hbCkKKy0gKHZv
aWQpX2FkZFBsdWdJblN0cmVhbUxvYWRlcjooV2ViTG9hZGVyICopbG9hZGVyOworLSAodm9pZClf
cmVtb3ZlUGx1Z0luU3RyZWFtTG9hZGVyOihXZWJMb2FkZXIgKilsb2FkZXI7CistICh2b2lkKV9z
dG9wTG9hZGluZ1dpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOworLSAodm9pZClfc2V0VGl0bGU6
KE5TU3RyaW5nICopdGl0bGU7CistIChOU1N0cmluZyAqKV9vdmVycmlkZUVuY29kaW5nOworLSAo
dm9pZClfc2V0SWNvblVSTDooTlNVUkwgKilVUkw7CistICh2b2lkKV9zZXRUaXRsZTooTlNTdHJp
bmcgKil0aXRsZTsKKy0gKE5TU3RyaW5nICopX292ZXJyaWRlRW5jb2Rpbmc7CistICh2b2lkKV9z
ZXRJY29uVVJMOihOU1VSTCAqKVVSTDsKKy0gKHZvaWQpX3NldEljb25VUkw6KE5TVVJMICopVVJM
IHdpdGhUeXBlOihOU1N0cmluZyAqKWljb25UeXBlOworLSAodm9pZClfYWRkU3VicmVzb3VyY2VM
b2FkZXI6KFdlYkxvYWRlciAqKWxvYWRlcjsKKy0gKHZvaWQpX3JlbW92ZVN1YnJlc291cmNlTG9h
ZGVyOihXZWJMb2FkZXIgKilsb2FkZXI7CistIChOU1VSTFJlcXVlc3QgKilfb3JpZ2luYWxSZXF1
ZXN0OworLSAoV2ViVmlldyAqKV93ZWJWaWV3OworLSAoV2ViUmVzb3VyY2UgKilfYXJjaGl2ZWRT
dWJyZXNvdXJjZUZvclVSTDooTlNVUkwgKilVUkw7CistICh2b2lkKV9hZGRSZXNwb25zZTooTlNV
UkxSZXNwb25zZSAqKXI7CistIChXZWJGcmFtZUJyaWRnZSAqKV9icmlkZ2U7CistICh2b2lkKV9z
ZXRPdmVycmlkZUVuY29kaW5nOihOU1N0cmluZyAqKW92ZXJyaWRlRW5jb2Rpbmc7CistICh2b2lk
KV9yZXBsYWNlU2VsZWN0aW9uV2l0aEFyY2hpdmU6KFdlYkFyY2hpdmUgKilhcmNoaXZlIHNlbGVj
dFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50OworLSAoTlNVUkwgKilfVVJMOwor
KyAoTlNNdXRhYmxlRGljdGlvbmFyeSAqKV9yZXBUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Npb246
KEJPT0wpYWxsb3dJbWFnZVR5cGVPbWlzc2lvbjsKKy0gKHZvaWQpX3NldFByaW1hcnlMb2FkQ29t
cGxldGU6KEJPT0wpZmxhZzsKKy0gKHZvaWQpX3NldE1haW5Eb2N1bWVudEVycm9yOihOU0Vycm9y
ICopZXJyb3I7CistICh2b2lkKV9hZGRUb1VuYXJjaGl2ZVN0YXRlOihXZWJBcmNoaXZlICopYXJj
aGl2ZTsKKy0gKE5TVVJMICopX1VSTEZvckhpc3Rvcnk7CistICh2b2lkKV9zZXRXZWJGcmFtZToo
V2ViRnJhbWUgKilmcmFtZTsKKy0gKEJPT0wpX2lzQ2xpZW50UmVkaXJlY3Q7CistICh2b2lkKV9t
YWtlUmVwcmVzZW50YXRpb247CistIChkb3VibGUpX2xvYWRpbmdTdGFydGVkVGltZTsKKy0gKEJP
T0wpX2lzU3RvcHBpbmc7CistICh2b2lkKV9maW5pc2hlZExvYWRpbmc7CistICh2b2lkKV9zZXRS
ZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlOworLSAodm9pZClfc2V0dXBGb3JSZXBs
YWNlQnlNSU1FVHlwZTooTlNTdHJpbmcgKiltaW1lVHlwZTsKKy0gKHZvaWQpX3NldFJlcXVlc3Q6
KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CistICh2b2lkKV9yZWNlaXZlZERhdGE6KE5TRGF0YSAq
KWRhdGE7CistICh2b2lkKV9yZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yOihOU0Vycm9yICopZXJy
b3IgY29tcGxldGU6KEJPT0wpaXNDb21wbGV0ZTsKKy0gKEJPT0wpX2lzRG9jdW1lbnRIVE1MOwor
LSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aEltYWdlUmVzb3Vy
Y2U6KFdlYlJlc291cmNlICopcmVzb3VyY2U7CistIChET01Eb2N1bWVudEZyYWdtZW50ICopX2Rv
Y3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmU7CistIChOU1N0
cmluZyAqKV90aXRsZTsKKy0gKHZvaWQpX3N0b3BSZWNvcmRpbmdSZXNwb25zZXM7CistIChCT09M
KV9sb2FkaW5nRnJvbVBhZ2VDYWNoZTsKKy0gKE5TQXJyYXkgKilfcmVzcG9uc2VzOworLSAodm9p
ZClfc3RvcExvYWRpbmc7CistICh2b2lkKV9fYWRvcHRSZXF1ZXN0OihOU011dGFibGVVUkxSZXF1
ZXN0ICopcmVxdWVzdDsKKy0gKHZvaWQpX3NldFRyaWdnZXJpbmdBY3Rpb246KE5TRGljdGlvbmFy
eSAqKWFjdGlvbjsKKy0gKE5TRGljdGlvbmFyeSAqKV90cmlnZ2VyaW5nQWN0aW9uOworLSAoTlNV
UkxSZXF1ZXN0ICopX2xhc3RDaGVja2VkUmVxdWVzdDsKKy0gKHZvaWQpX3NldExhc3RDaGVja2Vk
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKKy0gKHZvaWQpX3NldFVSTDooTlNVUkwg
KilVUkw7CistICh2b2lkKV9zZXRJc0NsaWVudFJlZGlyZWN0OihCT09MKWZsYWc7CistIChXZWJB
cmNoaXZlICopX3BvcFN1YmZyYW1lQXJjaGl2ZVdpdGhOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFt
ZTsKKy0gKHZvaWQpX2RlZmVyc0NhbGxiYWNrc0NoYW5nZWQ7CistICh2b2lkKV9zdGFydExvYWRp
bmc7CistICh2b2lkKV9sb2FkRnJvbVBhZ2VDYWNoZTooTlNEaWN0aW9uYXJ5ICopcGFnZUNhY2hl
OworLSAoRE9NRWxlbWVudCAqKV9pbWFnZUVsZW1lbnRXaXRoSW1hZ2VSZXNvdXJjZTooV2ViUmVz
b3VyY2UgKilyZXNvdXJjZTsKKworQGVuZApJbmRleDogV2ViVmlldy9XZWJNYWluUmVzb3VyY2VM
b2FkZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYk1haW5SZXNvdXJjZUxvYWRlci5tCShy
ZXZpc2lvbiAxNDMyNikKKysrIFdlYlZpZXcvV2ViTWFpblJlc291cmNlTG9hZGVyLm0JKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L0RPTUhUTUwuaD4K
ICNpbXBvcnQgPFdlYktpdC9XZWJEYXRhUHJvdG9jb2wuaD4KLSNpbXBvcnQgPFdlYktpdC9XZWJE
YXRhU291cmNlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VJbnRlcm5h
bC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dlYkRvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRG93bmxvYWQuaD4K
SW5kZXg6IFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Vmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubQkocmV2aXNpb24gMTQzMjYpCisrKyBXZWJWaWV3
L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lQnJpZGdlLmg+Ci0jaW1wb3J0
IDxXZWJLaXQvV2ViRGF0YVNvdXJjZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJEYXRh
U291cmNlSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEb2N1bWVudFByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJL
aXROU1N0cmluZ0V4dHJhcy5oPgpJbmRleDogV2ViVmlldy9XZWJJbWFnZVZpZXcubQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJWaWV3L1dlYkltYWdlVmlldy5tCShyZXZpc2lvbiAxNDMyNikKKysrIFdlYlZp
ZXcvV2ViSW1hZ2VWaWV3Lm0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2lt
cG9ydCA8V2ViS2l0L1dlYkFyY2hpdmVyLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Bc3Nl
cnRpb25zLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZVByaXZhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XZWJEYXRhU291cmNlSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJE
b2N1bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dlYkltYWdlUmVuZGVyZXIuaD4KSW5kZXg6IFdlYlZpZXcvV2ViVmlldy5tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYlZpZXcvV2ViVmlldy5tCShyZXZpc2lvbiAxNDMyNikKKysrIFdlYlZpZXcvV2Vi
Vmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW1wb3J0ICJXZWJET01P
cGVyYXRpb25zUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViRGFzaGJvYXJkUmVnaW9uLmgiCiAjaW1w
b3J0ICJXZWJEYXRhUHJvdG9jb2wuaCIKLSNpbXBvcnQgIldlYkRhdGFTb3VyY2VQcml2YXRlLmgi
CisjaW1wb3J0ICJXZWJEYXRhU291cmNlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkRlZmF1bHRF
ZGl0aW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiV2ViRGVmYXVsdFBvbGljeURlbGVnYXRlLmgiCkluZGV4OiBXZWJWaWV3L1dl
YlJlbmRlck5vZGUubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYlJlbmRlck5vZGUubQkocmV2
aXNpb24gMTQzMjYpCisrKyBXZWJWaWV3L1dlYlJlbmRlck5vZGUubQkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lQnJpZGdlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViSFRNTFZpZXcu
aD4KLSNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291cmNlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5TVmlld0V4
dHJhcy5oPgogCiBAaW50ZXJmYWNlIFdlYktpdFJlbmRlclRyZWVDb3BpZXIgOiBOU09iamVjdCA8
V2ViQ29yZVJlbmRlclRyZWVDb3BpZXI+CkluZGV4OiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubQkocmV2aXNpb24gMTQzMjYpCisr
KyBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOSBA
QAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291cmNlLmg+CiAKKyNpbXBvcnQgPFdlYktp
dC9XZWJEYXRhU291cmNlSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9ET01IVE1MLmg+CiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
QXJjaGl2ZS5oPgpAQCAtNjYsNiArNjcsOTMgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxD
b25uZWN0aW9uLmg+CiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgogCitAaW50
ZXJmYWNlIFdlYkRhdGFTb3VyY2VQcml2YXRlIDogTlNPYmplY3QKK3sKKyAgICBAcHVibGljCisg
ICAgTlNEYXRhICpyZXNvdXJjZURhdGE7CisgICAgCisgICAgaWQgPFdlYkRvY3VtZW50UmVwcmVz
ZW50YXRpb24+IHJlcHJlc2VudGF0aW9uOworICAgIAorICAgIC8vIEEgcmVmZXJlbmNlIHRvIGFj
dHVhbCByZXF1ZXN0IHVzZWQgdG8gY3JlYXRlIHRoZSBkYXRhIHNvdXJjZS4KKyAgICAvLyBUaGlz
IHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgdGhlIHJlc291cmNlTG9hZERlbGVnYXRlJ3MKKyAgICAv
LyBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Q6ZnJvbURhdGFzb3VyY2U6IG1ldGhvZC4gIEl0
IGlzCisgICAgLy8gbm90IGd1YXJhbnRlZWQgdG8gcmVtYWluIHVuY2hhbmdlZCwgYXMgcmVxdWVz
dHMgYXJlIG11dGFibGUuCisgICAgTlNVUkxSZXF1ZXN0ICpvcmlnaW5hbFJlcXVlc3Q7CisgICAg
CisgICAgLy8gQSBjb3B5IG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHVzZWQgdG8gY3JlYXRlIHRo
ZSBkYXRhIHNvdXJjZS4KKyAgICAvLyBXZSBoYXZlIHRvIGNvcHkgdGhlIHJlcXVlc3QgYmVjYXVz
ZSByZXF1ZXN0cyBhcmUgbXV0YWJsZS4KKyAgICBOU1VSTFJlcXVlc3QgKm9yaWdpbmFsUmVxdWVz
dENvcHk7CisgICAgCisgICAgLy8gVGhlICd3b3JraW5nJyByZXF1ZXN0IGZvciB0aGlzIGRhdGFz
b3VyY2UuICBJdCBtYXkgYmUgbXV0YXRlZAorICAgIC8vIHNldmVyYWwgdGltZXMgZnJvbSB0aGUg
b3JpZ2luYWwgcmVxdWVzdCB0byBpbmNsdWRlIGFkZGl0aW9uYWwKKyAgICAvLyBoZWFkZXJzLCBj
b29raWUgaW5mb3JtYXRpb24sIGNhbm9uaWNhbGl6YXRpb24gYW5kIHJlZGlyZWN0cy4KKyAgICBO
U011dGFibGVVUkxSZXF1ZXN0ICpyZXF1ZXN0OworICAgIAorICAgIE5TVVJMUmVzcG9uc2UgKnJl
c3BvbnNlOworICAgIAorICAgIC8vIENsaWVudCBmb3IgbWFpbiByZXNvdXJjZS4KKyAgICBXZWJN
YWluUmVzb3VyY2VMb2FkZXIgKm1haW5SZXNvdXJjZUxvYWRlcjsKKyAgICAKKyAgICAvLyBDbGll
bnRzIGZvciBvdGhlciByZXNvdXJjZXMuCisgICAgTlNNdXRhYmxlQXJyYXkgKnN1YnJlc291cmNl
TG9hZGVyczsKKyAgICBOU011dGFibGVBcnJheSAqcGx1Z0luU3RyZWFtTG9hZGVyczsKKyAgICAK
KyAgICAvLyBUaGUgdGltZSB3aGVuIHRoZSBkYXRhIHNvdXJjZSB3YXMgdG9sZCB0byBzdGFydCBs
b2FkaW5nLgorICAgIGRvdWJsZSBsb2FkaW5nU3RhcnRlZFRpbWU7CisgICAgCisgICAgQk9PTCBw
cmltYXJ5TG9hZENvbXBsZXRlOworICAgIAorICAgIEJPT0wgc3RvcHBpbmc7CisgICAgCisgICAg
Qk9PTCBpc0NsaWVudFJlZGlyZWN0OworICAgIAorICAgIE5TU3RyaW5nICpwYWdlVGl0bGU7Cisg
ICAgCisgICAgTlNTdHJpbmcgKmVuY29kaW5nOworICAgIE5TU3RyaW5nICpvdmVycmlkZUVuY29k
aW5nOworICAgIAorICAgIC8vIEVycm9yIGFzc29jaWF0ZWQgd2l0aCBtYWluIGRvY3VtZW50Lgor
ICAgIE5TRXJyb3IgKm1haW5Eb2N1bWVudEVycm9yOworICAgIAorICAgIEJPT0wgbG9hZGluZzsg
Ly8gc2VsZiBhbmQgd2ViVmlldyBhcmUgcmV0YWluZWQgd2hpbGUgbG9hZGluZworICAgIAorICAg
IEJPT0wgZ290Rmlyc3RCeXRlOyAvLyBnb3QgZmlyc3QgYnl0ZQorICAgIEJPT0wgY29tbWl0dGVk
OyAvLyBUaGlzIGRhdGEgc291cmNlIGhhcyBiZWVuIGNvbW1pdHRlZAorICAgIEJPT0wgcmVwcmVz
ZW50YXRpb25GaW5pc2hlZExvYWRpbmc7CisgICAgCisgICAgQk9PTCBkZWZlcnNDYWxsYmFja3M7
CisgICAgCisgICAgTlNVUkwgKmljb25VUkw7CisgICAgV2ViSWNvbkxvYWRlciAqaWNvbkxvYWRl
cjsKKyAgICAKKyAgICAvLyBUaGUgYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIGxvYWRpbmcgb2YgdGhp
cyBkYXRhIHNvdXJjZSAtCisgICAgLy8gd2Uga2VlcCB0aGlzIGFyb3VuZCBmb3IgdGhlIGJlbmVm
aXQgb2YgdGhlIHZhcmlvdXMgcG9saWN5CisgICAgLy8gaGFuZGxlcnMuCisgICAgTlNEaWN0aW9u
YXJ5ICp0cmlnZ2VyaW5nQWN0aW9uOworICAgIAorICAgIC8vIFRoZSBsYXN0IHJlcXVlc3QgdGhh
dCB3ZSBjaGVja2VkIGNsaWNrIHBvbGljeSBmb3IgLSBrZXB0IGFyb3VuZAorICAgIC8vIHNvIHdl
IGNhbiBhdm9pZCBhc2tpbmcgYWdhaW4gbmVlZGxlc3NseS4KKyAgICBOU1VSTFJlcXVlc3QgKmxh
c3RDaGVja2VkUmVxdWVzdDsKKyAgICAKKyAgICAvLyBXZSByZXRhaW4gYWxsIHRoZSByZWNlaXZl
ZCByZXNwb25zZXMgc28gd2UgY2FuIHBsYXkgYmFjayB0aGUKKyAgICAvLyBXZWJSZXNvdXJjZUxv
YWREZWxlZ2F0ZSBtZXNzYWdlcyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0aGUKKyAgICAv
LyBwYWdlIGNhY2hlLgorICAgIE5TTXV0YWJsZUFycmF5ICpyZXNwb25zZXM7CisgICAgQk9PTCBz
dG9wUmVjb3JkaW5nUmVzcG9uc2VzOworICAgIAorICAgIEJPT0wgbG9hZGluZ0Zyb21QYWdlQ2Fj
aGU7CisgICAgCisgICAgV2ViRnJhbWUgKndlYkZyYW1lOworICAgIAorICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnN1YnJlc291cmNlczsKKyAgICAKKyAgICBXZWJVbmFyY2hpdmluZ1N0YXRlICp1
bmFyY2hpdmluZ1N0YXRlOworICAgIAorICAgIEJPT0wgc3VwcG9ydHNNdWx0aXBhcnRDb250ZW50
OworfQorCitAZW5kCisKIEBpbXBsZW1lbnRhdGlvbiBXZWJEYXRhU291cmNlUHJpdmF0ZSAKIAog
LSAodm9pZClkZWFsbG9jCkBAIC0yMTgsNiArMzA2LDYzIEBACiAgICAgX3ByaXZhdGUtPnJlc291
cmNlRGF0YSA9IGRhdGE7CiB9CiAKKy0gKHZvaWQpX3VwZGF0ZUljb25EYXRhYmFzZVdpdGhVUkw6
KE5TVVJMICopaWNvblVSTAoreworICAgIEFTU0VSVChbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdIF9pc0VuYWJsZWRdKTsKKyAgICAKKyAgICBXZWJJY29uRGF0YWJhc2UgKmlj
b25EQiA9IFtXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXTsKKyAgICAKKyAgICAv
LyBCaW5kIHRoZSBVUkwgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgYW5kIHRoZSBmaW5hbCBVUkwg
dG8gdGhlIGljb24gVVJMLgorICAgIFtpY29uREIgX3NldEljb25VUkw6W2ljb25VUkwgX3dlYl9v
cmlnaW5hbERhdGFBc1N0cmluZ10gZm9yVVJMOltbc2VsZiBfVVJMXSBfd2ViX29yaWdpbmFsRGF0
YUFzU3RyaW5nXV07CisgICAgW2ljb25EQiBfc2V0SWNvblVSTDpbaWNvblVSTCBfd2ViX29yaWdp
bmFsRGF0YUFzU3RyaW5nXSBmb3JVUkw6W1tbc2VsZiBfb3JpZ2luYWxSZXF1ZXN0XSBVUkxdIF93
ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddXTsKKyAgICAKKyAgICAKKyAgICBpZiAoW3NlbGYgd2Vi
RnJhbWVdID09IFtbc2VsZiBfd2ViVmlld10gbWFpbkZyYW1lXSkKKyAgICAgICAgW1tzZWxmIF93
ZWJWaWV3XSBfd2lsbENoYW5nZVZhbHVlRm9yS2V5Ol9XZWJNYWluRnJhbWVJY29uS2V5XTsKKyAg
ICAKKyAgICBOU0ltYWdlICppY29uID0gW2ljb25EQiBpY29uRm9yVVJMOltbc2VsZiBfVVJMXSBf
d2ViX29yaWdpbmFsRGF0YUFzU3RyaW5nXSB3aXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsKKyAg
ICBbW1tzZWxmIF93ZWJWaWV3XSBfZnJhbWVMb2FkRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6
W3NlbGYgX3dlYlZpZXddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZFJlY2VpdmVJY29uOmljb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yRnJhbWU6W3NlbGYgd2ViRnJhbWVdXTsKKyAgICAKKyAgICBp
ZiAoW3NlbGYgd2ViRnJhbWVdID09IFtbc2VsZiBfd2ViVmlld10gbWFpbkZyYW1lXSkKKyAgICAg
ICAgW1tzZWxmIF93ZWJWaWV3XSBfZGlkQ2hhbmdlVmFsdWVGb3JLZXk6X1dlYk1haW5GcmFtZUlj
b25LZXldOworfQorCistICh2b2lkKV9sb2FkSWNvbgoreworICAgIC8vIERvbid0IGxvYWQgYW4g
aWNvbiBpZiAxKSB0aGlzIGlzIG5vdCB0aGUgbWFpbiBmcmFtZSAyKSB3ZSBlbmRlZCBpbiBlcnJv
ciAzKSB3ZSBhbHJlYWR5IGRpZCA0KSB0aGV5IGFyZW4ndCBzYXZlIGJ5IHRoZSBEQi4KKyAgICBp
ZiAoW3NlbGYgd2ViRnJhbWVdICE9IFtbc2VsZiBfd2ViVmlld10gbWFpbkZyYW1lXSB8fCBfcHJp
dmF0ZS0+bWFpbkRvY3VtZW50RXJyb3IgfHwgX3ByaXZhdGUtPmljb25Mb2FkZXIgfHwKKyAgICAg
ICAgIVtbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gX2lzRW5hYmxlZF0pIHsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZighX3ByaXZhdGUtPmljb25VUkwp
eworICAgICAgICAvLyBObyBpY29uIFVSTCBmcm9tIHRoZSBMSU5LIHRhZyBzbyB0cnkgdGhlIHNl
cnZlcidzIHJvb3QuCisgICAgICAgIC8vIFRoaXMgaXMgb25seSByZWFsbHkgYSBmZWF0dXJlIG9m
IGh0dHAgb3IgaHR0cHMsIHNvIGRvbid0IHRyeSB0aGlzIHdpdGggb3RoZXIgcHJvdG9jb2xzLgor
ICAgICAgICBOU1N0cmluZyAqc2NoZW1lID0gW1tzZWxmIF9VUkxdIHNjaGVtZV07CisgICAgICAg
IGlmKFtzY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdIHx8IFtzY2hlbWUgaXNFcXVhbFRv
U3RyaW5nOkAiaHR0cHMiXSl7CisgICAgICAgICAgICBfcHJpdmF0ZS0+aWNvblVSTCA9IFtbW05T
VVJMIF93ZWJfVVJMV2l0aERhdGFBc1N0cmluZzpAIi9mYXZpY29uLmljbyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRvVVJMOltz
ZWxmIF9VUkxdXSBhYnNvbHV0ZVVSTF0gcmV0YWluXTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBpZihfcHJpdmF0ZS0+aWNvblVSTCAhPSBuaWwpeworICAgICAgICBpZihbW1dlYkljb25E
YXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIF9oYXNJY29uRm9ySWNvblVSTDpbX3ByaXZhdGUt
Pmljb25VUkwgX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ11dKXsKKyAgICAgICAgICAgIFtzZWxm
IF91cGRhdGVJY29uRGF0YWJhc2VXaXRoVVJMOl9wcml2YXRlLT5pY29uVVJMXTsKKyAgICAgICAg
fWVsc2V7CisgICAgICAgICAgICBBU1NFUlQoIV9wcml2YXRlLT5pY29uTG9hZGVyKTsKKyAgICAg
ICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3QgPSBbW05TTXV0YWJsZVVSTFJlcXVl
c3QgYWxsb2NdIGluaXRXaXRoVVJMOl9wcml2YXRlLT5pY29uVVJMXTsKKyAgICAgICAgICAgIFtb
c2VsZiB3ZWJGcmFtZV0gX2FkZEV4dHJhRmllbGRzVG9SZXF1ZXN0OnJlcXVlc3QgYWx3YXlzRnJv
bVJlcXVlc3Q6Tk9dOworICAgICAgICAgICAgX3ByaXZhdGUtPmljb25Mb2FkZXIgPSBbW1dlYklj
b25Mb2FkZXIgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICAgICAgICAgIFty
ZXF1ZXN0IHJlbGVhc2VdOworICAgICAgICAgICAgW19wcml2YXRlLT5pY29uTG9hZGVyIHNldERl
bGVnYXRlOnNlbGZdOworICAgICAgICAgICAgW19wcml2YXRlLT5pY29uTG9hZGVyIHNldERhdGFT
b3VyY2U6c2VsZl07CisgICAgICAgICAgICBbX3ByaXZhdGUtPmljb25Mb2FkZXIgc3RhcnRMb2Fk
aW5nXTsKKyAgICAgICAgfQorICAgIH0KK30KKwogLSAodm9pZClfc2V0UHJpbWFyeUxvYWRDb21w
bGV0ZTogKEJPT0wpZmxhZwogewogICAgIF9wcml2YXRlLT5wcmltYXJ5TG9hZENvbXBsZXRlID0g
ZmxhZzsKQEAgLTI5MCw2ICs0MzUsMTIgQEAKICAgICBbc2VsZiByZWxlYXNlXTsKIH0KIAorLSAo
dm9pZClfY2xlYXJFcnJvcnMKK3sKKyAgICBbX3ByaXZhdGUtPm1haW5Eb2N1bWVudEVycm9yIHJl
bGVhc2VdOworICAgIF9wcml2YXRlLT5tYWluRG9jdW1lbnRFcnJvciA9IG5pbDsKK30KKwogLSAo
dm9pZClfcHJlcGFyZUZvckxvYWRTdGFydAogewogICAgIEFTU0VSVCghW3NlbGYgX2lzU3RvcHBp
bmddKTsKQEAgLTU0MSwxMiArNjkyLDYgQEAKICAgICB9CiB9CiAKLS0gKHZvaWQpX2NsZWFyRXJy
b3JzCi17Ci0gICAgW19wcml2YXRlLT5tYWluRG9jdW1lbnRFcnJvciByZWxlYXNlXTsKLSAgICBf
cHJpdmF0ZS0+bWFpbkRvY3VtZW50RXJyb3IgPSBuaWw7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9p
ZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mg
Y2xhc3MsIE5TQXJyYXkgKnN1cHBvcnRUeXBlcykKIHsKICAgICBOU0VudW1lcmF0b3IgKmVudW1l
cmF0b3IgPSBbc3VwcG9ydFR5cGVzIG9iamVjdEVudW1lcmF0b3JdOwpAQCAtNTk0LDExICs3Mzks
NiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgcmV0dXJu
IFtbc2VsZiB3ZWJGcmFtZV0gX2JyaWRnZV07CiB9CiAKLS0gKEJPT0wpX2lzQ29tbWl0dGVkCi17
Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5jb21taXR0ZWQ7Ci19Ci0KIC0gKHZvaWQpX2NvbW1pdElm
UmVhZHkKIHsKICAgICBpZiAoX3ByaXZhdGUtPmdvdEZpcnN0Qnl0ZSAmJiAhX3ByaXZhdGUtPmNv
bW1pdHRlZCkgewpAQCAtNjIxLDYgKzc2MSwyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlw
ZXNGcm9tQ2xhc3MoTlNNCiAgICAgW19wcml2YXRlLT5yZXByZXNlbnRhdGlvbiBzZXREYXRhU291
cmNlOnNlbGZdOwogfQogCistICh2b2lkKV9jb21taXRMb2FkV2l0aERhdGE6KE5TRGF0YSAqKWRh
dGEKK3sKKyAgICAvLyBCb3RoIHVubG9hZGluZyB0aGUgb2xkIHBhZ2UgYW5kIHBhcnNpbmcgdGhl
IG5ldyBwYWdlIG1heSBleGVjdXRlIEphdmFTY3JpcHQgd2hpY2ggZGVzdHJveXMgdGhlIGRhdGFz
b3VyY2UKKyAgICAvLyBieSBzdGFydGluZyBhIG5ldyBsb2FkLCBzbyByZXRhaW4gdGVtcG9yYXJp
bHkuCisgICAgW3NlbGYgcmV0YWluXTsKKyAgICBbc2VsZiBfY29tbWl0SWZSZWFkeV07CisgICAg
W1tzZWxmIHJlcHJlc2VudGF0aW9uXSByZWNlaXZlZERhdGE6ZGF0YSB3aXRoRGF0YVNvdXJjZTpz
ZWxmXTsKKyAgICBbW1tbc2VsZiB3ZWJGcmFtZV0gZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIGRh
dGFTb3VyY2VVcGRhdGVkOnNlbGZdOworICAgIFtzZWxmIHJlbGVhc2VdOworfQorCistIChCT09M
KV9kb2VzUHJvZ3Jlc3NpdmVMb2FkV2l0aE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlCit7
CisgICAgcmV0dXJuIFtbc2VsZiB3ZWJGcmFtZV0gX2xvYWRUeXBlXSAhPSBXZWJGcmFtZUxvYWRU
eXBlUmVwbGFjZSB8fCBbTUlNRVR5cGUgaXNFcXVhbFRvU3RyaW5nOkAidGV4dC9odG1sIl07Cit9
CisKIC0odm9pZClfcmVjZWl2ZWREYXRhOihOU0RhdGEgKilkYXRhCiB7ICAgIAogICAgIF9wcml2
YXRlLT5nb3RGaXJzdEJ5dGUgPSBZRVM7CkBAIC02NjQsNjggKzgyMCwxMSBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29tcGxldGU6aXNDb21wbGV0ZV07CiB9CiAKLS0gKHZvaWQpX3VwZGF0ZUljb25EYXRh
YmFzZVdpdGhVUkw6KE5TVVJMICopaWNvblVSTAotewotICAgIEFTU0VSVChbW1dlYkljb25EYXRh
YmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIF9pc0VuYWJsZWRdKTsKLSAgICAKLSAgICBXZWJJY29u
RGF0YWJhc2UgKmljb25EQiA9IFtXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXTsK
LQotICAgIC8vIEJpbmQgdGhlIFVSTCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBhbmQgdGhlIGZp
bmFsIFVSTCB0byB0aGUgaWNvbiBVUkwuCi0gICAgW2ljb25EQiBfc2V0SWNvblVSTDpbaWNvblVS
TCBfd2ViX29yaWdpbmFsRGF0YUFzU3RyaW5nXSBmb3JVUkw6W1tzZWxmIF9VUkxdIF93ZWJfb3Jp
Z2luYWxEYXRhQXNTdHJpbmddXTsKLSAgICBbaWNvbkRCIF9zZXRJY29uVVJMOltpY29uVVJMIF93
ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddIGZvclVSTDpbW1tzZWxmIF9vcmlnaW5hbFJlcXVlc3Rd
IFVSTF0gX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ11dOwotCi0gICAgCi0gICAgaWYgKFtzZWxm
IHdlYkZyYW1lXSA9PSBbW3NlbGYgX3dlYlZpZXddIG1haW5GcmFtZV0pCi0gICAgICAgIFtbc2Vs
ZiBfd2ViVmlld10gX3dpbGxDaGFuZ2VWYWx1ZUZvcktleTpfV2ViTWFpbkZyYW1lSWNvbktleV07
Ci0gICAgCi0gICAgTlNJbWFnZSAqaWNvbiA9IFtpY29uREIgaWNvbkZvclVSTDpbW3NlbGYgX1VS
TF0gX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ10gd2l0aFNpemU6V2ViSWNvblNtYWxsU2l6ZV07
Ci0gICAgW1tbc2VsZiBfd2ViVmlld10gX2ZyYW1lTG9hZERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3OltzZWxmIF93ZWJWaWV3XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZUljb246aWNvbgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRnJhbWU6W3NlbGYg
d2ViRnJhbWVdXTsKLSAgICAKLSAgICBpZiAoW3NlbGYgd2ViRnJhbWVdID09IFtbc2VsZiBfd2Vi
Vmlld10gbWFpbkZyYW1lXSkKLSAgICAgICAgW1tzZWxmIF93ZWJWaWV3XSBfZGlkQ2hhbmdlVmFs
dWVGb3JLZXk6X1dlYk1haW5GcmFtZUljb25LZXldOwotfQotCiAtICh2b2lkKV9pY29uTG9hZGVy
UmVjZWl2ZWRQYWdlSWNvbjooV2ViSWNvbkxvYWRlciAqKWljb25Mb2FkZXIKIHsKICAgICBbc2Vs
ZiBfdXBkYXRlSWNvbkRhdGFiYXNlV2l0aFVSTDpbaWNvbkxvYWRlciBVUkxdXTsKIH0KIAotLSAo
dm9pZClfbG9hZEljb24KLXsKLSAgICAvLyBEb24ndCBsb2FkIGFuIGljb24gaWYgMSkgdGhpcyBp
cyBub3QgdGhlIG1haW4gZnJhbWUgMikgd2UgZW5kZWQgaW4gZXJyb3IgMykgd2UgYWxyZWFkeSBk
aWQgNCkgdGhleSBhcmVuJ3Qgc2F2ZSBieSB0aGUgREIuCi0gICAgaWYgKFtzZWxmIHdlYkZyYW1l
XSAhPSBbW3NlbGYgX3dlYlZpZXddIG1haW5GcmFtZV0gfHwgX3ByaXZhdGUtPm1haW5Eb2N1bWVu
dEVycm9yIHx8IF9wcml2YXRlLT5pY29uTG9hZGVyIHx8Ci0gICAgICAgIVtbV2ViSWNvbkRhdGFi
YXNlIHNoYXJlZEljb25EYXRhYmFzZV0gX2lzRW5hYmxlZF0pIHsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICBpZighX3ByaXZhdGUtPmljb25VUkwpewotICAg
ICAgICAvLyBObyBpY29uIFVSTCBmcm9tIHRoZSBMSU5LIHRhZyBzbyB0cnkgdGhlIHNlcnZlcidz
IHJvb3QuCi0gICAgICAgIC8vIFRoaXMgaXMgb25seSByZWFsbHkgYSBmZWF0dXJlIG9mIGh0dHAg
b3IgaHR0cHMsIHNvIGRvbid0IHRyeSB0aGlzIHdpdGggb3RoZXIgcHJvdG9jb2xzLgotICAgICAg
ICBOU1N0cmluZyAqc2NoZW1lID0gW1tzZWxmIF9VUkxdIHNjaGVtZV07Ci0gICAgICAgIGlmKFtz
Y2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdIHx8IFtzY2hlbWUgaXNFcXVhbFRvU3RyaW5n
OkAiaHR0cHMiXSl7Ci0gICAgICAgICAgICBfcHJpdmF0ZS0+aWNvblVSTCA9IFtbW05TVVJMIF93
ZWJfVVJMV2l0aERhdGFBc1N0cmluZzpAIi9mYXZpY29uLmljbyIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRvVVJMOltzZWxmIF9VUkxdXSBh
YnNvbHV0ZVVSTF0gcmV0YWluXTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmKF9wcml2YXRl
LT5pY29uVVJMICE9IG5pbCl7Ci0gICAgICAgIGlmKFtbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZElj
b25EYXRhYmFzZV0gX2hhc0ljb25Gb3JJY29uVVJMOltfcHJpdmF0ZS0+aWNvblVSTCBfd2ViX29y
aWdpbmFsRGF0YUFzU3RyaW5nXV0pewotICAgICAgICAgICAgW3NlbGYgX3VwZGF0ZUljb25EYXRh
YmFzZVdpdGhVUkw6X3ByaXZhdGUtPmljb25VUkxdOwotICAgICAgICB9ZWxzZXsKLSAgICAgICAg
ICAgIEFTU0VSVCghX3ByaXZhdGUtPmljb25Mb2FkZXIpOwotICAgICAgICAgICAgTlNNdXRhYmxl
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdp
dGhVUkw6X3ByaXZhdGUtPmljb25VUkxdOwotICAgICAgICAgICAgW1tzZWxmIHdlYkZyYW1lXSBf
YWRkRXh0cmFGaWVsZHNUb1JlcXVlc3Q6cmVxdWVzdCBhbHdheXNGcm9tUmVxdWVzdDpOT107Ci0g
ICAgICAgICAgICBfcHJpdmF0ZS0+aWNvbkxvYWRlciA9IFtbV2ViSWNvbkxvYWRlciBhbGxvY10g
aW5pdFdpdGhSZXF1ZXN0OnJlcXVlc3RdOwotICAgICAgICAgICAgW3JlcXVlc3QgcmVsZWFzZV07
Ci0gICAgICAgICAgICBbX3ByaXZhdGUtPmljb25Mb2FkZXIgc2V0RGVsZWdhdGU6c2VsZl07Ci0g
ICAgICAgICAgICBbX3ByaXZhdGUtPmljb25Mb2FkZXIgc2V0RGF0YVNvdXJjZTpzZWxmXTsKLSAg
ICAgICAgICAgIFtfcHJpdmF0ZS0+aWNvbkxvYWRlciBzdGFydExvYWRpbmddOwotICAgICAgICB9
Ci0gICAgfQotfQotCiAtICh2b2lkKV9zZXRJY29uVVJMOihOU1VSTCAqKVVSTAogewogICAgIC8v
IExvd2VyIHByaW9yaXR5IHRoYW4gdHlwZWQgaWNvbiwgc28gaWdub3JlIHRoaXMgaWYgd2UgYWxy
ZWFkeSBoYXZlIGFuIGljb25VUkwuCkBAIC04MDAsNyArODk5LDcgQEAgc3RhdGljIGlubGluZSB2
b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTQogICAgIHJldHVybiBfcHJpdmF0ZS0+bG9hZGluZ0Zy
b21QYWdlQ2FjaGU7CiB9CiAKLS0gKHZvaWQpX2FkZFJlc3BvbnNlOiAoTlNVUkxSZXNwb25zZSAq
KXIKKy0gKHZvaWQpX2FkZFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcgogewogICAgIGlmICgh
X3ByaXZhdGUtPnN0b3BSZWNvcmRpbmdSZXNwb25zZXMpIHsKICAgICAgICAgaWYgKCFfcHJpdmF0
ZS0+cmVzcG9uc2VzKQpAQCAtODQxLDE3ICs5NDAsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRk
VHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgcmV0dXJuIFtbc2VsZiByZXF1ZXN0XSBVUkxdOwogfQog
Ci0tIChOU1N0cmluZyAqKV9zdHJpbmdXaXRoRGF0YTooTlNEYXRhICopZGF0YQotewotICAgIE5T
U3RyaW5nICp0ZXh0RW5jb2RpbmdOYW1lID0gW3NlbGYgdGV4dEVuY29kaW5nTmFtZV07Ci0KLSAg
ICBpZiAodGV4dEVuY29kaW5nTmFtZSkgewotICAgICAgICByZXR1cm4gW1dlYkZyYW1lQnJpZGdl
IHN0cmluZ1dpdGhEYXRhOmRhdGEgdGV4dEVuY29kaW5nTmFtZTp0ZXh0RW5jb2RpbmdOYW1lXTsK
LSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gW1dlYkZyYW1lQnJpZGdlIHN0cmluZ1dpdGhE
YXRhOmRhdGEgdGV4dEVuY29kaW5nOmtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xXTsKLSAgICB9
Ci19Ci0KIC0gKE5TRXJyb3IgKilfbWFpbkRvY3VtZW50RXJyb3IKIHsKICAgICByZXR1cm4gX3By
aXZhdGUtPm1haW5Eb2N1bWVudEVycm9yOwpAQCAtODYzLDIyICs5NTEsNiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgcmV0dXJuIFtXZWJWaWV3IGNhblNo
b3dNSU1FVHlwZUFzSFRNTDpNSU1FVHlwZV07CiB9CiAKLS0gKEJPT0wpX2RvZXNQcm9ncmVzc2l2
ZUxvYWRXaXRoTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUKLXsKLSAgICByZXR1cm4gW1tz
ZWxmIHdlYkZyYW1lXSBfbG9hZFR5cGVdICE9IFdlYkZyYW1lTG9hZFR5cGVSZXBsYWNlIHx8IFtN
SU1FVHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJ0ZXh0L2h0bWwiXTsKLX0KLQotLSAodm9pZClfY29t
bWl0TG9hZFdpdGhEYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgLy8gQm90aCB1bmxvYWRpbmcg
dGhlIG9sZCBwYWdlIGFuZCBwYXJzaW5nIHRoZSBuZXcgcGFnZSBtYXkgZXhlY3V0ZSBKYXZhU2Ny
aXB0IHdoaWNoIGRlc3Ryb3lzIHRoZSBkYXRhc291cmNlCi0gICAgLy8gYnkgc3RhcnRpbmcgYSBu
ZXcgbG9hZCwgc28gcmV0YWluIHRlbXBvcmFyaWx5LgotICAgIFtzZWxmIHJldGFpbl07Ci0gICAg
W3NlbGYgX2NvbW1pdElmUmVhZHldOwotICAgIFtbc2VsZiByZXByZXNlbnRhdGlvbl0gcmVjZWl2
ZWREYXRhOmRhdGEgd2l0aERhdGFTb3VyY2U6c2VsZl07Ci0gICAgW1tbW3NlbGYgd2ViRnJhbWVd
IGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBkYXRhU291cmNlVXBkYXRlZDpzZWxmXTsKLSAgICBb
c2VsZiByZWxlYXNlXTsKLX0KLQogLSAodm9pZClfcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlCiB7
CiAgICAgW3NlbGYgX3NldFJlcHJlc2VudGF0aW9uOm5pbF07CkluZGV4OiBXZWJWaWV3L1dlYkZy
YW1lLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViVmlldy9XZWJGcmFtZS5tCShyZXZpc2lvbiAxNDMyNikK
KysrIFdlYlZpZXcvV2ViRnJhbWUubQkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dlYkJhY2tGb3J3YXJkTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dl
YkZyYW1lQnJpZGdlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVByb3RvY29sLmg+Ci0jaW1w
b3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJE
YXRhU291cmNlSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEZWZhdWx0UmVzb3VyY2VM
b2FkRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYkRvY3VtZW50SW50ZXJuYWwuaD4KSW5kZXg6IFdlYlZpZXcvV2Vi
SFRNTFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYkhUTUxWaWV3Lm0JKHJldmlzaW9u
IDE0MzI2KQorKysgV2ViVmlldy9XZWJIVE1MVmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVCcmlkZ2UuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJDbGlwVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFQcm90b2NvbC5oPgot
I2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V2ViRGF0YVNvdXJjZUludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRGVmYXVsdFVJRGVs
ZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEb2N1bWVudEludGVybmFsLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViRE9NT3BlcmF0aW9uc1ByaXZhdGUuaD4KSW5kZXg6IFdlYlZpZXcvV2ViUERG
Vmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViUERGVmlldy5tCShyZXZpc2lvbiAxNDMy
NikKKysrIFdlYlZpZXcvV2ViUERGVmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3
IEBACiAgKi8KIAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQXNzZXJ0aW9ucy5oPgotI2ltcG9y
dCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViRGF0
YVNvdXJjZUludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRG9jdW1lbnRJbnRlcm5hbC5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYkRvY3VtZW50UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dlYkZyYW1lLmg+CkluZGV4OiBXZWJWaWV3L1dlYkxvYWRlci5tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YlZpZXcvV2ViTG9hZGVyLm0JKHJldmlzaW9uIDE0MzI2KQorKysgV2ViVmlldy9XZWJMb2FkZXIu
bQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVByb3RvY29sLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
ZWJEYXRhU291cmNlSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEZWZhdWx0UmVzb3Vy
Y2VMb2FkRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXRFcnJvcnMuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJLaXRFcnJvcnNQcml2YXRlLmg+Cg==
</data>
<flag name="review"
          id="2323"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>