<?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>100659</bug_id>
          
          <creation_ts>2012-10-29 05:34:57 -0700</creation_ts>
          <short_desc>Memory instrumentation: report actual object address for CachedResourceClients</short_desc>
          <delta_ts>2012-10-30 02:16:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>753297</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 05:34:57 -0700</bug_when>
    <thetext>There are several implementations of CachedResourceClients which have multiple parent classes and thus CachedResourceClient* is different from the actual pointer. This can be fixed by adding CachedResourceClient::reportMemoryUsage which would return actual object address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753307</commentid>
    <comment_count>1</comment_count>
      <attachid>171212</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 05:43:45 -0700</bug_when>
    <thetext>Created attachment 171212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753319</commentid>
    <comment_count>2</comment_count>
      <attachid>171212</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-29 05:53:46 -0700</bug_when>
    <thetext>Comment on attachment 171212
Patch

Attachment 171212 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14640068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753324</commentid>
    <comment_count>3</comment_count>
      <attachid>171212</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-29 05:56:28 -0700</bug_when>
    <thetext>Comment on attachment 171212
Patch

Attachment 171212 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14629113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753332</commentid>
    <comment_count>4</comment_count>
      <attachid>171212</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 06:07:14 -0700</bug_when>
    <thetext>Comment on attachment 171212
Patch

Attachment 171212 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14618724</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753335</commentid>
    <comment_count>5</comment_count>
      <attachid>171212</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 06:09:39 -0700</bug_when>
    <thetext>Comment on attachment 171212
Patch

Attachment 171212 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14626152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753352</commentid>
    <comment_count>6</comment_count>
      <attachid>171225</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 06:27:04 -0700</bug_when>
    <thetext>Created attachment 171225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753361</commentid>
    <comment_count>7</comment_count>
      <attachid>171225</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-29 06:37:11 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14630106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753362</commentid>
    <comment_count>8</comment_count>
      <attachid>171225</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-29 06:37:46 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14631118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753386</commentid>
    <comment_count>9</comment_count>
      <attachid>171225</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 07:01:48 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14625161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753393</commentid>
    <comment_count>10</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-29 07:06:33 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=171225&amp;action=review

&gt; Source/WebCore/css/CachedSVGDocumentReference.h:45
&gt; +        MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);

What do you think about WebCoreMemoryTypes::SVG = &quot;Page.SVG&quot;

&gt; Source/WebCore/dom/PendingScript.cpp:71
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);

What do you think about WebCoreMemoryTypes::Script = &quot;Page.Script&quot;

&gt; Source/WebCore/html/HTMLDocument.h:82
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

OVERRIDE

&gt; Source/WebCore/html/HTMLLinkElement.cpp:401
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS);

DOM?

&gt; Source/WebCore/html/HTMLLinkElement.h:91
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

OVERRIDE

&gt; Source/WebCore/html/HTMLScriptElement.h:69
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

OVERRIDE

&gt; Source/WebCore/html/parser/HTMLDocumentParser.h:82
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

ditto

&gt; Source/WebCore/rendering/RenderObject.cpp:2843
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::RenderTreeUsed, 0);

as we discussed offline that it&apos;d be nice to have customAllocated flag on MemoryObjectInfo which indicates that this object was allocated in RenderArena and shouldn&apos;t be counted.

&gt; Source/WebCore/svg/SVGFEImageElement.cpp:207
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);

SVG?

&gt; Source/WebCore/svg/SVGFontFaceUriElement.cpp:95
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);

SVG?

&gt; Source/WebCore/svg/SVGScriptElement.cpp:217
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);

SVG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753422</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 07:28:46 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171225&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CachedSVGDocumentReference.h:45
&gt; &gt; +        MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
&gt; 
&gt; What do you think about WebCoreMemoryTypes::SVG = &quot;Page.SVG&quot;
&gt; 
Added.

&gt; &gt; Source/WebCore/dom/PendingScript.cpp:71
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
&gt; 
&gt; What do you think about WebCoreMemoryTypes::Script = &quot;Page.Script&quot;
&gt; 
We don&apos;t report scripts separately yet.

&gt; &gt; Source/WebCore/html/HTMLDocument.h:82
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; OVERRIDE
&gt; 
Done.

&gt; &gt; Source/WebCore/html/HTMLLinkElement.cpp:401
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS);
&gt; 
&gt; DOM?
&gt; 
Done.

&gt; &gt; Source/WebCore/html/HTMLLinkElement.h:91
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; OVERRIDE
&gt; 
Done.

&gt; &gt; Source/WebCore/html/HTMLScriptElement.h:69
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; OVERRIDE
&gt; 
Done.

&gt; &gt; Source/WebCore/html/parser/HTMLDocumentParser.h:82
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; ditto
&gt; 
Done.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:2843
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::RenderTreeUsed, 0);
&gt; 
&gt; as we discussed offline that it&apos;d be nice to have customAllocated flag on MemoryObjectInfo which indicates that this object was allocated in RenderArena and shouldn&apos;t be counted.
&gt; 
Done.

&gt; &gt; Source/WebCore/svg/SVGFEImageElement.cpp:207
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
&gt; 
&gt; SVG?
&gt; 
Done.

&gt; &gt; Source/WebCore/svg/SVGFontFaceUriElement.cpp:95
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
&gt; 
&gt; SVG?
&gt; 
Done.

&gt; &gt; Source/WebCore/svg/SVGScriptElement.cpp:217
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
&gt; 
&gt; SVG
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753429</commentid>
    <comment_count>12</comment_count>
      <attachid>171225</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-29 07:36:39 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14640103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753450</commentid>
    <comment_count>13</comment_count>
      <attachid>171225</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 07:54:08 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14631137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753461</commentid>
    <comment_count>14</comment_count>
      <attachid>171225</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-29 08:09:13 -0700</bug_when>
    <thetext>Comment on attachment 171225
Patch

Attachment 171225 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14630139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753469</commentid>
    <comment_count>15</comment_count>
      <attachid>171252</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 08:28:40 -0700</bug_when>
    <thetext>Created attachment 171252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753474</commentid>
    <comment_count>16</comment_count>
      <attachid>171252</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-29 08:39:39 -0700</bug_when>
    <thetext>Comment on attachment 171252
Patch

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

lgtm

&gt; Source/WebCore/rendering/RenderObject.cpp:2843
&gt; +    memoryObjectInfo-&gt;setCustomAllocator();

Actually RenderObject allocates in heap in debug mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753484</commentid>
    <comment_count>17</comment_count>
      <attachid>171252</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 08:53:19 -0700</bug_when>
    <thetext>Comment on attachment 171252
Patch

Attachment 171252 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14630147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753510</commentid>
    <comment_count>18</comment_count>
      <attachid>171252</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-29 09:30:30 -0700</bug_when>
    <thetext>Comment on attachment 171252
Patch

Attachment 171252 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14640128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753547</commentid>
    <comment_count>19</comment_count>
      <attachid>171252</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-29 09:59:03 -0700</bug_when>
    <thetext>Comment on attachment 171252
Patch

Attachment 171252 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14631176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753977</commentid>
    <comment_count>20</comment_count>
      <attachid>171369</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 21:45:04 -0700</bug_when>
    <thetext>Created attachment 171369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753997</commentid>
    <comment_count>21</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-29 22:50:21 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=171369) [details]
&gt; Patch

CachedResourceClient::reportMemoryUsage is pure virtual function while other methods in the clients have default implementation. It is hard to provide a meaningful default implementation for reportMemoryUsage so I tried to update all existing implementations of the client interface and left the method pure virtual for now. I could change it to report the object as having custom allocator by default which would compile but report no information about the client if the method is not overriden. Let me know if you want me to do the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754004</commentid>
    <comment_count>22</comment_count>
      <attachid>171369</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-29 23:18:15 -0700</bug_when>
    <thetext>Comment on attachment 171369
Patch

Attachment 171369 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14629394</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754079</commentid>
    <comment_count>23</comment_count>
      <attachid>171401</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-30 01:57:04 -0700</bug_when>
    <thetext>Created attachment 171401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754086</commentid>
    <comment_count>24</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-30 02:01:50 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=171401) [details]
&gt; Patch

After offline discussion I changed the approach to simply skip CachedResourceClients. Otherwise we would try to report uncontrolled set of clients and their implementation details through the abstract interface. If we want to report the client&apos;s memory usage we should do this through the client&apos;s owner instead. General approach to the memory graph traversal should sound like &quot;report memory usage only for objects owned by the current one&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754089</commentid>
    <comment_count>25</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-30 02:03:35 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=171401) [details]
&gt; Patch

This change reduces number of reported objects that are not allocated by the memory allocator from &gt;350 to 4 on Chromium build and nytimes.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754090</commentid>
    <comment_count>26</comment_count>
      <attachid>171401</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-30 02:04:31 -0700</bug_when>
    <thetext>Comment on attachment 171401
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754099</commentid>
    <comment_count>27</comment_count>
      <attachid>171401</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-10-30 02:09:01 -0700</bug_when>
    <thetext>Comment on attachment 171401
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Skiped pointers to objects that are not allocated on the heap directly.

Skiped -&gt; Skipped

&gt; Source/WebCore/ChangeLog:11
&gt; +        insrumentation with those allocated by the memory allocator. Latter set should

The latter set...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754103</commentid>
    <comment_count>28</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-30 02:11:29 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 171401 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171401&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Skiped pointers to objects that are not allocated on the heap directly.
&gt; 
&gt; Skiped -&gt; Skipped
&gt; 
Done.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        insrumentation with those allocated by the memory allocator. Latter set should
&gt; 
&gt; The latter set...
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754108</commentid>
    <comment_count>29</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-30 02:16:01 -0700</bug_when>
    <thetext>Committed r132884: &lt;http://trac.webkit.org/changeset/132884&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171212</attachid>
            <date>2012-10-29 05:43:45 -0700</date>
            <delta_ts>2012-10-29 06:26:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100659-20121029164211.patch</filename>
            <type>text/plain</type>
            <size>57365</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I0NTRiOGMxYzQ3NmFm
NTFlNWQ4NDFiN2NhYjZjZDkzZWU5ZTNhZC4uNWFjMTJiODM4NTUyMjQ3MjFmMTYyY2ZiNzU2OGIx
ZGFiZTc4NTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MCBAQAorMjAxMi0xMC0yOSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZW1vcnkgaW5z
dHJ1bWVudGF0aW9uOiByZXBvcnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzIGZvciBDYWNoZWRSZXNv
dXJjZUNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIENhY2hlZFJlc291cmNlQ2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZSB2aXJ0dWFs
IG1ldGhvZCB0aGF0IGlzIG92ZXJyaWRlbgorICAgICAgICBpbiBhbGwgY2xpZW50cyB0byByZXBv
cnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzLgorCisgICAgICAgIFRvIHRlc3QgdGhpcyB3ZSBuZWVk
IHRvIGNvbXBhcmUgYWRkcmVzc2VzIG9mIG9iamVjdHMgdHJhdmVyc2VkIGJ5IHRoZSBtZW1vcnkK
KyAgICAgICAgaW5zcnVtZW50YXRpb24gd2l0aCB0aG9zZSBhbGxvY2F0ZWQgYnkgdGhlIG1lbW9y
eSBhbGxvY2F0b3IuIExhdHRlciBzZXQgc2hvdWxkCisgICAgICAgIGluY2x1ZGUgdGhlIGZvcm1l
ciBvbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94
eTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAgIChDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVy
UHJveHkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgIChD
U1NGb250RmFjZVNvdXJjZSk6CisgICAgICAgICogY3NzL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9T
dHlsZVJ1bGVJbXBvcnQuaDoKKyAgICAgICAgKEltcG9ydGVkU3R5bGVTaGVldENsaWVudCk6Cisg
ICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGlu
Z1NjcmlwdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogZG9tL1BlbmRpbmdTY3JpcHQuaDoKKyAgICAgICAgKFBlbmRpbmdTY3JpcHQpOgorICAgICAg
ICAqIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Y2Vzc2luZ0luc3RydWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6CisgICAgICAgIChQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
aHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVt
ZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAoSFRNTExpbmtFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
Y3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MU2NyaXB0RWxl
bWVudCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBsb2FkZXIv
SW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKEltYWdlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpyZXBvcnRNZW1v
cnlVc2FnZSk6IGNsaWVudCBpcyByZXBvcnRlZCBhcyBhIHdlYWsgcG9pbnRlcgorICAgICAgICBh
cyB3ZSBzaG91bGQgcmVhY2ggdGhlIGNsaWVudHMgd2hlbiB0cmF2ZXJzaW5nIERPTS4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmg6CisgICAgICAgIChM
aW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5oOgorICAgICAg
ICAoVGV4dFRyYWNrTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaDoKKyAgICAgICAgKENhY2hlZFJlc291cmNlQ2xpZW50KToKKyAgICAgICAgKiBs
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKTogY2xpZW50IGlzIHJlcG9ydGVkIGFzIGEgd2VhayBwb2ludGVy
CisgICAgICAgIGFzIHdlIHNob3VsZCByZWFjaCB0aGUgY2xpZW50cyB3aGVuIHRyYXZlcnNpbmcg
RE9NLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRl
ci5oOgorICAgICAgICAoSWNvbkxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21p
dW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisgICAgICAgIChDbGlwYm9hcmRD
aHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlckluZm86OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckZpbHRlckluZm8uaDoKKyAgICAgICAgKFJlbmRlckxheWVyRmlsdGVySW5mbyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaDoKKyAg
ICAgICAgKFN0eWxlQ2FjaGVkSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZEltYWdlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkSW1hZ2VT
ZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0Lmg6CisgICAgICAgIChTdHlsZUNhY2hl
ZEltYWdlU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQ
cm9ncmFtLmg6CisgICAgICAgIChTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVk
SW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUltYWdlLmg6CisgICAgICAgIChTdHlsZUltYWdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlUGVu
ZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFNWR0ZFSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5oOgorICAgICAgICAoU1ZHRm9udEZhY2VVcmlFbGVtZW50KToKKyAgICAg
ICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3Jp
cHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoU1ZHU2NyaXB0RWxlbWVudCk6
CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VXNlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1VzZUVsZW1lbnQpOgorICAg
ICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTEltcG9y
dFJ1bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHhtbC9YU0xJbXBvcnRSdWxlLmg6CisgICAgICAgIChYU0xJbXBvcnRSdWxlKToKKyAgICAgICAg
KiB4bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ld1hNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAg
ICAgIChOZXdYTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogeG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoWE1MRG9jdW1lbnRQYXJzZXIpOgorCiAy
MDEyLTEwLTI4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBUaGUgc2hhZG93IGVsZW1lbnQgaXMgbm90IHJlcHJvamVjdGVkIHRvIGEgbmVzdGVkIFNo
YWRvd1Jvb3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCAx
MjY3MzRmZmNiZDY3NDkyMTQ5YTgwYjkxZjRkN2ZmN2QxYmZjMDIyLi5jZDhiM2U1NDk3ZTk1M2Yx
MTRhNzkzNzg5YTEzNjdlMWFiNTM2NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5jcHAKQEAgLTE5MCw2ICsxOTAsMTIgQEAgdm9pZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6
Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UK
ICAgICAgICAgbV9vd25lclZhbHVlLT5jcm9zc2ZhZGVDaGFuZ2VkKCpyZWN0KTsKIH0KIAordm9p
ZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX293bmVyVmFsdWUpOwor
fQorCiBib29sIENTU0Nyb3NzZmFkZVZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3Vy
Y2VzKCkgY29uc3QKIHsKICAgICBpZiAobV9jYWNoZWRGcm9tSW1hZ2UgJiYgbV9jYWNoZWRGcm9t
SW1hZ2UtPmxvYWRGYWlsZWRPckNhbmNlbGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5oCmluZGV4IGNiMDdhYmMzYjlkNWI2Y2Y5ZDA1NzAwYTgzM2QzNWZkM2ViMmI5Yjcu
LjgzY2E5YmIwOTU1N2I0NThhMTdmMmFmYzgwZTM1ZDVmNThlNDJiMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCkBAIC04Myw2ICs4Myw3IEBAIHByaXZhdGU6CiAKICAg
ICAgICAgdmlydHVhbCB+Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KCkgeyB9CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0
KiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogICAgICAgICB2b2lkIHNldFJlYWR5
KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CiAgICAgcHJpdmF0ZToKICAgICAgICAg
Q1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuY3BwCmluZGV4IDVlNTI4OWY2ZDUyMjdhZTlmZDFjY2NhMjc0YjgxY2MxMmNl
ZDkxZGIuLmM1YWU0MTVhZWJiNjU3NjRlMmY2ZTc1ZjNjOWJhNWI0NjQxODNlNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2lu
Y2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1
ZGUgIlNpbXBsZUZvbnREYXRhLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg+CiAK
ICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCIKQEAgLTk0LDYgKzk2LDE5IEBAIHZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnRMb2FkZWQo
Q2FjaGVkRm9udCopCiAgICAgICAgIG1fZmFjZS0+Zm9udExvYWRlZCh0aGlzKTsKIH0KIAordm9p
ZCBDU1NGb250RmFjZVNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9zdHJpbmcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9udCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9mYWNlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZvbnREYXRhVGFibGUp
OworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdGb250RmFj
ZUVsZW1lbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZXh0ZXJuYWxTVkdGb250RWxlbWVudCk7
CisjZW5kaWYKK30KKwogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gQ1NTRm9udEZhY2VTb3Vy
Y2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBDU1NGb250U2VsZWN0b3Iq
IGZvbnRTZWxlY3RvcikKIHsKICAgICAvLyBJZiB0aGUgZm9udCBoYXNuJ3QgbG9hZGVkIG9yIGFu
IGVycm9yIG9jY3VycmVkLCB0aGVuIHdlJ3ZlIGdvdCBub3RoaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuaAppbmRleCAwNDg4ZDEwZDMyNjAwZTQ3ZGVkZDBmNzI4YzAwMzRj
YTA0YWRmMTVjLi45YTQ1OTNkZGJkNGJjYjBiZjFlZmY0MDE4MDRlMTIwZWIxNDA0MmQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGb250RmFjZShDU1NGb250RmFjZSogZmFjZSkgeyBtX2ZhY2UgPSBm
YWNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9udExvYWRlZChDYWNoZWRGb250Kik7CisgICAg
dmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
IAogICAgIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IGdldEZvbnREYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIENT
U0ZvbnRTZWxlY3RvciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2FjaGVk
U1ZHRG9jdW1lbnRSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5oCmluZGV4IDJhMjUzYWJkNDM3MThhNTY3MTU2MTA1ZjVkMjI4NzBkNjE1
NTM2MDkuLmI0NmQzNjA1MjMzNGU2MGQzYTMxZDk4MGU5YTkxYWNhODY1MTY5MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgi
CisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTM5LDYgKzQwLDExIEBAIHB1YmxpYzoKICAgICBDYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZShDYWNoZWRTVkdEb2N1bWVudCogZG9jdW1lbnQpIDogbV9kb2N1bWVudChk
b2N1bWVudCkgeyBtX2RvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7IH0KICAgICB2aXJ0dWFsIH5D
YWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSgpIHsgbV9kb2N1bWVudC0+cmVtb3ZlQ2xpZW50KHRo
aXMpOyB9CiAgICAgQ2FjaGVkU1ZHRG9jdW1lbnQqIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1
bWVudC5nZXQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICB9CiBwcml2
YXRlOgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBtX2RvY3Vt
ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKaW5kZXggZWVjMzUw
NzcxYzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NS4uOTkwZjJjZmQ5OWNiM2RiY2YzZTk0
YmZjMTdiOWJhODk5YjIyMGU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQwLDQgKzE0MSwxMCBAQCB2b2lk
IFN0eWxlUnVsZUltcG9ydDo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVTaGVldCk7CiB9
CiAKK3ZvaWQgU3R5bGVSdWxlSW1wb3J0OjpJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZUltcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5o
CmluZGV4IGI3ZGYwMmNmMWYxMjY1YWQzYTM4YjRkZGM4MGE5MDE1ODQ2OGYyNDkuLjExYzRjMTdl
ZDc5YjViZGUxNmRkZWJkOWNhYTdmZTkxMDRiNmM0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgewogICAgICAg
ICAgICAgbV9vd25lclJ1bGUtPnNldENTU1N0eWxlU2hlZXQoaHJlZiwgYmFzZVVSTCwgY2hhcnNl
dCwgc2hlZXQpOwogICAgICAgICB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgcHJpdmF0ZToKICAgICAgICAgU3R5
bGVSdWxlSW1wb3J0KiBtX293bmVyUnVsZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdT
Y3JpcHQuY3BwCmluZGV4IGM2MDJhMTEyNjYzZjM5ZTcyMzMyOTU5MDNlY2JhYmJiZGE2N2ZhOTku
LmM2ZGQ0YmJiNTE5ZTNmMWUyMGQ5YWIzODdkOTRlMjEwNjMxNDQxZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUGVuZGluZ1NjcmlwdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjUsNCArNjYs
MTIgQEAgdm9pZCBQZW5kaW5nU2NyaXB0Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSop
CiB7CiB9CiAKK3ZvaWQgUGVuZGluZ1NjcmlwdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9lbGVtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0YXJ0
aW5nUG9zaXRpb24pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkU2NyaXB0KTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggMzk5NjQ2MjVlMDgyZWM0YTBmNzk1
MTQ2Yzg2YTI5MGMxODE1ZTgxOC4uNGVjZGEzZDQ0NWZhY2ZhYzkyYjNmZWUwMTNmMjFmMGY0MzA5
YjI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC05NCw2ICs5NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENhY2hlZFNjcmlwdChDYWNoZWRTY3JpcHQqKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBtX3dhdGNoaW5nRm9yTG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggZWMxNzMzYzc0NDg5NTI2ZGY2NWNlMGY0MWIz
YjY4NzcxMWQ0M2ZjZC4uMTRhNTQ4NzhmN2ZjMGViYzMwMzcyNzllNjQ1YjA0MmNmZjc0OGIzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIgLy8gZm9yIHBhcnNlQXR0cmlidXRlcygpCiAjaW5jbHVkZSAiTWVk
aWFMaXN0LmgiCkBAIC0yNDEsNiArMjQyLDE5IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpzZXRYU0xTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzCiB9
CiAjZW5kaWYKIAordm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOworICAgIE5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fdGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGEp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbG9jYWxIcmVmKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3RpdGxlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NhY2hlZFNoZWV0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NoZWV0KTsKK30KKwogdm9p
ZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OnBhcnNlU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHNo
ZWV0KQogewogICAgIGlmIChtX2lzQ1NTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5oCmluZGV4IGUzMzFlMjFkZmU1ZTNjZDk2Y2IyZmU2MjdmZTAzZDE0N2I4YjRi
NjEuLjQyNGI4YjcxMzNjYTE2MDM2ODAxOWEwNWNlOGFkNGNkNzcxNTAwYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoWFNMVCkKICAgICB2aXJ0dWFsIHZvaWQgc2V0WFNMU3R5bGVTaGVl
dChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYg
c2hlZXQpOwogI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHNoZWV0TG9hZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNzE0MTBhMTRlZmU4NmMxMTE1
MmYyYzc2OTE2ZTk5YzcxNzM4MTFjMi4uOTZlOWE1YzliN2Y4NTdmNTMxODU2ZDVmZjJlYTJmOTMy
NGM4OGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpQYWdlID0gIlBhZ2UiOwogTWVt
b3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSA9ICJQYWdlLkRPTSI7CitNZW1v
cnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NUGFyc2VyID0gIlBhZ2UuRE9NUGFy
c2VyIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MgPSAiUGFnZS5D
U1MiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcgPSAiUGFn
ZS5CaW5kaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggNzQ3OWUwNTM0MTdkMGVkMDZkYTNlZmFhMmQyYWQzZjc1ZGEz
OTEyZS4uMjdmMjI5MjJlMGEzZTNmMTViNDY1MThkNWU1MWJhNzg4N2M5ODk0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00
Myw2ICs0Myw3IEBAIGNsYXNzIFdlYkNvcmVNZW1vcnlUeXBlcyA6IHB1YmxpYyBQbGF0Zm9ybU1l
bW9yeVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBQYWdlOwog
ICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIERPTTsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0
VHlwZSBET01QYXJzZXI7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ1NTOwogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIEJpbmRpbmc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAppbmRleCBiOWQ3NjdlMzA0YmM5YTVjMGQzYzY0MDc1OTg1ODczYTdjMzRjMjRkLi40
ZTFlYzNkMjMyNWUwZmFkMWJhZGI5N2NkN2FlZmJiMWFmNGM1MzhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwCkBAIC03NCw2ICs3NCw4IEBACiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1
ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzMiw2ICszMzQsMTQgQEAgdm9pZCBI
VE1MRG9jdW1lbnQ6OnJlbW92ZUV4dHJhTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKICAgICByZW1vdmVJdGVtRnJvbU1hcChtX2V4dHJhTmFtZWRJdGVtQ291bnRzLCBuYW1lKTsK
IH0KIAordm9pZCBIVE1MRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIERv
Y3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX25hbWVkSXRlbUNvdW50cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9leHRyYU5h
bWVkSXRlbUNvdW50cyk7Cit9CisKIHZvaWQgSFRNTERvY3VtZW50OjpzZXRDb21wYXRpYmlsaXR5
TW9kZUZyb21Eb2N0eXBlKCkKIHsKICAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcG9zc2libGUgY29t
cGF0aWJpbGl0eSBtb2RlczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCmluZGV4IGQzOWYz
OTJhYWE0MmI4MTkzNzRhNWExYWFhYzIyNjUxM2I0NTk3NWYuLjNmOWM1YmZkOTZhOWRjN2JkZjEw
YzBmMzFjY2RhYTQwNjI5Y2E4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaApAQCAt
NzksNiArNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVFeHRyYU5hbWVkSXRlbShjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpOwogICAgIGJvb2wgaGFzRXh0cmFOYW1lZEl0ZW0oQXRvbWlj
U3RyaW5nSW1wbCogbmFtZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTERvY3VtZW50
KEZyYW1lKiwgY29uc3QgS1VSTCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKaW5kZXggN2M5NmIxOWIxMzg3ODE5ZTIwMmY1NDg5ZTJjNjIwOWIzZjQ0YjQzMy4uMDYz
NGY3ODZjNzcyZjI1MjgxMzQxYTBmOTQxZjUzN2M3YTFkZGVmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRD
b250ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5
NSw2ICszOTYsMTkgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnN0YXJ0TG9hZGluZ0R5bmFtaWNT
aGVldCgpCiAgICAgYWRkUGVuZGluZ1NoZWV0KEJsb2NraW5nKTsKIH0KIAordm9pZCBIVE1MTGlu
a0VsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
bGlua0xvYWRlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRTaGVldCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9zaGVldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV91cmwpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdHlwZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYSk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9zaXplcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWxBdHRyaWJ1
dGUpOworfQorCiBib29sIEhUTUxMaW5rRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0
cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkg
PT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCAwYjZjNmM5OTdmMjhhZTM0MTI1
MzYzODNlMGMwMTA0MDhkNWZmZDFhLi5iZDViZjdjNTRjNTYwNTc5MGI2ZmFlNTZhMjhhYTZlMzZl
NmFlODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTg4LDYgKzg4
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hlZXRMb2FkZWQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5TG9hZGVkU2hlZXRBbmRBbGxDcml0aWNhbFN1YnJlc291cmNlcyhib29s
IGVycm9yT2NjdXJyZWQpOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hl
ZXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGxpbmtMb2FkZWQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgbGlua0xvYWRpbmdFcnJvcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwCmluZGV4IDRmMmM5NTYxZjdiNDc1OWQ1MTJiMzNkMDI5YzhhYjVjZTJkOWUz
YzMuLmFiOWM3NjQxOGNjMzczNzcyOTQ3M2JiMGJjN2M3NTMxM2FiNzI5MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNzgsNCArMTc4LDExIEBAIFBh
c3NSZWZQdHI8RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU2NyaXB0
RWxlbWVudCh0YWdRTmFtZSgpLCBkb2N1bWVudCgpLCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkp
OwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsK
KyAgICBIVE1MRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIoZWxlbWVudCgpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGMyY2EwZGI1NjFiNjk5NDVhY2FlOWFmYmZkZWMxYTU4
ZTU1YWYyNzAuLjA1MzA4NDU0NGI2OGVmNTJkZjkxYTg0MDRlODY2Yjg4ZjI4ZGMxY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDYgKzY1LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKTsKIAogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENo
aWxkcmVuKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0OwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggOTM1ZjVkMDU3ZGU1
NWU3N2UzODA5ZDhiZTY2MDc2MmNkNDM4YzA4Ny4uY2Y1MTg3NjBkOTdiNGZjNGFhNDNiZmQzZTY4
ZjlmMDUxMmIxNzZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NjgsNCArNTY5LDE4IEBAIHZv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVTY2hlZHVsZWRUYXNrcygpCiAgICAgICAgIG1f
cGFyc2VyU2NoZWR1bGVyLT5yZXN1bWUoKTsKIH0KIAordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpET01QYXJzZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5w
dXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdG9rZW5pemVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3NjcmlwdFJ1bm5lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmVlQnVpbGRlcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9wcmVsb2FkU2Nhbm5lcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9pbnNlcnRpb25QcmVsb2FkU2Nhbm5lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJzZXJT
Y2hlZHVsZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc291cmNlVHJhY2tlcik7CisgICAgaW5m
by5hZGRNZW1iZXIobV94c3NBdWRpdG9yKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBjZTEwOGY0YjkzMjA4OGNkMTQ4
YzA1ZDYzOWFjODY5ZGE5NmVhYjc1Li40YjQ4OGFkZmY5ZGIxMWZhMzUxNjY1Y2U1ODBjNTAwNDRm
MTY0NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaApAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN1c3Bl
bmRTY2hlZHVsZWRUYXNrcygpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVTY2hlZHVsZWRUYXNr
cygpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnQoY29uc3Qg
U2VnbWVudGVkU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50
ZWRTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAKaW5kZXggZWNhZmUwMTM2Yzg1MzIwOGU2ZjgxM2ZiMTVjMzQxYzdlYTg3
Y2M4Zi4uMzg1N2RmNzA1MDFjY2IwNmU2N2Y5ODEyMTVkMDU4MTJlYjBkNGYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN1
YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgor
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCkBAIC0zMTYsNiAr
MzE3LDE1IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNv
dXJjZS0+aWRlbnRpZmllcigpLCBtX3Jlc291cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKIH0KIAor
dm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzb3VyY2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xp
ZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2FjdHVhbFJlcXVlc3QpOworfQorCiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hU
aW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggODc5OTE5ZmVjYTU1YTIxZGNjZTNi
ZDAxY2I5ZGQ5OGM1OWY0MTA1Yy4uZTIzMjQ5OGRjNzQ3OTVlMTNmZWU4YzMyMDEzNGZiM2FhYjll
MWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuaApAQCAtODIsNiArODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgZGF0YUxlbmd0aCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICAgICAgdmlydHVhbCB2b2lk
IGRhdGFEb3dubG9hZGVkKENhY2hlZFJlc291cmNlKiwgaW50KTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzEyYmUyZmY5ZDQ1NTc0ZTQxZDRmNDcwOGNi
OTZiYjRkNWE3ZWM0Yi4uODNmZTFjZTQ2YmNmYWQxNmNmMWRlOTU0OTE2YjcyOTRhMzA1OWZhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW1hZ2Uu
aCIKQEAgLTQ0MSw2ICs0NDIsMTQgQEAgdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5n
RXJyb3JFdmVudHMoKQogICAgIGVycm9yRXZlbnRTZW5kZXIoKS5kaXNwYXRjaFBlbmRpbmdFdmVu
dHMoKTsKIH0KIAordm9pZCBJbWFnZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Cisg
ICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2NsaWVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9p
bWFnZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mYWlsZWRMb2FkVVJMKTsKK30KKwogdm9pZCBJ
bWFnZUxvYWRlcjo6ZWxlbWVudERpZE1vdmVUb05ld0RvY3VtZW50KCkKIHsKICAgICBzZXRJbWFn
ZSgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKaW5kZXggYmM4NTkxNWI5ZTAwMDY0
ZWJiNTU3NWNjYjZlZWQ4YmUxZGE3NmM4Mi4uNDMzZmYwMGU3OWEyNzMxNWNmOTU1N2E1YTcwZjYz
Zjc3MGY2MzQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTc0LDYgKzc0
LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudHMo
KTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdFcnJvckV2ZW50cygpOwogCisgICAg
dmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
KwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggZTUwYjM3OWQ5
NmJlZGE3MzI5MjU0NjQyMGVhY2Y5OGJhNTQzZTFiOC4uOGRlODA2YzBlMDUyMTk5ZTQwOWFhMThk
NDJiZjliOGUwZGMzNmYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCiAj
aW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCkBAIC05MCw2ICs5MSwxOCBAQCB2b2lkIExpbmtM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICBtX2Nh
Y2hlZExpbmtSZXNvdXJjZSA9IDA7CiB9CiAKK3ZvaWQgTGlua0xvYWRlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2NsaWVudCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9jYWNoZWRMaW5rUmVzb3VyY2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
bGlua0xvYWRUaW1lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rTG9hZGluZ0Vycm9yVGlt
ZXIpOworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBpbmZvLmFkZE1lbWJlcihtX3By
ZXJlbmRlckhhbmRsZSk7CisjZW5kaWYKK30KKwogYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhj
b25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYgdHlwZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBzaXplcywgY29uc3QgS1VS
TCYgaHJlZiwgRG9jdW1lbnQqIGRvY3VtZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmgKaW5kZXggYTFhNjNmMDNmZWRlOTZmMTQ2MmM3NDYwODA0ZTUzMzViZDQxYjYzMi4uM2NlODc1
NGU1YjBiYTdiNWFhZTE2YWJjYjQxOTIxNzQ4NmMxZmJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlu
a0xvYWRlci5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGZyb20gQ2FjaGVk
UmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0OwogICAgIAogICAgIHZvaWQgcmVsZWFzZWQoKTsKICAgICBib29sIGxvYWRM
aW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgc2l6ZXMsIGNvbnN0IEtVUkwmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCA3ZTE0YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYx
MzZkOGI4MGY2ZjQwLi41ZjhjZTlmZTc1ODJmZDkzOTllMzdiY2JkNDRiMzhmODQ2Y2EyM2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTExMyw2ICsxMTQsMTcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICBwcm9jZXNzTmV3
Q3VlRGF0YShyZXNvdXJjZSk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNrTG9hZGVyOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1v
cnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaWVudCk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9jdWVQYXJzZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkQ3VlRGF0
YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2N1ZUxvYWRUaW1lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jcm9z
c09yaWdpbk1vZGUpOworfQorCiB2b2lkIFRleHRUcmFja0xvYWRlcjo6Y29yc1BvbGljeVByZXZl
bnRlZExvYWQoKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgKaW5kZXggNzQzMzRmOTA2NDZjZGZkNDU4ZjljMjNm
NjJmMDgxZjQ4NzViOGMzYy4uM2E3MTU5Y2M1MWNjYWY1ZTEzZWJhYmM2ZDg2OTU3ZGZkYmE0MDIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaApAQCAtNzAsNiArNzAs
NyBAQCBwcml2YXRlOgogICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAgICAvLyBXZWJWVFRQ
YXJzZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaAppbmRleCBm
ZjFkZWFjY2EwYzA5YTAzZDY1MTFmMWVjNzc2MzM5ZDZmYjk2ZjYwLi43M2VjZDQzOWMxNmVlYjg1
MDk0NjMzODI2NzkwNDlkZjk1YmFkM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaApAQCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSBleHBlY3RlZFR5cGUoKSB7IHJl
dHVybiBCYXNlUmVzb3VyY2VUeXBlOyB9CiAgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNsaWVu
dFR5cGUgcmVzb3VyY2VDbGllbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gZXhwZWN0ZWRUeXBlKCk7
IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnQoKSB7
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCmluZGV4IDhj
OWQwY2VjYmZjZDEyYjdlYWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUuLjRiYTBjMjY1YjJjZjU5ZDc5
YTA5NTMyMWEyZDVjZTRjYjhmNGQxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTAzLDQgKzEwNCwxMSBA
QCB2b2lkIEljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSkKICAgICBzdG9wTG9hZGluZygpOwogfQogCit2b2lkIEljb25Mb2FkZXI6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fcmVzb3VyY2UpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
TG9hZGVyLmgKaW5kZXggNjVlOGJkNTJmMjcwNDIxMzVjNWFjNzgzMWE1NzRkZTJkZGVhOWRjNC4u
NjM1OTFiNTNhMjI0OTNkYzkwODEzOWIwMTU5ODhjOGRkODAxZDZjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEljb25Mb2FkZXIoRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiAgICAgRnJhbWUqIG1fZnJh
bWU7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3Vy
Y2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAKaW5kZXggZjU4ZWJjZWY5Y2NjMWFlOTk5YTY0YzBhNDQ4OTUwMjI3OTU1
YjFiMS4uMzRhZGEzYjUxZDNhMGZjYTJhNmIyMDE4NTU3YWVlYWYwMzNlZmY4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW1hZ2UuaCIKICNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgorI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKIAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDY1LDQgKzQ2NiwxMSBAQCBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMoKQogfQogI2Vu
ZGlmCiAKK3ZvaWQgQ2xpcGJvYXJkQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YU9iamVjdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9m
cmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oCmluZGV4IGU0MTgzOGRh
OTY0YjRhZjM0ZjFkOTc3M2I0MDgzZTE0OGNlODc1N2EuLmQ2MmQ2YzY3YWU3MDJjMjIwMWJmMjQz
ZjgxYjk3Y2JiNWM1MjY3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtMTA4LDYgKzEwOCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lOyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIENsaXBib2Fy
ZENocm9taXVtKENsaXBib2FyZFR5cGUsIFBhc3NSZWZQdHI8Q2hyb21pdW1EYXRhT2JqZWN0Piwg
Q2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwCmluZGV4IDE5MGRlNjFiZTVjMWMx
NGEzZTU2YzRhYTliMWRkYTBmNmQ5M2U0NDAuLmM5ZWYzMjVkMDk2NTQyOTFkZWIyNDFjNGRlZDdh
MzJhZGFhMTMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckZpbHRlckluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckZpbHRlckluZm8uY3BwCkBAIC0zNCw2ICszNCw4IEBACiAKICNpbmNsdWRlICJGaWx0ZXJF
ZmZlY3RSZW5kZXJlci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiQ2FjaGVkU1ZH
RG9jdW1lbnQuaCIKQEAgLTIwMSw2ICsyMDMsMjEgQEAgdm9pZCBSZW5kZXJMYXllckZpbHRlcklu
Zm86OnJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVy
TGF5ZXJGaWx0ZXJJbmZvOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJlZVVzZWQpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fbGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZGlydHlTb3VyY2VSZWN0KTsKKyNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFt
cyk7CisjZW5kaWYKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVtYmVyKG1faW50ZXJu
YWxTVkdSZWZlcmVuY2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4dGVybmFsU1ZHUmVmZXJl
bmNlcyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVySW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyRmlsdGVySW5mby5oCmluZGV4IGNmMmJlMjMyZWMyZWU4MGVjYjRmZGJmMDY1ZjYyOThj
N2U1NTE3NDguLjBhNTdjMjBkNDFiODJhZjg0YTYwYTJiZDJhOTE4YTIwYWRmZTc0NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgKQEAg
LTkxLDYgKzkxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVmZXJlbmNlRmlsdGVyQ2xp
ZW50cygpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIFJlbmRlckxheWVyRmlsdGVy
SW5mbyhSZW5kZXJMYXllciopOwogICAgIH5SZW5kZXJMYXllckZpbHRlckluZm8oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOThkMGMzZGRmNjRjNDdk
ZDFmNDg3ZDI1NDBlZWJhN2M4ZDdhZDNhMi4uZjk1ZDhmZjYwYmQ1NjIwYjYyZmVhMGJhODk1YWMx
YjVmODE3YzBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
QEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjgzNyw2ICsyODM4LDEx
IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojp3aWxsUmVuZGVySW1hZ2UoQ2FjaGVkSW1hZ2UqKQogICAg
IHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSAmJiAhZG9jdW1lbnQoKS0+dmlldygp
LT5pc09mZnNjcmVlbigpOwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OlJlbmRlclRyZWVVc2VkLCAwKTsKK30KKwogaW50IFJlbmRlck9iamVjdDo6bWF4aW1hbE91
dGxpbmVTaXplKFBhaW50UGhhc2UgcCkgY29uc3QKIHsKICAgICBpZiAocCAhPSBQYWludFBoYXNl
T3V0bGluZSAmJiBwICE9IFBhaW50UGhhc2VTZWxmT3V0bGluZSAmJiBwICE9IFBhaW50UGhhc2VD
aGlsZE91dGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4
IDg3YTU4ZjRkYTY2NGIwZThlYWUzMGY0YjJmZjUwN2Y3Yjc1YjllZTIuLmVjODU2MmQwZmQ4NWVi
MjdhNjBkYzg3YWU4Mzc2YTM4OWY1NjczOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKQEAgLTIxMCw2ICsyMTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogCisKICAgICBSZW5kZXJPYmplY3QqIG5leHRJblByZU9yZGVyKCkg
Y29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0SW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmpl
Y3QqIHN0YXlXaXRoaW4pIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4dEluUHJlT3JkZXJB
ZnRlckNoaWxkcmVuKCkgY29uc3Q7CkBAIC05MTksNiArOTIwLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9
IDApIHsgfQogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVuZGVySW1hZ2UoQ2FjaGVkSW1hZ2UqKTsK
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKICAgICB2b2lkIHNlbGVjdGlvblN0YXJ0RW5kKGludCYgc3BvcywgaW50JiBlcG9z
KSBjb25zdDsKICAgICAKICAgICB2b2lkIHJlbW92ZSgpIHsgaWYgKHBhcmVudCgpKSBwYXJlbnQo
KS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAppbmRleCA0ZTM1M2U5OWFmNTMwNzFmY2YxN2Zm
ZWQ3ZTNkYTA5YWJiMzE1OTFmLi44MjU3ZTBjYzQ0ODg1NzczNGE2M2Y5OWUxNTQ2ODQ1MGVjMTVi
ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNo
ZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDYsNCArMTA3LDEw
IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IFN0eWxlQ2FjaGVkSW1hZ2U6OmltYWdlKFJlbmRlck9iamVj
dCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmCiAgICAgcmV0dXJuIG1faW1hZ2UtPmltYWdlRm9y
UmVuZGVyZXIocmVuZGVyZXIpOwogfQogCit2b2lkIFN0eWxlQ2FjaGVkSW1hZ2U6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2UpOworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaApp
bmRleCAwOTQzYjBlNjdiMmY3MmU3YjJmNjJlOTZhZDlhMDM5YjAyZGQ3Y2IxLi5kMTg5YTI4MjI3
Y2UwYzc5NGRhMTcwODc0YzE0YTVhMmE4NGY4NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKQEAgLTU2LDcgKzU2LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBjb25zdDsK
LSAgICAKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU3R5bGVDYWNoZWRJbWFnZShD
YWNoZWRJbWFnZSopOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3BwCmluZGV4IGMwYTlmNWUyZjAzOWUwODdmMDlk
ZjJmOGU3OWM3NTc3NTVhNTg0ZTEuLmZmYTRiMjNjYWM3NWYzODA4YzQwZjk2MzZkMjNkNDQ1Nzg0
NTM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZEltYWdlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZVNldC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NJbWFn
ZVNldFZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTE2LDYgKzExNywxNCBAQCBQYXNzUmVmUHRyPEltYWdl
PiBTdHlsZUNhY2hlZEltYWdlU2V0OjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25z
dCBJbnRTaQogICAgIHJldHVybiBtX2Jlc3RGaXRJbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5k
ZXJlcik7CiB9CiAKK3ZvaWQgU3R5bGVDYWNoZWRJbWFnZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9iZXN0Rml0SW1hZ2UpOworICAgIGluZm8uYWRk
TWVtYmVyKG1faW1hZ2VTZXRWYWx1ZSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKENTU19JTUFHRV9TRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaAppbmRleCA3ZTdjYWZjZDIx
OWNjMTkwZDg0NjZlZGQzNjJjMmNhMzllMjYwMGE3Li5kZDMzMTA4MmJkYzcwZDkwOWY0MGMyNjgw
ZDZlY2E5MzZmNmEwZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50
U2l6ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0
IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZhY3RvcjsgfQogICAgIAorICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAg
ICAgU3R5bGVDYWNoZWRJbWFnZVNldChDYWNoZWRJbWFnZSosIGZsb2F0IGltYWdlU2NhbGVGYWN0
b3IsIENTU0ltYWdlU2V0VmFsdWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oCmluZGV4IDUzOGE1MmVm
YWFkYWUwZjBhYWY1OTNmZDVjMzM0ODA4ZTA4ZDBkMTQuLmQxYTlmZmYzNmNhOWFmYzMzNTRlYjU4
NWUxNTlhMGFjODc4ZmJiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFt
LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTE0LDYgKzExNSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c0xvYWRlZCgpKQogICAgICAgICAgICAgbm90aWZ5Q2xpZW50cygpOwogICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgICAgICBpbmZv
LmFkZE1lbWJlcihtX3ZlcnRleFNoYWRlcik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fZnJh
Z21lbnRTaGFkZXIpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFZlcnRleFNoYWRl
cik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIpOworICAg
IH0KICAgICAKICAgICBDYWNoZWRTaGFkZXIqIGNhY2hlZFZlcnRleFNoYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmVydGV4U2hhZGVyID8gbV92ZXJ0ZXhTaGFkZXItPmNhY2hlZFNoYWRlcigpIDog
MDsgfQogICAgIENhY2hlZFNoYWRlciogY2FjaGVkRnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYWdtZW50U2hhZGVyID8gbV9mcmFnbWVudFNoYWRlci0+Y2FjaGVkU2hhZGVyKCkg
OiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggMWEyYmQzNzY2ZDI2MGFjZGRiNWIxMzc4Y2YyMmVhNDE4
ZjAwYzFkYS4uOWEyY2VjMzg2MmFlOTdiNTgxMDdkNDcxNGExMWIyY2ZlMWQ1ZGI3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZElt
YWdlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCkBAIC04OCw0ICs4OSwxMSBAQCBQYXNzUmVmUHRyPEltYWdlPiBT
dHlsZUdlbmVyYXRlZEltYWdlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJ
bnRTaQogICAgIHJldHVybiBtX2ltYWdlR2VuZXJhdG9yVmFsdWUtPmltYWdlKHJlbmRlcmVyLCBz
aXplKTsKIH0KIAordm9pZCBTdHlsZUdlbmVyYXRlZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6
Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlR2VuZXJhdG9yVmFsdWUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fY29udGFpbmVyU2l6ZSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGQ1MTM4
NDA1OWQxZDllNGU4MzE2MjBjNDA5NTUzZmRmZTYyNjU5N2YuLjk2MmEwYjdkN2Q5YWUzYjZlN2M5
ZmRlMWYyZGIzNTM5MWUxMTBkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CiAgICAgCiBwcml2YXRlOgogICAgIFN0eWxlR2VuZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlSW1hZ2UuaAppbmRleCAxZmM4ZTk3NTk2NmFkMjk1NWU1NmYwYmM2ZmEzMmI5NGE5MTA4Zjli
Li5iYTRkZTRlYTg4Njk0OTg3YTA5NDc5NGQzOWUxM2YyMTcwZTVjZjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
QEAgLTY0LDYgKzY1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRh
dGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gMTsgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdCA9IDA7CisKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXND
YWNoZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDYWNoZWRJbWFnZTsgfQogICAgIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc1BlbmRpbmdJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQZW5kaW5n
SW1hZ2U7IH0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNHZW5lcmF0ZWRJbWFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNHZW5lcmF0ZWRJbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaAppbmRleCA2YmFkYzkyMzgyZmEzYjI4
NGVjYWRiNDU1NzU2MzMzNjhiMDk3Y2M0Li4xY2M5NTcyOTQ2ZDUwZjhmMDIwMjI2ZTMxNTBhM2Y1
MDc5MmRmNzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVQZW5kaW5nSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVQZW5kaW5nSW1hZ2UuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNTU0ltYWdlVmFs
dWUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKKyNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNjYsNiArNjcsMTIgQEAgcHVibGljOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cisg
ICAgeworICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fdmFs
dWUpOworICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgU3R5bGVQZW5kaW5nSW1hZ2UoQ1NTVmFs
dWUqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3Mzk2ODg1N2ViYS4uYTM2ZWFmNWM0MTc1ZDIy
ZWVkMmRkNDRlNGY1OGI1MzVmYmQ5MWUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3Rh
bmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwMSw2ICsyMDIsMTIgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQogICAgIFJlbmRlclNWR1Jl
c291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24ocGFyZW50
LT5yZW5kZXJlcigpKTsKIH0KIAordm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRJbWFnZSk7Cit9CisKIFBh
c3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUltYWdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciogZmlsdGVyKQogewogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAppbmRleCBkZTYwNjQyMjcwOTgxMzZjMzc1
MzRiYzhkY2MxNTQ5YmRhMGQxNGNmLi5kYzdhMjhhM2NkNzdkZmE4ZTQ4ZmZhNDExNjMyNDNmZjMx
NGYxMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaApAQCAtNTIsNiAr
NTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJj
ZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGMz
NGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIuLjFmZGFhMmMxNGIxYWFiYjg3
N2NjZDJjNjk0NmZlODg3ODk3NjhmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5o
IgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJY
TGlua05hbWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg5LDYgKzkwLDEzIEBAIE5v
ZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpp
bnNlcnRlZEludG8oQ29udGFpbmVyCiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6Omluc2VydGVkSW50
byhyb290UGFyZW50KTsKIH0KIAordm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpET00pOworICAgIFNWR0VsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9y
eU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkRm9udCk7Cit9CisKIHZv
aWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiB7CiAgICAgaWYgKG1fY2FjaGVk
Rm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAx
Y2MzZGQ5YzQ1MzFhNGY2ZDQ3YmQ0OTliYThmNmQ4MmQ2NTgzYmQyLi40OTllMzZmY2U4NzM2MWFi
NDYwMTAzNjlhZjU0NGZlM2QzOTIwZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5oCkBAIC00NCw2ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVs
dGEgPSAwKTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICB2b2lkIGxvYWRG
b250KCk7CiAKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBtX2NhY2hlZEZv
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZGUyYTU4Y2Y1
MmRjZWFjYzZiNTZkZjk3NjQwYWQzNmVhZWY2NGRkNy4uMzZiYzY2YjI0OTUxMmQ3ZmNlMTI4NjFh
YWJiOTEyOWExYjRhYmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0yMTEsNiArMjEyLDEzIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0
RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpCiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50
KCksIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKK3ZvaWQgU1ZHU2NyaXB0RWxlbWVu
dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90eXBlKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z0xvYWRFdmVudFRpbWVyKTsKK30KKwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4
IDA1NTA2ZWM3NWRiYzNiNzJmNzlkZTM4ODRhMjYwYWM1MTM3OTZjMGIuLmIwMjg3YzZlOTVlMGY4
ODQ4MDE0ZmI3MDIzYjc3NTUwNTkzODMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaApAQCAtNzEsNiArNzEsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKTsK
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgdmlydHVh
bCB2b2lkIHNldEhhdmVGaXJlZExvYWRFdmVudChib29sIGhhdmVGaXJlZExvYWRFdmVudCkgeyBT
Y3JpcHRFbGVtZW50OjpzZXRIYXZlRmlyZWRMb2FkRXZlbnQoaGF2ZUZpcmVkTG9hZEV2ZW50KTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1BhcnNlckluc2VydGVkKCkgY29uc3QgeyByZXR1cm4gU2Ny
aXB0RWxlbWVudDo6aXNQYXJzZXJJbnNlcnRlZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKaW5kZXggNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZjNjgxNjU0NzQ3Ni4u
MGNmZjA0OGE1NTM5MGU2MjMyY2YzMTFkZThiZDA0NmU1MDJlOTQwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTeW1ib2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVS
ZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNp
bmNsdWRlICJYTUxTZXJpYWxpemVyLmgiCkBAIC05NjEsNiArOTYyLDE0IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsK
IH0KIAordm9pZCBTVkdVc2VFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3RhcmdldEVsZW1lbnRJbnN0YW5jZSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9jYWNoZWREb2N1bWVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdMb2FkRXZlbnRU
aW1lcik7Cit9CisKIGJvb2wgU1ZHVXNlRWxlbWVudDo6Y2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9h
ZGluZygpCiB7CiAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQgJiYgbV9jYWNoZWREb2N1bWVudC0+
aXNMb2FkaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCA0NmVlOGIzNDEy
YTBkODE5MTllNTIzNmJiMGE1MTk3NWMwYTJiNTdmLi45OWFiODdiZjJiMDE2OGY2ZTQ3NTg2OTE4
ODNmY2UyZGYwY2MzMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTExNSw2
ICsxMTUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSopOwogICAgIERvY3VtZW50KiByZWZlcmVuY2VkRG9jdW1lbnQoKSBjb25zdDsK
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKICAgICAvLyBTVkdUZXN0cwogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJl
cXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMo
dGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMo
KSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4IGU2Mjk1OWU5OWIwZDBkZTM3ZDg2ZDU1
NTU3Yzk2OThjZTk4MzgxMzguLmRmMWE5NGIzMzJjZmNlMDQxMDI1NTViN2M0MTdkM2Q2ZGRmNTFj
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjgsMTUgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpz
ZXRYU0xTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzZVVSTCwg
Y28KICAgICAgICAgcGFyZW50LT5jaGVja0xvYWRlZCgpOwogfQogCit2b2lkIFhTTEltcG9ydFJ1
bGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFyZW50
U3R5bGVTaGVldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHJIcmVmKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3N0eWxlU2hlZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkU2hlZXQp
OworfQorCiBib29sIFhTTEltcG9ydFJ1bGU6OmlzTG9hZGluZygpCiB7CiAgICAgcmV0dXJuICht
X2xvYWRpbmcgfHwgKG1fc3R5bGVTaGVldCAmJiBtX3N0eWxlU2hlZXQtPmlzTG9hZGluZygpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5oIGIvU291cmNl
L1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuaAppbmRleCAzNTBjZGQ5YjE2NTM0YjYxN2YwNjI3
NjI5M2M0NzQwZTJjZjZiMTllLi41N2JhZWNjNDExNTczN2VkMTM3NTAwOTI5Y2QxYTRiYWMxOTIw
MDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJp
dmF0ZToKICAgICBYU0xJbXBvcnRSdWxlKFhTTFN0eWxlU2hlZXQqIHBhcmVudFNoZWV0LCBjb25z
dCBTdHJpbmcmIGhyZWYpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29u
c3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHNoZWV0
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OwogICAgIAogICAgIFhTTFN0eWxlU2hlZXQqIG1fcGFyZW50U3R5bGVTaGVldDsKICAg
ICBTdHJpbmcgbV9zdHJIcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9OZXdYTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05l
d1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA2M2MzM2Q2YjczMjVlMDAyNDU1NDBkODQ2MjNl
MzJiZTBlNDA2ZTBlLi43YTQ3ZjVkOGVkN2ZkYjhlZDJhNTBmNjcyYjk1MWFkZDFmOWE3ZmExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2Vy
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlhNTFRy
ZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiWE1MVHJlZVZpZXdlci5oIgogCkBAIC0yMTcsNCArMjE4
LDE1IEBAIHZvaWQgTmV3WE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKiB1bnVzZWRSZXNvdXJjZSkKICAgICAgICAgcmVzdW1lUGFyc2luZygpOwogfQogCit2
b2lkIE5ld1hNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NUGFyc2VyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Rva2Vu
aXplcik7CisgICAgaW5mby5hZGRNZW1iZXIobV90b2tlbik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9wZW5kaW5nU2NyaXB0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NjcmlwdEVsZW1lbnQpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fdHJlZUJ1aWxkZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggOTc1ZDY3Yjk2
NTM3OWM1MmM3YWU2NDZiMmQ1N2MwMjJmNzA2YzcwNy4uNzJhZTE2YzI2OWZhY2I2YzI4YjlkNmIy
Zjg1Y2I1NzI5MzA1MTE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9O
ZXdYTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3
WE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBD
YWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA1YWEwZTA4OTA2Y2Q1ZWIxYTMwNmI0ODM0MWY5
OTMxNDQ1ZWU5MTkyLi43YzVmM2JhZWViYWFlYjVhM2E2ZGQyMTEwMWY5ZjRhOTIyNjdkMWVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtNTAsNyArNTAsOSBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVGV4
dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRyZWVEZXB0aExpbWl0LmgiCisjaW5jbHVk
ZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlhNTEVycm9ycy5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI3Myw2ICsyNzUsMzAgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHVudXNlZFJlc291cmNlKQogICAg
ICAgICByZXN1bWVQYXJzaW5nKCk7CiB9CiAKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpET01QYXJzZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdmlldyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybSk7CisjaWYgVVNF
KFFYTUxTVFJFQU0pCisgICAgaW5mby5hZGRNZW1iZXIobV9zdHJlYW0pOworI2Vsc2UKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NvbnRleHQpOworICAgIC8vIEZJWE1FOiBhZGQgbV9wZW5kaW5nQ2Fs
bGJhY2tzIHdoZW4gUGVuZGluZ0NhbGxiYWNrcyBkZWNsYXJhdGlvbiBpcyBhdmFpbGFibGUKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2J1ZmZlcmVkVGV4dCk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2N1cnJlbnROb2RlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1cnJlbnROb2RlU3Rh
Y2spOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGVhZlRleHROb2RlKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3htbEVycm9ycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nU2NyaXB0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3NjcmlwdEVsZW1lbnQpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9kZWZhdWx0TmFt
ZXNwYWNlVVJJKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWZpeFRvTmFtZXNwYWNlTWFwKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdTcmMpOworfQorCiBib29sIFhNTERvY3VtZW50
UGFyc2VyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wZW5k
aW5nU2NyaXB0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ci5oCmluZGV4IGU4ZDE0NGJlYzM0ZWIxNDNkZmUyY2RkNDA2Nzc1NTMwNzVlNmU5YjMuLjU4NzJj
MGVjMTk3MmZlNzA4NTBhMzY2ZmZiNDhlOTc4Y2QzNjM1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBjbGFz
cyBUZXh0OwogCiAgICAgICAgIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAK
ICAgICAgICAgdm9pZCBlbmQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171225</attachid>
            <date>2012-10-29 06:27:04 -0700</date>
            <delta_ts>2012-10-29 08:28:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100659-20121029172530.patch</filename>
            <type>text/plain</type>
            <size>58470</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I0NTRiOGMxYzQ3NmFm
NTFlNWQ4NDFiN2NhYjZjZDkzZWU5ZTNhZC4uNWFjMTJiODM4NTUyMjQ3MjFmMTYyY2ZiNzU2OGIx
ZGFiZTc4NTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MCBAQAorMjAxMi0xMC0yOSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZW1vcnkgaW5z
dHJ1bWVudGF0aW9uOiByZXBvcnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzIGZvciBDYWNoZWRSZXNv
dXJjZUNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIENhY2hlZFJlc291cmNlQ2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZSB2aXJ0dWFs
IG1ldGhvZCB0aGF0IGlzIG92ZXJyaWRlbgorICAgICAgICBpbiBhbGwgY2xpZW50cyB0byByZXBv
cnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzLgorCisgICAgICAgIFRvIHRlc3QgdGhpcyB3ZSBuZWVk
IHRvIGNvbXBhcmUgYWRkcmVzc2VzIG9mIG9iamVjdHMgdHJhdmVyc2VkIGJ5IHRoZSBtZW1vcnkK
KyAgICAgICAgaW5zcnVtZW50YXRpb24gd2l0aCB0aG9zZSBhbGxvY2F0ZWQgYnkgdGhlIG1lbW9y
eSBhbGxvY2F0b3IuIExhdHRlciBzZXQgc2hvdWxkCisgICAgICAgIGluY2x1ZGUgdGhlIGZvcm1l
ciBvbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94
eTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAgIChDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVy
UHJveHkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgIChD
U1NGb250RmFjZVNvdXJjZSk6CisgICAgICAgICogY3NzL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9T
dHlsZVJ1bGVJbXBvcnQuaDoKKyAgICAgICAgKEltcG9ydGVkU3R5bGVTaGVldENsaWVudCk6Cisg
ICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGlu
Z1NjcmlwdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogZG9tL1BlbmRpbmdTY3JpcHQuaDoKKyAgICAgICAgKFBlbmRpbmdTY3JpcHQpOgorICAgICAg
ICAqIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Y2Vzc2luZ0luc3RydWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6CisgICAgICAgIChQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
aHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVt
ZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAoSFRNTExpbmtFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
Y3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MU2NyaXB0RWxl
bWVudCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBsb2FkZXIv
SW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKEltYWdlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpyZXBvcnRNZW1v
cnlVc2FnZSk6IGNsaWVudCBpcyByZXBvcnRlZCBhcyBhIHdlYWsgcG9pbnRlcgorICAgICAgICBh
cyB3ZSBzaG91bGQgcmVhY2ggdGhlIGNsaWVudHMgd2hlbiB0cmF2ZXJzaW5nIERPTS4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmg6CisgICAgICAgIChM
aW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5oOgorICAgICAg
ICAoVGV4dFRyYWNrTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaDoKKyAgICAgICAgKENhY2hlZFJlc291cmNlQ2xpZW50KToKKyAgICAgICAgKiBs
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKTogY2xpZW50IGlzIHJlcG9ydGVkIGFzIGEgd2VhayBwb2ludGVy
CisgICAgICAgIGFzIHdlIHNob3VsZCByZWFjaCB0aGUgY2xpZW50cyB3aGVuIHRyYXZlcnNpbmcg
RE9NLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRl
ci5oOgorICAgICAgICAoSWNvbkxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21p
dW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisgICAgICAgIChDbGlwYm9hcmRD
aHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlckluZm86OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckZpbHRlckluZm8uaDoKKyAgICAgICAgKFJlbmRlckxheWVyRmlsdGVySW5mbyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaDoKKyAg
ICAgICAgKFN0eWxlQ2FjaGVkSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZEltYWdlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkSW1hZ2VT
ZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0Lmg6CisgICAgICAgIChTdHlsZUNhY2hl
ZEltYWdlU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQ
cm9ncmFtLmg6CisgICAgICAgIChTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVk
SW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUltYWdlLmg6CisgICAgICAgIChTdHlsZUltYWdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlUGVu
ZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFNWR0ZFSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5oOgorICAgICAgICAoU1ZHRm9udEZhY2VVcmlFbGVtZW50KToKKyAgICAg
ICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3Jp
cHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoU1ZHU2NyaXB0RWxlbWVudCk6
CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VXNlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1VzZUVsZW1lbnQpOgorICAg
ICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTEltcG9y
dFJ1bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHhtbC9YU0xJbXBvcnRSdWxlLmg6CisgICAgICAgIChYU0xJbXBvcnRSdWxlKToKKyAgICAgICAg
KiB4bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ld1hNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAg
ICAgIChOZXdYTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogeG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoWE1MRG9jdW1lbnRQYXJzZXIpOgorCiAy
MDEyLTEwLTI4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBUaGUgc2hhZG93IGVsZW1lbnQgaXMgbm90IHJlcHJvamVjdGVkIHRvIGEgbmVzdGVkIFNo
YWRvd1Jvb3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaAppbmRleCA4MTZjODZjNWE2MjRlM2MxN2FhNzFkYzZiYjhl
NzdiY2Y2YWFhOTgxLi4yN2YyMWVlMjU2MTYwNWYxZTA2MGZhMmRmNTEyODE1NmU5ZjNjMjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJj
ZVByb3ZpZGVyLmg+CiAKQEAgLTUxLDYgKzUyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9jYWNo
ZWRTY3JpcHQtPnNvdXJjZVByb3ZpZGVyQ2FjaGVTaXplQ2hhbmdlZChkZWx0YSk7CiAgICAgfQog
CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291
cmNlU2NyaXB0KTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRTY3JpcHQpOworICAg
IH0KKwogcHJpdmF0ZToKICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCkKICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihjYWNoZWRTY3JpcHQt
PnJlc3BvbnNlKCkudXJsKCksIFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCksIGNhY2hl
ZFNjcmlwdC0+c291cmNlUHJvdmlkZXJDYWNoZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTI2NzM0ZmZjYmQ2NzQ5MjE0OWE4MGI5MWY0ZDdmZjdkMWJm
YzAyMi4uY2Q4YjNlNTQ5N2U5NTNmMTE0YTc5Mzc4OWExMzY3ZTFhYjUzNjc1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xOTAsNiArMTkwLDEyIEBAIHZv
aWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6aW1h
Z2VDaGFuZ2VkKENhY2hlZEltYWdlCiAgICAgICAgIG1fb3duZXJWYWx1ZS0+Y3Jvc3NmYWRlQ2hh
bmdlZCgqcmVjdCk7CiB9CiAKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1Ymlt
YWdlT2JzZXJ2ZXJQcm94eTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9vd25lclZhbHVlKTsKK30KKwogYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aGFzRmFp
bGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0CiB7CiAgICAgaWYgKG1fY2FjaGVkRnJv
bUltYWdlICYmIG1fY2FjaGVkRnJvbUltYWdlLT5sb2FkRmFpbGVkT3JDYW5jZWxlZCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAppbmRleCBjYjA3YWJjM2I5ZDViNmNmOWQw
NTcwMGE4MzNkMzVmZDNlYjJiOWI3Li44M2NhOWJiMDk1NTdiNDU4YTE3ZjJhZmM4MGUzNWQ1ZjU4
ZTQyYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApAQCAtODMsNiAr
ODMsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdlT2Jz
ZXJ2ZXJQcm94eSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hl
ZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsK
ICAgICAgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQog
ICAgIHByaXZhdGU6CiAgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVlKiBtX293bmVyVmFsdWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCA1ZTUyODlmNmQ1MjI3
YWU5ZmQxY2NjYTI3NGI4MWNjMTJjZWQ5MWRiLi5jNWFlNDE1YWViYjY1NzY0ZTJmNmU3NWYzYzli
YTViNDY0MTgzZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAK
QEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250
RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaE1hcC5oPgogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJG
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCkBAIC05NCw2ICs5NiwxOSBAQCB2b2lkIENTU0ZvbnRG
YWNlU291cmNlOjpmb250TG9hZGVkKENhY2hlZEZvbnQqKQogICAgICAgICBtX2ZhY2UtPmZvbnRM
b2FkZWQodGhpcyk7CiB9CiAKK3ZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5
cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3RyaW5nKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2ZvbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmFjZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9mb250RGF0YVRhYmxlKTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGluZm8u
YWRkTWVtYmVyKG1fc3ZnRm9udEZhY2VFbGVtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4
dGVybmFsU1ZHRm9udEVsZW1lbnQpOworI2VuZGlmCit9CisKIFBhc3NSZWZQdHI8U2ltcGxlRm9u
dERhdGE+IENTU0ZvbnRGYWNlU291cmNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0
YWxpYywgQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCiB7CiAgICAgLy8gSWYgdGhlIGZv
bnQgaGFzbid0IGxvYWRlZCBvciBhbiBlcnJvciBvY2N1cnJlZCwgdGhlbiB3ZSd2ZSBnb3Qgbm90
aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKaW5kZXggMDQ4OGQxMGQz
MjYwMGU0N2RlZGQwZjcyOGMwMDM0Y2EwNGFkZjE1Yy4uOWE0NTkzZGRiZDRiY2IwYmYxZWZmNDAx
ODA0ZTEyMGViMTQwNDJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgK
QEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udEZhY2UoQ1NTRm9udEZh
Y2UqIGZhY2UpIHsgbV9mYWNlID0gZmFjZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGZvbnRMb2Fk
ZWQoQ2FjaGVkRm9udCopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBn
ZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljSXRhbGljLCBDU1NGb250U2VsZWN0b3IqKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaAppbmRleCAyYTI1M2FiZDQzNzE4
YTU2NzE1NjEwNWY1ZDIyODcwZDYxNTUzNjA5Li5iNDZkMzYwNTIzMzRlNjBkM2EzMWQ5ODBlOWE5
MWFjYTg2NTE2OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9j
dW1lbnRSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9jdW1l
bnRSZWZlcmVuY2UuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJM
RShDU1NfRklMVEVSUykKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1
ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0MCwxMSBAQCBwdWJs
aWM6CiAgICAgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UoQ2FjaGVkU1ZHRG9jdW1lbnQqIGRv
Y3VtZW50KSA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpIHsgbV9kb2N1bWVudC0+YWRkQ2xpZW50KHRo
aXMpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UoKSB7IG1fZG9j
dW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsgfQogICAgIENhY2hlZFNWR0RvY3VtZW50KiBkb2N1
bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
KyAgICB7CisgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9k
b2N1bWVudCk7CisgICAgfQogcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTVkdEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJ
bXBvcnQuY3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUu
Ljk5MGYyY2ZkOTljYjNkYmNmM2U5NGJmYzE3YjliYTg5OWIyMjBlNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRDb250ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTE0MCw0ICsxNDEsMTAgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcG9ydERlc2NlbmRhbnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3QKICAgICBpbmZvLmFkZE1l
bWJlcihtX3N0eWxlU2hlZXQpOwogfQogCit2b2lkIFN0eWxlUnVsZUltcG9ydDo6SW1wb3J0ZWRT
dHlsZVNoZWV0Q2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX293bmVyUnVsZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAppbmRleCBiN2RmMDJjZjFmMTI2NWFkM2EzOGI0ZGRjODBh
OTAxNTg0NjhmMjQ5Li4xMWM0YzE3ZWQ3OWI1YmRlMTZkZGViZDljYWE3ZmU5MTA0YjZjNGEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCkBAIC02NCw2ICs2NCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJSdWxlLT5zZXRDU1NTdHlsZVNoZWV0
KGhyZWYsIGJhc2VVUkwsIGNoYXJzZXQsIHNoZWV0KTsKICAgICAgICAgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAg
IHByaXZhdGU6CiAgICAgICAgIFN0eWxlUnVsZUltcG9ydCogbV9vd25lclJ1bGU7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCBjNjAyYTExMjY2M2YzOWU3MjMz
Mjk1OTAzZWNiYWJiYmRhNjdmYTk5Li5jNmRkNGJiYjUxOWUzZjFlMjBkOWFiMzg3ZDk0ZTIxMDYz
MTQ0MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTY1LDQgKzY2LDEyIEBAIHZvaWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQogewogfQogCit2b2lkIFBlbmRpbmdTY3JpcHQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZWxlbWVudCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9zdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2NhY2hlZFNjcmlwdCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
ZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCmluZGV4
IDM5OTY0NjI1ZTA4MmVjNGEwZjc5NTE0NmM4NmEyOTBjMTgxNWU4MTguLjRlY2RhM2Q0NDVmYWNm
YWM5MmIzZmVlMDEzZjIxZjBmNDMwOWIyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9QZW5kaW5nU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQu
aApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZWRTY3JpcHQoQ2Fj
aGVkU2NyaXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGJvb2wgbV93YXRjaGluZ0ZvckxvYWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGVjMTcz
M2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QuLjE0YTU0ODc4ZjdmYzBlYmMzMDM3
Mjc5ZTY0NWIwNDJjZmY3NDhiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiWFNMU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiIC8vIGZvciBwYXJzZUF0dHJp
YnV0ZXMoKQogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpAQCAtMjQxLDYgKzI0MiwxOSBAQCB2b2lk
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6c2V0WFNMU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhy
ZWYsIGNvbnN0IEtVUkwmIGJhcwogfQogI2VuZGlmCiAKK3ZvaWQgUHJvY2Vzc2luZ0luc3RydWN0
aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBOb2RlOjpyZXBvcnRNZW1vcnlVc2Fn
ZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RhcmdldCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9kYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xvY2FsSHJlZik7
CisgICAgaW5mby5hZGRNZW1iZXIobV90aXRsZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tZWRp
YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRTaGVldCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zaGVldCk7Cit9CisKIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpwYXJzZVN0eWxl
U2hlZXQoY29uc3QgU3RyaW5nJiBzaGVldCkKIHsKICAgICBpZiAobV9pc0NTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAppbmRleCBlMzMxZTIxZGZlNWUzY2Q5
NmNiMmZlNjI3ZmUwM2QxNDdiOGI0YjYxLi40MjRiOGI3MTMzY2ExNjAzNjgwMTlhMDVjZThhZDRj
ZDc3MTUwMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
CkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgdmlydHVh
bCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHNoZWV0KTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAgICBib29sIGlz
TG9hZGluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmlu
ZGV4IDcxNDEwYTE0ZWZlODZjMTExNTJmMmM3NjkxNmU5OWM3MTczODExYzIuLjk2ZTlhNWM5Yjdm
ODU3ZjUzMTg1NmQ1ZmYyZWEyZjkzMjRjODhkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBl
czo6UGFnZSA9ICJQYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpE
T00gPSAiUGFnZS5ET00iOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkRP
TVBhcnNlciA9ICJQYWdlLkRPTVBhcnNlciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6Q1NTID0gIlBhZ2UuQ1NTIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpCaW5kaW5nID0gIlBhZ2UuQmluZGluZyI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc0NzllMDUzNDE3ZDBl
ZDA2ZGEzZWZhYTJkMmFkM2Y3NWRhMzkxMmUuLjI3ZjIyOTIyZTBhM2UzZjE1YjQ2NTE4ZDVlNTFi
YTc4ODdjOTg5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBXZWJDb3JlTWVtb3J5VHlw
ZXMgOiBwdWJsaWMgUGxhdGZvcm1NZW1vcnlUeXBlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgUGFnZTsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET007Cisg
ICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgRE9NUGFyc2VyOwogICAgIHN0YXRpYyBNZW1vcnlP
YmplY3RUeXBlIENTUzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBCaW5kaW5nOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggYjlkNzY3ZTMwNGJjOWE1YzBkM2M2
NDA3NTk4NTg3M2E3YzM0YzI0ZC4uNGUxZWMzZDIzMjVlMGZhZDFiYWRiOTdjZDdhZWZiYjFhZjRj
NTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAtNzQsNiArNzQsOCBA
QAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0
eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
MzIsNiArMzM0LDE0IEBAIHZvaWQgSFRNTERvY3VtZW50OjpyZW1vdmVFeHRyYU5hbWVkSXRlbShj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgcmVtb3ZlSXRlbUZyb21NYXAobV9leHRyYU5h
bWVkSXRlbUNvdW50cywgbmFtZSk7CiB9CiAKK3ZvaWQgSFRNTERvY3VtZW50OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1v
cnlUeXBlczo6RE9NKTsKKyAgICBEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lZEl0ZW1Db3VudHMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZXh0cmFOYW1lZEl0ZW1Db3VudHMpOworfQorCiB2b2lkIEhUTUxEb2N1
bWVudDo6c2V0Q29tcGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZSgpCiB7CiAgICAgLy8gVGhlcmUg
YXJlIHRocmVlIHBvc3NpYmxlIGNvbXBhdGliaWxpdHkgbW9kZXM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuaAppbmRleCBkMzlmMzkyYWFhNDJiODE5Mzc0YTVhMWFhYWMyMjY1MTNiNDU5NzVm
Li4zZjljNWJmZDk2YTlkYzdiZGYxMGMwZjMxY2NkYWE0MDYyOWNhODNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50LmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVt
b3ZlRXh0cmFOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKICAgICBib29sIGhh
c0V4dHJhTmFtZWRJdGVtKEF0b21pY1N0cmluZ0ltcGwqIG5hbWUpOwogCisgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVj
dGVkOgogICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4
OWUyYzYyMDliM2Y0NGI0MzMuLjA2MzRmNzg2Yzc3MmYyNTI4MTM0MWEwZjk0MWY1MzdjN2ExZGRl
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTQ4LDYgKzQ4
LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zOTUsNiArMzk2LDE5IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50
OjpzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKQogICAgIGFkZFBlbmRpbmdTaGVldChCbG9ja2lu
Zyk7CiB9CiAKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmtMb2FkZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2FjaGVkU2hlZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2hlZXQpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fdXJsKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3R5cGUpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbWVkaWEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2l6ZXMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fcmVsQXR0cmlidXRlKTsKK30KKwogYm9vbCBIVE1MTGlua0VsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewogICAgIHJl
dHVybiBhdHRyaWJ1dGUubmFtZSgpID09IGhyZWZBdHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0
dHJpYnV0ZShhdHRyaWJ1dGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5k
ZXggMGI2YzZjOTk3ZjI4YWUzNDEyNTM2MzgzZTBjMDEwNDA4ZDVmZmQxYS4uYmQ1YmY3YzU0YzU2
MDU3OTBiNmZhZTU2YTI4YWE2ZTM2ZTZhZTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5oCkBAIC04OCw2ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNo
ZWV0TG9hZGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUxvYWRlZFNoZWV0QW5kQWxsQ3Jp
dGljYWxTdWJyZXNvdXJjZXMoYm9vbCBlcnJvck9jY3VycmVkKTsKICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCk7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBsaW5r
TG9hZGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGxpbmtMb2FkaW5nRXJyb3JlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCA0ZjJjOTU2MWY3YjQ3NTlk
NTEyYjMzZDAyOWM4YWI1Y2UyZDllM2MzLi5hYjljNzY0MThjYzM3Mzc3Mjk0NzNiYjBiYzdjNzUz
MTNhYjcyOTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApA
QCAtMTc4LDQgKzE3OCwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKAogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFs
c2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgSFRNTEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdl
KG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKGVsZW1lbnQoKSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBjMmNhMGRiNTYx
YjY5OTQ1YWNhZTlhZmJmZGVjMWE1OGU1NWFmMjcwLi4wNTMwODQ1NDRiNjhlZjUyZGY5MWE4NDA0
ZTg2NmI4OGYyOGRjMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
CkBAIC02NSw2ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9h
ZEV2ZW50KCk7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpOworCisgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIH07CiAKIH0gLy9uYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCmluZGV4IDkzNWY1ZDA1N2RlNTVlNzdlMzgwOWQ4YmU2NjA3NjJjZDQzOGMwODcuLmNmNTE4
NzYwZDk3YjRmYzRhYTQzYmZkM2U2OGY5ZjA1MTJiMTc2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk5lc3Rp
bmdMZXZlbEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNTY4LDQgKzU2OSwxOCBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lU2NoZWR1
bGVkVGFza3MoKQogICAgICAgICBtX3BhcnNlclNjaGVkdWxlci0+cmVzdW1lKCk7CiB9CiAKK3Zv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NUGFyc2VyKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2lucHV0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Rva2VuaXpl
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JpcHRSdW5uZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fdHJlZUJ1aWxkZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlbG9hZFNjYW5uZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1faW5zZXJ0aW9uUHJlbG9hZFNjYW5uZXIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcGFyc2VyU2NoZWR1bGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Nv
dXJjZVRyYWNrZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1feHNzQXVkaXRvcik7Cit9CisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5k
ZXggY2UxMDhmNGI5MzIwODhjZDE0OGMwNWQ2MzlhYzg2OWRhOTZlYWI3NS4uNGI0ODhhZGZmOWRi
MTFmYTM1MTY2NWNlNTgwYzUwMDQ0ZjE2NDQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kU2NoZWR1bGVkVGFza3MoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzdW1lU2NoZWR1bGVkVGFza3MoKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IGVjYWZlMDEzNmM4NTMy
MDhlNmY4MTNmYjE1YzM0MWM3ZWE4N2NjOGYuLjM4NTdkZjcwNTAxY2NiMDZlNjdmOTgxMjE1ZDA1
ODEyZWIwZDRmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlRocmVh
ZGFibGVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvVW51c2Vk
UGFyYW0uaD4KIApAQCAtMzE2LDYgKzMxNywxNSBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICBk
aWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2UtPmlkZW50aWZpZXIoKSwgbV9yZXNvdXJjZS0+bG9h
ZEZpbmlzaFRpbWUoKSk7CiB9CiAKK3ZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc291cmNlKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2NsaWVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb2N1bWVu
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hY3R1YWxSZXF1ZXN0KTsKK30KKwogdm9pZCBEb2N1
bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCmluZGV4
IDg3OTkxOWZlY2E1NWEyMWRjY2UzYmQwMWNiOWRkOThjNTlmNDEwNWMuLmUyMzI0OThkYzc0Nzk1
ZTEzZmVlOGMzMjAxMzRmYjNhYWI5ZTFjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKQEAgLTgyLDYgKzgyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAjaWYgUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkYXRhRG93bmxvYWRlZChDYWNoZWRSZXNvdXJjZSosIGlu
dCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGMxMmJl
MmZmOWQ0NTU3NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVhN2VjNGIuLjgzZmUxY2U0NmJjZmFkMTZjZjFk
ZTk1NDkxNmI3Mjk0YTMwNTlmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2lu
Y2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCkBAIC00NDEsNiArNDQyLDE0IEBAIHZvaWQgSW1hZ2VM
b2FkZXI6OmRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnRzKCkKICAgICBlcnJvckV2ZW50U2VuZGVy
KCkuZGlzcGF0Y2hQZW5kaW5nRXZlbnRzKCk7CiB9CiAKK3ZvaWQgSW1hZ2VMb2FkZXI6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9jbGllbnQpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmFpbGVk
TG9hZFVSTCk7Cit9CisKIHZvaWQgSW1hZ2VMb2FkZXI6OmVsZW1lbnREaWRNb3ZlVG9OZXdEb2N1
bWVudCgpCiB7CiAgICAgc2V0SW1hZ2UoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5o
CmluZGV4IGJjODU5MTViOWUwMDA2NGViYjU1NzVjY2I2ZWVkOGJlMWRhNzZjODIuLjQzM2ZmMDBl
NzlhMjczMTVjZjk1NTdhNWE3MGY2M2Y3NzBmNjM0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFn
ZUxvYWRlci5oCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaXNw
YXRjaFBlbmRpbmdMb2FkRXZlbnRzKCk7CiAgICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hQZW5kaW5n
RXJyb3JFdmVudHMoKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXIuY3BwCmluZGV4IGU1MGIzNzlkOTZiZWRhNzMyOTI1NDY0MjBlYWNmOThiYTU0M2UxYjguLjhk
ZTgwNmMwZTA1MjE5OWU0MDlhYTE4ZDQyYmY5YjhlMGRjMzZmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTGlua0xvYWRlci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJMaW5rUmVsQXR0
cmlidXRlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQogI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgpAQCAtOTAs
NiArOTEsMTggQEAgdm9pZCBMaW5rTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwogfQogCit2b2lkIExp
bmtMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkV2Vha1BvaW50
ZXIobV9jbGllbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkTGlua1Jlc291cmNlKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmtMb2FkVGltZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbGlua0xvYWRpbmdFcnJvclRpbWVyKTsKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisg
ICAgaW5mby5hZGRNZW1iZXIobV9wcmVyZW5kZXJIYW5kbGUpOworI2VuZGlmCit9CisKIGJvb2wg
TGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRl
LCBjb25zdCBTdHJpbmcmIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0
cmluZyYgc2l6ZXMsIGNvbnN0IEtVUkwmIGhyZWYsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5oCmluZGV4IGExYTYzZjAzZmVkZTk2ZjE0NjJjNzQ2MDgw
NGU1MzM1YmQ0MWI2MzIuLjNjZTg3NTRlNWIwYmE3YjVhYWUxNmFiY2I0MTkyMTc0ODZjMWZiZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBmcm9tIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAgICB2b2lkIHJlbGVh
c2VkKCk7CiAgICAgYm9vbCBsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHNpemVzLCBjb25zdCBLVVJMJiwgRG9jdW1lbnQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggN2UxNGI0
MzM0OWM4NTBhMTk1YjY2YzI1OTA2MTM2ZDhiODBmNmY0MC4uNWY4Y2U5ZmU3NTgyZmQ5Mzk5ZTM3
YmNiZDQ0YjM4Zjg0NmNhMjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldl
YlZUVFBhcnNlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTMsNiArMTE0LDE3IEBA
IHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpCiAgICAgcHJvY2Vzc05ld0N1ZURhdGEocmVzb3VyY2UpOwogfQogCit2b2lkIFRleHRU
cmFja0xvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jbGllbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY3VlUGFyc2VyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2NhY2hlZEN1ZURhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jdWVMb2FkVGltZXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fY3Jvc3NPcmlnaW5Nb2RlKTsKK30KKwogdm9pZCBUZXh0VHJhY2tM
b2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0
ZXh0IHRyYWNrIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBv
bGljeS4iKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCmluZGV4IDc0
MzM0ZjkwNjQ2Y2RmZDQ1OGY5YzIzZjYyZjA4MWY0ODc1YjhjM2MuLjNhNzE1OWNjNTFjY2FmNWUx
M2ViYWJjNmQ4Njk1N2RmZGJhNDAyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UZXh0VHJhY2tMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDYWNoZWRSZXNvdXJj
ZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSop
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShDYWNoZWRSZXNvdXJjZSopOworICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CiAgICAgCiAgICAgLy8gV2ViVlRUUGFyc2VyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5ld0N1
ZXNQYXJzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlQ2xpZW50LmgKaW5kZXggZmYxZGVhY2NhMGMwOWEwM2Q2NTExZjFlYzc3NjMzOWQ2ZmI5
NmY2MC4uNzNlY2Q0MzljMTZlZWI4NTA5NDYzMzgyNjc5MDQ5ZGY5NWJhZDNiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKQEAg
LTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBDYWNoZWRSZXNvdXJjZUNsaWVudFR5
cGUgZXhwZWN0ZWRUeXBlKCkgeyByZXR1cm4gQmFzZVJlc291cmNlVHlwZTsgfQogICAgIHZpcnR1
YWwgQ2FjaGVkUmVzb3VyY2VDbGllbnRUeXBlIHJlc291cmNlQ2xpZW50VHlwZSgpIGNvbnN0IHsg
cmV0dXJuIGV4cGVjdGVkVHlwZSgpOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIENh
Y2hlZFJlc291cmNlQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uTG9hZGVyLmNwcAppbmRleCA4YzlkMGNlY2JmY2QxMmI3ZWFhMWM0YThjODcwZjE2NDI1NTdm
NzQ1Li40YmEwYzI2NWIyY2Y1OWQ3OWEwOTUzMjFhMmQ1Y2U0Y2I4ZjRkMTQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEwMyw0ICsxMDQsMTEgQEAgdm9pZCBJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgc3RvcExvYWRpbmcoKTsKIH0KIAordm9pZCBJ
Y29uTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2ZyYW1lKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc291cmNlKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oCmluZGV4IDY1ZThiZDUyZjI3MDQyMTM1YzVh
Yzc4MzFhNTc0ZGUyZGRlYTlkYzQuLjYzNTkxYjUzYTIyNDkzZGM5MDgxMzliMDE1OTg4YzhkZDgw
MWQ2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJY29uTG9hZGVyKEZyYW1l
Kik7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25z
dDsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGY1OGViY2VmOWNjYzFh
ZTk5OWE2NGMwYTQ0ODk1MDIyNzk1NWIxYjEuLjM0YWRhM2I1MWQzYTBmY2EyYTZiMjAxODU1N2Fl
ZWFmMDMzZWZmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJS
YW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU3RyaW5nQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAibWFya3VwLmgiCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQ2NSw0
ICs0NjYsMTEgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkQ2hy
b21pdW06Oml0ZW1zKCkKIH0KICNlbmRpZgogCit2b2lkIENsaXBib2FyZENocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFPYmplY3QpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hy
b21pdW0uaAppbmRleCBlNDE4MzhkYTk2NGI0YWYzNGYxZDk3NzNiNDA4M2UxNDhjZTg3NTdhLi5k
NjJkNmM2N2FlNzAyYzIyMDFiZjI0M2Y4MWI5N2NiYjVjNTI2N2I3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKQEAgLTEw
OCw2ICsxMDgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAgICAgICAgRnJhbWUq
IGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCisgICAgICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBwcml2
YXRlOgogICAgICAgICBDbGlwYm9hcmRDaHJvbWl1bShDbGlwYm9hcmRUeXBlLCBQYXNzUmVmUHRy
PENocm9taXVtRGF0YU9iamVjdD4sIENsaXBib2FyZEFjY2Vzc1BvbGljeSwgRnJhbWUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNw
cAppbmRleCAxOTBkZTYxYmU1YzFjMTRhM2U1NmM0YWE5YjFkZGEwZjZkOTNlNDQwLi5jOWVmMzI1
ZDA5NjU0MjkxZGViMjQxYzRkZWQ3YTMyYWRhYTEzMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcApAQCAtMzQsNiArMzQsOCBA
QAogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUoU1ZH
KQogI2luY2x1ZGUgIkNhY2hlZFNWR0RvY3VtZW50LmgiCkBAIC0yMDEsNiArMjAzLDIxIEBAIHZv
aWQgUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvOjpyZW1vdmVDdXN0b21GaWx0ZXJDbGllbnRzKCkKIH0K
ICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyRmlsdGVySW5mbzo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OlJlbmRlclRyZWVVc2VkKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3JlbmRlcmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5U291cmNl
UmVjdCk7CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fY2Fj
aGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMpOworI2VuZGlmCisjaWYgRU5BQkxFKFNWRykKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2ludGVybmFsU1ZHUmVmZXJlbmNlcyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9leHRlcm5hbFNWR1JlZmVyZW5jZXMpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaAppbmRleCBjZjJiZTIzMmVj
MmVlODBlY2I0ZmRiZjA2NWY2Mjk4YzdlNTUxNzQ4Li4wYTU3YzIwZDQxYjgyYWY4NGE2MGEyYmQy
YTkxOGEyMGFkZmU3NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJGaWx0ZXJJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyRmlsdGVySW5mby5oCkBAIC05MSw2ICs5MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
bW92ZVJlZmVyZW5jZUZpbHRlckNsaWVudHMoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBSZW5kZXJMYXllckZpbHRlckluZm8oUmVuZGVyTGF5ZXIqKTsKICAgICB+UmVuZGVyTGF5
ZXJGaWx0ZXJJbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CmluZGV4IDk4ZDBjM2RkZjY0YzQ3ZGQxZjQ4N2QyNTQwZWViYTdjOGQ3YWQzYTIuLmY5NWQ4ZmY2
MGJkNTYyMGI2MmZlYTBiYTg5NWFjMWI1ZjgxN2MwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3Rh
dGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KQEAgLTI4MzcsNiArMjgzOCwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6d2lsbFJlbmRlcklt
YWdlKENhY2hlZEltYWdlKikKICAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkg
JiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKIH0KIAordm9pZCBSZW5kZXJP
YmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVlVXNlZCwgMCk7Cit9CisKIGludCBS
ZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CiB7CiAg
ICAgaWYgKHAgIT0gUGFpbnRQaGFzZU91dGxpbmUgJiYgcCAhPSBQYWludFBoYXNlU2VsZk91dGxp
bmUgJiYgcCAhPSBQYWludFBoYXNlQ2hpbGRPdXRsaW5lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAppbmRleCA4N2E1OGY0ZGE2NjRiMGU4ZWFlMzBmNGIyZmY1MDdmN2I3
NWI5ZWUyLi5lYzg1NjJkMGZkODVlYjI3YTYwZGM4N2FlODM3NmEzODlmNTY3Mzk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yMTAsNiArMjEwLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4o
KSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3Qq
IHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAorCiAgICAgUmVuZGVyT2Jq
ZWN0KiBuZXh0SW5QcmVPcmRlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4dEluUHJl
T3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKSBjb25zdDsKICAgICBSZW5kZXJP
YmplY3QqIG5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpIGNvbnN0OwpAQCAtOTE5LDYgKzky
MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFn
ZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlbmRl
ckltYWdlKENhY2hlZEltYWdlKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgdm9pZCBzZWxlY3Rpb25TdGFydEVu
ZChpbnQmIHNwb3MsIGludCYgZXBvcykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZW1vdmUoKSB7
IGlmIChwYXJlbnQoKSkgcGFyZW50KCktPnJlbW92ZUNoaWxkKHRoaXMpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKaW5kZXgg
NGUzNTNlOTlhZjUzMDcxZmNmMTdmZmVkN2UzZGEwOWFiYjMxNTkxZi4uODI1N2UwY2M0NDg4NTc3
MzRhNjNmOTllMTU0Njg0NTBlYzE1YmRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMTA2LDQgKzEwNywxMCBAQCBQYXNzUmVmUHRyPEltYWdlPiBTdHlsZUNhY2hlZElt
YWdlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJgogICAgIHJl
dHVybiBtX2ltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVyKTsKIH0KIAordm9pZCBTdHls
ZUNhY2hlZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2ltYWdlKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlLmgKaW5kZXggMDk0M2IwZTY3YjJmNzJlN2IyZjYyZTk2YWQ5YTAz
OWIwMmRkN2NiMS4uZDE4OWEyODIyN2NlMGM3OTRkYTE3MDg3NGMxNGE1YTJhODRmODYyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5o
CkBAIC01Niw3ICs1Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2xpZW50KFJl
bmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0
Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBj
b25zdCBJbnRTaXplJikgY29uc3Q7Ci0gICAgCisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFN0eWxlQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKTsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcAppbmRl
eCBjMGE5ZjVlMmYwMzllMDg3ZjA5ZGYyZjhlNzljNzU3NzU1YTU4NGUxLi5mZmE0YjIzY2FjNzVm
MzgwOGM0MGY5NjM2ZDIzZDQ0NTc4NDUzNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNiw2ICsxMTcs
MTQgQEAgUGFzc1JlZlB0cjxJbWFnZT4gU3R5bGVDYWNoZWRJbWFnZVNldDo6aW1hZ2UoUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2kKICAgICByZXR1cm4gbV9iZXN0Rml0SW1hZ2Ut
PmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogfQogCit2b2lkIFN0eWxlQ2FjaGVkSW1hZ2VT
ZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYmVzdEZp
dEltYWdlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlU2V0VmFsdWUpOworfQorCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShDU1NfSU1BR0VfU0VUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2VTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdl
U2V0LmgKaW5kZXggN2U3Y2FmY2QyMTljYzE5MGQ4NDY2ZWRkMzYyYzJjYTM5ZTI2MDBhNy4uZGQz
MzEwODJiZGM3MGQ5MDlmNDBjMjY4MGQ2ZWNhOTM2ZjZhMGViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5oCkBAIC03MSw2
ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJl
bmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IGlt
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2NhbGVGYWN0b3I7IH0KICAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OworCiBwcml2YXRlOgogICAgIFN0eWxlQ2FjaGVkSW1hZ2VTZXQoQ2FjaGVkSW1hZ2Uq
LCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yLCBDU1NJbWFnZVNldFZhbHVlKik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dy
YW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclBy
b2dyYW0uaAppbmRleCA1MzhhNTJlZmFhZGFlMGYwYWFmNTkzZmQ1YzMzNDgwOGUwOGQwZDE0Li5k
MWE5ZmZmMzZjYTlhZmMzMzU0ZWI1ODVlMTU5YTBhYzg3OGZiYjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVk
ZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0
QWxsb2NCYXNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNCw2ICsxMTUsMTUgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNMb2FkZWQoKSkKICAgICAgICAgICAgIG5vdGlmeUNsaWVu
dHMoKTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKKyAgICB7CisgICAgICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6Q1NTKTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV92ZXJ0ZXhTaGFkZXIpOworICAgICAg
ICBpbmZvLmFkZE1lbWJlcihtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICAgICAgaW5mby5hZGRNZW1i
ZXIobV9jYWNoZWRWZXJ0ZXhTaGFkZXIpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hl
ZEZyYWdtZW50U2hhZGVyKTsKKyAgICB9CiAgICAgCiAgICAgQ2FjaGVkU2hhZGVyKiBjYWNoZWRW
ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNoYWRlciA/IG1fdmVydGV4U2hh
ZGVyLT5jYWNoZWRTaGFkZXIoKSA6IDA7IH0KICAgICBDYWNoZWRTaGFkZXIqIGNhY2hlZEZyYWdt
ZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudFNoYWRlciA/IG1fZnJhZ21lbnRT
aGFkZXItPmNhY2hlZFNoYWRlcigpIDogMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDFhMmJkMzc2NmQy
NjBhY2RkYjViMTM3OGNmMjJlYTQxOGYwMGMxZGEuLjlhMmNlYzM4NjJhZTk3YjU4MTA3ZDQ3MTRh
MTFiMmNmZTFkNWRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAj
aW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIApAQCAtODgsNCArODksMTEg
QEAgUGFzc1JlZlB0cjxJbWFnZT4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6aW1hZ2UoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2kKICAgICByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZh
bHVlLT5pbWFnZShyZW5kZXJlciwgc2l6ZSk7CiB9CiAKK3ZvaWQgU3R5bGVHZW5lcmF0ZWRJbWFn
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZUdl
bmVyYXRvclZhbHVlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRhaW5lclNpemUpOworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5l
cmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaAppbmRleCBkNTEzODQwNTlkMWQ5ZTRlODMxNjIwYzQwOTU1M2ZkZmU2MjY1OTdm
Li45NjJhMGI3ZDdkOWFlM2I2ZTdjOWZkZTFmMmRiMzUzOTFlMTEwZGVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVy
T2JqZWN0Kik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0
IEludFNpemUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBTdHlsZUdlbmVyYXRl
ZEltYWdlKFBhc3NSZWZQdHI8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZT4pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKaW5kZXggMWZjOGU5NzU5NjZhZDI5NTVl
NTZmMGJjNmZhMzJiOTRhOTEwOGY5Yi4uYmE0ZGU0ZWE4ODY5NDk4N2EwOTQ3OTRkMzllMTNmMjE3
MGU1Y2Y0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbWFn
ZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02NCw2ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZmxvYXQg
aW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgPSAwOworCiAgICAg
QUxXQVlTX0lOTElORSBib29sIGlzQ2FjaGVkSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzQ2Fj
aGVkSW1hZ2U7IH0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNQZW5kaW5nSW1hZ2UoKSBjb25z
dCB7IHJldHVybiBtX2lzUGVuZGluZ0ltYWdlOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlz
R2VuZXJhdGVkSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzR2VuZXJhdGVkSW1hZ2U7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgK
aW5kZXggNmJhZGM5MjM4MmZhM2IyODRlY2FkYjQ1NTc1NjMzMzY4YjA5N2NjNC4uMWNjOTU3Mjk0
NmQ1MGY4ZjAyMDIyNmUzMTUwYTNmNTA3OTJkZjc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZUltYWdlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgICAg
ICBpbmZvLmFkZE1lbWJlcihtX3ZhbHVlKTsKKyAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIFN0
eWxlUGVuZGluZ0ltYWdlKENTU1ZhbHVlKiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IDg3ZmYwZDY4MTI3NDQ2MGVhNzk3OGFmZTg3ZmEyNzM5Njg4
NTdlYmEuLmEzNmVhZjVjNDE3NWQyMmVlZDJkZDQ0ZTRmNThiNTM1ZmJkOTFlMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDEsNiArMjAy
LDEyIEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKikKICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKHBhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKK3ZvaWQgU1ZHRkVJbWFn
ZUVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2FjaGVkSW1hZ2UpOworfQorCiBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVJbWFnZUVs
ZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIqIGZpbHRlcikKIHsKICAgICBp
ZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKaW5k
ZXggZGU2MDY0MjI3MDk4MTM2YzM3NTM0YmM4ZGNjMTU0OWJkYTBkMTRjZi4uZGM3YTI4YTNjZDc3
ZGZhOGU0OGZmYTQxMTYzMjQzZmYzMTRmMTM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+Jikg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmls
dGVyQnVpbGRlciosIEZpbHRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VV
cmlFbGVtZW50LmNwcAppbmRleCBjMzRmZWQ4N2Q0N2VmOGZmMWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4
YThiLi4xZmRhYTJjMTRiMWFhYmI4NzdjY2QyYzY5NDZmZTg4Nzg5NzY4ZjcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC04OSw2ICs5MCwxMyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IFNW
R0ZvbnRGYWNlVXJpRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lcgogICAgIHJldHVybiBT
VkdFbGVtZW50OjppbnNlcnRlZEludG8ocm9vdFBhcmVudCk7CiB9CiAKK3ZvaWQgU1ZHRm9udEZh
Y2VVcmlFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBTVkdFbGVtZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2NhY2hlZEZvbnQpOworfQorCiB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQo
KQogewogICAgIGlmIChtX2NhY2hlZEZvbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50LmgKaW5kZXggMWNjM2RkOWM0NTMxYTRmNmQ0N2JkNDk5YmE4ZjZkODJkNjU4
M2JkMi4uNDk5ZTM2ZmNlODczNjFhYjQ2MDEwMzY5YWY1NDRmZTNkMzkyMGZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApAQCAtNDQsNiArNDQsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQ
YXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2Ug
PSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OworCiAgICAgdm9pZCBsb2FkRm9udCgpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuY3BwCmluZGV4IGRlMmE1OGNmNTJkY2VhY2M2YjU2ZGY5NzY0MGFkMzZlYWVmNjRkZDcuLjM2
YmM2NmIyNDk1MTJkN2ZjZTEyODYxYWFiYjkxMjlhMWI0YWJjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJTVkdF
bGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNjcmlw
dEV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjExLDYgKzIxMiwxMyBAQCBQYXNzUmVm
UHRyPEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1
dGVzQW5kQ2hpbGRyZW4oKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHU2NyaXB0RWxlbWVu
dCh0YWdRTmFtZSgpLCBkb2N1bWVudCgpLCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQog
Cit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdHlwZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdMb2FkRXZlbnRU
aW1lcik7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAppbmRleCAwNTUwNmVjNzVkYmMzYjcyZjc5ZGUzODg0YTI2MGFjNTEz
Nzk2YzBiLi5iMDI4N2M2ZTk1ZTBmODg0ODAxNGZiNzAyM2I3NzU1MDU5MzgzMjkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTcxLDYgKzcxLDggQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZAogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBo
YXZlRmlyZWRMb2FkRXZlbnQpIHsgU2NyaXB0RWxlbWVudDo6c2V0SGF2ZUZpcmVkTG9hZEV2ZW50
KGhhdmVGaXJlZExvYWRFdmVudCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXJzZXJJbnNlcnRl
ZCgpIGNvbnN0IHsgcmV0dXJuIFNjcmlwdEVsZW1lbnQ6OmlzUGFyc2VySW5zZXJ0ZWQoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDYwNDZlYzYxYjc0ZmMxMmViMTNh
YzIwNzI0NGE2YzY4MTY1NDc0NzYuLjBjZmYwNDhhNTUzOTBlNjIzMmNmMzExZGU4YmQwNDZlNTAy
ZTk0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHU3ltYm9sRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogI2luY2x1ZGUgIlhN
TERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiWE1MU2VyaWFsaXplci5oIgpAQCAtOTYxLDYg
Kzk2MiwxNCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSkKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlz
cGF0Y2hMb2FkRXZlbnQodGhpcyk7CiB9CiAKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90YXJnZXRFbGVtZW50SW5zdGFu
Y2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkRG9jdW1lbnQpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fc3ZnTG9hZEV2ZW50VGltZXIpOworfQorCiBib29sIFNWR1VzZUVsZW1lbnQ6OmNh
Y2hlZERvY3VtZW50SXNTdGlsbExvYWRpbmcoKQogewogICAgIGlmIChtX2NhY2hlZERvY3VtZW50
ICYmIG1fY2FjaGVkRG9jdW1lbnQtPmlzTG9hZGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmgKaW5kZXggNDZlZThiMzQxMmEwZDgxOTE5ZTUyMzZiYjBhNTE5NzVjMGEyYjU3Zi4uOTlh
Yjg3YmYyYjAxNjhmNmU0NzU4NjkxODgzZmNlMmRmMGNjMzJhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5oCkBAIC0xMTUsNiArMTE1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBEb2N1bWVudCogcmVmZXJl
bmNlZERvY3VtZW50KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgLy8gU1ZHVGVzdHMKICAgICB2aXJ0
dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6c3luY2hy
b25pemVSZXF1aXJlZEZlYXR1cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9u
aXplUmVxdWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4
dGVuc2lvbnModGhpcyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBv
cnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAppbmRleCBl
NjI5NTllOTliMGQwZGUzN2Q4NmQ1NTU1N2M5Njk4Y2U5ODM4MTM4Li5kZjFhOTRiMzMyY2ZjZTA0
MTAyNTU1YjdjNDE3ZDNkNmRkZjUxY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMSW1wb3J0UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJY
U0xTdHlsZVNoZWV0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDYgKzY4LDE1IEBA
IHZvaWQgWFNMSW1wb3J0UnVsZTo6c2V0WFNMU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYs
IGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvCiAgICAgICAgIHBhcmVudC0+Y2hlY2tMb2FkZWQoKTsK
IH0KIAordm9pZCBYU0xJbXBvcnRSdWxlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3BhcmVudFN0eWxlU2hlZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
c3RySHJlZik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2NhY2hlZFNoZWV0KTsKK30KKwogYm9vbCBYU0xJbXBvcnRSdWxlOjppc0xvYWRp
bmcoKQogewogICAgIHJldHVybiAobV9sb2FkaW5nIHx8IChtX3N0eWxlU2hlZXQgJiYgbV9zdHls
ZVNoZWV0LT5pc0xvYWRpbmcoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hT
TEltcG9ydFJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmgKaW5kZXgg
MzUwY2RkOWIxNjUzNGI2MTdmMDYyNzYyOTNjNDc0MGUyY2Y2YjE5ZS4uNTdiYWVjYzQxMTU3Mzdl
ZDEzNzUwMDkyOWNkMWE0YmFjMTkyMDAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTEltcG9ydFJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5o
CkBAIC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgWFNMSW1wb3J0UnVsZShYU0xTdHlsZVNo
ZWV0KiBwYXJlbnRTaGVldCwgY29uc3QgU3RyaW5nJiBocmVmKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRYU0xTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzZVVS
TCwgY29uc3QgU3RyaW5nJiBzaGVldCk7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAgICBYU0xTdHlsZVNoZWV0KiBt
X3BhcmVudFN0eWxlU2hlZXQ7CiAgICAgU3RyaW5nIG1fc3RySHJlZjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9OZXdYTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNjNjMzNk
NmI3MzI1ZTAwMjQ1NTQwZDg0NjIzZTMyYmUwZTQwNmUwZS4uN2E0N2Y1ZDhlZDdmZGI4ZWQyYTUw
ZjY3MmI5NTFhZGQxZjlhN2ZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9OZXdYTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9OZXdYTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUg
IlNlZ21lbnRlZFN0cmluZy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJYTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIlhNTFRyZWVWaWV3
ZXIuaCIKIApAQCAtMjE3LDQgKzIxOCwxNSBAQCB2b2lkIE5ld1hNTERvY3VtZW50UGFyc2VyOjpu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogdW51c2VkUmVzb3VyY2UpCiAgICAgICAgIHJl
c3VtZVBhcnNpbmcoKTsKIH0KIAordm9pZCBOZXdYTUxEb2N1bWVudFBhcnNlcjo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTVBhcnNlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnB1dCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV90b2tlbml6ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdG9rZW4p
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1NjcmlwdCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zY3JpcHRFbGVtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyZWVCdWlsZGVyKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9OZXdYTUxEb2N1
bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9OZXdYTUxEb2N1bWVudFBh
cnNlci5oCmluZGV4IDk3NWQ2N2I5NjUzNzljNTJjN2FlNjQ2YjJkNTdjMDIyZjcwNmM3MDcuLjcy
YWUxNmMyNjlmYWNiNmMyOGI5ZDZiMmY4NWNiNTcyOTMwNTExNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTc1LDYgKzc1LDcg
QEAgcHVibGljOgogCiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNWFhMGUw
ODkwNmNkNWViMWEzMDZiNDgzNDFmOTkzMTQ0NWVlOTE5Mi4uN2M1ZjNiYWVlYmFhZWI1YTNhNmRk
MjExMDFmOWY0YTkyMjY3ZDFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTUwLDcgKzUwLDkgQEAKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUcmVl
RGVwdGhMaW1pdC5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJYTUxFcnJvcnMuaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yNzMsNiArMjc1LDMw
IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
KiB1bnVzZWRSZXNvdXJjZSkKICAgICAgICAgcmVzdW1lUGFyc2luZygpOwogfQogCit2b2lkIFhN
TERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NUGFyc2VyKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3ZpZXcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxTb3VyY2VG
b3JUcmFuc2Zvcm0pOworI2lmIFVTRShRWE1MU1RSRUFNKQorICAgIGluZm8uYWRkTWVtYmVyKG1f
c3RyZWFtKTsKKyNlbHNlCisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZXh0KTsKKyAgICAvLyBG
SVhNRTogYWRkIG1fcGVuZGluZ0NhbGxiYWNrcyB3aGVuIFBlbmRpbmdDYWxsYmFja3MgZGVjbGFy
YXRpb24gaXMgYXZhaWxhYmxlCisgICAgaW5mby5hZGRNZW1iZXIobV9idWZmZXJlZFRleHQpOwor
I2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9jdXJyZW50Tm9kZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jdXJyZW50Tm9kZVN0YWNrKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xlYWZUZXh0
Tm9kZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV94bWxFcnJvcnMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fcGVuZGluZ1NjcmlwdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JpcHRFbGVtZW50
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIGluZm8u
YWRkTWVtYmVyKG1fZGVmYXVsdE5hbWVzcGFjZVVSSSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9w
cmVmaXhUb05hbWVzcGFjZU1hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nU3JjKTsK
K30KKwogYm9vbCBYTUxEb2N1bWVudFBhcnNlcjo6aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fcGVuZGluZ1NjcmlwdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBlOGQxNDRiZWMzNGViMTQzZGZlMmNkZDQw
Njc3NTUzMDc1ZTZlOWIzLi41ODcyYzBlYzE5NzJmZTcwODUwYTM2NmZmYjQ4ZTk3OGNkMzYzNTgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oCkBA
IC0xMTgsNiArMTE4LDcgQEAgY2xhc3MgVGV4dDsKIAogICAgICAgICAvLyBmcm9tIENhY2hlZFJl
c291cmNlQ2xpZW50CiAgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OwogCiAgICAgICAgIHZvaWQgZW5kKCk7CiAK
</data>
<flag name="commit-queue"
          id="185053"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171252</attachid>
            <date>2012-10-29 08:28:40 -0700</date>
            <delta_ts>2012-10-29 21:44:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>cached-resource-client.patch</filename>
            <type>text/plain</type>
            <size>67276</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzc3ZGIwYy4uZDZkZTkz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysr
IGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTU4LDYgKzU4LDcg
QEAgcHVibGljOgogICAgICAgICAsIG1fb2JqZWN0VHlwZShvd25lck9iamVjdFR5cGUpCiAgICAg
ICAgICwgbV9vYmplY3RTaXplKDApCiAgICAgICAgICwgbV9wb2ludGVyKDApCisgICAgICAgICwg
bV9jdXN0b21BbGxvY2F0b3IoZmFsc2UpCiAgICAgeyB9CiAKICAgICB0eXBlZGVmIE1lbW9yeUNs
YXNzSW5mbyBDbGFzc0luZm87CkBAIC02Niw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBzaXplX3Qg
b2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6ZTsgfQogICAgIGNvbnN0IHZv
aWQqIHJlcG9ydGVkUG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRlcjsgfQogCisgICAg
dm9pZCBzZXRDdXN0b21BbGxvY2F0b3IoKSB7IG1fY3VzdG9tQWxsb2NhdG9yID0gdHJ1ZTsgfQor
ICAgIGJvb2wgY3VzdG9tQWxsb2NhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21BbGxvY2F0
b3I7IH0KKwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9u
KCkgeyByZXR1cm4gbV9tZW1vcnlJbnN0cnVtZW50YXRpb247IH0KIAogcHJpdmF0ZToKQEAgLTg2
LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBNZW1vcnlPYmplY3RUeXBlIG1fb2JqZWN0VHlwZTsK
ICAgICBzaXplX3QgbV9vYmplY3RTaXplOwogICAgIGNvbnN0IHZvaWQqIG1fcG9pbnRlcjsKKyAg
ICBib29sIG1fY3VzdG9tQWxsb2NhdG9yOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsK
QEAgLTI3MSw2ICsyNzYsOCBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVu
dGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpbwogICAgIE1lbW9yeU9i
amVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50YXRpb24sIG1fb3duZXJP
YmplY3RUeXBlKTsKICAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmpl
Y3RJbmZvKTsKIAorICAgIGlmIChtZW1vcnlPYmplY3RJbmZvLmN1c3RvbUFsbG9jYXRvcigpKQor
ICAgICAgICByZXR1cm47CiAgICAgY29uc3Qgdm9pZCogcG9pbnRlciA9IG1lbW9yeU9iamVjdElu
Zm8ucmVwb3J0ZWRQb2ludGVyKCk7CiAgICAgQVNTRVJUKHBvaW50ZXIpOwogICAgIGlmIChwb2lu
dGVyICE9IG1fcG9pbnRlciAmJiBtZW1vcnlJbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQocG9pbnRl
cikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggN2I0NTRiOC4uNWFjMTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3MCBAQAorMjAxMi0xMC0yOSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiByZXBvcnQgYWN0dWFsIG9iamVj
dCBhZGRyZXNzIGZvciBDYWNoZWRSZXNvdXJjZUNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDY1OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIENhY2hlZFJlc291cmNlQ2xpZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZSB2aXJ0dWFsIG1ldGhvZCB0aGF0IGlzIG92ZXJyaWRlbgorICAgICAg
ICBpbiBhbGwgY2xpZW50cyB0byByZXBvcnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzLgorCisgICAg
ICAgIFRvIHRlc3QgdGhpcyB3ZSBuZWVkIHRvIGNvbXBhcmUgYWRkcmVzc2VzIG9mIG9iamVjdHMg
dHJhdmVyc2VkIGJ5IHRoZSBtZW1vcnkKKyAgICAgICAgaW5zcnVtZW50YXRpb24gd2l0aCB0aG9z
ZSBhbGxvY2F0ZWQgYnkgdGhlIG1lbW9yeSBhbGxvY2F0b3IuIExhdHRlciBzZXQgc2hvdWxkCisg
ICAgICAgIGluY2x1ZGUgdGhlIGZvcm1lciBvbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3Nm
YWRlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAgIChD
cm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRG
YWNlU291cmNlLmg6CisgICAgICAgIChDU1NGb250RmFjZVNvdXJjZSk6CisgICAgICAgICogY3Nz
L0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRT
VkdEb2N1bWVudFJlZmVyZW5jZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9T
dHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpJ
bXBvcnRlZFN0eWxlU2hlZXRDbGllbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuaDoKKyAgICAgICAgKEltcG9y
dGVkU3R5bGVTaGVldENsaWVudCk6CisgICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuaDoKKyAgICAgICAg
KFBlbmRpbmdTY3JpcHQpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmg6CisgICAgICAgIChQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAqIGRv
bS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKEhU
TUxEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAo
SFRNTExpbmtFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6
CisgICAgICAgIChIVE1MU2NyaXB0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJz
ZXIpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKEltYWdlTG9h
ZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMaW5rTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6IGNsaWVudCBpcyByZXBvcnRlZCBhcyBh
IHdlYWsgcG9pbnRlcgorICAgICAgICBhcyB3ZSBzaG91bGQgcmVhY2ggdGhlIGNsaWVudHMgd2hl
biB0cmF2ZXJzaW5nIERPTS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9M
aW5rTG9hZGVyLmg6CisgICAgICAgIChMaW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvVGV4
dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5oOgorICAgICAgICAoVGV4dFRyYWNrTG9hZGVyKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaDoKKyAgICAgICAgKENhY2hlZFJlc291
cmNlQ2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKTogY2xpZW50IGlzIHJl
cG9ydGVkIGFzIGEgd2VhayBwb2ludGVyCisgICAgICAgIGFzIHdlIHNob3VsZCByZWFjaCB0aGUg
Y2xpZW50cyB3aGVuIHRyYXZlcnNpbmcgRE9NLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oOgorICAgICAgICAoSWNvbkxvYWRlcik6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
Lmg6CisgICAgICAgIChDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyRmlsdGVySW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZp
bHRlckluZm86OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaDoKKyAgICAgICAgKFJlbmRlckxh
eWVyRmlsdGVySW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAg
ICAgKFJlbmRlck9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVk
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlQ2FjaGVkSW1hZ2UpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0
Lmg6CisgICAgICAgIChTdHlsZUNhY2hlZEltYWdlU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmg6CisgICAgICAgIChTdHlsZUN1c3RvbUZp
bHRlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFt
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2Vu
ZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZTo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlR2VuZXJhdGVk
SW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmg6CisgICAgICAg
IChTdHlsZUltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1h
Z2UuaDoKKyAgICAgICAgKFN0eWxlUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUGVuZGluZ0ltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogc3ZnL1NWR0ZF
SW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR0ZFSW1hZ2VFbGVtZW50KToKKyAgICAgICAg
KiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Zv
bnRGYWNlVXJpRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oOgorICAgICAgICAoU1ZHRm9u
dEZhY2VVcmlFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorICAg
ICAgICAoU1ZHU2NyaXB0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTTEltcG9ydFJ1bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmg6CisgICAgICAgIChY
U0xJbXBvcnRSdWxlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ld1hNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1v
cnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL05ld1hN
TERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChOZXdYTUxEb2N1bWVudFBhcnNlcik6CisgICAg
ICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAo
WE1MRG9jdW1lbnRQYXJzZXIpOgorCiAyMDEyLTEwLTI4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUaGUgc2hhZG93IGVsZW1lbnQgaXMgbm90IHJl
cHJvamVjdGVkIHRvIGEgbmVzdGVkIFNoYWRvd1Jvb3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAppbmRleCA4MTZj
ODZjLi4yN2YyMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAjaW5jbHVk
ZSA8cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg+CiAKQEAgLTUxLDYgKzUyLDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnNvdXJjZVByb3ZpZGVyQ2FjaGVTaXplQ2hhbmdlZChk
ZWx0YSk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkNhY2hlZFJlc291cmNlU2NyaXB0KTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNo
ZWRTY3JpcHQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICAgICAgOiBTb3VyY2VQcm92aWRl
cihjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCksIFRleHRQb3NpdGlvbjo6bWluaW11bVBv
c2l0aW9uKCksIGNhY2hlZFNjcmlwdC0+c291cmNlUHJvdmlkZXJDYWNoZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTI2NzM0Zi4uY2Q4YjNlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xOTAsNiArMTkwLDEy
IEBAIHZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94
eTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlCiAgICAgICAgIG1fb3duZXJWYWx1ZS0+Y3Jvc3Nm
YWRlQ2hhbmdlZCgqcmVjdCk7CiB9CiAKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyht
ZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9vd25lclZhbHVlKTsKK30KKwogYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6
aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0CiB7CiAgICAgaWYgKG1fY2Fj
aGVkRnJvbUltYWdlICYmIG1fY2FjaGVkRnJvbUltYWdlLT5sb2FkRmFpbGVkT3JDYW5jZWxlZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAppbmRleCBjYjA3YWJjLi44M2Nh
OWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApAQCAtODMsNiArODMs
NyBAQCBwcml2YXRlOgogCiAgICAgICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZElt
YWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKICAg
ICAgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQogICAg
IHByaXZhdGU6CiAgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVlKiBtX293bmVyVmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCA1ZTUyODlmLi5jNWFlNDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTM0LDYgKzM0
LDggQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aE1hcC5oPgogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJGb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgiCkBAIC05NCw2ICs5NiwxOSBAQCB2b2lkIENTU0ZvbnRGYWNlU291cmNlOjpm
b250TG9hZGVkKENhY2hlZEZvbnQqKQogICAgICAgICBtX2ZhY2UtPmZvbnRMb2FkZWQodGhpcyk7
CiB9CiAKK3ZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fc3RyaW5nKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZvbnQp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZmFjZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mb250
RGF0YVRhYmxlKTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGluZm8uYWRkTWVtYmVyKG1f
c3ZnRm9udEZhY2VFbGVtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4dGVybmFsU1ZHRm9u
dEVsZW1lbnQpOworI2VuZGlmCit9CisKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0Zv
bnRGYWNlU291cmNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgQ1NTRm9u
dFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCiB7CiAgICAgLy8gSWYgdGhlIGZvbnQgaGFzbid0IGxv
YWRlZCBvciBhbiBlcnJvciBvY2N1cnJlZCwgdGhlbiB3ZSd2ZSBnb3Qgbm90aGluZy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKaW5kZXggMDQ4OGQxMC4uOWE0NTkzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Rm9udEZhY2UoQ1NTRm9udEZhY2UqIGZhY2UpIHsgbV9mYWNlID0g
ZmFjZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGZvbnRMb2FkZWQoQ2FjaGVkRm9udCopOworICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CiAKICAgICBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBnZXRGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBD
U1NGb250U2VsZWN0b3IqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NhY2hl
ZFNWR0RvY3VtZW50UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9j
dW1lbnRSZWZlcmVuY2UuaAppbmRleCAyYTI1M2FiLi5iNDZkMzYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaApAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1
ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0zOSw2ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZl
cmVuY2UoQ2FjaGVkU1ZHRG9jdW1lbnQqIGRvY3VtZW50KSA6IG1fZG9jdW1lbnQoZG9jdW1lbnQp
IHsgbV9kb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UoKSB7IG1fZG9jdW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsgfQog
ICAgIENhY2hlZFNWR0RvY3VtZW50KiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKKyAgICB7CisgICAgICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsK
KyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9kb2N1bWVudCk7CisgICAgfQogcHJpdmF0ZToKICAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMGJiYWNlMi4uOTAyYTdiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTc2LDYgKzE3NiwxNCBAQAog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgU2VxdWVuY2VNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM8Y29uc3QgV2ViQ29yZTo6
UnVsZURhdGEqPiB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEk+IHN0YXRpYyB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKEksIEksIE1lbW9yeUNsYXNzSW5mbyYpIHsgfQorfTsKKworfQorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGVlYzM1MDcuLjk5MGYyY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0
eWxlU2hlZXRDb250ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTE0MCw0ICsxNDEsMTAgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcG9ydERlc2Nl
bmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3QKICAgICBpbmZv
LmFkZE1lbWJlcihtX3N0eWxlU2hlZXQpOwogfQogCit2b2lkIFN0eWxlUnVsZUltcG9ydDo6SW1w
b3J0ZWRTdHlsZVNoZWV0Q2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX293bmVyUnVsZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAppbmRleCBiN2RmMDJjLi4xMWM0YzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCkBAIC02NCw2ICs2NCw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJSdWxlLT5zZXRDU1NTdHlsZVNoZWV0KGhy
ZWYsIGJhc2VVUkwsIGNoYXJzZXQsIHNoZWV0KTsKICAgICAgICAgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIHBy
aXZhdGU6CiAgICAgICAgIFN0eWxlUnVsZUltcG9ydCogbV9vd25lclJ1bGU7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCBjNjAyYTExLi5jNmRkNGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTY1LDQgKzY2LDEyIEBAIHZvaWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKQogewogfQogCit2b2lkIFBlbmRpbmdTY3JpcHQ6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZWxlbWVudCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFNjcmlw
dCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCmluZGV4IDM5OTY0NjIuLjRl
Y2RhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZWRTY3JpcHQoQ2FjaGVkU2NyaXB0Kik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIGJvb2wgbV93YXRjaGluZ0ZvckxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGVjMTczM2MuLjE0YTU0ODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50
UGFyc2VyLmgiIC8vIGZvciBwYXJzZUF0dHJpYnV0ZXMoKQogI2luY2x1ZGUgIk1lZGlhTGlzdC5o
IgpAQCAtMjQxLDYgKzI0MiwxOSBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6c2V0WFNM
U3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtVUkwmIGJhcwogfQogI2VuZGlm
CiAKK3ZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsK
KyAgICBOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3RhcmdldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2xvY2FsSHJlZik7CisgICAgaW5mby5hZGRNZW1iZXIobV90aXRsZSk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNo
ZWRTaGVldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zaGVldCk7Cit9CisKIHZvaWQgUHJvY2Vz
c2luZ0luc3RydWN0aW9uOjpwYXJzZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzaGVldCkKIHsK
ICAgICBpZiAobV9pc0NTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaAppbmRleCBlMzMxZTIxLi40MjRiOGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFhTTFQpCiAgICAgdmlydHVhbCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBo
cmVmLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHNoZWV0KTsKICNlbmRpZgor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CiAKICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaGVl
dExvYWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IDcxNDEwYTEuLmZiYWNiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTM1LDgg
KzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3Jl
TWVtb3J5VHlwZXM6OlBhZ2UgPSAiUGFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6RE9NID0gIlBhZ2UuRE9NIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET01QYXJzZXIgPSAiUGFnZS5ET01QYXJzZXIiOwogTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyA9ICJQYWdlLkNTUyI7CiBNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyA9ICJQYWdlLkJpbmRpbmciOworTWVtb3J5T2JqZWN0
VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlNWRyA9ICJQYWdlLlNWRyI7CiAKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVjdHVyZXMgPSAiTWVtb3J5
Q2FjaGUuSW50ZXJuYWxTdHJ1Y3R1cmVzIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDYWNoZWRSZXNvdXJjZSA9ICJNZW1vcnlDYWNoZS5SZXNvdXJjZSI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCA3
NDc5ZTA1Li41OGRmODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQzLDggKzQzLDEwIEBAIGNsYXNzIFdlYkNvcmVNZW1v
cnlUeXBlcyA6IHB1YmxpYyBQbGF0Zm9ybU1lbW9yeVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBQYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIERP
TTsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET01QYXJzZXI7CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEJpbmRpbmc7
CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgU1ZHOwogCiAgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RU
eXBlIENhY2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCmluZGV4
IGI5ZDc2N2UuLjRlMWVjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAg
LTc0LDYgKzc0LDggQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291
bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzMyLDYgKzMzNCwxNCBAQCB2b2lkIEhUTUxEb2N1bWVudDo6cmVtb3ZlRXh0
cmFOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogICAgIHJlbW92ZUl0ZW1Gcm9t
TWFwKG1fZXh0cmFOYW1lZEl0ZW1Db3VudHMsIG5hbWUpOwogfQogCit2b2lkIEhUTUxEb2N1bWVu
dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbmFtZWRJdGVtQ291
bnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4dHJhTmFtZWRJdGVtQ291bnRzKTsKK30KKwog
dm9pZCBIVE1MRG9jdW1lbnQ6OnNldENvbXBhdGliaWxpdHlNb2RlRnJvbURvY3R5cGUoKQogewog
ICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSBjb21wYXRpYmlsaXR5IG1vZGVzOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5kZXggZDM5ZjM5Mi4uNGQ2YTViNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZUV4dHJhTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CiAgICAgYm9v
bCBoYXNFeHRyYU5hbWVkSXRlbShBdG9taWNTdHJpbmdJbXBsKiBuYW1lKTsKIAorICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJ
REU7CisKIHByb3RlY3RlZDoKICAgICBIVE1MRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA3Yzk2YjE5Li4w
YjE3MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC00OCw2
ICs0OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzk1LDYgKzM5NiwxOSBAQCB2b2lkIEhUTUxMaW5rRWxl
bWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCkKICAgICBhZGRQZW5kaW5nU2hlZXQoQmxv
Y2tpbmcpOwogfQogCit2b2lkIEhUTUxMaW5rRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRP
TSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rTG9hZGVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NhY2hlZFNoZWV0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NoZWV0KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3VybCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90eXBlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NpemVzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3JlbEF0dHJpYnV0ZSk7Cit9CisKIGJvb2wgSFRNTExpbmtFbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAg
ICByZXR1cm4gYXR0cmlidXRlLm5hbWUoKSA9PSBocmVmQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5o
CmluZGV4IDBiNmM2YzkuLjczYjFjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuaApAQCAtODgsNiArODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaGVldExv
YWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2FkZWRTaGVldEFuZEFsbENyaXRpY2Fs
U3VicmVzb3VyY2VzKGJvb2wgZXJyb3JPY2N1cnJlZCk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0
TG9hZGluZ0R5bmFtaWNTaGVldCgpOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQg
bGlua0xvYWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBsaW5rTG9hZGluZ0Vycm9yZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNGYyYzk1Ni4uYWI5
Yzc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE3
OCw0ICsxNzgsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBh
bHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpET00pOworICAgIEhUTUxFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihlbGVtZW50KCkpOworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggYzJjYTBkYi4uYzliMWUy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUsNiArNjUs
OCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpOwogCiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1
dGVzQW5kQ2hpbGRyZW4oKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApp
bmRleCA5MzVmNWQwLi5jZjUxODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU2OCw0ICs1Njks
MTggQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVNjaGVkdWxlZFRhc2tzKCkKICAg
ICAgICAgbV9wYXJzZXJTY2hlZHVsZXItPnJlc3VtZSgpOwogfQogCit2b2lkIEhUTUxEb2N1bWVu
dFBhcnNlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTVBhcnNlcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9pbnB1dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90b2tlbml6ZXIpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fc2NyaXB0UnVubmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyZWVCdWls
ZGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWxvYWRTY2FubmVyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2luc2VydGlvblByZWxvYWRTY2FubmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3BhcnNlclNjaGVkdWxlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zb3VyY2VUcmFja2VyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3hzc0F1ZGl0b3IpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGNlMTA4ZjQuLjc2
Y2JmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5oCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVu
ZFNjaGVkdWxlZFRhc2tzKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZVNjaGVkdWxlZFRhc2tz
KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBlY2FmZTAxLi4zODU3ZGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3Vi
cmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKQEAgLTMxNiw2ICsz
MTcsMTUgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jlc291
cmNlLT5pZGVudGlmaWVyKCksIG1fcmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOwogfQogCit2
b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGll
bnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fYWN0dWFsUmVxdWVzdCk7Cit9CisKIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRp
bWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAppbmRleCA4Nzk5MTlmLi5lMjMyNDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCkBA
IC04Miw2ICs4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVz
b3VyY2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YURvd25s
b2FkZWQoQ2FjaGVkUmVzb3VyY2UqLCBpbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmNwcAppbmRleCBjMTJiZTJmLi44M2ZlMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaWYg
RU5BQkxFKFNWRykKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5oIgpAQCAtNDQxLDYgKzQ0Miwx
NCBAQCB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdFcnJvckV2ZW50cygpCiAgICAg
ZXJyb3JFdmVudFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cygpOwogfQogCit2b2lkIElt
YWdlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZFdlYWtQb2lu
dGVyKG1fY2xpZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2ZhaWxlZExvYWRVUkwpOworfQorCiB2b2lkIEltYWdlTG9hZGVyOjplbGVtZW50
RGlkTW92ZVRvTmV3RG9jdW1lbnQoKQogewogICAgIHNldEltYWdlKDApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuaAppbmRleCBiYzg1OTE1Li40MzNmZjAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cygpOwogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNo
UGVuZGluZ0Vycm9yRXZlbnRzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmNwcAppbmRleCBlNTBiMzc5Li44ZGU4MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTGlua1JlbEF0dHJp
YnV0ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogI2lmIEVOQUJM
RShMSU5LX1BSRVJFTkRFUikKICNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKQEAgLTkwLDYg
KzkxLDE4IEBAIHZvaWQgTGlua0xvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gMDsKIH0KIAordm9pZCBMaW5r
TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVy
KG1fY2xpZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZExpbmtSZXNvdXJjZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9saW5rTG9hZFRpbWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2xpbmtMb2FkaW5nRXJyb3JUaW1lcik7CisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAg
IGluZm8uYWRkTWVtYmVyKG1fcHJlcmVuZGVySGFuZGxlKTsKKyNlbmRpZgorfQorCiBib29sIExp
bmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwg
Y29uc3QgU3RyaW5nJiB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIHNpemVzLCBjb25zdCBLVVJMJiBocmVmLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuaAppbmRleCBhMWE2M2YwLi4zY2U4NzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgLy8g
ZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZWxlYXNlZCgpOwogICAg
IGJvb2wgbG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBzaXplcywgY29uc3QgS1VSTCYsIERvY3VtZW50Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmluZGV4IDdlMTRiNDMuLjVmOGNlOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYkNvcmVN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTEzLDYgKzExNCwxNyBAQCB2b2lkIFRleHRUcmFja0xvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIHByb2Nlc3NO
ZXdDdWVEYXRhKHJlc291cmNlKTsKIH0KIAordm9pZCBUZXh0VHJhY2tMb2FkZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpZW50KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2N1ZVBhcnNlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRDdWVE
YXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fY3VlTG9hZFRpbWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Ny
b3NzT3JpZ2luTW9kZSk7Cit9CisKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9saWN5UHJl
dmVudGVkTG9hZCgpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVN
ZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaAppbmRleCA3NDMzNGY5Li4zYTcxNTljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCkBAIC03MCw2ICs3MCw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZURhdGEoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAogICAgIC8vIFdlYlZUVFBhcnNlckNs
aWVudAogICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCmluZGV4IGZmMWRlYWMu
LjczZWNkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUNsaWVudC5oCkBAIC01Miw2ICs1Miw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ2Fj
aGVkUmVzb3VyY2VDbGllbnRUeXBlIGV4cGVjdGVkVHlwZSgpIHsgcmV0dXJuIEJhc2VSZXNvdXJj
ZVR5cGU7IH0KICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNs
aWVudFR5cGUoKSBjb25zdCB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQogCisgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCA9IDA7CisK
IHByb3RlY3RlZDoKICAgICBDYWNoZWRSZXNvdXJjZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZS4uNGJhMGMyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMDMsNCArMTA0LDExIEBAIHZvaWQgSWNvbkxvYWRlcjo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIHN0b3BMb2FkaW5nKCk7CiB9
CiAKK3ZvaWQgSWNvbkxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9mcmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaAppbmRleCA2NWU4YmQ1Li42
MzU5MWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSWNvbkxvYWRlcihGcmFt
ZSopOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CiAKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkODcyZmYw
Li5jYmZlOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpD
bGlwYm9hcmQgPSAiUGFnZS5DbGlwYm9hcmQiOwogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1l
bW9yeVR5cGVzOjpJbWFnZSA9ICJQYWdlLkltYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZv
cm1NZW1vcnlUeXBlczo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5k
ZXggNDZhODRiYi4uOGQ0ZmI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIHVz
aW5nIFdURjo6TWVtb3J5T2JqZWN0VHlwZTsKIAogY2xhc3MgUGxhdGZvcm1NZW1vcnlUeXBlcyB7
CiBwdWJsaWM6CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ2xpcGJvYXJkOwogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIEltYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBl
IExvYWRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxh
Y2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmNwcAppbmRleCBhZGUyMmVmLi5hY2Q2MDY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJs
YWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xp
cGJvYXJkQmxhY2tCZXJyeS5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkZpbGVM
aXN0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQ2xp
cGJvYXJkLmg+CiAKQEAgLTE0MCw0ICsxNDEsOSBAQCB2b2lkIENsaXBib2FyZEJsYWNrQmVycnk6
OnNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSosIGNvbnN0IEludFBvaW50JikKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCit2b2lkIENsaXBib2FyZEJsYWNrQmVycnk6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlU
eXBlczo6Q2xpcGJvYXJkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVy
cnkuaAppbmRleCAzN2RhNTE0Li42MGIyNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaApAQCAtNTIsNiAr
NTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShDYWNoZWRJbWFn
ZSosIGNvbnN0IEludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZUVsZW1l
bnQoTm9kZSosIGNvbnN0IEludFBvaW50Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIENsaXBi
b2FyZEJsYWNrQmVycnkoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9hcmRUeXBlKTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAKaW5kZXggZjU4ZWJjZS4uYTE3YmNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJ
bWFnZS5oIgogI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCkBAIC00NjUsNCArNDY2LDExIEBA
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZENocm9taXVtOjppdGVt
cygpCiB9CiAjZW5kaWYKIAordm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5
cGVzOjpDbGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YU9iamVjdCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9mcmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1
bS5oCmluZGV4IGU0MTgzOGQuLjE3MGJiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtMTA4LDYgKzEwOCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICBGcmFtZSogZnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogICAgIHByaXZhdGU6
CiAgICAgICAgIENsaXBib2FyZENocm9taXVtKENsaXBib2FyZFR5cGUsIFBhc3NSZWZQdHI8Q2hy
b21pdW1EYXRhT2JqZWN0PiwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCmluZGV4IGRkNGFjMjAu
LjcwYzkzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
Y3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRmls
ZUxpc3QuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTEsNSArMTUyLDkgQEAgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkRWZsOjppdGVtcygpCiB9CiAjZW5kaWYKIAor
dm9pZCBDbGlwYm9hcmRFZmw6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6Q2xpcGJvYXJkKTsKK30KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oCmluZGV4IDkwNGVi
NTIuLjg1ZjI0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlw
Ym9hcmRFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXJJdGVtTGlzdD4gaXRlbXMoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9hcmRUeXBlKTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IDFl
ZWRiMzIuLjA0YWFlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9D
bGlwYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW1hZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSAibWFya3VwLmgiCkBAIC0zMzMsNCArMzM0LDEyIEBAIGJvb2wgQ2xpcGJvYXJkR3RrOjpoYXNE
YXRhKCkKICAgICAgICAgfHwgbV9kYXRhT2JqZWN0LT5oYXNVUklMaXN0KCkgfHwgbV9kYXRhT2Jq
ZWN0LT5oYXNJbWFnZSgpOwogfQogCit2b2lkIENsaXBib2FyZEd0azo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5
cGVzOjpDbGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YU9iamVjdCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jbGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUp
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJv
YXJkR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmgKaW5k
ZXggZWU5ZDYzYy4uNTk3ZTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0NsaXBib2FyZEd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlw
Ym9hcmRHdGsuaApAQCAtNzUsNiArNzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdCgpIHsgcmV0dXJuIG1fZGF0YU9i
amVjdDsgfQogICAgICAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCgpIHsgcmV0dXJuIG1fY2xp
cGJvYXJkOyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIENsaXBib2FyZEd0
ayhDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIEd0a0NsaXBib2FyZCosIEZyYW1lKik7CiAgICAgICAg
IENsaXBib2FyZEd0ayhDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIFBhc3NSZWZQdHI8RGF0YU9iamVj
dEd0az4sIENsaXBib2FyZFR5cGUsIEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ2xpcGJvYXJkTWFjLmgKaW5kZXggMzA1YTkyZi4uZjJiYjBiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMuaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6
CiAgICAgTlNJbWFnZSAqZHJhZ05TSW1hZ2UoTlNQb2ludCYpIGNvbnN0OyAvLyBsb2MgY29udmVy
dGVkIGZyb20gZHJhZ0xvYywgYmFzZWQgb24gd2hvbGUgaW1hZ2Ugc2l6ZQogICAgIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUoKSB7IHJldHVybiBtX3Bhc3RlYm9hcmROYW1lOyB9CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OworCiBwcml2YXRlOgogICAgIENsaXBib2FyZE1hYyhDbGlwYm9hcmRUeXBlLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lLCBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIENsaXBib2FyZENvbnRl
bnRzLCBGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q2xpcGJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1h
Yy5tbQppbmRleCBiZDg4MDIwLi5mYmU3MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DbGlwYm9hcmRNYWMubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIlBhZ2UuaCIK
ICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRTdHJhdGVneS5oIgor
I2ltcG9ydCAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbXBvcnQgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2ltcG9ydCAiUmVuZGVySW1hZ2UuaCIKICNpbXBvcnQgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTQzNyw0ICs0MzgsMTIgQEAgTlNJbWFnZSAqQ2xpcGJv
YXJkTWFjOjpkcmFnTlNJbWFnZShOU1BvaW50JiBsb2MpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAordm9pZCBDbGlwYm9hcmRNYWM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6Q2xpcGJvYXJk
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2NsaXBib2FyZENvbnRlbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZyYW1lKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJk
UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCmluZGV4
IDYyMTJmNTguLjI1ZDAzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtMzY0LDQgKzM2NSw5IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+
IENsaXBib2FyZFF0OjppdGVtcygpCiB9CiAjZW5kaWYKIAordm9pZCBDbGlwYm9hcmRRdDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9D
bGlwYm9hcmRRdC5oCmluZGV4IGI4MWMxNDguLjAxMjJlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvQ2xpcGJvYXJkUXQuaApAQCAtNzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OworCiBwcml2YXRlOgogICAgIENsaXBib2FyZFF0KENsaXBib2FyZEFjY2Vzc1BvbGljeSwg
Y29uc3QgUU1pbWVEYXRhKiByZWFkYWJsZUNsaXBib2FyZCwgRnJhbWUqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAppbmRleCBlZjViYjMwLi4zZmRk
YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApA
QCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKQEAgLTUzLDYgKzU0LDcg
QEAKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8
d2luaW5ldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTgxMiw0ICs4MTQsMTMgQEAgdm9p
ZCBDbGlwYm9hcmRXaW46OnNldEV4dGVybmFsRGF0YU9iamVjdChJRGF0YU9iamVjdCAqZGF0YU9i
amVjdCkKICAgICBtX2RhdGFPYmplY3QgPSBkYXRhT2JqZWN0OwogfQogCit2b2lkIENsaXBib2Fy
ZFdpbjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpDbGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZGF0YU9iamVjdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV93cml0YWJsZURhdGFPYmplY3Qp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZHJhZ0RhdGFNYXApOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmgKaW5kZXggMTE0YmQ0MC4uMDU0OGJlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaApAQCAtODIsNiArODIsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEV4dGVybmFsRGF0YU9iamVjdChJRGF0YU9iamVjdCAq
ZGF0YU9iamVjdCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIENsaXBib2FyZFdpbihDbGlwYm9h
cmRUeXBlLCBJRGF0YU9iamVjdCosIENsaXBib2FyZEFjY2Vzc1BvbGljeSwgRnJhbWUqKTsKICAg
ICBDbGlwYm9hcmRXaW4oQ2xpcGJvYXJkVHlwZSwgV0NEYXRhT2JqZWN0KiwgQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5LCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3gvQ2xpcGJvYXJkV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJk
V3guY3BwCmluZGV4IGRjZGI5NjYuLjQ4MmI1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93eC9DbGlwYm9hcmRXeC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC0xMzksNiArMTQwLDExIEBAIGJvb2wgQ2xpcGJvYXJkV3g6Omhhc0RhdGEoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBDbGlwYm9hcmRXeDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6Q2xpcGJvYXJkKTsKK30KKwog
dm9pZCBDbGlwYm9hcmRXeDo6d3JpdGVQbGFpblRleHQoY29uc3QgV1RGOjpTdHJpbmcmIHRleHQp
CiB7CiAgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQo
dGV4dCwgUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93eC9DbGlwYm9hcmRXeC5oCmluZGV4IDM3YjFmZGQuLjQ4MTYyNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guaApAQCAtNjQsNiArNjQsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGhhc0RhdGEoKTsKIAorICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2xpcGJvYXJkV3goQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5LCBDbGlwYm9hcmRUeXBlKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcAppbmRleCAxOTBkZTYxLi5jOWVmMzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZv
LmNwcApAQCAtMzQsNiArMzQsOCBAQAogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
Lmg+CiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkNhY2hlZFNWR0RvY3VtZW50LmgiCkBA
IC0yMDEsNiArMjAzLDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvOjpyZW1vdmVDdXN0
b21GaWx0ZXJDbGllbnRzKCkKIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyRmlsdGVySW5m
bzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlclRyZWVVc2VkKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlbmRlcmVyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2RpcnR5U291cmNlUmVjdCk7CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAg
IGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMpOworI2VuZGlmCisj
aWYgRU5BQkxFKFNWRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludGVybmFsU1ZHUmVmZXJlbmNl
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9leHRlcm5hbFNWR1JlZmVyZW5jZXMpOworI2VuZGlm
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShDU1NfRklM
VEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZp
bHRlckluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcklu
Zm8uaAppbmRleCBjZjJiZTIzLi4wYTU3YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oCkBAIC05MSw2ICs5MSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlbW92ZVJlZmVyZW5jZUZpbHRlckNsaWVudHMoKTsKICNlbmRpZgogCisgICAg
dmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBSZW5kZXJMYXllckZpbHRlckluZm8oUmVuZGVyTGF5ZXIqKTsKICAg
ICB+UmVuZGVyTGF5ZXJGaWx0ZXJJbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDk4ZDBjM2QuLjExNTRjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3Rk
aW8uaD4KQEAgLTI4MzcsNiArMjgzOCwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6d2lsbFJlbmRl
ckltYWdlKENhY2hlZEltYWdlKikKICAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hl
KCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKIH0KIAordm9pZCBSZW5k
ZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgbWVtb3J5T2JqZWN0SW5mby0+c2V0Q3VzdG9tQWxsb2NhdG9y
KCk7Cit9CisKIGludCBSZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNl
IHApIGNvbnN0CiB7CiAgICAgaWYgKHAgIT0gUGFpbnRQaGFzZU91dGxpbmUgJiYgcCAhPSBQYWlu
dFBoYXNlU2VsZk91dGxpbmUgJiYgcCAhPSBQYWludFBoYXNlQ2hpbGRPdXRsaW5lcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA4N2E1OGY0Li5lYzg1NjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yMTAsNiArMjEwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hp
bGRyZW4oKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGls
ZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAorCiAgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0SW5QcmVPcmRlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4
dEluUHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKSBjb25zdDsKICAgICBS
ZW5kZXJPYmplY3QqIG5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpIGNvbnN0OwpAQCAtOTE5
LDYgKzkyMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBw
ZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlbmRlckltYWdlKENhY2hlZEltYWdlKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgdm9pZCBzZWxlY3Rpb25T
dGFydEVuZChpbnQmIHNwb3MsIGludCYgZXBvcykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZW1v
dmUoKSB7IGlmIChwYXJlbnQoKSkgcGFyZW50KCktPnJlbW92ZUNoaWxkKHRoaXMpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAK
aW5kZXggNGUzNTNlOS4uODI1N2UwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMTA2LDQgKzEwNywxMCBAQCBQYXNzUmVmUHRyPEltYWdlPiBTdHlsZUNhY2hlZEltYWdl
OjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJgogICAgIHJldHVy
biBtX2ltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVyKTsKIH0KIAordm9pZCBTdHlsZUNh
Y2hlZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2ltYWdlKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZEltYWdlLmgKaW5kZXggMDk0M2IwZS4uZDE4OWEyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCkBAIC01Niw3ICs1
Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2xpZW50KFJlbmRlck9iamVjdCop
OwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXpl
JikgY29uc3Q7Ci0gICAgCisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFN0eWxlQ2Fj
aGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcAppbmRleCBjMGE5ZjVlLi5m
ZmE0YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVD
YWNoZWRJbWFnZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2VTZXQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTSW1h
Z2VTZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNiw2ICsxMTcsMTQgQEAgUGFzc1JlZlB0cjxJbWFn
ZT4gU3R5bGVDYWNoZWRJbWFnZVNldDo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29u
c3QgSW50U2kKICAgICByZXR1cm4gbV9iZXN0Rml0SW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVu
ZGVyZXIpOwogfQogCit2b2lkIFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYmVzdEZpdEltYWdlKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2ltYWdlU2V0VmFsdWUpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShDU1NfSU1BR0VfU0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmgKaW5kZXggN2U3Y2FmYy4u
ZGQzMzEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
Q2FjaGVkSW1hZ2VTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZVNldC5oCkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBj
b25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlU2NhbGVGYWN0b3I7IH0KICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIFN0eWxl
Q2FjaGVkSW1hZ2VTZXQoQ2FjaGVkSW1hZ2UqLCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yLCBDU1NJ
bWFnZVNldFZhbHVlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaAppbmRleCA1MzhhNTJlLi5kMWE5ZmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21G
aWx0ZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
Q3VzdG9tRmlsdGVyUHJvZ3JhbS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVk
U2hhZGVyLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlN0
eWxlU2hhZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTExNCw2ICsxMTUsMTUgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNMb2FkZWQoKSkKICAgICAg
ICAgICAgIG5vdGlmeUNsaWVudHMoKTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKKyAg
ICB7CisgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV92ZXJ0
ZXhTaGFkZXIpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2ZyYWdtZW50U2hhZGVyKTsKKyAg
ICAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRWZXJ0ZXhTaGFkZXIpOworICAgICAgICBpbmZv
LmFkZE1lbWJlcihtX2NhY2hlZEZyYWdtZW50U2hhZGVyKTsKKyAgICB9CiAgICAgCiAgICAgQ2Fj
aGVkU2hhZGVyKiBjYWNoZWRWZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNo
YWRlciA/IG1fdmVydGV4U2hhZGVyLT5jYWNoZWRTaGFkZXIoKSA6IDA7IH0KICAgICBDYWNoZWRT
aGFkZXIqIGNhY2hlZEZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudFNo
YWRlciA/IG1fZnJhZ21lbnRTaGFkZXItPmNhY2hlZFNoYWRlcigpIDogMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3Bw
CmluZGV4IDFhMmJkMzcuLjlhMmNlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIApAQCAtODgs
NCArODksMTEgQEAgUGFzc1JlZlB0cjxJbWFnZT4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6aW1hZ2Uo
UmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2kKICAgICByZXR1cm4gbV9pbWFnZUdl
bmVyYXRvclZhbHVlLT5pbWFnZShyZW5kZXJlciwgc2l6ZSk7CiB9CiAKK3ZvaWQgU3R5bGVHZW5l
cmF0ZWRJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9pbWFnZUdlbmVyYXRvclZhbHVlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRhaW5lclNp
emUpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCBkNTEzODQwLi45NjJhMGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVy
T2JqZWN0Kik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0
IEludFNpemUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBTdHlsZUdlbmVyYXRl
ZEltYWdlKFBhc3NSZWZQdHI8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZT4pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKaW5kZXggMWZjOGU5Ny4uYmE0ZGU0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkBAIC02NCw2ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdyYXBw
ZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZmxvYXQgaW1hZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgPSAwOworCiAgICAgQUxXQVlTX0lO
TElORSBib29sIGlzQ2FjaGVkSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzQ2FjaGVkSW1hZ2U7
IH0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNQZW5kaW5nSW1hZ2UoKSBjb25zdCB7IHJldHVy
biBtX2lzUGVuZGluZ0ltYWdlOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzR2VuZXJhdGVk
SW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzR2VuZXJhdGVkSW1hZ2U7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKaW5kZXggNmJh
ZGM5Mi4uMWNjOTU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUGVuZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUGVuZGluZ0ltYWdlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NJbWFn
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTY2LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAorICAgIHsKKyAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgICAgICBpbmZvLmFkZE1lbWJlciht
X3ZhbHVlKTsKKyAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIFN0eWxlUGVuZGluZ0ltYWdlKENT
U1ZhbHVlKiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmlu
ZGV4IDg3ZmYwZDYuLjBkMGU1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0yMDEsNiArMjAyLDEyIEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikKICAgICBSZW5kZXJTVkdSZXNvdXJj
ZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKHBhcmVudC0+cmVu
ZGVyZXIoKSk7CiB9CiAKK3ZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpTVkcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkSW1hZ2UpOworfQorCiBQYXNzUmVm
UHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxk
ZXIqLCBGaWx0ZXIqIGZpbHRlcikKIHsKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKaW5kZXggZGU2MDY0Mi4uZGM3YTI4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxz
KExpc3RIYXNoU2V0PEtVUkw+JikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBjMzRmZWQ4Li42ODYyZjJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZh
Y2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC04OSw2ICs5MCwxMyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lcgog
ICAgIHJldHVybiBTVkdFbGVtZW50OjppbnNlcnRlZEludG8ocm9vdFBhcmVudCk7CiB9CiAKK3Zv
aWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6U1ZHKTsKKyAgICBT
VkdFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2NhY2hlZEZvbnQpOworfQorCiB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVu
dDo6bG9hZEZvbnQoKQogewogICAgIGlmIChtX2NhY2hlZEZvbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKaW5kZXggMWNjM2RkOWMuLjQ5OWUzNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTQ0LDYgKzQ0LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hh
bmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSopIE9WRVJSSURF
OwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKwogICAgIHZvaWQgbG9hZEZvbnQoKTsKIAogICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEZvbnQ+IG1fY2FjaGVkRm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmNwcAppbmRleCBkZTJhNThjLi42OTNiYjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVu
dExpc3RlbmVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIxMSw2ICsyMTIsMTMgQEAgUGFzc1JlZlB0cjxF
bGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0Fu
ZENoaWxkcmVuKCkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1lbnQodGFn
UU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAordm9p
ZCBTVkdTY3JpcHRFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6U1ZHKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3R5cGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnTG9hZEV2ZW50VGltZXIp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgKaW5kZXggMDU1MDZlYy4uYjAyODdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCkBAIC03MSw2ICs3MSw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbigpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qKSBjb25zdDsKKwogICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KGJvb2wgaGF2ZUZpcmVkTG9hZEV2
ZW50KSB7IFNjcmlwdEVsZW1lbnQ6OnNldEhhdmVGaXJlZExvYWRFdmVudChoYXZlRmlyZWRMb2Fk
RXZlbnQpOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFyc2VySW5zZXJ0ZWQoKSBjb25zdCB7IHJl
dHVybiBTY3JpcHRFbGVtZW50Ojppc1BhcnNlckluc2VydGVkKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcAppbmRleCA2MDQ2ZWM2Li4wY2ZmMDQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNWR1N5bWJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIlhNTFNlcmlhbGl6ZXIuaCIKQEAgLTk2MSw2ICs5NjIsMTQgQEAgdm9pZCBTVkdVc2VF
bGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAg
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMpOwog
fQogCit2b2lkIFNWR1VzZUVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NhY2hlZERvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z0xvYWRFdmVudFRp
bWVyKTsKK30KKwogYm9vbCBTVkdVc2VFbGVtZW50OjpjYWNoZWREb2N1bWVudElzU3RpbGxMb2Fk
aW5nKCkKIHsKICAgICBpZiAobV9jYWNoZWREb2N1bWVudCAmJiBtX2NhY2hlZERvY3VtZW50LT5p
c0xvYWRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDQ2ZWU4YjMuLjk5
YWI4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtMTE1LDYgKzExNSw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
Kik7CiAgICAgRG9jdW1lbnQqIHJlZmVyZW5jZWREb2N1bWVudCgpIGNvbnN0OwogCisgICAgdmly
dHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwog
ICAgIC8vIFNWR1Rlc3RzCiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRGZWF0
dXJlcygpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0aGlzKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucygpIHsgU1ZHVGVz
dHM6OnN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKHRoaXMpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMSW1wb3J0UnVsZS5jcHAKaW5kZXggZTYyOTU5ZS4uZGYxYTk0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xJbXBvcnRSdWxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiWFNMU3R5bGVTaGVldC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC02Nyw2ICs2OCwxNSBAQCB2b2lkIFhTTEltcG9ydFJ1bGU6OnNldFhTTFN0eWxlU2hlZXQoY29u
c3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjbwogICAgICAgICBwYXJlbnQt
PmNoZWNrTG9hZGVkKCk7CiB9CiAKK3ZvaWQgWFNMSW1wb3J0UnVsZTo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJlbnRTdHlsZVNoZWV0KTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3N0ckhyZWYpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVTaGVl
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRTaGVldCk7Cit9CisKIGJvb2wgWFNMSW1w
b3J0UnVsZTo6aXNMb2FkaW5nKCkKIHsKICAgICByZXR1cm4gKG1fbG9hZGluZyB8fCAobV9zdHls
ZVNoZWV0ICYmIG1fc3R5bGVTaGVldC0+aXNMb2FkaW5nKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1w
b3J0UnVsZS5oCmluZGV4IDM1MGNkZDkuLjU3YmFlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xJbXBvcnRSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9y
dFJ1bGUuaApAQCAtNTcsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIFhTTEltcG9ydFJ1bGUoWFNM
U3R5bGVTaGVldCogcGFyZW50U2hlZXQsIGNvbnN0IFN0cmluZyYgaHJlZik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0WFNMU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtVUkwm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgc2hlZXQpOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiAgICAgWFNMU3R5bGVT
aGVldCogbV9wYXJlbnRTdHlsZVNoZWV0OwogICAgIFN0cmluZyBtX3N0ckhyZWY7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4
IDYzYzMzZDYuLjdhNDdmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
TmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
TmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJT
ZWdtZW50ZWRTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiWE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJYTUxUcmVlVmlld2Vy
LmgiCiAKQEAgLTIxNyw0ICsyMTgsMTUgQEAgdm9pZCBOZXdYTUxEb2N1bWVudFBhcnNlcjo6bm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHVudXNlZFJlc291cmNlKQogICAgICAgICByZXN1
bWVQYXJzaW5nKCk7CiB9CiAKK3ZvaWQgTmV3WE1MRG9jdW1lbnRQYXJzZXI6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET01QYXJzZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5wdXQpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdG9rZW5pemVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Rva2VuKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdTY3JpcHQpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fc2NyaXB0RWxlbWVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmVlQnVpbGRlcik7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1l
bnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJz
ZXIuaAppbmRleCA5NzVkNjdiLi43MmFlMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9OZXdYTUxEb2N1bWVudFBhcnNlci5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDVhYTBlMDguLjdjNWYzYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CkBAIC01MCw3ICs1MCw5IEBACiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJU
ZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHJlZURlcHRoTGltaXQuaCIKKyNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiWE1MRXJyb3Jz
LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMjczLDYgKzI3NSwzMCBAQCB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogdW51c2VkUmVzb3VyY2UpCiAg
ICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKIH0KIAordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTVBhcnNlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX29yaWdpbmFsU291cmNlRm9yVHJhbnNmb3JtKTsKKyNpZiBV
U0UoUVhNTFNUUkVBTSkKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0cmVhbSk7CisjZWxzZQorICAg
IGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7CisgICAgLy8gRklYTUU6IGFkZCBtX3BlbmRpbmdD
YWxsYmFja3Mgd2hlbiBQZW5kaW5nQ2FsbGJhY2tzIGRlY2xhcmF0aW9uIGlzIGF2YWlsYWJsZQor
ICAgIGluZm8uYWRkTWVtYmVyKG1fYnVmZmVyZWRUZXh0KTsKKyNlbmRpZgorICAgIGluZm8uYWRk
TWVtYmVyKG1fY3VycmVudE5vZGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY3VycmVudE5vZGVT
dGFjayk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sZWFmVGV4dE5vZGUpOworICAgIGluZm8uYWRk
TWVtYmVyKG1feG1sRXJyb3JzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdTY3JpcHQp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fc2NyaXB0RWxlbWVudCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RlZmF1bHRO
YW1lc3BhY2VVUkkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlZml4VG9OYW1lc3BhY2VNYXAp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1NyYyk7Cit9CisKIGJvb2wgWE1MRG9jdW1l
bnRQYXJzZXI6OmlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdAogewogICAgIHJldHVybiBtX3Bl
bmRpbmdTY3JpcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyLmgKaW5kZXggZThkMTQ0Yi4uNTg3MmMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMTE4LDYgKzExOCw3IEBAIGNsYXNzIFRleHQ7
CiAKICAgICAgICAgLy8gZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIGVuZCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171369</attachid>
            <date>2012-10-29 21:45:04 -0700</date>
            <delta_ts>2012-10-30 01:56:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100659-20121030084328.patch</filename>
            <type>text/plain</type>
            <size>75908</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ3NDBmNGI2ZDQwNzc0OTU3MDYxZWIw
NzdkNWY2YzcyMmU4ODNhOGQuLjk4Mjk1Y2U5MmJkMmU0YWUwYTIxNDg2NGZiNjJmNjVjZDA1Yjlm
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAtMjkgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogcmVw
b3J0IGFjdHVhbCBvYmplY3QgYWRkcmVzcyBmb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA2NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG1ldGhv
ZCB0aGF0IGFsbG93cyB0byB0ZWxsIHRoZSBpbnN0cnVtZW50YXRpb24gdGhhdCByZXBvcnRlZCBv
YmplY3QgaGFzIGN1c3RvbSBtZW1vcnkgYWxsb2NhdG9yCisgICAgICAgIGFuZCBpdHMgZm9vdHBy
aW50IHNob3VsZG4ndCBiZSBjb3VudGVkIHNlcGFyYXRlbHkuIEl0IGlzIHVzZWZ1bCBmb3IgY2Fz
ZXMgd2hlbiB0aGUgb2JqZWN0IGlzIGFsbG9jYXRlZCBpbgorICAgICAgICBhIG1lbW9yeSBhcmVu
YS4KKworICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdU
Rjo6TWVtb3J5T2JqZWN0SW5mbzo6TWVtb3J5T2JqZWN0SW5mbyk6CisgICAgICAgIChXVEY6Ok1l
bW9yeU9iamVjdEluZm86OnNldEN1c3RvbUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1lbW9y
eU9iamVjdEluZm86OmN1c3RvbUFsbG9jYXRvcik6CisgICAgICAgIChNZW1vcnlPYmplY3RJbmZv
KToKKyAgICAgICAgKFdURjo6Ojpwcm9jZXNzKTogaWdub3JlIG9iamVjdHMgcmVwb3J0ZWQgYXMg
aGF2aW5nIGN1c3RvbSBhbGxvY2F0b3IgYnV0IHByb2Nlc3MgcG9pbnRlcnMgdG8gb3RoZXIgaGVh
cCBvYmplY3RzCisgICAgICAgIHRoZXkgbWF5IHN0b3JlLgorCiAyMDEyLTEwLTI3ICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0byBjcmVhdGUgQXRv
bWljU3RyaW5nIGFzIDggYml0IHdoZXJlIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I0NTRiOGMx
YzQ3NmFmNTFlNWQ4NDFiN2NhYjZjZDkzZWU5ZTNhZC4uZWI4ODE3YzM1ZTcyMGM1NmMzNWU0MDY5
Mzg0NTE4MDRkMDdmNjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxNyBAQAorMjAxMi0xMC0y
OSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZW1v
cnkgaW5zdHJ1bWVudGF0aW9uOiByZXBvcnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzIGZvciBDYWNo
ZWRSZXNvdXJjZUNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIENhY2hlZFJlc291cmNlQ2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZSB2
aXJ0dWFsIG1ldGhvZCB0aGF0IGlzIG92ZXJyaWRlbgorICAgICAgICBpbiBhbGwgY2xpZW50cyB0
byByZXBvcnQgYWN0dWFsIG9iamVjdCBhZGRyZXNzLgorCisgICAgICAgIFRvIHRlc3QgdGhpcyB3
ZSBuZWVkIHRvIGNvbXBhcmUgYWRkcmVzc2VzIG9mIG9iamVjdHMgdHJhdmVyc2VkIGJ5IHRoZSBt
ZW1vcnkKKyAgICAgICAgaW5zcnVtZW50YXRpb24gd2l0aCB0aG9zZSBhbGxvY2F0ZWQgYnkgdGhl
IG1lbW9yeSBhbGxvY2F0b3IuIExhdHRlciBzZXQgc2hvdWxkCisgICAgICAgIGluY2x1ZGUgdGhl
IGZvcm1lciBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVy
KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmg6CisgICAgICAgIChDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkp
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgIChDU1NGb250
RmFjZVNvdXJjZSk6CisgICAgICAgICogY3NzL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdU
Rik6IFJ1bGVEYXRhIGlzIGEgdmFsdWUgdHlwZSBhbmQgd2hlbiB3ZSByZXBvcnQgbWVtb3J5IHVz
YWdlIGZvciBhIFZlY3RvciBvZiBwb2ludGVycworICAgICAgICB0byBSdWxlRGF0YSB0aGUgY29u
dGVudCBzaG91bGQgYmUgaWdub3JlZC4gQWRkZWQgdHJhaXRzIGZvciBjb25zdCBSdWxlRGF0YSog
Z3VhcmFudGVlIHRoYXQKKyAgICAgICAgd2Ugd29uJ3QgY291bnQgcG9pbnRlcnMgdG8gUnVsZURh
dGEuCisgICAgICAgICogY3NzL1N0eWxlUnVsZUltcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVJbXBvcnQ6OkltcG9ydGVkU3R5bGVTaGVldENsaWVudDo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL1N0eWxlUnVsZUltcG9y
dC5oOgorICAgICAgICAoSW1wb3J0ZWRTdHlsZVNoZWV0Q2xpZW50KToKKyAgICAgICAgKiBkb20v
UGVuZGluZ1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vUGVuZGlu
Z1NjcmlwdC5oOgorICAgICAgICAoUGVuZGluZ1NjcmlwdCk6CisgICAgICAgICogZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb246OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaDoKKyAgICAgICAgKFByb2Nlc3NpbmdJbnN0cnVj
dGlvbik6CisgICAgICAgICogZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmVNZW1vcnlUeXBlcyk6CisgICAgICAgICogaHRtbC9I
VE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1
bWVudC5oOgorICAgICAgICAoSFRNTERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5r
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtF
bGVtZW50Lmg6CisgICAgICAgIChIVE1MTGlua0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTY3JpcHRFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAg
ICAgKEhUTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5o
OgorICAgICAgICAoSW1hZ2VMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKTogY2xp
ZW50IGlzIHJlcG9ydGVkIGFzIGEgd2VhayBwb2ludGVyCisgICAgICAgIGFzIHdlIHNob3VsZCBy
ZWFjaCB0aGUgY2xpZW50cyB3aGVuIHRyYXZlcnNpbmcgRE9NLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuaDoKKyAgICAgICAgKExpbmtMb2FkZXIpOgor
ICAgICAgICAqIGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmg6CisgICAgICAgIChUZXh0VHJhY2tM
b2FkZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oOgor
ICAgICAgICAoQ2FjaGVkUmVzb3VyY2VDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UpOiBjbGllbnQgaXMgcmVwb3J0ZWQgYXMgYSB3ZWFrIHBvaW50ZXIKKyAgICAgICAgYXMg
d2Ugc2hvdWxkIHJlYWNoIHRoZSBjbGllbnRzIHdoZW4gdHJhdmVyc2luZyBET00uCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmg6CisgICAgICAg
IChJY29uTG9hZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBl
cyk6CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEJsYWNrQmVycnk6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkv
Q2xpcGJvYXJkQmxhY2tCZXJyeS5oOgorICAgICAgICAoQ2xpcGJvYXJkQmxhY2tCZXJyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmg6CisgICAgICAgIChDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL0NsaXBib2FyZEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRFZmw6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmg6
CisgICAgICAgIChDbGlwYm9hcmRFZmwpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkR3RrOjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ2xpcGJv
YXJkR3RrLmg6CisgICAgICAgIChDbGlwYm9hcmRHdGspOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9DbGlwYm9hcmRNYWMuaDoKKyAgICAgICAgKENsaXBib2FyZE1hYyk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZE1h
Yzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L0NsaXBib2FyZFF0Lmg6CisgICAgICAgIChDbGlwYm9hcmRRdCk6CisgICAgICAgICog
cGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmRXaW46OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaDoKKyAgICAgICAgKENsaXBib2FyZFdpbik6Cisg
ICAgICAgICogcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2xpcGJvYXJkV3g6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL3d4L0NsaXBib2FyZFd4Lmg6CisgICAgICAgIChDbGlwYm9hcmRXeCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlckluZm86OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcklu
Zm8uaDoKKyAgICAgICAgKFJlbmRlckxheWVyRmlsdGVySW5mbyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKTogYXMgUmVuZGVyT2JqZWN0IGlzIGFsbG9jYXRlZCBpbiBSZW5kZXJB
cmVuYQorICAgICAgICBpdCBpcyByZXBvcnRlZCBhcyBoYXZpbmcgY3VzdG9tIGFsbG9jYXRvciBh
bmQgaXRzIG1lbW9yeSBpcyBub3QgY291bnRlZCBzZXBhcmF0ZWx5IGFzCisgICAgICAgIHdlIGNv
dW50IHRoZSB3aG9sZSBhcmVuYSBzaXplLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUNhY2hlZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oOgorICAg
ICAgICAoU3R5bGVDYWNoZWRJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
Q2FjaGVkSW1hZ2VTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRJbWFnZVNl
dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaDoKKyAgICAgICAgKFN0eWxlQ2FjaGVk
SW1hZ2VTZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclBy
b2dyYW0uaDoKKyAgICAgICAgKFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUdlbmVyYXRlZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJ
bWFnZS5oOgorICAgICAgICAoU3R5bGVHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlSW1hZ2UuaDoKKyAgICAgICAgKFN0eWxlSW1hZ2UpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oOgorICAgICAgICAoU3R5bGVQZW5k
aW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5oOgorICAgICAg
ICAoU1ZHRkVJbWFnZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50OjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50Lmg6CisgICAgICAgIChTVkdGb250RmFjZVVyaUVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Njcmlw
dEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChTVkdTY3JpcHRFbGVtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdV
c2VFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAoU1ZHVXNlRWxlbWVudCk6CisgICAg
ICAgICogeG1sL1hTTEltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMSW1wb3J0
UnVsZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
eG1sL1hTTEltcG9ydFJ1bGUuaDoKKyAgICAgICAgKFhTTEltcG9ydFJ1bGUpOgorICAgICAgICAq
IHhtbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV3WE1MRG9jdW1lbnRQYXJzZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHhtbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAg
ICAgKE5ld1hNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB4bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChYTUxEb2N1bWVudFBhcnNlcik6CisKIDIw
MTItMTAtMjggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFRoZSBzaGFkb3cgZWxlbWVudCBpcyBub3QgcmVwcm9qZWN0ZWQgdG8gYSBuZXN0ZWQgU2hh
ZG93Um9vdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzc3ZGIw
Y2E1MDBhNTgxNDQ0NTM4MjRlNmJmZWYyM2NmODY0ZDY1ZC4uZDZkZTkzNTYzMDgyYWI3OGZiN2Yy
YzliYzY0MjRiYzdlNzQxYmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fb2JqZWN0VHlwZShvd25l
ck9iamVjdFR5cGUpCiAgICAgICAgICwgbV9vYmplY3RTaXplKDApCiAgICAgICAgICwgbV9wb2lu
dGVyKDApCisgICAgICAgICwgbV9jdXN0b21BbGxvY2F0b3IoZmFsc2UpCiAgICAgeyB9CiAKICAg
ICB0eXBlZGVmIE1lbW9yeUNsYXNzSW5mbyBDbGFzc0luZm87CkBAIC02Niw2ICs2Nyw5IEBAIHB1
YmxpYzoKICAgICBzaXplX3Qgb2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6
ZTsgfQogICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVkUG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
cG9pbnRlcjsgfQogCisgICAgdm9pZCBzZXRDdXN0b21BbGxvY2F0b3IoKSB7IG1fY3VzdG9tQWxs
b2NhdG9yID0gdHJ1ZTsgfQorICAgIGJvb2wgY3VzdG9tQWxsb2NhdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9jdXN0b21BbGxvY2F0b3I7IH0KKwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVt
b3J5SW5zdHJ1bWVudGF0aW9uKCkgeyByZXR1cm4gbV9tZW1vcnlJbnN0cnVtZW50YXRpb247IH0K
IAogcHJpdmF0ZToKQEAgLTg2LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBNZW1vcnlPYmplY3RU
eXBlIG1fb2JqZWN0VHlwZTsKICAgICBzaXplX3QgbV9vYmplY3RTaXplOwogICAgIGNvbnN0IHZv
aWQqIG1fcG9pbnRlcjsKKyAgICBib29sIG1fY3VzdG9tQWxsb2NhdG9yOwogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1l
bW9yeU9iamVjdEluZm8qKTsKQEAgLTI3MSw2ICsyNzYsOCBAQCB2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50
YXRpbwogICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVt
ZW50YXRpb24sIG1fb3duZXJPYmplY3RUeXBlKTsKICAgICByZXBvcnRNZW1vcnlVc2FnZShtX3Bv
aW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKIAorICAgIGlmIChtZW1vcnlPYmplY3RJbmZvLmN1
c3RvbUFsbG9jYXRvcigpKQorICAgICAgICByZXR1cm47CiAgICAgY29uc3Qgdm9pZCogcG9pbnRl
ciA9IG1lbW9yeU9iamVjdEluZm8ucmVwb3J0ZWRQb2ludGVyKCk7CiAgICAgQVNTRVJUKHBvaW50
ZXIpOwogICAgIGlmIChwb2ludGVyICE9IG1fcG9pbnRlciAmJiBtZW1vcnlJbnN0cnVtZW50YXRp
b24tPnZpc2l0ZWQocG9pbnRlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAppbmRleCA4MTZjODZjNWE2MjRlM2Mx
N2FhNzFkYzZiYjhlNzdiY2Y2YWFhOTgxLi4yN2YyMWVlMjU2MTYwNWYxZTA2MGZhMmRmNTEyODE1
NmU5ZjNjMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAjaW5jbHVkZSA8
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg+CiAKQEAgLTUxLDYgKzUyLDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9jYWNoZWRTY3JpcHQtPnNvdXJjZVByb3ZpZGVyQ2FjaGVTaXplQ2hhbmdlZChkZWx0
YSk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OkNhY2hlZFJlc291cmNlU2NyaXB0KTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRT
Y3JpcHQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
cihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihj
YWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCksIFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0
aW9uKCksIGNhY2hlZFNjcmlwdC0+c291cmNlUHJvdmlkZXJDYWNoZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTI2NzM0ZmZjYmQ2NzQ5MjE0OWE4MGI5
MWY0ZDdmZjdkMWJmYzAyMi4uY2Q4YjNlNTQ5N2U5NTNmMTE0YTc5Mzc4OWExMzY3ZTFhYjUzNjc1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xOTAsNiAr
MTkwLDEyIEBAIHZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlCiAgICAgICAgIG1fb3duZXJWYWx1ZS0+
Y3Jvc3NmYWRlQ2hhbmdlZCgqcmVjdCk7CiB9CiAKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNy
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9vd25lclZhbHVlKTsKK30KKwogYm9vbCBDU1NDcm9zc2ZhZGVW
YWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0CiB7CiAgICAgaWYg
KG1fY2FjaGVkRnJvbUltYWdlICYmIG1fY2FjaGVkRnJvbUltYWdlLT5sb2FkRmFpbGVkT3JDYW5j
ZWxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAppbmRleCBjYjA3YWJj
M2I5ZDViNmNmOWQwNTcwMGE4MzNkMzVmZDNlYjJiOWI3Li44M2NhOWJiMDk1NTdiNDU4YTE3ZjJh
ZmM4MGUzNWQ1ZjU4ZTQyYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jv
c3NmYWRlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
aApAQCAtODMsNiArODMsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHZpcnR1YWwgfkNyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VD
aGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25z
dCBPVkVSUklERTsKICAgICAgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkg
PSByZWFkeTsgfQogICAgIHByaXZhdGU6CiAgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVlKiBtX293
bmVyVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCA1
ZTUyODlmNmQ1MjI3YWU5ZmQxY2NjYTI3NGI4MWNjMTJjZWQ5MWRiLi5jNWFlNDE1YWViYjY1NzY0
ZTJmNmU3NWYzYzliYTViNDY0MTgzZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNp
bmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgor
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogCiAjaWYgRU5BQkxFKFNWR19GT05UUykK
ICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCkBAIC05NCw2ICs5NiwxOSBAQCB2
b2lkIENTU0ZvbnRGYWNlU291cmNlOjpmb250TG9hZGVkKENhY2hlZEZvbnQqKQogICAgICAgICBt
X2ZhY2UtPmZvbnRMb2FkZWQodGhpcyk7CiB9CiAKK3ZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3RyaW5nKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2ZvbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmFjZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9mb250RGF0YVRhYmxlKTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRT
KQorICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnRm9udEZhY2VFbGVtZW50KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2V4dGVybmFsU1ZHRm9udEVsZW1lbnQpOworI2VuZGlmCit9CisKIFBhc3NSZWZQ
dHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRGYWNlU291cmNlOjpnZXRGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY0l0YWxpYywgQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCiB7CiAgICAg
Ly8gSWYgdGhlIGZvbnQgaGFzbid0IGxvYWRlZCBvciBhbiBlcnJvciBvY2N1cnJlZCwgdGhlbiB3
ZSd2ZSBnb3Qgbm90aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKaW5k
ZXggMDQ4OGQxMGQzMjYwMGU0N2RlZGQwZjcyOGMwMDM0Y2EwNGFkZjE1Yy4uOWE0NTkzZGRiZDRi
Y2IwYmYxZWZmNDAxODA0ZTEyMGViMTQwNDJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU291cmNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udEZh
Y2UoQ1NTRm9udEZhY2UqIGZhY2UpIHsgbV9mYWNlID0gZmFjZTsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGZvbnRMb2FkZWQoQ2FjaGVkRm9udCopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBDU1NGb250U2VsZWN0b3IqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaAppbmRleCAy
YTI1M2FiZDQzNzE4YTU2NzE1NjEwNWY1ZDIyODcwZDYxNTUzNjA5Li40Y2Q2OTZmZTIxNmQwNWIy
NmNkMmZjMzFlZWUxYTM2ODI5ZWJkNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ2Fj
aGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShT
VkcpICYmIEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0
MCwxMSBAQCBwdWJsaWM6CiAgICAgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UoQ2FjaGVkU1ZH
RG9jdW1lbnQqIGRvY3VtZW50KSA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpIHsgbV9kb2N1bWVudC0+
YWRkQ2xpZW50KHRoaXMpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2UoKSB7IG1fZG9jdW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsgfQogICAgIENhY2hlZFNWR0Rv
Y3VtZW50KiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKKyAgICB7CisgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6U1ZHKTsKKyAgICAgICAgaW5mby5h
ZGRNZW1iZXIobV9kb2N1bWVudCk7CisgICAgfQogcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMGJiYWNlMmQyMDYxMzA0NmIzODE1ZWVmNjczNTJhZjgy
YTAyYjMxYi4uOTAyYTdiOWM4Zjk3MzkzNDFmMjU1MGJmMTY0YjFkOTI4NTJkM2UyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTc2LDYgKzE3NiwxNCBAQAogCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
U2VxdWVuY2VNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM8Y29uc3QgV2ViQ29yZTo6UnVsZURh
dGEqPiB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEk+IHN0YXRpYyB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKEksIEksIE1lbW9yeUNsYXNzSW5mbyYpIHsgfQorfTsKKworfQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3NzMwN2VjMjQwMzJk
MjZjMDRmODUuLjk5MGYyY2ZkOTljYjNkYmNmM2U5NGJmYzE3YjliYTg5OWIyMjBlNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE0MCw0ICsxNDEsMTAgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcG9ydERl
c2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3QKICAgICBp
bmZvLmFkZE1lbWJlcihtX3N0eWxlU2hlZXQpOwogfQogCit2b2lkIFN0eWxlUnVsZUltcG9ydDo6
SW1wb3J0ZWRTdHlsZVNoZWV0Q2xpZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX293bmVyUnVsZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAppbmRleCBiN2RmMDJjZjFmMTI2NWFkM2Ez
OGI0ZGRjODBhOTAxNTg0NjhmMjQ5Li4xMWM0YzE3ZWQ3OWI1YmRlMTZkZGViZDljYWE3ZmU5MTA0
YjZjNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCkBAIC02NCw2ICs2NCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJSdWxlLT5zZXRDU1NT
dHlsZVNoZWV0KGhyZWYsIGJhc2VVUkwsIGNoYXJzZXQsIHNoZWV0KTsKICAgICAgICAgfQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OwogICAgIHByaXZhdGU6CiAgICAgICAgIFN0eWxlUnVsZUltcG9ydCogbV9vd25lclJ1bGU7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCBjNjAyYTExMjY2
M2YzOWU3MjMzMjk1OTAzZWNiYWJiYmRhNjdmYTk5Li5jNmRkNGJiYjUxOWUzZjFlMjBkOWFiMzg3
ZDk0ZTIxMDYzMTQ0MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Nj
cmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY1LDQgKzY2LDEyIEBAIHZvaWQgUGVuZGluZ1NjcmlwdDo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQogewogfQogCit2b2lkIFBlbmRpbmdTY3Jp
cHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZWxlbWVu
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2NhY2hlZFNjcmlwdCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9QZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Njcmlw
dC5oCmluZGV4IDM5OTY0NjI1ZTA4MmVjNGEwZjc5NTE0NmM4NmEyOTBjMTgxNWU4MTguLjRlY2Rh
M2Q0NDVmYWNmYWM5MmIzZmVlMDEzZjIxZjBmNDMwOWIyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRp
bmdTY3JpcHQuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZWRT
Y3JpcHQoQ2FjaGVkU2NyaXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGJvb2wgbV93YXRjaGluZ0Zv
ckxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmlu
ZGV4IGVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QuLjE0YTU0ODc4Zjdm
YzBlYmMzMDM3Mjc5ZTY0NWIwNDJjZmY3NDhiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
WFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiIC8vIGZvciBw
YXJzZUF0dHJpYnV0ZXMoKQogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpAQCAtMjQxLDYgKzI0Miwx
OSBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6c2V0WFNMU3R5bGVTaGVldChjb25zdCBT
dHJpbmcmIGhyZWYsIGNvbnN0IEtVUkwmIGJhcwogfQogI2VuZGlmCiAKK3ZvaWQgUHJvY2Vzc2lu
Z0luc3RydWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBOb2RlOjpyZXBvcnRN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Rhcmdl
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xv
Y2FsSHJlZik7CisgICAgaW5mby5hZGRNZW1iZXIobV90aXRsZSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9tZWRpYSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRTaGVldCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9zaGVldCk7Cit9CisKIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpw
YXJzZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzaGVldCkKIHsKICAgICBpZiAobV9pc0NTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAppbmRleCBlMzMxZTIx
ZGZlNWUzY2Q5NmNiMmZlNjI3ZmUwM2QxNDdiOGI0YjYxLi40MjRiOGI3MTMzY2ExNjAzNjgwMTlh
MDVjZThhZDRjZDc3MTUwMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFhTTFQpCiAg
ICAgdmlydHVhbCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25z
dCBLVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHNoZWV0KTsKICNlbmRpZgorICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAg
ICBib29sIGlzTG9hZGluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTExNTJmMmM3NjkxNmU5OWM3MTczODExYzIuLmZi
YWNiNzQxOTBiMTk3YTk3NzI2MDdiMjkwYzJhYTY0M2I0NTA1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTM1LDgg
KzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3Jl
TWVtb3J5VHlwZXM6OlBhZ2UgPSAiUGFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1v
cnlUeXBlczo6RE9NID0gIlBhZ2UuRE9NIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET01QYXJzZXIgPSAiUGFnZS5ET01QYXJzZXIiOwogTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyA9ICJQYWdlLkNTUyI7CiBNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyA9ICJQYWdlLkJpbmRpbmciOworTWVtb3J5T2JqZWN0
VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlNWRyA9ICJQYWdlLlNWRyI7CiAKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpNZW1vcnlDYWNoZVN0cnVjdHVyZXMgPSAiTWVtb3J5
Q2FjaGUuSW50ZXJuYWxTdHJ1Y3R1cmVzIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDYWNoZWRSZXNvdXJjZSA9ICJNZW1vcnlDYWNoZS5SZXNvdXJjZSI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCA3
NDc5ZTA1MzQxN2QwZWQwNmRhM2VmYWEyZDJhZDNmNzVkYTM5MTJlLi41OGRmODdiYmNjODQ0Njky
ZDg4ZjUxNTY4NDIwZTUzMDgyODljMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQzLDggKzQzLDEwIEBAIGNsYXNzIFdl
YkNvcmVNZW1vcnlUeXBlcyA6IHB1YmxpYyBQbGF0Zm9ybU1lbW9yeVR5cGVzIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBQYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIERPTTsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET01QYXJzZXI7CiAgICAg
c3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBl
IEJpbmRpbmc7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgU1ZHOwogCiAgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1v
cnlPYmplY3RUeXBlIENhY2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQu
Y3BwCmluZGV4IGI5ZDc2N2UzMDRiYzlhNWMwZDNjNjQwNzU5ODU4NzNhN2MzNGMyNGQuLjRlMWVj
M2QyMzI1ZTBmYWQxYmFkYjk3Y2Q3YWVmYmIxYWY0YzUzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudC5jcHAKQEAgLTc0LDYgKzc0LDggQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzMyLDYgKzMzNCwxNCBAQCB2b2lkIEhUTUxE
b2N1bWVudDo6cmVtb3ZlRXh0cmFOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQog
ICAgIHJlbW92ZUl0ZW1Gcm9tTWFwKG1fZXh0cmFOYW1lZEl0ZW1Db3VudHMsIG5hbWUpOwogfQog
Cit2b2lkIEhUTUxEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgRG9jdW1l
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbmFtZWRJdGVtQ291bnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4dHJhTmFtZWRJ
dGVtQ291bnRzKTsKK30KKwogdm9pZCBIVE1MRG9jdW1lbnQ6OnNldENvbXBhdGliaWxpdHlNb2Rl
RnJvbURvY3R5cGUoKQogewogICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSBjb21wYXRp
YmlsaXR5IG1vZGVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5kZXggZDM5ZjM5MmFh
YTQyYjgxOTM3NGE1YTFhYWFjMjI2NTEzYjQ1OTc1Zi4uNGQ2YTViNzUzOTY0NjVkMjBiNGZhYjll
YmY3MTgzYmZjODE1ZDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC03OSw2
ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUV4dHJhTmFtZWRJdGVtKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSk7CiAgICAgYm9vbCBoYXNFeHRyYU5hbWVkSXRlbShBdG9taWNTdHJp
bmdJbXBsKiBuYW1lKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBIVE1MRG9j
dW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcAppbmRleCA3Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMz
Li4wYjE3MzRkMWM4ZjRmMDc2NzYxMmU3MzZmNzQwZTFlMDkxMjk2MWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzk1LDYgKzM5NiwxOSBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c3RhcnRMb2FkaW5nRHlu
YW1pY1NoZWV0KCkKICAgICBhZGRQZW5kaW5nU2hlZXQoQmxvY2tpbmcpOwogfQogCit2b2lkIEhU
TUxMaW5rRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9saW5rTG9hZGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFNoZWV0KTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3NoZWV0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3VybCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90eXBlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3NpemVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlbEF0
dHJpYnV0ZSk7Cit9CisKIGJvb2wgSFRNTExpbmtFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAgICByZXR1cm4gYXR0cmlidXRlLm5h
bWUoKSA9PSBocmVmQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDBiNmM2Yzk5N2YyOGFl
MzQxMjUzNjM4M2UwYzAxMDQwOGQ1ZmZkMWEuLjczYjFjNzZiOTEyNTZmYzNlYmUwMjFmNmI5NDA2
MWJiMjkwYWE5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAtODgs
NiArODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpOwogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlMb2FkZWRTaGVldEFuZEFsbENyaXRpY2FsU3VicmVzb3VyY2Vz
KGJvb2wgZXJyb3JPY2N1cnJlZCk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFt
aWNTaGVldCgpOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGlua0xvYWRlZCgp
OwogICAgIHZpcnR1YWwgdm9pZCBsaW5rTG9hZGluZ0Vycm9yZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNGYyYzk1NjFmN2I0NzU5ZDUxMmIzM2Qw
MjljOGFiNWNlMmQ5ZTNjMy4uYWI5Yzc2NDE4Y2MzNzM3NzI5NDczYmIwYmM3Yzc1MzEzYWI3Mjkx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE3OCw0
ICsxNzgsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVF
bGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBhbHJl
YWR5U3RhcnRlZCgpKSk7CiB9CiAKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOworICAgIEhUTUxFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlP
YmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihlbGVtZW50KCkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggYzJjYTBkYjU2MWI2OTk0NWFj
YWU5YWZiZmRlYzFhNThlNTVhZjI3MC4uYzliMWUyMzUyOWNhMGM4OWM1MDA4Nzg0NjIyMTMxZmJm
MDdjMjU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUs
NiArNjUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgp
OwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiB9OwogCiB9IC8vbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcAppbmRleCA5MzVmNWQwNTdkZTU1ZTc3ZTM4MDlkOGJlNjYwNzYyY2Q0MzhjMDg3Li5jZjUx
ODc2MGQ5N2I0ZmM0YWE0M2JmZDNlNjhmOWYwNTEyYjE3NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJOZXN0
aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTU2OCw0ICs1NjksMTggQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVNjaGVk
dWxlZFRhc2tzKCkKICAgICAgICAgbV9wYXJzZXJTY2hlZHVsZXItPnJlc3VtZSgpOwogfQogCit2
b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyht
ZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTVBhcnNlcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbnB1dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90b2tlbml6
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2NyaXB0UnVubmVyKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3RyZWVCdWlsZGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWxvYWRTY2FubmVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2luc2VydGlvblByZWxvYWRTY2FubmVyKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3BhcnNlclNjaGVkdWxlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9z
b3VyY2VUcmFja2VyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3hzc0F1ZGl0b3IpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmlu
ZGV4IGNlMTA4ZjRiOTMyMDg4Y2QxNDhjMDVkNjM5YWM4NjlkYTk2ZWFiNzUuLjc2Y2JmYzhlMTMx
MzM1NTU2YjBkYzc3MmE1MzdiZjczMWVmNGJiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFNjaGVkdWxlZFRhc2tzKCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlc3VtZVNjaGVkdWxlZFRhc2tzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBlY2Fm
ZTAxMzZjODUzMjA4ZTZmODEzZmIxNWMzNDFjN2VhODdjYzhmLi4zODU3ZGY3MDUwMWNjYjA2ZTY3
Zjk4MTIxNWQwNTgxMmViMGQ0ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CiAKQEAgLTMxNiw2ICszMTcsMTUgQEAgdm9pZCBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkK
ICAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jlc291cmNlLT5pZGVudGlmaWVyKCksIG1fcmVz
b3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOwogfQogCit2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNv
dXJjZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGllbnQpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZG9jdW1lbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYWN0dWFsUmVxdWVzdCk7Cit9CisK
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuaAppbmRleCA4Nzk5MTlmZWNhNTVhMjFkY2NlM2JkMDFjYjlkZDk4YzU5ZjQxMDVjLi5lMjMy
NDk4ZGM3NDc5NWUxM2ZlZThjMzIwMTM0ZmIzYWFiOWUxY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCkBAIC04Miw2ICs4Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YURvd25sb2FkZWQoQ2FjaGVkUmVz
b3VyY2UqLCBpbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApp
bmRleCBjMTJiZTJmZjlkNDU1NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiLi44M2ZlMWNlNDZi
Y2ZhZDE2Y2YxZGU5NTQ5MTZiNzI5NGEzMDU5ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFn
ZUxvYWRlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaWYgRU5BQkxF
KFNWRykKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5oIgpAQCAtNDQxLDYgKzQ0MiwxNCBAQCB2
b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdFcnJvckV2ZW50cygpCiAgICAgZXJyb3JF
dmVudFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cygpOwogfQogCit2b2lkIEltYWdlTG9h
ZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
Y2xpZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2ZhaWxlZExvYWRVUkwpOworfQorCiB2b2lkIEltYWdlTG9hZGVyOjplbGVtZW50RGlkTW92
ZVRvTmV3RG9jdW1lbnQoKQogewogICAgIHNldEltYWdlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuaAppbmRleCBiYzg1OTE1YjllMDAwNjRlYmI1NTc1Y2NiNmVlZDhiZTFkYTc2Yzgy
Li40MzNmZjAwZTc5YTI3MzE1Y2Y5NTU3YTVhNzBmNjNmNzcwZjYzNDUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cygpOwogICAgIHN0YXRpYyB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0Vycm9yRXZlbnRzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9MaW5rTG9hZGVyLmNwcAppbmRleCBlNTBiMzc5ZDk2YmVkYTczMjkyNTQ2NDIwZWFjZjk4YmE1
NDNlMWI4Li44ZGU4MDZjMGUwNTIxOTllNDA5YWExOGQ0MmJmOWI4ZTBkYzM2ZjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAi
TGlua1JlbEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5
bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IAogI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKICNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUu
aCIKQEAgLTkwLDYgKzkxLDE4IEBAIHZvaWQgTGlua0xvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gMDsKIH0K
IAordm9pZCBMaW5rTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFk
ZFdlYWtQb2ludGVyKG1fY2xpZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZExpbmtS
ZXNvdXJjZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rTG9hZFRpbWVyKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xpbmtMb2FkaW5nRXJyb3JUaW1lcik7CisjaWYgRU5BQkxFKExJTktfUFJF
UkVOREVSKQorICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlcmVuZGVySGFuZGxlKTsKKyNlbmRpZgor
fQorCiBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJl
bEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIHNpemVzLCBjb25zdCBLVVJMJiBocmVmLCBEb2N1bWVudCogZG9jdW1l
bnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAppbmRleCBhMWE2M2YwM2ZlZGU5NmYx
NDYyYzc0NjA4MDRlNTMzNWJkNDFiNjMyLi4zY2U4NzU0ZTViMGJhN2I1YWFlMTZhYmNiNDE5MjE3
NDg2YzFmYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKQEAgLTU0LDYgKzU0LDcg
QEAgcHVibGljOgogCiAgICAgLy8gZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiAgICAg
dm9pZCByZWxlYXNlZCgpOwogICAgIGJvb2wgbG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0
ZSYsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBzaXplcywgY29uc3QgS1VSTCYs
IERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmlu
ZGV4IDdlMTRiNDMzNDljODUwYTE5NWI2NmMyNTkwNjEzNmQ4YjgwZjZmNDAuLjVmOGNlOWZlNzU4
MmZkOTM5OWUzN2JjYmQ0NGIzOGY4NDZjYTIzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTEzLDYg
KzExNCwxNyBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlKQogICAgIHByb2Nlc3NOZXdDdWVEYXRhKHJlc291cmNlKTsKIH0KIAor
dm9pZCBUZXh0VHJhY2tMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY2xpZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1ZVBhcnNlcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRDdWVEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY3VlTG9hZFRp
bWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Nyb3NzT3JpZ2luTW9kZSk7Cit9CisKIHZvaWQg
VGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9saWN5UHJldmVudGVkTG9hZCgpCiB7CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9z
cy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuIikpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIu
aAppbmRleCA3NDMzNGY5MDY0NmNkZmQ0NThmOWMyM2Y2MmYwODFmNDg3NWI4YzNjLi4zYTcxNTlj
YzUxY2NhZjVlMTNlYmFiYzZkODY5NTdkZmRiYTQwMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RleHRUcmFja0xvYWRlci5oCkBAIC03MCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ2Fj
aGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ2FjaGVkUmVzb3Vy
Y2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OwogICAgIAogICAgIC8vIFdlYlZUVFBhcnNlckNsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBuZXdDdWVzUGFyc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCmluZGV4IGZmMWRlYWNjYTBjMDlhMDNkNjUxMWYxZWM3
NzYzMzlkNmZiOTZmNjAuLjczZWNkNDM5YzE2ZWViODUwOTQ2MzM4MjY3OTA0OWRmOTViYWQzYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNs
aWVudC5oCkBAIC01Miw2ICs1Miw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnRUeXBlIGV4cGVjdGVkVHlwZSgpIHsgcmV0dXJuIEJhc2VSZXNvdXJjZVR5cGU7IH0K
ICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNsaWVudFR5cGUo
KSBjb25zdCB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQogCisgICAgdmlydHVhbCB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCA9IDA7CisKIHByb3RlY3Rl
ZDoKICAgICBDYWNoZWRSZXNvdXJjZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3
MGYxNjQyNTU3Zjc0NS4uNGJhMGMyNjViMmNmNTlkNzlhMDk1MzIxYTJkNWNlNGNiOGY0ZDE0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMDMsNCArMTA0LDExIEBAIHZvaWQgSWNvbkxvYWRlcjo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIHN0b3BMb2FkaW5nKCk7CiB9
CiAKK3ZvaWQgSWNvbkxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9mcmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaAppbmRleCA2NWU4YmQ1MmYy
NzA0MjEzNWM1YWM3ODMxYTU3NGRlMmRkZWE5ZGM0Li42MzU5MWI1M2EyMjQ5M2RjOTA4MTM5YjAx
NTk4OGM4ZGQ4MDFkNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5o
CkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSWNvbkxv
YWRlcihGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSopOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CiAKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRl
eCBkODcyZmYwZDEyMGY5ZTI5ZWEyZDQwNDU3N2Y0MThmMTBjMzI0MzM1Li5jYmZlOWVmNjhmOGM2
OThiMzgyZDE4YTU3MTZlMDcyMjQ5MDhkNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorTWVtb3J5T2JqZWN0VHlwZSBQbGF0
Zm9ybU1lbW9yeVR5cGVzOjpDbGlwYm9hcmQgPSAiUGFnZS5DbGlwYm9hcmQiOwogTWVtb3J5T2Jq
ZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpJbWFnZSA9ICJQYWdlLkltYWdlIjsKIE1lbW9y
eU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0
cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggNDZhODRiYmQ4NzViN2ZjNjUwY2YwNTY5MjgyYjRjZTIwYTQw
ZWU3My4uOGQ0ZmI3NWU3ZmI3Zjg2NGMwNTA5OTEyNWIwYjIyZWE2MDg0ZDhiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIHVzaW5nIFdURjo6TWVtb3J5T2JqZWN0VHlwZTsKIAog
Y2xhc3MgUGxhdGZvcm1NZW1vcnlUeXBlcyB7CiBwdWJsaWM6CisgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgQ2xpcGJvYXJkOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEltYWdlOwog
ICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExvYWRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmNw
cAppbmRleCBhZGUyMmVmNDdlYmYxMDQ0ZTIwYWE2YzllMjY2NDlhN2VmMjA0NTRkLi5hY2Q2MDY5
ZGJhNzQ0NmYzNmQ0YWQ3ZmVmZTBlZTkxZDAzNzAxM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5jcHAK
QEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQ2xpcGJvYXJkLmg+CiAKQEAgLTE0MCw0
ICsxNDEsOSBAQCB2b2lkIENsaXBib2FyZEJsYWNrQmVycnk6OnNldERyYWdJbWFnZUVsZW1lbnQo
Tm9kZSosIGNvbnN0IEludFBvaW50JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lk
IENsaXBib2FyZEJsYWNrQmVycnk6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6Q2xpcGJvYXJkKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaAppbmRleCAzN2RhNTE0YjA3
NTE0MGU5MzA3NDAzODZiNzdiNjU4Nzk0Njg2ZDE0Li42MGIyNzE2MWQzMmJlNWExMDIxZjFjYmUy
YjVjZjU5N2E4NDllYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaApAQCAtNTIsNiArNTIsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IElu
dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSosIGNv
bnN0IEludFBvaW50Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIENsaXBib2FyZEJsYWNrQmVy
cnkoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9hcmRUeXBlKTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAK
aW5kZXggZjU4ZWJjZWY5Y2NjMWFlOTk5YTY0YzBhNDQ4OTUwMjI3OTU1YjFiMS4uYTE3YmNkMWVm
NDcxMjdjNzI5MzRlNDc1NGFjNGVkZjZiMTVjN2UwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgogI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCkBAIC00NjUsNCArNDY2LDExIEBAIFBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZENocm9taXVtOjppdGVtcygp
CiB9CiAjZW5kaWYKIAordm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVz
OjpDbGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YU9iamVjdCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9mcmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5o
CmluZGV4IGU0MTgzOGRhOTY0YjRhZjM0ZjFkOTc3M2I0MDgzZTE0OGNlODc1N2EuLjE3MGJiNjU4
NzcyNDYxNTYzYjQxOTdkOWJiNDQ0YjQ2MjBjMjk2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtMTA4LDYgKzEw
OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICBGcmFtZSogZnJhbWUo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIENsaXBib2FyZENocm9taXVtKENsaXBib2FyZFR5cGUsIFBhc3NSZWZQ
dHI8Q2hyb21pdW1EYXRhT2JqZWN0PiwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCmluZGV4IGRk
NGFjMjBjZmM5YWYxM2IxZmRlNWQyNmRjNGUyMzBhMGEwYjIxY2UuLjcwYzkzMmZjOWY1MGI1ZDc1
MjhkMTljOWNmZDI1ZWZkNDE0NTIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9DbGlwYm9hcmRFZmwuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgi
CiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTEsNSArMTUyLDkg
QEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkRWZsOjppdGVtcygp
CiB9CiAjZW5kaWYKIAordm9pZCBDbGlwYm9hcmRFZmw6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6Q2xp
cGJvYXJkKTsKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NsaXBib2FyZEVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVm
bC5oCmluZGV4IDkwNGViNTIxN2I3ZmU3NGI1ZWQzODQzYTczZDkzZWQxNTRlYTU3YzguLjg1ZjI0
NjU4ZjkxNTM2ZDNlMDk5MzFjNjI3YTYzNWE1NGIwZDNlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gaXRlbXMoKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5LCBDbGlwYm9hcmRUeXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9D
bGlwYm9hcmRHdGsuY3BwCmluZGV4IDFlZWRiMzJkOWYwOTRiNjhmZDc4ZjkwYjZkOGRjYzE2Njhh
NzNjYmIuLjI5Zjc4OWE1NjZlNTE0MTllZWE4MjY2YjE5MzQ0YTg4ZWI3OWZjMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0zMzMsNCAr
MzM0LDEyIEBAIGJvb2wgQ2xpcGJvYXJkR3RrOjpoYXNEYXRhKCkKICAgICAgICAgfHwgbV9kYXRh
T2JqZWN0LT5oYXNVUklMaXN0KCkgfHwgbV9kYXRhT2JqZWN0LT5oYXNJbWFnZSgpOwogfQogCit2
b2lkIENsaXBib2FyZEd0azo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpDbGlwYm9hcmQpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZGF0YU9iamVjdCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Ns
aXBib2FyZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSk7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuaAppbmRleCBlZTlkNjNjZTRmMmNlOGJj
MTEyZDBmMjA5M2VlNTg4MzkzMjI4ZTM1Li41OTdlMTk3MWU5ZWY5YjVhNWM3NWU3MGI3NGFiYjA1
ZGRlNDViNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJv
YXJkR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5o
CkBAIC03NSw2ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0
cjxEYXRhT2JqZWN0R3RrPiBkYXRhT2JqZWN0KCkgeyByZXR1cm4gbV9kYXRhT2JqZWN0OyB9CiAg
ICAgICAgIEd0a0NsaXBib2FyZCogY2xpcGJvYXJkKCkgeyByZXR1cm4gbV9jbGlwYm9hcmQ7IH0K
IAorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2xpcGJvYXJkR3RrKENsaXBib2Fy
ZEFjY2Vzc1BvbGljeSwgR3RrQ2xpcGJvYXJkKiwgRnJhbWUqKTsKICAgICAgICAgQ2xpcGJvYXJk
R3RrKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPiwgQ2xp
cGJvYXJkVHlwZSwgRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DbGlwYm9hcmRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9h
cmRNYWMuaAppbmRleCAzMDVhOTJmZjk4YjIxZWI1ZDNjMWIyYmMwMTY0ZjM5MWM3MjI4MDljLi5m
MmJiMGJiYWFhNGRhNGVkYzhmOWFhNDQzMzhlMmVmM2Q3NmM2ZmI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoK
ICAgICBOU0ltYWdlICpkcmFnTlNJbWFnZShOU1BvaW50JikgY29uc3Q7IC8vIGxvYyBjb252ZXJ0
ZWQgZnJvbSBkcmFnTG9jLCBiYXNlZCBvbiB3aG9sZSBpbWFnZSBzaXplCiAgICAgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSgpIHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KIAorICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CisKIHByaXZhdGU6CiAgICAgQ2xpcGJvYXJkTWFjKENsaXBib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJvYXJkQ29udGVu
dHMsIEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9D
bGlwYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFj
Lm1tCmluZGV4IGJkODgwMjA0NDFiMGU5YWUwMGJhZGFmMzZiMmY0ZjVhNmE2YmVhZTcuLjU3YjQ1
YzhiNzU0MmZhMWY4NDc3ZTY2ZTg2ZjEwY2QzNmI2MGJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCAi
UGFnZS5oIgogI2ltcG9ydCAiUGFzdGVib2FyZC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFN0cmF0
ZWd5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2ltcG9y
dCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgogI2ltcG9y
dCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNDM3LDQgKzQzOCwxMSBAQCBOU0ltYWdl
ICpDbGlwYm9hcmRNYWM6OmRyYWdOU0ltYWdlKE5TUG9pbnQmIGxvYykgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCit2b2lkIENsaXBib2FyZE1hYzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpD
bGlwYm9hcmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZnJhbWUpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9DbGlwYm9hcmRRdC5jcHAKaW5kZXggNjIxMmY1OGI4ZjNlOGY1OGNmN2JmZTljOTc3NTNlMzNi
MGU3OTRiZi4uMjVkMDNiNDg4ZmYzNmFjMDRjYzIwZTkzMTNhNTA0M2I2NTgzMGYwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNjQsNCArMzY1LDkgQEAg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkUXQ6Oml0ZW1zKCkKIH0K
ICNlbmRpZgogCit2b2lkIENsaXBib2FyZFF0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKaW5kZXggYjgxYzE0
OGVhMTQwM2MwMzJlOThjYjY3ZWY5NjZkNTg2OTcxZGIyZS4uMDEyMmU1YzNlY2JhY2EyYTY4NWE3
ZGZkZTRjOWE4ZTY5NTc0ZTU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ2xpcGJvYXJkUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5oCkBAIC03OCw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgQ2xpcGJvYXJkUXQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBjb25zdCBRTWltZURhdGEq
IHJlYWRhYmxlQ2xpcGJvYXJkLCBGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IGVmNWJiMzA0ZDIzZTk0OTUwMWY5MWI3Zjk4NzI1
YzgyZmEwNmIzZGEuLjNmZGRiYTg5ZDNiMWE4NGY0OGYyMjg5Yjk1MGUxNzk4MmQwMTIxNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCkBAIC00NCw2
ICs0NCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgpAQCAtNTMsNiArNTQsNyBAQAogI2lu
Y2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1ZGUgPHNobHdhcGkuaD4KICNpbmNsdWRlIDx3aW5pbmV0
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODEyLDQgKzgxNCwxMyBAQCB2b2lkIENsaXBi
b2FyZFdpbjo6c2V0RXh0ZXJuYWxEYXRhT2JqZWN0KElEYXRhT2JqZWN0ICpkYXRhT2JqZWN0KQog
ICAgIG1fZGF0YU9iamVjdCA9IGRhdGFPYmplY3Q7CiB9CiAKK3ZvaWQgQ2xpcGJvYXJkV2luOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OkNsaXBib2FyZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kYXRh
T2JqZWN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dyaXRhYmxlRGF0YU9iamVjdCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9kcmFnRGF0YU1hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mcmFt
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uaAppbmRleCAxMTRiZDQwOTY5YzhiNjQ2NTc1NmM0MmVkMzgxODY3
OTBmYzg0NDhmLi4wNTQ4YmUyMmFhZTc1YjUzYzIyZTJlYWVkMThkMjAwNzhlODZmNzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5oCkBAIC04Miw2ICs4Miw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RXh0ZXJuYWxEYXRhT2JqZWN0KElEYXRhT2JqZWN0
ICpkYXRhT2JqZWN0KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ2xpcGJvYXJkV2luKENsaXBi
b2FyZFR5cGUsIElEYXRhT2JqZWN0KiwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwog
ICAgIENsaXBib2FyZFdpbihDbGlwYm9hcmRUeXBlLCBXQ0RhdGFPYmplY3QqLCBDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3ksIEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93eC9DbGlwYm9hcmRXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9h
cmRXeC5jcHAKaW5kZXggZGNkYjk2NjM2ZTFhOTFiMTM3NGU3NGViZDkzZDI0YzYxNjI3MzNjMS4u
NDgyYjU3YmUyY2Q4ZjYxNGE2MWE2ZTA5MGM1NzRkYzY4NjU4OWUwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
YXN0ZWJvYXJkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTEzOSw2ICsxNDAsMTEgQEAgYm9vbCBDbGlwYm9hcmRXeDo6aGFzRGF0
YSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIENsaXBib2FyZFd4OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpDbGlwYm9h
cmQpOworfQorCiB2b2lkIENsaXBib2FyZFd4Ojp3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6OlN0
cmluZyYgdGV4dCkKIHsKICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0
ZVBsYWluVGV4dCh0ZXh0LCBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxhY2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmgKaW5kZXggMzdiMWZkZDhhMDZjZjE4ZWVh
MDZiOTA0NjZlMDIwY2EyYWI3YWFhZC4uNDgxNjI1YzFiMDg5MWZmOWE3MzljYTYzZGU5MDA0YWVm
YmUxOTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJk
V3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5oCkBAIC02
NCw2ICs2NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wg
aGFzRGF0YSgpOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICBDbGlwYm9hcmRX
eChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIENsaXBib2FyZFR5cGUpOwogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwCmluZGV4
IDE5MGRlNjFiZTVjMWMxNGEzZTU2YzRhYTliMWRkYTBmNmQ5M2U0NDAuLmM5ZWYzMjVkMDk2NTQy
OTFkZWIyNDFjNGRlZDdhMzJhZGFhMTMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwCkBAIC0zNCw2ICszNCw4IEBACiAKICNp
bmNsdWRlICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShTVkcpCiAjaW5j
bHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKQEAgLTIwMSw2ICsyMDMsMjEgQEAgdm9pZCBSZW5k
ZXJMYXllckZpbHRlckluZm86OnJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMoKQogfQogI2VuZGlm
CiAKK3ZvaWQgUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVy
VHJlZVVzZWQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fcmVuZGVyZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGlydHlTb3VyY2VSZWN0KTsK
KyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRDdXN0
b21GaWx0ZXJQcm9ncmFtcyk7CisjZW5kaWYKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGluZm8uYWRk
TWVtYmVyKG1faW50ZXJuYWxTVkdSZWZlcmVuY2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4
dGVybmFsU1ZHUmVmZXJlbmNlcyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oCmluZGV4IGNmMmJlMjMyZWMyZWU4MGVj
YjRmZGJmMDY1ZjYyOThjN2U1NTE3NDguLjBhNTdjMjBkNDFiODJhZjg0YTYwYTJiZDJhOTE4YTIw
YWRmZTc0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckZpbHRlckluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJG
aWx0ZXJJbmZvLmgKQEAgLTkxLDYgKzkxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVm
ZXJlbmNlRmlsdGVyQ2xpZW50cygpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIFJl
bmRlckxheWVyRmlsdGVySW5mbyhSZW5kZXJMYXllciopOwogICAgIH5SZW5kZXJMYXllckZpbHRl
ckluZm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXgg
OThkMGMzZGRmNjRjNDdkZDFmNDg3ZDI1NDBlZWJhN2M4ZDdhZDNhMi4uMTE1NGMzOTFhZGQxZDU0
MTYxODc2ZmE2OTY4ZDBiNmU2YmJmNGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgor
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAt
MjgzNyw2ICsyODM4LDExIEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojp3aWxsUmVuZGVySW1hZ2UoQ2Fj
aGVkSW1hZ2UqKQogICAgIHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSAmJiAhZG9j
dW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigpOwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKK3sKKyAgICBtZW1vcnlPYmplY3RJbmZvLT5zZXRDdXN0b21BbGxvY2F0b3IoKTsKK30KKwog
aW50IFJlbmRlck9iamVjdDo6bWF4aW1hbE91dGxpbmVTaXplKFBhaW50UGhhc2UgcCkgY29uc3QK
IHsKICAgICBpZiAocCAhPSBQYWludFBoYXNlT3V0bGluZSAmJiBwICE9IFBhaW50UGhhc2VTZWxm
T3V0bGluZSAmJiBwICE9IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDg3YTU4ZjRkYTY2NGIwZThlYWUzMGY0YjJmZjUw
N2Y3Yjc1YjllZTIuLmVjODU2MmQwZmQ4NWViMjdhNjBkYzg3YWU4Mzc2YTM4OWY1NjczOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTIxMCw2ICsyMTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGls
ZHJlbigpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxk
TGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCisKICAgICBSZW5k
ZXJPYmplY3QqIG5leHRJblByZU9yZGVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0
SW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRoaW4pIGNvbnN0OwogICAgIFJl
bmRlck9iamVjdCogbmV4dEluUHJlT3JkZXJBZnRlckNoaWxkcmVuKCkgY29uc3Q7CkBAIC05MTks
NiArOTIwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBl
ZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApIHsgfQogICAgIHZpcnR1YWwgYm9vbCB3aWxs
UmVuZGVySW1hZ2UoQ2FjaGVkSW1hZ2UqKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICB2b2lkIHNlbGVjdGlvblN0
YXJ0RW5kKGludCYgc3BvcywgaW50JiBlcG9zKSBjb25zdDsKICAgICAKICAgICB2b2lkIHJlbW92
ZSgpIHsgaWYgKHBhcmVudCgpKSBwYXJlbnQoKS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcApp
bmRleCA0ZTM1M2U5OWFmNTMwNzFmY2YxN2ZmZWQ3ZTNkYTA5YWJiMzE1OTFmLi44MjU3ZTBjYzQ0
ODg1NzczNGE2M2Y5OWUxNTQ2ODQ1MGVjMTViZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgor
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xMDYsNCArMTA3LDEwIEBAIFBhc3NSZWZQdHI8SW1hZ2U+IFN0eWxlQ2Fj
aGVkSW1hZ2U6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmCiAg
ICAgcmV0dXJuIG1faW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogfQogCit2b2lk
IFN0eWxlQ2FjaGVkSW1hZ2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOworICAgIGluZm8uYWRk
TWVtYmVyKG1faW1hZ2UpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaAppbmRleCAwOTQzYjBlNjdiMmY3MmU3YjJmNjJlOTZh
ZDlhMDM5YjAyZGQ3Y2IxLi5kMTg5YTI4MjI3Y2UwYzc5NGRhMTcwODc0YzE0YTVhMmE4NGY4NjIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZElt
YWdlLmgKQEAgLTU2LDcgKzU2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGll
bnQoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVj
dCosIGNvbnN0IEludFNpemUmKSBjb25zdDsKLSAgICAKKworICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgU3R5bGVDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3Bw
CmluZGV4IGMwYTlmNWUyZjAzOWUwODdmMDlkZjJmOGU3OWM3NTc3NTVhNTg0ZTEuLmZmYTRiMjNj
YWM3NWYzODA4YzQwZjk2MzZkMjNkNDQ1Nzg0NTM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTE2LDYg
KzExNywxNCBAQCBQYXNzUmVmUHRyPEltYWdlPiBTdHlsZUNhY2hlZEltYWdlU2V0OjppbWFnZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaQogICAgIHJldHVybiBtX2Jlc3RGaXRJ
bWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcik7CiB9CiAKK3ZvaWQgU3R5bGVDYWNoZWRJ
bWFnZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9i
ZXN0Rml0SW1hZ2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2VTZXRWYWx1ZSk7Cit9CisK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKENTU19JTUFHRV9T
RVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNo
ZWRJbWFnZVNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVk
SW1hZ2VTZXQuaAppbmRleCA3ZTdjYWZjZDIxOWNjMTkwZDg0NjZlZGQzNjJjMmNhMzllMjYwMGE3
Li5kZDMzMTA4MmJkYzcwZDkwOWY0MGMyNjgwZDZlY2E5MzZmNmEwZWI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0LmgKQEAg
LTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1h
Z2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgZmxv
YXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZhY3Rvcjsg
fQogICAgIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgU3R5bGVDYWNoZWRJbWFnZVNldChDYWNoZWRJ
bWFnZSosIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IsIENTU0ltYWdlU2V0VmFsdWUqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmls
dGVyUHJvZ3JhbS5oCmluZGV4IDUzOGE1MmVmYWFkYWUwZjBhYWY1OTNmZDVjMzM0ODA4ZTA4ZDBk
MTQuLmQxYTlmZmYzNmNhOWFmYzMzNTRlYjU4NWUxNTlhMGFjODc4ZmJiOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQ
cm9ncmFtLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKICNp
bmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIK
KyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L0Zhc3RBbGxvY0Jhc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTE0LDYgKzExNSwx
NSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc0xvYWRlZCgpKQogICAgICAgICAgICAgbm90aWZ5
Q2xpZW50cygpOwogICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX3ZlcnRleFNoYWRlcik7Cisg
ICAgICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhZ21lbnRTaGFkZXIpOworICAgICAgICBpbmZvLmFk
ZE1lbWJlcihtX2NhY2hlZFZlcnRleFNoYWRlcik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2FjaGVkRnJhZ21lbnRTaGFkZXIpOworICAgIH0KICAgICAKICAgICBDYWNoZWRTaGFkZXIqIGNh
Y2hlZFZlcnRleFNoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyID8gbV92ZXJ0
ZXhTaGFkZXItPmNhY2hlZFNoYWRlcigpIDogMDsgfQogICAgIENhY2hlZFNoYWRlciogY2FjaGVk
RnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVyID8gbV9mcmFn
bWVudFNoYWRlci0+Y2FjaGVkU2hhZGVyKCkgOiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggMWEyYmQz
NzY2ZDI2MGFjZGRiNWIxMzc4Y2YyMmVhNDE4ZjAwYzFkYS4uOWEyY2VjMzg2MmFlOTdiNTgxMDdk
NDcxNGExMWIyY2ZlMWQ1ZGI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC04OCw0ICs4
OSwxMSBAQCBQYXNzUmVmUHRyPEltYWdlPiBTdHlsZUdlbmVyYXRlZEltYWdlOjppbWFnZShSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaQogICAgIHJldHVybiBtX2ltYWdlR2VuZXJh
dG9yVmFsdWUtPmltYWdlKHJlbmRlcmVyLCBzaXplKTsKIH0KIAordm9pZCBTdHlsZUdlbmVyYXRl
ZEltYWdlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2lt
YWdlR2VuZXJhdG9yVmFsdWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGFpbmVyU2l6ZSk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGQ1MTM4NDA1OWQxZDllNGU4MzE2MjBjNDA5NTUzZmRmZTYy
NjU5N2YuLjk2MmEwYjdkN2Q5YWUzYjZlN2M5ZmRlMWYyZGIzNTM5MWUxMTBkZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2Uu
aApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChS
ZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlck9iamVj
dCopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgogICAgIFN0eWxlR2Vu
ZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxDU1NJbWFnZUdlbmVyYXRvclZhbHVlPik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaAppbmRleCAxZmM4ZTk3NTk2NmFk
Mjk1NWU1NmYwYmM2ZmEzMmI5NGE5MTA4ZjliLi5iYTRkZTRlYTg4Njk0OTg3YTA5NDc5NGQzOWUx
M2YyMTcwZTVjZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUlt
YWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTY0LDYgKzY1LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBm
bG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCisgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCA9IDA7CisK
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNDYWNoZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNDYWNoZWRJbWFnZTsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc1BlbmRpbmdJbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNQZW5kaW5nSW1hZ2U7IH0KICAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgaXNHZW5lcmF0ZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZW5lcmF0ZWRJbWFnZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGlu
Z0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1h
Z2UuaAppbmRleCA2YmFkYzkyMzgyZmEzYjI4NGVjYWRiNDU1NzU2MzMzNjhiMDk3Y2M0Li4xY2M5
NTcyOTQ2ZDUwZjhmMDIwMjI2ZTMxNTBhM2Y1MDc5MmRmNzUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlSW1hZ2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjYsNiArNjcsMTIgQEAgcHVibGlj
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQorCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Cisg
ICAgICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsdWUpOworICAgIH0KICAgICAKIHByaXZhdGU6CiAg
ICAgU3R5bGVQZW5kaW5nSW1hZ2UoQ1NTVmFsdWUqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3
Mzk2ODg1N2ViYS4uMGQwZTViZmNjZjQ3Y2Y0ZmE3NzRhYjViNzBmYmU4MDVhNjg3OTJhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwMSw2
ICsyMDIsMTIgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKQogICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50
UmVzb3VyY2VJbnZhbGlkYXRpb24ocGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAordm9pZCBTVkdG
RUltYWdlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlNWRyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9jYWNoZWRJbWFnZSk7Cit9CisKIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUlt
YWdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciogZmlsdGVyKQogewog
ICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAppbmRleCBkZTYwNjQyMjcwOTgxMzZjMzc1MzRiYzhkY2MxNTQ5YmRhMGQxNGNmLi5kYzdhMjhh
M2NkNzdkZmE4ZTQ4ZmZhNDExNjMyNDNmZjMxNGYxMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuaApAQCAtNTIsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VS
TD4mKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChT
VkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNk
ZDM3NDhhOGIuLjY4NjJmMmJiMDEwYWQzNDk5OWQ5NjI5Y2VjMDhjY2NmYzUzZWVmNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTg5LDYgKzkwLDEzIEBAIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgU1ZHRm9udEZhY2VVcmlFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyCiAgICAgcmV0
dXJuIFNWR0VsZW1lbnQ6Omluc2VydGVkSW50byhyb290UGFyZW50KTsKIH0KIAordm9pZCBTVkdG
b250RmFjZVVyaUVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpTVkcpOworICAgIFNWR0VsZW1l
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2FjaGVkRm9udCk7Cit9CisKIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2Fk
Rm9udCgpCiB7CiAgICAgaWYgKG1fY2FjaGVkRm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxY2MzZGQ5YzQ1MzFhNGY2ZDQ3YmQ0OTliYThmNmQ4
MmQ2NTgzYmQyLi40OTllMzZmY2U4NzM2MWFiNDYwMTAzNjlhZjU0NGZlM2QzOTIwZmVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC00NCw2ICs0NCw4
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5n
ZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNo
YW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2aXJ0dWFsIEluc2VydGlv
bk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklE
RTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CisKICAgICB2b2lkIGxvYWRGb250KCk7CiAKICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRGb250PiBtX2NhY2hlZEZvbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggZGUyYTU4Y2Y1MmRjZWFjYzZiNTZkZjk3NjQwYWQzNmVhZWY2NGRk
Ny4uNjkzYmIxZTlmMjE3NWMzZjQ4NjhhNjRmY2RkZDcxMzRiMjEyZmIyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMTEsNiArMjEyLDEzIEBAIFBh
c3NSZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0
dHJpYnV0ZXNBbmRDaGlsZHJlbigpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRF
bGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7
CiB9CiAKK3ZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlNWRyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90eXBlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z0xvYWRF
dmVudFRpbWVyKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDA1NTA2ZWM3NWRiYzNiNzJmNzlkZTM4ODRhMjYw
YWM1MTM3OTZjMGIuLmIwMjg3YzZlOTVlMGY4ODQ4MDE0ZmI3MDIzYjc3NTUwNTkzODMyOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtNzEsNiArNzEsOCBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICAvLyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkCiAgICAgdmlydHVhbCB2b2lkIHNldEhhdmVGaXJlZExvYWRFdmVudChi
b29sIGhhdmVGaXJlZExvYWRFdmVudCkgeyBTY3JpcHRFbGVtZW50OjpzZXRIYXZlRmlyZWRMb2Fk
RXZlbnQoaGF2ZUZpcmVkTG9hZEV2ZW50KTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1BhcnNlcklu
c2VydGVkKCkgY29uc3QgeyByZXR1cm4gU2NyaXB0RWxlbWVudDo6aXNQYXJzZXJJbnNlcnRlZCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNjA0NmVjNjFiNzRmYzEy
ZWIxM2FjMjA3MjQ0YTZjNjgxNjU0NzQ3Ni4uMGNmZjA0OGE1NTM5MGU2MjMyY2YzMTFkZThiZDA0
NmU1MDJlOTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTeW1ib2xF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYkNvcmVN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVk
ZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJYTUxTZXJpYWxpemVyLmgiCkBAIC05
NjEsNiArOTYyLDE0IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsKIH0KIAordm9pZCBTVkdVc2VFbGVtZW50OjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RhcmdldEVsZW1lbnRJ
bnN0YW5jZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWREb2N1bWVudCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9zdmdMb2FkRXZlbnRUaW1lcik7Cit9CisKIGJvb2wgU1ZHVXNlRWxlbWVu
dDo6Y2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9hZGluZygpCiB7CiAgICAgaWYgKG1fY2FjaGVkRG9j
dW1lbnQgJiYgbV9jYWNoZWREb2N1bWVudC0+aXNMb2FkaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuaAppbmRleCA0NmVlOGIzNDEyYTBkODE5MTllNTIzNmJiMGE1MTk3NWMwYTJiNTdm
Li45OWFiODdiZjJiMDE2OGY2ZTQ3NTg2OTE4ODNmY2UyZGYwY2MzMmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTExNSw2ICsxMTUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogICAgIERvY3VtZW50KiBy
ZWZlcmVuY2VkRG9jdW1lbnQoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICAvLyBTVkdUZXN0cwogICAg
IHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpz
eW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVp
cmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hT
TEltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmlu
ZGV4IGU2Mjk1OWU5OWIwZDBkZTM3ZDg2ZDU1NTU3Yzk2OThjZTk4MzgxMzguLmRmMWE5NGIzMzJj
ZmNlMDQxMDI1NTViN2M0MTdkM2Q2ZGRmNTFjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0
UnVsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIlhTTFN0eWxlU2hlZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjgs
MTUgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpzZXRYU0xTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYg
aHJlZiwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY28KICAgICAgICAgcGFyZW50LT5jaGVja0xvYWRl
ZCgpOwogfQogCit2b2lkIFhTTEltcG9ydFJ1bGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcGFyZW50U3R5bGVTaGVldCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zdHJIcmVmKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlU2hlZXQpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fY2FjaGVkU2hlZXQpOworfQorCiBib29sIFhTTEltcG9ydFJ1bGU6Omlz
TG9hZGluZygpCiB7CiAgICAgcmV0dXJuIChtX2xvYWRpbmcgfHwgKG1fc3R5bGVTaGVldCAmJiBt
X3N0eWxlU2hlZXQtPmlzTG9hZGluZygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuaApp
bmRleCAzNTBjZGQ5YjE2NTM0YjYxN2YwNjI3NjI5M2M0NzQwZTJjZjZiMTllLi41N2JhZWNjNDEx
NTczN2VkMTM3NTAwOTI5Y2QxYTRiYWMxOTIwMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMSW1wb3J0UnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRS
dWxlLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBYU0xJbXBvcnRSdWxlKFhTTFN0
eWxlU2hlZXQqIHBhcmVudFNoZWV0LCBjb25zdCBTdHJpbmcmIGhyZWYpOwogCiAgICAgdmlydHVh
bCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHNoZWV0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAogICAgIFhTTFN0eWxlU2hl
ZXQqIG1fcGFyZW50U3R5bGVTaGVldDsKICAgICBTdHJpbmcgbV9zdHJIcmVmOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9OZXdYTUxEb2N1bWVudFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA2
M2MzM2Q2YjczMjVlMDAyNDU1NDBkODQ2MjNlMzJiZTBlNDA2ZTBlLi43YTQ3ZjVkOGVkN2ZkYjhl
ZDJhNTBmNjcyYjk1MWFkZDFmOWE3ZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL05ld1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5j
bHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlhNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiWE1MVHJl
ZVZpZXdlci5oIgogCkBAIC0yMTcsNCArMjE4LDE1IEBAIHZvaWQgTmV3WE1MRG9jdW1lbnRQYXJz
ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiB1bnVzZWRSZXNvdXJjZSkKICAgICAg
ICAgcmVzdW1lUGFyc2luZygpOwogfQogCit2b2lkIE5ld1hNTERvY3VtZW50UGFyc2VyOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6RE9NUGFyc2VyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3Rva2VuaXplcik7CisgICAgaW5mby5hZGRNZW1iZXIobV90
b2tlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nU2NyaXB0KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3NjcmlwdEVsZW1lbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJlZUJ1aWxk
ZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hN
TERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL05ld1hNTERvY3Vt
ZW50UGFyc2VyLmgKaW5kZXggOTc1ZDY3Yjk2NTM3OWM1MmM3YWU2NDZiMmQ1N2MwMjJmNzA2Yzcw
Ny4uNzJhZTE2YzI2OWZhY2I2YzI4YjlkNmIyZjg1Y2I1NzI5MzA1MTE1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9OZXdYTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTmV3WE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNzUsNiAr
NzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA1
YWEwZTA4OTA2Y2Q1ZWIxYTMwNmI0ODM0MWY5OTMxNDQ1ZWU5MTkyLi4yOWIzOTRjODEwYmYzYWMx
MDFhM2EwYmY0ZWIwNDhiM2M0N2E1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtNTAsNyArNTAsMTAgQEAKICNpbmNsdWRlICJT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRl
ICJUcmVlRGVwdGhMaW1pdC5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJYTUxFcnJvcnMuaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI3Myw2ICsyNzYsMzAgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHVu
dXNlZFJlc291cmNlKQogICAgICAgICByZXN1bWVQYXJzaW5nKCk7CiB9CiAKK3ZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET01QYXJzZXIpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fdmlldyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vcmlnaW5hbFNvdXJjZUZvclRy
YW5zZm9ybSk7CisjaWYgVVNFKFFYTUxTVFJFQU0pCisgICAgaW5mby5hZGRNZW1iZXIobV9zdHJl
YW0pOworI2Vsc2UKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRleHQpOworICAgIC8vIEZJWE1F
OiBhZGQgbV9wZW5kaW5nQ2FsbGJhY2tzIHdoZW4gUGVuZGluZ0NhbGxiYWNrcyBkZWNsYXJhdGlv
biBpcyBhdmFpbGFibGUKKyAgICBpbmZvLmFkZE1lbWJlcihtX2J1ZmZlcmVkVGV4dCk7CisjZW5k
aWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1cnJlbnROb2RlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2N1cnJlbnROb2RlU3RhY2spOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGVhZlRleHROb2Rl
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3htbEVycm9ycyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9wZW5kaW5nU2NyaXB0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NjcmlwdEVsZW1lbnQpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9kZWZhdWx0TmFtZXNwYWNlVVJJKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWZp
eFRvTmFtZXNwYWNlTWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdTcmMpOworfQor
CiBib29sIFhNTERvY3VtZW50UGFyc2VyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wZW5kaW5nU2NyaXB0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGU4ZDE0NGJlYzM0ZWIxNDNkZmUyY2RkNDA2Nzc1
NTMwNzVlNmU5YjMuLjU4NzJjMGVjMTk3MmZlNzA4NTBhMzY2ZmZiNDhlOTc4Y2QzNjM1ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTEx
OCw2ICsxMTgsNyBAQCBjbGFzcyBUZXh0OwogCiAgICAgICAgIC8vIGZyb20gQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKik7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CiAKICAgICAgICAgdm9pZCBlbmQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171401</attachid>
            <date>2012-10-30 01:57:04 -0700</date>
            <delta_ts>2012-10-30 02:09:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100659-20121030125529.patch</filename>
            <type>text/plain</type>
            <size>2684</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZkNmYzZWQwYWUyNWIz
MDQwZTFhMTA2MGU2NWY4MGM2NWE4YzBiZC4uYjE4OWNkMWJjM2YxN2JjZWJjYThmYjYxODk2OWI1
MjYzNWExNmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTMwICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lbW9yeSBpbnN0
cnVtZW50YXRpb246IHJlcG9ydCBhY3R1YWwgb2JqZWN0IGFkZHJlc3MgZm9yIENhY2hlZFJlc291
cmNlQ2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwNjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2tpcGVkIHBvaW50ZXJzIHRvIG9iamVjdHMgdGhhdCBhcmUgbm90IGFsbG9jYXRlZCBvbiB0
aGUgaGVhcCBkaXJlY3RseS4KKworICAgICAgICBUbyB0ZXN0IHRoaXMgd2UgbmVlZCB0byBjb21w
YXJlIGFkZHJlc3NlcyBvZiBvYmplY3RzIHRyYXZlcnNlZCBieSB0aGUgbWVtb3J5CisgICAgICAg
IGluc3J1bWVudGF0aW9uIHdpdGggdGhvc2UgYWxsb2NhdGVkIGJ5IHRoZSBtZW1vcnkgYWxsb2Nh
dG9yLiBMYXR0ZXIgc2V0IHNob3VsZAorICAgICAgICBpbmNsdWRlIHRoZSBmb3JtZXIgb25lLgor
CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV1RGKTogc2tpcCBw
b2ludGVycyB0byBSdWxlRGF0YSBzdHJ1Y3R1cmVzIGFzIHRoZXkgYXJlIHN0b3JlZCBieSB2YWx1
ZSBpbiBSdWxlU2V0CisgICAgICAgIG9iamVjdHMgYW5kIHNob3VsZCBub3QgYmUgcmVwb3J0ZWQg
c2VwYXJhdGVseS4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgor
ICAgICAgICAoV1RGKTogZG8gbm90IHJlcG9ydCBtZW1vcnkgb2NjdXBpZWQgYnkgQ2FjaGVkUmVz
b3VyY2VDbGllbnRzIGFzIG9iamVjdHMgaW1wbGVtZW50aW5nCisgICAgICAgIHRoZSBpbnRlcmZh
Y2UgbWF5IGhhdmUgYWRkcmVzcyB3aGljaCBkaWZmZXIgZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVu
dCouIFRoZSBjbGllbnRzCisgICAgICAgIHNob3VsZCBiZSByZWFjaGFibGUgZnJvbSB0aGVpciBp
bnN0cnVtZW50ZWQgb3duZXJzIHdoZXJlIHdlIGtub3cgZXhhY3QgdHlwZSBvZiB0aGUKKyAgICAg
ICAgY2xpZW50cyBhbmQgaGVuY2UgY2FuIGZpZ3VyZSBjb3JyZWN0IGFkZHJlc3MuCisKIDIwMTIt
MTAtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHR5
cG8gdGhhdCBjYXVzZWQgU1ZHIGV4dGVybmFsIHJlc291cmNlcyB0byBiZSBibG9ja2VkIG9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTE0MGVhYmI1YmUxYTIyNGM1M2Q0
NTIzZWUyNDQ5ODUyNTU4NTk1Ni4uMWZiNGI1ZWRhNmNhNzEwZjU0ZGFhNDY2N2YxYjlkOGE4ZmEy
YWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTc2LDYgKzE3Niwx
NCBAQAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgU2VxdWVuY2VNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM8Y29uc3QgV2Vi
Q29yZTo6UnVsZURhdGEqPiB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEk+IHN0YXRpYyB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKEksIEksIE1lbW9yeUNsYXNzSW5mbyYpIHsgfQorfTsKKworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCAyMDFk
NDVlMzczZDYxMDBjNTBkNmVlNjQ0MGYxMDNhNWE3ZjkwN2ZjLi41OTQxMjE2OWI2ODhiMjg0YmZh
MDc3ZGM3MzMxZDljYjA3NjMyYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTU2LDYgKzU2LDE0IEBACiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRz
PFdlYkNvcmU6OkNhY2hlZFJlc291cmNlQ2xpZW50Kj4geworICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBJPiBzdGF0aWMgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShJLCBJLCBNZW1vcnlDbGFzc0luZm8m
KSB7IH0KK307CisKK30KKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewo=
</data>
<flag name="review"
          id="185293"
          type_id="1"
          status="+"
          setter="apavlov"
    />
    <flag name="commit-queue"
          id="185295"
          type_id="3"
          status="-"
          setter="apavlov"
    />
          </attachment>
      

    </bug>

</bugzilla>