<?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>103564</bug_id>
          
          <creation_ts>2012-11-28 15:32:24 -0800</creation_ts>
          <short_desc>Native Memory Instrumentation: instrument a part of RenderObject class tree.</short_desc>
          <delta_ts>2012-12-09 22:17:51 -0800</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>
          
          <blocked>104026</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>eric</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>jamesr</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</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>778411</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 15:32:24 -0800</bug_when>
    <thetext>Many RenderObject descendants have OwnPtrs and RefPtrs members.
Looks like we have to instrument all the RenderObject classes and visit
all the render objects instead of counting entire render arena memory.
The only think we need to do is count render arena free size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778419</commentid>
    <comment_count>1</comment_count>
      <attachid>176590</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 15:39:50 -0800</bug_when>
    <thetext>Created attachment 176590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778432</commentid>
    <comment_count>2</comment_count>
      <attachid>176590</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 15:48:21 -0800</bug_when>
    <thetext>Comment on attachment 176590
Patch

Attachment 176590 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15028592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778435</commentid>
    <comment_count>3</comment_count>
      <attachid>176590</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 15:50:21 -0800</bug_when>
    <thetext>Comment on attachment 176590
Patch

Attachment 176590 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15014681</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778462</commentid>
    <comment_count>4</comment_count>
      <attachid>176590</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-28 16:16:08 -0800</bug_when>
    <thetext>Comment on attachment 176590
Patch

Attachment 176590 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15018631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778474</commentid>
    <comment_count>5</comment_count>
      <attachid>176590</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 16:28:49 -0800</bug_when>
    <thetext>Comment on attachment 176590
Patch

Attachment 176590 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15027597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778507</commentid>
    <comment_count>6</comment_count>
      <attachid>176607</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 17:06:17 -0800</bug_when>
    <thetext>Created attachment 176607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778516</commentid>
    <comment_count>7</comment_count>
      <attachid>176607</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-28 17:13:56 -0800</bug_when>
    <thetext>Comment on attachment 176607
Patch

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

I agree this is the right approach (since the RenderArena won&apos;t end up counting everything hung off the rendering tree).  But I will note that this current patch is far from complete. :)  Definitely many many more RenderObject subclasses to implement here.

Should we be separating out the layer tree from the rendering tree?

Similarly the linebox trees might be interesting to count separately. :)

&gt; Source/WebCore/rendering/RenderView.cpp:1006
&gt; +    info.addMember(m_widgets);

Should these be counted as owned by the RenderView?

&gt; Source/WebCore/rendering/RenderView.cpp:1007
&gt; +    info.addWeakPointer(m_layoutState);

The RenderView owns the layout state, doesn&apos;t it?  It will die if the RenderView does?  (It&apos;s ephemeral and only used during layout())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778520</commentid>
    <comment_count>8</comment_count>
      <attachid>176607</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-28 17:20:30 -0800</bug_when>
    <thetext>Comment on attachment 176607
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Web Inspector: NMI instrument a part of RenderObject class tree.

I don&apos;t know what &quot;NMI&quot; means. Please expand it.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:429
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

Did you see backingStoreMemoryEstimate()?

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:895
&gt; +    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
&gt; +    GraphicsLayer::reportMemoryUsage(memoryObjectInfo);
&gt; +    info.addMember(m_nameBase);
&gt; +    info.addMember(m_layer);
&gt; +    info.addMember(m_transformLayer);
&gt; +    info.addMember(m_imageLayer);
&gt; +    info.addMember(m_contentsLayer);
&gt; +    info.addMember(m_linkHighlight);
&gt; +    info.addMember(m_opaqueRectTrackingContentLayerDelegate);
&gt; +    info.addMember(m_animationIdMap);
&gt; +    info.addMember(m_scrollableArea);

I don&apos;t know if any of this accounts for the actual backing store, which is by far the largest memory consumer.

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h:155
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;

What about the other platform&apos;s GraphicsLayers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778552</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 17:49:10 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 176607 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176607&amp;action=review
&gt; 
&gt; I agree this is the right approach (since the RenderArena won&apos;t end up counting everything hung off the rendering tree).  But I will note that this current patch is far from complete. :)  Definitely many many more RenderObject subclasses to implement here.

Yeah. The difference between RenderArena size and Page.Rendering size is quite big at the moment.
It is about 57kb vs 27kb on ntp and 744kb vs 397 on gmail. I&apos;d like to keep the size of patch relatively small.

The main reason of the patch is the fact that there is no other ways to reach GraphicsLayer objects.


&gt; 
&gt; Should we be separating out the layer tree from the rendering tree?
&gt; Similarly the linebox trees might be interesting to count separately. :)

Will do.

&gt; 
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:1006
&gt; &gt; +    info.addMember(m_widgets);
&gt; 
&gt; Should these be counted as owned by the RenderView?

Actually we have no &quot;Ownership&quot; at the moment.
It is counting as sizeof with type Rendering because it has no reportMemoryUsage method.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:1007
&gt; &gt; +    info.addWeakPointer(m_layoutState);
&gt; 
&gt; The RenderView owns the layout state, doesn&apos;t it?  It will die if the RenderView does?  (It&apos;s ephemeral and only used during layout())

I missed the fact that LayoutState could be allocated but am I right that it is not null only during layout?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778566</commentid>
    <comment_count>10</comment_count>
      <attachid>176607</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 18:03:54 -0800</bug_when>
    <thetext>Comment on attachment 176607
Patch

Attachment 176607 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15010720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778568</commentid>
    <comment_count>11</comment_count>
      <attachid>176607</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 18:06:49 -0800</bug_when>
    <thetext>Comment on attachment 176607
Patch

Attachment 176607 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15018660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778576</commentid>
    <comment_count>12</comment_count>
      <attachid>176607</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-28 18:15:17 -0800</bug_when>
    <thetext>Comment on attachment 176607
Patch

Attachment 176607 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15044081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778603</commentid>
    <comment_count>13</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 18:54:05 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 176607 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176607&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Web Inspector: NMI instrument a part of RenderObject class tree.
&gt; 
&gt; I don&apos;t know what &quot;NMI&quot; means. Please expand it.

It is Native Memory Instrumentation.  I could use this prefix instead of Web Inspector. wdyt?

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:429
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; Did you see backingStoreMemoryEstimate()?

It  gives us an estimation about used memory but doesn&apos;t provide precise data and actual pointers to the memory allocated fragments. Pointers give us a guaranty that count a fragment only once. Also we use them for validating the collected data against tcmalloc. I&apos;ll use backingStoreMemoryEstimate if the actual buffers aren&apos;t accessible by some reason. 

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:895
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
&gt; &gt; +    GraphicsLayer::reportMemoryUsage(memoryObjectInfo);
&gt; &gt; +    info.addMember(m_nameBase);
&gt; &gt; +    info.addMember(m_layer);
&gt; &gt; +    info.addMember(m_transformLayer);
&gt; &gt; +    info.addMember(m_imageLayer);
&gt; &gt; +    info.addMember(m_contentsLayer);
&gt; &gt; +    info.addMember(m_linkHighlight);
&gt; &gt; +    info.addMember(m_opaqueRectTrackingContentLayerDelegate);
&gt; &gt; +    info.addMember(m_animationIdMap);
&gt; &gt; +    info.addMember(m_scrollableArea);
&gt; 
&gt; I don&apos;t know if any of this accounts for the actual backing store, which is by far the largest memory consumer.

Current approach gives us good results and requires very simple instrumentation. You can do this almost mechanically. You need to calculate actual numbers manually when you manually control the sizes like here https://code.google.com/p/chromium/source/search?q=addRawBuffer+file%3ACSSSelector&amp;origq=addRawBuffer+file%3ACSSSelector&amp;btnG=Search+Trunk

or here https://code.google.com/p/chromium/source/search?q=addRawBuffer+file%3ASharedBuffer&amp;origq=addRawBuffer+file%3ASharedBuffer&amp;btnG=Search+Trunk

The only problem is that you need to instrument almost everything. :)
Unfortunately it is not possible to do this automatically even for simple classes because not all the platforms use clang.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h:155
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
&gt; 
&gt; What about the other platform&apos;s GraphicsLayers?

I&apos;d like to instrument one platform at a time. It will be easier to instrument platform specific code for the other platforms when the instrumentation become stable and tools become mature. I hope someone else help us to instrument nontrivial code for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778605</commentid>
    <comment_count>14</comment_count>
      <attachid>176627</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-28 19:11:45 -0800</bug_when>
    <thetext>Created attachment 176627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778635</commentid>
    <comment_count>15</comment_count>
      <attachid>176627</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 20:45:10 -0800</bug_when>
    <thetext>Comment on attachment 176627
Patch

Attachment 176627 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15026671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778637</commentid>
    <comment_count>16</comment_count>
      <attachid>176627</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-28 20:46:59 -0800</bug_when>
    <thetext>Comment on attachment 176627
Patch

Attachment 176627 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15031498</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779164</commentid>
    <comment_count>17</comment_count>
      <attachid>176756</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-29 10:30:35 -0800</bug_when>
    <thetext>Created attachment 176756
with fix for mac and elf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779167</commentid>
    <comment_count>18</comment_count>
      <attachid>176757</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-29 10:34:39 -0800</bug_when>
    <thetext>Created attachment 176757
second with fix for mac and elf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779183</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 10:55:12 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 176607 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176607&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; +        Web Inspector: NMI instrument a part of RenderObject class tree.
&gt; &gt; 
&gt; &gt; I don&apos;t know what &quot;NMI&quot; means. Please expand it.
&gt; 
&gt; It is Native Memory Instrumentation.  I could use this prefix instead of Web Inspector. wdyt?

I prefer Web Inspector.

&gt; &gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:429
&gt; &gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; &gt; 
&gt; &gt; Did you see backingStoreMemoryEstimate()?
&gt; 
&gt; It  gives us an estimation about used memory but doesn&apos;t provide precise data and actual pointers to the memory allocated fragments. Pointers give us a guaranty that count a fragment only once. Also we use them for validating the collected data against tcmalloc. I&apos;ll use backingStoreMemoryEstimate if the actual buffers aren&apos;t accessible by some reason. 

On Mac, at least, you can&apos;t get to the actual pointers. You&apos;ll find the same when you try to account for image data (CGImageRefs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779341</commentid>
    <comment_count>20</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-29 12:41:02 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; (From update of attachment 176607 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176607&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; &gt; +        Web Inspector: NMI instrument a part of RenderObject class tree.
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t know what &quot;NMI&quot; means. Please expand it.
&gt; &gt; 
&gt; &gt; It is Native Memory Instrumentation.  I could use this prefix instead of Web Inspector. wdyt?
&gt; 
&gt; I prefer Web Inspector.
&gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:429
&gt; &gt; &gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; &gt; &gt; 
&gt; &gt; &gt; Did you see backingStoreMemoryEstimate()?
&gt; &gt; 
&gt; &gt; It  gives us an estimation about used memory but doesn&apos;t provide precise data and actual pointers to the memory allocated fragments. Pointers give us a guaranty that count a fragment only once. Also we use them for validating the collected data against tcmalloc. I&apos;ll use backingStoreMemoryEstimate if the actual buffers aren&apos;t accessible by some reason. 
&gt; 
&gt; On Mac, at least, you can&apos;t get to the actual pointers. You&apos;ll find the same when you try to account for image data (CGImageRefs).

Yeah. The same situation happens with WTF containers because Maciej is against intrusive instrumentation of them.

If an object reports a member pointer to a child object then MemoryInstrumentation calls reportMemoryUsage method on this child object or uses sizeof if the child object has no such method.

If an object has a pointer to something (CGImage*) and we know that it uses N megs of memory but we have no chances to instrument it then I will report a raw pointer with manually counted size via addRawBuffer.

If an object knows just size but has no access to the actual pointer then I use addPrivateBuffer and it associates this size with the object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779473</commentid>
    <comment_count>21</comment_count>
      <attachid>176757</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-29 15:01:16 -0800</bug_when>
    <thetext>Comment on attachment 176757
second with fix for mac and elf

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

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:-449
&gt; -    memoryInstrumentationClient.countObjectSize(0, WebCoreMemoryTypes::RenderTreeUsed, arenaSize.treeSize);

Let&apos;s keep using arenaSize.treeSize while it is more accurate than current instrumentation of render objects.

&gt; Source/WebCore/rendering/RenderLayer.h:713
&gt; +    void reportMemoryUsage(MemoryObjectInfo*) const;

Shouldn&apos;t it be virtual?

&gt; Source/WebCore/rendering/RenderLayerBacking.h:187
&gt; +    void reportMemoryUsage(MemoryObjectInfo*) const;

Shouldn&apos;t it be virtual?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779495</commentid>
    <comment_count>22</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-29 15:17:47 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 176607 [details] [details])
&gt; &gt; &gt; Source/WebCore/rendering/RenderView.cpp:1006
&gt; &gt; &gt; +    info.addMember(m_widgets);
&gt; &gt; 
&gt; &gt; Should these be counted as owned by the RenderView?
&gt; 
&gt; Actually we have no &quot;Ownership&quot; at the moment.
&gt; It is counting as sizeof with type Rendering because it has no reportMemoryUsage method.
&gt; 

At the moment the memory instrumentation doesn&apos;t provide any means to discriminate between owning and and non-owning references except for reportWeakPointer. We are going to change this soon and allow to report additional information about links between objects including whether the connection is one that should be considered as ownership.

We are also planning to extend memory instrumentation so that it produces a heap graph with additional information about certain heap objects. Based on that graph we can both build current high-level aggregated statistics of the memory distribution and additionally expand expand components to see memory consumption of select individual objects(e.g. if CachedImage consumes X Mb it may make sense to show how many of those are occupied by pixel buffers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780159</commentid>
    <comment_count>23</comment_count>
      <attachid>176979</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 09:15:12 -0800</bug_when>
    <thetext>Created attachment 176979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780175</commentid>
    <comment_count>24</comment_count>
      <attachid>176981</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 09:37:52 -0800</bug_when>
    <thetext>Created attachment 176981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780176</commentid>
    <comment_count>25</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 09:41:24 -0800</bug_when>
    <thetext>
2eric: comments addressed

2yurys: comments addressed


&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.h:187
&gt; &gt; +    void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; Shouldn&apos;t it be virtual?

No. It is a class with no descendants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780199</commentid>
    <comment_count>26</comment_count>
      <attachid>176981</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-30 10:12:36 -0800</bug_when>
    <thetext>Comment on attachment 176981
Patch

Attachment 176981 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15065270</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780209</commentid>
    <comment_count>27</comment_count>
      <attachid>176981</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-30 10:32:18 -0800</bug_when>
    <thetext>Comment on attachment 176981
Patch

Attachment 176981 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15065269</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780217</commentid>
    <comment_count>28</comment_count>
      <attachid>176991</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 10:35:32 -0800</bug_when>
    <thetext>Created attachment 176991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780233</commentid>
    <comment_count>29</comment_count>
      <attachid>176991</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-30 10:54:10 -0800</bug_when>
    <thetext>Comment on attachment 176991
Patch

Attachment 176991 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15054497</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780234</commentid>
    <comment_count>30</comment_count>
      <attachid>176991</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-30 10:55:54 -0800</bug_when>
    <thetext>Comment on attachment 176991
Patch

Attachment 176991 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15064331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780235</commentid>
    <comment_count>31</comment_count>
      <attachid>176991</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-30 10:55:56 -0800</bug_when>
    <thetext>Comment on attachment 176991
Patch

Attachment 176991 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15044865</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780254</commentid>
    <comment_count>32</comment_count>
      <attachid>176998</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 11:20:46 -0800</bug_when>
    <thetext>Created attachment 176998
next try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780324</commentid>
    <comment_count>33</comment_count>
      <attachid>176998</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-30 12:41:13 -0800</bug_when>
    <thetext>Comment on attachment 176998
next try

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

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:89
&gt; +        // FIXME: We filter out Rendering type because the coverage is not good enough at the moment
&gt; +        // and report RenderArena size instead.

Do you mean to just filter out Rendering and still count layers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780438</commentid>
    <comment_count>34</comment_count>
      <attachid>176998</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 14:37:32 -0800</bug_when>
    <thetext>Comment on attachment 176998
next try

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

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:89
&gt;&gt; +        // and report RenderArena size instead.
&gt; 
&gt; Do you mean to just filter out Rendering and still count layers?

yes. If the map has Page.Rendering.Layers size then this method generates Rendering item and puts Layers leaf under it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780464</commentid>
    <comment_count>35</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 15:12:37 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 176998 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176998&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:89
&gt; &gt; +        // FIXME: We filter out Rendering type because the coverage is not good enough at the moment
&gt; &gt; +        // and report RenderArena size instead.
&gt; 
&gt; Do you mean to just filter out Rendering and still count layers?

We have two kind of layers RenderLayer and GraphicsLayer and I use Layer type only for GraphicsLayers.
Probably Page.Rendering.GraphicsLayers sounds better than Page.Rendering.Layers. wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780503</commentid>
    <comment_count>36</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-30 15:54:53 -0800</bug_when>
    <thetext>Is this tree exposed to end users, or is it just for some accounting that gets rolled up to some summary number?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780508</commentid>
    <comment_count>37</comment_count>
      <attachid>177041</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 16:01:09 -0800</bug_when>
    <thetext>Created attachment 177041
screenshot

it is exposed to the end user</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780534</commentid>
    <comment_count>38</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-30 16:37:53 -0800</bug_when>
    <thetext>2 eric &amp;&amp; simon do you have any other comments or concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780552</commentid>
    <comment_count>39</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-30 16:57:46 -0800</bug_when>
    <thetext>How is the average web developer supposed to know what all these things are?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781188</commentid>
    <comment_count>40</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-03 00:11:24 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; How is the average web developer supposed to know what all these things are?

Initially we thought that a top level overview would be enough for the web developer.
But now when we see these generic numbers it is clear that they need to see more precise data like &apos;how much memory was used for an image with this url&apos;.

This problem could be solved by the same memory instrumentation code which traverses the heap objects graph. Yurys is preparing a patch which extends memory instrumentation client api and gives us ability to generate a graph with objects, their names, sizes etc. We have solved the same problem for javascript heap and know what we need on frontend UI side.

We are in MtV until Thursday. If you have questions or suggestions we could meet together in your or our office.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781620</commentid>
    <comment_count>41</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-03 10:41:47 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; (In reply to comment #39)
&gt; &gt; How is the average web developer supposed to know what all these things are?
&gt; 
&gt; Initially we thought that a top level overview would be enough for the web developer.
&gt; But now when we see these generic numbers it is clear that they need to see more precise data like &apos;how much memory was used for an image with this url&apos;.

Sure, but you need to present it in a way that developers understand, and relate to their content. Showing that &quot;Layers&quot; take 34KB doesn&apos;t tell them a thing. Saying that &quot;using overflow:hidden on thousands of divs increases memory use&quot; does. Don&apos;t force developers to learn WebKit just to optimize their site; tell them what they need to know to improve their content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781670</commentid>
    <comment_count>42</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-03 11:08:40 -0800</bug_when>
    <thetext>Personally I find this data interesting, even if it never makes it to a user-facing feature.  I think Simon&apos;s point about finding a way to expose this to a Web Developer in a way they understand is a good one, and important.  But I find this data (and this experimental feature) useful even as-is.  I&apos;m personally interested in using this to work on memory leaks in WebCore as it gets more mature.

I guess another way to get what I want might be to turn on RTTI and turn off tcmalloc and recompile :p  But I really like the idea of being able to expose this knowledge to some of the 1% customers of WebKit who are already clamoring for more information about our internals (and already understand WebKit much better than we might think).  Again, I agree, the graphs as currently exposed are likely confusing to the 99%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781704</commentid>
    <comment_count>43</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-03 11:32:07 -0800</bug_when>
    <thetext>(In reply to comment #41)
&gt; (In reply to comment #40)
&gt; &gt; (In reply to comment #39)
&gt; &gt; &gt; How is the average web developer supposed to know what all these things are?
&gt; &gt; 
&gt; &gt; Initially we thought that a top level overview would be enough for the web developer.
&gt; &gt; But now when we see these generic numbers it is clear that they need to see more precise data like &apos;how much memory was used for an image with this url&apos;.
&gt; 
&gt; Sure, but you need to present it in a way that developers understand, and relate to their content. Showing that &quot;Layers&quot; take 34KB doesn&apos;t tell them a thing. Saying that &quot;using overflow:hidden on thousands of divs increases memory use&quot; does. Don&apos;t force developers to learn WebKit just to optimize their site; tell them what they need to know to improve their content.

The plan was to at first show high-level overview of the memory usage by various components, preferably in a format that can be understood by web developers who don&apos;t develop WebKit. To make this information more useful for web developers we should expose it in therms that they understand and show how their code/resources expand into the WebKit structures whose footprint we measure. In some cases it should be quite easy - e.g. show that a pixelbuffer was allocated for an image with given url, in other it may be more more tricky like in the Simon&apos;s example. I don&apos;t think it is possible to provide a generic solution for this but  we can build a heap graph and annotate some of its nodes so that it can be later processed by inspector code to identify possible places for optimizations and present them in a user-friendly way to web developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786217</commentid>
    <comment_count>44</comment_count>
      <attachid>176998</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-07 15:12:51 -0800</bug_when>
    <thetext>Comment on attachment 176998
next try

This seems reasonable to me. I&apos;m sure this will require many more iterations of refinement as we start to be able to use the tool to better understand memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786987</commentid>
    <comment_count>45</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-09 22:17:51 -0800</bug_when>
    <thetext>Committed r137108: &lt;http://trac.webkit.org/changeset/137108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176590</attachid>
            <date>2012-11-28 15:39:50 -0800</date>
            <delta_ts>2012-11-28 17:06:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121128153726.patch</filename>
            <type>text/plain</type>
            <size>24963</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0MWNkZjk0OGVlYTE2
MmU5YmNhYjQwYzk3Yjg5ZWVlZTk0MTIxMi4uZDU5ZWM2MGEyNTk0MTRhODM4NWM5ZWRmODU5YzMx
MDYxYzYyMDg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTExLTI4ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNsYXNzIHRyZWUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM1NjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYW55IFJlbmRl
ck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMgbWVtYmVycy4KKyAg
ICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRoZSBSZW5kZXJPYmpl
Y3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIgb2JqZWN0cyBpbnN0
ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5LgorCisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChQbGF0Zm9ybU1l
bW9yeVR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNz
TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNocm9taXVtKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKFJlbmRlckxheWVy
QmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaDoK
KyAgICAgICAgKFJlbmRlckxheWVyTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0Lmg6CisgICAgICAgIChSZW5kZXJUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmll
dy5oOgorICAgICAgICAoUmVuZGVyVmlldyk6CisKIDIwMTItMTEtMjggIEFsZXhhbmRydSBDaGlj
dWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gQXV0by1o
ZWlnaHQgcmVnaW9ucyB3aWxsIG5vdCBjYWxjdWxhdGUgdGhlIGhlaWdodCBjb3JyZWN0bHkgd2hl
biB0aGUgY29udGVudCBjaGFuZ2VzIGR5bmFtaWNhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggY2Mw
Mzg5ODBmYzM1MDQ4MDAxZDcyMGQ2ZTNjY2JjZWNjNzE5ZTk0NS4uZWJmM2Y1ZGViODkzMDUzYmVl
YjJkM2I2YTU2NGUwZTdhMjcwMmIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjgwMCw4ICsyODAw
LDcgQEAgdm9pZCBOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbmV4dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7
Ci0gICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAg
ICAgICBpbmZvLmFkZE1lbWJlcihyZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1i
ZXIodGhpcy0+cmVuZGVyZXIoKSk7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKHJhcmVEYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTEx
NTJmMmM3NjkxNmU5OWM3MTczODExYzIuLjY1MzI2YmFiYTU4MTdlNDBlNGVmNzhjZTYzM2I0MmE0
MmMwN2U0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTY3LDggKzY3LDcgQEAgTWVtb3J5T2JqZWN0VHlwZSBXZWJD
b3JlTWVtb3J5VHlwZXM6OkpTSGVhcFVudXNlZCA9ICJKU0hlYXAuVW51c2VkIjsKIAogTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTVN0b3JhZ2VDYWNoZSA9ICJET01TdG9y
YWdlQ2FjaGUiOwogCi1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVy
VHJlZVVzZWQgPSAiUmVuZGVyVHJlZS5Vc2VkIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlJlbmRlclRyZWUuVW51c2VkIjsKK01lbW9y
eU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlVudXNl
ZC5SZW5kZXJUcmVlIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlBy
b2Nlc3NQcml2YXRlTWVtb3J5ID0gIlByb2Nlc3NQcml2YXRlTWVtb3J5IjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzQ3
OWUwNTM0MTdkMGVkMDZkYTNlZmFhMmQyYWQzZjc1ZGEzOTEyZS4uN2ZmNjM0NmVjYWZkNTQ3NTNh
ODc0M2E2ZTYzNzk4YjkyYjQ3ZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET007CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEJpbmRpbmc7CisgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgUmVuZGVyaW5nOwogCiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIENh
Y2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAxZDUwZTYzZWE4YmNi
NzQxYy4uYTU3NTBmNWI1Y2M4ZDlhNzIxNzgyYjFlZTEwMDg2ODJkODI1MTY4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC00
NDUsOCArNDQ1LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0SlNIZWFwSW5mbyhXVEY6Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbkNsaWVudCYgbWVtb3J5SW5zdHJ1bWVudGEKIHN0YXRpYyB2b2lkIHJlcG9y
dFJlbmRlclRyZWVJbmZvKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50JiBtZW1vcnlJ
bnN0cnVtZW50YXRpb25DbGllbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQXJlbmFTaXplIGFyZW5h
U2l6ZSA9IHBhZ2UtPnJlbmRlclRyZWVTaXplKCk7Ci0KLSAgICBtZW1vcnlJbnN0cnVtZW50YXRp
b25DbGllbnQuY291bnRPYmplY3RTaXplKDAsIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJl
ZVVzZWQsIGFyZW5hU2l6ZS50cmVlU2l6ZSk7CiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50LmNvdW50T2JqZWN0U2l6ZSgwLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlclRyZWVVbnVz
ZWQsIGFyZW5hU2l6ZS5hbGxvY2F0ZWQgLSBhcmVuYVNpemUudHJlZVNpemUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQxYjk3MzhjZTU0NzZlMGRlMzlmOGM0YmRh
Zi4uNjMwODk1NzRjY2E5NDMyYWNhM2RkMDk2MWExNTBlMjBiY2RmMzY2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmNwcApAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lbW9yeU9i
amVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5JbWFnZSI7CiBNZW1v
cnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQYWdlLkxvYWRlciI7
CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyA9ICJQYWdl
LlJlbmRlcmluZyI7CiAKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVk
aW8gPSAiUGFnZS5BdWRpbyI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkF1ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgK
aW5kZXggOWNlYjkyZWM1MzQ3MjFmNTdlNmI2MWJhNmMwZTU3ODIxNzVjODJlMy4uZjRkMzcwYTc2
MDEyOTdmMjVlYzE0Zjk2ZWExNDAyZjM0MjQ1OTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00Myw2
ICs0Myw3IEBAIGNsYXNzIFBsYXRmb3JtTWVtb3J5VHlwZXMgewogcHVibGljOgogICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIEltYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExv
YWRlcjsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBSZW5kZXJpbmc7CiAKICAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBBdWRpbzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBB
dWRpb1NoYXJlZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZkMWEyNDc5YTcyY2U2MzUxYjg4NDg2ZWU4MWUwNmU5
YjMyOTAwYjYuLjBkNzY3ZjY3MjIzMWUxNDI3MWE3ODQwYzY5Y2QyYzI1N2RiY2Q1ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MzcsNiArNzM4LDE2IEBAIFN0cmluZyBH
cmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpIGNvbnN0CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBHcmFwaGlj
c0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJlbnQpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlcGxpY2FMYXll
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXBsaWNhdGVkTGF5ZXIpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNGYzOTU0NDg2MGIyYWVmY2Zl
N2UxYjk2YzNlNWJmZmEwZWY4ZTI4MS4uN2MzM2ZkZDc3YzdhYzVmYWY2MzQ2MDE1OTE3NGU5YWM0
NDJkZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRl
RGVidWdJbmRpY2F0b3JzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hvdWxkIGJl
IGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdpbGxC
ZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDhhMGFmMTUzMDc0
ZTY3Mjk2MzYyMWE0MDA5ODIwY2ZmYzNhZjU2YmEuLmM3OTViMzliOTI1MGM5NzY4MDFjMjc5YjFl
N2NhYzBhMjQzYTIxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTg3OSw2ICs4ODAsMjEgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRpZFNjcm9sbCgpCiAgICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihJbnRQb2ludChtX2xheWVyLT5s
YXllcigpLT5zY3JvbGxQb3NpdGlvbigpKSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9t
aXVtOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgR3JhcGhpY3NMYXllcjo6
cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9uYW1lQmFzZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV90cmFuc2Zvcm1MYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZUxheWVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRzTGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbGlua0hpZ2hsaWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vcGFxdWVSZWN0VHJh
Y2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRp
b25JZE1hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxhYmxlQXJlYSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggZjMzMmU5NDQ0YzVk
ZGEzODlkMDNjOWIyZTBiNDYyYTI2YzliNDEwOS4uMTBmZGE3NjkzOWU1MjUyOTFiNTYyZjBlZGRh
ZjU4YWM4N2U3MzYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTE1
Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRXhwb3NlZCBmb3IgdGVzdHMuCiAgICAgV2Vi
S2l0OjpXZWJMYXllciogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNM
YXllcjsgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU5hbWVz
KCk7CiAgICAgdm9pZCB1cGRhdGVDaGlsZExpc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDQxOGJjZjVlNzE2NzU2ZmEzZjIwNjYxZWQyZTIxMDk1ZWQz
ZWUwYWUuLjE2MWFmMzczMDgxMDdkZjczNDJlZDI3ZmEwYTU0ZjY5N2E3NDUyZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzcyNSw0ICs3NzI1LDE0IEBA
IFN0cmluZyBWYWx1ZVRvU3RyaW5nPFJlbmRlckJsb2NrOjpGbG9hdGluZ09iamVjdCo+OjpzdHJp
bmcoY29uc3QgUmVuZGVyQmxvY2s6OkZsCiAKICNlbmRpZgogCit2b2lkIFJlbmRlckJsb2NrOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94OjpyZXBvcnRNZW1v
cnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zsb2F0aW5n
T2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yYXJlRGF0YSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5lQm94ZXMpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDg5YzgxNmM5Yjc5N2YzZTVjM2EwMzdmNDQ4YWM5NmIwZTNmMmZkZWYuLmNlOWVi
NzA1ZjIyNzdmZjdkMDMwZDg0NjZhNTVmYTIzNDlhOGRkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC01MjAsNiArNTIwLDggQEAgcHJvdGVjdGVkOgogCiAgICAg
dmlydHVhbCB2b2lkIGNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxIZWlnaHRDaGFuZ2UoTGF5b3V0
VW5pdCYgcGFnZUxvZ2ljYWxIZWlnaHQsIGJvb2wmIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCwg
Ym9vbCYgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWlnaHQpOwogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdm9pZCBjb21wdXRlRXhj
bHVzaW9uU2hhcGVTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IDQ0ZjNkZTExYTJiZDg4MzI2NDUzZmRjZDFkNzllZmY3YjY3NTU2Y2YuLjkxNGZiOGQxODk2
MWYyMTM4NTRjM2I5MDEwZjQ0MDRiMzFjM2RhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC00MjEzLDQgKzQyMTMsMTIgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJC
b3g6OnNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWwKICAgICByZXR1cm4gYmVmb3JlQ2hpbGQ7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3Jt
TWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcG9y
dE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9pbmxpbmVCb3hXcmFwcGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX292ZXJmbG93KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CmluZGV4IGMxZGUzZTczNjE5MTZjMzgxYmYxM2MwYjk2YTAxZGJkMjE1MTViYTIuLjJmMzYzOGY3
MTBhMTIxYTkzMWZjZGIxMzg3ZWU4YzU4ZGNlMTI4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKQEAgLTU5OCw2ICs1OTgsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJP
YmplY3QqIHNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkKTsKICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIGJvb2wgZml4ZWRFbGVt
ZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmlldyopIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzYzdjZjZlNTZkYzc3
YjIxYjQyOTgxOTg1YzAzZDBhMGUwOTg3YTJkLi41NzZlODgyMTk1MDEzZDU0ZmU0ZmY5ZTNkYTNl
OTE1OTg0YThhMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
QEAgLTU0MDQsNiArNTQwNCwzNiBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFp
bnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpS
ZW5kZXJpbmcpOworI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1i
ZXIobV9ibGVuZE1vZGUpOworI2VuZGlmCisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRl
cmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBpbmZvLmFkZFdl
YWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9uZXh0KTsK
KyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZmlyc3QpOworICAgIGluZm8uYWRkV2Vha1BvaW50
ZXIobV9sYXN0KTsKKworICAgIGluZm8uYWRkTWVtYmVyKG1faEJhcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV92QmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Bvc1pPcmRlckxpc3QpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fbmVnWk9yZGVyTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9u
b3JtYWxGbG93TGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGlwUmVjdHNDYWNoZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9tYXJxdWVlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5z
Zm9ybSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlZmxlY3Rpb24pOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9zY3JvbGxDb3JuZXIpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9yZXNpemVyKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2JhY2tpbmcpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
aW5kZXggNjVmMTA3MGFiMmQ2NmRmMmQ5NDcxNjU0ZWNjOWNjMGUwMTdjNjFjNS4uMTM2MWFiMDBm
ZmRhZjM0N2FkNzczM2Y2NGEyMWFlOWI3NWY4ZjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKQEAgLTcxMCw2ICs3MTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lu
VG9wTGF5ZXJTdWJ0cmVlKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJl
MDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0YmJkYjkzYzc0Li4zYWYxZWU3YTc2OWZhNjllMmE3
N2ZkYWZhYzJlMzAzNWI4YWEzNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTk2OSw2ICsxOTY5LDIyIEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0
IEludFJlY3QmIGxvCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZv
cm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fb3du
aW5nTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2dyYXBoaWNzTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZm9yZWdyb3VuZExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRhaW5tZW50TGF5
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9s
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9y
U2Nyb2xsQ29ybmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGluZ0xheWVyKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXgg
Y2RjYzAzMGMyNTIzZmFlZjI4N2ZkZTkxNzcxMDBmZTRmZjVkYjVmOC4uMGZkMDNlNDgxZjIxMzYw
OWIwYmZiZDc5YTMzNGI5MTA5NGUyNjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9kZSk7
CiAjZW5kaWYKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IDg3MGJmMWRkZmE3Mzk1OWMwZWUwYTJjYzE4ZTllZmE4ODU5Y2YyMWMuLmJjZWI5
OTI4MjlmZDRjMzhmYWEyNTQ1ZDI5MTY4Njc0NzE3YjUyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNzUxLDYgKzI3
NTEsMjcgQEAgUGFnZSogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlKCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlU
eXBlczo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVuZGVyVmlldyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9yb290Q29udGVudExheWVyKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fY2xpcExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbExheWVyKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fdmlld3BvcnRDb25zdHJhaW5lZExheWVyc05lZWRpbmdVcGRhdGUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXll
ckZvclNjcm9sbENvcm5lcik7CisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIGluZm8u
YWRkTWVtYmVyKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2NvbnRlbnRTaGFkb3dMYXllcik7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVy
VXBkYXRlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0ZDgyOGYxYTVmMWYxMDBiZjI0MGJjMzE0YjAz
NzNhZGFiYmI1NmY3Li4xYWRmYmQ0NGE2Y2Q1NjNkODdhY2IyMDc0YTBjMzNmODk1ODc5YjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CkBAIC0yMzEsNiArMjMxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRUcmFja2VkUmVwYWlu
dFJlY3RzKCk7CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhib29sKTsKIAorICAgIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgog
ICAgIGNsYXNzIE92ZXJsYXBNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCBhZWIzMmI3YTJlM2ZkNWMwMDk4MTMw
MmIwZDczNjJiM2Y2NjYzZTcxLi4xYjc1ZjVlNGUwNDBiZjU1YjA4ODMwZDE5MjI3OGMzODdkOTIw
NmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCkBAIC0xNzQsNSArMTc0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
CiAgICAgfQogfQogCit2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlU
eXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1l
bW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9sYXllcik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzYyNDFkMzc3NTEzOTUzNWY5MGZjNjA1
NmE0NDQyNGU5YWQzODUxZS4uOGE0ZmMzNDFmM2NiMjJlMTc4N2NkMjBkYzhhZjdlOGJkODY0NGZk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCByZXF1
aXJlc0xheWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAg
IHZvaWQgZW5zdXJlTGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCAwYzlhZjcxZjk3ZmNjYjdhYTcyYzMwMmRjZjEyN2M2ZjVlNjVmMjk3Li41
MjE2M2Y2NWMwMmNmYWE0MzgxNzJhMjk0MmVmYjc1ZmVmZDJmZjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMzAzNiw2ICszMDM2LDE2IEBAIGJvb2wg
UmVuZGVyT2JqZWN0OjpjYW5CZVJlcGxhY2VkV2l0aElubGluZVJ1bkluKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6
UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlKTsKKyAgICBpbmZvLmFkZFdl
YWtQb2ludGVyKG1fbm9kZSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3BhcmVudCk7Cisg
ICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3ByZXZpb3VzKTsKKyAgICBpbmZvLmFkZFdlYWtQb2lu
dGVyKG1fbmV4dCk7Cit9CisKICNpZiBFTkFCTEUoU1ZHKQogCiBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lciogUmVuZGVyT2JqZWN0Ojp0b1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBlMDgyMWNmMDA0NmIwNWI2
ZjFmNjhlN2E5Zjc1YTQ4ZDdlNTIzYjY0Li5kMDYzMzM4ZThhMzBiN2IyMmMwNjBhZDQ5Mzk2M2Vk
ZmE3YzAxMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0y
ODIsNiArMjgyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVzQW5vbnltb3Vz
V3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gSGVscGVyIGZ1bmN0
aW9ucy4gRGFuZ2Vyb3VzIHRvIHVzZSEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAppbmRleCBhOWEyNWRmNjM4NTgzYTI0NWZhM2I4YWI4YTlhZmVlZjI2NWM3MzNiLi45N2E1
YzMyNWU3ZGVmM2FmZDA3MjZmZWVmZDc5YjZlN2NhYzQxMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xOTMwLDQgKzE5MzAsMTMgQEAgdm9pZCBSZW5kZXJU
ZXh0Ojptb21lbnRhcmlseVJldmVhbExhc3RUeXBlZENoYXJhY3Rlcih1bnNpZ25lZCBsYXN0VHlw
ZWRDaGFyYWN0ZXIKICAgICBzZWN1cmVUZXh0VGltZXItPnJlc3RhcnRXaXRoTmV3VGV4dChsYXN0
VHlwZWRDaGFyYWN0ZXJPZmZzZXQpOwogfQogCit2b2lkIFJlbmRlclRleHQ6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdl
KG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fdGV4dCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9maXJzdFRleHRCb3gpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGFzdFRl
eHRCb3gpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuaAppbmRleCA3Yjk4NjkxN2Q4YmRjNmNmZTY3N2VhMWE3MGU4NzFlNDIxYjEy
MTlhLi4wZTRkNjJjZDVmYTFhMTNhNzg1NGE4ZTNmMzVjNGU3MTk4YmM0YTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTE0NCw2ICsxNDQsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxNDU3YjZiZTJhNDdmOWZiNjNi
ZGFkMjYxZjAyMDVhOGYxMDMxM2E2Li5lMjZhM2RhZWMxOTQzYWU1YzIyN2UyZWExOGRjOGJkOWIw
Y2IzOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC05OTYs
NCArOTk2LDI0IEBAIFJlbmRlckJsb2NrOjpJbnRlcnZhbEFyZW5hKiBSZW5kZXJWaWV3OjppbnRl
cnZhbEFyZW5hKCkKICAgICByZXR1cm4gbV9pbnRlcnZhbEFyZW5hLmdldCgpOwogfQogCit2b2lk
IFJlbmRlclZpZXc6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJC
bG9jazo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRX
ZWFrUG9pbnRlcihtX2ZyYW1lVmlldyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3NlbGVj
dGlvblN0YXJ0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2VsZWN0aW9uRW5kKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3dpZGdldHMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9s
YXlvdXRTdGF0ZSk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGluZm8u
YWRkTWVtYmVyKG1fY29tcG9zaXRvcik7CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
ICYmIFVTRSgzRF9HUkFQSElDUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1c3RvbUZpbHRlckds
b2JhbENvbnRleHQpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9mbG93VGhyZWFkQ29u
dHJvbGxlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnRlcnZhbEFyZW5hKTsKKyAgICBpbmZv
LmFkZFdlYWtQb2ludGVyKG1fcmVuZGVyUXVvdGVIZWFkKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggZDYzZjhkZjg2
ODYxMzcxNThiOWFiOTg0ZWExZWMzNTQyNDc2ZTk3ZS4uMTY5NGE4ZjIyZGQ1MzFiZGY4NzY4ZTJk
YzUxNjkxZTA3YTcyNjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBA
IC0yODIsNiArMjgyLDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0U3RhdGVN
YWludGFpbmVyOwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZURpc2FibGVyOwogCisgICAg
dmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBP
VkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIEZyYW1lVmlldyogbV9mcmFtZVZpZXc7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176607</attachid>
            <date>2012-11-28 17:06:17 -0800</date>
            <delta_ts>2012-11-28 19:11:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121128170351.patch</filename>
            <type>text/plain</type>
            <size>26210</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0MWNkZjk0OGVlYTE2
MmU5YmNhYjQwYzk3Yjg5ZWVlZTk0MTIxMi4uZDU5ZWM2MGEyNTk0MTRhODM4NWM5ZWRmODU5YzMx
MDYxYzYyMDg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTExLTI4ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNsYXNzIHRyZWUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM1NjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYW55IFJlbmRl
ck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMgbWVtYmVycy4KKyAg
ICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRoZSBSZW5kZXJPYmpl
Y3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIgb2JqZWN0cyBpbnN0
ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5LgorCisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChQbGF0Zm9ybU1l
bW9yeVR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNz
TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNocm9taXVtKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKFJlbmRlckxheWVy
QmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaDoK
KyAgICAgICAgKFJlbmRlckxheWVyTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0Lmg6CisgICAgICAgIChSZW5kZXJUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmll
dy5oOgorICAgICAgICAoUmVuZGVyVmlldyk6CisKIDIwMTItMTEtMjggIEFsZXhhbmRydSBDaGlj
dWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gQXV0by1o
ZWlnaHQgcmVnaW9ucyB3aWxsIG5vdCBjYWxjdWxhdGUgdGhlIGhlaWdodCBjb3JyZWN0bHkgd2hl
biB0aGUgY29udGVudCBjaGFuZ2VzIGR5bmFtaWNhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggY2Mw
Mzg5ODBmYzM1MDQ4MDAxZDcyMGQ2ZTNjY2JjZWNjNzE5ZTk0NS4uZWJmM2Y1ZGViODkzMDUzYmVl
YjJkM2I2YTU2NGUwZTdhMjcwMmIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjgwMCw4ICsyODAw
LDcgQEAgdm9pZCBOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbmV4dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7
Ci0gICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAg
ICAgICBpbmZvLmFkZE1lbWJlcihyZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1i
ZXIodGhpcy0+cmVuZGVyZXIoKSk7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKHJhcmVEYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTEx
NTJmMmM3NjkxNmU5OWM3MTczODExYzIuLjY1MzI2YmFiYTU4MTdlNDBlNGVmNzhjZTYzM2I0MmE0
MmMwN2U0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTY3LDggKzY3LDcgQEAgTWVtb3J5T2JqZWN0VHlwZSBXZWJD
b3JlTWVtb3J5VHlwZXM6OkpTSGVhcFVudXNlZCA9ICJKU0hlYXAuVW51c2VkIjsKIAogTWVtb3J5
T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTVN0b3JhZ2VDYWNoZSA9ICJET01TdG9y
YWdlQ2FjaGUiOwogCi1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVy
VHJlZVVzZWQgPSAiUmVuZGVyVHJlZS5Vc2VkIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlJlbmRlclRyZWUuVW51c2VkIjsKK01lbW9y
eU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlVudXNl
ZC5SZW5kZXJUcmVlIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlBy
b2Nlc3NQcml2YXRlTWVtb3J5ID0gIlByb2Nlc3NQcml2YXRlTWVtb3J5IjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzQ3
OWUwNTM0MTdkMGVkMDZkYTNlZmFhMmQyYWQzZjc1ZGEzOTEyZS4uN2ZmNjM0NmVjYWZkNTQ3NTNh
ODc0M2E2ZTYzNzk4YjkyYjQ3ZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET007CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEJpbmRpbmc7CisgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgUmVuZGVyaW5nOwogCiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIENh
Y2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAxZDUwZTYzZWE4YmNi
NzQxYy4uYTU3NTBmNWI1Y2M4ZDlhNzIxNzgyYjFlZTEwMDg2ODJkODI1MTY4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC00
NDUsOCArNDQ1LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0SlNIZWFwSW5mbyhXVEY6Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbkNsaWVudCYgbWVtb3J5SW5zdHJ1bWVudGEKIHN0YXRpYyB2b2lkIHJlcG9y
dFJlbmRlclRyZWVJbmZvKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50JiBtZW1vcnlJ
bnN0cnVtZW50YXRpb25DbGllbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQXJlbmFTaXplIGFyZW5h
U2l6ZSA9IHBhZ2UtPnJlbmRlclRyZWVTaXplKCk7Ci0KLSAgICBtZW1vcnlJbnN0cnVtZW50YXRp
b25DbGllbnQuY291bnRPYmplY3RTaXplKDAsIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJl
ZVVzZWQsIGFyZW5hU2l6ZS50cmVlU2l6ZSk7CiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50LmNvdW50T2JqZWN0U2l6ZSgwLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlclRyZWVVbnVz
ZWQsIGFyZW5hU2l6ZS5hbGxvY2F0ZWQgLSBhcmVuYVNpemUudHJlZVNpemUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQxYjk3MzhjZTU0NzZlMGRlMzlmOGM0YmRh
Zi4uNjMwODk1NzRjY2E5NDMyYWNhM2RkMDk2MWExNTBlMjBiY2RmMzY2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmNwcApAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lbW9yeU9i
amVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5JbWFnZSI7CiBNZW1v
cnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQYWdlLkxvYWRlciI7
CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyA9ICJQYWdl
LlJlbmRlcmluZyI7CiAKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVk
aW8gPSAiUGFnZS5BdWRpbyI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkF1ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgK
aW5kZXggOWNlYjkyZWM1MzQ3MjFmNTdlNmI2MWJhNmMwZTU3ODIxNzVjODJlMy4uZjRkMzcwYTc2
MDEyOTdmMjVlYzE0Zjk2ZWExNDAyZjM0MjQ1OTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00Myw2
ICs0Myw3IEBAIGNsYXNzIFBsYXRmb3JtTWVtb3J5VHlwZXMgewogcHVibGljOgogICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIEltYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExv
YWRlcjsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBSZW5kZXJpbmc7CiAKICAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBBdWRpbzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBB
dWRpb1NoYXJlZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZkMWEyNDc5YTcyY2U2MzUxYjg4NDg2ZWU4MWUwNmU5
YjMyOTAwYjYuLjBkNzY3ZjY3MjIzMWUxNDI3MWE3ODQwYzY5Y2QyYzI1N2RiY2Q1ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MzcsNiArNzM4LDE2IEBAIFN0cmluZyBH
cmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpIGNvbnN0CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBHcmFwaGlj
c0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJlbnQpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlcGxpY2FMYXll
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXBsaWNhdGVkTGF5ZXIpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNGYzOTU0NDg2MGIyYWVmY2Zl
N2UxYjk2YzNlNWJmZmEwZWY4ZTI4MS4uN2MzM2ZkZDc3YzdhYzVmYWY2MzQ2MDE1OTE3NGU5YWM0
NDJkZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRl
RGVidWdJbmRpY2F0b3JzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hvdWxkIGJl
IGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdpbGxC
ZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDhhMGFmMTUzMDc0
ZTY3Mjk2MzYyMWE0MDA5ODIwY2ZmYzNhZjU2YmEuLmM3OTViMzliOTI1MGM5NzY4MDFjMjc5YjFl
N2NhYzBhMjQzYTIxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTg3OSw2ICs4ODAsMjEgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRpZFNjcm9sbCgpCiAgICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihJbnRQb2ludChtX2xheWVyLT5s
YXllcigpLT5zY3JvbGxQb3NpdGlvbigpKSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9t
aXVtOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgR3JhcGhpY3NMYXllcjo6
cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9uYW1lQmFzZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV90cmFuc2Zvcm1MYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZUxheWVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRzTGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbGlua0hpZ2hsaWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vcGFxdWVSZWN0VHJh
Y2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRp
b25JZE1hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxhYmxlQXJlYSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggZjMzMmU5NDQ0YzVk
ZGEzODlkMDNjOWIyZTBiNDYyYTI2YzliNDEwOS4uMTBmZGE3NjkzOWU1MjUyOTFiNTYyZjBlZGRh
ZjU4YWM4N2U3MzYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTE1
Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRXhwb3NlZCBmb3IgdGVzdHMuCiAgICAgV2Vi
S2l0OjpXZWJMYXllciogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNM
YXllcjsgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU5hbWVz
KCk7CiAgICAgdm9pZCB1cGRhdGVDaGlsZExpc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDQxOGJjZjVlNzE2NzU2ZmEzZjIwNjYxZWQyZTIxMDk1ZWQz
ZWUwYWUuLjE2MWFmMzczMDgxMDdkZjczNDJlZDI3ZmEwYTU0ZjY5N2E3NDUyZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzcyNSw0ICs3NzI1LDE0IEBA
IFN0cmluZyBWYWx1ZVRvU3RyaW5nPFJlbmRlckJsb2NrOjpGbG9hdGluZ09iamVjdCo+OjpzdHJp
bmcoY29uc3QgUmVuZGVyQmxvY2s6OkZsCiAKICNlbmRpZgogCit2b2lkIFJlbmRlckJsb2NrOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94OjpyZXBvcnRNZW1v
cnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zsb2F0aW5n
T2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yYXJlRGF0YSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5lQm94ZXMpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDg5YzgxNmM5Yjc5N2YzZTVjM2EwMzdmNDQ4YWM5NmIwZTNmMmZkZWYuLmNlOWVi
NzA1ZjIyNzdmZjdkMDMwZDg0NjZhNTVmYTIzNDlhOGRkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC01MjAsNiArNTIwLDggQEAgcHJvdGVjdGVkOgogCiAgICAg
dmlydHVhbCB2b2lkIGNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxIZWlnaHRDaGFuZ2UoTGF5b3V0
VW5pdCYgcGFnZUxvZ2ljYWxIZWlnaHQsIGJvb2wmIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCwg
Ym9vbCYgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWlnaHQpOwogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdm9pZCBjb21wdXRlRXhj
bHVzaW9uU2hhcGVTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IDQ0ZjNkZTExYTJiZDg4MzI2NDUzZmRjZDFkNzllZmY3YjY3NTU2Y2YuLjkxNGZiOGQxODk2
MWYyMTM4NTRjM2I5MDEwZjQ0MDRiMzFjM2RhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC00MjEzLDQgKzQyMTMsMTIgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJC
b3g6OnNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWwKICAgICByZXR1cm4gYmVmb3JlQ2hpbGQ7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3Jt
TWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcG9y
dE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9pbmxpbmVCb3hXcmFwcGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX292ZXJmbG93KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CmluZGV4IGMxZGUzZTczNjE5MTZjMzgxYmYxM2MwYjk2YTAxZGJkMjE1MTViYTIuLjJmMzYzOGY3
MTBhMTIxYTkzMWZjZGIxMzg3ZWU4YzU4ZGNlMTI4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKQEAgLTU5OCw2ICs1OTgsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJP
YmplY3QqIHNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkKTsKICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIGJvb2wgZml4ZWRFbGVt
ZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmlldyopIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDAxZjk2OTlkZGY4
ODAwMDZkMDQyMjgxNTFiZjBjZTYzNmI2OWE5MTkuLmEwNTE0ZDAxYWQxMjBjMTE0MWNlMzI1ZjFl
MGM5NzllNzZmYzEwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCkBAIC0xNjQwLDQgKzE2NDAsMTIgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmFkZEFubm90YXRl
ZFJlZ2lvbnMoVmVjdG9yPEFubm90YXRlZFJlZ2lvblZhbHVlPiYgcmVnaW9ucykKIH0KICNlbmRp
ZgogCit2b2lkIFJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyht
ZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOwor
ICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xpbmVCb3hlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA4NDU5MDRiNjUyYTU2MjRhMTMxOWM2ODk0
MmViNmQwNWI0NmFmNmQwLi4wZmFiOGQ2MTJkOTgyMDEzMzk4YWM0NmNhNGNhNDY1Yzc2ZWZlNTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC05MSw2ICs5MSw4
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGl0VGVzdEN1bGxlZElubGluZShjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3ll
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzYzdj
ZjZlNTZkYzc3YjIxYjQyOTgxOTg1YzAzZDBhMGUwOTg3YTJkLi4zMWU2YTljNzMxZWJmODI5Mzc1
Mjk1YWZjODdiZDY1ZTAwYzAxNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTU0MDQsNiArNTQwNCwzMiBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJO
ZWVkc1JlcGFpbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJlcik7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3BhcmVudCk7CisgICAgaW5mby5hZGRXZWFrUG9p
bnRlcihtX3ByZXZpb3VzKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbmV4dCk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX2ZpcnN0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
bGFzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9oQmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3ZCYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcG9zWk9yZGVyTGlzdCk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9uZWdaT3JkZXJMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25vcm1hbEZs
b3dMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBSZWN0c0NhY2hlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX21hcnF1ZWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtKTsK
KyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVmbGVjdGlvbik7CisgICAgaW5mby5hZGRXZWFr
UG9pbnRlcihtX3Njcm9sbENvcm5lcik7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3Jlc2l6
ZXIpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGluZm8uYWRkTWVt
YmVyKG1fYmFja2luZyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA2
NWYxMDcwYWIyZDY2ZGYyZDk0NzE2NTRlY2M5Y2MwZTAxN2M2MWM1Li4xMzYxYWIwMGZmZGFmMzQ3
YWQ3NzMzZjY0YTIxYWU5Yjc1ZjhmNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtNzEwLDYgKzcxMCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5Ub3BMYXll
clN1YnRyZWUoKSBjb25zdDsKICNlbmRpZgogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVaT3Jk
ZXJMaXN0cygpOwogICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDg4YmUwOGRmZWJl
NWY5YTdjYjc4OTI1ODA2NDhiNDRiYmRiOTNjNzQuLjNhZjFlZTdhNzY5ZmE2OWUyYTc3ZmRhZmFj
MmUzMDM1YjhhYTM1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCkBAIC0xOTY5LDYgKzE5NjksMjIgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OmNvbnRlbnRzVmlzaWJsZShjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVj
dCYgbG8KIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9y
eVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9vd25pbmdMYXll
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZ3JhcGhpY3NMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9mb3Jl
Z3JvdW5kTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGFpbm1lbnRMYXllcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5
ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9y
VmVydGljYWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JTY3JvbGxD
b3JuZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nTGF5ZXIpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCBjZGNjMDMw
YzI1MjNmYWVmMjg3ZmRlOTE3NzEwMGZlNGZmNWRiNWY4Li4wZmQwM2U0ODFmMjEzNjA5YjBiZmJk
NzlhMzM0YjkxMDk0ZTI2NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShD
U1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKTsKICNlbmRp
ZgorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5k
ZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNjMThlOWVmYTg4NTljZjIxYy4uYmNlYjk5MjgyOWZk
NGMzOGZhYTI1NDVkMjkxNjg2NzQ3MTdiNTJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTI3NTEsNiArMjc1MSwyNyBA
QCBQYWdlKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2UoKSBjb25zdAogICAgIHJldHVybiAw
OwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpS
ZW5kZXJpbmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJWaWV3KTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3Jvb3RDb250ZW50TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGlw
TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsTGF5ZXIpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzTmVlZGluZ1VwZGF0ZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yU2Ny
b2xsQ29ybmVyKTsKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgaW5mby5hZGRNZW1i
ZXIobV9sYXllckZvck92ZXJoYW5nQXJlYXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVu
dFNoYWRvd0xheWVyKTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJVcGRhdGVy
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IDRkODI4ZjFhNWYxZjEwMGJmMjQwYmMzMTRiMDM3M2FkYWJi
YjU2ZjcuLjFhZGZiZDQ0YTZjZDU2M2Q4N2FjYjIwNzRhMGMzM2Y4OTU4NzliMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIz
MSw2ICsyMzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50UmVjdHMo
KTsKICAgICB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwogCisgICAgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgY2xh
c3MgT3ZlcmxhcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGFlYjMyYjdhMmUzZmQ1YzAwOTgxMzAyYjBkNzM2
MmIzZjY2NjNlNzEuLjFiNzVmNWU0ZTA0MGJmNTViMDg4MzBkMTkyMjc4YzM4N2Q5MjA2ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5jcHAKQEAgLTE3NCw1ICsxNzQsMTIgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojpz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QKICAgICB9
CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpS
ZW5kZXJpbmcpOworICAgIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2xheWVyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuaAppbmRleCBjNjI0MWQzNzc1MTM5NTM1ZjkwZmM2MDU2YTQ0NDI0
ZTlhZDM4NTFlLi44YTRmYzM0MWYzY2IyMmUxNzg3Y2QyMGRjOGFmN2U4YmQ4NjQ0ZmRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgK
QEAgLTQ2LDYgKzQ2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5
ZXIoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBl
bnN1cmVMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CmluZGV4IDBjOWFmNzFmOTdmY2NiN2FhNzJjMzAyZGNmMTI3YzZmNWU2NWYyOTcuLjUyMTYzZjY1
YzAyY2ZhYTQzODE3MmEyOTQyZWZiNzVmZWZkMmZmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zMDM2LDYgKzMwMzYsMTYgQEAgYm9vbCBSZW5kZXJP
YmplY3Q6OmNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25zdAogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJp
bmcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGUpOworICAgIGluZm8uYWRkV2Vha1BvaW50
ZXIobV9ub2RlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBpbmZv
LmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9u
ZXh0KTsKK30KKwogI2lmIEVOQUJMRShTVkcpCiAKIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
KiBSZW5kZXJPYmplY3Q6OnRvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGUwODIxY2YwMDQ2YjA1YjZmMWY2OGU3
YTlmNzVhNDhkN2U1MjNiNjQuLmQwNjMzMzhlOGEzMGI3YjIyYzA2MGFkNDkzOTYzZWRmYTdjMDEx
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI4Miw2ICsy
ODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zLiBE
YW5nZXJvdXMgdG8gdXNlIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmlu
ZGV4IGE5YTI1ZGY2Mzg1ODNhMjQ1ZmEzYjhhYjhhOWFmZWVmMjY1YzczM2IuLjk3YTVjMzI1ZTdk
ZWYzYWZkMDcyNmZlZWZkNzliNmU3Y2FjNDExMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKQEAgLTE5MzAsNCArMTkzMCwxMyBAQCB2b2lkIFJlbmRlclRleHQ6Om1v
bWVudGFyaWx5UmV2ZWFsTGFzdFR5cGVkQ2hhcmFjdGVyKHVuc2lnbmVkIGxhc3RUeXBlZENoYXJh
Y3RlcgogICAgIHNlY3VyZVRleHRUaW1lci0+cmVzdGFydFdpdGhOZXdUZXh0KGxhc3RUeXBlZENo
YXJhY3Rlck9mZnNldCk7CiB9CiAKK3ZvaWQgUmVuZGVyVGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVz
OjpSZW5kZXJpbmcpOworICAgIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5
T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90ZXh0KTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2ZpcnN0VGV4dEJveCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXN0VGV4dEJveCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCmluZGV4IDdiOTg2OTE3ZDhiZGM2Y2ZlNjc3ZWExYTcwZTg3MWU0MjFiMTIxOWEuLjBl
NGQ2MmNkNWZhMWExM2E3ODU0YThlM2YzNWM0ZTcxOThiYzRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTQ0LDYgKzE0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVtb3ZlQW5kRGVzdHJveVRleHRCb3hlcygpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDE0NTdiNmJlMmE0N2Y5ZmI2M2JkYWQyNjFm
MDIwNWE4ZjEwMzEzYTYuLmUyNmEzZGFlYzE5NDNhZTVjMjI3ZTJlYTE4ZGM4YmQ5YjBjYjM5MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTk5Niw0ICs5OTYs
MjQgQEAgUmVuZGVyQmxvY2s6OkludGVydmFsQXJlbmEqIFJlbmRlclZpZXc6OmludGVydmFsQXJl
bmEoKQogICAgIHJldHVybiBtX2ludGVydmFsQXJlbmEuZ2V0KCk7CiB9CiAKK3ZvaWQgUmVuZGVy
Vmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIFJlbmRlckJsb2NrOjpy
ZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2lu
dGVyKG1fZnJhbWVWaWV3KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2VsZWN0aW9uU3Rh
cnQpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9zZWxlY3Rpb25FbmQpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fd2lkZ2V0cyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2xheW91dFN0
YXRlKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1i
ZXIobV9jb21wb3NpdG9yKTsKKyNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYgVVNF
KDNEX0dSQVBISUNTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fY3VzdG9tRmlsdGVyR2xvYmFsQ29u
dGV4dCk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zsb3dUaHJlYWRDb250cm9sbGVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludGVydmFsQXJlbmEpOworICAgIGluZm8uYWRkV2Vh
a1BvaW50ZXIobV9yZW5kZXJRdW90ZUhlYWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBkNjNmOGRmODY4NjEzNzE1
OGI5YWI5ODRlYTFlYzM1NDI0NzZlOTdlLi4xNjk0YThmMjJkZDUzMWJkZjg3NjhlMmRjNTE2OTFl
MDdhNzI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTI4Miw2
ICsyODIsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWlu
ZXI7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlzYWJsZXI7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURF
OworCiBwcm90ZWN0ZWQ6CiAgICAgRnJhbWVWaWV3KiBtX2ZyYW1lVmlldzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176627</attachid>
            <date>2012-11-28 19:11:45 -0800</date>
            <delta_ts>2012-11-29 10:30:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121128190920.patch</filename>
            <type>text/plain</type>
            <size>25946</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyYjhjMDBiZjYyN2Y5
ZjEyMjgyMDU1YTYxNjUyNDQ1MzJjNTQ1OC4uM2Y2NGMxMGYwMDZhMmEyNDg0MDQ3YzNhMTdiNDI4
Y2VkOTJkYjAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTExLTI4ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Lmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChQbGF0Zm9ybU1lbW9yeVR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNocm9t
aXVtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxv
Y2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAg
KFJlbmRlckxheWVyQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRv
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckxheWVyTW9kZWxPYmplY3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJPYmplY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgIChSZW5kZXJUZXh0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5oOgorICAgICAgICAoUmVuZGVyVmlldyk6CisKIDIwMTItMTEtMjggIEpv
c2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIElu
ZGV4ZWREQjogQXNzZXJ0L2NyYXNoIGluIGluZGV4aW5nIGxheW91dCB0ZXN0cyBpbiBjb250ZW50
X3NoZWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZWE3NzQ3YTc4ZWI0ZGVjNDU3NzcyYmI0YjYzYjc2
NTc3YzYxY2E3OC4uYjEwNDI0ZTFlMjBiZjk2MzkwMzI0ODVlNTg1Yjg2Y2JhMTEyNWE5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcApAQCAtMjcyNCw4ICsyNzI0LDcgQEAgdm9pZCBOb2RlOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbmV4dCk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7Ci0gICAgaWYgKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICBpbmZvLmFkZE1lbWJlcihyZW5kZXJl
ci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodGhpcy0+cmVuZGVyZXIoKSk7CiAgICAg
aWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRhKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTExNTJmMmM3NjkxNmU5OWM3MTczODExYzIuLjY1
MzI2YmFiYTU4MTdlNDBlNGVmNzhjZTYzM2I0MmE0MmMwN2U0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTY3LDgg
KzY3LDcgQEAgTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkpTSGVhcFVudXNl
ZCA9ICJKU0hlYXAuVW51c2VkIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkRPTVN0b3JhZ2VDYWNoZSA9ICJET01TdG9yYWdlQ2FjaGUiOwogCi1NZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJlZVVzZWQgPSAiUmVuZGVyVHJlZS5Vc2Vk
IjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2Vk
ID0gIlJlbmRlclRyZWUuVW51c2VkIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5
cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlVudXNlZC5SZW5kZXJUcmVlIjsKIAogTWVtb3J5T2Jq
ZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlByb2Nlc3NQcml2YXRlTWVtb3J5ID0gIlByb2Nl
c3NQcml2YXRlTWVtb3J5IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAxZDUwZTYz
ZWE4YmNiNzQxYy4uYTU3NTBmNWI1Y2M4ZDlhNzIxNzgyYjFlZTEwMDg2ODJkODI1MTY4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3Bw
CkBAIC00NDUsOCArNDQ1LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0SlNIZWFwSW5mbyhXVEY6Ok1l
bW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCYgbWVtb3J5SW5zdHJ1bWVudGEKIHN0YXRpYyB2b2lk
IHJlcG9ydFJlbmRlclRyZWVJbmZvKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50JiBt
ZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQXJlbmFTaXpl
IGFyZW5hU2l6ZSA9IHBhZ2UtPnJlbmRlclRyZWVTaXplKCk7Ci0KLSAgICBtZW1vcnlJbnN0cnVt
ZW50YXRpb25DbGllbnQuY291bnRPYmplY3RTaXplKDAsIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVu
ZGVyVHJlZVVzZWQsIGFyZW5hU2l6ZS50cmVlU2l6ZSk7CiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0
aW9uQ2xpZW50LmNvdW50T2JqZWN0U2l6ZSgwLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlclRy
ZWVVbnVzZWQsIGFyZW5hU2l6ZS5hbGxvY2F0ZWQgLSBhcmVuYVNpemUudHJlZVNpemUpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQxYjk3MzhjZTU0NzZlMGRlMzlm
OGM0YmRhZi4uMGUxZDBiMDhhY2YzNzhhZGUyMTA0MzQyMmRkZTYyZTZlZTM4ODk2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1l
bW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5JbWFnZSI7
CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQYWdlLkxv
YWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyA9
ICJQYWdlLlJlbmRlcmluZyI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkxheWVycyA9ICJQYWdlLlJlbmRlcmluZy5MYXllcnMiOwogCiBNZW1vcnlPYmplY3RUeXBlIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvID0gIlBhZ2UuQXVkaW8iOwogTWVtb3J5T2JqZWN0VHlw
ZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEgPSAiUGFnZS5BdWRpby5TaGFy
ZWREYXRhIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDljZWI5MmVjNTM0NzIxZjU3ZTZiNjFiYTZjMGU1
NzgyMTc1YzgyZTMuLmZlZjE5ZTk1NWM1OTNhYzYzZTg4OTg5NzY5NDE2MTU5ZmMwNzNhNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0
cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsOCBAQCBjbGFzcyBQbGF0Zm9ybU1lbW9yeVR5cGVz
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbWFnZTsKICAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUg
UmVuZGVyaW5nOworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExheWVyczsKIAogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIEF1ZGlvOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBl
IEF1ZGlvU2hhcmVkRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNmQxYTI0NzlhNzJjZTYzNTFiODg0ODZlZTgxZTA2
ZTliMzI5MDBiNi4uM2FkN2FkNmM4NTY4N2FmYzAwODFlZGQxNGYyZTg3MzJiYmZjYTc1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
aCIKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTczNyw2ICs3MzgsMTYgQEAgU3RyaW5n
IEdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciBi
ZWhhdmlvcikgY29uc3QKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lkIEdyYXBo
aWNzTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3BhcmVudCk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9tYXNrTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVwbGljYUxheWVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlcGxpY2F0ZWRMYXllcik7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0ZjM5NTQ0ODYwYjJhZWZjZmU3
ZTFiOTZjM2U1YmZmYTBlZjhlMjgxLi43YzMzZmRkNzdjN2FjNWZhZjYzNDYwMTU5MTc0ZTlhYzQ0
MmRmYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCkBAIC00MjYsNiArNDI2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAvLyBTaG91bGQgYmUg
Y2FsbGVkIGZyb20gZGVyaXZlZCBjbGFzcyBkZXN0cnVjdG9ycy4gU2hvdWxkIGNhbGwgd2lsbEJl
RGVzdHJveWVkKCkgb24gc3VwZXIuCiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOGEwYWYxNTMwNzRl
NjcyOTYzNjIxYTQwMDk4MjBjZmZjM2FmNTZiYS4uN2JlYzcxZTAzMTJlMGViNWRiZTU3OTdiOWUz
ZmU4NjQyNTM4Y2Q0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBA
IC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4
Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtODc5LDYgKzg4MCwyMSBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGlkU2Nyb2xsKCkKICAgICAgICAgbV9zY3JvbGxhYmxl
QXJlYS0+c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKEludFBvaW50KG1fbGF5ZXItPmxh
eWVyKCktPnNjcm9sbFBvc2l0aW9uKCkpKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21p
dW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgUGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5ZXJzKTsKKyAgICBHcmFwaGljc0xheWVyOjpyZXBv
cnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25h
bWVCYXNlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3RyYW5zZm9ybUxheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlTGF5ZXIpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudHNMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9saW5rSGlnaGxpZ2h0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX29wYXF1ZVJlY3RUcmFja2lu
Z0NvbnRlbnRMYXllckRlbGVnYXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2FuaW1hdGlvbklk
TWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGFibGVBcmVhKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCBmMzMyZTk0NDRjNWRkYTM4
OWQwM2M5YjJlMGI0NjJhMjZjOWI0MTA5Li4xMGZkYTc2OTM5ZTUyNTI5MWI1NjJmMGVkZGFmNThh
Yzg3ZTczNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTUyLDYg
KzE1Miw4IEBAIHB1YmxpYzoKICAgICAvLyBFeHBvc2VkIGZvciB0ZXN0cy4KICAgICBXZWJLaXQ6
OldlYkxheWVyKiBjb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVy
OyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTmFtZXMoKTsK
ICAgICB2b2lkIHVwZGF0ZUNoaWxkTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggOGM2MjQ5NzY1OWVkZjk1Y2JjYjMxMTlhNWM5ZmNlNzFiMGQzMDUz
YS4uODk0MDIzNGYwMjQwMDg2ZmIwNTNjOTQzZjMyMjBmZDE2Yjk3YmQ5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03NzM1LDQgKzc3MzUsMTQgQEAgU3Ry
aW5nIFZhbHVlVG9TdHJpbmc8UmVuZGVyQmxvY2s6OkZsb2F0aW5nT2JqZWN0Kj46OnN0cmluZyhj
b25zdCBSZW5kZXJCbG9jazo6RmwKIAogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxvY2s6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZv
cm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3g6OnJlcG9ydE1lbW9yeVVz
YWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxvYXRpbmdPYmpl
Y3RzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JhcmVEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVCb3hlcyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
aW5kZXggOWYwMDg0NzdiYzRjMGJkOWI4NDIyODFiZTgyMDRiNmM1ODc1NjBhYy4uMjBlYWRmOTUz
NTkxZDVlOTlkZmU4MzgzNjUyMTRjY2E0YTUzYzkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgKQEAgLTUyMiw2ICs1MjIsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0
dWFsIHZvaWQgY2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRVbml0
JiBwYWdlTG9naWNhbEhlaWdodCwgYm9vbCYgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBib29s
JiBoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2
YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIGNvbXB1dGVFeGNsdXNp
b25TaGFwZVNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NDRmM2RlMTFhMmJkODgzMjY0NTNmZGNkMWQ3OWVmZjdiNjc1NTZjZi4uOTE0ZmI4ZDE4OTYxZjIx
Mzg1NGMzYjkwMTBmNDQwNGIzMWMzZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTQyMTMsNCArNDIxMywxMiBAQCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6
c3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbAog
ICAgIHJldHVybiBiZWZvcmVDaGlsZDsKIH0KIAordm9pZCBSZW5kZXJCb3g6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2lu
bGluZUJveFdyYXBwZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3ZlcmZsb3cpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5k
ZXggYzFkZTNlNzM2MTkxNmMzODFiZjEzYzBiOTZhMDFkYmQyMTUxNWJhMi4uMmYzNjM4ZjcxMGEx
MjFhOTMxZmNkYjEzODdlZThjNThkY2UxMjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtNTk4LDYgKzU5OCw4IEBAIHByb3RlY3RlZDoKIAogICAgIFJlbmRlck9iamVj
dCogc3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQpOwogIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgYm9vbCBmaXhlZEVsZW1lbnRM
YXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3KikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZGIxYjE4NWY2NWQ0Njlk
MzMzYjZjNjFkMGEyZTQ5Mjc5YzdlNzE1Ni4uMmE5YmZjODdiMTg5NjhkNDA3N2ZlOWYxOTFmYmYz
NmE0ZWVlNmNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAK
QEAgLTE2NDEsNCArMTY0MSwxMiBAQCB2b2lkIFJlbmRlcklubGluZTo6YWRkQW5ub3RhdGVkUmVn
aW9ucyhWZWN0b3I8QW5ub3RhdGVkUmVnaW9uVmFsdWU+JiByZWdpb25zKQogfQogI2VuZGlmCiAK
K3ZvaWQgUmVuZGVySW5saW5lOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8p
OworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRyZW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1f
bGluZUJveGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IDg0NTkwNGI2NTJhNTYyNGExMzE5YzY4OTQyZWI2
ZDA1YjQ2YWY2ZDAuLjBmYWI4ZDYxMmQ5ODIwMTMzOThhYzQ2Y2E0Y2E0NjVjNzZlZmU1MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTkxLDYgKzkxLDggQEAg
cHVibGljOgogCiAgICAgYm9vbCBoaXRUZXN0Q3VsbGVkSW5saW5lKGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIAorICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZF
UlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDNjN2NmNmU1
NmRjNzdiMjFiNDI5ODE5ODVjMDNkMGEwZTA5ODdhMmQuLjZiZGU0NTdhNzdiZTc4MjAzZDhiMGU3
YTdjNmY4NGE0NWI1YTlmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtOTksNiArOTksNyBAQAogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRl
ICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFt
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNTQwNCw2ICs1NDA1LDMyIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5lZWRzUmVwYWludCgpCiB9CiAjZW5kaWYKIAordm9p
ZCBSZW5kZXJMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5h
ZGRXZWFrUG9pbnRlcihtX3JlbmRlcmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFy
ZW50KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9uZXh0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZmlyc3QpOwor
ICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9sYXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hC
YXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdkJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9w
b3NaT3JkZXJMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25lZ1pPcmRlckxpc3QpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fbm9ybWFsRmxvd0xpc3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2xpcFJlY3RzQ2FjaGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7CisgICAgaW5m
by5hZGRNZW1iZXIobV90cmFuc2Zvcm0pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZWZs
ZWN0aW9uKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2Nyb2xsQ29ybmVyKTsKKyAgICBp
bmZvLmFkZFdlYWtQb2ludGVyKG1fcmVzaXplcik7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNraW5nKTsKKyNlbmRpZgorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJkNjZkZjJkOTQ3MTY1NGVjYzljYzBl
MDE3YzYxYzUuLjEzNjFhYjAwZmZkYWYzNDdhZDc3MzNmNjRhMjFhZTliNzVmOGY3MzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC03MTAsNiArNzEwLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaXNJblRvcExheWVyU3VidHJlZSgpIGNvbnN0OwogI2VuZGlmCiAKKyAg
ICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxkWk9y
ZGVyTGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggODhiZTA4ZGZlYmU1ZjlhN2NiNzg5MjU4MDY0OGI0NGJiZGI5M2M3NC4u
M2FmMWVlN2E3NjlmYTY5ZTJhNzdmZGFmYWMyZTMwMzViOGFhMzU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE5NjksNiArMTk2
OSwyMiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNWaXNpYmxlKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBjb25zdCBJbnRSZWN0JiBsbwogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5h
ZGRXZWFrUG9pbnRlcihtX293bmluZ0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2FuY2Vz
dG9yQ2xpcHBpbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ncmFwaGljc0xheWVyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2ZvcmVncm91bmRMYXllcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9jb250YWlubWVudExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21hc2tMYXllcik7
CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9sYXllckZvclNjcm9sbENvcm5lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9z
Y3JvbGxpbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxpbmdDb250ZW50c0xh
eWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCmluZGV4IGNkY2MwMzBjMjUyM2ZhZWYyODdmZGU5MTc3MTAwZmU0ZmY1ZGI1
ZjguLjBmZDAzZTQ4MWYyMTM2MDliMGJmYmQ3OWEzMzRiOTEwOTRlMjY2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE4NCw2ICsxODQs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICB2b2lkIHNldEJs
ZW5kTW9kZShCbGVuZE1vZGUpOwogI2VuZGlmCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVQcmlt
YXJ5R3JhcGhpY3NMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA4NzBiZjFkZGZhNzM5NTljMGVlMGEyY2MxOGU5
ZWZhODg1OWNmMjFjLi5iY2ViOTkyODI5ZmQ0YzM4ZmFhMjU0NWQyOTE2ODY3NDcxN2I1MmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcApAQCAtMjc1MSw2ICsyNzUxLDI3IEBAIFBhZ2UqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRXZWFrUG9p
bnRlcihtX3JlbmRlclZpZXcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcm9vdENvbnRlbnRMYXll
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9z
Y3JvbGxMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnNOZWVk
aW5nVXBkYXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXIpOworI2lmIEVOQUJMRShSVUJCRVJf
QkFORElORykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50U2hhZG93TGF5ZXIpOworI2VuZGlmCisgICAgaW5m
by5hZGRNZW1iZXIobV9sYXllclVwZGF0ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNGQ4MjhmMWE1
ZjFmMTAwYmYyNDBiYzMxNGIwMzczYWRhYmJiNTZmNy4uMWFkZmJkNDRhNmNkNTYzZDg3YWNiMjA3
NGEwYzMzZjg5NTg3OWIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjMxLDYgKzIzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc2V0VHJhY2tlZFJlcGFpbnRSZWN0cygpOwogICAgIHZvaWQgc2V0VHJhY2tzUmVwYWludHMo
Ym9vbCk7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFwTWFwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggYWVi
MzJiN2EyZTNmZDVjMDA5ODEzMDJiMGQ3MzYyYjNmNjY2M2U3MS4uMWI3NWY1ZTRlMDQwYmY1NWIw
ODgzMGQxOTIyNzhjMzg3ZDkyMDZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAtMTc0LDUgKzE3NCwxMiBAQCB2b2lk
IFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdAogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0Ojpy
ZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2lu
dGVyKG1fbGF5ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGM2MjQx
ZDM3NzUxMzk1MzVmOTBmYzYwNTZhNDQ0MjRlOWFkMzg1MWUuLjhhNGZjMzQxZjNjYjIyZTE3ODdj
ZDIwZGM4YWY3ZThiZDg2NDRmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7
CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggYWU1YTAxYjUxYzU1YzE0NjM1NjgyNWMy
ZGYxZWNiYTgxYWFkMTdmZS4uZjY2MTE3MWE3NmY0Y2MxOTY0OTEzZGNmOTY2MWYzMWVhMzNhY2Rh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTMwNTUs
NiArMzA1NSwxNiBAQCBib29sIFJlbmRlck9iamVjdDo6Y2FuQmVSZXBsYWNlZFdpdGhJbmxpbmVS
dW5JbigpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVuZGVyT2JqZWN0Ojpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHls
ZSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX25vZGUpOworICAgIGluZm8uYWRkV2Vha1Bv
aW50ZXIobV9wYXJlbnQpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9wcmV2aW91cyk7Cisg
ICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX25leHQpOworfQorCiAjaWYgRU5BQkxFKFNWRykKIAog
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqIFJlbmRlck9iamVjdDo6dG9SZW5kZXJTVkdSZXNv
dXJjZUNvbnRhaW5lcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5k
ZXggNGZhZTc3OWZlYzVhMTQyZjkxZWFlNjZiOTIxODExYTU0M2ZkOTZlOS4uNWUwZWI4N2Q0NGU4
MmNkZmU4Njk5N2UzMDgyN2JmYTk1YzY0ODRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgY3JlYXRlc0Fub255bW91c1dyYXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCisgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
ICAgIC8vIEhlbHBlciBmdW5jdGlvbnMuIERhbmdlcm91cyB0byB1c2UhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggYTlhMjVkZjYzODU4M2EyNDVmYTNiOGFiOGE5
YWZlZWYyNjVjNzMzYi4uOTdhNWMzMjVlN2RlZjNhZmQwNzI2ZmVlZmQ3OWI2ZTdjYWM0MTEzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTkzMCw0ICsxOTMw
LDEzIEBAIHZvaWQgUmVuZGVyVGV4dDo6bW9tZW50YXJpbHlSZXZlYWxMYXN0VHlwZWRDaGFyYWN0
ZXIodW5zaWduZWQgbGFzdFR5cGVkQ2hhcmFjdGVyCiAgICAgc2VjdXJlVGV4dFRpbWVyLT5yZXN0
YXJ0V2l0aE5ld1RleHQobGFzdFR5cGVkQ2hhcmFjdGVyT2Zmc2V0KTsKIH0KIAordm9pZCBSZW5k
ZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0
OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3RleHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RUZXh0Qm94KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xhc3RUZXh0Qm94KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggN2I5ODY5MTdkOGJkYzZjZmU2
NzdlYTFhNzBlODcxZTQyMWIxMjE5YS4uMGU0ZDYyY2Q1ZmExYTEzYTc4NTRhOGUzZjM1YzRlNzE5
OGJjNGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0xNDQsNiAr
MTQ0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXgg
MTQ1N2I2YmUyYTQ3ZjlmYjYzYmRhZDI2MWYwMjA1YThmMTAzMTNhNi4uMDNhODRlMTg3YTE3MjZm
NDBkZDM0OWY3ZjkzZGNmZmEwOTQwNmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcApAQCAtOTk2LDQgKzk5NiwyNCBAQCBSZW5kZXJCbG9jazo6SW50ZXJ2YWxBcmVu
YSogUmVuZGVyVmlldzo6aW50ZXJ2YWxBcmVuYSgpCiAgICAgcmV0dXJuIG1faW50ZXJ2YWxBcmVu
YS5nZXQoKTsKIH0KIAordm9pZCBSZW5kZXJWaWV3OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRl
cmluZyk7CisgICAgUmVuZGVyQmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdElu
Zm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcmFtZVZpZXcpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9zZWxlY3Rpb25TdGFydCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlciht
X3NlbGVjdGlvbkVuZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV93aWRnZXRzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xheW91dFN0YXRlKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wb3NpdG9yKTsKKyNlbmRpZgorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykgJiYgVVNFKDNEX0dSQVBISUNTKQorICAgIGluZm8uYWRkTWVtYmVyKG1f
Y3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dCk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlciht
X2Zsb3dUaHJlYWRDb250cm9sbGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludGVydmFsQXJl
bmEpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJRdW90ZUhlYWQpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApp
bmRleCBkNjNmOGRmODY4NjEzNzE1OGI5YWI5ODRlYTFlYzM1NDI0NzZlOTdlLi4xNjk0YThmMjJk
ZDUzMWJkZjg3NjhlMmRjNTE2OTFlMDdhNzI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKQEAgLTI4Miw2ICsyODIsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlz
YWJsZXI7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgRnJhbWVWaWV3KiBtX2Zy
YW1lVmlldzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176756</attachid>
            <date>2012-11-29 10:30:35 -0800</date>
            <delta_ts>2012-11-29 10:34:26 -0800</delta_ts>
            <desc>with fix for mac and elf</desc>
            <filename>bug-103564-20121129102810.patch</filename>
            <type>text/plain</type>
            <size>29137</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNjYzMWY3NTBlZmNh
ZjRjMTI1ZjkyNDQzZTE2ZGVmYWUwYjlkMC4uZjJjZTQ2MzRlNzQ0YzE5OWMyZDhkYjAwODkwNjQ2
MWFhNGYyYTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTI5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VHlwbyBpbiAnYXV0b2ZvY3VzJyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IGFmOTFkM2Q5NTU0NDRiMmJiYzQ1ZTQ3ODIyNTI4NDg4ZjVlN2E0MTUuLjQx
MWM4MDI2ZWE2MjAzZDQ2ZTVlZWU2MmU1NWVhNDcwYjhjODRmODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMTk1LDYgKzExOTUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTh0
aXRsZURpc3BsYXlTdHJpbmdFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDVpbWFnZUV2
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0NXRpdGxlRVJOU18xM1RleHREaXJlY3Rpb25F
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0OWltYWdlUmVjdEV2CitfX1pOSzdXZWJDb3Jl
MTNHcmFwaGljc0xheWVyMTdyZXBvcnRNZW1vcnlVc2FnZUVQTjNXVEYxNk1lbW9yeU9iamVjdElu
Zm9FCiBfX1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yN2NmRXJyb3JFdgogX19aTks3V2ViQ29y
ZTEzUmVzb3VyY2VFcnJvcjduc0Vycm9yRXYKIF9fWk5LN1dlYkNvcmUxM1Jlc291cmNlRXJyb3Jj
dlA3TlNFcnJvckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggOWYwODkwM2MxZjM5ZGM3YTZlZjQ0Zjc2
OTNhYTI3ZDhhMzU3Y2E1MS4uZDIyNjEwNDMxZWViZjc3NWFjMWEzZjhhNTljNjlhZDI4ODY4Nzgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjcyNCw4ICsyNzI0LDcgQEAgdm9pZCBOb2RlOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbmV4
dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7Ci0gICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICBpbmZvLmFkZE1lbWJlcihy
ZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodGhpcy0+cmVuZGVyZXIoKSk7
CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTExNTJmMmM3NjkxNmU5OWM3MTczODEx
YzIuLjY1MzI2YmFiYTU4MTdlNDBlNGVmNzhjZTYzM2I0MmE0MmMwN2U0YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAg
LTY3LDggKzY3LDcgQEAgTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkpTSGVh
cFVudXNlZCA9ICJKU0hlYXAuVW51c2VkIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTVN0b3JhZ2VDYWNoZSA9ICJET01TdG9yYWdlQ2FjaGUiOwogCi1NZW1vcnlP
YmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJlZVVzZWQgPSAiUmVuZGVyVHJl
ZS5Vc2VkIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVl
VW51c2VkID0gIlJlbmRlclRyZWUuVW51c2VkIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlVudXNlZC5SZW5kZXJUcmVlIjsKIAogTWVt
b3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlByb2Nlc3NQcml2YXRlTWVtb3J5ID0g
IlByb2Nlc3NQcml2YXRlTWVtb3J5IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAx
ZDUwZTYzZWE4YmNiNzQxYy4uYTU3NTBmNWI1Y2M4ZDlhNzIxNzgyYjFlZTEwMDg2ODJkODI1MTY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCkBAIC00NDUsOCArNDQ1LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0SlNIZWFwSW5mbyhX
VEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCYgbWVtb3J5SW5zdHJ1bWVudGEKIHN0YXRp
YyB2b2lkIHJlcG9ydFJlbmRlclRyZWVJbmZvKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50JiBtZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQXJl
bmFTaXplIGFyZW5hU2l6ZSA9IHBhZ2UtPnJlbmRlclRyZWVTaXplKCk7Ci0KLSAgICBtZW1vcnlJ
bnN0cnVtZW50YXRpb25DbGllbnQuY291bnRPYmplY3RTaXplKDAsIFdlYkNvcmVNZW1vcnlUeXBl
czo6UmVuZGVyVHJlZVVzZWQsIGFyZW5hU2l6ZS50cmVlU2l6ZSk7CiAgICAgbWVtb3J5SW5zdHJ1
bWVudGF0aW9uQ2xpZW50LmNvdW50T2JqZWN0U2l6ZSgwLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJl
bmRlclRyZWVVbnVzZWQsIGFyZW5hU2l6ZS5hbGxvY2F0ZWQgLSBhcmVuYVNpemUudHJlZVNpemUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQxYjk3MzhjZTU0NzZl
MGRlMzlmOGM0YmRhZi4uMGUxZDBiMDhhY2YzNzhhZGUyMTA0MzQyMmRkZTYyZTZlZTM4ODk2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5J
bWFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQ
YWdlLkxvYWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRl
cmluZyA9ICJQYWdlLlJlbmRlcmluZyI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OkxheWVycyA9ICJQYWdlLlJlbmRlcmluZy5MYXllcnMiOwogCiBNZW1vcnlPYmplY3RU
eXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvID0gIlBhZ2UuQXVkaW8iOwogTWVtb3J5T2Jq
ZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEgPSAiUGFnZS5BdWRp
by5TaGFyZWREYXRhIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDljZWI5MmVjNTM0NzIxZjU3ZTZiNjFi
YTZjMGU1NzgyMTc1YzgyZTMuLmZlZjE5ZTk1NWM1OTNhYzYzZTg4OTg5NzY5NDE2MTU5ZmMwNzNh
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsOCBAQCBjbGFzcyBQbGF0Zm9ybU1lbW9y
eVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbWFnZTsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisgICAgc3RhdGljIE1lbW9yeU9iamVj
dFR5cGUgUmVuZGVyaW5nOworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExheWVyczsKIAog
ICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEF1ZGlvOwogICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIEF1ZGlvU2hhcmVkRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNmQxYTI0NzlhNzJjZTYzNTFiODg0ODZl
ZTgxZTA2ZTliMzI5MDBiNi4uYTk2YmRjNmFkM2JiM2NhMzIyZWExNTlmOGExMTNiMTk4ODA3MDQ3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHAKQEAgLTMzLDkgKzMzLDExIEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MzcsNiAr
NzM5LDE2IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsK
IH0KIAordm9pZCBHcmFwaGljc0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxheWVycyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJl
bnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3JlcGxpY2FMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXBsaWNhdGVkTGF5ZXIp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNGYz
OTU0NDg2MGIyYWVmY2ZlN2UxYjk2YzNlNWJmZmEwZWY4ZTI4MS4uN2MzM2ZkZDc3YzdhYzVmYWY2
MzQ2MDE1OTE3NGU5YWM0NDJkZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNo
b3VsZCBjYWxsIHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDhhMGFmMTUzMDc0ZTY3Mjk2MzYyMWE0MDA5ODIwY2ZmYzNhZjU2YmEuLmM5MzQ5NzY2ZmU2
NjhkZThhZjUyMzE2ODQyZmM5ODQwMTgxNDIzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVuYXRpb24uaCIKICNpbmNsdWRlICJT
Y3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlNrSW1hZ2VGaWx0ZXIuaCIKICNpbmNsdWRlICJT
a01hdHJpeDQ0LmgiCkBAIC03MCw2ICs3MSw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtODc5LDYg
Kzg4MSwyMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGlkU2Nyb2xsKCkKICAgICAg
ICAgbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKEludFBv
aW50KG1fbGF5ZXItPmxheWVyKCktPnNjcm9sbFBvc2l0aW9uKCkpKTsKIH0KIAordm9pZCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5ZXJzKTsKKyAgICBHcmFw
aGljc0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX25hbWVCYXNlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zZm9ybUxheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2ltYWdlTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudHNMYXllcik7CisgICAg
aW5mby5hZGRNZW1iZXIobV9saW5rSGlnaGxpZ2h0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX29w
YXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2FuaW1hdGlvbklkTWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGFibGVBcmVh
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCBm
MzMyZTk0NDRjNWRkYTM4OWQwM2M5YjJlMGI0NjJhMjZjOWI0MTA5Li4xMGZkYTc2OTM5ZTUyNTI5
MWI1NjJmMGVkZGFmNThhYzg3ZTczNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaApAQCAtMTUyLDYgKzE1Miw4IEBAIHB1YmxpYzoKICAgICAvLyBFeHBvc2VkIGZvciB0ZXN0
cy4KICAgICBXZWJLaXQ6OldlYkxheWVyKiBjb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50c0xheWVyOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIHZvaWQg
dXBkYXRlTmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkTGlzdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggOGM2MjQ5NzY1OWVkZjk1Y2JjYjMxMTlh
NWM5ZmNlNzFiMGQzMDUzYS4uMTdhNWFlOTM1MDAwOWZiZGFmNmJlYjNmOTliODhkNGI3YTkyYmZm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC02MSw2ICs2
MSw3IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICNpbmNsdWRlICJFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8uaCIKQEAgLTc3MzUsNCArNzczNiwxNCBAQCBTdHJpbmcgVmFsdWVUb1N0cmlu
ZzxSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3QqPjo6c3RyaW5nKGNvbnN0IFJlbmRlckJsb2Nr
OjpGbAogCiAjZW5kaWYKIAordm9pZCBSZW5kZXJCbG9jazo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpS
ZW5kZXJpbmcpOworICAgIFJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mbG9hdGluZ09iamVjdHMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fcmFyZURhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRyZW4pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fbGluZUJveGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA5ZjAwODQ3N2Jj
NGMwYmQ5Yjg0MjI4MWJlODIwNGI2YzU4NzU2MGFjLi4yMGVhZGY5NTM1OTFkNWU5OWRmZTgzODM2
NTIxNGNjYTRhNTNjOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApA
QCAtNTIyLDYgKzUyMiw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBjaGVja0Zv
clBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExheW91dFVuaXQmIHBhZ2VMb2dpY2FsSGVp
Z2h0LCBib29sJiBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQsIGJvb2wmIGhhc1NwZWNpZmllZFBh
Z2VMb2dpY2FsSGVpZ2h0KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgIHZvaWQgY29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA0NGYzZGUxMWEyYmQ4ODMy
NjQ1M2ZkY2QxZDc5ZWZmN2I2NzU1NmNmLi40NzI2OGYzNTkxMmRiOWYyMDhiYzYyYzI1ZWE4NzQ2
OGFmZGUwOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNTQs
NiArNTQsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJU
aGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxt
YXRoLmg+CiAKQEAgLTQyMTMsNCArNDIxNCwxMiBAQCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6
c3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbAog
ICAgIHJldHVybiBiZWZvcmVDaGlsZDsKIH0KIAordm9pZCBSZW5kZXJCb3g6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2lu
bGluZUJveFdyYXBwZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3ZlcmZsb3cpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5k
ZXggYzFkZTNlNzM2MTkxNmMzODFiZjEzYzBiOTZhMDFkYmQyMTUxNWJhMi4uMmYzNjM4ZjcxMGEx
MjFhOTMxZmNkYjEzODdlZThjNThkY2UxMjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtNTk4LDYgKzU5OCw4IEBAIHByb3RlY3RlZDoKIAogICAgIFJlbmRlck9iamVj
dCogc3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQpOwogIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgYm9vbCBmaXhlZEVsZW1lbnRM
YXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3KikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZGIxYjE4NWY2NWQ0Njlk
MzMzYjZjNjFkMGEyZTQ5Mjc5YzdlNzE1Ni4uMDI2OWM0ZjgxZWQ1ZjA3ODJiYzA1ZjhhMGY1ZDEy
NTY0YjAzZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKICNpbmNs
dWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KIApAQCAtMTY0MSw0ICsxNjQyLDEyIEBAIHZvaWQgUmVuZGVySW5s
aW5lOjphZGRBbm5vdGF0ZWRSZWdpb25zKFZlY3RvcjxBbm5vdGF0ZWRSZWdpb25WYWx1ZT4mIHJl
Z2lvbnMpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJJbmxpbmU6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBl
czo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNh
Z2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZHJlbik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9saW5lQm94ZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXggODQ1OTA0YjY1
MmE1NjI0YTEzMTljNjg5NDJlYjZkMDViNDZhZjZkMC4uMGZhYjhkNjEyZDk4MjAxMzM5OGFjNDZj
YTRjYTQ2NWM3NmVmZTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aApAQCAtOTEsNiArOTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhpdFRlc3RDdWxsZWRJbmxp
bmUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3N2IyMWI0Mjk4MTk4NWMwM2QwYTBlMDk4N2EyZC4uMzk3
ZjFhYTBkMjQyY2JhODIxYmRiZjMzMzMzNDhmNjdiOTIxMTQxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC05OSw2ICs5OSw4IEBACiAjaW5jbHVkZSAiVGV4
dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAi
VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNl
ZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNTQwNCw2ICs1NDA2
LDMyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5lZWRzUmVwYWludCgpCiB9CiAjZW5kaWYK
IAordm9pZCBSZW5kZXJMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlcmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVy
KG1fcGFyZW50KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGlu
Zm8uYWRkV2Vha1BvaW50ZXIobV9uZXh0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZmly
c3QpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9sYXN0KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2hCYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdkJhcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9wb3NaT3JkZXJMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25lZ1pPcmRlckxpc3Qp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbm9ybWFsRmxvd0xpc3QpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2xpcFJlY3RzQ2FjaGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm0pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9yZWZsZWN0aW9uKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2Nyb2xsQ29ybmVyKTsK
KyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVzaXplcik7CisKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNraW5nKTsKKyNlbmRpZgor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJkNjZkZjJkOTQ3MTY1NGVj
YzljYzBlMDE3YzYxYzUuLjEzNjFhYjAwZmZkYWYzNDdhZDc3MzNmNjRhMjFhZTliNzVmOGY3MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC03MTAsNiArNzEwLDgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJblRvcExheWVyU3VidHJlZSgpIGNvbnN0OwogI2VuZGlm
CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1
aWxkWk9yZGVyTGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggODhiZTA4ZGZlYmU1ZjlhN2NiNzg5MjU4MDY0OGI0NGJiZGI5
M2M3NC4uNzczNjFmNzQzODc1ODQ0NTRlMWNjZDBhZTU5YWViZjhjNmMwMzRjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU1LDYg
KzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xOTY5LDYgKzE5NzAsMjIgQEAgYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRzVmlzaWJsZShjb25zdCBHcmFwaGljc0xheWVyKiwg
Y29uc3QgSW50UmVjdCYgbG8KIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQ
bGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9vd25pbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmNlc3RvckNsaXBwaW5nTGF5
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JhcGhpY3NMYXllcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9mb3JlZ3JvdW5kTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGFpbm1l
bnRMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5ZXIpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5
ZXJGb3JTY3JvbGxDb3JuZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nTGF5ZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcik7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApp
bmRleCBjZGNjMDMwYzI1MjNmYWVmMjg3ZmRlOTE3NzEwMGZlNGZmNWRiNWY4Li4wZmQwM2U0ODFm
MjEzNjA5YjBiZmJkNzlhMzM0YjkxMDk0ZTI2NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRN
b2RlKTsKICNlbmRpZgorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNjMThlOWVmYTg4NTljZjIxYy4u
ZDhhNzlhN2M4M2ExOTJlMmU0ZTczNGUzNjJkMmVkYzg1Mjg2ZGUyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU3LDYg
KzU3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZy5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjc1MSw2ICsyNzUyLDI3IEBAIFBhZ2Uq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
K3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmlu
Zyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclZpZXcpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fcm9vdENvbnRlbnRMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV91cGRhdGVD
b21wb3NpdGluZ0xheWVyc1RpbWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBMYXllcik7
CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdw
b3J0Q29uc3RyYWluZWRMYXllcnNOZWVkaW5nVXBkYXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJG
b3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JTY3JvbGxDb3Ju
ZXIpOworI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50U2hhZG93
TGF5ZXIpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllclVwZGF0ZXIpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKaW5kZXggNGQ4MjhmMWE1ZjFmMTAwYmYyNDBiYzMxNGIwMzczYWRhYmJiNTZmNy4u
MWFkZmJkNDRhNmNkNTYzZDg3YWNiMjA3NGEwYzMzZjg5NTg3OWIzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjMxLDYgKzIz
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRSZWN0cygpOwogICAg
IHZvaWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVy
bGFwTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5jcHAKaW5kZXggYWViMzJiN2EyZTNmZDVjMDA5ODEzMDJiMGQ3MzYyYjNmNjY2
M2U3MS4uYTRkOTJmMDhkNTZkYjUwZTVmYjgwMTUwZjI1MDIxNmQwZGQ0ZjM4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0xNzQsNSArMTc1LDEyIEBAIHZvaWQgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0CiAgICAgfQogfQogCit2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxh
dGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJlcG9ydE1l
bW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9s
YXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzYyNDFkMzc3NTEz
OTUzNWY5MGZjNjA1NmE0NDQyNGU5YWQzODUxZS4uOGE0ZmMzNDFmM2NiMjJlMTc4N2NkMjBkYzhh
ZjdlOGJkODY0NGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJv
dGVjdGVkOgogICAgIHZvaWQgZW5zdXJlTGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCAxMTA0NjdhZDU0OGZjYmNiMDQxNGVhYWFjNjIzYTA0
M2NjY2IxYTQ4Li4yNWRkYmQyZTM0YTk1OGQzMGFhNzc2YTRhMGQ0YTc4MjllYTJkMDk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNjgsNiArNjgsNyBA
QAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2lu
Y2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGht
PgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0zMDU1LDYgKzMwNTYsMTYgQEAgYm9vbCBSZW5kZXJP
YmplY3Q6OmNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25zdAogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJp
bmcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGUpOworICAgIGluZm8uYWRkV2Vha1BvaW50
ZXIobV9ub2RlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBpbmZv
LmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9u
ZXh0KTsKK30KKwogI2lmIEVOQUJMRShTVkcpCiAKIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
KiBSZW5kZXJPYmplY3Q6OnRvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI1ODI3NmIzNjkyYWMzMzkxNDk0NDAx
MmViNGI4MGY4OWE2M2M3NjYuLjIzN2EzNWY2NDUwN2ZmYjc4NGRmOTFkN2I5NDA5ZDNiZTYxZTRk
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI4Miw2ICsy
ODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zLiBE
YW5nZXJvdXMgdG8gdXNlIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmlu
ZGV4IGE5YTI1ZGY2Mzg1ODNhMjQ1ZmEzYjhhYjhhOWFmZWVmMjY1YzczM2IuLjg5MGY4OTRjM2Jj
MzYxNTUyZDQ1ZDc3ZDUwMWM1Mzk1MDI0OGNmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJWaXNp
YmxlUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiYnJlYWtfbGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQWx3YXlzSW5saW5lLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CkBAIC0xOTMwLDQgKzE5MzEsMTMg
QEAgdm9pZCBSZW5kZXJUZXh0Ojptb21lbnRhcmlseVJldmVhbExhc3RUeXBlZENoYXJhY3Rlcih1
bnNpZ25lZCBsYXN0VHlwZWRDaGFyYWN0ZXIKICAgICBzZWN1cmVUZXh0VGltZXItPnJlc3RhcnRX
aXRoTmV3VGV4dChsYXN0VHlwZWRDaGFyYWN0ZXJPZmZzZXQpOwogfQogCit2b2lkIFJlbmRlclRl
eHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1f
dGV4dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9maXJzdFRleHRCb3gpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbGFzdFRleHRCb3gpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCA3Yjk4NjkxN2Q4YmRjNmNmZTY3N2Vh
MWE3MGU4NzFlNDIxYjEyMTlhLi4wZTRkNjJjZDVmYTFhMTNhNzg1NGE4ZTNmMzVjNGU3MTk4YmM0
YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTE0NCw2ICsxNDQs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKIAor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxNDU3
YjZiZTJhNDdmOWZiNjNiZGFkMjYxZjAyMDVhOGYxMDMxM2E2Li4zYjJmNGU1YzM5ZGFmMGY3NTgx
NWMyZGVmM2IyMTgzOWY2M2I2NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0UHJvdGVjdG9y
LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgiCkBAIC05OTYsNCArOTk3LDI0IEBAIFJlbmRlckJsb2NrOjpJbnRlcnZhbEFyZW5h
KiBSZW5kZXJWaWV3OjppbnRlcnZhbEFyZW5hKCkKICAgICByZXR1cm4gbV9pbnRlcnZhbEFyZW5h
LmdldCgpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVy
aW5nKTsKKyAgICBSZW5kZXJCbG9jazo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5m
byk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2ZyYW1lVmlldyk7CisgICAgaW5mby5hZGRX
ZWFrUG9pbnRlcihtX3NlbGVjdGlvblN0YXJ0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
c2VsZWN0aW9uRW5kKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dpZGdldHMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fbGF5b3V0U3RhdGUpOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBvc2l0b3IpOworI2VuZGlmCisjaWYgRU5BQkxF
KENTU19TSEFERVJTKSAmJiBVU0UoM0RfR1JBUEhJQ1MpCisgICAgaW5mby5hZGRNZW1iZXIobV9j
dXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0KTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1f
Zmxvd1RocmVhZENvbnRyb2xsZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW50ZXJ2YWxBcmVu
YSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclF1b3RlSGVhZCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmlu
ZGV4IGQ2M2Y4ZGY4Njg2MTM3MTU4YjlhYjk4NGVhMWVjMzU0MjQ3NmU5N2UuLjE2OTRhOGYyMmRk
NTMxYmRmODc2OGUyZGM1MTY5MWUwN2E3MjY5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IExheW91dFN0YXRlTWFpbnRhaW5lcjsKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0U3RhdGVEaXNh
YmxlcjsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBGcmFtZVZpZXcqIG1fZnJh
bWVWaWV3OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176757</attachid>
            <date>2012-11-29 10:34:39 -0800</date>
            <delta_ts>2012-11-30 09:15:00 -0800</delta_ts>
            <desc>second with fix for mac and elf</desc>
            <filename>bug-103564-20121129103214.patch</filename>
            <type>text/plain</type>
            <size>29138</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNjYzMWY3NTBlZmNh
ZjRjMTI1ZjkyNDQzZTE2ZGVmYWUwYjlkMC4uZjJjZTQ2MzRlNzQ0YzE5OWMyZDhkYjAwODkwNjQ2
MWFhNGYyYTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTI5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VHlwbyBpbiAnYXV0b2ZvY3VzJyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IGFmOTFkM2Q5NTU0NDRiMmJiYzQ1ZTQ3ODIyNTI4NDg4ZjVlN2E0MTUuLjQx
MWM4MDI2ZWE2MjAzZDQ2ZTVlZWU2MmU1NWVhNDcwYjhjODRmODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMTk1LDYgKzExOTUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTh0
aXRsZURpc3BsYXlTdHJpbmdFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDVpbWFnZUV2
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0NXRpdGxlRVJOU18xM1RleHREaXJlY3Rpb25F
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0OWltYWdlUmVjdEV2CitfX1pOSzdXZWJDb3Jl
MTNHcmFwaGljc0xheWVyMTdyZXBvcnRNZW1vcnlVc2FnZUVQTjNXVEYxNk1lbW9yeU9iamVjdElu
Zm9FCiBfX1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yN2NmRXJyb3JFdgogX19aTks3V2ViQ29y
ZTEzUmVzb3VyY2VFcnJvcjduc0Vycm9yRXYKIF9fWk5LN1dlYkNvcmUxM1Jlc291cmNlRXJyb3Jj
dlA3TlNFcnJvckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggOWYwODkwM2MxZjM5ZGM3YTZlZjQ0Zjc2
OTNhYTI3ZDhhMzU3Y2E1MS4uZDIyNjEwNDMxZWViZjc3NWFjMWEzZjhhNTljNjlhZDI4ODY4Nzgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjcyNCw4ICsyNzI0LDcgQEAgdm9pZCBOb2RlOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbmV4
dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7Ci0gICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICBpbmZvLmFkZE1lbWJlcihy
ZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodGhpcy0+cmVuZGVyZXIoKSk7
CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwCmluZGV4IDcxNDEwYTE0ZWZlODZjMTExNTJmMmM3NjkxNmU5OWM3MTczODEx
YzIuLjY1MzI2YmFiYTU4MTdlNDBlNGVmNzhjZTYzM2I0MmE0MmMwN2U0YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAg
LTY3LDggKzY3LDcgQEAgTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkpTSGVh
cFVudXNlZCA9ICJKU0hlYXAuVW51c2VkIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTVN0b3JhZ2VDYWNoZSA9ICJET01TdG9yYWdlQ2FjaGUiOwogCi1NZW1vcnlP
YmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyVHJlZVVzZWQgPSAiUmVuZGVyVHJl
ZS5Vc2VkIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJUcmVl
VW51c2VkID0gIlJlbmRlclRyZWUuVW51c2VkIjsKK01lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpSZW5kZXJUcmVlVW51c2VkID0gIlVudXNlZC5SZW5kZXJUcmVlIjsKIAogTWVt
b3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OlByb2Nlc3NQcml2YXRlTWVtb3J5ID0g
IlByb2Nlc3NQcml2YXRlTWVtb3J5IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAx
ZDUwZTYzZWE4YmNiNzQxYy4uYTU3NTBmNWI1Y2M4ZDlhNzIxNzgyYjFlZTEwMDg2ODJkODI1MTY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCkBAIC00NDUsOCArNDQ1LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0SlNIZWFwSW5mbyhX
VEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCYgbWVtb3J5SW5zdHJ1bWVudGEKIHN0YXRp
YyB2b2lkIHJlcG9ydFJlbmRlclRyZWVJbmZvKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50JiBtZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQXJl
bmFTaXplIGFyZW5hU2l6ZSA9IHBhZ2UtPnJlbmRlclRyZWVTaXplKCk7Ci0KLSAgICBtZW1vcnlJ
bnN0cnVtZW50YXRpb25DbGllbnQuY291bnRPYmplY3RTaXplKDAsIFdlYkNvcmVNZW1vcnlUeXBl
czo6UmVuZGVyVHJlZVVzZWQsIGFyZW5hU2l6ZS50cmVlU2l6ZSk7CiAgICAgbWVtb3J5SW5zdHJ1
bWVudGF0aW9uQ2xpZW50LmNvdW50T2JqZWN0U2l6ZSgwLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJl
bmRlclRyZWVVbnVzZWQsIGFyZW5hU2l6ZS5hbGxvY2F0ZWQgLSBhcmVuYVNpemUudHJlZVNpemUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQxYjk3MzhjZTU0NzZl
MGRlMzlmOGM0YmRhZi4uMGUxZDBiMDhhY2YzNzhhZGUyMTA0MzQyMmRkZTYyZTZlZTM4ODk2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5J
bWFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQ
YWdlLkxvYWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRl
cmluZyA9ICJQYWdlLlJlbmRlcmluZyI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OkxheWVycyA9ICJQYWdlLlJlbmRlcmluZy5MYXllcnMiOwogCiBNZW1vcnlPYmplY3RU
eXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvID0gIlBhZ2UuQXVkaW8iOwogTWVtb3J5T2Jq
ZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEgPSAiUGFnZS5BdWRp
by5TaGFyZWREYXRhIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDljZWI5MmVjNTM0NzIxZjU3ZTZiNjFi
YTZjMGU1NzgyMTc1YzgyZTMuLmZlZjE5ZTk1NWM1OTNhYzYzZTg4OTg5NzY5NDE2MTU5ZmMwNzNh
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsOCBAQCBjbGFzcyBQbGF0Zm9ybU1lbW9y
eVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbWFnZTsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisgICAgc3RhdGljIE1lbW9yeU9iamVj
dFR5cGUgUmVuZGVyaW5nOworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExheWVyczsKIAog
ICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEF1ZGlvOwogICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIEF1ZGlvU2hhcmVkRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNmQxYTI0NzlhNzJjZTYzNTFiODg0ODZl
ZTgxZTA2ZTliMzI5MDBiNi4uYTk2YmRjNmFkM2JiM2NhMzIyZWExNTlmOGExMTNiMTk4ODA3MDQ3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHAKQEAgLTMzLDkgKzMzLDExIEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MzcsNiAr
NzM5LDE2IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsK
IH0KIAordm9pZCBHcmFwaGljc0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxheWVycyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wYXJl
bnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3JlcGxpY2FMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXBsaWNhdGVkTGF5ZXIp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNGYz
OTU0NDg2MGIyYWVmY2ZlN2UxYjk2YzNlNWJmZmEwZWY4ZTI4MS4uN2MzM2ZkZDc3YzdhYzVmYWY2
MzQ2MDE1OTE3NGU5YWM0NDJkZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNo
b3VsZCBjYWxsIHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDhhMGFmMTUzMDc0ZTY3Mjk2MzYyMWE0MDA5ODIwY2ZmYzNhZjU2YmEuLmU3NDdiYTIwNDk4
ZmRkNTAxNDE5YjkxNzMxYzg4ODVjYjcxNDA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJTa0ltYWdlRmlsdGVyLmgiCiAjaW5jbHVkZSAi
U2tNYXRyaXg0NC5oIgpAQCAtNzAsNiArNzEsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTg3OSw2
ICs4ODEsMjEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRpZFNjcm9sbCgpCiAgICAg
ICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihJbnRQ
b2ludChtX2xheWVyLT5sYXllcigpLT5zY3JvbGxQb3NpdGlvbigpKSk7CiB9CiAKK3ZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxheWVycyk7CisgICAgR3Jh
cGhpY3NMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9uYW1lQmFzZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm1MYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9pbWFnZUxheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRzTGF5ZXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fbGlua0hpZ2hsaWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9v
cGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9hbmltYXRpb25JZE1hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxhYmxlQXJl
YSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXgg
ZjMzMmU5NDQ0YzVkZGEzODlkMDNjOWIyZTBiNDYyYTI2YzliNDEwOS4uMTBmZGE3NjkzOWU1MjUy
OTFiNTYyZjBlZGRhZjU4YWM4N2U3MzYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmgKQEAgLTE1Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRXhwb3NlZCBmb3IgdGVz
dHMuCiAgICAgV2ViS2l0OjpXZWJMYXllciogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGVudHNMYXllcjsgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZU5hbWVzKCk7CiAgICAgdm9pZCB1cGRhdGVDaGlsZExpc3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDhjNjI0OTc2NTllZGY5NWNiY2IzMTE5
YTVjOWZjZTcxYjBkMzA1M2EuLjE3YTVhZTkzNTAwMDlmYmRhZjZiZWIzZjk5Yjg4ZDRiN2E5MmJm
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjEsNiAr
NjEsNyBAQAogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmgiCkBAIC03NzM1LDQgKzc3MzYsMTQgQEAgU3RyaW5nIFZhbHVlVG9TdHJp
bmc8UmVuZGVyQmxvY2s6OkZsb2F0aW5nT2JqZWN0Kj46OnN0cmluZyhjb25zdCBSZW5kZXJCbG9j
azo6RmwKIAogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6
UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3g6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVj
dEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxvYXRpbmdPYmplY3RzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3JhcmVEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkcmVuKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVCb3hlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggOWYwMDg0Nzdi
YzRjMGJkOWI4NDIyODFiZTgyMDRiNmM1ODc1NjBhYy4uMjBlYWRmOTUzNTkxZDVlOTlkZmU4Mzgz
NjUyMTRjY2E0YTUzYzkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
QEAgLTUyMiw2ICs1MjIsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tG
b3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRVbml0JiBwYWdlTG9naWNhbEhl
aWdodCwgYm9vbCYgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBib29sJiBoYXNTcGVjaWZpZWRQ
YWdlTG9naWNhbEhlaWdodCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIGNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNDRmM2RlMTFhMmJkODgz
MjY0NTNmZGNkMWQ3OWVmZjdiNjc1NTZjZi4uNDcyNjhmMzU5MTJkYjlmMjA4YmM2MmMyNWVhODc0
NjhhZmRlMDk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
bWF0aC5oPgogCkBAIC00MjEzLDQgKzQyMTQsMTIgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6
OnNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWwK
ICAgICByZXR1cm4gYmVmb3JlQ2hpbGQ7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVt
b3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcG9ydE1l
bW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9p
bmxpbmVCb3hXcmFwcGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX292ZXJmbG93KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmlu
ZGV4IGMxZGUzZTczNjE5MTZjMzgxYmYxM2MwYjk2YTAxZGJkMjE1MTViYTIuLjJmMzYzOGY3MTBh
MTIxYTkzMWZjZGIxMzg3ZWU4YzU4ZGNlMTI4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKQEAgLTU5OCw2ICs1OTgsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJPYmpl
Y3QqIHNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkKTsKICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIGJvb2wgZml4ZWRFbGVtZW50
TGF5c091dFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmlldyopIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGRiMWIxODVmNjVkNDY5
ZDMzM2I2YzYxZDBhMmU0OTI3OWM3ZTcxNTYuLjAyNjljNGY4MWVkNWYwNzgyYmMwNWY4YTBmNWQx
MjU2NGIwM2UxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKKyNp
bmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNpbmNsdWRlIDx3dGYv
VGVtcG9yYXJ5Q2hhbmdlLmg+CiAKQEAgLTE2NDEsNCArMTY0MiwxMiBAQCB2b2lkIFJlbmRlcklu
bGluZTo6YWRkQW5ub3RhdGVkUmVnaW9ucyhWZWN0b3I8QW5ub3RhdGVkUmVnaW9uVmFsdWU+JiBy
ZWdpb25zKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVySW5saW5lOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlw
ZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcG9ydE1lbW9yeVVz
YWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRyZW4pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fbGluZUJveGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IDg0NTkwNGI2
NTJhNTYyNGExMzE5YzY4OTQyZWI2ZDA1YjQ2YWY2ZDAuLjBmYWI4ZDYxMmQ5ODIwMTMzOThhYzQ2
Y2E0Y2E0NjVjNzZlZmU1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmgKQEAgLTkxLDYgKzkxLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoaXRUZXN0Q3VsbGVkSW5s
aW5lKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDNjN2NmNmU1NmRjNzdiMjFiNDI5ODE5ODVjMDNkMGEwZTA5ODdhMmQuLjM5
N2YxYWEwZDI0MmNiYTgyMWJkYmYzMzMzMzQ4ZjY3YjkyMTE0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTksNiArOTksOCBAQAogI2luY2x1ZGUgIlRl
eHRTdHJlYW0uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUg
IlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVz
ZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTU0MDQsNiArNTQw
NiwzMiBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFpbnQoKQogfQogI2VuZGlm
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAg
IGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJlcik7CisgICAgaW5mby5hZGRXZWFrUG9pbnRl
cihtX3BhcmVudCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3ByZXZpb3VzKTsKKyAgICBp
bmZvLmFkZFdlYWtQb2ludGVyKG1fbmV4dCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Zp
cnN0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbGFzdCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9oQmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZCYXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fcG9zWk9yZGVyTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9uZWdaT3JkZXJMaXN0
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25vcm1hbEZsb3dMaXN0KTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2NsaXBSZWN0c0NhY2hlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21hcnF1ZWUpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVy
KG1fcmVmbGVjdGlvbik7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3Njcm9sbENvcm5lcik7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3Jlc2l6ZXIpOworCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIGluZm8uYWRkTWVtYmVyKG1fYmFja2luZyk7CisjZW5kaWYK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA2NWYxMDcwYWIyZDY2ZGYyZDk0NzE2NTRl
Y2M5Y2MwZTAxN2M2MWM1Li4xMzYxYWIwMGZmZGFmMzQ3YWQ3NzMzZjY0YTIxYWU5Yjc1ZjhmNzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNzEwLDYgKzcxMCw4
IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5Ub3BMYXllclN1YnRyZWUoKSBjb25zdDsKICNlbmRp
ZgogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVi
dWlsZFpPcmRlckxpc3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IDg4YmUwOGRmZWJlNWY5YTdjYjc4OTI1ODA2NDhiNDRiYmRi
OTNjNzQuLjc3MzYxZjc0Mzg3NTg0NDU0ZTFjY2QwYWU1OWFlYmY4YzZjMDM0Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01NSw2
ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMTk2OSw2ICsxOTcwLDIyIEBAIGJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllcios
IGNvbnN0IEludFJlY3QmIGxvCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
UGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVy
KG1fb3duaW5nTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5jZXN0b3JDbGlwcGluZ0xh
eWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyYXBoaWNzTGF5ZXIpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZm9yZWdyb3VuZExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRhaW5t
ZW50TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xh
eWVyRm9yU2Nyb2xsQ29ybmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGluZ0xheWVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
aW5kZXggY2RjYzAzMGMyNTIzZmFlZjI4N2ZkZTkxNzcxMDBmZTRmZjVkYjVmOC4uMGZkMDNlNDgx
ZjIxMzYwOWIwYmZiZDc5YTMzNGI5MTA5NGUyNjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5k
TW9kZSk7CiAjZW5kaWYKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xh
eWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDg3MGJmMWRkZmE3Mzk1OWMwZWUwYTJjYzE4ZTllZmE4ODU5Y2YyMWMu
LmQ4YTc5YTdjODNhMTkyZTJlNGU3MzRlMzYyZDJlZGM4NTI4NmRlMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC01Nyw2
ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcu
aCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQog
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKQEAgLTI3NTEsNiArMjc1MiwyNyBAQCBQYWdl
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2UoKSBjb25zdAogICAgIHJldHVybiAwOwogfQog
Cit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJp
bmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJWaWV3KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3Jvb3RDb250ZW50TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdXBkYXRl
Q29tcG9zaXRpbmdMYXllcnNUaW1lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGlwTGF5ZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzTmVlZGluZ1VwZGF0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvclZl
cnRpY2FsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yU2Nyb2xsQ29y
bmVyKTsKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9s
YXllckZvck92ZXJoYW5nQXJlYXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudFNoYWRv
d0xheWVyKTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJVcGRhdGVyKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oCmluZGV4IDRkODI4ZjFhNWYxZjEwMGJmMjQwYmMzMTRiMDM3M2FkYWJiYjU2Zjcu
LjFhZGZiZDQ0YTZjZDU2M2Q4N2FjYjIwNzRhMGMzM2Y4OTU4NzliMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIzMSw2ICsy
MzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50UmVjdHMoKTsKICAg
ICB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgY2xhc3MgT3Zl
cmxhcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwCmluZGV4IGFlYjMyYjdhMmUzZmQ1YzAwOTgxMzAyYjBkNzM2MmIzZjY2
NjNlNzEuLmE0ZDkyZjA4ZDU2ZGI1MGU1ZmI4MDE1MGYyNTAyMTZkMGRkNGYzOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtMTc0LDUgKzE3NSwxMiBAQCB2b2lkIFJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdAogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0OjpyZXBvcnRN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
bGF5ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGM2MjQxZDM3NzUx
Mzk1MzVmOTBmYzYwNTZhNDQ0MjRlOWFkMzg1MWUuLjhhNGZjMzQxZjNjYjIyZTE3ODdjZDIwZGM4
YWY3ZThiZDg2NDRmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuaApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMTEwNDY3YWQ1NDhmY2JjYjA0MTRlYWFhYzYyM2Ew
NDNjY2NiMWE0OC4uMjVkZGJkMmUzNGE5NThkMzBhYTc3NmE0YTBkNGE3ODI5ZWEyZDA5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMzA1NSw2ICszMDU2LDE2IEBAIGJvb2wgUmVuZGVy
T2JqZWN0OjpjYW5CZVJlcGxhY2VkV2l0aElubGluZVJ1bkluKCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVy
aW5nKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2lu
dGVyKG1fbm9kZSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3BhcmVudCk7CisgICAgaW5m
by5hZGRXZWFrUG9pbnRlcihtX3ByZXZpb3VzKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
bmV4dCk7Cit9CisKICNpZiBFTkFCTEUoU1ZHKQogCiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ciogUmVuZGVyT2JqZWN0Ojp0b1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyNTgyNzZiMzY5MmFjMzM5MTQ5NDQw
MTJlYjRiODBmODlhNjNjNzY2Li4yMzdhMzVmNjQ1MDdmZmI3ODRkZjkxZDdiOTQwOWQzYmU2MWU0
ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yODIsNiAr
MjgyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVzQW5vbnltb3VzV3JhcHBl
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gSGVscGVyIGZ1bmN0aW9ucy4g
RGFuZ2Vyb3VzIHRvIHVzZSEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApp
bmRleCBhOWEyNWRmNjM4NTgzYTI0NWZhM2I4YWI4YTlhZmVlZjI2NWM3MzNiLi44OTBmODk0YzNi
YzM2MTU1MmQ0NWQ3N2Q1MDFjNTM5NTAyNDhjZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRl
cmF0b3IuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVBvc2l0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgImJyZWFrX2xpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0Fsd2F5c0lubGluZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtMTkzMCw0ICsxOTMxLDEz
IEBAIHZvaWQgUmVuZGVyVGV4dDo6bW9tZW50YXJpbHlSZXZlYWxMYXN0VHlwZWRDaGFyYWN0ZXIo
dW5zaWduZWQgbGFzdFR5cGVkQ2hhcmFjdGVyCiAgICAgc2VjdXJlVGV4dFRpbWVyLT5yZXN0YXJ0
V2l0aE5ld1RleHQobGFzdFR5cGVkQ2hhcmFjdGVyT2Zmc2V0KTsKIH0KIAordm9pZCBSZW5kZXJU
ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0Ojpy
ZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3RleHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RUZXh0Qm94KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2xhc3RUZXh0Qm94KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggN2I5ODY5MTdkOGJkYzZjZmU2Nzdl
YTFhNzBlODcxZTQyMWIxMjE5YS4uMGU0ZDYyY2Q1ZmExYTEzYTc4NTRhOGUzZjM1YzRlNzE5OGJj
NGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0xNDQsNiArMTQ0
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ry
b3llZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMTQ1
N2I2YmUyYTQ3ZjlmYjYzYmRhZDI2MWYwMjA1YThmMTAzMTNhNi4uM2IyZjRlNWMzOWRhZjBmNzU4
MTVjMmRlZjNiMjE4MzlmNjNiNjU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldFByb3RlY3Rv
ci5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29t
cG9zaXRvci5oIgpAQCAtOTk2LDQgKzk5NywyNCBAQCBSZW5kZXJCbG9jazo6SW50ZXJ2YWxBcmVu
YSogUmVuZGVyVmlldzo6aW50ZXJ2YWxBcmVuYSgpCiAgICAgcmV0dXJuIG1faW50ZXJ2YWxBcmVu
YS5nZXQoKTsKIH0KIAordm9pZCBSZW5kZXJWaWV3OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRl
cmluZyk7CisgICAgUmVuZGVyQmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdElu
Zm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcmFtZVZpZXcpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9zZWxlY3Rpb25TdGFydCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlciht
X3NlbGVjdGlvbkVuZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV93aWRnZXRzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xheW91dFN0YXRlKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wb3NpdG9yKTsKKyNlbmRpZgorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykgJiYgVVNFKDNEX0dSQVBISUNTKQorICAgIGluZm8uYWRkTWVtYmVyKG1f
Y3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dCk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlciht
X2Zsb3dUaHJlYWRDb250cm9sbGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludGVydmFsQXJl
bmEpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJRdW90ZUhlYWQpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApp
bmRleCBkNjNmOGRmODY4NjEzNzE1OGI5YWI5ODRlYTFlYzM1NDI0NzZlOTdlLi4xNjk0YThmMjJk
ZDUzMWJkZjg3NjhlMmRjNTE2OTFlMDdhNzI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKQEAgLTI4Miw2ICsyODIsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlz
YWJsZXI7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgRnJhbWVWaWV3KiBtX2Zy
YW1lVmlldzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176979</attachid>
            <date>2012-11-30 09:15:12 -0800</date>
            <delta_ts>2012-11-30 09:37:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121130091246.patch</filename>
            <type>text/plain</type>
            <size>28411</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNjYzMWY3NTBlZmNh
ZjRjMTI1ZjkyNDQzZTE2ZGVmYWUwYjlkMC4uZjJjZTQ2MzRlNzQ0YzE5OWMyZDhkYjAwODkwNjQ2
MWFhNGYyYTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTI5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VHlwbyBpbiAnYXV0b2ZvY3VzJyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IGFmOTFkM2Q5NTU0NDRiMmJiYzQ1ZTQ3ODIyNTI4NDg4ZjVlN2E0MTUuLjQx
MWM4MDI2ZWE2MjAzZDQ2ZTVlZWU2MmU1NWVhNDcwYjhjODRmODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMTk1LDYgKzExOTUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTh0
aXRsZURpc3BsYXlTdHJpbmdFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDVpbWFnZUV2
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0NXRpdGxlRVJOU18xM1RleHREaXJlY3Rpb25F
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0OWltYWdlUmVjdEV2CitfX1pOSzdXZWJDb3Jl
MTNHcmFwaGljc0xheWVyMTdyZXBvcnRNZW1vcnlVc2FnZUVQTjNXVEYxNk1lbW9yeU9iamVjdElu
Zm9FCiBfX1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yN2NmRXJyb3JFdgogX19aTks3V2ViQ29y
ZTEzUmVzb3VyY2VFcnJvcjduc0Vycm9yRXYKIF9fWk5LN1dlYkNvcmUxM1Jlc291cmNlRXJyb3Jj
dlA3TlNFcnJvckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggOWYwODkwM2MxZjM5ZGM3YTZlZjQ0Zjc2
OTNhYTI3ZDhhMzU3Y2E1MS4uZDIyNjEwNDMxZWViZjc3NWFjMWEzZjhhNTljNjlhZDI4ODY4Nzgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjcyNCw4ICsyNzI0LDcgQEAgdm9pZCBOb2RlOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbmV4
dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7Ci0gICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICBpbmZvLmFkZE1lbWJlcihy
ZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodGhpcy0+cmVuZGVyZXIoKSk7
CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAxZDUwZTYzZWE4YmNiNzQxYy4u
NTFiNjNiMDNkZGUyYWYzMTc2MGQxN2NhNDkzODU1ZTM1NjM3MzkwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC04NSw2ICs4
NSwxNCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3NpemVzTWFwID0gbV9jbGllbnQtPnNp
emVzTWFwKCk7CiAKKyAgICAgICAgLy8gRklYTUU6IFdlIGZpbHRlciBvdXQgUmVuZGVyaW5nIHR5
cGUgYmVjYXVzZSB0aGUgY292ZXJhZ2UgaXMgbm90IGdvb2QgZW5vdWdoIGF0IHRoZSBtb21lbnQK
KyAgICAgICAgLy8gYW5kIHJlcG9ydCBSZW5kZXJBcmVuYSBzaXplIGluc3RlYWQuCisgICAgICAg
IGZvciAoVHlwZU5hbWVUb1NpemVNYXA6Oml0ZXJhdG9yIGkgPSBtX3NpemVzTWFwLmJlZ2luKCk7
IGkgIT0gbV9zaXplc01hcC5lbmQoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaS0+a2V5ID09
IFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZykgeworICAgICAgICAgICAgICAgIG1fc2l6
ZXNNYXAucmVtb3ZlKGkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG9iamVjdFR5cGVzOwogICAgICAgICBv
YmplY3RUeXBlcy5hcHBlbmRSYW5nZShtX3NpemVzTWFwLmtleXMoKS5iZWdpbigpLCBtX3NpemVz
TWFwLmtleXMoKS5lbmQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzMTEyYTJkZTI5YTRk
ZDFiOTczOGNlNTQ3NmUwZGUzOWY4YzRiZGFmLi4wZTFkMGIwOGFjZjM3OGFkZTIxMDQzNDIyZGRl
NjJlNmVlMzg4OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpJ
bWFnZSA9ICJQYWdlLkltYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBl
czo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKK01lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nID0gIlBhZ2UuUmVuZGVyaW5nIjsKK01lbW9yeU9iamVjdFR5cGUg
UGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5ZXJzID0gIlBhZ2UuUmVuZGVyaW5nLkxheWVycyI7CiAK
IE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVkaW8gPSAiUGFnZS5BdWRp
byI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0
YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggOWNlYjkyZWM1
MzQ3MjFmNTdlNmI2MWJhNmMwZTU3ODIxNzVjODJlMy4uZmVmMTllOTU1YzU5M2FjNjNlODg5ODk3
Njk0MTYxNTlmYzA3M2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00Myw2ICs0Myw4IEBAIGNsYXNz
IFBsYXRmb3JtTWVtb3J5VHlwZXMgewogcHVibGljOgogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RU
eXBlIEltYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExvYWRlcjsKKyAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBSZW5kZXJpbmc7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgTGF5ZXJzOwogCiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW87CiAgICAgc3Rh
dGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW9TaGFyZWREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2ZDFhMjQ3OWE3
MmNlNjM1MWI4ODQ4NmVlODFlMDZlOWIzMjkwMGI2Li5hOTZiZGM2YWQzYmIzY2EzMjJlYTE1OWY4
YTExM2IxOTg4MDcwNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXRS
ZWN0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTczNyw2ICs3MzksMTYgQEAgU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFz
VGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKICAgICByZXR1cm4g
dHMucmVsZWFzZSgpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBl
czo6TGF5ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3BhcmVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5ZXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fcmVwbGljYUxheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
cGxpY2F0ZWRMYXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRlZiBO
REVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAppbmRleCA0ZjM5NTQ0ODYwYjJhZWZjZmU3ZTFiOTZjM2U1YmZmYTBlZjhlMjgxLi43YzMz
ZmRkNzdjN2FjNWZhZjYzNDYwMTU5MTc0ZTlhYzQ0MmRmYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00MjYsNiArNDI2LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIAorICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisK
IHByb3RlY3RlZDoKICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIGZyb20gZGVyaXZlZCBjbGFzcyBk
ZXN0cnVjdG9ycy4gU2hvdWxkIGNhbGwgd2lsbEJlRGVzdHJveWVkKCkgb24gc3VwZXIuCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5jcHAKaW5kZXggOGEwYWYxNTMwNzRlNjcyOTYzNjIxYTQwMDk4MjBjZmZjM2FmNTZi
YS4uZTc0N2JhMjA0OThmZGQ1MDE0MTliOTE3MzFjODg4NWNiNzE0MDYxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAi
SW1hZ2UuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlNrSW1hZ2VGaWx0ZXIu
aCIKICNpbmNsdWRlICJTa01hdHJpeDQ0LmgiCkBAIC03MCw2ICs3MSw3IEBACiAjaW5jbHVkZSA8
cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgpAQCAtODc5LDYgKzg4MSwyMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGlk
U2Nyb2xsKCkKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsVG9PZmZzZXRXaXRob3V0
QW5pbWF0aW9uKEludFBvaW50KG1fbGF5ZXItPmxheWVyKCktPnNjcm9sbFBvc2l0aW9uKCkpKTsK
IH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5
ZXJzKTsKKyAgICBHcmFwaGljc0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25hbWVCYXNlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zZm9ybUxheWVyKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2ltYWdlTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVu
dHNMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rSGlnaGxpZ2h0KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX29wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2FuaW1hdGlvbklkTWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3Njcm9sbGFibGVBcmVhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uaAppbmRleCBmMzMyZTk0NDRjNWRkYTM4OWQwM2M5YjJlMGI0NjJhMjZjOWI0MTA5Li4x
MGZkYTc2OTM5ZTUyNTI5MWI1NjJmMGVkZGFmNThhYzg3ZTczNjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTUyLDYgKzE1Miw4IEBAIHB1YmxpYzoKICAgICAvLyBF
eHBvc2VkIGZvciB0ZXN0cy4KICAgICBXZWJLaXQ6OldlYkxheWVyKiBjb250ZW50c0xheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlTmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkTGlzdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggOGM2MjQ5NzY1
OWVkZjk1Y2JjYjMxMTlhNWM5ZmNlNzFiMGQzMDUzYS4uMTdhNWFlOTM1MDAwOWZiZGFmNmJlYjNm
OTliODhkNGI3YTkyYmZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUu
aCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKQEAgLTc3MzUsNCArNzczNiwxNCBAQCBTdHJp
bmcgVmFsdWVUb1N0cmluZzxSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3QqPjo6c3RyaW5nKGNv
bnN0IFJlbmRlckJsb2NrOjpGbAogCiAjZW5kaWYKIAordm9pZCBSZW5kZXJCbG9jazo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sK
KyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9y
bU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIFJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNh
Z2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mbG9hdGluZ09iamVj
dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmFyZURhdGEpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fY2hpbGRyZW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGluZUJveGVzKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApp
bmRleCA5ZjAwODQ3N2JjNGMwYmQ5Yjg0MjI4MWJlODIwNGI2YzU4NzU2MGFjLi4yMGVhZGY5NTM1
OTFkNWU5OWRmZTgzODM2NTIxNGNjYTRhNTNjOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaApAQCAtNTIyLDYgKzUyMiw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1
YWwgdm9pZCBjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExheW91dFVuaXQm
IHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29sJiBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQsIGJvb2wm
IGhhc1NwZWNpZmllZFBhZ2VMb2dpY2FsSGVpZ2h0KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZh
dGU6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHZvaWQgY29tcHV0ZUV4Y2x1c2lv
blNoYXBlU2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA0
NGYzZGUxMWEyYmQ4ODMyNjQ1M2ZkY2QxZDc5ZWZmN2I2NzU1NmNmLi40NzI2OGYzNTkxMmRiOWYy
MDhiYzYyYzI1ZWE4NzQ2OGFmZGUwOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KICNpbmNsdWRlIDxtYXRoLmg+CiAKQEAgLTQyMTMsNCArNDIxNCwxMiBAQCBSZW5kZXJPYmpl
Y3QqIFJlbmRlckJveDo6c3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbAogICAgIHJldHVybiBiZWZvcmVDaGlsZDsKIH0KIAordm9pZCBSZW5kZXJC
b3g6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRX
ZWFrUG9pbnRlcihtX2lubGluZUJveFdyYXBwZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3Zl
cmZsb3cpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKaW5kZXggYzFkZTNlNzM2MTkxNmMzODFiZjEzYzBiOTZhMDFkYmQyMTUxNWJh
Mi4uMmYzNjM4ZjcxMGExMjFhOTMxZmNkYjEzODdlZThjNThkY2UxMjhhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTk4LDYgKzU5OCw4IEBAIHByb3RlY3RlZDoKIAog
ICAgIFJlbmRlck9iamVjdCogc3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQpOwogIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgYm9v
bCBmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3Kikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXgg
ZGIxYjE4NWY2NWQ0NjlkMzMzYjZjNjFkMGEyZTQ5Mjc5YzdlNzE1Ni4uMDI2OWM0ZjgxZWQ1ZjA3
ODJiYzA1ZjhhMGY1ZDEyNTY0YjAzZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTdHlsZUluaGVyaXRl
ZERhdGEuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2libGVQ
b3NpdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAog
I2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIApAQCAtMTY0MSw0ICsxNjQyLDEyIEBA
IHZvaWQgUmVuZGVySW5saW5lOjphZGRBbm5vdGF0ZWRSZWdpb25zKFZlY3RvcjxBbm5vdGF0ZWRS
ZWdpb25WYWx1ZT4mIHJlZ2lvbnMpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJJbmxpbmU6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxh
dGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5lQm94ZXMpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgK
aW5kZXggODQ1OTA0YjY1MmE1NjI0YTEzMTljNjg5NDJlYjZkMDViNDZhZjZkMC4uMGZhYjhkNjEy
ZDk4MjAxMzM5OGFjNDZjYTRjYTQ2NWM3NmVmZTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaApAQCAtOTEsNiArOTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhp
dFRlc3RDdWxsZWRJbmxpbmUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3N2IyMWI0Mjk4MTk4NWMwM2Qw
YTBlMDk4N2EyZC4uMzk3ZjFhYTBkMjQyY2JhODIxYmRiZjMzMzMzNDhmNjdiOTIxMTQxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC05OSw2ICs5OSw4IEBA
CiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4
LmgiCiAjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtNTQwNCw2ICs1NDA2LDMyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5lZWRzUmVwYWlu
dCgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OlJl
bmRlcmluZyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlcmVyKTsKKyAgICBpbmZv
LmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcHJl
dmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9uZXh0KTsKKyAgICBpbmZvLmFkZFdl
YWtQb2ludGVyKG1fZmlyc3QpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9sYXN0KTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2hCYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdkJhcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9wb3NaT3JkZXJMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X25lZ1pPcmRlckxpc3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbm9ybWFsRmxvd0xpc3QpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpcFJlY3RzQ2FjaGUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbWFycXVlZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm0pOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9yZWZsZWN0aW9uKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
c2Nyb2xsQ29ybmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVzaXplcik7CisKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNr
aW5nKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRF
QlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJk
NjZkZjJkOTQ3MTY1NGVjYzljYzBlMDE3YzYxYzUuLjEzNjFhYjAwZmZkYWYzNDdhZDc3MzNmNjRh
MjFhZTliNzVmOGY3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC03MTAsNiArNzEwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNJblRvcExheWVyU3VidHJlZSgp
IGNvbnN0OwogI2VuZGlmCiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7
CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggODhiZTA4ZGZlYmU1ZjlhN2NiNzg5
MjU4MDY0OGI0NGJiZGI5M2M3NC4uNzczNjFmNzQzODc1ODQ0NTRlMWNjZDBhZTU5YWViZjhjNmMw
MzRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xOTY5LDYgKzE5
NzAsMjIgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRzVmlzaWJsZShjb25zdCBH
cmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVjdCYgbG8KIH0KICNlbmRpZgogCit2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9vd25pbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmNl
c3RvckNsaXBwaW5nTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JhcGhpY3NMYXllcik7
CisgICAgaW5mby5hZGRNZW1iZXIobV9mb3JlZ3JvdW5kTGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY29udGFpbm1lbnRMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5ZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
c2Nyb2xsaW5nTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nQ29udGVudHNM
YXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCBjZGNjMDMwYzI1MjNmYWVmMjg3ZmRlOTE3NzEwMGZlNGZmNWRi
NWY4Li4wZmQwM2U0ODFmMjEzNjA5YjBiZmJkNzlhMzM0YjkxMDk0ZTI2NjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xODQsNiArMTg0
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRC
bGVuZE1vZGUoQmxlbmRNb2RlKTsKICNlbmRpZgorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUHJp
bWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNjMThl
OWVmYTg4NTljZjIxYy4uZDhhNzlhN2M4M2ExOTJlMmU0ZTczNGUzNjJkMmVkYzg1Mjg2ZGUyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRpbGVkQmFja2luZy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9Y
WV9GT1JfVklERU8pCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjc1MSw2ICsy
NzUyLDI3IEBAIFBhZ2UqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFnZSgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclZpZXcp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcm9vdENvbnRlbnRMYXllcik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NsaXBMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxMYXllcik7CisgICAg
aW5mby5hZGRNZW1iZXIobV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnNOZWVkaW5nVXBkYXRlKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5
ZXJGb3JTY3JvbGxDb3JuZXIpOworI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jb250ZW50U2hhZG93TGF5ZXIpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9sYXll
clVwZGF0ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNGQ4MjhmMWE1ZjFmMTAwYmYyNDBiYzMxNGIw
MzczYWRhYmJiNTZmNy4uMWFkZmJkNDRhNmNkNTYzZDg3YWNiMjA3NGEwYzMzZjg5NTg3OWIzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aApAQCAtMjMxLDYgKzIzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFp
bnRSZWN0cygpOwogICAgIHZvaWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKKyAgICB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBjbGFzcyBPdmVybGFwTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggYWViMzJiN2EyZTNmZDVjMDA5ODEz
MDJiMGQ3MzYyYjNmNjY2M2U3MS4uYTRkOTJmMDhkNTZkYjUwZTVmYjgwMTUwZjI1MDIxNmQwZGQ0
ZjM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0xNzQsNSArMTc1LDEy
IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAgICAgfQogfQogCit2b2lkIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJP
YmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9sYXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5k
ZXggYzYyNDFkMzc3NTEzOTUzNWY5MGZjNjA1NmE0NDQyNGU5YWQzODUxZS4uOGE0ZmMzNDFmM2Ni
MjJlMTc4N2NkMjBkYzhhZjdlOGJkODY0NGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgPSAwOwogCisgICAg
dmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBP
VkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZW5zdXJlTGF5ZXIoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCAxMTA0NjdhZDU0OGZjYmNi
MDQxNGVhYWFjNjIzYTA0M2NjY2IxYTQ4Li4yNWRkYmQyZTM0YTk1OGQzMGFhNzc2YTRhMGQ0YTc4
MjllYTJkMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApA
QCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVS
ZXNvbHZlci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0zMDU1LDYgKzMwNTYsMTYg
QEAgYm9vbCBSZW5kZXJPYmplY3Q6OmNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9y
eVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGUpOworICAgIGlu
Zm8uYWRkV2Vha1BvaW50ZXIobV9ub2RlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFy
ZW50KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9uZXh0KTsKK30KKwogI2lmIEVOQUJMRShTVkcpCiAKIFJlbmRlclNWR1Jl
c291cmNlQ29udGFpbmVyKiBSZW5kZXJPYmplY3Q6OnRvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI1ODI3NmIz
NjkyYWMzMzkxNDk0NDAxMmViNGI4MGY4OWE2M2M3NjYuLjIzN2EzNWY2NDUwN2ZmYjc4NGRmOTFk
N2I5NDA5ZDNiZTYxZTRkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKQEAgLTI4Miw2ICsyODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZXNB
bm9ueW1vdXNXcmFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAorICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAg
ICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxw
ZXIgZnVuY3Rpb25zLiBEYW5nZXJvdXMgdG8gdXNlIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCmluZGV4IGE5YTI1ZGY2Mzg1ODNhMjQ1ZmEzYjhhYjhhOWFmZWVmMjY1Yzcz
M2IuLjg5MGY4OTRjM2JjMzYxNTUyZDQ1ZDc3ZDUwMWM1Mzk1MDI0OGNmZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
ICJUZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIK
ICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiYnJlYWtfbGluZXMuaCIKICNpbmNsdWRlIDx3dGYv
QWx3YXlzSW5saW5lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CkBAIC0x
OTMwLDQgKzE5MzEsMTMgQEAgdm9pZCBSZW5kZXJUZXh0Ojptb21lbnRhcmlseVJldmVhbExhc3RU
eXBlZENoYXJhY3Rlcih1bnNpZ25lZCBsYXN0VHlwZWRDaGFyYWN0ZXIKICAgICBzZWN1cmVUZXh0
VGltZXItPnJlc3RhcnRXaXRoTmV3VGV4dChsYXN0VHlwZWRDaGFyYWN0ZXJPZmZzZXQpOwogfQog
Cit2b2lkIFJlbmRlclRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBS
ZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdGV4dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9maXJzdFRleHRCb3gp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbGFzdFRleHRCb3gpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCA3Yjk4Njkx
N2Q4YmRjNmNmZTY3N2VhMWE3MGU4NzFlNDIxYjEyMTlhLi4wZTRkNjJjZDVmYTFhMTNhNzg1NGE4
ZTNmMzVjNGU3MTk4YmM0YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
QEAgLTE0NCw2ICsxNDQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lU
ZXh0Qm94ZXMoKTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAppbmRleCAxNDU3YjZiZTJhNDdmOWZiNjNiZGFkMjYxZjAyMDVhOGYxMDMxM2E2Li4zYjJm
NGU1YzM5ZGFmMGY3NTgxNWMyZGVmM2IyMTgzOWY2M2I2NThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
V2lkZ2V0UHJvdGVjdG9yLmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCkBAIC05OTYsNCArOTk3LDI0IEBAIFJlbmRlckJsb2Nr
OjpJbnRlcnZhbEFyZW5hKiBSZW5kZXJWaWV3OjppbnRlcnZhbEFyZW5hKCkKICAgICByZXR1cm4g
bV9pbnRlcnZhbEFyZW5hLmdldCgpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCbG9jazo6cmVwb3J0TWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2ZyYW1lVmlldyk7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3NlbGVjdGlvblN0YXJ0KTsKKyAgICBpbmZvLmFk
ZFdlYWtQb2ludGVyKG1fc2VsZWN0aW9uRW5kKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dpZGdl
dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5b3V0U3RhdGUpOworI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBvc2l0b3IpOworI2Vu
ZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKSAmJiBVU0UoM0RfR1JBUEhJQ1MpCisgICAgaW5m
by5hZGRNZW1iZXIobV9jdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0KTsKKyNlbmRpZgorICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZmxvd1RocmVhZENvbnRyb2xsZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1faW50ZXJ2YWxBcmVuYSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclF1b3Rl
SGVhZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCmluZGV4IGQ2M2Y4ZGY4Njg2MTM3MTU4YjlhYjk4NGVhMWVjMzU0MjQ3NmU5
N2UuLjE2OTRhOGYyMmRkNTMxYmRmODc2OGUyZGM1MTY5MWUwN2E3MjY5YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKICAgICBmcmllbmQgY2xhc3Mg
TGF5b3V0U3RhdGVEaXNhYmxlcjsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBG
cmFtZVZpZXcqIG1fZnJhbWVWaWV3OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176981</attachid>
            <date>2012-11-30 09:37:52 -0800</date>
            <delta_ts>2012-11-30 10:35:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121130093525.patch</filename>
            <type>text/plain</type>
            <size>29685</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNjYzMWY3NTBlZmNh
ZjRjMTI1ZjkyNDQzZTE2ZGVmYWUwYjlkMC4uZjJjZTQ2MzRlNzQ0YzE5OWMyZDhkYjAwODkwNjQ2
MWFhNGYyYTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTI5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VHlwbyBpbiAnYXV0b2ZvY3VzJyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IGFmOTFkM2Q5NTU0NDRiMmJiYzQ1ZTQ3ODIyNTI4NDg4ZjVlN2E0MTUuLjQx
MWM4MDI2ZWE2MjAzZDQ2ZTVlZWU2MmU1NWVhNDcwYjhjODRmODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMTk1LDYgKzExOTUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTh0
aXRsZURpc3BsYXlTdHJpbmdFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDVpbWFnZUV2
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0NXRpdGxlRVJOU18xM1RleHREaXJlY3Rpb25F
CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0OWltYWdlUmVjdEV2CitfX1pOSzdXZWJDb3Jl
MTNHcmFwaGljc0xheWVyMTdyZXBvcnRNZW1vcnlVc2FnZUVQTjNXVEYxNk1lbW9yeU9iamVjdElu
Zm9FCiBfX1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yN2NmRXJyb3JFdgogX19aTks3V2ViQ29y
ZTEzUmVzb3VyY2VFcnJvcjduc0Vycm9yRXYKIF9fWk5LN1dlYkNvcmUxM1Jlc291cmNlRXJyb3Jj
dlA3TlNFcnJvckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggOWYwODkwM2MxZjM5ZGM3YTZlZjQ0Zjc2
OTNhYTI3ZDhhMzU3Y2E1MS4uZDIyNjEwNDMxZWViZjc3NWFjMWEzZjhhNTljNjlhZDI4ODY4Nzgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjcyNCw4ICsyNzI0LDcgQEAgdm9pZCBOb2RlOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbmV4
dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7Ci0gICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICBpbmZvLmFkZE1lbWJlcihy
ZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodGhpcy0+cmVuZGVyZXIoKSk7
CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1l
bW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAKaW5kZXggY2QwZGU5ZDg3ZGM2ZDhmYWFlODFmODAxZDUwZTYzZWE4YmNiNzQxYy4u
NTFiNjNiMDNkZGUyYWYzMTc2MGQxN2NhNDkzODU1ZTM1NjM3MzkwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC04NSw2ICs4
NSwxNCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3NpemVzTWFwID0gbV9jbGllbnQtPnNp
emVzTWFwKCk7CiAKKyAgICAgICAgLy8gRklYTUU6IFdlIGZpbHRlciBvdXQgUmVuZGVyaW5nIHR5
cGUgYmVjYXVzZSB0aGUgY292ZXJhZ2UgaXMgbm90IGdvb2QgZW5vdWdoIGF0IHRoZSBtb21lbnQK
KyAgICAgICAgLy8gYW5kIHJlcG9ydCBSZW5kZXJBcmVuYSBzaXplIGluc3RlYWQuCisgICAgICAg
IGZvciAoVHlwZU5hbWVUb1NpemVNYXA6Oml0ZXJhdG9yIGkgPSBtX3NpemVzTWFwLmJlZ2luKCk7
IGkgIT0gbV9zaXplc01hcC5lbmQoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaS0+a2V5ID09
IFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZykgeworICAgICAgICAgICAgICAgIG1fc2l6
ZXNNYXAucmVtb3ZlKGkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG9iamVjdFR5cGVzOwogICAgICAgICBv
YmplY3RUeXBlcy5hcHBlbmRSYW5nZShtX3NpemVzTWFwLmtleXMoKS5iZWdpbigpLCBtX3NpemVz
TWFwLmtleXMoKS5lbmQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzMTEyYTJkZTI5YTRk
ZDFiOTczOGNlNTQ3NmUwZGUzOWY4YzRiZGFmLi4wZTFkMGIwOGFjZjM3OGFkZTIxMDQzNDIyZGRl
NjJlNmVlMzg4OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpJ
bWFnZSA9ICJQYWdlLkltYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBl
czo6TG9hZGVyID0gIlBhZ2UuTG9hZGVyIjsKK01lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1v
cnlUeXBlczo6UmVuZGVyaW5nID0gIlBhZ2UuUmVuZGVyaW5nIjsKK01lbW9yeU9iamVjdFR5cGUg
UGxhdGZvcm1NZW1vcnlUeXBlczo6TGF5ZXJzID0gIlBhZ2UuUmVuZGVyaW5nLkxheWVycyI7CiAK
IE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVkaW8gPSAiUGFnZS5BdWRp
byI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0
YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggOWNlYjkyZWM1
MzQ3MjFmNTdlNmI2MWJhNmMwZTU3ODIxNzVjODJlMy4uZmVmMTllOTU1YzU5M2FjNjNlODg5ODk3
Njk0MTYxNTlmYzA3M2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00Myw2ICs0Myw4IEBAIGNsYXNz
IFBsYXRmb3JtTWVtb3J5VHlwZXMgewogcHVibGljOgogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RU
eXBlIEltYWdlOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIExvYWRlcjsKKyAgICBzdGF0
aWMgTWVtb3J5T2JqZWN0VHlwZSBSZW5kZXJpbmc7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgTGF5ZXJzOwogCiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW87CiAgICAgc3Rh
dGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW9TaGFyZWREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDIzMmQyYWY2YzI0YjRjNjMwMjA0ZmZjYThl
YmUwMWQ1N2IxYzRjMWUuLjQyYjI5MWE0NzU4YmU0YzdlODNhYTY2NTg4NDJkNTI1ODZhOWEyM2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTQyMCw0
ICs0MjAsMTAgQEAgSW50UmVjdCBTY3JvbGxhYmxlQXJlYTo6dmlzaWJsZUNvbnRlbnRSZWN0KGJv
b2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgc3RkOjptYXgo
MCwgdmlzaWJsZUhlaWdodCgpICsgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCkpOwogfQogCit2
b2lkIFNjcm9sbGFibGVBcmVhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsQW5pbWF0b3Ip
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAppbmRleCA5MzBjZGMwMGU4YjJhNTRmMjgyMjMxNjE2NWQ4ODVkZDJjMmRh
YzdlLi4xMmI0Y2Y0Y2U1MTJmOWU0NjdiYzU3YTkzNjMwMDQ1NjhjOWNmYTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTE3NCw2ICsxNzQsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGFi
bGVBcmVhKCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsYWJsZUFyZWEoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNmQxYTI0
NzlhNzJjZTYzNTFiODg0ODZlZTgxZTA2ZTliMzI5MDBiNi4uYTk2YmRjNmFkM2JiM2NhMzIyZWEx
NTlmOGExMTNiMTk4ODA3MDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTMzLDkgKzMzLDExIEBACiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0UmVjdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVh
bS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC03MzcsNiArNzM5LDE2IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjpsYXllclRy
ZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiAgICAgcmV0
dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OkxheWVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5m
by5hZGRNZW1iZXIobV9wYXJlbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3JlcGxpY2FMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZXBsaWNhdGVkTGF5ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5k
ZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKaW5kZXggNGYzOTU0NDg2MGIyYWVmY2ZlN2UxYjk2YzNlNWJmZmEwZWY4ZTI4MS4u
N2MzM2ZkZDc3YzdhYzVmYWY2MzQ2MDE1OTE3NGU5YWM0NDJkZmJlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDI2LDYgKzQy
Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xh
c3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uY3BwCmluZGV4IDhhMGFmMTUzMDc0ZTY3Mjk2MzYyMWE0MDA5ODIwY2ZmYzNh
ZjU2YmEuLmU3NDdiYTIwNDk4ZmRkNTAxNDE5YjkxNzMxYzg4ODVjYjcxNDA2MWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1
ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJTa0ltYWdlRmls
dGVyLmgiCiAjaW5jbHVkZSAiU2tNYXRyaXg0NC5oIgpAQCAtNzAsNiArNzEsNyBAQAogI2luY2x1
ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KQEAgLTg3OSw2ICs4ODEsMjEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OmRpZFNjcm9sbCgpCiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFRvT2Zmc2V0V2l0
aG91dEFuaW1hdGlvbihJbnRQb2ludChtX2xheWVyLT5sYXllcigpLT5zY3JvbGxQb3NpdGlvbigp
KSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkxheWVycyk7CisgICAgR3JhcGhpY3NMYXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lQmFzZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9sYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm1MYXllcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZUxheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Nv
bnRlbnRzTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGlua0hpZ2hsaWdodCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9vcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRpb25JZE1hcCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zY3JvbGxhYmxlQXJlYSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmgKaW5kZXggZjMzMmU5NDQ0YzVkZGEzODlkMDNjOWIyZTBiNDYyYTI2YzliNDEw
OS4uMTBmZGE3NjkzOWU1MjUyOTFiNTYyZjBlZGRhZjU4YWM4N2U3MzYxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTE1Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAg
Ly8gRXhwb3NlZCBmb3IgdGVzdHMuCiAgICAgV2ViS2l0OjpXZWJMYXllciogY29udGVudHNMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllcjsgfQogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU5hbWVzKCk7CiAgICAgdm9pZCB1cGRhdGVDaGlsZExp
c3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDhjNjI0
OTc2NTllZGY5NWNiY2IzMTE5YTVjOWZjZTcxYjBkMzA1M2EuLjE3YTVhZTkzNTAwMDlmYmRhZjZi
ZWIzZjk5Yjg4ZDRiN2E5MmJmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0
YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAjaW5j
bHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCkBAIC03NzM1LDQgKzc3MzYsMTQgQEAg
U3RyaW5nIFZhbHVlVG9TdHJpbmc8UmVuZGVyQmxvY2s6OkZsb2F0aW5nT2JqZWN0Kj46OnN0cmlu
Zyhjb25zdCBSZW5kZXJCbG9jazo6RmwKIAogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxvY2s6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxh
dGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3g6OnJlcG9ydE1lbW9y
eVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxvYXRpbmdP
YmplY3RzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JhcmVEYXRhKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVCb3hlcyk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKaW5kZXggOWYwMDg0NzdiYzRjMGJkOWI4NDIyODFiZTgyMDRiNmM1ODc1NjBhYy4uMjBlYWRm
OTUzNTkxZDVlOTlkZmU4MzgzNjUyMTRjY2E0YTUzYzkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKQEAgLTUyMiw2ICs1MjIsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2
aXJ0dWFsIHZvaWQgY2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRV
bml0JiBwYWdlTG9naWNhbEhlaWdodCwgYm9vbCYgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBi
b29sJiBoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBw
cml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIGNvbXB1dGVFeGNs
dXNpb25TaGFwZVNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5k
ZXggNDRmM2RlMTFhMmJkODgzMjY0NTNmZGNkMWQ3OWVmZjdiNjc1NTZjZi4uNDcyNjhmMzU5MTJk
YjlmMjA4YmM2MmMyNWVhODc0NjhhZmRlMDk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAj
aW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgor
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxhbGdv
cml0aG0+CiAjaW5jbHVkZSA8bWF0aC5oPgogCkBAIC00MjEzLDQgKzQyMTQsMTIgQEAgUmVuZGVy
T2JqZWN0KiBSZW5kZXJCb3g6OnNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJP
YmplY3QqIGJlZm9yZUNoaWwKICAgICByZXR1cm4gYmVmb3JlQ2hpbGQ7CiB9CiAKK3ZvaWQgUmVu
ZGVyQm94OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9pbmxpbmVCb3hXcmFwcGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X292ZXJmbG93KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCmluZGV4IGMxZGUzZTczNjE5MTZjMzgxYmYxM2MwYjk2YTAxZGJkMjE1
MTViYTIuLjJmMzYzOGY3MTBhMTIxYTkzMWZjZGIxMzg3ZWU4YzU4ZGNlMTI4YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTU5OCw2ICs1OTgsOCBAQCBwcm90ZWN0ZWQ6
CiAKICAgICBSZW5kZXJPYmplY3QqIHNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAg
IGJvb2wgZml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmll
dyopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmlu
ZGV4IGRiMWIxODVmNjVkNDY5ZDMzM2I2YzYxZDBhMmU0OTI3OWM3ZTcxNTYuLjAyNjljNGY4MWVk
NWYwNzgyYmMwNWY4YTBmNWQxMjU2NGIwM2UxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiU3R5bGVJbmhl
cml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJWaXNp
YmxlUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAKICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKQEAgLTE2NDEsNCArMTY0Miwx
MiBAQCB2b2lkIFJlbmRlcklubGluZTo6YWRkQW5ub3RhdGVkUmVnaW9ucyhWZWN0b3I8QW5ub3Rh
dGVkUmVnaW9uVmFsdWU+JiByZWdpb25zKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVySW5saW5l
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2hpbGRyZW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGluZUJveGVzKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5oCmluZGV4IDg0NTkwNGI2NTJhNTYyNGExMzE5YzY4OTQyZWI2ZDA1YjQ2YWY2ZDAuLjBmYWI4
ZDYxMmQ5ODIwMTMzOThhYzQ2Y2E0Y2E0NjVjNzZlZmU1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTkxLDYgKzkxLDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBoaXRUZXN0Q3VsbGVkSW5saW5lKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDNjN2NmNmU1NmRjNzdiMjFiNDI5ODE5ODVj
MDNkMGEwZTA5ODdhMmQuLmNmZjE1NWQ1ZTBjZDM3N2NmM2Y4ZDFlOTk4Y2Y1ODgzYjM5NzlmNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTksNiArOTks
OCBAQAogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2luY2x1
ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTU0MDQsNiArNTQwNiwzMiBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1Jl
cGFpbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpSZW5kZXJpbmcpOworICAgIFNjcm9sbGFibGVBcmVhOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVuZGVyZXIpOworICAg
IGluZm8uYWRkV2Vha1BvaW50ZXIobV9wYXJlbnQpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9wcmV2aW91cyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX25leHQpOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9maXJzdCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2xhc3Qp
OworICAgIGluZm8uYWRkTWVtYmVyKG1faEJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV92QmFy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Bvc1pPcmRlckxpc3QpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbmVnWk9yZGVyTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub3JtYWxGbG93TGlz
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGlwUmVjdHNDYWNoZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9tYXJxdWVlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zZm9ybSk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX3JlZmxlY3Rpb24pOworICAgIGluZm8uYWRkV2Vha1BvaW50
ZXIobV9zY3JvbGxDb3JuZXIpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZXNpemVyKTsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9i
YWNraW5nKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYg
TkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBh
YjJkNjZkZjJkOTQ3MTY1NGVjYzljYzBlMDE3YzYxYzUuLjEwZWI1YWJiOWM3NGEwZjQzNTViNGVh
Y2FmNmNjMTNkMDVkYWYzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC03MTAsNiArNzEwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNJblRvcExheWVyU3VidHJl
ZSgpIGNvbnN0OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIHZvaWQg
dXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4
OGJlMDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0YmJkYjkzYzc0Li43NzM2MWY3NDM4NzU4NDQ1
NGUxY2NkMGFlNTlhZWJmOGM2YzAzNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRpbGVkQmFj
a2luZy5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKQEAgLTE5NjksNiArMTk3MCwyMiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6Y29u
dGVudHNWaXNpYmxlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBJbnRSZWN0JiBsbwogfQog
I2VuZGlmCiAKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJl
bmRlcmluZyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX293bmluZ0xheWVyKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2FuY2VzdG9yQ2xpcHBpbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9ncmFwaGljc0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZvcmVncm91bmRMYXll
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250YWlubWVudExheWVyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX21hc2tMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvckhvcml6
b250YWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JWZXJ0aWNhbFNj
cm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvclNjcm9sbENvcm5lcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxpbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGNkY2MwMzBjMjUyM2ZhZWYy
ODdmZGU5MTc3MTAwZmU0ZmY1ZGI1ZjguLjBmZDAzZTQ4MWYyMTM2MDliMGJmYmQ3OWEzMzRiOTEw
OTRlMjY2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKQEAgLTE4NCw2ICsxODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19DT01QT1NJ
VElORykKICAgICB2b2lkIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpOwogI2VuZGlmCisgICAgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA4NzBiZjFk
ZGZhNzM5NTljMGVlMGEyY2MxOGU5ZWZhODg1OWNmMjFjLi5kOGE3OWE3YzgzYTE5MmUyZTRlNzM0
ZTM2MmQyZWRjODUyODZkZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNp
ZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVt
ZW50LmgiCkBAIC0yNzUxLDYgKzI3NTIsMjcgQEAgUGFnZSogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpwYWdlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZFdlYWtQ
b2ludGVyKG1fcmVuZGVyVmlldyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yb290Q29udGVudExh
eWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpcExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3Njcm9sbExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0Q29uc3RyYWluZWRM
YXllcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdmlld3BvcnRDb25zdHJhaW5lZExheWVyc05l
ZWRpbmdVcGRhdGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3ZlcmZsb3dDb250cm9sc0hvc3RM
YXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAg
aW5mby5hZGRNZW1iZXIobV9sYXllckZvclNjcm9sbENvcm5lcik7CisjaWYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQorICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRTaGFkb3dMYXllcik7CisjZW5kaWYKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2xheWVyVXBkYXRlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0ZDgyOGYx
YTVmMWYxMDBiZjI0MGJjMzE0YjAzNzNhZGFiYmI1NmY3Li4xYWRmYmQ0NGE2Y2Q1NjNkODdhY2Iy
MDc0YTBjMzNmODk1ODc5YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMzEsNiArMjMxLDggQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXRUcmFja2VkUmVwYWludFJlY3RzKCk7CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50
cyhib29sKTsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OworCiBwcml2YXRlOgogICAgIGNsYXNzIE92ZXJsYXBNYXA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCBh
ZWIzMmI3YTJlM2ZkNWMwMDk4MTMwMmIwZDczNjJiM2Y2NjYzZTcxLi5hNGQ5MmYwOGQ1NmRiNTBl
NWZiODAxNTBmMjUwMjE2ZDBkZDRmMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKQEAgLTE3NCw1ICsxNzUsMTIgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QKICAgICB9CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0lu
Zm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5k
ZXJpbmcpOworICAgIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2xheWVyKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaAppbmRleCBjNjI0MWQzNzc1MTM5NTM1ZjkwZmM2MDU2YTQ0NDI0ZTlh
ZDM4NTFlLi44YTRmYzM0MWYzY2IyMmUxNzg3Y2QyMGRjOGFmN2U4YmQ4NjQ0ZmRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKQEAg
LTQ2LDYgKzQ2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIo
KSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBlbnN1
cmVMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDExMDQ2N2FkNTQ4ZmNiY2IwNDE0ZWFhYWM2MjNhMDQzY2NjYjFhNDguLjI1ZGRiZDJlMzRh
OTU4ZDMwYWE3NzZhNGEwZDRhNzgyOWVhMmQwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUu
aCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
QEAgLTMwNTUsNiArMzA1NiwxNiBAQCBib29sIFJlbmRlck9iamVjdDo6Y2FuQmVSZXBsYWNlZFdp
dGhJbmxpbmVSdW5JbigpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVuZGVy
T2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zdHlsZSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX25vZGUpOworICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIobV9wYXJlbnQpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9wcmV2
aW91cyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX25leHQpOworfQorCiAjaWYgRU5BQkxF
KFNWRykKIAogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqIFJlbmRlck9iamVjdDo6dG9SZW5k
ZXJTVkdSZXNvdXJjZUNvbnRhaW5lcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKaW5kZXggMjU4Mjc2YjM2OTJhYzMzOTE0OTQ0MDEyZWI0YjgwZjg5YTYzYzc2Ni4uMjM3
YTM1ZjY0NTA3ZmZiNzg0ZGY5MWQ3Yjk0MDlkM2JlNjFlNGRjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgY3JlYXRlc0Fub255bW91c1dyYXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCisg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25z
dDsKKwogcHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogICAgIC8vIEhlbHBlciBmdW5jdGlvbnMuIERhbmdlcm91cyB0byB1c2UhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggYTlhMjVkZjYzODU4M2EyNDVm
YTNiOGFiOGE5YWZlZWYyNjVjNzMzYi4uODkwZjg5NGMzYmMzNjE1NTJkNDVkNzdkNTAxYzUzOTUw
MjQ4Y2ZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNDMs
NiArNDMsNyBAQAogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4
dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgorI2luY2x1
ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJicmVha19saW5l
cy5oIgogI2luY2x1ZGUgPHd0Zi9BbHdheXNJbmxpbmUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWZmZXIuaD4KQEAgLTE5MzAsNCArMTkzMSwxMyBAQCB2b2lkIFJlbmRlclRleHQ6Om1v
bWVudGFyaWx5UmV2ZWFsTGFzdFR5cGVkQ2hhcmFjdGVyKHVuc2lnbmVkIGxhc3RUeXBlZENoYXJh
Y3RlcgogICAgIHNlY3VyZVRleHRUaW1lci0+cmVzdGFydFdpdGhOZXdUZXh0KGxhc3RUeXBlZENo
YXJhY3Rlck9mZnNldCk7CiB9CiAKK3ZvaWQgUmVuZGVyVGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVz
OjpSZW5kZXJpbmcpOworICAgIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5
T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90ZXh0KTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2ZpcnN0VGV4dEJveCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXN0VGV4dEJveCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCmluZGV4IDdiOTg2OTE3ZDhiZGM2Y2ZlNjc3ZWExYTcwZTg3MWU0MjFiMTIxOWEuLjBl
NGQ2MmNkNWZhMWExM2E3ODU0YThlM2YzNWM0ZTcxOThiYzRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTQ0LDYgKzE0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVtb3ZlQW5kRGVzdHJveVRleHRCb3hlcygpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDE0NTdiNmJlMmE0N2Y5ZmI2M2JkYWQyNjFm
MDIwNWE4ZjEwMzEzYTYuLjNiMmY0ZTVjMzlkYWYwZjc1ODE1YzJkZWYzYjIxODM5ZjYzYjY1OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXRQcm90ZWN0b3IuaCIKICNpbmNsdWRlICJTdHlsZUlu
aGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKQEAgLTk5Niw0ICs5
OTcsMjQgQEAgUmVuZGVyQmxvY2s6OkludGVydmFsQXJlbmEqIFJlbmRlclZpZXc6OmludGVydmFs
QXJlbmEoKQogICAgIHJldHVybiBtX2ludGVydmFsQXJlbmEuZ2V0KCk7CiB9CiAKK3ZvaWQgUmVu
ZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIFJlbmRlckJsb2Nr
OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQ
b2ludGVyKG1fZnJhbWVWaWV3KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2VsZWN0aW9u
U3RhcnQpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9zZWxlY3Rpb25FbmQpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fd2lkZ2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXlvdXRTdGF0
ZSk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGluZm8uYWRkTWVtYmVy
KG1fY29tcG9zaXRvcik7CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIFVTRSgz
RF9HUkFQSElDUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1c3RvbUZpbHRlckdsb2JhbENvbnRl
eHQpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9mbG93VGhyZWFkQ29udHJvbGxlcik7
CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnRlcnZhbEFyZW5hKTsKKyAgICBpbmZvLmFkZFdlYWtQ
b2ludGVyKG1fcmVuZGVyUXVvdGVIZWFkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggZDYzZjhkZjg2ODYxMzcxNThi
OWFiOTg0ZWExZWMzNTQyNDc2ZTk3ZS4uMTY5NGE4ZjIyZGQ1MzFiZGY4NzY4ZTJkYzUxNjkxZTA3
YTcyNjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0yODIsNiAr
MjgyLDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0U3RhdGVNYWludGFpbmVy
OwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZURpc2FibGVyOwogCisgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsK
KwogcHJvdGVjdGVkOgogICAgIEZyYW1lVmlldyogbV9mcmFtZVZpZXc7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176991</attachid>
            <date>2012-11-30 10:35:32 -0800</date>
            <delta_ts>2012-11-30 11:20:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103564-20121130103305.patch</filename>
            <type>text/plain</type>
            <size>29918</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QxNDQ2MmNhOTgwNmZi
NjA4MmZlNGFkZWE3MDM3MmZiY2QwNDkwNC4uYzRlMmJhNTFiMGI5YmQ2NmJhNTUyMGI1ZmQwNDg4
MWUzODFhNWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTMwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogSXQncyBTYXNzLCBub3QgU0FTUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCAxZDVlOWI3OWVmODI2ZDMzM2E0ZDdlZmE2MWI2YjhmODFkNzg0YTA0Li5lYTBj
MDZkZmIxODg4YjhhNjhkYTcwMDNiN2IzYTQxY2U4ODM5ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTIwNCw2ICsxMjA0LDcgQEAgX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDE4dGl0
bGVEaXNwbGF5U3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQ1aW1hZ2VFdgog
X19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDV0aXRsZUVSTlNfMTNUZXh0RGlyZWN0aW9uRQog
X19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDlpbWFnZVJlY3RFdgorX19aTks3V2ViQ29yZTEz
R3JhcGhpY3NMYXllcjE3cmVwb3J0TWVtb3J5VXNhZ2VFUE4zV1RGMTZNZW1vcnlPYmplY3RJbmZv
RQogX19aTks3V2ViQ29yZTEzUmVzb3VyY2VFcnJvcjdjZkVycm9yRXYKIF9fWk5LN1dlYkNvcmUx
M1Jlc291cmNlRXJyb3I3bnNFcnJvckV2CiBfX1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yY3ZQ
N05TRXJyb3JFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDFkOWRmYzQ0ZDJlOTg5NTc1ZWFiNmRjNGZj
NTJmMWEzMGZmNmMxMjUuLjVjOGViM2U2Y2NhZWIzMzRlZDRiYTVkNmMzM2YzZTRiMzBhNTcxNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTI3MjQsOCArMjcyNCw3IEBAIHZvaWQgTm9kZTo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAg
ICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX25leHQp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJldmlvdXMpOwotICAgIGlmIChSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKLSAgICAgICAgaW5mby5hZGRNZW1iZXIocmVu
ZGVyZXItPnN0eWxlKCkpOworICAgIGluZm8uYWRkTWVtYmVyKHRoaXMtPnJlbmRlcmVyKCkpOwog
ICAgIGlmIChoYXNSYXJlRGF0YSgpKQogICAgICAgICBpbmZvLmFkZE1lbWJlcihyYXJlRGF0YSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCmluZGV4IGNkMGRlOWQ4N2RjNmQ4ZmFhZTgxZjgwMWQ1MGU2M2VhOGJjYjc0MWMuLjUx
YjYzYjAzZGRlMmFmMzE3NjBkMTdjYTQ5Mzg1NWUzNTYzNzM5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApAQCAtODUsNiArODUs
MTQgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9zaXplc01hcCA9IG1fY2xpZW50LT5zaXpl
c01hcCgpOwogCisgICAgICAgIC8vIEZJWE1FOiBXZSBmaWx0ZXIgb3V0IFJlbmRlcmluZyB0eXBl
IGJlY2F1c2UgdGhlIGNvdmVyYWdlIGlzIG5vdCBnb29kIGVub3VnaCBhdCB0aGUgbW9tZW50Cisg
ICAgICAgIC8vIGFuZCByZXBvcnQgUmVuZGVyQXJlbmEgc2l6ZSBpbnN0ZWFkLgorICAgICAgICBm
b3IgKFR5cGVOYW1lVG9TaXplTWFwOjppdGVyYXRvciBpID0gbV9zaXplc01hcC5iZWdpbigpOyBp
ICE9IG1fc2l6ZXNNYXAuZW5kKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGktPmtleSA9PSBQ
bGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpIHsKKyAgICAgICAgICAgICAgICBtX3NpemVz
TWFwLnJlbW92ZShpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQogICAgICAgICBWZWN0b3I8U3RyaW5nPiBvYmplY3RUeXBlczsKICAgICAgICAgb2Jq
ZWN0VHlwZXMuYXBwZW5kUmFuZ2UobV9zaXplc01hcC5rZXlzKCkuYmVnaW4oKSwgbV9zaXplc01h
cC5rZXlzKCkuZW5kKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMzExMmEyZGUyOWE0ZGQx
Yjk3MzhjZTU0NzZlMGRlMzlmOGM0YmRhZi4uMGUxZDBiMDhhY2YzNzhhZGUyMTA0MzQyMmRkZTYy
ZTZlZTM4ODk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1h
Z2UgPSAiUGFnZS5JbWFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkxvYWRlciA9ICJQYWdlLkxvYWRlciI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OlJlbmRlcmluZyA9ICJQYWdlLlJlbmRlcmluZyI7CitNZW1vcnlPYmplY3RUeXBlIFBs
YXRmb3JtTWVtb3J5VHlwZXM6OkxheWVycyA9ICJQYWdlLlJlbmRlcmluZy5MYXllcnMiOwogCiBN
ZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvID0gIlBhZ2UuQXVkaW8i
OwogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEg
PSAiUGFnZS5BdWRpby5TaGFyZWREYXRhIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDljZWI5MmVjNTM0
NzIxZjU3ZTZiNjFiYTZjMGU1NzgyMTc1YzgyZTMuLmZlZjE5ZTk1NWM1OTNhYzYzZTg4OTg5NzY5
NDE2MTU5ZmMwNzNhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsOCBAQCBjbGFzcyBQ
bGF0Zm9ybU1lbW9yeVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlw
ZSBJbWFnZTsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgUmVuZGVyaW5nOworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBl
IExheWVyczsKIAogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEF1ZGlvOwogICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIEF1ZGlvU2hhcmVkRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCAyMzJkMmFmNmMyNGI0YzYzMDIwNGZmY2E4ZWJl
MDFkNTdiMWM0YzFlLi5mYjU0MGNkNWNiOGQ1ZGYzMWQ0NWNlZGUxMTU5MWE0OWY4OGVkMzUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NM
YXllci5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9y
eUluc3RydW1ldGF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5j
bHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgpAQCAt
NDIwLDQgKzQyMSwxMCBAQCBJbnRSZWN0IFNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJl
Y3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKICAgICAgICAgICAgICAgICAgICBzdGQ6
Om1heCgwLCB2aXNpYmxlSGVpZ2h0KCkgKyBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KSk7CiB9
CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxBbmlt
YXRvcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDkzMGNkYzAwZThiMmE1NGYyODIyMzE2MTY1ZDg4NWRk
MmMyZGFjN2UuLjEyYjRjZjRjZTUxMmY5ZTQ2N2JjNTdhOTM2MzAwNDU2OGM5Y2ZhODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTc0LDYgKzE3NCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgU2Ny
b2xsYWJsZUFyZWEoKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxhYmxlQXJlYSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2
ZDFhMjQ3OWE3MmNlNjM1MWI4ODQ4NmVlODFlMDZlOWIzMjkwMGI2Li5hOTZiZGM2YWQzYmIzY2Ez
MjJlYTE1OWY4YTExM2IxOTg4MDcwNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJUZXh0
U3RyZWFtLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTczNyw2ICs3MzksMTYgQEAgU3RyaW5nIEdyYXBoaWNzTGF5ZXI6Omxh
eWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKICAg
ICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1N
ZW1vcnlUeXBlczo6TGF5ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkcmVuKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3BhcmVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVwbGljYUxheWVyKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3JlcGxpY2F0ZWRMYXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaAppbmRleCA0ZjM5NTQ0ODYwYjJhZWZjZmU3ZTFiOTZjM2U1YmZmYTBlZjhl
MjgxLi43YzMzZmRkNzdjN2FjNWZhZjYzNDYwMTU5MTc0ZTlhYzQ0MmRmYmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00MjYs
NiArNDI2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsK
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIGZyb20gZGVyaXZl
ZCBjbGFzcyBkZXN0cnVjdG9ycy4gU2hvdWxkIGNhbGwgd2lsbEJlRGVzdHJveWVkKCkgb24gc3Vw
ZXIuCiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOGEwYWYxNTMwNzRlNjcyOTYzNjIxYTQwMDk4MjBj
ZmZjM2FmNTZiYS4uZTc0N2JhMjA0OThmZGQ1MDE0MTliOTE3MzFjODg4NWNiNzE0MDYxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAj
aW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlNrSW1h
Z2VGaWx0ZXIuaCIKICNpbmNsdWRlICJTa01hdHJpeDQ0LmgiCkBAIC03MCw2ICs3MSw3IEBACiAj
aW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgpAQCAtODc5LDYgKzg4MSwyMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6ZGlkU2Nyb2xsKCkKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsVG9PZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKEludFBvaW50KG1fbGF5ZXItPmxheWVyKCktPnNjcm9sbFBvc2l0
aW9uKCkpKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlU
eXBlczo6TGF5ZXJzKTsKKyAgICBHcmFwaGljc0xheWVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25hbWVCYXNlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zZm9ybUxheWVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fY29udGVudHNMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rSGlnaGxpZ2h0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX29wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVn
YXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2FuaW1hdGlvbklkTWFwKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3Njcm9sbGFibGVBcmVhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaAppbmRleCBmMzMyZTk0NDRjNWRkYTM4OWQwM2M5YjJlMGI0NjJhMjZj
OWI0MTA5Li4xMGZkYTc2OTM5ZTUyNTI5MWI1NjJmMGVkZGFmNThhYzg3ZTczNjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTUyLDYgKzE1Miw4IEBAIHB1YmxpYzoK
ICAgICAvLyBFeHBvc2VkIGZvciB0ZXN0cy4KICAgICBXZWJLaXQ6OldlYkxheWVyKiBjb250ZW50
c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURF
OworCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUNo
aWxkTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
OGM2MjQ5NzY1OWVkZjk1Y2JjYjMxMTlhNWM5ZmNlNzFiMGQzMDUzYS4uMTdhNWFlOTM1MDAwOWZi
ZGFmNmJlYjNmOTliODhkNGI3YTkyYmZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRl
cmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVHJhbnNm
b3JtU3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKQEAgLTc3MzUsNCArNzczNiwx
NCBAQCBTdHJpbmcgVmFsdWVUb1N0cmluZzxSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3QqPjo6
c3RyaW5nKGNvbnN0IFJlbmRlckJsb2NrOjpGbAogCiAjZW5kaWYKIAordm9pZCBSZW5kZXJCbG9j
azo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIFJlbmRlckJveDo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mbG9h
dGluZ09iamVjdHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmFyZURhdGEpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY2hpbGRyZW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGluZUJveGVzKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAppbmRleCA5ZjAwODQ3N2JjNGMwYmQ5Yjg0MjI4MWJlODIwNGI2YzU4NzU2MGFjLi4y
MGVhZGY5NTM1OTFkNWU5OWRmZTgzODM2NTIxNGNjYTRhNTNjOTA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNTIyLDYgKzUyMiw4IEBAIHByb3RlY3RlZDoKIAog
ICAgIHZpcnR1YWwgdm9pZCBjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExh
eW91dFVuaXQmIHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29sJiBwYWdlTG9naWNhbEhlaWdodENoYW5n
ZWQsIGJvb2wmIGhhc1NwZWNpZmllZFBhZ2VMb2dpY2FsSGVpZ2h0KTsKIAorICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7
CisKIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHZvaWQgY29tcHV0
ZUV4Y2x1c2lvblNoYXBlU2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCAzM2RjOTQ1ZTljMjgzZDI1ZDc3MDUyNTkyOGIyMzhmMWViNGEzNWJhLi4yODRkNzg1
OGJjYzJkMjM2MThiMGM1NTQwZTYwMjRkMjI0NmFmOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRl
LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDxtYXRoLmg+CiAKQEAgLTQyMTcsNCArNDIxOCwxMiBAQCBS
ZW5kZXJPYmplY3QqIFJlbmRlckJveDo6c3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbAogICAgIHJldHVybiBiZWZvcmVDaGlsZDsKIH0KIAordm9p
ZCBSZW5kZXJCb3g6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX2lubGluZUJveFdyYXBwZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fb3ZlcmZsb3cpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYzFkZTNlNzM2MTkxNmMzODFiZjEzYzBiOTZhMDFk
YmQyMTUxNWJhMi4uMmYzNjM4ZjcxMGExMjFhOTMxZmNkYjEzODdlZThjNThkY2UxMjhhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTk4LDYgKzU5OCw4IEBAIHByb3Rl
Y3RlZDoKIAogICAgIFJlbmRlck9iamVjdCogc3BsaXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxk
KFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6
CiAgICAgYm9vbCBmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJh
bWVWaWV3KikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKaW5kZXggZGIxYjE4NWY2NWQ0NjlkMzMzYjZjNjFkMGEyZTQ5Mjc5YzdlNzE1Ni4uMDI2OWM0
ZjgxZWQ1ZjA3ODJiYzA1ZjhhMGY1ZDEyNTY0YjAzZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTdHls
ZUluaGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUg
IlZpc2libGVQb3NpdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKIAogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIApAQCAtMTY0MSw0ICsx
NjQyLDEyIEBAIHZvaWQgUmVuZGVySW5saW5lOjphZGRBbm5vdGF0ZWRSZWdpb25zKFZlY3RvcjxB
bm5vdGF0ZWRSZWdpb25WYWx1ZT4mIHJlZ2lvbnMpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJJ
bmxpbmU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5lQm94ZXMpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmgKaW5kZXggODQ1OTA0YjY1MmE1NjI0YTEzMTljNjg5NDJlYjZkMDViNDZhZjZkMC4u
MGZhYjhkNjEyZDk4MjAxMzM5OGFjNDZjYTRjYTQ2NWM3NmVmZTUxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtOTEsNiArOTEsOCBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGhpdFRlc3RDdWxsZWRJbmxpbmUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwogCisgICAgdmlydHVhbCB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3N2IyMWI0Mjk4
MTk4NWMwM2QwYTBlMDk4N2EyZC4uY2ZmMTU1ZDVlMGNkMzc3Y2YzZjhkMWU5OThjZjU4ODNiMzk3
OWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC05OSw2
ICs5OSw4IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0
aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpAQCAtNTQwNCw2ICs1NDA2LDMyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5l
ZWRzUmVwYWludCgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJMYXllcjo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OlJlbmRlcmluZyk7CisgICAgU2Nyb2xsYWJsZUFyZWE6OnJlcG9ydE1lbW9yeVVzYWdl
KG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZW5kZXJlcik7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3BhcmVudCk7CisgICAgaW5mby5hZGRXZWFrUG9p
bnRlcihtX3ByZXZpb3VzKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbmV4dCk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX2ZpcnN0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
bGFzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9oQmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3ZCYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcG9zWk9yZGVyTGlzdCk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9uZWdaT3JkZXJMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25vcm1hbEZs
b3dMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBSZWN0c0NhY2hlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX21hcnF1ZWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtKTsK
KyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcmVmbGVjdGlvbik7CisgICAgaW5mby5hZGRXZWFr
UG9pbnRlcihtX3Njcm9sbENvcm5lcik7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3Jlc2l6
ZXIpOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2JhY2tpbmcpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lm
bmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNjVm
MTA3MGFiMmQ2NmRmMmQ5NDcxNjU0ZWNjOWNjMGUwMTdjNjFjNS4uMTBlYjVhYmI5Yzc0YTBmNDM1
NWI0ZWFjYWY2Y2MxM2QwNWRhZjNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTcxMCw2ICs3MTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luVG9wTGF5ZXJT
dWJ0cmVlKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAg
dm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IDg4YmUwOGRmZWJlNWY5YTdjYjc4OTI1ODA2NDhiNDRiYmRiOTNjNzQuLjc3MzYxZjc0Mzg3
NTg0NDU0ZTFjY2QwYWU1OWFlYmY4YzZjMDM0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGls
ZWRCYWNraW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIApAQCAtMTk2OSw2ICsxOTcwLDIyIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5n
Ojpjb250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IEludFJlY3QmIGxv
CiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBl
czo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fb3duaW5nTGF5ZXIpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2dyYXBoaWNzTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9yZWdyb3Vu
ZExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRhaW5tZW50TGF5ZXIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFza0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9y
SG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvclZlcnRp
Y2FsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yU2Nyb2xsQ29ybmVy
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Njcm9sbGluZ0xheWVyKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggY2RjYzAzMGMyNTIz
ZmFlZjI4N2ZkZTkxNzcxMDBmZTRmZjVkYjVmOC4uMGZkMDNlNDgxZjIxMzYwOWIwYmZiZDc5YTMz
NGI5MTA5NGUyNjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaApAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0NP
TVBPU0lUSU5HKQogICAgIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9kZSk7CiAjZW5kaWYKKyAg
ICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICB2b2lkIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDg3
MGJmMWRkZmE3Mzk1OWMwZWUwYTJjYzE4ZTllZmE4ODU5Y2YyMWMuLmQ4YTc5YTdjODNhMTkyZTJl
NGU3MzRlMzYyZDJlZGM4NTI4NmRlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNsdWRlICJUcmFu
c2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKQEAgLTI3NTEsNiArMjc1MiwyNyBAQCBQYWdlKiBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnBhZ2UoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCit2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9yZW5kZXJWaWV3KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jvb3RDb250
ZW50TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNU
aW1lcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGlwTGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fc2Nyb2xsTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdmlld3BvcnRDb25zdHJh
aW5lZExheWVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJzTmVlZGluZ1VwZGF0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vdmVyZmxvd0NvbnRyb2xz
SG9zdExheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9s
bGJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKTsKKyNpZiBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllckZvck92ZXJoYW5nQXJl
YXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudFNoYWRvd0xheWVyKTsKKyNlbmRpZgor
ICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJVcGRhdGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDRk
ODI4ZjFhNWYxZjEwMGJmMjQwYmMzMTRiMDM3M2FkYWJiYjU2ZjcuLjFhZGZiZDQ0YTZjZDU2M2Q4
N2FjYjIwNzRhMGMzM2Y4OTU4NzliMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIzMSw2ICsyMzEsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50UmVjdHMoKTsKICAgICB2b2lkIHNldFRyYWNrc1Jl
cGFpbnRzKGJvb2wpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgY2xhc3MgT3ZlcmxhcE1hcDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmlu
ZGV4IGFlYjMyYjdhMmUzZmQ1YzAwOTgxMzAyYjBkNzM2MmIzZjY2NjNlNzEuLmE0ZDkyZjA4ZDU2
ZGI1MGU1ZmI4MDE1MGYyNTAyMTZkMGRkNGYzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApAQCAtMTc0LDUgKzE3NSwxMiBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogICAg
IH0KIH0KIAordm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlP
YmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbGF5ZXIpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGM2MjQxZDM3NzUxMzk1MzVmOTBmYzYwNTZhNDQ0
MjRlOWFkMzg1MWUuLjhhNGZjMzQxZjNjYjIyZTE3ODdjZDIwZGM4YWY3ZThiZDg2NDRmZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
aApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNM
YXllcigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2b2lk
IGVuc3VyZUxheWVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKaW5kZXggMTEwNDY3YWQ1NDhmY2JjYjA0MTRlYWFhYzYyM2EwNDNjY2NiMWE0OC4uMjVkZGJk
MmUzNGE5NThkMzBhYTc3NmE0YTBkNGE3ODI5ZWEyZDA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1T
dGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRp
by5oPgpAQCAtMzA1NSw2ICszMDU2LDE2IEBAIGJvb2wgUmVuZGVyT2JqZWN0OjpjYW5CZVJlcGxh
Y2VkV2l0aElubGluZVJ1bkluKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBS
ZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3N0eWxlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbm9kZSk7CisgICAg
aW5mby5hZGRXZWFrUG9pbnRlcihtX3BhcmVudCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlciht
X3ByZXZpb3VzKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fbmV4dCk7Cit9CisKICNpZiBF
TkFCTEUoU1ZHKQogCiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogUmVuZGVyT2JqZWN0Ojp0
b1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAppbmRleCAyNTgyNzZiMzY5MmFjMzM5MTQ5NDQwMTJlYjRiODBmODlhNjNjNzY2
Li4yMzdhMzVmNjQ1MDdmZmI3ODRkZjkxZDdiOTQwOWQzYmU2MWU0ZGNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yODIsNiArMjgyLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVzQW5vbnltb3VzV3JhcHBlcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAgICAgLy8gSGVscGVyIGZ1bmN0aW9ucy4gRGFuZ2Vyb3VzIHRvIHVzZSEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCBhOWEyNWRmNjM4NTgz
YTI0NWZhM2I4YWI4YTlhZmVlZjI2NWM3MzNiLi44OTBmODk0YzNiYzM2MTU1MmQ0NWQ3N2Q1MDFj
NTM5NTAyNDhjZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBA
IC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCisj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgImJyZWFr
X2xpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0Fsd2F5c0lubGluZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtMTkzMCw0ICsxOTMxLDEzIEBAIHZvaWQgUmVuZGVyVGV4
dDo6bW9tZW50YXJpbHlSZXZlYWxMYXN0VHlwZWRDaGFyYWN0ZXIodW5zaWduZWQgbGFzdFR5cGVk
Q2hhcmFjdGVyCiAgICAgc2VjdXJlVGV4dFRpbWVyLT5yZXN0YXJ0V2l0aE5ld1RleHQobGFzdFR5
cGVkQ2hhcmFjdGVyT2Zmc2V0KTsKIH0KIAordm9pZCBSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5
VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVyT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSht
ZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RleHQpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fZmlyc3RUZXh0Qm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xhc3RUZXh0
Qm94KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmgKaW5kZXggN2I5ODY5MTdkOGJkYzZjZmU2NzdlYTFhNzBlODcxZTQyMWIxMjE5
YS4uMGU0ZDYyY2Q1ZmExYTEzYTc4NTRhOGUzZjM1YzRlNzE5OGJjNGE1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0xNDQsNiArMTQ0LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCByZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMTQ1N2I2YmUyYTQ3ZjlmYjYzYmRh
ZDI2MWYwMjA1YThmMTAzMTNhNi4uM2IyZjRlNWMzOWRhZjBmNzU4MTVjMmRlZjNiMjE4MzlmNjNi
NjU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldFByb3RlY3Rvci5oIgogI2luY2x1ZGUgIlN0
eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgpAQCAtOTk2
LDQgKzk5NywyNCBAQCBSZW5kZXJCbG9jazo6SW50ZXJ2YWxBcmVuYSogUmVuZGVyVmlldzo6aW50
ZXJ2YWxBcmVuYSgpCiAgICAgcmV0dXJuIG1faW50ZXJ2YWxBcmVuYS5nZXQoKTsKIH0KIAordm9p
ZCBSZW5kZXJWaWV3OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVuZGVy
QmxvY2s6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9mcmFtZVZpZXcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9zZWxl
Y3Rpb25TdGFydCk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3NlbGVjdGlvbkVuZCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV93aWRnZXRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheW91
dFN0YXRlKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaW5mby5hZGRN
ZW1iZXIobV9jb21wb3NpdG9yKTsKKyNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYg
VVNFKDNEX0dSQVBISUNTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fY3VzdG9tRmlsdGVyR2xvYmFs
Q29udGV4dCk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zsb3dUaHJlYWRDb250cm9s
bGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludGVydmFsQXJlbmEpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9yZW5kZXJRdW90ZUhlYWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBkNjNmOGRmODY4NjEz
NzE1OGI5YWI5ODRlYTFlYzM1NDI0NzZlOTdlLi4xNjk0YThmMjJkZDUzMWJkZjg3NjhlMmRjNTE2
OTFlMDdhNzI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTI4
Miw2ICsyODIsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZU1haW50
YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlzYWJsZXI7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJS
SURFOworCiBwcm90ZWN0ZWQ6CiAgICAgRnJhbWVWaWV3KiBtX2ZyYW1lVmlldzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176998</attachid>
            <date>2012-11-30 11:20:46 -0800</date>
            <delta_ts>2012-12-07 15:12:51 -0800</delta_ts>
            <desc>next try</desc>
            <filename>bug-103564-20121130111820.patch</filename>
            <type>text/plain</type>
            <size>30388</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QxNDQ2MmNhOTgwNmZi
NjA4MmZlNGFkZWE3MDM3MmZiY2QwNDkwNC4uYzRlMmJhNTFiMGI5YmQ2NmJhNTUyMGI1ZmQwNDg4
MWUzODFhNWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTI5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBOYXRpdmUgTWVt
b3J5IEluc3RydW1lbnRhdGlvbjogaW5zdHJ1bWVudCBhIHBhcnQgb2YgUmVuZGVyT2JqZWN0IGNs
YXNzIHRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYW55IFJlbmRlck9iamVjdCBkZXNjZW5kYW50cyBoYXZlIE93blB0cnMgYW5kIFJlZlB0cnMg
bWVtYmVycy4KKyAgICAgICAgTG9va3MgbGlrZSB3ZSBoYXZlIHRvIGluc3RydW1lbnQgYWxsIHRo
ZSBSZW5kZXJPYmplY3QgY2xhc3NlcyBhbmQgdmlzaXQKKyAgICAgICAgYWxsIHRoZSByZW5kZXIg
b2JqZWN0cyBpbnN0ZWFkIG9mIGNvdW50aW5nIGVudGlyZSByZW5kZXIgYXJlbmEgbWVtb3J5Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9X
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRSZW5kZXJUcmVlSW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoUGxhdGZvcm1NZW1vcnlUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVu
ZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVu
ZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoUmVuZGVyVGV4
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgor
CiAyMDEyLTExLTMwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogSXQncyBTYXNzLCBub3QgU0FTUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCAxZDVlOWI3OWVmODI2ZDMzM2E0ZDdlZmE2MWI2YjhmODFkNzg0YTA0Li44MjQ5
Y2M3NDc1OTc0NThjMDNjMWMyYmFlYzkzZjMxZDQxMTFlMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtODQsNiArODQsNyBAQCBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXc4YWRkQ2hpbGRFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfNldpZGdldEVFRQogX19aTks3V2ViQ29yZTEwU2hhZG93Um9vdDE3
aGFzQ29udGVudEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTEwU2hhZG93Um9vdDE4Y291bnRFbGVt
ZW50U2hhZG93RXYKIF9fWk5LN1dlYkNvcmUxMFNoYWRvd1Jvb3QyM2hhc1NoYWRvd0luc2VydGlv
blBvaW50RXYKK19fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMTdyZXBvcnRNZW1vcnlVc2Fn
ZUVQTjNXVEYxNk1lbW9yeU9iamVjdEluZm9FCiBfX1pON1dlYkNvcmUxMFNoYWRvd1Jvb3Q2Y3Jl
YXRlRVBOU183RWxlbWVudEVSaQogX19aTjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9jdW1lbnRFUktOU180S1VSTEVS
S04zV1RGNlN0cmluZ0UKQEAgLTEyMDQsNiArMTIwNSw3IEBAIF9fWk5LN1dlYkNvcmUxM0hpdFRl
c3RSZXN1bHQxOHRpdGxlRGlzcGxheVN0cmluZ0V2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVz
dWx0NWltYWdlRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQ1dGl0bGVFUk5TXzEzVGV4
dERpcmVjdGlvbkUKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQ5aW1hZ2VSZWN0RXYKK19f
Wk5LN1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3JlcG9ydE1lbW9yeVVzYWdlRVBOM1dURjE2TWVt
b3J5T2JqZWN0SW5mb0UKIF9fWk5LN1dlYkNvcmUxM1Jlc291cmNlRXJyb3I3Y2ZFcnJvckV2CiBf
X1pOSzdXZWJDb3JlMTNSZXNvdXJjZUVycm9yN25zRXJyb3JFdgogX19aTks3V2ViQ29yZTEzUmVz
b3VyY2VFcnJvcmN2UDdOU0Vycm9yRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxZDlkZmM0NGQyZTk4
OTU3NWVhYjZkYzRmYzUyZjFhMzBmZjZjMTI1Li41YzhlYjNlNmNjYWViMzM0ZWQ0YmE1ZDZjMzNm
M2U0YjMwYTU3MTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNzI0LDggKzI3MjQsNyBAQCB2b2lk
IE5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9kb2N1bWVudCk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9uZXh0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3ByZXZpb3VzKTsKLSAgICBpZiAo
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCi0gICAgICAgIGluZm8u
YWRkTWVtYmVyKHJlbmRlcmVyLT5zdHlsZSgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcih0aGlzLT5y
ZW5kZXJlcigpKTsKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAgICAgICAgaW5mby5hZGRNZW1i
ZXIocmFyZURhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcAppbmRleCBjZDBkZTlkODdkYzZkOGZhYWU4MWY4MDFkNTBlNjNl
YThiY2I3NDFjLi41MWI2M2IwM2RkZTJhZjMxNzYwZDE3Y2E0OTM4NTVlMzU2MzczOTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAK
QEAgLTg1LDYgKzg1LDE0IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fc2l6ZXNNYXAgPSBt
X2NsaWVudC0+c2l6ZXNNYXAoKTsKIAorICAgICAgICAvLyBGSVhNRTogV2UgZmlsdGVyIG91dCBS
ZW5kZXJpbmcgdHlwZSBiZWNhdXNlIHRoZSBjb3ZlcmFnZSBpcyBub3QgZ29vZCBlbm91Z2ggYXQg
dGhlIG1vbWVudAorICAgICAgICAvLyBhbmQgcmVwb3J0IFJlbmRlckFyZW5hIHNpemUgaW5zdGVh
ZC4KKyAgICAgICAgZm9yIChUeXBlTmFtZVRvU2l6ZU1hcDo6aXRlcmF0b3IgaSA9IG1fc2l6ZXNN
YXAuYmVnaW4oKTsgaSAhPSBtX3NpemVzTWFwLmVuZCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlm
IChpLT5rZXkgPT0gUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKSB7CisgICAgICAgICAg
ICAgICAgbV9zaXplc01hcC5yZW1vdmUoaSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgVmVjdG9yPFN0cmluZz4gb2JqZWN0VHlwZXM7
CiAgICAgICAgIG9iamVjdFR5cGVzLmFwcGVuZFJhbmdlKG1fc2l6ZXNNYXAua2V5cygpLmJlZ2lu
KCksIG1fc2l6ZXNNYXAua2V5cygpLmVuZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDMx
MTJhMmRlMjlhNGRkMWI5NzM4Y2U1NDc2ZTBkZTM5ZjhjNGJkYWYuLjBlMWQwYjA4YWNmMzc4YWRl
MjEwNDM0MjJkZGU2MmU2ZWUzODg5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTM5LDYgKzM5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVt
b3J5VHlwZXM6OkltYWdlID0gIlBhZ2UuSW1hZ2UiOwogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9y
bU1lbW9yeVR5cGVzOjpMb2FkZXIgPSAiUGFnZS5Mb2FkZXIiOworTWVtb3J5T2JqZWN0VHlwZSBQ
bGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcgPSAiUGFnZS5SZW5kZXJpbmciOworTWVtb3J5
T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMYXllcnMgPSAiUGFnZS5SZW5kZXJpbmcu
TGF5ZXJzIjsKIAogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpbyA9
ICJQYWdlLkF1ZGlvIjsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVk
aW9TaGFyZWREYXRhID0gIlBhZ2UuQXVkaW8uU2hhcmVkRGF0YSI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRl
eCA5Y2ViOTJlYzUzNDcyMWY1N2U2YjYxYmE2YzBlNTc4MjE3NWM4MmUzLi5mZWYxOWU5NTVjNTkz
YWM2M2U4ODk4OTc2OTQxNjE1OWZjMDczYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQzLDYgKzQz
LDggQEAgY2xhc3MgUGxhdGZvcm1NZW1vcnlUeXBlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgSW1hZ2U7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgTG9hZGVy
OworICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFJlbmRlcmluZzsKKyAgICBzdGF0aWMgTWVt
b3J5T2JqZWN0VHlwZSBMYXllcnM7CiAKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBBdWRp
bzsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBBdWRpb1NoYXJlZERhdGE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggMjMyZDJhZjZjMjRiNGM2
MzAyMDRmZmNhOGViZTAxZDU3YjFjNGMxZS4uOWJkNzg3NWE3NWRkNmUwNDlhNWE1NjMwYzQ3NDIx
MjRiOTY4ZGRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGJh
clRoZW1lLmgiCkBAIC00MjAsNCArNDIxLDEwIEBAIEludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZp
c2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgICAgICAg
ICAgICAgICAgIHN0ZDo6bWF4KDAsIHZpc2libGVIZWlnaHQoKSArIGhvcml6b250YWxTY3JvbGxi
YXJIZWlnaHQpKTsKIH0KIAordm9pZCBTY3JvbGxhYmxlQXJlYTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3Njcm9sbEFuaW1hdG9yKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggOTMwY2RjMDBlOGIyYTU0ZjI4
MjIzMTYxNjVkODg1ZGQyYzJkYWM3ZS4uMTJiNGNmNGNlNTEyZjllNDY3YmM1N2E5MzYzMDA0NTY4
YzljZmE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0x
NzQsNiArMTc0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3Rl
Y3RlZDoKICAgICBTY3JvbGxhYmxlQXJlYSgpOwogICAgIHZpcnR1YWwgflNjcm9sbGFibGVBcmVh
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDZkMWEyNDc5YTcyY2U2MzUxYjg4NDg2ZWU4MWUwNmU5YjMyOTAwYjYuLmE5
NmJkYzZhZDNiYjNjYTMyMmVhMTU5ZjhhMTEzYjE5ODgwNzA0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zMyw5ICsz
MywxMSBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgog
I2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzM3LDYgKzczOSwxNiBAQCBTdHJpbmcgR3Jh
cGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2
aW9yKSBjb25zdAogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NM
YXllcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMYXllcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2hpbGRyZW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFyZW50KTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX21hc2tMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXBsaWNhTGF5ZXIpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcmVwbGljYXRlZExheWVyKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDRmMzk1NDQ4NjBiMmFlZmNmZTdlMWI5
NmMzZTViZmZhMGVmOGUyODEuLjdjMzNmZGQ3N2M3YWM1ZmFmNjM0NjAxNTkxNzRlOWFjNDQyZGZi
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmgKQEAgLTQyNiw2ICs0MjYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZURlYnVn
SW5kaWNhdG9ycygpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIC8vIFNob3VsZCBiZSBjYWxs
ZWQgZnJvbSBkZXJpdmVkIGNsYXNzIGRlc3RydWN0b3JzLiBTaG91bGQgY2FsbCB3aWxsQmVEZXN0
cm95ZWQoKSBvbiBzdXBlci4KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA4YTBhZjE1MzA3NGU2NzI5
NjM2MjFhNDAwOTgyMGNmZmMzYWY1NmJhLi5lNzQ3YmEyMDQ5OGZkZDUwMTQxOWI5MTczMWM4ODg1
Y2I3MTQwNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTUz
LDYgKzUzLDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tp
YS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAj
aW5jbHVkZSAiU2tJbWFnZUZpbHRlci5oIgogI2luY2x1ZGUgIlNrTWF0cml4NDQuaCIKQEAgLTcw
LDYgKzcxLDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC04NzksNiArODgxLDIxIEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjpkaWRTY3JvbGwoKQogICAgICAgICBtX3Njcm9sbGFibGVBcmVh
LT5zY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oSW50UG9pbnQobV9sYXllci0+bGF5ZXIo
KS0+c2Nyb2xsUG9zaXRpb24oKSkpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQ
bGF0Zm9ybU1lbW9yeVR5cGVzOjpMYXllcnMpOworICAgIEdyYXBoaWNzTGF5ZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbmFtZUJh
c2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
dHJhbnNmb3JtTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2VMYXllcik7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jb250ZW50c0xheWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xp
bmtIaWdobGlnaHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3BhcXVlUmVjdFRyYWNraW5nQ29u
dGVudExheWVyRGVsZWdhdGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5pbWF0aW9uSWRNYXAp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsYWJsZUFyZWEpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGYzMzJlOTQ0NGM1ZGRhMzg5ZDAz
YzliMmUwYjQ2MmEyNmM5YjQxMDkuLjEwZmRhNzY5MzllNTI1MjkxYjU2MmYwZWRkYWY1OGFjODdl
NzM2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCkBAIC0xNTIsNiArMTUy
LDggQEAgcHVibGljOgogICAgIC8vIEV4cG9zZWQgZm9yIHRlc3RzLgogICAgIFdlYktpdDo6V2Vi
TGF5ZXIqIGNvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXI7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVOYW1lcygpOwogICAg
IHZvaWQgdXBkYXRlQ2hpbGRMaXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAppbmRleCA4YzYyNDk3NjU5ZWRmOTVjYmNiMzExOWE1YzlmY2U3MWIwZDMwNTNhLi4x
N2E1YWU5MzUwMDA5ZmJkYWY2YmViM2Y5OWI4OGQ0YjdhOTJiZmY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJT
VkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQogI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgpAQCAt
NzczNSw0ICs3NzM2LDE0IEBAIFN0cmluZyBWYWx1ZVRvU3RyaW5nPFJlbmRlckJsb2NrOjpGbG9h
dGluZ09iamVjdCo+OjpzdHJpbmcoY29uc3QgUmVuZGVyQmxvY2s6OkZsCiAKICNlbmRpZgogCit2
b2lkIFJlbmRlckJsb2NrOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7CisgICAgUmVu
ZGVyQm94OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2Zsb2F0aW5nT2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yYXJlRGF0
YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZHJlbik7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9saW5lQm94ZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDlmMDA4NDc3YmM0YzBiZDliODQyMjgxYmU4MjA0
YjZjNTg3NTYwYWMuLjIwZWFkZjk1MzU5MWQ1ZTk5ZGZlODM4MzY1MjE0Y2NhNGE1M2M5MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC01MjIsNiArNTIyLDggQEAg
cHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lkIGNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxI
ZWlnaHRDaGFuZ2UoTGF5b3V0VW5pdCYgcGFnZUxvZ2ljYWxIZWlnaHQsIGJvb2wmIHBhZ2VMb2dp
Y2FsSGVpZ2h0Q2hhbmdlZCwgYm9vbCYgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWlnaHQpOwog
CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAg
ICAgdm9pZCBjb21wdXRlRXhjbHVzaW9uU2hhcGVTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDMzZGM5NDVlOWMyODNkMjVkNzcwNTI1OTI4YjIzOGYxZWI0
YTM1YmEuLjI4NGQ3ODU4YmNjMmQyMzYxOGIwYzU1NDBlNjAyNGQyMjQ2YWY5N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPG1hdGguaD4KIApAQCAtNDIxNyw0
ICs0MjE4LDEyIEBAIFJlbmRlck9iamVjdCogUmVuZGVyQm94OjpzcGxpdEFub255bW91c0JveGVz
QXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsCiAgICAgcmV0dXJuIGJlZm9yZUNo
aWxkOwogfQogCit2b2lkIFJlbmRlckJveDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcp
OworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmpl
Y3RJbmZvKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1faW5saW5lQm94V3JhcHBlcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9vdmVyZmxvdyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBjMWRlM2U3MzYxOTE2YzM4
MWJmMTNjMGI5NmEwMWRiZDIxNTE1YmEyLi4yZjM2MzhmNzEwYTEyMWE5MzFmY2RiMTM4N2VlOGM1
OGRjZTEyOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01OTgsNiAr
NTk4LDggQEAgcHJvdGVjdGVkOgogCiAgICAgUmVuZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0Jv
eGVzQXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAgCisgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklE
RTsKKwogcHJpdmF0ZToKICAgICBib29sIGZpeGVkRWxlbWVudExheXNPdXRSZWxhdGl2ZVRvRnJh
bWUoRnJhbWUqLCBGcmFtZVZpZXcqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcAppbmRleCBkYjFiMTg1ZjY1ZDQ2OWQzMzNiNmM2MWQwYTJlNDkyNzlj
N2U3MTU2Li4wMjY5YzRmODFlZDVmMDc4MmJjMDVmOGEwZjVkMTI1NjRiMDNlMTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRl
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogCiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgog
CkBAIC0xNjQxLDQgKzE2NDIsMTIgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmFkZEFubm90YXRlZFJl
Z2lvbnMoVmVjdG9yPEFubm90YXRlZFJlZ2lvblZhbHVlPiYgcmVnaW9ucykKIH0KICNlbmRpZgog
Cit2b2lkIFJlbmRlcklubGluZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAg
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZv
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkcmVuKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2xpbmVCb3hlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA4NDU5MDRiNjUyYTU2MjRhMTMxOWM2ODk0MmVi
NmQwNWI0NmFmNmQwLi4wZmFiOGQ2MTJkOTgyMDEzMzk4YWM0NmNhNGNhNDY1Yzc2ZWZlNTFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC05MSw2ICs5MSw4IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaGl0VGVzdEN1bGxlZElubGluZShjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9W
RVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzYzdjZjZl
NTZkYzc3YjIxYjQyOTgxOTg1YzAzZDBhMGUwOTg3YTJkLi5jZmYxNTVkNWUwY2QzNzdjZjNmOGQx
ZTk5OGNmNTg4M2IzOTc5ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKQEAgLTk5LDYgKzk5LDggQEAKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCiAjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC01NDA0LDYgKzU0MDYsMzIgQEAgdm9pZCBSZW5kZXJM
YXllcjo6ZmlsdGVyTmVlZHNSZXBhaW50KCkKIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVy
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBTY3JvbGxhYmxlQXJlYTo6cmVw
b3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRl
cihtX3JlbmRlcmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBp
bmZvLmFkZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9uZXh0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZmlyc3QpOworICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9sYXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hCYXIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdkJhcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wb3NaT3JkZXJMaXN0
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25lZ1pPcmRlckxpc3QpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbm9ybWFsRmxvd0xpc3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpcFJlY3RzQ2Fj
aGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV90cmFuc2Zvcm0pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9yZWZsZWN0aW9uKTsKKyAg
ICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2Nyb2xsQ29ybmVyKTsKKyAgICBpbmZvLmFkZFdlYWtQ
b2ludGVyKG1fcmVzaXplcik7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
IGluZm8uYWRkTWVtYmVyKG1fYmFja2luZyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAppbmRleCA2NWYxMDcwYWIyZDY2ZGYyZDk0NzE2NTRlY2M5Y2MwZTAxN2M2MWM1Li4xMGVi
NWFiYjljNzRhMGY0MzU1YjRlYWNhZjZjYzEzZDA1ZGFmM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNzEwLDYgKzcxMCw4IEBAIHB1YmxpYzoKICAgICBib29s
IGlzSW5Ub3BMYXllclN1YnRyZWUoKSBjb25zdDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxk
Wk9yZGVyTGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggODhiZTA4ZGZlYmU1ZjlhN2NiNzg5MjU4MDY0OGI0NGJiZGI5M2M3
NC4uNzczNjFmNzQzODc1ODQ0NTRlMWNjZDBhZTU5YWViZjhjNmMwMzRjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU1LDYgKzU1
LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIK
ICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xOTY5LDYgKzE5NzAsMjIgQEAgYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OmNvbnRlbnRzVmlzaWJsZShjb25zdCBHcmFwaGljc0xheWVyKiwgY29u
c3QgSW50UmVjdCYgbG8KIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0
Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9v
d25pbmdMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JhcGhpY3NMYXllcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9mb3JlZ3JvdW5kTGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGFpbm1lbnRM
YXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXNrTGF5ZXIpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJG
b3JTY3JvbGxDb3JuZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nTGF5ZXIpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRl
eCBjZGNjMDMwYzI1MjNmYWVmMjg3ZmRlOTE3NzEwMGZlNGZmNWRiNWY4Li4wZmQwM2U0ODFmMjEz
NjA5YjBiZmJkNzlhMzM0YjkxMDk0ZTI2NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRNb2Rl
KTsKICNlbmRpZgorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKaW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNjMThlOWVmYTg4NTljZjIxYy4uZDhh
NzlhN2M4M2ExOTJlMmU0ZTczNGUzNjJkMmVkYzg1Mjg2ZGUyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU3LDYgKzU3
LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZy5oIgog
I2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAjaW5j
bHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjc1MSw2ICsyNzUyLDI3IEBAIFBhZ2UqIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6cGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3Zv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OlJlbmRlcmluZyk7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclZpZXcpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fcm9vdENvbnRlbnRMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV91cGRhdGVDb21w
b3NpdGluZ0xheWVyc1RpbWVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBMYXllcik7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9zY3JvbGxMYXllcik7CisgICAgaW5mby5hZGRNZW1iZXIobV92
aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0
Q29uc3RyYWluZWRMYXllcnNOZWVkaW5nVXBkYXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX292
ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JI
b3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVyRm9yVmVydGlj
YWxTY3JvbGxiYXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXIp
OworI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVy
Rm9yT3ZlcmhhbmdBcmVhcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50U2hhZG93TGF5
ZXIpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9sYXllclVwZGF0ZXIpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKaW5kZXggNGQ4MjhmMWE1ZjFmMTAwYmYyNDBiYzMxNGIwMzczYWRhYmJiNTZmNy4uMWFk
ZmJkNDRhNmNkNTYzZDg3YWNiMjA3NGEwYzMzZjg5NTg3OWIzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjMxLDYgKzIzMSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRSZWN0cygpOwogICAgIHZv
aWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFw
TWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKaW5kZXggYWViMzJiN2EyZTNmZDVjMDA5ODEzMDJiMGQ3MzYyYjNmNjY2M2U3
MS4uYTRkOTJmMDhkNTZkYjUwZTVmYjgwMTUwZjI1MDIxNmQwZGQ0ZjM4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0xNzQsNSArMTc1LDEyIEBAIHZvaWQgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0CiAgICAgfQogfQogCit2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZv
cm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJlcG9ydE1lbW9y
eVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9sYXll
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzYyNDFkMzc3NTEzOTUz
NWY5MGZjNjA1NmE0NDQyNGU5YWQzODUxZS4uOGE0ZmMzNDFmM2NiMjJlMTc4N2NkMjBkYzhhZjdl
OGJkODY0NGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVj
dGVkOgogICAgIHZvaWQgZW5zdXJlTGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCAxMTA0NjdhZDU0OGZjYmNiMDQxNGVhYWFjNjIzYTA0M2Nj
Y2IxYTQ4Li4yNWRkYmQyZTM0YTk1OGQzMGFhNzc2YTRhMGQ0YTc4MjllYTJkMDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNjgsNiArNjgsNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0zMDU1LDYgKzMwNTYsMTYgQEAgYm9vbCBSZW5kZXJPYmpl
Y3Q6OmNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpSZW5kZXJpbmcp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGUpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIo
bV9ub2RlKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fcGFyZW50KTsKKyAgICBpbmZvLmFk
ZFdlYWtQb2ludGVyKG1fcHJldmlvdXMpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9uZXh0
KTsKK30KKwogI2lmIEVOQUJMRShTVkcpCiAKIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiBS
ZW5kZXJPYmplY3Q6OnRvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI1ODI3NmIzNjkyYWMzMzkxNDk0NDAxMmVi
NGI4MGY4OWE2M2M3NjYuLjIzN2EzNWY2NDUwN2ZmYjc4NGRmOTFkN2I5NDA5ZDNiZTYxZTRkY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI4Miw2ICsyODIs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zLiBEYW5n
ZXJvdXMgdG8gdXNlIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4
IGE5YTI1ZGY2Mzg1ODNhMjQ1ZmEzYjhhYjhhOWFmZWVmMjY1YzczM2IuLjg5MGY4OTRjM2JjMzYx
NTUyZDQ1ZDc3ZDUwMWM1Mzk1MDI0OGNmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJWaXNpYmxl
UG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiYnJlYWtfbGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQWx3YXlzSW5saW5lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CkBAIC0xOTMwLDQgKzE5MzEsMTMgQEAg
dm9pZCBSZW5kZXJUZXh0Ojptb21lbnRhcmlseVJldmVhbExhc3RUeXBlZENoYXJhY3Rlcih1bnNp
Z25lZCBsYXN0VHlwZWRDaGFyYWN0ZXIKICAgICBzZWN1cmVUZXh0VGltZXItPnJlc3RhcnRXaXRo
TmV3VGV4dChsYXN0VHlwZWRDaGFyYWN0ZXJPZmZzZXQpOwogfQogCit2b2lkIFJlbmRlclRleHQ6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
UGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5nKTsKKyAgICBSZW5kZXJPYmplY3Q6OnJlcG9y
dE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fdGV4
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9maXJzdFRleHRCb3gpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbGFzdFRleHRCb3gpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCA3Yjk4NjkxN2Q4YmRjNmNmZTY3N2VhMWE3
MGU4NzFlNDIxYjEyMTlhLi4wZTRkNjJjZDVmYTFhMTNhNzg1NGE4ZTNmMzVjNGU3MTk4YmM0YTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTE0NCw2ICsxNDQsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKIAorICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Qg
T1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxNDU3YjZi
ZTJhNDdmOWZiNjNiZGFkMjYxZjAyMDVhOGYxMDMxM2E2Li4zYjJmNGU1YzM5ZGFmMGY3NTgxNWMy
ZGVmM2IyMTgzOWY2M2I2NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0UHJvdGVjdG9yLmgi
CiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3Rh
dGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgiCkBAIC05OTYsNCArOTk3LDI0IEBAIFJlbmRlckJsb2NrOjpJbnRlcnZhbEFyZW5hKiBS
ZW5kZXJWaWV3OjppbnRlcnZhbEFyZW5hKCkKICAgICByZXR1cm4gbV9pbnRlcnZhbEFyZW5hLmdl
dCgpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6UmVuZGVyaW5n
KTsKKyAgICBSZW5kZXJCbG9jazo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2ZyYW1lVmlldyk7CisgICAgaW5mby5hZGRXZWFr
UG9pbnRlcihtX3NlbGVjdGlvblN0YXJ0KTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fc2Vs
ZWN0aW9uRW5kKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dpZGdldHMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbGF5b3V0U3RhdGUpOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBvc2l0b3IpOworI2VuZGlmCisjaWYgRU5BQkxFKENT
U19TSEFERVJTKSAmJiBVU0UoM0RfR1JBUEhJQ1MpCisgICAgaW5mby5hZGRNZW1iZXIobV9jdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0KTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fZmxv
d1RocmVhZENvbnRyb2xsZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW50ZXJ2YWxBcmVuYSk7
CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3JlbmRlclF1b3RlSGVhZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4
IGQ2M2Y4ZGY4Njg2MTM3MTU4YjlhYjk4NGVhMWVjMzU0MjQ3NmU5N2UuLjE2OTRhOGYyMmRkNTMx
YmRmODc2OGUyZGM1MTY5MWUwN2E3MjY5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExh
eW91dFN0YXRlTWFpbnRhaW5lcjsKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0U3RhdGVEaXNhYmxl
cjsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBGcmFtZVZpZXcqIG1fZnJhbWVW
aWV3OwogCg==
</data>
<flag name="review"
          id="192963"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>177041</attachid>
            <date>2012-11-30 16:01:09 -0800</date>
            <delta_ts>2012-11-30 16:01:09 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>Screen Shot 2012-11-30 at 15.57.11.png</filename>
            <type>image/png</type>
            <size>47029</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAc0AAAEwCAIAAABaK72NAAAEJGlDQ1BJQ0MgUHJvZmlsZQAAOBGF
Vd9v21QUPolvUqQWPyBYR4eKxa9VU1u5GxqtxgZJk6XtShal6dgqJOQ6N4mpGwfb6baqT3uBNwb8
AUDZAw9IPCENBmJ72fbAtElThyqqSUh76MQPISbtBVXhu3ZiJ1PEXPX6yznfOec7517bRD1fabWa
GVWIlquunc8klZOnFpSeTYrSs9RLA9Sr6U4tkcvNEi7BFffO6+EdigjL7ZHu/k72I796i9zRiSJP
wG4VHX0Z+AxRzNRrtksUvwf7+Gm3BtzzHPDTNgQCqwKXfZwSeNHHJz1OIT8JjtAq6xWtCLwGPLzY
Zi+3YV8DGMiT4VVuG7oiZpGzrZJhcs/hL49xtzH/Dy6bdfTsXYNY+5yluWO4D4neK/ZUvok/17X0
HPBLsF+vuUlhfwX4j/rSfAJ4H1H0qZJ9dN7nR19frRTeBt4Fe9FwpwtN+2p1MXscGLHR9SXrmMgj
ONd1ZxKzpBeA71b4tNhj6JGoyFNp4GHgwUp9qplfmnFW5oTdy7NamcwCI49kv6fN5IAHgD+0rbyo
Bc3SOjczohbyS1drbq6pQdqumllRC/0ymTtej8gpbbuVwpQfyw66dqEZyxZKxtHpJn+tZnpnEdrY
BbueF9qQn93S7HQGGHnYP7w6L+YGHNtd1FJitqPAR+hERCNOFi1i1alKO6RQnjKUxL1GNjwlMsiE
hcPLYTEiT9ISbN15OY/jx4SMshe9LaJRpTvHr3C/ybFYP1PZAfwfYrPsMBtnE6SwN9ib7AhLwTrB
DgUKcm06FSrTfSj187xPdVQWOk5Q8vxAfSiIUc7Z7xr6zY/+hpqwSyv0I0/QMTRb7RMgBxNodTfS
Pqdraz/sDjzKBrv4zu2+a2t0/HHzjd2Lbcc2sG7GtsL42K+xLfxtUgI7YHqKlqHK8HbCCXgjHT1c
AdMlDetv4FnQ2lLasaOl6vmB0CMmwT/IPszSueHQqv6i/qluqF+oF9TfO2qEGTumJH0qfSv9KH0n
fS/9TIp0Wboi/SRdlb6RLgU5u++9nyXYe69fYRPdil1o1WufNSdTTsp75BfllPy8/LI8G7AUuV8e
k6fkvfDsCfbNDP0dvRh0CrNqTbV7LfEEGDQPJQadBtfGVMWEq3QWWdufk6ZSNsjG2PQjp3ZcnOWW
ing6noonSInvi0/Ex+IzAreevPhe+CawpgP1/pMTMDo64G0sTCXIM+KdOnFWRfQKdJvQzV1+Bt8O
okmrdtY2yhVX2a+qrykJfMq4Ml3VR4cVzTQVz+UoNne4vcKLoyS+gyKO6EHe+75Fdt0Mbe5bRIf/
wjvrVmhbqBN97RD1vxrahvBOfOYzoosH9bq94uejSOQGkVM6sN/7HelL4t10t9F4gPdVzydEOx83
Gv+uNxo7XyL/FtFl8z9ZAHF4bBsrEwAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4Onht
cG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4K
ICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1z
eW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAg
ICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8
ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDYxPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAg
PGV4aWY6UGl4ZWxZRGltZW5zaW9uPjMwNDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwv
cmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo0Yz4+AABAAElEQVR4
Aew9CVgT19Y3siQIBBAREMEAosGFRUFBVAIuBUUNdQFcnqCtoq0Vfa+V/mpra98TuihaW9HWgnXD
reBSwRVQURSQVUERCCCy79uELf+5M0kIEBQVtWgufJk7557tnjtz5szdBjXUP3xz/xUXphoZBaVJ
SMSQKbcrMKQy9+QaayNI1mv2FGGtUk+vmbvvXNBXjhi4/lRY2rkNOGc099KjVFLn60FrxmGA9crb
hSSHtP1uS3dEnxKinXuUWvloP0bAadzRtNTKtKClpAijhXsqe1hxoc5YYtpuEOdH6vYwL2oHxWnN
kTBSmdRLuxdQkoLSKPVSbx+hNDGaun5PJlnHtCOeS4OuUPinl04hMXE1d5/avwbqsfsC1Pq2UH8j
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
rkJggg==
</data>

          </attachment>
      

    </bug>

</bugzilla>