<?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>170632</bug_id>
          
          <creation_ts>2017-04-07 17:47:10 -0700</creation_ts>
          <short_desc>WebAssembly: We should support structured cloning of JSWebAssemblyModule</short_desc>
          <delta_ts>2017-04-07 17:48:38 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>170573</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>168264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295592</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-07 17:47:10 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295593</commentid>
    <comment_count>1</comment_count>
      <attachid>306556</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-07 17:48:02 -0700</bug_when>
    <thetext>Created attachment 306556
WIP

I&apos;m trying to run a particular WasmBench test in parallel. It gets successfully compiled in parallel, but for some reason, the worker&apos;s promise deferred timer doesn&apos;t actually run the callback, even though it schedules it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295594</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-07 17:48:38 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 170573 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306556</attachid>
            <date>2017-04-07 17:48:02 -0700</date>
            <delta_ts>2017-04-07 17:48:02 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>39477</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTUxMDMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM0NSw3ICsxMzQ1LDcgQEAKIAkJNTM0MUZDNzIxREFD
MzQzQzAwRTdFNEQ3IC8qIEIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNDFGQzcxMURBQzM0M0MwMEU3RTRENyAv
KiBCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmggKi87IH07CiAJCTUzNDYzODcxMUU3MENGM0QwMEYx
MkFDMSAvKiBKU1J1bkxvb3BUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTM0NjM4NzAxRTcwQ0YzRDAwRjEyQUMxIC8qIEpTUnVuTG9vcFRpbWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTM0
NjM4NzMxRTcwRDAxNTAwRjEyQUMxIC8qIEpTUnVuTG9vcFRpbWVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNDYzODcyMUU3MEQwMTUwMEYxMkFD
MSAvKiBKU1J1bkxvb3BUaW1lci5jcHAgKi87IH07Ci0JCTUzNDYzODc1MUU3MERERUMwMEYxMkFD
MSAvKiBQcm9taXNlRGVmZXJyZWRUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM0NjM4NzQxRTcwRERFQzAwRjEyQUMxIC8qIFByb21pc2VEZWZl
cnJlZFRpbWVyLmggKi87IH07CisJCTUzNDYzODc1MUU3MERERUMwMEYxMkFDMSAvKiBQcm9taXNl
RGVmZXJyZWRUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTM0NjM4NzQxRTcwRERFQzAwRjEyQUMxIC8qIFByb21pc2VEZWZlcnJlZFRpbWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTM0NjM4
NzcxRTcxRTA2RTAwRjEyQUMxIC8qIFByb21pc2VEZWZlcnJlZFRpbWVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNDYzODc2MUU3MUUwNkUwMEYx
MkFDMSAvKiBQcm9taXNlRGVmZXJyZWRUaW1lci5jcHAgKi87IH07CiAJCTUzNDg2QkI3MUMxNzk1
QzMwMEY2RjNBRiAvKiBKU1R5cGVkQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzNDg2QkI2MUMxNzk1QzMwMEY2RjNBRiAvKiBKU1R5cGVkQXJy
YXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTUz
NDg2QkJCMUMxOEU4NDUwMEY2RjNBRiAvKiBKU1R5cGVkQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0ODZCQkExQzE4RTg0NTAwRjZGM0FG
IC8qIEpTVHlwZWRBcnJheS5jcHAgKi87IH07CkBAIC0xMzU4LDcgKzEzNTgsNyBAQAogCQk1MzRF
MDM1NjFFNTNCRURFMDAyMTNGNjQgLyogUHJveHlhYmxlQWNjZXNzQ2FzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0RTAzNTUxRTUzQkVERTAwMjEz
RjY0IC8qIFByb3h5YWJsZUFjY2Vzc0Nhc2UuaCAqLzsgfTsKIAkJNTM0RTAzNTgxRTUzQkYyRjAw
MjEzRjY0IC8qIEdldHRlclNldHRlckFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNEUwMzU3MUU1M0JGMkYwMDIxM0Y2NCAvKiBHZXR0
ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggKi87IH07CiAJCTUzNTI5QTRDMUM0NTdCNzUwMDBCNDlDNiAv
KiBBUElVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTM1MjlBNEIxQzQ1N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi87IH07Ci0JCTUzNTU1
NzE0MUQ5RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0IgLyogV2Fz
bU1lbW9yeS5oICovOyB9OworCQk1MzU1NTcxNDFEOUQ5RUE1MDA2RDU4M0IgLyogV2FzbU1lbW9y
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM1NTU3
MTMxRDlEOUVBNTAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MzU1NTcxNjFEOURGQTMyMDA2RDU4M0IgLyog
V2FzbU1lbW9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MzU1NTcxNTFEOURGQTMyMDA2RDU4M0IgLyogV2FzbU1lbW9yeS5jcHAgKi87IH07CiAJ
CTUzNzBCNEY1MUJGMjYyMDIwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1
ZVdhdGNocG9pbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzNzBCNEYzMUJGMjVFQTIwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJv
cGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmNwcCAqLzsgfTsKIAkJNTM3MEI0RjYxQkYyNjIwNTAw
NUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNzBCNEY0MUJG
MjVFQTIwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRC
YXNlLmggKi87IH07CkBAIC0yMDk1LDcgKzIwOTUsNyBAQAogCQlBRDJGQ0MwMjFEQjU4REFEMDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNCOUExREI1ODVBNjAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcCAqLzsgfTsKIAkJQUQyRkNDMDMxREI1OERB
RDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0I5QjFEQjU4NUE2MDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCAqLzsgfTsKIAkJQUQyRkNDMDQxREI1OERB
RDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNCOEMxREI1ODQ0MDAwQjNFNzM2IC8qIEpT
V2ViQXNzZW1ibHlNb2R1bGUuY3BwICovOyB9OwotCQlBRDJGQ0MwNTFEQjU4REFEMDBCM0U3MzYg
LyogSlNXZWJBc3NlbWJseU1vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUQyRkNCOEQxREI1ODQ0MDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlN
b2R1bGUuaCAqLzsgfTsKKwkJQUQyRkNDMDUxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1i
bHlNb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFEMkZDQjhEMURCNTg0NDAwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5TW9kdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQyRkNDMTYxREI1
OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MwQTFE
QjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQu
aCAqLzsgfTsKIAkJQUQyRkNDMTcxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQyRkNDMEIxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQlBRDJGQ0MxODFEQjU5Q0IyMDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNDMEMxREI1OUM1OTAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAyMTUxMDIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw3
IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fdGhyZWFk
TG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWRDb25kaXRpb24oQXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKKyAgICBkYXRhTG9nTG4oIk1hZGUgaGVh
cCBmb3Igdm06ICIsIFJhd1BvaW50ZXIodm0pLCAiIGlzIHdvcmtlcjogIiwgbV9oZWFwVHlwZSA9
PSBTbWFsbEhlYXApOwogICAgIG1fd29ybGRTdGF0ZS5zdG9yZSgwKTsKICAgICAKICAgICBpZiAo
T3B0aW9uczo6dXNlQ29uY3VycmVudEdDKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAJKHJldmlzaW9u
IDIxNTEwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJl
ZFRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw5IEBAIGJvb2wgUHJvbWlz
ZURlZmVycmVkVGltZXI6OmNhbmNlbFBlbmRpbmcKIHZvaWQgUHJvbWlzZURlZmVycmVkVGltZXI6
OnNjaGVkdWxlV29ya1Nvb24oSlNQcm9taXNlRGVmZXJyZWQqIHRpY2tldCwgVGFzayYmIHRhc2sp
CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90YXNrTG9jayk7CisgICAgZGF0YUxvZ0xuKCJp
biBzY2hlZHVsZVdvcmtTb29uLCBydW5sb29wOiAiLCBSYXdQb2ludGVyKG1fcnVuTG9vcC5nZXQo
KSksICIgdGhyZWFkOiAiLCBXVEY6OmN1cnJlbnRUaHJlYWQoKSk7CisgICAgZGF0YUxvZ0xuKCJc
dGlzIHNjaGVkdWxlZDogIiwgaXNTY2hlZHVsZWQoKSk7CisgICAgZGF0YUxvZ0xuKCJcdGN1cnJl
bnRseSBydW5uaW5nIHRhc2sgc2NoZWR1bGVkOiAiLCBpc1NjaGVkdWxlZCgpKTsKICAgICBtX3Rh
c2tzLmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2spKSk7CiAgICAg
aWYgKCFpc1NjaGVkdWxlZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQogICAgICAgICBz
Y2hlZHVsZVRpbWVyKDApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNv
ZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUNvZGVCbG9jay5jcHAJKHJldmlzaW9uIDIxNTEwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKKyNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCiAj
aW5jbHVkZSAiV2FzbVBsYW5JbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbVdvcmtsaXN0LmgiCiAK
QEAgLTQzLDYgKzQ0LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0mIHZtLCBNZW1vcnlNb2Rl
IAogICAgICAgICAvLyBjYW4ndCBiZSBkZXN0cm95ZWQgdW50aWwgaXQgaGFzIGZpbmlzaGVkIGNv
bXBpbGluZyBpdHMgdmFyaW91cyBXYXNtIGJpdHMuCiAgICAgICAgIC8vIFRoZSBKUyBBUEkgZW5z
dXJlcyB0aGlzIGludmFyaWFudCBieSBrZWVwaW5nIGFsaXZlIHRoZSBtb2R1bGUgYXMgaXQgaGFz
CiAgICAgICAgIC8vIGEgcGVuZGluZyBwcm9taXNlLgorICAgICAgICBkYXRhTG9nTG4oIlBsYW4g
IiwgUmF3UG9pbnRlcihtX3BsYW4uZ2V0KCkpLCAiIGZpbmlzaGVkIGNvbXBpbGluZyBhdDogIiwg
Y3VycmVudFRpbWVNUygpKTsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2sp
OwogICAgICAgICBpZiAobV9wbGFuLT5mYWlsZWQoKSkgewogICAgICAgICAgICAgbV9lcnJvck1l
c3NhZ2UgPSBtX3BsYW4tPmVycm9yTWVzc2FnZSgpOwpAQCAtNjEsMTIgKzYzLDE2IEBAIENvZGVC
bG9jazo6Q29kZUJsb2NrKFZNJiB2bSwgTWVtb3J5TW9kZSAKICAgICAgICAgbV9wbGFuID0gbnVs
bHB0cjsKICAgICB9KSkpOwogCisgICAgZGF0YUxvZ0xuKCJDb21waWxpbmcgcGxhbjogIiwgUmF3
UG9pbnRlcihtX3BsYW4uZ2V0KCkpLCAiIGluIHRocmVhZDogIiwgV1RGOjpjdXJyZW50VGhyZWFk
KCkpOworCiAgICAgbV9wbGFuLT5zZXRNb2RlKG1vZGUpOwogICAgIGF1dG8mIHdvcmtsaXN0ID0g
V2FzbTo6ZW5zdXJlV29ya2xpc3QoKTsKICAgICAvLyBOb3RlLCBpbW1lZGlhdGVseSBhZnRlciB3
ZSBlbnF1ZXVlIHRoZSBwbGFuLCB0aGVyZSBpcyBhIGNoYW5jZSB0aGUgYWJvdmUgY2FsbGJhY2sg
d2lsbCBiZSBjYWxsZWQuCiAgICAgd29ya2xpc3QuZW5xdWV1ZShtYWtlUmVmKCptX3BsYW4uZ2V0
KCkpKTsKIH0KIAorQ29kZUJsb2NrOjp+Q29kZUJsb2NrKCkgeyB9CisKIHZvaWQgQ29kZUJsb2Nr
Ojp3YWl0VW50aWxGaW5pc2hlZCgpCiB7CiAgICAgUmVmUHRyPFBsYW4+IHBsYW47CkBAIC05Myw2
ICs5OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpjb21waWxlQXN5bmMoVk0mIHZtLCBBc3kKICAgICBp
ZiAocGxhbikgewogICAgICAgICAvLyBPdXIgbGlmZXRpbWUgaXMgZ3VhcmFudGVlZCBieSB0aGUg
SlMgY29kZSBieSBoYXZpbmcgaXQKICAgICAgICAgLy8ga2VlcCBhbGl2ZSB0aGUgSlMgb2JqZWN0
cyB0aGF0IGVuc3VyZSBvdXIgbGlmZXRpbWUuCisgICAgICAgIGRhdGFMb2dMbigiYWRkaW5nIHRh
c2sgcGxhbjogIiwgUmF3UG9pbnRlcihwbGFuLmdldCgpKSwgIiBpbiB0aHJlYWQ6ICIsIFdURjo6
Y3VycmVudFRocmVhZCgpLCAiIGN1cnJlbnQgdGltZTogIiwgY3VycmVudFRpbWVNUygpLCAiIHZt
OiAiLCBSYXdQb2ludGVyKCZ2bSkpOwogICAgICAgICBwbGFuLT5hZGRDb21wbGV0aW9uVGFzayh2
bSwgY3JlYXRlU2hhcmVkVGFzazxQbGFuOjpDYWxsYmFja1R5cGU+KFt0aGlzLCB0YXNrID0gV1RG
TW92ZSh0YXNrKV0gKFZNJiB2bSwgUGxhbiYpIHsKICAgICAgICAgICAgIHRhc2stPnJ1bih2bSwg
bWFrZVJlZigqdGhpcykpOwogICAgICAgICB9KSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNvZGVCbG9jay5oCShyZXZpc2lvbiAyMTUxMDMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE0
ICsyNywyMyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiV2FzbUNh
bGxlZS5oIgotI2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgotI2luY2x1ZGUgIldh
c21QbGFuLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1NoYXJl
ZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNt
IHsKK25hbWVzcGFjZSBKU0MgeworIAorY2xhc3MgVk07CisKK25hbWVzcGFjZSBXYXNtIHsKKwor
Y2xhc3MgQ2FsbGVlOworY2xhc3MgUGxhbjsKK3N0cnVjdCBNb2R1bGVJbmZvcm1hdGlvbjsKK2Vu
dW0gY2xhc3MgTWVtb3J5TW9kZSA6IHVpbnQ4X3Q7CiAgICAgCiBjbGFzcyBDb2RlQmxvY2sgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiB7CiBwdWJsaWM6CkBAIC04Miw2
ICs5MSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgYm9vbCBpc1NhZmVUb1J1bihNZW1vcnlNb2Rl
KTsKIAorICAgIH5Db2RlQmxvY2soKTsKIHByaXZhdGU6CiAgICAgQ29kZUJsb2NrKFZNJiwgTWVt
b3J5TW9kZSwgTW9kdWxlSW5mb3JtYXRpb24mKTsKICAgICB1bnNpZ25lZCBtX2NhbGxlZUNvdW50
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAJKHJldmlz
aW9uIDIxNTExNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCiAKKyNpbmNsdWRlICJXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJXYXNt
V29ya2xpc3QuaCIKICNpbmNsdWRlICJXYXNtUGxhbklubGluZXMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBXYXNtIHsKQEAgLTM3LDYgKzM5LDEzIEBAIE1vZHVsZTo6TW9kdWxlKFJl
ZjxNb2R1bGVJbmZvcm1hdGlvbj4mJiAKIHsKIH0KIAorTW9kdWxlOjp+TW9kdWxlKCkgeyB9CisK
K1dhc206OlNpZ25hdHVyZUluZGV4IE1vZHVsZTo6c2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25J
bmRleFNwYWNlKHVuc2lnbmVkIGZ1bmN0aW9uSW5kZXhTcGFjZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9tb2R1bGVJbmZvcm1hdGlvbi0+c2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNw
YWNlKGZ1bmN0aW9uSW5kZXhTcGFjZSk7Cit9CisKIHN0YXRpYyBNb2R1bGU6OlZhbGlkYXRpb25S
ZXN1bHQgbWFrZVZhbGlkYXRpb25SZXN1bHQoUGxhbiYgcGxhbikKIHsKICAgICBBU1NFUlQoIXBs
YW4uaGFzV29yaygpKTsKQEAgLTQ1LDEyICs1NCwyNyBAQCBzdGF0aWMgTW9kdWxlOjpWYWxpZGF0
aW9uUmVzdWx0IG1ha2VWYWxpCiAgICAgcmV0dXJuIE1vZHVsZTo6VmFsaWRhdGlvblJlc3VsdChN
b2R1bGU6OmNyZWF0ZShwbGFuLnRha2VNb2R1bGVJbmZvcm1hdGlvbigpKSk7CiB9CiAKLU1vZHVs
ZTo6VmFsaWRhdGlvblJlc3VsdCBNb2R1bGU6OnZhbGlkYXRlU3luY0ltcGwoUmVmPFBsYW4+JiYg
cGxhbikKK3N0YXRpYyBQbGFuOjpDb21wbGV0aW9uVGFzayBtYWtlVmFsaWRhdGlvbkNhbGxiYWNr
KE1vZHVsZTo6QXN5bmNWYWxpZGF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICByZXR1
cm4gY3JlYXRlU2hhcmVkVGFzazxQbGFuOjpDYWxsYmFja1R5cGU+KFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXSAoVk0mIHZtLCBQbGFuJiBwbGFuKSB7CisgICAgICAgIEFTU0VSVCghcGxh
bi5oYXNXb3JrKCkpOworICAgICAgICBjYWxsYmFjay0+cnVuKHZtLCBtYWtlVmFsaWRhdGlvblJl
c3VsdChwbGFuKSk7CisgICAgfSk7Cit9CisKK01vZHVsZTo6VmFsaWRhdGlvblJlc3VsdCBNb2R1
bGU6OnZhbGlkYXRlU3luYyhWTSYgdm0sIFZlY3Rvcjx1aW50OF90PiYmIHNvdXJjZSkKIHsKKyAg
ICBSZWY8UGxhbj4gcGxhbiA9IGFkb3B0UmVmKCpuZXcgUGxhbih2bSwgV1RGTW92ZShzb3VyY2Up
LCBQbGFuOjpWYWxpZGF0aW9uLCBQbGFuOjpkb250RmluYWxpemUoKSkpOwogICAgIHBsYW4tPnBh
cnNlQW5kVmFsaWRhdGVNb2R1bGUoKTsKICAgICByZXR1cm4gbWFrZVZhbGlkYXRpb25SZXN1bHQo
cGxhbi5nZXQoKSk7CiB9CiAKK3ZvaWQgTW9kdWxlOjp2YWxpZGF0ZUFzeW5jKFZNJiB2bSwgVmVj
dG9yPHVpbnQ4X3Q+JiYgc291cmNlLCBNb2R1bGU6OkFzeW5jVmFsaWRhdGlvbkNhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgUmVmPFBsYW4+IHBsYW4gPSBhZG9wdFJlZigqbmV3IFBsYW4odm0s
IFdURk1vdmUoc291cmNlKSwgUGxhbjo6VmFsaWRhdGlvbiwgbWFrZVZhbGlkYXRpb25DYWxsYmFj
ayhXVEZNb3ZlKGNhbGxiYWNrKSkpKTsKKyAgICBXYXNtOjplbnN1cmVXb3JrbGlzdCgpLmVucXVl
dWUoV1RGTW92ZShwbGFuKSk7Cit9CisKIFJlZjxDb2RlQmxvY2s+IE1vZHVsZTo6Z2V0T3JDcmVh
dGVDb2RlQmxvY2soVk0mIHZtLCBNZW1vcnlNb2RlIG1vZGUpCiB7CiAgICAgUmVmUHRyPENvZGVC
bG9jaz4gY29kZUJsb2NrOwpAQCAtNzUsMTQgKzk5LDYgQEAgUmVmPENvZGVCbG9jaz4gTW9kdWxl
Ojpjb21waWxlU3luYyhWTSYgdgogICAgIHJldHVybiBjb2RlQmxvY2s7CiB9CiAKLVBsYW46OkNv
bXBsZXRpb25UYXNrIE1vZHVsZTo6bWFrZVZhbGlkYXRpb25DYWxsYmFjayhBc3luY1ZhbGlkYXRp
b25DYWxsYmFjayYmIGNhbGxiYWNrKQotewotICAgIHJldHVybiBjcmVhdGVTaGFyZWRUYXNrPFBs
YW46OkNhbGxiYWNrVHlwZT4oW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChWTSYgdm0s
IFBsYW4mIHBsYW4pIHsKLSAgICAgICAgQVNTRVJUKCFwbGFuLmhhc1dvcmsoKSk7Ci0gICAgICAg
IGNhbGxiYWNrLT5ydW4odm0sIG1ha2VWYWxpZGF0aW9uUmVzdWx0KHBsYW4pKTsKLSAgICB9KTsK
LX0KLQogdm9pZCBNb2R1bGU6OmNvbXBpbGVBc3luYyhWTSYgdm0sIE1lbW9yeU1vZGUgbW9kZSwg
Q29kZUJsb2NrOjpBc3luY0NvbXBpbGF0aW9uQ2FsbGJhY2smJiB0YXNrKQogewogICAgIFJlZjxD
b2RlQmxvY2s+IGNvZGVCbG9jayA9IGdldE9yQ3JlYXRlQ29kZUJsb2NrKHZtLCBtb2RlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmgJKHJldmlzaW9uIDIxNTEw
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTcgKzI3LDE5IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNp
bmNsdWRlICJXYXNtQ2FsbGVlLmgiCiAjaW5jbHVkZSAiV2FzbUNvZGVCbG9jay5oIgotI2luY2x1
ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgotI2luY2x1ZGUgIldhc21QbGFuLmgiCi0jaW5j
bHVkZSAiV2FzbVdvcmtsaXN0LmgiCisjaW5jbHVkZSAiV2FzbU1lbW9yeS5oIgogI2luY2x1ZGUg
PHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1No
YXJlZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworc3RydWN0IE1vZHVsZUluZm9ybWF0aW9u
OworY2xhc3MgUGxhbjsKKwordXNpbmcgU2lnbmF0dXJlSW5kZXggPSB1aW50MzJfdDsKICAgICAK
IGNsYXNzIE1vZHVsZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNb2R1bGU+IHsKIHB1
YmxpYzoKQEAgLTQ1LDQ2ICs0NywyNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiB2b2lkIENhbGxi
YWNrVHlwZShWTSYsIFZhbGlkYXRpb25SZXN1bHQmJik7CiAgICAgdXNpbmcgQXN5bmNWYWxpZGF0
aW9uQ2FsbGJhY2sgPSBSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja1R5cGU+PjsKIAorICAgIHN0
YXRpYyBWYWxpZGF0aW9uUmVzdWx0IHZhbGlkYXRlU3luYyhWTSYsIFZlY3Rvcjx1aW50OF90PiYm
IHNvdXJjZSk7CisgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVBc3luYyhWTSYsIFZlY3Rvcjx1aW50
OF90PiYmIHNvdXJjZSwgTW9kdWxlOjpBc3luY1ZhbGlkYXRpb25DYWxsYmFjayYmKTsKKwogICAg
IHN0YXRpYyBSZWY8TW9kdWxlPiBjcmVhdGUoUmVmPE1vZHVsZUluZm9ybWF0aW9uPiYmIG1vZHVs
ZUluZm9ybWF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxl
KFdURk1vdmUobW9kdWxlSW5mb3JtYXRpb24pKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbGlk
YXRpb25SZXN1bHQgdmFsaWRhdGVTeW5jKFZNJiB2bSwgVmVjdG9yPHVpbnQ4X3Q+JiYgc291cmNl
KQotICAgIHsKLSAgICAgICAgUmVmPFBsYW4+IHBsYW4gPSBhZG9wdFJlZigqbmV3IFBsYW4odm0s
IFdURk1vdmUoc291cmNlKSwgUGxhbjo6VmFsaWRhdGlvbiwgUGxhbjo6ZG9udEZpbmFsaXplKCkp
KTsKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRlU3luY0ltcGwoV1RGTW92ZShwbGFuKSk7Ci0gICAg
fQotCi0gICAgc3RhdGljIHZvaWQgdmFsaWRhdGVBc3luYyhWTSYgdm0sIFZlY3Rvcjx1aW50OF90
PiYmIHNvdXJjZSwgQXN5bmNWYWxpZGF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKLSAgICB7Ci0g
ICAgICAgIFJlZjxQbGFuPiBwbGFuID0gYWRvcHRSZWYoKm5ldyBQbGFuKHZtLCBXVEZNb3ZlKHNv
dXJjZSksIFBsYW46OlZhbGlkYXRpb24sIG1ha2VWYWxpZGF0aW9uQ2FsbGJhY2soV1RGTW92ZShj
YWxsYmFjaykpKSk7Ci0gICAgICAgIFdhc206OmVuc3VyZVdvcmtsaXN0KCkuZW5xdWV1ZShXVEZN
b3ZlKHBsYW4pKTsKLSAgICB9Ci0KLSAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJ
bmRleEZyb21GdW5jdGlvbkluZGV4U3BhY2UodW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNlKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbW9kdWxlSW5mb3JtYXRpb24tPnNpZ25hdHVy
ZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShmdW5jdGlvbkluZGV4U3BhY2UpOwotICAgIH0K
LQorICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5k
ZXhTcGFjZSh1bnNpZ25lZCBmdW5jdGlvbkluZGV4U3BhY2UpIGNvbnN0OwogICAgIGNvbnN0IFdh
c206Ok1vZHVsZUluZm9ybWF0aW9uJiBtb2R1bGVJbmZvcm1hdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlSW5mb3JtYXRpb24uZ2V0KCk7IH0KIAogICAgIFJlZjxDb2RlQmxvY2s+IGNvbXBp
bGVTeW5jKFZNJiwgTWVtb3J5TW9kZSk7CiAgICAgdm9pZCBjb21waWxlQXN5bmMoVk0mLCBNZW1v
cnlNb2RlLCBDb2RlQmxvY2s6OkFzeW5jQ29tcGlsYXRpb25DYWxsYmFjayYmKTsKIAotICAgIFJl
ZjxDb2RlQmxvY2s+IG5vbk51bGxDb2RlQmxvY2soV2FzbTo6TWVtb3J5TW9kZSBtb2RlKQotICAg
IHsKLSAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2NvZGVCbG9ja3Nbc3RhdGljX2Nh
c3Q8dWludDhfdD4obW9kZSldLmdldCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVCghIWNvZGVC
bG9jayk7Ci0gICAgICAgIHJldHVybiBtYWtlUmVmKCpjb2RlQmxvY2spOwotICAgIH0KLQorICAg
IEpTX0VYUE9SVF9QUklWQVRFIH5Nb2R1bGUoKTsKIHByaXZhdGU6CiAgICAgUmVmPENvZGVCbG9j
az4gZ2V0T3JDcmVhdGVDb2RlQmxvY2soVk0mLCBNZW1vcnlNb2RlKTsKIAotICAgIHN0YXRpYyBW
YWxpZGF0aW9uUmVzdWx0IHZhbGlkYXRlU3luY0ltcGwoUmVmPFBsYW4+JiYpOwotICAgIHN0YXRp
YyBQbGFuOjpDb21wbGV0aW9uVGFzayBtYWtlVmFsaWRhdGlvbkNhbGxiYWNrKEFzeW5jVmFsaWRh
dGlvbkNhbGxiYWNrJiYpOwotCiAgICAgTW9kdWxlKFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4mJik7
CiAgICAgUmVmPE1vZHVsZUluZm9ybWF0aW9uPiBtX21vZHVsZUluZm9ybWF0aW9uOwogICAgIFJl
ZlB0cjxDb2RlQmxvY2s+IG1fY29kZUJsb2Nrc1tXYXNtOjpOdW1iZXJPZk1lbW9yeU1vZGVzXTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMTUxMDMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNiArNDEsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBK
U1dlYkFzc2VtYmx5Q29kZUJsb2NrOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseUNvZGVCbG9jayIs
IG51bGxwdHIsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseUNvZGVCbG9jaykg
fTsKIAorSlNXZWJBc3NlbWJseUNvZGVCbG9jayogSlNXZWJBc3NlbWJseUNvZGVCbG9jazo6Y3Jl
YXRlKFZNJiB2bSwgUmVmPFdhc206OkNvZGVCbG9jaz4gY29kZUJsb2NrLCBjb25zdCBXYXNtOjpN
b2R1bGVJbmZvcm1hdGlvbiYgbW9kdWxlSW5mb3JtYXRpb24pCit7CisgICAgYXV0byogcmVzdWx0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseUNvZGVCbG9jaz4odm0u
aGVhcCwgYWxsb2NhdGlvblNpemUobW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0RnVuY3Rpb25Db3Vu
dCgpKSkpIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sodm0sIFdURk1vdmUoY29kZUJsb2NrKSwgbW9k
dWxlSW5mb3JtYXRpb24pOworICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6OkpTV2ViQXNzZW1ibHlD
b2RlQmxvY2soVk0mIHZtLCBSZWY8V2FzbTo6Q29kZUJsb2NrPiYmIGNvZGVCbG9jaywgY29uc3Qg
V2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mIG1vZHVsZUluZm9ybWF0aW9uKQogICAgIDogQmFzZSh2
bSwgdm0ud2ViQXNzZW1ibHlDb2RlQmxvY2tTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2NvZGVC
bG9jayhXVEZNb3ZlKGNvZGVCbG9jaykpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oCShyZXZpc2lvbiAyMTUx
MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJs
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDEzICs1MSw3IEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTQ2VsbCBCYXNlOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIHN0
YXRpYyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBSZWY8V2FzbTo6Q29k
ZUJsb2NrPiBjb2RlQmxvY2ssIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJiBtb2R1bGVJ
bmZvcm1hdGlvbikKLSAgICB7Ci0gICAgICAgIGF1dG8qIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s+KHZtLmhlYXAsIGFsbG9jYXRpb25T
aXplKG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKSkpKSBKU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrKHZtLCBXVEZNb3ZlKGNvZGVCbG9jayksIG1vZHVsZUluZm9ybWF0aW9uKTsK
LSAgICAgICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgfQotCisgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sqIGNyZWF0ZShW
TSYgdm0sIFJlZjxXYXNtOjpDb2RlQmxvY2s+IGNvZGVCbG9jaywgY29uc3QgV2FzbTo6TW9kdWxl
SW5mb3JtYXRpb24mKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKENlbGxUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CkBA
IC04OSw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG9mZnNldE9mSW1wb3J0U3R1
YnMoKSArIHNpemVvZih2b2lkKikgKiBpbXBvcnRJbmRleDsKICAgICB9CiAKKyAgICBSZWY8V2Fz
bTo6Q29kZUJsb2NrPiBtX2NvZGVCbG9jazsKIHByaXZhdGU6CiAgICAgSlNXZWJBc3NlbWJseUNv
ZGVCbG9jayhWTSYsIFJlZjxXYXNtOjpDb2RlQmxvY2s+JiYsIGNvbnN0IFdhc206Ok1vZHVsZUlu
Zm9ybWF0aW9uJik7CiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKQEAgLTExNiw3ICsxMTEsNiBA
QCBwcml2YXRlOgogICAgIH07CiAKICAgICBXcml0ZUJhcnJpZXI8SlNXZWJBc3NlbWJseU1vZHVs
ZT4gbV9tb2R1bGU7Ci0gICAgUmVmPFdhc206OkNvZGVCbG9jaz4gbV9jb2RlQmxvY2s7CiAgICAg
VmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gbV93YXNtVG9KU0V4aXRTdHViczsKICAgICBV
bmNvbmRpdGlvbmFsRmluYWxpemVyIG1fdW5jb25kaXRpb25hbEZpbmFsaXplcjsKICAgICBCYWc8
Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcAkocmV2aXNpb24g
MjE1MTAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1v
ZHVsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsMTEgQEAgdm9pZCBKU1dlYkFz
c2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuKAogICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlz
T2JqZWN0LT5tX2NvZGVCbG9ja3NbaV0pOwogfQogCitjb25zdCBWZWN0b3I8dWludDhfdD4mIEpT
V2ViQXNzZW1ibHlNb2R1bGU6OnNvdXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1vZHVsZUlu
Zm9ybWF0aW9uKCkuc291cmNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlNb2R1bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgJKHJldmlzaW9uIDIxNTEwMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksMjAgKzI5LDIyIEBACiAKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9i
amVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNv
ZGVCbG9jay5oIgorLy8jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIlVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJXYXNtTW9kdWxlLmgiCi0j
aW5jbHVkZSAiV2FzbU1vZHVsZUluZm9ybWF0aW9uLmgiCisvLyNpbmNsdWRlICJXYXNtTW9kdWxl
SW5mb3JtYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFdhc20geworY2xhc3MgTW9kdWxl
OwogY2xhc3MgUGxhbjsKIH0KIAogY2xhc3MgU3ltYm9sVGFibGU7CitjbGFzcyBKU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrOwogY2xhc3MgSlNXZWJBc3NlbWJseU1lbW9yeTsKIGNsYXNzIFdlYkFzc2Vt
Ymx5VG9KU0NhbGxlZTsKIApAQCAtNTAsOSArNTIsOSBAQCBjbGFzcyBKU1dlYkFzc2VtYmx5TW9k
dWxlIDogcHVibGljIEpTRGVzCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9i
amVjdCBCYXNlOwogCi0gICAgREVDTEFSRV9JTkZPOworICAgIERFQ0xBUkVfRVhQT1JUX0lORk87
CiAKLSAgICBzdGF0aWMgSlNXZWJBc3NlbWJseU1vZHVsZSogY3JlYXRlU3R1YihWTSYsIEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZSosIFdhc206Ok1vZHVsZTo6VmFsaWRhdGlvblJlc3VsdCYmKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNXZWJBc3NlbWJseU1vZHVsZSogY3JlYXRlU3R1
YihWTSYsIEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIFdhc206Ok1vZHVsZTo6VmFsaWRhdGlvblJl
c3VsdCYmKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0ds
b2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAgICAgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRp
b24mIG1vZHVsZUluZm9ybWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGUtPm1vZHVsZUlu
Zm9ybWF0aW9uKCk7IH0KQEAgLTY1LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgSlNXZWJBc3Nl
bWJseUNvZGVCbG9jayogY29kZUJsb2NrKFdhc206Ok1lbW9yeU1vZGUgbW9kZSkgeyByZXR1cm4g
bV9jb2RlQmxvY2tzW3N0YXRpY19jYXN0PHNpemVfdD4obW9kZSldLmdldCgpOyB9CiAKLSAgICBj
b25zdCBWZWN0b3I8dWludDhfdD4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1vZHVsZUluZm9y
bWF0aW9uKCkuc291cmNlOyB9CisgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzb3VyY2UoKSBj
b25zdDsKIAogICAgIFdhc206Ok1vZHVsZSYgbW9kdWxlKCkgeyByZXR1cm4gbV9tb2R1bGUuZ2V0
KCk7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlG
dW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDIxNTEwMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzEsNiArMTMxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbAogICAgIFdhc206OnN0b3JlQ29udGV4dCh2bSwgd2FzbUNvbnRleHQpOwogICAgIEFTU0VS
VCh3YXNtRnVuY3Rpb24tPmluc3RhbmNlKCkpOwogICAgIEFTU0VSVCh3YXNtRnVuY3Rpb24tPmlu
c3RhbmNlKCkgPT0gV2FzbTo6bG9hZENvbnRleHQodm0pKTsKKyAgICBkYXRhTG9nTG4oIkVudHJ5
aW5nIHdhc20gbW9kdWxlIGNvZGUgYmxvY2s6ICIsIFJhd1BvaW50ZXIoJndhc21GdW5jdGlvbi0+
aW5zdGFuY2UoKS0+Y29kZUJsb2NrKCktPm1fY29kZUJsb2NrLmdldCgpKSwgIiBvbiB0aHJlYWQ6
ICIsIFdURjo6Y3VycmVudFRocmVhZCgpLCAiIHZtOiAiLCBSYXdQb2ludGVyKCZ2bSkpOwogICAg
IEVuY29kZWRKU1ZhbHVlIHJhd1Jlc3VsdCA9IHZtRW50cnlUb1dhc20od2FzbUZ1bmN0aW9uLT5q
c0VudHJ5cG9pbnQoKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgIC8vIFdlIG5lZWQgdG8g
bWFrZSBzdXJlIHRoaXMgaXMgaW4gYSByZWdpc3RlciBvciBvbiB0aGUgc3RhY2sgc2luY2UgaXQn
cyBzdG9yZWQgaW4gVmVjdG9yPEpTVmFsdWU+LgogICAgIC8vIFRoaXMgcHJvYmFibHkgaXNuJ3Qg
c3RyaWN0bHkgbmVjZXNzYXJ5LCBzaW5jZSB0aGUgV2ViQXNzZW1ibHlGdW5jdGlvbiogc2hvdWxk
IGtlZXAgdGhlIGluc3RhbmNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCShyZXZpc2lv
biAyMTUxMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseU1vZHVsZS5oIgogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiV2FzbU1vZHVsZUluZm9ybWF0
aW9uLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVQcm90b0N1c3RvbVNlY3Rpb25zKEV4ZWNTdGF0ZSopOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjE1MTAzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDMsNyArMTQzLDkgQEAgc3RhdGljIHZvaWQgaW5zdGFudGlhdGUoVk0mIHZtLCBFeGVjU3RhdAog
ICAgIC8vIE5vdGU6IFRoaXMgY29tcGxldGlvbiB0YXNrIG1heSBvciBtYXkgbm90IGdldCBjYWxs
ZWQgaW1tZWRpYXRlbHkuCiAgICAgbW9kdWxlLT5tb2R1bGUoKS5jb21waWxlQXN5bmModm0sIGlu
c3RhbmNlLT5tZW1vcnlNb2RlKCksIGNyZWF0ZVNoYXJlZFRhc2s8V2FzbTo6Q29kZUJsb2NrOjpD
YWxsYmFja1R5cGU+KFtwcm9taXNlLCBpbnN0YW5jZSwgbW9kdWxlLCByZXNvbHZlS2luZF0gKFZN
JiB2bSwgUmVmPFdhc206OkNvZGVCbG9jaz4mJiByZWZDb2RlQmxvY2spIG11dGFibGUgewogICAg
ICAgICBSZWZQdHI8V2FzbTo6Q29kZUJsb2NrPiBjb2RlQmxvY2sgPSBXVEZNb3ZlKHJlZkNvZGVC
bG9jayk7CisgICAgICAgIGRhdGFMb2dMbigiQ29tcGlsZSBhc3luYyBmaW5pc2hlZCBvbiB0aHJl
YWQ6ICIsIFdURjo6Y3VycmVudFRocmVhZCgpLCAiLiBTY2hlZHVsaW5nIHByb21pc2UgZGVmZXJy
ZWQuIiwgIiBWTTogIiwgUmF3UG9pbnRlcigmdm0pKTsKICAgICAgICAgdm0ucHJvbWlzZURlZmVy
cmVkVGltZXItPnNjaGVkdWxlV29ya1Nvb24ocHJvbWlzZSwgW3Byb21pc2UsIGluc3RhbmNlLCBt
b2R1bGUsIHJlc29sdmVLaW5kLCAmdm0sIGNvZGVCbG9jayA9IFdURk1vdmUoY29kZUJsb2NrKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oInByb21pc2UgZGVmZXJyZWQgdGlt
ZXIgZmlyZWQgb24gdGhyZWFkOiAiLCBXVEY6OmN1cnJlbnRUaHJlYWQoKSwgIiBWTTogIiwgUmF3
UG9pbnRlcigmdm0pKTsKICAgICAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGluc3RhbmNlLT5n
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwogICAgICAgICAgICAgcmVzb2x2ZSh2bSwgZXhl
YywgcHJvbWlzZSwgaW5zdGFuY2UsIG1vZHVsZSwgY29kZUJsb2NrLnJlbGVhc2VOb25OdWxsKCks
IHJlc29sdmVLaW5kKTsKICAgICAgICAgfSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDIxNTEw
MikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDkgQEAKICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTV2ViQXNzZW1ibHlNb2R1bGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtTW9k
dWxlLmg+CisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKICNpZiBDUFUoQklHX0VORElBTikgfHwg
Q1BVKE1JRERMRV9FTkRJQU4pIHx8IENQVShORUVEU19BTElHTkVEX0FDQ0VTUykKQEAgLTE0Nyw2
ICsxNTAsNyBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIENyeXB0b0tleVRhZyA9IDMz
LAogI2VuZGlmCiAgICAgU2hhcmVkQXJyYXlCdWZmZXJUYWcgPSAzNCwKKyAgICBXYXNtTW9kdWxl
VGFnID0gMzUsCiAgICAgRXJyb3JUYWcgPSAyNTUKIH07CiAKQEAgLTQ4Nyw5ICs0OTEsOSBAQCB0
ZW1wbGF0ZSA8PiBib29sIHdyaXRlTGl0dGxlRW5kaWFuPHVpbnQ4CiAKIGNsYXNzIENsb25lU2Vy
aWFsaXplciA6IENsb25lQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFNlcmlhbGl6YXRpb25S
ZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZlY3Rv
cjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBWZWN0b3I8UmVmUHRyPEpTQzo6
QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZmZXJzLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIFZl
Y3Rvcjx1aW50OF90PiYgb3V0LCBTZXJpYWxpemF0aW9uQ29udGV4dCBjb250ZXh0LCBBcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXkmIHNoYXJlZEJ1ZmZlcnMpCisgICAgc3RhdGljIFNlcmlhbGl6YXRp
b25SZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZl
Y3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBWZWN0b3I8UmVmUHRyPEpT
Qzo6QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZmZXJzLCBXYXNtTW9kdWxlQXJyYXkmIHdhc21Nb2R1
bGVzLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0LCBTZXJp
YWxpemF0aW9uQ29udGV4dCBjb250ZXh0LCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkmIHNoYXJl
ZEJ1ZmZlcnMpCiAgICAgewotICAgICAgICBDbG9uZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihleGVj
LCBtZXNzYWdlUG9ydHMsIGFycmF5QnVmZmVycywgYmxvYlVSTHMsIG91dCwgY29udGV4dCwgc2hh
cmVkQnVmZmVycyk7CisgICAgICAgIENsb25lU2VyaWFsaXplciBzZXJpYWxpemVyKGV4ZWMsIG1l
c3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCB3YXNtTW9kdWxlcywgYmxvYlVSTHMsIG91dCwgY29u
dGV4dCwgc2hhcmVkQnVmZmVycyk7CiAgICAgICAgIHJldHVybiBzZXJpYWxpemVyLnNlcmlhbGl6
ZSh2YWx1ZSk7CiAgICAgfQogCkBAIC01MzYsMTkgKzU0MCwzNiBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxKU09iamVjdCosIHVpbnQzMl90PiBPYmplY3RQb29sOwog
Ci0gICAgQ2xvbmVTZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZlB0cjxNZXNz
YWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+
JiBhcnJheUJ1ZmZlcnMsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgVmVjdG9yPHVpbnQ4X3Q+
JiBvdXQsIFNlcmlhbGl6YXRpb25Db250ZXh0IGNvbnRleHQsIEFycmF5QnVmZmVyQ29udGVudHNB
cnJheSYgc2hhcmVkQnVmZmVycykKKyAgICBDbG9uZVNlcmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVj
LCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgVmVjdG9yPFJlZlB0
cjxKU0M6OkFycmF5QnVmZmVyPj4mIGFycmF5QnVmZmVycywgV2FzbU1vZHVsZUFycmF5JiB3YXNt
TW9kdWxlcywgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBWZWN0b3I8dWludDhfdD4mIG91dCwg
U2VyaWFsaXphdGlvbkNvbnRleHQgY29udGV4dCwgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5JiBz
aGFyZWRCdWZmZXJzKQogICAgICAgICA6IENsb25lQmFzZShleGVjKQogICAgICAgICAsIG1fYnVm
ZmVyKG91dCkKICAgICAgICAgLCBtX2Jsb2JVUkxzKGJsb2JVUkxzKQogICAgICAgICAsIG1fZW1w
dHlJZGVudGlmaWVyKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgZW1wdHlTdHJpbmcoKSkp
CiAgICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgICAgICwgbV9zaGFyZWRCdWZmZXJz
KHNoYXJlZEJ1ZmZlcnMpCisgICAgICAgICwgbV93YXNtTW9kdWxlcyh3YXNtTW9kdWxlcykKICAg
ICB7CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKICAgICAgICAgZmlsbFRyYW5zZmVy
TWFwKG1lc3NhZ2VQb3J0cywgbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cyk7CiAgICAgICAgIGZp
bGxUcmFuc2Zlck1hcChhcnJheUJ1ZmZlcnMsIG1fdHJhbnNmZXJyZWRBcnJheUJ1ZmZlcnMpOwog
ICAgIH0KIAorICAgIC8vIEZJWE1FOiBhZGQgdG9KUworICAgIHRlbXBsYXRlCisgICAgdm9pZCBm
aWxsVHJhbnNmZXJNYXAoVmVjdG9yPFJlZlB0cjxKU0M6Oldhc206Ok1vZHVsZT4+JiBpbnB1dCwg
T2JqZWN0UG9vbCYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgaWYgKGlucHV0LmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKTsKKyAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOworICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGlucHV0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBKU09iamVj
dCogbW9kdWxlID0gSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBtX2V4
ZWMsIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgaW5wdXRbaV0p
OworICAgICAgICAgICAgLy9KU0M6OkpTVmFsdWUgdmFsdWUgPSBKU1dlYkFzc2VtYmx5TW9kdWxl
OjpjcmVhdGVTdHViKG1fZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnB1dFtpXS5nZXQoKSk7CisgICAg
ICAgICAgICByZXN1bHQuYWRkKG1vZHVsZSwgaSk7CisgICAgICAgIH0KKyAgICB9CisKKwogICAg
IHRlbXBsYXRlIDxjbGFzcyBUPgogICAgIHZvaWQgZmlsbFRyYW5zZmVyTWFwKFZlY3RvcjxSZWZQ
dHI8VD4+JiBpbnB1dCwgT2JqZWN0UG9vbCYgcmVzdWx0KQogICAgIHsKQEAgLTkwNiw4ICs5Mjcs
OSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGR1bW15QmxvYlVS
THM7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+IGR1bW15TWVz
c2FnZVBvcnRzOwogICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4+IGR1bW15QXJyYXlCdWZmZXJzOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8SlND
OjpXYXNtOjpNb2R1bGU+PiBkdW1teU1vZHVsZXM7CiAgICAgICAgICAgICAgICAgQXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5IGR1bW15U2hhcmVkQnVmZmVyczsKLSAgICAgICAgICAgICAgICBDbG9u
ZVNlcmlhbGl6ZXIgcmF3S2V5U2VyaWFsaXplcihtX2V4ZWMsIGR1bW15TWVzc2FnZVBvcnRzLCBk
dW1teUFycmF5QnVmZmVycywgZHVtbXlCbG9iVVJMcywgc2VyaWFsaXplZEtleSwgU2VyaWFsaXph
dGlvbkNvbnRleHQ6OkRlZmF1bHQsIGR1bW15U2hhcmVkQnVmZmVycyk7CisgICAgICAgICAgICAg
ICAgQ2xvbmVTZXJpYWxpemVyIHJhd0tleVNlcmlhbGl6ZXIobV9leGVjLCBkdW1teU1lc3NhZ2VQ
b3J0cywgZHVtbXlBcnJheUJ1ZmZlcnMsIGR1bW15TW9kdWxlcywgZHVtbXlCbG9iVVJMcywgc2Vy
aWFsaXplZEtleSwgU2VyaWFsaXphdGlvbkNvbnRleHQ6OkRlZmF1bHQsIGR1bW15U2hhcmVkQnVm
ZmVycyk7CiAgICAgICAgICAgICAgICAgcmF3S2V5U2VyaWFsaXplci53cml0ZShrZXkpOwogICAg
ICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiB3cmFwcGVkS2V5OwogICAgICAgICAgICAgICAg
IGlmICghd3JhcENyeXB0b0tleShtX2V4ZWMsIHNlcmlhbGl6ZWRLZXksIHdyYXBwZWRLZXkpKQpA
QCAtOTE3LDYgKzkzOSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogI2VuZGlmCiAKKyAg
ICAgICAgICAgIGlmIChKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUgPSBqc0R5bmFtaWNEb3du
Y2FzdDxKU1dlYkFzc2VtYmx5TW9kdWxlKj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV9jb250ZXh0ICE9IFNlcmlhbGl6YXRpb25Db250ZXh0OjpXb3JrZXJQb3N0TWVzc2FnZSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgdWlu
dDMyX3QgaW5kZXggPSBtX3dhc21Nb2R1bGVzLnNpemUoKTsgCisgICAgICAgICAgICAgICAgbV93
YXNtTW9kdWxlcy5hcHBlbmQobWFrZVJlZihtb2R1bGUtPm1vZHVsZSgpKSk7CisgICAgICAgICAg
ICAgICAgZGF0YUxvZ0xuKCJ3cml0aW5nIHdhc20gbW9kdWxlIGluIGF0IGluZGV4OiAiLCBpbmRl
eCk7CisgICAgICAgICAgICAgICAgd3JpdGUoV2FzbU1vZHVsZVRhZyk7CisgICAgICAgICAgICAg
ICAgd3JpdGUoaW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgLy8g
QW55IG90aGVyIHR5cGVzIGFyZSBleHBlY3RlZCB0byBzZXJpYWxpemUgYXMgbnVsbC4KQEAgLTEy
NzYsNiArMTMxMCw3IEBAIHByaXZhdGU6CiAgICAgSWRlbnRpZmllciBtX2VtcHR5SWRlbnRpZmll
cjsKICAgICBTZXJpYWxpemF0aW9uQ29udGV4dCBtX2NvbnRleHQ7CiAgICAgQXJyYXlCdWZmZXJD
b250ZW50c0FycmF5JiBtX3NoYXJlZEJ1ZmZlcnM7CisgICAgV2FzbU1vZHVsZUFycmF5JiBtX3dh
c21Nb2R1bGVzOwogfTsKIAogU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVy
OjpzZXJpYWxpemUoSlNWYWx1ZSBpbikKQEAgLTE1NDcsMTEgKzE1ODIsMTEgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gc3RyOwogICAgIH0KIAotICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRpb25S
ZXN1bHQgZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlC
dWZmZXJDb250ZW50c0FycmF5KiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXksIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYnVmZmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+IGJsb2JGaWxlUGF0aHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSog
c2hhcmVkQnVmZmVycykKKyAgICBzdGF0aWMgRGVzZXJpYWxpemF0aW9uUmVzdWx0IGRlc2VyaWFs
aXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9y
PFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNB
cnJheSogYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1
ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiBibG9iRmlsZVBhdGhzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMs
IFdhc21Nb2R1bGVBcnJheSogd2FzbU1vZHVsZXMpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZl
ci5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoanNOdWxsKCksIFNl
cmlhbGl6YXRpb25SZXR1cm5Db2RlOjpVbnNwZWNpZmllZEVycm9yKTsKLSAgICAgICAgQ2xvbmVE
ZXNlcmlhbGl6ZXIgZGVzZXJpYWxpemVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRz
LCBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXksIGJ1ZmZlciwgYmxvYlVSTHMsIGJsb2JGaWxlUGF0
aHMsIHNoYXJlZEJ1ZmZlcnMpOworICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNlcmlhbGl6
ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIGFycmF5QnVmZmVyQ29udGVudHNB
cnJheSwgYnVmZmVyLCBibG9iVVJMcywgYmxvYkZpbGVQYXRocywgc2hhcmVkQnVmZmVycywgd2Fz
bU1vZHVsZXMpOwogICAgICAgICBpZiAoIWRlc2VyaWFsaXplci5pc1ZhbGlkKCkpCiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoSlNWYWx1ZSgpLCBTZXJpYWxpemF0aW9uUmV0dXJu
Q29kZTo6VmFsaWRhdGlvbkVycm9yKTsKICAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplci5kZXNl
cmlhbGl6ZSgpOwpAQCAtMTU5Niw3ICsxNjMxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgc2l6ZV90
IG1faW5kZXg7CiAgICAgfTsKIAotICAgIENsb25lRGVzZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9y
dD4+JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogYXJyYXlCdWZmZXJD
b250ZW50cywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgQ2xvbmVEZXNlcmlh
bGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0
b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50
c0FycmF5KiBhcnJheUJ1ZmZlckNvbnRlbnRzLCBXYXNtTW9kdWxlQXJyYXkqIHdhc21Nb2R1bGVz
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAgICAgICAgOiBDbG9uZUJhc2UoZXhl
YykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiAgICAgICAgICwgbV9p
c0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzKGdsb2JhbE9iamVjdC0+dm0o
KSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCkBAIC0xNjA2LDEyICsxNjQxLDEzIEBAIHBy
aXZhdGU6CiAgICAgICAgICwgbV9tZXNzYWdlUG9ydHMobWVzc2FnZVBvcnRzKQogICAgICAgICAs
IG1fYXJyYXlCdWZmZXJDb250ZW50cyhhcnJheUJ1ZmZlckNvbnRlbnRzKQogICAgICAgICAsIG1f
YXJyYXlCdWZmZXJzKGFycmF5QnVmZmVyQ29udGVudHMgPyBhcnJheUJ1ZmZlckNvbnRlbnRzLT5z
aXplKCkgOiAwKQorICAgICAgICAsIG1fd2FzbU1vZHVsZXMod2FzbU1vZHVsZXMpCiAgICAgewog
ICAgICAgICBpZiAoIXJlYWQobV92ZXJzaW9uKSkKICAgICAgICAgICAgIG1fdmVyc2lvbiA9IDB4
RkZGRkZGRkY7CiAgICAgfQogCi0gICAgQ2xvbmVEZXNlcmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBhcnJheUJ1ZmZlckNv
bnRlbnRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmlsZVBhdGhzLCBBcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMpCisgICAgQ2xvbmVEZXNlcmlhbGl6ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0b3I8UmVm
UHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5
KiBhcnJheUJ1ZmZlckNvbnRlbnRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmls
ZVBhdGhzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMsIFdhc21Nb2R1
bGVBcnJheSogd2FzbU1vZHVsZXMpCiAgICAgICAgIDogQ2xvbmVCYXNlKGV4ZWMpCiAgICAgICAg
ICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogICAgICAgICAsIG1faXNET01HbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0cyhnbG9iYWxPYmplY3QtPnZtKCksIEpTRE9NR2xv
YmFsT2JqZWN0OjppbmZvKCkpKQpAQCAtMTYyNCw2ICsxNjYwLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgLCBtX2Jsb2JVUkxzKGJsb2JVUkxzKQogICAgICAgICAsIG1fYmxvYkZpbGVQYXRocyhibG9i
RmlsZVBhdGhzKQogICAgICAgICAsIG1fc2hhcmVkQnVmZmVycyhzaGFyZWRCdWZmZXJzKQorICAg
ICAgICAsIG1fd2FzbU1vZHVsZXMod2FzbU1vZHVsZXMpCiAgICAgewogICAgICAgICBpZiAoIXJl
YWQobV92ZXJzaW9uKSkKICAgICAgICAgICAgIG1fdmVyc2lvbiA9IDB4RkZGRkZGRkY7CkBAIC0y
NDY1LDYgKzI1MDIsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiBnZXRKU1ZhbHVlKG1fbWVzc2FnZVBvcnRzW2luZGV4XS5nZXQoKSk7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBXYXNtTW9kdWxlVGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBpbmRl
eDsKKyAgICAgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFkID0gcmVhZChpbmRleCk7
CisgICAgICAgICAgICBpZiAoIWluZGV4U3VjY2Vzc2Z1bGx5UmVhZCB8fCAhbV93YXNtTW9kdWxl
cyB8fCBpbmRleCA+PSBtX3dhc21Nb2R1bGVzLT5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBm
YWlsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpj
cmVhdGVTdHViKG1fZXhlYy0+dm0oKSwgbV9leGVjLCBtX2dsb2JhbE9iamVjdC0+V2ViQXNzZW1i
bHlNb2R1bGVTdHJ1Y3R1cmUoKSwgbV93YXNtTW9kdWxlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAg
ICAgIG1fZ2NCdWZmZXIuYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgICB9CiAgICAgICAgIGNhc2UgQXJyYXlCdWZmZXJUYWc6IHsKICAgICAgICAgICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXI7CiAgICAgICAgICAgICBpZiAoIXJlYWRB
cnJheUJ1ZmZlcihhcnJheUJ1ZmZlcikpIHsKQEAgLTI1MzIsNyArMjU4MCw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBKU1ZhbHVlIGNyeXB0b0tleTsKICAgICAgICAg
ICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBkdW1teU1lc3NhZ2VQb3J0czsKLSAgICAg
ICAgICAgIENsb25lRGVzZXJpYWxpemVyIHJhd0tleURlc2VyaWFsaXplcihtX2V4ZWMsIG1fZ2xv
YmFsT2JqZWN0LCBkdW1teU1lc3NhZ2VQb3J0cywgbnVsbHB0ciwgc2VyaWFsaXplZEtleSk7Cisg
ICAgICAgICAgICBDbG9uZURlc2VyaWFsaXplciByYXdLZXlEZXNlcmlhbGl6ZXIobV9leGVjLCBt
X2dsb2JhbE9iamVjdCwgZHVtbXlNZXNzYWdlUG9ydHMsIG51bGxwdHIsIG51bGxwdHIsIHNlcmlh
bGl6ZWRLZXkpOwogICAgICAgICAgICAgaWYgKCFyYXdLZXlEZXNlcmlhbGl6ZXIucmVhZENyeXB0
b0tleShjcnlwdG9LZXkpKSB7CiAgICAgICAgICAgICAgICAgZmFpbCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlKCk7CkBAIC0yNTY4LDYgKzI2MTYsNyBAQCBwcml2YXRlOgogICAg
IFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9ibG9iRmls
ZVBhdGhzOwogICAgIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogbV9zaGFyZWRCdWZmZXJzOwor
ICAgIFdhc21Nb2R1bGVBcnJheSogbV93YXNtTW9kdWxlczsKIAogICAgIFN0cmluZyBibG9iRmls
ZVBhdGhGb3JCbG9iVVJMKGNvbnN0IFN0cmluZyYgYmxvYlVSTCkKICAgICB7CkBAIC0yNzc3LDEw
ICsyODI2LDExIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFYKIHsK
IH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9y
PHVpbnQ4X3Q+JiYgYnVmZmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6
dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNB
cnJheSwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVm
ZmVyQ29udGVudHNBcnJheSkKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJs
b2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXksIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXk+IHNoYXJlZEJ1ZmZlckNvbnRlbnRzQXJyYXksIHN0ZDo6dW5pcXVlX3B0cjxXYXNtTW9kdWxl
QXJyYXk+IHdhc21Nb2R1bGVzQXJyYXkpCiAgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQog
ICAgICwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkpKQogICAgICwgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5KFdURk1vdmUoc2hh
cmVkQnVmZmVyQ29udGVudHNBcnJheSkpCisgICAgLCBtX3dhc21Nb2R1bGVzQXJyYXkoV1RGTW92
ZSh3YXNtTW9kdWxlc0FycmF5KSkKIHsKICAgICAvLyBTaW5jZSB0aGlzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBpcyBtZWFudCB0byBiZSBwYXNzZWQgYmV0d2VlbiB0aHJlYWRzLCBpdHMgU3RyaW5n
IGRhdGEgbWVtYmVycwogICAgIC8vIG5lZWQgdG8gYmUgaXNvbGF0ZWRDb3BpZXMgc28gd2UgZG9u
J3QgcnVuIGludG8gdGhyZWFkIHNhZmV0eSBpc3N1ZXMgZm9yIHRoZSBTdHJpbmdJbXBscy4KQEAg
LTI4NjUsOCArMjkxNSwxMSBAQCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxp
emVkCiAgICAgVmVjdG9yPFN0cmluZz4gYmxvYlVSTHM7CiAgICAgVmVjdG9yPFJlZlB0cjxNZXNz
YWdlUG9ydD4+IGR1bW15TWVzc2FnZVBvcnRzOwogICAgIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJh
eUJ1ZmZlcj4+IGR1bW15QXJyYXlCdWZmZXJzOworICAgIC8vIEZJWE1FOiB3aGF0J3MgdGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCB0aGUgb2h0ZXIgb25lLicKKyAgICBWZWN0b3I8UmVm
UHRyPEpTQzo6V2FzbTo6TW9kdWxlPj4gZHVtbXlNb2R1bGVzOwogICAgIEFycmF5QnVmZmVyQ29u
dGVudHNBcnJheSBkdW1teVNoYXJlZEJ1ZmZlcnM7Ci0gICAgYXV0byBjb2RlID0gQ2xvbmVTZXJp
YWxpemVyOjpzZXJpYWxpemUoJmV4ZWMsIHZhbHVlLCBkdW1teU1lc3NhZ2VQb3J0cywgZHVtbXlB
cnJheUJ1ZmZlcnMsIGJsb2JVUkxzLCBidWZmZXIsIFNlcmlhbGl6YXRpb25Db250ZXh0OjpEZWZh
dWx0LCBkdW1teVNoYXJlZEJ1ZmZlcnMpOworICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXpl
cjo6c2VyaWFsaXplKCZleGVjLCB2YWx1ZSwgZHVtbXlNZXNzYWdlUG9ydHMsIGR1bW15QXJyYXlC
dWZmZXJzLCBkdW1teU1vZHVsZXMsIGJsb2JVUkxzLCBidWZmZXIsIFNlcmlhbGl6YXRpb25Db250
ZXh0OjpEZWZhdWx0LCBkdW1teVNoYXJlZEJ1ZmZlcnMpOworICAgIEFTU0VSVCghZHVtbXlNb2R1
bGVzLnNpemUoKSk7IC8vIFRoZXNlIGFyZSBvbmx5IGFsbG93ZWQgaW4gdGhlIHBvc3RNZXNzYWdl
IGNvbnRleHQuCiAKICAgICBpZiAodGhyb3dFeGNlcHRpb25zID09IFNlcmlhbGl6YXRpb25FcnJv
ck1vZGU6OlRocm93aW5nKQogICAgICAgICBtYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0
aW9uRmFpbGVkKGV4ZWMsIGNvZGUpOwpAQCAtMjg3NCw3ICsyOTI3LDcgQEAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZAogICAgIGlmIChjb2RlICE9IFNlcmlhbGl6YXRp
b25SZXR1cm5Db2RlOjpTdWNjZXNzZnVsbHlDb21wbGV0ZWQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdU
Rk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShidWZmZXIpLCBibG9i
VVJMcywgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+PiYmIHRyYW5zZmVyTGlzdCwgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNz
YWdlUG9ydHMsIFNlcmlhbGl6YXRpb25Db250ZXh0IGNvbnRleHQpCkBAIC0yODkwLDYgKzI5NDMs
NyBAQCBFeGNlcHRpb25PcjxSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gCiAgICAgICAgICAg
ICBhcnJheUJ1ZmZlcnMuYXBwZW5kKFdURk1vdmUoYXJyYXlCdWZmZXIpKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CisKICAgICAgICAgaWYgKGF1dG8gcG9ydCA9IEpTTWVzc2Fn
ZVBvcnQ6OnRvV3JhcHBlZCh2bSwgdHJhbnNmZXJhYmxlLmdldCgpKSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGNoZWNrIGlmIHRoZSBwb3J0IGlzIGRldGFjaGVkIGFzIHBl
ciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbmZyYXN0cnVjdHVyZS5o
dG1sI2lzdHJhbnNmZXJhYmxlLgogICAgICAgICAgICAgbWVzc2FnZVBvcnRzLmFwcGVuZChXVEZN
b3ZlKHBvcnQpKTsKQEAgLTI5MDEsOCArMjk1NSw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+PiAKIAogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAgVmVj
dG9yPFN0cmluZz4gYmxvYlVSTHM7CisgICAgVmVjdG9yPFJlZlB0cjxKU0M6Oldhc206Ok1vZHVs
ZT4+IHdhc21Nb2R1bGVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+IHNoYXJlZEJ1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEFycmF5QnVmZmVyQ29udGVu
dHNBcnJheT4oKTsKLSAgICBhdXRvIGNvZGUgPSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSgm
c3RhdGUsIHZhbHVlLCBtZXNzYWdlUG9ydHMsIGFycmF5QnVmZmVycywgYmxvYlVSTHMsIGJ1ZmZl
ciwgY29udGV4dCwgKnNoYXJlZEJ1ZmZlcnMpOworICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFs
aXplcjo6c2VyaWFsaXplKCZzdGF0ZSwgdmFsdWUsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJz
LCB3YXNtTW9kdWxlcywgYmxvYlVSTHMsIGJ1ZmZlciwgY29udGV4dCwgKnNoYXJlZEJ1ZmZlcnMp
OwogCiAgICAgaWYgKGNvZGUgIT0gU2VyaWFsaXphdGlvblJldHVybkNvZGU6OlN1Y2Nlc3NmdWxs
eUNvbXBsZXRlZCkKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbkZvclNlcmlhbGl6YXRpb25GYWls
dXJlKGNvZGUpOwpAQCAtMjkxMSw3ICsyOTY2LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4+IAogICAgIGlmIChhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkucmVsZWFz
ZUV4Y2VwdGlvbigpOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJh
eS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9uQ29udGV4dDo6
V29ya2VyUG9zdE1lc3NhZ2UgPyBXVEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVsbHB0cikpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGJ1
ZmZlciksIGJsb2JVUkxzLCBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkucmVsZWFzZVJldHVyblZh
bHVlKCksIGNvbnRleHQgPT0gU2VyaWFsaXphdGlvbkNvbnRleHQ6OldvcmtlclBvc3RNZXNzYWdl
ID8gV1RGTW92ZShzaGFyZWRCdWZmZXJzKSA6IG51bGxwdHIsIHN0ZDo6bWFrZV91bmlxdWU8V2Fz
bU1vZHVsZUFycmF5Pih3YXNtTW9kdWxlcykpKTsKIH0KIAogUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoU3RyaW5nVmlldyBzdHJpbmcp
CkBAIC0yOTYxLDcgKzMwMTYsNyBAQCBKU1ZhbHVlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVz
ZXJpYWxpCiAKIEpTVmFsdWUgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShFeGVj
U3RhdGUmIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxSZWZQdHI8
TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVS
THMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhzLCBTZXJpYWxpemF0aW9uRXJy
b3JNb2RlIHRocm93RXhjZXB0aW9ucykKIHsKLSAgICBEZXNlcmlhbGl6YXRpb25SZXN1bHQgcmVz
dWx0ID0gQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCZleGVjLCBnbG9iYWxPYmplY3Qs
IG1lc3NhZ2VQb3J0cywgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkuZ2V0KCksIG1fZGF0YSwg
YmxvYlVSTHMsIGJsb2JGaWxlUGF0aHMsIG1fc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheS5nZXQo
KSk7CisgICAgRGVzZXJpYWxpemF0aW9uUmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVy
OjpkZXNlcmlhbGl6ZSgmZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIG1fYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5LmdldCgpLCBtX2RhdGEsIGJsb2JVUkxzLCBibG9iRmlsZVBhdGhz
LCBtX3NoYXJlZEJ1ZmZlckNvbnRlbnRzQXJyYXkuZ2V0KCksIG1fd2FzbU1vZHVsZXNBcnJheS5n
ZXQoKSk7CiAgICAgaWYgKHRocm93RXhjZXB0aW9ucyA9PSBTZXJpYWxpemF0aW9uRXJyb3JNb2Rl
OjpUaHJvd2luZykKICAgICAgICAgbWF5YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZh
aWxlZChleGVjLCByZXN1bHQuc2Vjb25kKTsKICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ID8gcmVz
dWx0LmZpcnN0IDoganNOdWxsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gMjE1MTAyKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtTW9kdWxlLmg+CiAjaW5jbHVk
ZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CkBAIC00OSw2ICs1MCw3IEBAIGVudW0gY2xhc3Mg
U2VyaWFsaXphdGlvbkVycm9yTW9kZSB7IE5vblQKIGVudW0gY2xhc3MgU2VyaWFsaXphdGlvbkNv
bnRleHQgeyBEZWZhdWx0LCBXb3JrZXJQb3N0TWVzc2FnZSB9OwogCiB1c2luZyBBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXkgPSBWZWN0b3I8SlNDOjpBcnJheUJ1ZmZlckNvbnRlbnRzPjsKK3VzaW5n
IFdhc21Nb2R1bGVBcnJheSA9IFZlY3RvcjxSZWZQdHI8SlNDOjpXYXNtOjpNb2R1bGU+PjsKIAog
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGljOgpAQCAtOTUsMTEgKzk3LDEyIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYpOwotICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShW
ZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRy
PEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycyk7CisgICAgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+LCBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJzLCBz
dGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5Pik7CiAKICAgICBWZWN0b3I8dW5zaWduZWQg
Y2hhcj4gbV9kYXRhOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXk+IG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXk+IG1fc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PiBtX3dhc21Nb2R1bGVzQXJyYXk7CiAgICAg
VmVjdG9yPFN0cmluZz4gbV9ibG9iVVJMczsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>