<?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>227359</bug_id>
          
          <creation_ts>2021-06-24 09:58:46 -0700</creation_ts>
          <short_desc>[Model] Create a sandbox extension for a temporary directory to store model resources</short_desc>
          <delta_ts>2021-06-25 11:20:32 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>ggaren</cc>
    
    <cc>pvollan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772323</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 09:58:46 -0700</bug_when>
    <thetext>[Model] Create a sandbox extension for a temporary directory to store model resources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772325</commentid>
    <comment_count>1</comment_count>
      <attachid>432178</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 10:00:54 -0700</bug_when>
    <thetext>Created attachment 432178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772329</commentid>
    <comment_count>2</comment_count>
      <attachid>432178</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-24 10:07:25 -0700</bug_when>
    <thetext>Comment on attachment 432178
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:77
&gt; +@property (nonatomic, copy, setter=_setModelElementCacheDirectory:) NSURL *_modelElementCacheDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

Given we don&apos;t intend to ever ship this kind of thing, I would not add any SPI for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772331</commentid>
    <comment_count>3</comment_count>
      <attachid>432179</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 10:08:54 -0700</bug_when>
    <thetext>Created attachment 432179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772338</commentid>
    <comment_count>4</comment_count>
      <attachid>432182</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 10:12:42 -0700</bug_when>
    <thetext>Created attachment 432182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772339</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 10:13:00 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 432178 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432178&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:77
&gt; &gt; +@property (nonatomic, copy, setter=_setModelElementCacheDirectory:) NSURL *_modelElementCacheDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; Given we don&apos;t intend to ever ship this kind of thing, I would not add any
&gt; SPI for this.

I removed this method and its implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772423</commentid>
    <comment_count>6</comment_count>
      <attachid>432182</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-06-24 12:56:07 -0700</bug_when>
    <thetext>Comment on attachment 432182
Patch

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

&gt; Source/WebKit/WebProcess/WebProcess.cpp:576
&gt; +    if (!parameters.modelElementCacheDirectory.isEmpty())

This looks like it&apos;s querying the filesystem to ask if the directory is empty, but I think it&apos;s asking if the string is empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772426</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-24 13:04:57 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; Comment on attachment 432182 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432182&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:576
&gt; &gt; +    if (!parameters.modelElementCacheDirectory.isEmpty())
&gt; 
&gt; This looks like it&apos;s querying the filesystem to ask if the directory is
&gt; empty, but I think it&apos;s asking if the string is empty.

I believe that is correct, we only want to set the name of the directory if it&apos;s not an empty string. This follows the approach taken for the media cache directory just before this call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772567</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-25 00:14:12 -0700</bug_when>
    <thetext>Committed r279267 (239146@main): &lt;https://commits.webkit.org/239146@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772568</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-25 00:15:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/79763702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772719</commentid>
    <comment_count>10</comment_count>
      <attachid>432182</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-25 10:06:15 -0700</bug_when>
    <thetext>Comment on attachment 432182
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:327
&gt; +    return tempDirectoryFileSystemRepresentation(&quot;ModelElement&quot;, ShouldCreateDirectory::No);

Let&apos;s call this &quot;ModelElementCache&quot;, since that&apos;s what we call it in code.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:270
&gt; +    if (!m_configuration-&gt;modelElementCacheDirectory().isEmpty())
&gt; +        m_resolvedConfiguration-&gt;setModelElementCacheDirectory(resolveAndCreateReadWriteDirectoryForSandboxExtension(m_configuration-&gt;modelElementCacheDirectory()));

I think we need to nuke this directory unconditionally on launch; else we have a privacy bug if we ever crash or leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772720</commentid>
    <comment_count>11</comment_count>
      <attachid>432182</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-25 10:07:28 -0700</bug_when>
    <thetext>Comment on attachment 432182
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:52
&gt; +#if ENABLE(MODEL_ELEMENT)
&gt; +        setModelElementCacheDirectory(WebsiteDataStore::defaultModelElementCacheDirectory());
&gt; +#endif

Since this is the persistent case only, does this mean that model elements will be broken in Private Browsing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772725</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-25 10:49:54 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #10)
&gt; Comment on attachment 432182 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432182&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:327
&gt; &gt; +    return tempDirectoryFileSystemRepresentation(&quot;ModelElement&quot;, ShouldCreateDirectory::No);
&gt; 
&gt; Let&apos;s call this &quot;ModelElementCache&quot;, since that&apos;s what we call it in code.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:270
&gt; &gt; +    if (!m_configuration-&gt;modelElementCacheDirectory().isEmpty())
&gt; &gt; +        m_resolvedConfiguration-&gt;setModelElementCacheDirectory(resolveAndCreateReadWriteDirectoryForSandboxExtension(m_configuration-&gt;modelElementCacheDirectory()));
&gt; 
&gt; I think we need to nuke this directory unconditionally on launch; else we
&gt; have a privacy bug if we ever crash or leak.

That seems like a good idea, but NOTE, we know we cannot ship this. This is just in place until we have the SPI to do in memory loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772726</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-06-25 10:55:13 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #12)
&gt; (In reply to Geoffrey Garen from comment #10)
&gt; &gt; Comment on attachment 432182 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=432182&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:327
&gt; &gt; &gt; +    return tempDirectoryFileSystemRepresentation(&quot;ModelElement&quot;, ShouldCreateDirectory::No);
&gt; &gt; 
&gt; &gt; Let&apos;s call this &quot;ModelElementCache&quot;, since that&apos;s what we call it in code.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:270
&gt; &gt; &gt; +    if (!m_configuration-&gt;modelElementCacheDirectory().isEmpty())
&gt; &gt; &gt; +        m_resolvedConfiguration-&gt;setModelElementCacheDirectory(resolveAndCreateReadWriteDirectoryForSandboxExtension(m_configuration-&gt;modelElementCacheDirectory()));
&gt; &gt; 
&gt; &gt; I think we need to nuke this directory unconditionally on launch; else we
&gt; &gt; have a privacy bug if we ever crash or leak.
&gt; 
&gt; That seems like a good idea, but NOTE, we know we cannot ship this. This is
&gt; just in place until we have the SPI to do in memory loading.

Perhaps we should wrap the temporary code in a HAVE_ macro then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772730</commentid>
    <comment_count>14</comment_count>
      <attachid>432182</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-06-25 11:20:32 -0700</bug_when>
    <thetext>Comment on attachment 432182
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:327
&gt;&gt;&gt;&gt; +    return tempDirectoryFileSystemRepresentation(&quot;ModelElement&quot;, ShouldCreateDirectory::No);
&gt;&gt;&gt; 
&gt;&gt;&gt; Let&apos;s call this &quot;ModelElementCache&quot;, since that&apos;s what we call it in code.
&gt;&gt; 
&gt;&gt; That seems like a good idea, but NOTE, we know we cannot ship this. This is just in place until we have the SPI to do in memory loading.
&gt; 
&gt; Perhaps we should wrap the temporary code in a HAVE_ macro then?

I&apos;d suggest having a FIXME comment with a bug/radar reference to remove this temporary code once the SPI exists.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432178</attachid>
            <date>2021-06-24 10:00:54 -0700</date>
            <delta_ts>2021-06-24 10:08:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227359-20210624190053.patch</filename>
            <type>text/plain</type>
            <size>20210</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRlY2VjOTBkZDZjYjQy
NGM0YjJjYjY0NDA2NzFlZjI0NDk0ODAxMi4uOGU2NzNkNjNjYWVjMTUyY2U5YTkxM2YyZDA5MzFm
ZTc0NWRiODcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBt
b2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBTUElzIHdlIHdpbGwgdXNlIHRvIHJlbmRlciA8bW9kZWw+IHJlc291cmNlcyBl
eHBlY3QgYSBmaWxlIFVSTCB0byBsb2FkIGFuZCByZW5kZXIgdGhlIG1vZGVsLgorICAgICAgICBC
ZWZvcmUgd2UgYWRvcHQgdGhlc2UgU1BJcywgd2UgZXh0ZW5kIHRoZSBzYW5kYm94IHRvIGFsbG93
IHdyaXRpbmcgdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdoZXJlCisgICAgICAgIHdlIHdpbGwg
c3RvcmUgdGhlc2UgcmVzb3VyY2VzLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkTW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6
c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudDo6bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisKIDIwMjEtMDYtMjAgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEhpdFRlc3RMb2NhdGlvbjo6bV9i
b3VuZGluZ0JveCBzaG91bGQgYmUgYWJsZSBob2xkIHN1YnBpeGVsIHZhbHVlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAwMDY5ZDkwZjYxZTg1ZGU3NGJhNzkzODY5OWIzYjQwMmE2MjUzODg2Li5jZWI5MTE4YTA1NTJj
NDY3ZDJmZWZlNmY4NGY5YmNhM2VjYjE3MjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTA2LTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFtNb2RlbF0gQ3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVj
dG9yeSB0byBzdG9yZSBtb2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTUElzIHdlIHdpbGwgdXNlIHRvIHJlbmRlciA8bW9k
ZWw+IHJlc291cmNlcyBleHBlY3QgYSBmaWxlIFVSTCB0byBsb2FkIGFuZCByZW5kZXIgdGhlIG1v
ZGVsLgorICAgICAgICBCZWZvcmUgd2UgYWRvcHQgdGhlc2UgU1BJcywgd2UgZXh0ZW5kIHRoZSBz
YW5kYm94IHRvIGFsbG93IHdyaXRpbmcgdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdoZXJlCisg
ICAgICAgIHdlIHdpbGwgc3RvcmUgdGhlc2UgcmVzb3VyY2VzLgorCisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX21vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIF9zZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3Jp
ZXNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZWRN
b2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OldlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbjo6bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0TW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyk6CisKIDIwMjEtMDYtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBSZW5hbWUgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29u
dHJvbGxlciB0byBXS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAK
aW5kZXggMTc4NjEzMjdjNDhmZGI5NTA1OWEyYWRkMzFmZDkzMTRmNDc1YzRjNS4uMTFlYTU4NWE5
ZmRkMzBkYWJmMzcxMmViMzg4ODlkZDBjZDUwODQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcApAQCAt
MTQ3LDYgKzE0NywyMiBAQCBIVE1MTW9kZWxFbGVtZW50JiBIVE1MTW9kZWxFbGVtZW50OjpyZWFk
eVByb21pc2VSZXNvbHZlKCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKK3N0YXRpYyBTdHJpbmcm
IHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKKyAgICBy
ZXR1cm4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7Cit9CisKK3ZvaWQgSFRNTE1v
ZGVsRWxlbWVudDo6c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoKQoreworICAgIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkgPSBwYXRoOwor
fQorCitjb25zdCBTdHJpbmcmIEhUTUxNb2RlbEVsZW1lbnQ6Om1vZGVsRWxlbWVudENhY2hlRGly
ZWN0b3J5KCkKK3sKKyAgICByZXR1cm4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnko
KTsKK30KKwogLy8gTUFSSzogLSBET00gb3ZlcnJpZGVzLgogCiB2b2lkIEhUTUxNb2RlbEVsZW1l
bnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQm
IG5ld0RvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKaW5kZXggMTg1N2JiNWM3N2JhZmZlZjlkMmFjOWIy
YzJlYTA0NTk1Yzk1NmI5Ny4uNjJjZjYxMTdjMzNmZjY3YjZlZDIxMmY4MmZhY2JkNDU2OGVhODQ5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
SFRNTE1vZGVsRWxlbWVudC5oCkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBtb2RlbERhdGEoKSBjb25zdDsKICAgICBSZWZQdHI8TW9kZWw+IG1vZGVs
KCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRNb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgY29uc3QgU3RyaW5nJiBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOworCiBwcml2YXRl
OgogICAgIEhUTUxNb2RlbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycy5oCmluZGV4IGZmNmFmN2I2ZWM0MTE3YjYxYjc0MDkxNGM3MmM3N2MxNjhjNzFlOTEu
LmJmYzRhOWMyMTIzNmViZDRkYzY5ZTNlZWVmOTc0YjI4ZTczZDUwOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaApAQCAt
NTAsNyArNTAsMTAgQEAgc3RydWN0IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHsKICAg
ICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGwg
fTsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aFVz
ZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJSZXNvdXJjZURv
bWFpbj4gZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7Ci0KKyNlbmRpZgorI2lmIEVOQUJM
RShNT0RFTF9FTEVNRU5UKQorICAgIFN0cmluZyBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsK
KyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkIHsgZmFsc2UgfTsKIApAQCAtNzUsNiArNzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVyczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgIGVuY29kZXIgPDwgZG9t
YWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAgICAgZW5jb2RlciA8PCBkb21haW5zV2l0aFN0b3Jh
Z2VBY2Nlc3NRdWlyazsKKyNlbmRpZgorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGVu
Y29kZXIgPDwgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisgICAgZW5jb2RlciA8PCBtb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogICAgIGVuY29k
ZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ7CiB9CkBAIC0xNDMsNiArMTUwLDE2
IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM+IFdlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAgaWYgKCFkb21haW5zV2l0aFN0b3JhZ2VB
Y2Nlc3NRdWlyaykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICNlbmRpZgorI2lmIEVO
QUJMRShNT0RFTF9FTEVNRU5UKQorICAgICAgICBTdHJpbmcgbW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3Rvcnk7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4gbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIGlmICghbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworI2VuZGlmCiAKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkID0g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCkpCkBAIC0xNjMsNiArMTgwLDEwIEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAg
ICAgICp0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLAogICAgICAgICBXVEZNb3ZlKCpkb21h
aW5zV2l0aFVzZXJJbnRlcmFjdGlvbiksCiAgICAgICAgIFdURk1vdmUoKmRvbWFpbnNXaXRoU3Rv
cmFnZUFjY2Vzc1F1aXJrKSwKKyNlbmRpZgorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAg
ICAgICBXVEZNb3ZlKG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92
ZSgqbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogI2VuZGlmCiAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkCiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggZjA4MzRiNjAwZjEyZjQ2YzcwNjBiNzBj
MDRjZGRmOWMxNDhmYmI0MC4uMDY3MGVmZmRhNmFlNDYzNDc0MjA3ZGQzZGYwOWI3MDVlNTM3NDY5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTc0LDcgKzc0
LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqaHN0
c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGVuYWJsZUluQXBwQnJv
d3NlclByaXZhY3lGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9
X3NldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OikgTlNVUkwgKl9tb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0
ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0KaW5kZXggYTg0ZTkyOWUyNmI3NTQ1MmJjY2RlN2MxODIzZWExOWNkNWNlOGQ1MC4uNWFhZjgx
ZjQyMDc5ZmUxYmU0ZGExZTM3OTY1NTBiMDdmOTAzZjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtMzE5LDYgKzMxOSwyMSBAQCAtICh2b2lkKXNldEFs
dGVybmF0aXZlU2VydmljZXNTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKXVybAogICAgIF9jb25m
aWd1cmF0aW9uLT5zZXRBbHRlcm5hdGl2ZVNlcnZpY2VzRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0K
IAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorLSAoTlNVUkwgKilfbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnkKK3sKKyAgICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfY29uZmln
dXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwor
fQorCistICh2b2lkKV9zZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTooTlNVUkwgKil1cmwK
K3sKKyAgICBpZiAoIV9jb25maWd1cmF0aW9uLT5pc1BlcnNpc3RlbnQoKSkKKyAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNhbm5v
dCBzZXQgX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5IG9uIGEgbm9uLXBlcnNpc3RlbnQgX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uIl07CisgICAgY2hlY2tVUkxBcmd1bWVudCh1
cmwpOworICAgIF9jb25maWd1cmF0aW9uLT5zZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSh1
cmwucGF0aCk7Cit9CisjZW5kaWYKKwogLSAoQk9PTClkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rp
b25zRW5hYmxlZAogewogICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCBiMjc2ODU3Njk0NDVlYzdhMTU3NjZhOTZlNGQ5YWM2OTAyMWZjYzgx
Li45YTc5NzBlZTNhZWJjOTQ0ZDY1MDZjMzIwZWFjOTE1NDE1MmY4MTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC02OTIsNyArNjkyLDE0IEBAIFdl
YlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYlByb2Nlc3NQb29sOjp3ZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVycyhXZWJQCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmICghamF2
YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChqYXZhU2NyaXB0Q29u
ZmlndXJhdGlvbkRpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBq
YXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAg
IAorCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgYXV0byBtb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW1vZGVsRWxlbWVudENhY2hlRGly
ZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
V2l0aG91dFJlc29sdmluZ1BhdGgobW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnksIFNhbmRib3hF
eHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworI2VuZGlmCisKICAgICByZXR1cm4gV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMgewogICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgpLAogICAgICAg
ICBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpLApAQCAtNzA4LDYgKzcxNSwxMCBA
QCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUAogICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLnRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGUoKSwKICAgICAgICAgbV9kb21haW5zV2l0aFVzZXJJbnRl
cmFjdGlvbiwKICAgICAgICAgbV9kb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3NRdWly
aywKKyNlbmRpZgorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgICAgICBXVEZNb3ZlKG1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShtb2RlbEVsZW1lbnRD
YWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCiAjZW5kaWYKICAgICAgICAgd2Vic2l0ZURh
dGFTdG9yZS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpCiAgICAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29h
L1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCAzYWE3M2FmMDIxNmExY2FjNTNlZDg0OGEz
NWI3Y2UwYjZiMTYxYTY5Li5iODNiYThmY2VjNWQwMDNjZDk3NzcwODI1YWVhNTYxYmE1YThlZTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC0zMjEsNiArMzIxLDEz
IEBAIFdURjo6U3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRKYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeSgpCiAgICAgcmV0dXJuIHRlbXBEaXJlY3RvcnlGaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oIkphdmFTY3JpcHRDb3JlRGVidWciLCBTaG91bGRDcmVhdGVEaXJlY3Rvcnk6
Ok5vKTsKIH0KIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorV1RGOjpTdHJpbmcgV2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBy
ZXR1cm4gdGVtcERpcmVjdG9yeUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbigiTW9kZWxFbGVtZW50
IiwgU2hvdWxkQ3JlYXRlRGlyZWN0b3J5OjpObyk7Cit9CisjZW5kaWYKKwogV1RGOjpTdHJpbmcg
V2Vic2l0ZURhdGFTdG9yZTo6dGVtcERpcmVjdG9yeUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihj
b25zdCBXVEY6OlN0cmluZyYgZGlyZWN0b3J5TmFtZSwgU2hvdWxkQ3JlYXRlRGlyZWN0b3J5IHNo
b3VsZENyZWF0ZURpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VU
b2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMzQzMmNlYjZjMmMzNTlkZTNjZjNkMGQ3NTUxNjNj
YTk1ZGI5M2Y2OS4uNzkyZWU2MDU0ZDIxYTNjODVmNTEzOGRhZmM0ZThhMTFlMDFmMjRkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKQEAgLTI2NSw2ICsyNjUsMTAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpCiAgICAgICAgIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkocmVzb2x2ZVBhdGhGb3JTYW5kYm94
RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkpKTsKICAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+aHN0c1N0b3JhZ2VEaXJlY3RvcnkoKS5pc0VtcHR5KCkg
JiYgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmhzdHNTdG9yYWdlRGlyZWN0b3J5KCkuaXNFbXB0
eSgpKQogICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0SFNUU1N0b3JhZ2VEaXJl
Y3RvcnkocmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+aHN0
c1N0b3JhZ2VEaXJlY3RvcnkoKSkpOworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGlm
ICghbV9jb25maWd1cmF0aW9uLT5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpLmlzRW1wdHko
KSkKKyAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldE1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0
ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSkpOwor
I2VuZGlmCiAKICAgICAvLyBSZXNvbHZlIGRpcmVjdG9yaWVzIGZvciBmaWxlIHBhdGhzLgogICAg
IGlmICghbV9jb25maWd1cmF0aW9uLT5jb29raWVTdG9yYWdlRmlsZSgpLmlzRW1wdHkoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCmluZGV4IDk5NTdlNTFhYzU4N2IzNjY2MGJkNmIyZTIwOTI1ODExMTM2ZTdhNTAu
LjY0OGJkNGNlOWI4MGUyMzU2ZWUyYjE5Mjg4NzVmMDQxMzE3OTk1YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTI1Myw2ICsyNTMsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29s
dmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOyB9
CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEhTVFNT
dG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24t
PmhzdHNTdG9yYWdlRGlyZWN0b3J5KCk7IH0KKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAg
ICBjb25zdCBTdHJpbmcmIHJlc29sdmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSBjb25z
dCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnkoKTsgfQorI2VuZGlmCiAKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcmIGhvc3Qp
OwogCkBAIC0zMjgsNiArMzMxLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBXVEY6OlN0cmluZyBk
ZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKTsKICNpZiBVU0UoR0xJQikKICAgICBzdGF0
aWMgV1RGOjpTdHJpbmcgZGVmYXVsdEhTVFNEaXJlY3RvcnkoKTsKKyNlbmRpZgorI2lmIEVOQUJM
RShNT0RFTF9FTEVNRU5UKQorICAgIHN0YXRpYyBXVEY6OlN0cmluZyBkZWZhdWx0TW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkoKTsKICNlbmRpZgogICAgIHN0YXRpYyBXVEY6OlN0cmluZyBkZWZh
dWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKTsKICAgICBzdGF0aWMgV1RGOjpTdHJpbmcg
ZGVmYXVsdENhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uY3BwCmluZGV4IGU2ZTgxMTkzNDdhNTNmZmZmZjgzMTliZjlhOGJlY2U3NGZl
MjcxNjMuLjc1YWI1YWQ5ODZjNDgwZWZkYWFmYjU4MTBmZTRkYTQwMWM1YTYxMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQ3LDYgKzQ3LDkgQEAgV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
KElzUGVyc2lzdGVudCBpc1BlcnMKICAgICAgICAgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSgpKTsKICAgICAgICAgc2V0RGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5
KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rv
cnkoKSk7CiAgICAgICAgIHNldEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KFdlYnNp
dGVEYXRhU3RvcmU6OmRlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpKTsK
KyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICAgICAgc2V0TW9kZWxFbGVtZW50Q2FjaGVE
aXJlY3RvcnkoV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0
b3J5KCkpOworI2VuZGlmCiAgICAgfQogfQogCkBAIC05Nyw2ICsxMDAsOSBAQCBSZWY8V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpj
b3B5KCkgY29uc3QKICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNvcHkt
Pm1fcHJveHlDb25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5KG51
bGxwdHIsIHRoaXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBjb3B5LT5tX21vZGVsRWxlbWVudENhY2hlRGlyZWN0
b3J5ID0gdGhpcy0+bV9tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKKyNlbmRpZgogCiAgICAg
cmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCA5ODc0MTAxMDBjYzQ2MDMxOTBlNDk1YzQ3MWI4NzYyY2ZkMzU2YzQ4Li5kZmExNjU2YTg0ZjA4
M2I0YjU0YTNkNzNkZDM1YzM3ZGIzMmY4YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgKQEAgLTc0LDYgKzc0LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IGxvY2FsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGly
ZWN0b3J5OyB9CiAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nJiYgZGly
ZWN0b3J5KSB7IG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9
CiAKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBjb25zdCBTdHJpbmcmIG1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeTsgfQorICAgIHZvaWQgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoU3RyaW5n
JiYgZGlyZWN0b3J5KSB7IG1fbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkgPSBXVEZNb3ZlKGRp
cmVjdG9yeSk7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsgfQog
ICAgIHZvaWQgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIp
IHsgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpOyB9CiAK
QEAgLTE3OSw2ICsxODQsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3Rvcnk7CiAgICAgU3RyaW5nIG1fd2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnk7CiAgICAgU3RyaW5nIG1faHN0c1N0b3JhZ2VEaXJlY3Rvcnk7CisjaWYgRU5BQkxFKE1PREVM
X0VMRU1FTlQpCisgICAgU3RyaW5nIG1fbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisjZW5k
aWYKICNpZiBVU0UoR0xJQikKICAgICBib29sIG1fbmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxp
ZGF0aW9uRW5hYmxlZCB7IHRydWUgfTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZGI0YzIyODMyM2E4MDMxNjBhMDlkNTY5Zjc1M2QyODBjNGNiYzgy
Zi4uN2M0ZWZmZGI3NDMxNmRhY2RjMWEzNDMxYTkyZTNiMmY5YzhiNzQ3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQxLDYgKzE0MSwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
KyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNb2RlbEVs
ZW1lbnQuaD4KKyNlbmRpZgorCiAjaWYgIU9TKFdJTkRPV1MpCiAjaW5jbHVkZSA8dW5pc3RkLmg+
CiAjZW5kaWYKQEAgLTU2OCw2ICs1NzIsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHAKICAg
ICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFDYWNoZURpcmVjdG9yeShw
YXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTU9E
RUxfRUxFTUVOVCkKKyAgICBpZiAoIXBhcmFtZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rv
cnkuaXNFbXB0eSgpKQorICAgICAgICBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpzZXRNb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeShwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0
b3J5KTsKKyNlbmRpZgorCiAgICAgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQocGFy
YW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk7CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNjZhMTllNzNhOWViNTY0ZGNjZTA3NzdkYzMy
MDBlNGMwYmM5M2M2MC4uYTFhODI3ZGYxZGQxZjE2MjI3YzEzZWM2ZWUzMDg0ZTlkMjYxZjQ1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCkBAIC00ODEsNiArNDgxLDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWUKICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUNhY2hlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJz
LmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyNpZiBF
TkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFu
ZW50bHkocGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSk7CisjZW5kaWYKICNlbmRpZgogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432179</attachid>
            <date>2021-06-24 10:08:54 -0700</date>
            <delta_ts>2021-06-24 10:12:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227359-20210624190852.patch</filename>
            <type>text/plain</type>
            <size>20050</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI0NGNhZWM3YjdkZWQ4
YjcxYjI2MGU3NzQ1Zjk2YWMyMDhhYjczZi4uMjkzMTJmYWUwZjhlMzM5M2JlNzc5ZjcwN2U4MmVi
OWY5OGJlODllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBt
b2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBTUElzIHdlIHdpbGwgdXNlIHRvIHJlbmRlciA8bW9kZWw+IHJlc291cmNlcyBl
eHBlY3QgYSBmaWxlIFVSTCB0byBsb2FkIGFuZCByZW5kZXIgdGhlIG1vZGVsLgorICAgICAgICBC
ZWZvcmUgd2UgYWRvcHQgdGhlc2UgU1BJcywgd2UgZXh0ZW5kIHRoZSBzYW5kYm94IHRvIGFsbG93
IHdyaXRpbmcgdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdoZXJlCisgICAgICAgIHdlIHdpbGwg
c3RvcmUgdGhlc2UgcmVzb3VyY2VzLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkTW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6
c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudDo6bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisKIDIwMjEtMDYtMjQgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2luZyBhIHZpZGVv
IGFzIGEgc291cmNlIGZvciBhIFdlYkdMIHRleHR1cmUgaXMgc2xvdyBhbmQgaGFuZ3Mgb24gaU9T
IDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDhkYzYzMDQ3MDYzNjU1YzQ5OTQwMTdmYjMwZjIwMTM0ODUwYjQ1MDIu
LjMwNjI1ZTY5YTExNzZkMzI4MDMzMGE1MzdjYTIzMjMzNmRhZmVmMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjEtMDYtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgW01vZGVsXSBDcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgYSB0
ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHN0b3JlIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFNQSXMgd2Ugd2lsbCB1c2Ug
dG8gcmVuZGVyIDxtb2RlbD4gcmVzb3VyY2VzIGV4cGVjdCBhIGZpbGUgVVJMIHRvIGxvYWQgYW5k
IHJlbmRlciB0aGUgbW9kZWwuCisgICAgICAgIEJlZm9yZSB3ZSBhZG9wdCB0aGVzZSBTUElzLCB3
ZSBleHRlbmQgdGhlIHNhbmRib3ggdG8gYWxsb3cgd3JpdGluZyB0byBhIHRlbXBvcmFyeSBkaXJl
Y3Rvcnkgd2hlcmUKKyAgICAgICAgd2Ugd2lsbCBzdG9yZSB0aGVzZSByZXNvdXJjZXMuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBfbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnldKToKKyAgICAgICAgKC1bX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp3ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJl
c29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpyZXNvbHZlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbjo6Y29weSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjptb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9y
eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
OjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzKToKKwogMjAyMS0wNi0yNCAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbGxvdyBuZXR3b3JrLW91dGJvdW5k
IGxvZ2dpbmcgZm9yIGludGVybmFsIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDE3ODYx
MzI3YzQ4ZmRiOTUwNTlhMmFkZDMxZmQ5MzE0ZjQ3NWM0YzUuLjExZWE1ODVhOWZkZDMwZGFiZjM3
MTJlYjM4ODg5ZGQwY2Q1MDg0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTE0Nyw2ICsxNDcs
MjIgQEAgSFRNTE1vZGVsRWxlbWVudCYgSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQcm9taXNlUmVz
b2x2ZSgpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCitzdGF0aWMgU3RyaW5nJiBzaGFyZWRNb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisgICAgcmV0dXJuIHNoYXJl
ZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6
OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAg
ICBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpID0gcGF0aDsKK30KKworY29uc3Qg
U3RyaW5nJiBIVE1MTW9kZWxFbGVtZW50Ojptb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7
CisgICAgcmV0dXJuIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7Cit9CisKIC8v
IE1BUks6IC0gRE9NIG92ZXJyaWRlcy4KIAogdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRNb3Zl
VG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRN
TE1vZGVsRWxlbWVudC5oCmluZGV4IDE4NTdiYjVjNzdiYWZmZWY5ZDJhYzliMmMyZWEwNDU5NWM5
NTZiOTcuLjYyY2Y2MTE3YzMzZmY2N2I2ZWQyMTJmODJmYWNiZDQ1NjhlYTg0OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVs
ZW1lbnQuaApAQCAtNTYsNiArNTYsOSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gbW9kZWxEYXRhKCkgY29uc3Q7CiAgICAgUmVmUHRyPE1vZGVsPiBtb2RlbCgpIGNvbnN0Owog
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0
cmluZyYgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKKwogcHJpdmF0ZToKICAgICBIVE1M
TW9kZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaApp
bmRleCBmZjZhZjdiNmVjNDExN2I2MWI3NDA5MTRjNzJjNzdjMTY4YzcxZTkxLi5iZmM0YTljMjEy
MzZlYmQ0ZGM2OWUzZWVlZjk3NGIyOGU3M2Q1MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTUwLDcgKzUwLDEw
IEBAIHN0cnVjdCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IHsgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07CiAgICAgSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rp
b247CiAgICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IGRvbWFp
bnNXaXRoU3RvcmFnZUFjY2Vzc1F1aXJrOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxF
TUVOVCkKKyAgICBTdHJpbmcgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOwogI2VuZGlmCiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB7IGZh
bHNlIH07CiAKQEAgLTc1LDYgKzc4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBlbmNvZGVyIDw8IGRvbWFpbnNXaXRoVXNl
ckludGVyYWN0aW9uOwogICAgIGVuY29kZXIgPDwgZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVp
cms7CisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBlbmNvZGVyIDw8IG1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworICAgIGVuY29kZXIgPDwgbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOwogfQpAQCAtMTQzLDYgKzE1MCwxNiBAQCBzdGQ6Om9w
dGlvbmFsPFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJQcm9jZXNzRGF0YVN0b3Jl
UGFyYW1ldGVyczo6ZGVjbwogICAgIGlmICghZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcmsp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxf
RUxFTUVOVCkKKyAgICAgICAgU3RyaW5nIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgICAgICBkZWNvZGVyID4+IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBpZiAoIW1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRp
ZgogCiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpKQpAQCAt
MTYzLDYgKzE4MCwxMCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzPiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjbwogICAgICAgICAqdGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwKICAgICAgICAgV1RGTW92ZSgqZG9tYWluc1dpdGhVc2Vy
SW50ZXJhY3Rpb24pLAogICAgICAgICBXVEZNb3ZlKCpkb21haW5zV2l0aFN0b3JhZ2VBY2Nlc3NR
dWlyayksCisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICAgICAgV1RGTW92
ZShtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUoKm1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICNlbmRpZgogICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCmluZGV4IDU0MWEyYzI4OTAxZWMwMTdlMjhiMzdkNzdmZDNkYjZhZDky
MjViNmMuLmViZTM2Y2JhY2Q3Nzg5Y2JmN2Q5MWIzYzkwNWFiYmFiZTJiZjMyZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC03NCw2ICs3NCw3IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGFsbG93c1NlcnZlclByZWNvbm5lY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNS40KSwgaW9zKDEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSwgc2V0dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKmhzdHNTdG9yYWdlRGly
ZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk6KSBOU1VS
TCAqX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNVUkwgKmFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5tbQppbmRleCBhODRlOTI5ZTI2Yjc1NDUyYmNjZGU3YzE4MjNlYTE5Y2Q1Y2U4
ZDUwLi41YWFmODFmNDIwNzlmZTFiZTRkYTFlMzc5NjU1MGIwN2Y5MDNmODhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC0zMTksNiArMzE5LDIxIEBAIC0g
KHZvaWQpc2V0QWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJlY3Rvcnk6KE5TVVJMICopdXJs
CiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldEFsdGVybmF0aXZlU2VydmljZXNEaXJlY3RvcnkodXJs
LnBhdGgpOwogfQogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCistIChOU1VSTCAqKV9tb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeQoreworICAgIHJldHVybiBbTlNVUkwgZmlsZVVSTFdpdGhQ
YXRoOl9jb25maWd1cmF0aW9uLT5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpIGlzRGlyZWN0
b3J5OllFU107Cit9CisKKy0gKHZvaWQpX3NldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OihO
U1VSTCAqKXVybAoreworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQor
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiQ2Fubm90IHNldCBfbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnkgb24gYSBub24tcGVy
c2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi4iXTsKKyAgICBjaGVja1VS
TEFyZ3VtZW50KHVybCk7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldE1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KHVybC5wYXRoKTsKK30KKyNlbmRpZgorCiAtIChCT09MKWRldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5kZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDliNWI2YTQ4NDc3ZDA1MzQ4MjZlN2I4OTg1NjZm
OGJlMGMyOGIyZTQuLmMwNmQ3YTMyZmFmNGY5MGRlMTIyNDViNmI2ODk0NmY1YzYzOWE4YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTY5Miw3ICs2
OTIsMTQgQEAgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6Ondl
YlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKGph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkV3JpdGUsIGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKLSAgICAgICAgCisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBhdXRvIG1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZE1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5KCk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghbW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9y
eSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBtb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKKwogICAgIHJldHVybiBXZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUuc2Vzc2lvbklE
KCksCiAgICAgICAgIFdURk1vdmUoYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSksCkBAIC03MDgs
NiArNzE1LDEwIEBAIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYlByb2Nlc3NQb29s
Ojp3ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQCiAgICAgICAgIHdlYnNpdGVEYXRh
U3RvcmUudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgpLAogICAgICAgICBtX2RvbWFpbnNX
aXRoVXNlckludGVyYWN0aW9uLAogICAgICAgICBtX2RvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFn
ZUFjY2Vzc1F1aXJrLAorI2VuZGlmCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgICAg
IFdURk1vdmUobW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKG1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICNlbmRpZgogICAgICAg
ICB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDNhYTczYWYwMjE2YTFj
YWM1M2VkODQ4YTM1YjdjZTBiNmIxNjFhNjkuLmI4M2JhOGZjZWM1ZDAwM2NkOTc3NzA4MjVhZWE1
NjFiYTVhOGVlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTMy
MSw2ICszMjEsMTMgQEAgV1RGOjpTdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdEphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKICAgICByZXR1cm4gdGVtcERpcmVjdG9yeUZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbigiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIFNob3VsZENyZWF0
ZURpcmVjdG9yeTo6Tm8pOwogfQogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCitXVEY6OlN0
cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnko
KQoreworICAgIHJldHVybiB0ZW1wRGlyZWN0b3J5RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKCJN
b2RlbEVsZW1lbnQiLCBTaG91bGRDcmVhdGVEaXJlY3Rvcnk6Ok5vKTsKK30KKyNlbmRpZgorCiBX
VEY6OlN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjp0ZW1wRGlyZWN0b3J5RmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBkaXJlY3RvcnlOYW1lLCBTaG91bGRDcmVhdGVE
aXJlY3Rvcnkgc2hvdWxkQ3JlYXRlRGlyZWN0b3J5KQogewogICAgIHN0YXRpYyBkaXNwYXRjaF9v
bmNlX3Qgb25jZVRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAzNDMyY2ViNmMyYzM1OWRlM2Nm
M2QwZDc1NTE2M2NhOTVkYjkzZjY5Li43OTJlZTYwNTRkMjFhM2M4NWY1MTM4ZGFmYzRlOGExMWUw
MWYyNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjY1LDYgKzI2NSwxMCBAQCB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCkKICAgICAgICAgbV9y
ZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShyZXNvbHZlUGF0
aEZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkoKSkpOwogICAgIGlmICghbV9jb25maWd1cmF0aW9uLT5oc3RzU3RvcmFnZURpcmVjdG9yeSgp
LmlzRW1wdHkoKSAmJiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+aHN0c1N0b3JhZ2VEaXJlY3Rv
cnkoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRIU1RT
U3RvcmFnZURpcmVjdG9yeShyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1
cmF0aW9uLT5oc3RzU3RvcmFnZURpcmVjdG9yeSgpKSk7CisjaWYgRU5BQkxFKE1PREVMX0VMRU1F
TlQpCisgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
KCkuaXNFbXB0eSgpKQorICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0TW9kZWxF
bGVtZW50Q2FjaGVEaXJlY3RvcnkocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZv
clNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5tb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeSgpKSk7CisjZW5kaWYKIAogICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgZm9yIGZpbGUg
cGF0aHMuCiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPmNvb2tpZVN0b3JhZ2VGaWxlKCkuaXNF
bXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTk1N2U1MWFjNTg3YjM2NjYwYmQ2YjJlMjA5MjU4
MTExMzZlN2E1MC4uNjQ4YmQ0Y2U5YjgwZTIzNTZlZTJiMTkyODg3NWYwNDEzMTc5OTViYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMjUzLDYgKzI1Myw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHJlc29sdmVkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJl
c29sdmVkSFNUU1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi0+aHN0c1N0b3JhZ2VEaXJlY3RvcnkoKTsgfQorI2lmIEVOQUJMRShNT0RFTF9F
TEVNRU5UKQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5tb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeSgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hU
VFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNvbnN0IFN0
cmluZyYgaG9zdCk7CiAKQEAgLTMyOCw2ICszMzEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdU
Rjo6U3RyaW5nIGRlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpOwogI2lmIFVTRShHTElC
KQogICAgIHN0YXRpYyBXVEY6OlN0cmluZyBkZWZhdWx0SFNUU0RpcmVjdG9yeSgpOworI2VuZGlm
CisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgc3RhdGljIFdURjo6U3RyaW5nIGRlZmF1
bHRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOwogI2VuZGlmCiAgICAgc3RhdGljIFdURjo6
U3RyaW5nIGRlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBX
VEY6OlN0cmluZyBkZWZhdWx0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZTZlODExOTM0N2E1M2ZmZmZmODMxOWJm
OWE4YmVjZTc0ZmUyNzE2My4uNzVhYjVhZDk4NmM0ODBlZmRhYWZiNTgxMGZlNGRhNDAxYzVhNjEx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNDcsNiAr
NDcsOSBAQCBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24oSXNQZXJzaXN0ZW50IGlzUGVycwogICAgICAgICBzZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5KCkpOwogICAgICAgICBzZXREZXZpY2VJZEhhc2hTYWx0c1N0b3Jh
Z2VEaXJlY3RvcnkoV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERldmljZUlkSGFzaFNhbHRzU3Rv
cmFnZURpcmVjdG9yeSgpKTsKICAgICAgICAgc2V0SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJl
Y3RvcnkoV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGly
ZWN0b3J5KCkpOworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgICAgICBzZXRNb2RlbEVs
ZW1lbnRDYWNoZURpcmVjdG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnkoKSk7CisjZW5kaWYKICAgICB9CiB9CiAKQEAgLTk3LDYgKzEwMCw5IEBA
IFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikKICAg
ICAgICAgY29weS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFyeUNy
ZWF0ZUNvcHkobnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICNl
bmRpZgorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGNvcHktPm1fbW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnkgPSB0aGlzLT5tX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworI2Vu
ZGlmCiAKICAgICByZXR1cm4gY29weTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCmluZGV4IDk4NzQxMDEwMGNjNDYwMzE5MGU0OTVjNDcxYjg3NjJjZmQzNTZjNDguLmRm
YTE2NTZhODRmMDgzYjRiNTRhM2Q3M2RkMzVjMzdkYjMyZjhhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsNiArNzQsMTEgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURpcmVjdG9yeShT
dHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBXVEZNb3ZlKGRp
cmVjdG9yeSk7IH0KIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGNvbnN0IFN0cmlu
ZyYgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX21vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5OyB9CisgICAgdm9pZCBzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeShTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSA9
IFdURk1vdmUoZGlyZWN0b3J5KTsgfQorI2VuZGlmCisKICAgICBjb25zdCBTdHJpbmcmIGJvdW5k
SW50ZXJmYWNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyOyB9CiAgICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYg
aWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRp
Zmllcik7IH0KIApAQCAtMTc5LDYgKzE4NCw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTsKICAgICBTdHJpbmcgbV93ZWJTUUxEYXRh
YmFzZURpcmVjdG9yeTsKICAgICBTdHJpbmcgbV9oc3RzU3RvcmFnZURpcmVjdG9yeTsKKyNpZiBF
TkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBTdHJpbmcgbV9tb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeTsKKyNlbmRpZgogI2lmIFVTRShHTElCKQogICAgIGJvb2wgbV9uZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIHsgdHJ1ZSB9OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAwMTlkYWYzYTExNjkyMTI0N2RjM2ViYjI0Y2Uw
MTBlYWVhN2Q0MTFkLi4wZGRkNjE5N2YzYTgxZDZhYjY1MzEyZDY5ZmRmNjJiZDUxOTcwMThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDEsNiArMTQxLDEw
IEBACiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorI2luY2x1ZGUgPFdlYkNvcmUv
SFRNTE1vZGVsRWxlbWVudC5oPgorI2VuZGlmCisKICNpZiAhT1MoV0lORE9XUykKICNpbmNsdWRl
IDx1bmlzdGQuaD4KICNlbmRpZgpAQCAtNTY4LDYgKzU3MiwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6
OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzJiYgcAogICAgICAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUNhY2hl
RGlyZWN0b3J5KHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGlmICghcGFyYW1ldGVycy5tb2RlbEVsZW1lbnRD
YWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnQ6OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KHBhcmFtZXRlcnMubW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnkpOworI2VuZGlmCisKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA4YWNjM2QwYThhYjFjY2Q0
YjNmZWNhZDYwYjNhNmJjM2FlNjQzMDI5Li4wZDZkZTFmMmE5OTA2MDllZTlhMDUwMmU4ZDk0OGMz
OTBmYTExZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KQEAgLTQ4MSw2ICs0ODEsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZQogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLm1l
ZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246
OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KHBhcmFtZXRlcnMuamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIFNhbmRib3hFeHRlbnNpb246OmNv
bnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuamF2
YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432182</attachid>
            <date>2021-06-24 10:12:42 -0700</date>
            <delta_ts>2021-06-25 00:07:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227359-20210624191240.patch</filename>
            <type>text/plain</type>
            <size>17478</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI0NGNhZWM3YjdkZWQ4
YjcxYjI2MGU3NzQ1Zjk2YWMyMDhhYjczZi4uMjkzMTJmYWUwZjhlMzM5M2JlNzc5ZjcwN2U4MmVi
OWY5OGJlODllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBt
b2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBTUElzIHdlIHdpbGwgdXNlIHRvIHJlbmRlciA8bW9kZWw+IHJlc291cmNlcyBl
eHBlY3QgYSBmaWxlIFVSTCB0byBsb2FkIGFuZCByZW5kZXIgdGhlIG1vZGVsLgorICAgICAgICBC
ZWZvcmUgd2UgYWRvcHQgdGhlc2UgU1BJcywgd2UgZXh0ZW5kIHRoZSBzYW5kYm94IHRvIGFsbG93
IHdyaXRpbmcgdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdoZXJlCisgICAgICAgIHdlIHdpbGwg
c3RvcmUgdGhlc2UgcmVzb3VyY2VzLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkTW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6
c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudDo6bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisKIDIwMjEtMDYtMjQgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2luZyBhIHZpZGVv
IGFzIGEgc291cmNlIGZvciBhIFdlYkdMIHRleHR1cmUgaXMgc2xvdyBhbmQgaGFuZ3Mgb24gaU9T
IDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDhkYzYzMDQ3MDYzNjU1YzQ5OTQwMTdmYjMwZjIwMTM0ODUwYjQ1MDIu
LjgyNDhlN2U4NWRiYmY3MmVjZDYxNDA1NDU5ZTk5YWZlZjdkODBhMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMjEtMDYtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgW01vZGVsXSBDcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgYSB0
ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHN0b3JlIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFNQSXMgd2Ugd2lsbCB1c2Ug
dG8gcmVuZGVyIDxtb2RlbD4gcmVzb3VyY2VzIGV4cGVjdCBhIGZpbGUgVVJMIHRvIGxvYWQgYW5k
IHJlbmRlciB0aGUgbW9kZWwuCisgICAgICAgIEJlZm9yZSB3ZSBhZG9wdCB0aGVzZSBTUElzLCB3
ZSBleHRlbmQgdGhlIHNhbmRib3ggdG8gYWxsb3cgd3JpdGluZyB0byBhIHRlbXBvcmFyeSBkaXJl
Y3Rvcnkgd2hlcmUKKyAgICAgICAgd2Ugd2lsbCBzdG9yZSB0aGVzZSByZXNvdXJjZXMuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjp3ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENh
Y2hlRGlyZWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVE
aXJlY3Rvcmllc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpy
ZXNvbHZlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbjo6Y29weSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjptb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRN
b2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzKToKKwogMjAyMS0wNi0yNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbGxvdyBuZXR3b3JrLW91dGJvdW5kIGxvZ2dp
bmcgZm9yIGludGVybmFsIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDE3ODYxMzI3YzQ4
ZmRiOTUwNTlhMmFkZDMxZmQ5MzE0ZjQ3NWM0YzUuLjExZWE1ODVhOWZkZDMwZGFiZjM3MTJlYjM4
ODg5ZGQwY2Q1MDg0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTE0Nyw2ICsxNDcsMjIgQEAg
SFRNTE1vZGVsRWxlbWVudCYgSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQcm9taXNlUmVzb2x2ZSgp
CiAgICAgcmV0dXJuICp0aGlzOwogfQogCitzdGF0aWMgU3RyaW5nJiBzaGFyZWRNb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
c2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisgICAgcmV0dXJuIHNoYXJlZE1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5OworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldE1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBzaGFy
ZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpID0gcGF0aDsKK30KKworY29uc3QgU3RyaW5n
JiBIVE1MTW9kZWxFbGVtZW50Ojptb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7CisgICAg
cmV0dXJuIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7Cit9CisKIC8vIE1BUks6
IC0gRE9NIG92ZXJyaWRlcy4KIAogdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRNb3ZlVG9OZXdE
b2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5oCmluZGV4IDE4NTdiYjVjNzdiYWZmZWY5ZDJhYzliMmMyZWEwNDU5NWM5NTZiOTcu
LjYyY2Y2MTE3YzMzZmY2N2I2ZWQyMTJmODJmYWNiZDQ1NjhlYTg0OTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aApAQCAtNTYsNiArNTYsOSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbW9k
ZWxEYXRhKCkgY29uc3Q7CiAgICAgUmVmUHRyPE1vZGVsPiBtb2RlbCgpIGNvbnN0OwogCisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYg
bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKKwogcHJpdmF0ZToKICAgICBIVE1MTW9kZWxF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaAppbmRleCBm
ZjZhZjdiNmVjNDExN2I2MWI3NDA5MTRjNzJjNzdjMTY4YzcxZTkxLi5iZmM0YTljMjEyMzZlYmQ0
ZGM2OWUzZWVlZjk3NGIyOGU3M2Q1MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTUwLDcgKzUwLDEwIEBAIHN0
cnVjdCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6VGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHsgV2Vi
Q29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07CiAgICAgSGFzaFNldDxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAg
ICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IGRvbWFpbnNXaXRo
U3RvcmFnZUFjY2Vzc1F1aXJrOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkK
KyAgICBTdHJpbmcgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwog
I2VuZGlmCiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB7IGZhbHNlIH07
CiAKQEAgLTc1LDYgKzc4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBlbmNvZGVyIDw8IGRvbWFpbnNXaXRoVXNlckludGVy
YWN0aW9uOwogICAgIGVuY29kZXIgPDwgZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBlbmNvZGVyIDw8IG1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5OworICAgIGVuY29kZXIgPDwgbW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkOwogfQpAQCAtMTQzLDYgKzE1MCwxNiBAQCBzdGQ6Om9wdGlvbmFs
PFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVyczo6ZGVjbwogICAgIGlmICghZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcmspCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVO
VCkKKyAgICAgICAgU3RyaW5nIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgICAgICBkZWNvZGVyID4+IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgICAgICBpZiAoIW1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgogCiAg
ICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpKQpAQCAtMTYzLDYg
KzE4MCwxMCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzPiBX
ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjbwogICAgICAgICAqdGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZSwKICAgICAgICAgV1RGTW92ZSgqZG9tYWluc1dpdGhVc2VySW50ZXJh
Y3Rpb24pLAogICAgICAgICBXVEZNb3ZlKCpkb21haW5zV2l0aFN0b3JhZ2VBY2Nlc3NRdWlyayks
CisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICAgICAgV1RGTW92ZShtb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUoKm1vZGVsRWxlbWVudENh
Y2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICNlbmRpZgogICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggOWI1YjZhNDg0NzdkMDUzNDgyNmU3Yjg5ODU2NmY4YmUwYzI4
YjJlNC4uYzA2ZDdhMzJmYWY0ZjkwZGUxMjI0NWI2YjY4OTQ2ZjVjNjM5YThhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNjkyLDcgKzY5MiwxNCBA
QCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBq
YXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAo
IWphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoamF2YVNjcmlw
dENvbmZpZ3VyYXRpb25EaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0
ZSwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAg
ICAgICAKKworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGF1dG8gbW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkTW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFtb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5LCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIFdlYlByb2Nlc3NEYXRhU3Rv
cmVQYXJhbWV0ZXJzIHsKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS5zZXNzaW9uSUQoKSwKICAg
ICAgICAgV1RGTW92ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSwKQEAgLTcwOCw2ICs3MTUs
MTAgQEAgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS50
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCksCiAgICAgICAgIG1fZG9tYWluc1dpdGhVc2Vy
SW50ZXJhY3Rpb24sCiAgICAgICAgIG1fZG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNz
UXVpcmssCisjZW5kaWYKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICAgICAgV1RGTW92
ZShtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUobW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogI2VuZGlmCiAgICAgICAgIHdlYnNp
dGVEYXRhU3RvcmUucmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKQogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRl
RGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9D
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KaW5kZXggM2FhNzNhZjAyMTZhMWNhYzUzZWQ4
NDhhMzViN2NlMGI2YjE2MWE2OS4uYjgzYmE4ZmNlYzVkMDAzY2Q5Nzc3MDgyNWFlYTU2MWJhNWE4
ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtMzIxLDYgKzMy
MSwxMyBAQCBXVEY6OlN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0SmF2YVNjcmlwdENv
bmZpZ3VyYXRpb25EaXJlY3RvcnkoKQogICAgIHJldHVybiB0ZW1wRGlyZWN0b3J5RmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKCJKYXZhU2NyaXB0Q29yZURlYnVnIiwgU2hvdWxkQ3JlYXRlRGlyZWN0
b3J5OjpObyk7CiB9CiAKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKK1dURjo6U3RyaW5nIFdl
YnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7Cisg
ICAgcmV0dXJuIHRlbXBEaXJlY3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oIk1vZGVsRWxl
bWVudCIsIFNob3VsZENyZWF0ZURpcmVjdG9yeTo6Tm8pOworfQorI2VuZGlmCisKIFdURjo6U3Ry
aW5nIFdlYnNpdGVEYXRhU3RvcmU6OnRlbXBEaXJlY3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oY29uc3QgV1RGOjpTdHJpbmcmIGRpcmVjdG9yeU5hbWUsIFNob3VsZENyZWF0ZURpcmVjdG9y
eSBzaG91bGRDcmVhdGVEaXJlY3RvcnkpCiB7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBv
bmNlVG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDM0MzJjZWI2YzJjMzU5ZGUzY2YzZDBkNzU1
MTYzY2E5NWRiOTNmNjkuLjc5MmVlNjA1NGQyMWEzYzg1ZjUxMzhkYWZjNGU4YTExZTAxZjI0ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yNjUsNiArMjY1LDEwIEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKQogICAgICAgICBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KHJlc29sdmVQYXRoRm9yU2Fu
ZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpKSk7
CiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPmhzdHNTdG9yYWdlRGlyZWN0b3J5KCkuaXNFbXB0
eSgpICYmIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5oc3RzU3RvcmFnZURpcmVjdG9yeSgpLmlz
RW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldEhTVFNTdG9yYWdl
RGlyZWN0b3J5KHJlc29sdmVQYXRoRm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24t
PmhzdHNTdG9yYWdlRGlyZWN0b3J5KCkpKTsKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKS5pc0Vt
cHR5KCkpCisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRNb2RlbEVsZW1lbnRD
YWNoZURpcmVjdG9yeShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJv
eEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkp
KTsKKyNlbmRpZgogCiAgICAgLy8gUmVzb2x2ZSBkaXJlY3RvcmllcyBmb3IgZmlsZSBwYXRocy4K
ICAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZpbGUoKS5pc0VtcHR5KCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCA5OTU3ZTUxYWM1ODdiMzY2NjBiZDZiMmUyMDkyNTgxMTEzNmU3
YTUwLi42NDhiZDRjZTliODBlMjM1NmVlMmIxOTI4ODc1ZjA0MTMxNzk5NWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCkBAIC0yNTMsNiArMjUzLDkgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2
ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnko
KTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRI
U1RTU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLT5oc3RzU3RvcmFnZURpcmVjdG9yeSgpOyB9CisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQp
CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KCk7IH0KKyNlbmRpZgogCiAgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiwgY29uc3QgU3RyaW5nJiBo
b3N0KTsKIApAQCAtMzI4LDYgKzMzMSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV1RGOjpTdHJp
bmcgZGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCk7CiAjaWYgVVNFKEdMSUIpCiAgICAg
c3RhdGljIFdURjo6U3RyaW5nIGRlZmF1bHRIU1RTRGlyZWN0b3J5KCk7CisjZW5kaWYKKyNpZiBF
TkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBzdGF0aWMgV1RGOjpTdHJpbmcgZGVmYXVsdE1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5KCk7CiAjZW5kaWYKICAgICBzdGF0aWMgV1RGOjpTdHJpbmcg
ZGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7CiAgICAgc3RhdGljIFdURjo6U3Ry
aW5nIGRlZmF1bHRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmNwcAppbmRleCBlNmU4MTE5MzQ3YTUzZmZmZmY4MzE5YmY5YThiZWNl
NzRmZTI3MTYzLi43NWFiNWFkOTg2YzQ4MGVmZGFhZmI1ODEwZmU0ZGE0MDFjNWE2MTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC00Nyw2ICs0Nyw5IEBA
IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbihJc1BlcnNpc3RlbnQgaXNQZXJzCiAgICAgICAgIHNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkoV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkoKSk7CiAgICAgICAgIHNldERldmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVj
dG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGly
ZWN0b3J5KCkpOwogICAgICAgICBzZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeShX
ZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnko
KSk7CisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgICAgIHNldE1vZGVsRWxlbWVudENh
Y2hlRGlyZWN0b3J5KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeSgpKTsKKyNlbmRpZgogICAgIH0KIH0KIApAQCAtOTcsNiArMTAwLDkgQEAgUmVmPFdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6Y29weSgpIGNvbnN0CiAgICAgaWYgKG1fcHJveHlDb25maWd1cmF0aW9uKQogICAgICAgICBj
b3B5LT5tX3Byb3h5Q29uZmlndXJhdGlvbiA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlQ29w
eShudWxscHRyLCB0aGlzLT5tX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKSkpOwogI2VuZGlmCisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgY29weS0+bV9tb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeSA9IHRoaXMtPm1fbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CisjZW5kaWYKIAog
ICAgIHJldHVybiBjb3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
aW5kZXggOTg3NDEwMTAwY2M0NjAzMTkwZTQ5NWM0NzFiODc2MmNmZDM1NmM0OC4uZGZhMTY1NmE4
NGYwODNiNGI1NGEzZDczZGQzNWMzN2RiMzJmOGFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCkBAIC03NCw2ICs3NCwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFn
ZURpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFN0cmluZyYm
IGRpcmVjdG9yeSkgeyBtX2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9IFdURk1vdmUoZGlyZWN0b3J5
KTsgfQogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgY29uc3QgU3RyaW5nJiBtb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3Rvcnk7IH0KKyAgICB2b2lkIHNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KFN0
cmluZyYmIGRpcmVjdG9yeSkgeyBtX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5ID0gV1RGTW92
ZShkaXJlY3RvcnkpOyB9CisjZW5kaWYKKwogICAgIGNvbnN0IFN0cmluZyYgYm91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXI7
IH0KICAgICB2b2lkIHNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcihTdHJpbmcmJiBpZGVudGlm
aWVyKSB7IG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsg
fQogCkBAIC0xNzksNiArMTg0LDkgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OwogICAgIFN0cmluZyBtX3dlYlNRTERhdGFiYXNlRGly
ZWN0b3J5OwogICAgIFN0cmluZyBtX2hzdHNTdG9yYWdlRGlyZWN0b3J5OworI2lmIEVOQUJMRShN
T0RFTF9FTEVNRU5UKQorICAgIFN0cmluZyBtX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5Owor
I2VuZGlmCiAjaWYgVVNFKEdMSUIpCiAgICAgYm9vbCBtX25ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
VmFsaWRhdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IDAxOWRhZjNhMTE2OTIxMjQ3ZGMzZWJiMjRjZTAxMGVhZWE3
ZDQxMWQuLjBkZGQ2MTk3ZjNhODFkNmFiNjUzMTJkNjlmZGY2MmJkNTE5NzAxOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0MSw2ICsxNDEsMTAgQEAKICNp
bmNsdWRlIDx3dGYvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTW9k
ZWxFbGVtZW50Lmg+CisjZW5kaWYKKwogI2lmICFPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHVuaXN0
ZC5oPgogI2VuZGlmCkBAIC01NjgsNiArNTcyLDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0V2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBw
CiAgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhQ2FjaGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5KTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpCisgICAgaWYgKCFwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGly
ZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6c2V0
TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeSk7CisjZW5kaWYKKwogICAgIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOwogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDhhY2MzZDBhOGFiMWNjZDRiM2ZlY2Fk
NjBiM2E2YmMzYWU2NDMwMjkuLjBkNmRlMWYyYTk5MDYwOWVlOWEwNTAyZThkOTQ4YzM5MGZhMTFk
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtNDgxLDYgKzQ4MSw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1lCiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFDYWNo
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3Vt
ZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1l
dGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Cisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KHBhcmFtZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIGlmICghcGFyYW1ldGVycy5qYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0VtcHR5KCkpIHsK
</data>
<flag name="review"
          id="454148"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>