<?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>225289</bug_id>
          
          <creation_ts>2021-05-02 19:22:33 -0700</creation_ts>
          <short_desc>Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory()</short_desc>
          <delta_ts>2021-05-10 18:30:46 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225255</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>225522</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756089</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-02 19:22:33 -0700</bug_when>
    <thetext>Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756092</commentid>
    <comment_count>1</comment_count>
      <attachid>427537</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-02 19:32:06 -0700</bug_when>
    <thetext>Created attachment 427537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756178</commentid>
    <comment_count>2</comment_count>
      <attachid>427558</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 08:03:46 -0700</bug_when>
    <thetext>Created attachment 427558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756213</commentid>
    <comment_count>3</comment_count>
      <attachid>427558</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-03 10:02:25 -0700</bug_when>
    <thetext>Comment on attachment 427558
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=427558&amp;action=review

&gt; Source/WTF/wtf/FileSystem.cpp:493
&gt;  bool deleteFile(const String&amp; path)

Maybe later we want to add a new call that matches more directly what std::filesystem::remove does, and remove these? I don’t think all callers *need* to do the &quot;only do it if it’s a file/directory&quot; version; it’s just that before we were starting by mirroring that feature of the POSIX API where unlink is for files only and rmdir is for directories only. Now we are in a funny place where we are more work for a semantic callers might not need.

&gt; Source/WTF/wtf/FileSystem.cpp:506
&gt;  bool deleteEmptyDirectory(const String&amp; path)

Given the complexity of all the &quot;.DS_Store&quot; stuff on Mac, maybe we should consider eventually getting rid of deleteEmptyDirectory to instead use a function that can delete even non-empty ones. I suppose it’s a safety measure to prevent deleting a lot of files that we use deleteEmptyDirectory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756214</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 10:07:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 427558 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427558&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/FileSystem.cpp:493
&gt; &gt;  bool deleteFile(const String&amp; path)
&gt; 
&gt; Maybe later we want to add a new call that matches more directly what
&gt; std::filesystem::remove does, and remove these? I don’t think all callers
&gt; *need* to do the &quot;only do it if it’s a file/directory&quot; version; it’s just
&gt; that before we were starting by mirroring that feature of the POSIX API
&gt; where unlink is for files only and rmdir is for directories only. Now we are
&gt; in a funny place where we are more work for a semantic callers might not
&gt; need.

Yes, I agree. I will look into this. For now, I figure the safest choice is to maintain pre-existing behavior until I can check all call sites.

&gt; 
&gt; &gt; Source/WTF/wtf/FileSystem.cpp:506
&gt; &gt;  bool deleteEmptyDirectory(const String&amp; path)
&gt; 
&gt; Given the complexity of all the &quot;.DS_Store&quot; stuff on Mac, maybe we should
&gt; consider eventually getting rid of deleteEmptyDirectory to instead use a
&gt; function that can delete even non-empty ones. I suppose it’s a safety
&gt; measure to prevent deleting a lot of files that we use deleteEmptyDirectory.

I think we view deleteEmptyDirectory() as a way to avoid deleting non-webkit files in webkit folders. For example, I have a database IndexedDB.db in a IndexedDB/ folder and I want to remove the database. We usually call removeFile(IndexedDB.db) to remove our database, then deleteEmptyDirectory(&quot;IndexedDB/&quot;) to remove the folder but only if there is nothing else in it. I guess one worry is that the user might put a file in that WebKit directory and we wouldn&apos;t want to delete it. It seems unlikely to happen in practice but we try to stay on the safe side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756221</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-03 10:23:35 -0700</bug_when>
    <thetext>Committed r276906 (237251@main): &lt;https://commits.webkit.org/237251@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427558.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756222</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-03 10:24:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/77460938&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427537</attachid>
            <date>2021-05-02 19:32:06 -0700</date>
            <delta_ts>2021-05-03 08:03:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225289-20210502193206.patch</filename>
            <type>text/plain</type>
            <size>14376</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ODkyNTBhMzc2ZDU5YTE0YjYyNzkzNjFmNGZmMTdhYjFjMzc3Y2U2Li4wMWU5NmRiMDhiODE2OTlm
MGE3MTY1MmFjNGUzYmUwYmU1MjIxNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlc3RvcmUgcHJlLXIyNzY4NzkgYmVoYXZpb3IgZm9yIEZpbGVTeXN0ZW06OmRl
bGV0ZUZpbGUoKSBhbmQgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJ1aWxkLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWc6CisKIDIwMjEt
MDUtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFydCBs
ZXZlcmFnaW5nIHN0ZDo6ZmlsZXN5c3RlbSBpbiBXVEY6OkZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMmZmMjkx
MDFlZWZmYjYxZTIyYzJiYTkyOGQ1ZDllZGI2Y2IyZDkyNC4uNDgxNWU4NDNjYjU5MjRiYjY2NDQx
YTM3MmNmNGE2NTg3NDhiZmFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0wNS0wMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3RvcmUgcHJlLXIyNzY4
NzkgYmVoYXZpb3IgZm9yIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoKSBhbmQgRmlsZVN5c3RlbTo6
ZGVsZXRlRW1wdHlEaXJlY3RvcnkoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1Mjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVzdG9yZSBwcmUtcjI3Njg3OSBiZWhhdmlvciBmb3IgRmlsZVN5c3Rl
bTo6ZGVsZXRlRmlsZSgpIGFuZCBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSgpIHRv
CisgICAgICAgIHJlZHVjZSB0aGUgcmlzayBvZiByZWdyZXNzaW9ucy4gSW4gcGFydGljdWxhciwg
Y2FsbGluZyBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKCkgb24gYW4gZW1wdHkgZGlyZWN0b3J5Cisg
ICAgICAgIG5vdyBmYWlscyBhbmQgY2FsbGluZyBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVj
dG9yeSgpIG9uIGEgbm9uLWRpcmVjdG9yeSBub3cgZmFpbHMuCisKKyAgICAgICAgSSBoYXZlIGFs
c28gZ290dGVuIHJpZCBvZiB0aGUgbWFjT1Mtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgZGVs
ZXRlRW1wdHlEaXJlY3RvcnkoKSBhbmQgbWVyZ2VkIHRoZQorICAgICAgICBuZWVkZWQgYmVoYXZp
b3IgKERlYWxpbmcgd2l0aCAuRFNfU3RvcmUgZmlsZXMpIHRvIHRoZSBnZW5lcmljIGZ1bmN0aW9u
LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lz
dGVtSW1wbDo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpkZWxl
dGVFbXB0eURpcmVjdG9yeSk6CisgICAgICAgICogd3RmL21hYy9GaWxlU3lzdGVtTWFjLm1tOgor
ICAgICAgICAoV1RGOjpGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6IERlbGV0ZWQu
CisKIDIwMjEtMDUtMDIgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3BsYXlQMyBpbiBwcmVw
YXJhdGlvbiBmb3IgRGlzcGxheVAzIGNhbnZhcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCmluZGV4
IGM0YjRkNjYzODVkNTBiZjE0MWRjMmU0MmY1ZTBhZDcxZTJjNmNjN2IuLjVmYjU2MDE1ZmJkMDg4
NzlhMGRiYzlhYjc1MmQxM2QyZjE0MzM4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKQEAg
LTI3LDcgKzI3LDcgQEAgREVGSU5FU19NT0RVTEUgPSBZRVM7CiBNT0RVTEVNQVBfRklMRSA9ICQo
U1JDUk9PVCkvSmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogCiAvLyBQcmV2ZW50IEMrKyBzdGFu
ZGFyZCBsaWJyYXJ5IG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2Vw
dGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KLU9USEVSX0xE
RkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWJhZF9h
bGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pU
U1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWmRsUHZTXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNfXzE4
ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5j
dGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0
aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRWNsRVMz
X1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0Mx
N0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDFFdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9y
RVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThm
dW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUVk5TdDNfXzExN2Jh
ZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEw
ZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTExX19yYW5n
ZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lz
dGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRfY0xiMUVFMTNfX3JhbmdlX2JlZ2lu
RVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThf
UGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjI3X19pc19j
cHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJp
bmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE1
X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5T
dDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVO
U185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlw
ZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvcklj
RUVFRVM4X1M4XzsKK09USEVSX0xERkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWlRJU3Q5
ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMx
XzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklE
RUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNK
U0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5
SVBLY1M0X2NMYjFFRTExX19yYW5nZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRf
Y0xiMUVFMTNfX3JhbmdlX2JlZ2luRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185
ZW5hYmxlX2lmSVhzcjI3X19pc19jcHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0
dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRv
ckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmls
ZXN5c3RlbThfUGF0aENWVEljRTE1X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18xMmJhc2ljX3N0
cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0
X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3YXJkX2l0ZXJh
dG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9f
Wk5LU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcmRlRXYgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9p
dGVyYXRvcnBwRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVz
eXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTFfX3JhbmdlX2Vu
ZEVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTNfX3JhbmdlX2JlZ2luRVBL
YyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTRwYXRo
ZFZFUktTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0
ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3NvdXJjZUlBMTBfY0VFdlJOU18xMmJhc2ljX3N0cmlu
Z0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXzsKIAogT1RIRVJf
TERGTEFHU19CQVNFID0gJChPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUykgLWZvcmNlX2xvYWQg
IiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJX
VEYuYSI7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQpICQoT1RI
RVJfTERGTEFHU19CQVNFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
Y3BwIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggNDY0MTFhMWNmNjBkZTk5
NThjYTM2MzY4ZWYxNzc0N2EwODVlNzNjNC4uMDJjZTMxNGNjNmYzNzYzYzNmOThjOTEyMmJkODZh
MDMzNTQyYmVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTQ5MywxOSArNDkzLDQyIEBAIGJv
b2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiBib29sIGRlbGV0ZUZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKQogewogICAgIHN0ZDo6ZXJyb3JfY29kZSBlYzsKKyAgICBzdGQ6OmZpbGVz
eXN0ZW06OnBhdGggZnNQYXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEo
KTsKKworICAgIGF1dG8gZmlsZVN0YXR1cyA9IHN0ZDo6ZmlsZXN5c3RlbTo6c3ltbGlua19zdGF0
dXMoZnNQYXRoLCBlYyk7CisgICAgaWYgKGVjIHx8IGZpbGVTdGF0dXMudHlwZSgpID09IHN0ZDo6
ZmlsZXN5c3RlbTo6ZmlsZV90eXBlOjpkaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIC8vIHJlbW92ZSgpIHJldHVybnMgZmFsc2Ugb24gZXJyb3Igc28gbm8gbmVlZCB0byBj
aGVjayBlYy4KICAgICByZXR1cm4gc3RkOjpmaWxlc3lzdGVtOjpyZW1vdmUoZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSwgZWMpOwogfQogCi0vLyBXZSBjdXJyZW50bHkgdXNl
IGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIG9uIG1hY09TIHRvIGRlYWwgd2l0aCAuRFNfU3Rv
cmUgZmlsZXMgdGhhdCBtYXkgYmUgcHJlc2VudCBpbiBvdGhlcndpc2UgZW1wdHkgZGlyZWN0b3Jp
ZXMuCi0jaWYgIVBMQVRGT1JNKE1BQykKIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJiBwYXRoKQogewogICAgIHN0ZDo6ZXJyb3JfY29kZSBlYzsKKyAgICBzdGQ6OmZpbGVz
eXN0ZW06OnBhdGggZnNQYXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEo
KTsKKworICAgIGF1dG8gZmlsZVN0YXR1cyA9IHN0ZDo6ZmlsZXN5c3RlbTo6c3ltbGlua19zdGF0
dXMoZnNQYXRoLCBlYyk7CisgICAgaWYgKGVjIHx8IGZpbGVTdGF0dXMudHlwZSgpICE9IHN0ZDo6
ZmlsZXN5c3RlbTo6ZmlsZV90eXBlOjpkaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIGNvbnRhaW5zU2luZ2xlRFNTdG9yZUZpbGUg
PSBmYWxzZTsKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogc3RkOjpmaWxlc3lzdGVtOjpkaXJlY3Rv
cnlfaXRlcmF0b3IoZnNQYXRoKSkgeworICAgICAgICBpZiAoZW50cnkucGF0aCgpLmZpbGVuYW1l
KCkgPT0gIi5EU19TdG9yZSIpCisgICAgICAgICAgICBjb250YWluc1NpbmdsZURTU3RvcmVGaWxl
ID0gdHJ1ZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjb250YWluc1NpbmdsZURTU3Rv
cmVGaWxlID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBpZiAoY29udGFpbnNTaW5nbGVEU1N0b3JlRmlsZSkKKyAgICAgICAgc3RkOjpmaWxlc3lzdGVt
OjpyZW1vdmUoZnNQYXRoIC8gIi5EU19TdG9yZSIsIGVjKTsKKyNlbmRpZgorCiAgICAgLy8gcmVt
b3ZlKCkgcmV0dXJucyBmYWxzZSBvbiBlcnJvciBzbyBubyBuZWVkIHRvIGNoZWNrIGVjLgotICAg
IHJldHVybiBzdGQ6OmZpbGVzeXN0ZW06OnJlbW92ZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
cGF0aCkuZGF0YSgpLCBlYyk7CisgICAgcmV0dXJuIHN0ZDo6ZmlsZXN5c3RlbTo6cmVtb3ZlKGZz
UGF0aCwgZWMpOwogfQotI2VuZGlmCiAKIGJvb2wgbW92ZUZpbGUoY29uc3QgU3RyaW5nJiBvbGRQ
YXRoLCBjb25zdCBTdHJpbmcmIG5ld1BhdGgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9tYWMvRmlsZVN5c3RlbU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL21hYy9GaWxlU3lzdGVtTWFj
Lm1tCmluZGV4IDkyNjkyYTE2ZmJhNWIxNTI3OGM3NzJmNzU2ZTU1M2ExMTA3NTVmMmIuLjVlMTkz
MDA1NjliNjIxY2I0YjljZjljMGU3ZDYyMzQ1MTc3M2NhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL21hYy9GaWxlU3lzdGVtTWFjLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL21hYy9GaWxl
U3lzdGVtTWFjLm1tCkBAIC0zNCwyMCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotYm9v
bCBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCi17
Ci0gICAgYXV0byBmaWxlTWFuYWdlciA9IGFkb3B0TlMoW1tOU0ZpbGVNYW5hZ2VyIGFsbG9jXSBp
bml0XSk7Ci0KLSAgICBpZiAoTlNBcnJheSAqZGlyZWN0b3J5Q29udGVudHMgPSBbZmlsZU1hbmFn
ZXIgY29udGVudHNPZkRpcmVjdG9yeUF0UGF0aDpwYXRoIGVycm9yOm51bGxwdHJdKSB7Ci0gICAg
ICAgIC8vIEV4cGxpY2l0bHkgbG9vayBmb3IgYW5kIGRlbGV0ZSAuRFNfU3RvcmUgZmlsZXMuCi0g
ICAgICAgIGlmIChkaXJlY3RvcnlDb250ZW50cy5jb3VudCA9PSAxICYmIFtkaXJlY3RvcnlDb250
ZW50cy5maXJzdE9iamVjdCBpc0VxdWFsVG9TdHJpbmc6QCIuRFNfU3RvcmUiXSkKLSAgICAgICAg
ICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOltwYXRoIHN0cmluZ0J5QXBwZW5kaW5n
UGF0aENvbXBvbmVudDpkaXJlY3RvcnlDb250ZW50cy5maXJzdE9iamVjdF0gZXJyb3I6bnVsbHB0
cl07Ci0gICAgfQotCi0gICAgLy8gcm1kaXIoLi4uKSByZXR1cm5zIDAgb24gc3VjY2Vzc2Z1bCBk
ZWxldGlvbiBvZiB0aGUgcGF0aCBhbmQgbm9uLXplcm8gaW4gYW55IG90aGVyIGNhc2UgKGluY2x1
ZGluZyBpbnZhbGlkIHBlcm1pc3Npb25zIG9yIG5vbi1leGlzdGVudCBmaWxlKQotICAgIHJldHVy
biAhcm1kaXIoRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEo
KSk7Ci19Ci0KIHZvaWQgRmlsZVN5c3RlbTo6c2V0TWV0YWRhdGFVUkwoY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIG1ldGFkYXRhVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyKQogewogICAgIFN0cmluZyB1cmxTdHJpbmc7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTkyMTA5ZmY2ZDAzYmFmYTBlMzg5ZWUwY2E5ZjAz
ZjlkMjI2Y2NiZi4uY2VkM2UwMGFlZTg1ZjFkZTUyYzA4NzE0NzQ2OWY0OWM3YmRhMzlhZiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIxLTA1LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVzdG9yZSBwcmUtcjI3Njg3OSBiZWhhdmlvciBmb3IgRmlsZVN5c3RlbTo6ZGVsZXRl
RmlsZSgpIGFuZCBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUyODkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMjEtMDUtMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFydCBsZXZlcmFnaW5nIHN0ZDo6
ZmlsZXN5c3RlbSBpbiBXVEY6OkZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggYTk5YzMxZmRmZmFjNjRiYzA5ODRiYmZjM2Y4ZmU1
Y2Y5YzJkMThjNS4uMGVjZGE5YjllNjY4YTJkYjAwZWFlNjk0MDJhNTQyNTZjYmEyMjk1OCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTIyMyw2
ICsyMjMsMTMgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBkZWxldGVGaWxlKQogICAgIEVYUEVD
VF9GQUxTRShGaWxlU3lzdGVtOjpkZWxldGVGaWxlKHRlbXBGaWxlUGF0aCgpKSk7CiB9CiAKK1RF
U1RfRihGaWxlU3lzdGVtVGVzdCwgZGVsZXRlRmlsZU9uRW1wdHlEaXJlY3RvcnkpCit7CisgICAg
RVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlGb2xkZXJQYXRoKCkp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZSh0ZW1wRW1wdHlGb2xk
ZXJQYXRoKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBF
bXB0eUZvbGRlclBhdGgoKSkpOworfQorCiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGRlbGV0ZUVt
cHR5RGlyZWN0b3J5KQogewogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
dGVtcEVtcHR5Rm9sZGVyUGF0aCgpKSk7CkBAIC0yMzEsNiArMjM4LDY0IEBAIFRFU1RfRihGaWxl
U3lzdGVtVGVzdCwgZGVsZXRlRW1wdHlEaXJlY3RvcnkpCiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVT
eXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOwogfQog
CisjaWYgUExBVEZPUk0oTUFDKQorVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBkZWxldGVFbXB0eURp
cmVjdG9yeUNvbnRhaW5pbmdEU1N0b3JlRmlsZSkKK3sKKyAgICBFWFBFQ1RfVFJVRShGaWxlU3lz
dGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOworCisgICAgLy8gQ3JlYXRl
IC5EU1N0b3JlIGZpbGUuCisgICAgYXV0byBkc1N0b3JlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICIuRFNfU3RvcmUiKTsK
KyAgICBhdXRvIGRzU3RvcmVIYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShkc1N0b3JlUGF0
aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CisgICAgRmlsZVN5c3RlbTo6d3Jp
dGVUb0ZpbGUoZHNTdG9yZUhhbmRsZSwgRmlsZVN5c3RlbVRlc3REYXRhLCBzdHJsZW4oRmlsZVN5
c3RlbVRlc3REYXRhKSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGRzU3RvcmVIYW5kbGUp
OworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZHNTdG9yZVBhdGgpKTsK
KworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHRlbXBF
bXB0eUZvbGRlclBhdGgoKSkpOworICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOworfQorI2VuZGlmCisKK1RFU1RfRihGaWxlU3lz
dGVtVGVzdCwgZGVsZXRlRW1wdHlEaXJlY3RvcnlPbk5vbkVtcHR5RGlyZWN0b3J5KQoreworICAg
IEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEVtcHR5Rm9sZGVyUGF0aCgp
KSk7CisKKyAgICAvLyBDcmVhdGUgLkRTU3RvcmUgZmlsZS4KKyAgICBhdXRvIGRzU3RvcmVQYXRo
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBh
dGgoKSwgIi5EU19TdG9yZSIpOworICAgIGF1dG8gZHNTdG9yZUhhbmRsZSA9IEZpbGVTeXN0ZW06
Om9wZW5GaWxlKGRzU3RvcmVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsK
KyAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShkc1N0b3JlSGFuZGxlLCBGaWxlU3lzdGVtVGVz
dERhdGEsIHN0cmxlbihGaWxlU3lzdGVtVGVzdERhdGEpKTsKKyAgICBGaWxlU3lzdGVtOjpjbG9z
ZUZpbGUoZHNTdG9yZUhhbmRsZSk7CisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhkc1N0b3JlUGF0aCkpOworCisgICAgLy8gQ3JlYXRlIGEgZHVtbXkgZmlsZS4KKyAgICBh
dXRvIGR1bW15RmlsZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
dGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZHVtbXlGaWxlIik7CisgICAgYXV0byBkdW1teUZpbGVI
YW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShkdW1teUZpbGVQYXRoLCBGaWxlU3lzdGVtOjpG
aWxlT3Blbk1vZGU6OldyaXRlKTsKKyAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShkdW1teUZp
bGVIYW5kbGUsIEZpbGVTeXN0ZW1UZXN0RGF0YSwgc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSkp
OworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShkdW1teUZpbGVIYW5kbGUpOworICAgIEVYUEVD
VF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZHVtbXlGaWxlUGF0aCkpOworCisgICAgRVhQ
RUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHRlbXBFbXB0eUZvbGRl
clBhdGgoKSkpOworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEVt
cHR5Rm9sZGVyUGF0aCgpKSk7CisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0
cyhkc1N0b3JlUGF0aCkpOworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
ZHVtbXlGaWxlUGF0aCkpOworCisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZGVsZXRlTm9u
RW1wdHlEaXJlY3RvcnkodGVtcEVtcHR5Rm9sZGVyUGF0aCgpKSk7CisgICAgRVhQRUNUX0ZBTFNF
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEVtcHR5Rm9sZGVyUGF0aCgpKSk7Cit9CisKK1RF
U1RfRihGaWxlU3lzdGVtVGVzdCwgZGVsZXRlRW1wdHlEaXJlY3RvcnlPbkFSZWd1bGFyRmlsZSkK
K3sKKyAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxlUGF0aCgp
KSk7CisgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHRl
bXBGaWxlUGF0aCgpKSk7CisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0
ZW1wRmlsZVBhdGgoKSkpOworfQorCitURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGRlbGV0ZUVtcHR5
RGlyZWN0b3J5RG9lc05vdEV4aXN0KQoreworICAgIGF1dG8gZG9lc05vdEV4aXN0UGF0aCA9IEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCks
ICJkb2VzLW5vdC1leGlzdCIpOworICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKGRvZXNOb3RFeGlzdFBhdGgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZGVs
ZXRlRW1wdHlEaXJlY3RvcnkoZG9lc05vdEV4aXN0UGF0aCkpOworfQorCiBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIG1vdmVGaWxlKQogewogICAgIGF1dG8gZGVzdGluYXRpb24gPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAidGVtcEZp
bGUtbW92ZWQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427558</attachid>
            <date>2021-05-03 08:03:46 -0700</date>
            <delta_ts>2021-05-03 10:23:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225289-20210503080345.patch</filename>
            <type>text/plain</type>
            <size>14425</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ODkyNTBhMzc2ZDU5YTE0YjYyNzkzNjFmNGZmMTdhYjFjMzc3Y2U2Li4wMWU5NmRiMDhiODE2OTlm
MGE3MTY1MmFjNGUzYmUwYmU1MjIxNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlc3RvcmUgcHJlLXIyNzY4NzkgYmVoYXZpb3IgZm9yIEZpbGVTeXN0ZW06OmRl
bGV0ZUZpbGUoKSBhbmQgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJ1aWxkLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWc6CisKIDIwMjEt
MDUtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFydCBs
ZXZlcmFnaW5nIHN0ZDo6ZmlsZXN5c3RlbSBpbiBXVEY6OkZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMmZmMjkx
MDFlZWZmYjYxZTIyYzJiYTkyOGQ1ZDllZGI2Y2IyZDkyNC4uNDgxNWU4NDNjYjU5MjRiYjY2NDQx
YTM3MmNmNGE2NTg3NDhiZmFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0wNS0wMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3RvcmUgcHJlLXIyNzY4
NzkgYmVoYXZpb3IgZm9yIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoKSBhbmQgRmlsZVN5c3RlbTo6
ZGVsZXRlRW1wdHlEaXJlY3RvcnkoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1Mjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVzdG9yZSBwcmUtcjI3Njg3OSBiZWhhdmlvciBmb3IgRmlsZVN5c3Rl
bTo6ZGVsZXRlRmlsZSgpIGFuZCBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSgpIHRv
CisgICAgICAgIHJlZHVjZSB0aGUgcmlzayBvZiByZWdyZXNzaW9ucy4gSW4gcGFydGljdWxhciwg
Y2FsbGluZyBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKCkgb24gYW4gZW1wdHkgZGlyZWN0b3J5Cisg
ICAgICAgIG5vdyBmYWlscyBhbmQgY2FsbGluZyBGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVj
dG9yeSgpIG9uIGEgbm9uLWRpcmVjdG9yeSBub3cgZmFpbHMuCisKKyAgICAgICAgSSBoYXZlIGFs
c28gZ290dGVuIHJpZCBvZiB0aGUgbWFjT1Mtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgZGVs
ZXRlRW1wdHlEaXJlY3RvcnkoKSBhbmQgbWVyZ2VkIHRoZQorICAgICAgICBuZWVkZWQgYmVoYXZp
b3IgKERlYWxpbmcgd2l0aCAuRFNfU3RvcmUgZmlsZXMpIHRvIHRoZSBnZW5lcmljIGZ1bmN0aW9u
LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lz
dGVtSW1wbDo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpkZWxl
dGVFbXB0eURpcmVjdG9yeSk6CisgICAgICAgICogd3RmL21hYy9GaWxlU3lzdGVtTWFjLm1tOgor
ICAgICAgICAoV1RGOjpGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6IERlbGV0ZWQu
CisKIDIwMjEtMDUtMDIgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3BsYXlQMyBpbiBwcmVw
YXJhdGlvbiBmb3IgRGlzcGxheVAzIGNhbnZhcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCmluZGV4
IGM0YjRkNjYzODVkNTBiZjE0MWRjMmU0MmY1ZTBhZDcxZTJjNmNjN2IuLjVmYjU2MDE1ZmJkMDg4
NzlhMGRiYzlhYjc1MmQxM2QyZjE0MzM4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKQEAg
LTI3LDcgKzI3LDcgQEAgREVGSU5FU19NT0RVTEUgPSBZRVM7CiBNT0RVTEVNQVBfRklMRSA9ICQo
U1JDUk9PVCkvSmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogCiAvLyBQcmV2ZW50IEMrKyBzdGFu
ZGFyZCBsaWJyYXJ5IG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2Vw
dGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KLU9USEVSX0xE
RkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWJhZF9h
bGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pU
U1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWmRsUHZTXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNfXzE4
ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5j
dGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0
aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRWNsRVMz
X1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0Mx
N0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDFFdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9y
RVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThm
dW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUVk5TdDNfXzExN2Jh
ZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEw
ZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTExX19yYW5n
ZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lz
dGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRfY0xiMUVFMTNfX3JhbmdlX2JlZ2lu
RVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThf
UGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjI3X19pc19j
cHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJp
bmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE1
X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5T
dDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVO
U185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlw
ZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvcklj
RUVFRVM4X1M4XzsKK09USEVSX0xERkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWlRJU3Q5
ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMx
XzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklE
RUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNK
U0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5
SVBLY1M0X2NMYjFFRTExX19yYW5nZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRf
Y0xiMUVFMTNfX3JhbmdlX2JlZ2luRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185
ZW5hYmxlX2lmSVhzcjI3X19pc19jcHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0
dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRv
ckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmls
ZXN5c3RlbThfUGF0aENWVEljRTE1X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18xMmJhc2ljX3N0
cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0
X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3YXJkX2l0ZXJh
dG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9f
Wk5LU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcmRlRXYgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9p
dGVyYXRvcnBwRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVz
eXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTFfX3JhbmdlX2Vu
ZEVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTNfX3JhbmdlX2JlZ2luRVBL
YyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTRwYXRo
ZFZFUktTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0
ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3NvdXJjZUlBMTBfY0VFdlJOU18xMmJhc2ljX3N0cmlu
Z0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXzsKIAogT1RIRVJf
TERGTEFHU19CQVNFID0gJChPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUykgLWZvcmNlX2xvYWQg
IiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJX
VEYuYSI7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQpICQoT1RI
RVJfTERGTEFHU19CQVNFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
Y3BwIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggNDY0MTFhMWNmNjBkZTk5
NThjYTM2MzY4ZWYxNzc0N2EwODVlNzNjNC4uMWZjZGJjZDZmMTE1M2Q3NjM3MzViOGJjYjc2ZDg4
NzZjZTQ4NTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTQ5MywxOSArNDkzLDQyIEBAIGJv
b2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiBib29sIGRlbGV0ZUZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKQogewogICAgIHN0ZDo6ZXJyb3JfY29kZSBlYzsKKyAgICBzdGQ6OmZpbGVz
eXN0ZW06OnBhdGggZnNQYXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEo
KTsKKworICAgIGF1dG8gZmlsZVN0YXR1cyA9IHN0ZDo6ZmlsZXN5c3RlbTo6c3ltbGlua19zdGF0
dXMoZnNQYXRoLCBlYyk7CisgICAgaWYgKGVjIHx8IGZpbGVTdGF0dXMudHlwZSgpID09IHN0ZDo6
ZmlsZXN5c3RlbTo6ZmlsZV90eXBlOjpkaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIC8vIHJlbW92ZSgpIHJldHVybnMgZmFsc2Ugb24gZXJyb3Igc28gbm8gbmVlZCB0byBj
aGVjayBlYy4KLSAgICByZXR1cm4gc3RkOjpmaWxlc3lzdGVtOjpyZW1vdmUoZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSwgZWMpOworICAgIHJldHVybiBzdGQ6OmZpbGVzeXN0
ZW06OnJlbW92ZShmc1BhdGgsIGVjKTsKIH0KIAotLy8gV2UgY3VycmVudGx5IHVzZSBhIGRpZmZl
cmVudCBpbXBsZW1lbnRhdGlvbiBvbiBtYWNPUyB0byBkZWFsIHdpdGggLkRTX1N0b3JlIGZpbGVz
IHRoYXQgbWF5IGJlIHByZXNlbnQgaW4gb3RoZXJ3aXNlIGVtcHR5IGRpcmVjdG9yaWVzLgotI2lm
ICFQTEFURk9STShNQUMpCiBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKICAgICBzdGQ6OmVycm9yX2NvZGUgZWM7CisgICAgc3RkOjpmaWxlc3lzdGVtOjpw
YXRoIGZzUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKS5kYXRhKCk7CisKKyAg
ICBhdXRvIGZpbGVTdGF0dXMgPSBzdGQ6OmZpbGVzeXN0ZW06OnN5bWxpbmtfc3RhdHVzKGZzUGF0
aCwgZWMpOworICAgIGlmIChlYyB8fCBmaWxlU3RhdHVzLnR5cGUoKSAhPSBzdGQ6OmZpbGVzeXN0
ZW06OmZpbGVfdHlwZTo6ZGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgYm9vbCBjb250YWluc1NpbmdsZURTU3RvcmVGaWxlID0gZmFsc2U7
CisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHN0ZDo6ZmlsZXN5c3RlbTo6ZGlyZWN0b3J5X2l0ZXJh
dG9yKGZzUGF0aCkpIHsKKyAgICAgICAgaWYgKGVudHJ5LnBhdGgoKS5maWxlbmFtZSgpID09ICIu
RFNfU3RvcmUiKQorICAgICAgICAgICAgY29udGFpbnNTaW5nbGVEU1N0b3JlRmlsZSA9IHRydWU7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY29udGFpbnNTaW5nbGVEU1N0b3JlRmlsZSA9
IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNv
bnRhaW5zU2luZ2xlRFNTdG9yZUZpbGUpCisgICAgICAgIHN0ZDo6ZmlsZXN5c3RlbTo6cmVtb3Zl
KGZzUGF0aCAvICIuRFNfU3RvcmUiLCBlYyk7CisjZW5kaWYKKwogICAgIC8vIHJlbW92ZSgpIHJl
dHVybnMgZmFsc2Ugb24gZXJyb3Igc28gbm8gbmVlZCB0byBjaGVjayBlYy4KLSAgICByZXR1cm4g
c3RkOjpmaWxlc3lzdGVtOjpyZW1vdmUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRh
dGEoKSwgZWMpOworICAgIHJldHVybiBzdGQ6OmZpbGVzeXN0ZW06OnJlbW92ZShmc1BhdGgsIGVj
KTsKIH0KLSNlbmRpZgogCiBib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29u
c3QgU3RyaW5nJiBuZXdQYXRoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvbWFjL0Zp
bGVTeXN0ZW1NYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRmlsZVN5c3RlbU1hYy5tbQppbmRl
eCA5MjY5MmExNmZiYTViMTUyNzhjNzcyZjc1NmU1NTNhMTEwNzU1ZjJiLi41ZTE5MzAwNTY5YjYy
MWNiNGI5Y2Y5YzBlN2Q2MjM0NTE3NzNjYWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9t
YWMvRmlsZVN5c3RlbU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRmlsZVN5c3RlbU1h
Yy5tbQpAQCAtMzQsMjAgKzM0LDYgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWJvb2wgRmlsZVN5
c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIGF1
dG8gZmlsZU1hbmFnZXIgPSBhZG9wdE5TKFtbTlNGaWxlTWFuYWdlciBhbGxvY10gaW5pdF0pOwot
Ci0gICAgaWYgKE5TQXJyYXkgKmRpcmVjdG9yeUNvbnRlbnRzID0gW2ZpbGVNYW5hZ2VyIGNvbnRl
bnRzT2ZEaXJlY3RvcnlBdFBhdGg6cGF0aCBlcnJvcjpudWxscHRyXSkgewotICAgICAgICAvLyBF
eHBsaWNpdGx5IGxvb2sgZm9yIGFuZCBkZWxldGUgLkRTX1N0b3JlIGZpbGVzLgotICAgICAgICBp
ZiAoZGlyZWN0b3J5Q29udGVudHMuY291bnQgPT0gMSAmJiBbZGlyZWN0b3J5Q29udGVudHMuZmly
c3RPYmplY3QgaXNFcXVhbFRvU3RyaW5nOkAiLkRTX1N0b3JlIl0pCi0gICAgICAgICAgICBbZmls
ZU1hbmFnZXIgcmVtb3ZlSXRlbUF0UGF0aDpbcGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6ZGlyZWN0b3J5Q29udGVudHMuZmlyc3RPYmplY3RdIGVycm9yOm51bGxwdHJdOwotICAg
IH0KLQotICAgIC8vIHJtZGlyKC4uLikgcmV0dXJucyAwIG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24g
b2YgdGhlIHBhdGggYW5kIG5vbi16ZXJvIGluIGFueSBvdGhlciBjYXNlIChpbmNsdWRpbmcgaW52
YWxpZCBwZXJtaXNzaW9ucyBvciBub24tZXhpc3RlbnQgZmlsZSkKLSAgICByZXR1cm4gIXJtZGly
KEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKS5kYXRhKCkpOwotfQot
CiB2b2lkIEZpbGVTeXN0ZW06OnNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBtZXRhZGF0YVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKIHsK
ICAgICBTdHJpbmcgdXJsU3RyaW5nOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGE5MjEwOWZmNmQwM2JhZmEwZTM4OWVlMGNhOWYwM2Y5ZDIyNmNj
YmYuLmNlZDNlMDBhZWU4NWYxZGU1MmMwODcxNDc0NjlmNDljN2JkYTM5YWYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wNS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJl
c3RvcmUgcHJlLXIyNzY4NzkgYmVoYXZpb3IgZm9yIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoKSBh
bmQgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIxLTA1LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQgbGV2ZXJhZ2luZyBzdGQ6OmZpbGVzeXN0
ZW0gaW4gV1RGOjpGaWxlU3lzdGVtCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
bGVTeXN0ZW0uY3BwCmluZGV4IGE5OWMzMWZkZmZhYzY0YmMwOTg0YmJmYzNmOGZlNWNmOWMyZDE4
YzUuLjBlY2RhOWI5ZTY2OGEyZGIwMGVhZTY5NDAyYTU0MjU2Y2JhMjI5NTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0yMjMsNiArMjIzLDEz
IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgZGVsZXRlRmlsZSkKICAgICBFWFBFQ1RfRkFMU0Uo
RmlsZVN5c3RlbTo6ZGVsZXRlRmlsZSh0ZW1wRmlsZVBhdGgoKSkpOwogfQogCitURVNUX0YoRmls
ZVN5c3RlbVRlc3QsIGRlbGV0ZUZpbGVPbkVtcHR5RGlyZWN0b3J5KQoreworICAgIEVYUEVDVF9U
UlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEVtcHR5Rm9sZGVyUGF0aCgpKSk7CisgICAg
RVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUodGVtcEVtcHR5Rm9sZGVyUGF0aCgp
KSk7CisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlGb2xk
ZXJQYXRoKCkpKTsKK30KKwogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBkZWxldGVFbXB0eURpcmVj
dG9yeSkKIHsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0
eUZvbGRlclBhdGgoKSkpOwpAQCAtMjMxLDYgKzIzOCw2NCBAQCBURVNUX0YoRmlsZVN5c3RlbVRl
c3QsIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KQogICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpk
ZWxldGVFbXB0eURpcmVjdG9yeSh0ZW1wRW1wdHlGb2xkZXJQYXRoKCkpKTsKIH0KIAorI2lmIFBM
QVRGT1JNKE1BQykKK1RFU1RfRihGaWxlU3lzdGVtVGVzdCwgZGVsZXRlRW1wdHlEaXJlY3RvcnlD
b250YWluaW5nRFNTdG9yZUZpbGUpCit7CisgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Zmls
ZUV4aXN0cyh0ZW1wRW1wdHlGb2xkZXJQYXRoKCkpKTsKKworICAgIC8vIENyZWF0ZSAuRFNTdG9y
ZSBmaWxlLgorICAgIGF1dG8gZHNTdG9yZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiLkRTX1N0b3JlIik7CisgICAgYXV0
byBkc1N0b3JlSGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUoZHNTdG9yZVBhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOworICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxl
KGRzU3RvcmVIYW5kbGUsIEZpbGVTeXN0ZW1UZXN0RGF0YSwgc3RybGVuKEZpbGVTeXN0ZW1UZXN0
RGF0YSkpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShkc1N0b3JlSGFuZGxlKTsKKyAgICBF
WFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRzU3RvcmVQYXRoKSk7CisKKyAgICBF
WFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSh0ZW1wRW1wdHlGb2xk
ZXJQYXRoKCkpKTsKKyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1w
RW1wdHlGb2xkZXJQYXRoKCkpKTsKK30KKyNlbmRpZgorCitURVNUX0YoRmlsZVN5c3RlbVRlc3Qs
IGRlbGV0ZUVtcHR5RGlyZWN0b3J5T25Ob25FbXB0eURpcmVjdG9yeSkKK3sKKyAgICBFWFBFQ1Rf
VFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOworCisg
ICAgLy8gQ3JlYXRlIC5EU1N0b3JlIGZpbGUuCisgICAgYXV0byBkc1N0b3JlUGF0aCA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICIu
RFNfU3RvcmUiKTsKKyAgICBhdXRvIGRzU3RvcmVIYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmls
ZShkc1N0b3JlUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CisgICAgRmls
ZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZHNTdG9yZUhhbmRsZSwgRmlsZVN5c3RlbVRlc3REYXRhLCBz
dHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGRz
U3RvcmVIYW5kbGUpOworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZHNT
dG9yZVBhdGgpKTsKKworICAgIC8vIENyZWF0ZSBhIGR1bW15IGZpbGUuCisgICAgYXV0byBkdW1t
eUZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0
eUZvbGRlclBhdGgoKSwgImR1bW15RmlsZSIpOworICAgIGF1dG8gZHVtbXlGaWxlSGFuZGxlID0g
RmlsZVN5c3RlbTo6b3BlbkZpbGUoZHVtbXlGaWxlUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5N
b2RlOjpXcml0ZSk7CisgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZHVtbXlGaWxlSGFuZGxl
LCBGaWxlU3lzdGVtVGVzdERhdGEsIHN0cmxlbihGaWxlU3lzdGVtVGVzdERhdGEpKTsKKyAgICBG
aWxlU3lzdGVtOjpjbG9zZUZpbGUoZHVtbXlGaWxlSGFuZGxlKTsKKyAgICBFWFBFQ1RfVFJVRShG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKGR1bW15RmlsZVBhdGgpKTsKKworICAgIEVYUEVDVF9GQUxT
RShGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSh0ZW1wRW1wdHlGb2xkZXJQYXRoKCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZvbGRl
clBhdGgoKSkpOworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZHNTdG9y
ZVBhdGgpKTsKKyAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGR1bW15Rmls
ZVBhdGgpKTsKKworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmRlbGV0ZU5vbkVtcHR5RGly
ZWN0b3J5KHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOworICAgIEVYUEVDVF9GQUxTRShGaWxlU3lz
dGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOworfQorCitURVNUX0YoRmls
ZVN5c3RlbVRlc3QsIGRlbGV0ZUVtcHR5RGlyZWN0b3J5T25BUmVndWxhckZpbGUpCit7CisgICAg
RVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRmlsZVBhdGgoKSkpOworICAg
IEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURpcmVjdG9yeSh0ZW1wRmlsZVBh
dGgoKSkpOworICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVQ
YXRoKCkpKTsKK30KKworVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBkZWxldGVFbXB0eURpcmVjdG9y
eURvZXNOb3RFeGlzdCkKK3sKKyAgICBhdXRvIGRvZXNOb3RFeGlzdFBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1u
b3QtZXhpc3QiKTsKKyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhkb2Vz
Tm90RXhpc3RQYXRoKSk7CisgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5
RGlyZWN0b3J5KGRvZXNOb3RFeGlzdFBhdGgpKTsKK30KKwogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0
LCBtb3ZlRmlsZSkKIHsKICAgICBhdXRvIGRlc3RpbmF0aW9uID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInRlbXBGaWxlLW1vdmVk
Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>