<?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>31856</bug_id>
          
          <creation_ts>2009-11-24 20:01:29 -0800</creation_ts>
          <short_desc>Make WebKit build on Windows with ACCELERATED_COMPOSITING turned on.</short_desc>
          <delta_ts>2009-12-11 10:36:35 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>166340</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-24 20:01:29 -0800</bug_when>
    <thetext>This is needed not only to allow the Windows build to work without the DXSDK when ACCELERATED_COMPOSITING is turned off, but to allow implementations that don&apos;t have the DX9 runtime to work. When the library is not found we would turn off accelerated compositing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167474</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-30 16:55:10 -0800</bug_when>
    <thetext>There is more to the fix than just soft linking. I need to get rid of dependencies to make soft linking simpler and move a couple of things around to avoid hard links in header files. This bug is now the general &quot;get accelerated compositing on Windows to build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167706</commentid>
    <comment_count>2</comment_count>
      <attachid>44094</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 12:54:34 -0800</bug_when>
    <thetext>Created attachment 44094
Patch

soft links with d3d9, d3dx9 and QuartzCore using #pragma comment(). Also does runtime checks for presence of DLLs and turns off accelerated compositing if not found.

Now you can turn accerated compositing simply by going into wtf/Platform.h and changing USE_ACCELERATED_COMPOSITING from 0 to 1 in the windows ifdef, and going into WebCore/WebCore.vcproj/WebCoreCommon.vsprops and changing DISABLE_3D_RENDERING to ENABLED_3D_RENDERING.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167711</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 12:58:34 -0800</bug_when>
    <thetext>Attachment 44094 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/win/WKCACFLayer.h:60:  Missing spaces around =  [whitespace/operators] [4]
WebCore/platform/graphics/win/GraphicsLayerCACF.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:112:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:113:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:114:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:115:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:122:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:129:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:130:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:541:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:540:  Missing space before ( in switch(  [whitespace/parens] [5]
WebCore/platform/graphics/win/WKCACFLayer.cpp:567:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:566:  Missing space before ( in switch(  [whitespace/parens] [5]
Total errors found: 13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167714</commentid>
    <comment_count>4</comment_count>
      <attachid>44094</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-01 13:12:11 -0800</bug_when>
    <thetext>Comment on attachment 44094
Patch

Please address the style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167783</commentid>
    <comment_count>5</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2009-12-01 16:51:28 -0800</bug_when>
    <thetext>Still including headers from the QuartzCore directory, eg in WebCore/platform/graphics/win/GraphicsLayerCACF.cpp :

...
#include &lt;QuartzCore/CATransform3D.h&gt;
...

As far as I can tell those are not available in the WebKit tree and the code won&apos;t build without them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167806</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 17:39:12 -0800</bug_when>
    <thetext>This fix is not intended to make it possible to build without QuartzCore when ACCELERATED_COMPOSITING is turned on. You still need the headers to build. And you&apos;re right they are not yet available (patience, my young Padawan). What this fix will do is to make it possible build without adding anything to the VC proj files that would generate errors without the libs. It will also make it possible to have WebKit run (with accelerated compositing disabled) if build with ACCELERATED_COMPOSITING and the dlls are missing.

This is just one step on the path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167982</commentid>
    <comment_count>7</comment_count>
      <attachid>44094</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-02 07:26:51 -0800</bug_when>
    <thetext>Comment on attachment 44094
Patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 51553)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,31 @@
&gt; +2009-12-01  Chris Marrin  &lt;cmarrin@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Delay load DLLs for accelerated compositing
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=31856
&gt; +        
&gt; +        This also reduces the number of files requiring external linkage to two
&gt; +        and adds checks for the DLLs (d3d9 and QuartzCore). If not present it
&gt; +        turns off accelerated compositing and avoids calling any of the functions
&gt; +        in the DLLs.
&gt; +
&gt; +        * platform/graphics/win/GraphicsLayerCACF.cpp:
&gt; +        (WebCore::GraphicsLayerCACF::GraphicsLayerCACF):
&gt; +        (WebCore::GraphicsLayerCACF::updateLayerPreserves3D):
&gt; +        (WebCore::GraphicsLayerCACF::updateContentsImage):
&gt; +        * platform/graphics/win/WKCACFLayer.cpp:
&gt; +        * platform/graphics/win/WKCACFLayer.h:
&gt; +        (WebCore::WKCACFLayer::):
&gt; +        * platform/graphics/win/WKCACFLayerRenderer.cpp:
&gt; +        (WebCore::WKCACFLayerRenderer::setScrollFrame):
&gt; +        (WebCore::WKCACFLayerRenderer::setRootContents):
&gt; +        (WebCore::WKCACFLayerRenderer::setRootChildLayer):
&gt; +        (WebCore::WKCACFLayerRenderer::setNeedsDisplay):
&gt; +        (WebCore::WKCACFLayerRenderer::createRenderer):
&gt; +        (WebCore::WKCACFLayerRenderer::render):
&gt; +        * rendering/RenderLayerBacking.cpp:
&gt; +
&gt;  2009-12-01  Joseph Pecoraro  &lt;joepeck@webkit.org&gt;
&gt;  
&gt;          Reviewed by Timothy Hatcher.
&gt; Index: WebCore/platform/graphics/win/GraphicsLayerCACF.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/win/GraphicsLayerCACF.cpp	(revision 51545)
&gt; +++ WebCore/platform/graphics/win/GraphicsLayerCACF.cpp	(working copy)
&gt; @@ -38,6 +38,7 @@
&gt;  #include &quot;WKCACFLayer.h&quot;
&gt;  #include &lt;wtf/CurrentTime.h&gt;
&gt;  #include &lt;wtf/StringExtras.h&gt;
&gt; +#include &lt;QuartzCore/CATransform3D.h&gt;
&gt;  
&gt;  using namespace std;
&gt;  
&gt; @@ -123,7 +124,7 @@ GraphicsLayerCACF::GraphicsLayerCACF(Gra
&gt;      , m_contentsLayerPurpose(NoContentsLayer)
&gt;      , m_contentsLayerHasBackgroundColor(false)
&gt;  {
&gt; -    m_layer = WKCACFLayer::create(kCACFLayer, this);
&gt; +    m_layer = WKCACFLayer::create(WKCACFLayer::Layer, this);
&gt;      
&gt;      updateDebugIndicators();
&gt;  }
&gt; @@ -536,7 +537,7 @@ void GraphicsLayerCACF::updateLayerPrese
&gt;  {
&gt;      if (m_preserves3D &amp;&amp; !m_transformLayer) {
&gt;          // Create the transform layer.
&gt; -        m_transformLayer = WKCACFLayer::create(kCACFTransformLayer, this);
&gt; +        m_transformLayer = WKCACFLayer::create(WKCACFLayer::TransformLayer, this);
&gt;  
&gt;  #ifndef NDEBUG
&gt;          m_transformLayer-&gt;setName(String().format(&quot;Transform Layer CATransformLayer(%p) GraphicsLayer(%p)&quot;, m_transformLayer.get(), this));
&gt; @@ -609,7 +610,7 @@ void GraphicsLayerCACF::updateContentsIm
&gt;  {
&gt;      if (m_pendingContentsImage) {
&gt;          if (!m_contentsLayer.get()) {
&gt; -            RefPtr&lt;WKCACFLayer&gt; imageLayer = WKCACFLayer::create(kCACFLayer, this);
&gt; +            RefPtr&lt;WKCACFLayer&gt; imageLayer = WKCACFLayer::create(WKCACFLayer::Layer, this);
&gt;  #ifndef NDEBUG
&gt;              imageLayer-&gt;setName(&quot;Image Layer&quot;);
&gt;  #endif
&gt; @@ -620,7 +621,7 @@ void GraphicsLayerCACF::updateContentsIm
&gt;  
&gt;          // FIXME: maybe only do trilinear if the image is being scaled down,
&gt;          // but then what if the layer size changes?
&gt; -        m_contentsLayer-&gt;setMinificationFilter(kCACFFilterTrilinear);
&gt; +        m_contentsLayer-&gt;setMinificationFilter(WKCACFLayer::Trilinear);
&gt;          m_contentsLayer-&gt;setContents(m_pendingContentsImage.get());
&gt;          m_pendingContentsImage = 0;
&gt;          
&gt; Index: WebCore/platform/graphics/win/WKCACFLayer.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/win/WKCACFLayer.cpp	(revision 51545)
&gt; +++ WebCore/platform/graphics/win/WKCACFLayer.cpp	(working copy)
&gt; @@ -33,12 +33,39 @@
&gt;  
&gt;  #include &lt;stdio.h&gt;
&gt;  #include &lt;QuartzCore/CACFContext.h&gt;
&gt; +#include &lt;QuartzCore/CACFLayer.h&gt;
&gt; +#include &lt;QuartzCore/CACFVector.h&gt;
&gt;  #include &lt;QuartzCore/CARender.h&gt;
&gt;  
&gt; +#pragma comment(lib, &quot;d3d9&quot;)
&gt; +#pragma comment(lib, &quot;d3dx9&quot;)
&gt; +#pragma comment(lib, &quot;QuartzCore&quot;)
&gt; +
&gt;  namespace WebCore {
&gt;  
&gt;  using namespace std;
&gt;  
&gt; +bool WKCACFLayer::acceleratedCompositingAvailable()
&gt; +{
&gt; +    static bool avail = false;
&gt; +    static bool tested = false;

We normally omit initialization of statics to 0/false, since this happens automatically.

I&apos;d rename &quot;avail&quot; to &quot;available&quot;. I don&apos;t think the abbreviation buys you much here.

&gt; +    if (!tested) {
&gt; +        tested = true;
&gt; +        HMODULE library = LoadLibrary(TEXT(&quot;d3d9.dll&quot;));
&gt; +        if (library) {
&gt; +            FreeLibrary(library);
&gt; +            library = LoadLibrary(TEXT(&quot;QuartzCore.dll&quot;));
&gt; +            if (library) {
&gt; +                FreeLibrary(library);
&gt; +                avail = true;
&gt; +            }
&gt; +        }
&gt; +    }
&gt; +
&gt; +    return avail;

You could rewrite this to use early returns:

if (tested)
    return avail;
tested = true;
HMODULE library = ...;
if (!library)
    return false;
...
avail = true;
return avail;

&gt; -WKCACFLayer::WKCACFLayer(CFStringRef className, GraphicsLayerCACF* owner)
&gt; -    : m_layer(AdoptCF, CACFLayerCreate(className))
&gt; +WKCACFLayer::WKCACFLayer(LayerType layerType, GraphicsLayerCACF* owner)
&gt; +: m_layer(AdoptCF, CACFLayerCreate((layerType == TransformLayer) ? kCACFTransformLayer : kCACFLayer))
&gt;      , m_needsDisplayOnBoundsChange(false)
&gt;      , m_owner(owner)
&gt;  {

You undid the correct indentation of the initializer. I&apos;m surprised the style-queue didn&apos;t flag this.

&gt; +    static PassRefPtr&lt;WKCACFLayer&gt; create(LayerType layerType, GraphicsLayerCACF* owner=0);
&gt; +    static WKCACFLayer* layer(CACFLayerRef layer);

No need for the &quot;layerType&quot; and &quot;layer&quot; parameter names. You should add spaces around the = in the create() declaration.

&gt; +    static RetainPtr&lt;CFTypeRef&gt; cfValue(const TransformationMatrix&amp; value);
&gt; +    static RetainPtr&lt;CFTypeRef&gt; cfValue(const FloatPoint&amp; value);
&gt; +    static RetainPtr&lt;CFTypeRef&gt; cfValue(const FloatRect&amp; rect);
&gt; +    static RetainPtr&lt;CFTypeRef&gt; cfValue(const Color&amp; color);

No need for the parameter names here, or in most/all of the now-non-inline setters.

Why did all these functions need to become non-inline? The ChangeLog says &quot;This also reduces the number of files requiring external linkage to two&quot;, but I don&apos;t see why that matters.

&gt;  void WKCACFLayerRenderer::setScrollFrame(int width, int height, int scrollX, int scrollY)
&gt;  {
&gt; +    if (!WKCACFLayer::acceleratedCompositingAvailable())
&gt; +        return;
&gt; +

Can we prevent WKCACFLayerRenderers from being allocated when acceleratedCompositingAvailable() returns false (just like you do for WKCACFLayer)? That would reduce the number of checks you need to make, and reduce the possibility of people forgetting to check in the future.


&gt; @@ -361,7 +373,7 @@ void WKCACFLayerRenderer::render(const V
&gt;  
&gt;          if (err == D3DERR_DEVICELOST) {
&gt;              // Lost device situation.
&gt; -            CARenderOGLPurge(m_renderer);
&gt; +            //CARenderOGLPurge(m_renderer);
&gt;              resetDevice();
&gt;              CARenderUpdateAddRect(u, &amp;bounds);
&gt;          }

This looks like a mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168221</commentid>
    <comment_count>8</comment_count>
      <attachid>44197</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-02 17:23:12 -0800</bug_when>
    <thetext>Created attachment 44197
Replacement patch

This reverts the change to reduce the dependencies (we agreed that this should be done separately, if at all) and deals with all style issues and comments from Adam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168222</commentid>
    <comment_count>9</comment_count>
      <attachid>44198</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-02 17:29:30 -0800</bug_when>
    <thetext>Created attachment 44198
Another replacement patch

The last patch was messed up, showing every line in WKCACFLayer.cpp having changed. I think MSDev torched the line endings of something. All better now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168225</commentid>
    <comment_count>10</comment_count>
      <attachid>44199</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-02 17:34:30 -0800</bug_when>
    <thetext>Created attachment 44199
Same replacement patch with a better changelog message

I forgot to add a message to the Changelog explaining why I changed the WndProc in WebView to be a member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168268</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-02 21:13:52 -0800</bug_when>
    <thetext>Attachment 44199 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/win/WebView.cpp:1997:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/WebView.cpp:2017:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/WebView.cpp:2101:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168402</commentid>
    <comment_count>12</comment_count>
      <attachid>44199</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-03 07:27:56 -0800</bug_when>
    <thetext>Comment on attachment 44199
Same replacement patch with a better changelog message

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 51618)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,47 @@
&gt; +2009-12-02  Chris Marrin  &lt;cmarrin@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Delay load DLLs for accelerated compositing
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=31856
&gt; +        
&gt; +        If the DLLs (d3d9 and QuartzCore). are not present it
&gt; +        turns off accelerated compositing and avoids calling 
&gt; +        any of the functions in the DLLs.
&gt; +
&gt; +        * platform/graphics/win/WKCACFLayer.cpp:
&gt; +        (WebCore::WKCACFLayer::acceleratedCompositingAvailable):
&gt; +        (WebCore::displayInContext):
&gt; +        (WebCore::WKCACFLayer::WKCACFLayer):
&gt; +        (WebCore::WKCACFLayer::~WKCACFLayer):
&gt; +        (WebCore::WKCACFLayer::display):
&gt; +        (WebCore::WKCACFLayer::becomeRootLayerForContext):
&gt; +        (WebCore::WKCACFLayer::setNeedsCommit):
&gt; +        (WebCore::WKCACFLayer::addSublayer):
&gt; +        (WebCore::WKCACFLayer::insertSublayer):
&gt; +        (WebCore::WKCACFLayer::insertSublayerAboveLayer):
&gt; +        (WebCore::WKCACFLayer::insertSublayerBelowLayer):
&gt; +        (WebCore::WKCACFLayer::replaceSublayer):
&gt; +        (WebCore::WKCACFLayer::removeFromSuperlayer):
&gt; +        (WebCore::WKCACFLayer::removeSublayer):
&gt; +        (WebCore::WKCACFLayer::indexOfSublayer):
&gt; +        (WebCore::WKCACFLayer::ancestorOrSelfWithSuperlayer):
&gt; +        (WebCore::WKCACFLayer::setBounds):
&gt; +        (WebCore::WKCACFLayer::setFrame):
&gt; +        (WebCore::WKCACFLayer::rootLayer):
&gt; +        (WebCore::WKCACFLayer::removeAllSublayers):
&gt; +        (WebCore::WKCACFLayer::setSublayers):
&gt; +        (WebCore::WKCACFLayer::moveSublayers):
&gt; +        (WebCore::WKCACFLayer::superlayer):
&gt; +        (WebCore::WKCACFLayer::setNeedsDisplay):
&gt; +        * platform/graphics/win/WKCACFLayer.h:
&gt; +        (WebCore::WKCACFLayer::create):
&gt; +        (WebCore::WKCACFLayer::cfValue):
&gt; +        * platform/graphics/win/WKCACFLayerRenderer.cpp:
&gt; +        (WebCore::WKCACFLayerRenderer::create):
&gt; +        * platform/graphics/win/WKCACFLayerRenderer.h:
&gt; +        * rendering/RenderLayerBacking.cpp:

I think many of these functions are no longer affected by this patch. Maybe you should regenerate the ChangeLog.

&gt; +++ WebCore/platform/graphics/win/WKCACFLayer.cpp	(working copy)
&gt; @@ -35,10 +35,37 @@
&gt;  #include &lt;QuartzCore/CACFContext.h&gt;
&gt;  #include &lt;QuartzCore/CARender.h&gt;
&gt;  
&gt; +#pragma comment(lib, &quot;d3d9&quot;)
&gt; +#pragma comment(lib, &quot;d3dx9&quot;)
&gt; +#pragma comment(lib, &quot;QuartzCore&quot;)

It would be slightly more correct to only link against QuartzCore in this file, since nothing in this file explicitly requires D3D. Then you would like against D3D in WKCACFLayerRenderer.cpp. (Maybe someday in the Star Trek Future there will be a CACF implementation that doesn&apos;t use D3D, and this source file had better be ready for it!)

&gt; +bool WKCACFLayer::acceleratedCompositingAvailable()
&gt; +{
&gt; +    static bool available;
&gt; +    static bool tested;
&gt; +
&gt; +    if (tested)
&gt; +        return available;
&gt; +
&gt; +    tested = true;
&gt; +    HMODULE library = LoadLibrary(TEXT(&quot;d3d9.dll&quot;));
&gt; +    if (!library)
&gt; +        return false;
&gt; +
&gt; +    FreeLibrary(library);
&gt; +    library = LoadLibrary(TEXT(&quot;QuartzCore.dll&quot;));
&gt; +    if (!library)
&gt; +        return false;
&gt; +
&gt; +    FreeLibrary(library);
&gt; +    available = true;
&gt; +    return available;
&gt; +}

I think this might be more appropriate in WKCACFLayerRenderer.

&gt; +WKCACFLayerRenderer* WKCACFLayerRenderer::create()
&gt; +{
&gt; +    if (!WKCACFLayer::acceleratedCompositingAvailable())
&gt; +        return 0;
&gt; +    return new WKCACFLayerRenderer;
&gt; +}

This should return a PassOwnPtr&lt;WKCACFLayerRenderer&gt;.

&gt; +        This patch also changes the WKCACFLayerRenderer to be a pointer.
&gt; +        This allows me to have a create() method which will not create it when
&gt; +        accelerated compositing is disabled because of missing DLLs. It 
&gt; +        avoids having to do so many checks. I also made WebViewWndProc 
&gt; +        a member function to allow several methods to be made protected, which
&gt; +        allows me to avoid doing availability checks there as well.

I think you could get the same effect with many fewer changes by just making WebViewWndProc a static member function and not adding the wndProc non-static member function. Or you could keep WebViewWndProc a non-member and declare it as a friend. I think it&apos;s good to keep this patch as small and focused as possible. And I really like that you&apos;ve minimized the number of acceleratedCompositingAvailable() checks!

&gt; +    , m_layerRenderer(0)

You won&apos;t need this initializer if you make m_layerRenderer an OwnPtr.

&gt;  WebView::~WebView()
&gt;  {
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    setAcceleratedCompositing(false);
&gt; +#endif

I don&apos;t think you&apos;ll need to do this if you make m_layerRenderer and OwnPtr.

&gt; -            if (SUCCEEDED(webView-&gt;uiDelegate(&amp;uiDelegate)) &amp;&amp; uiDelegate &amp;&amp;
&gt; +            if (SUCCEEDED(WebView::uiDelegate(&amp;uiDelegate)) &amp;&amp; uiDelegate &amp;&amp;

We normally write this as &quot;this-&gt;uiDelegate(&amp;uiDelegate)&quot;, but hopefully you&apos;ll take my advice to revert these changes.

&gt; +    if (accelerated) {
&gt; +        if (m_layerRenderer)
&gt; +            delete m_layerRenderer;

It&apos;s OK to try to delete 0. But if you make m_layerRenderer an OwnPtr you won&apos;t have to do this at all.

&gt; -    void setRootLayerNeedsDisplay() { m_layerRenderer.setNeedsDisplay(); }
&gt; +    void setRootLayerNeedsDisplay() { if (m_layerRenderer) m_layerRenderer-&gt;setNeedsDisplay(); }

Is it an error for this function to be called if m_layerRenderer is 0?

&gt; -    WebCore::WKCACFLayerRenderer m_layerRenderer;
&gt; +    WebCore::WKCACFLayerRenderer* m_layerRenderer;

You should make this an OwnPtr (if that wasn&apos;t clear by now :-)).

r- so we can reduce the number of changes to WebView.cpp (which I think will also get the style-queue to stop complaining).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168607</commentid>
    <comment_count>13</comment_count>
      <attachid>44280</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-03 17:46:03 -0800</bug_when>
    <thetext>Created attachment 44280
Replacement patch with all issues addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168608</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-03 17:48:23 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44280 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168758</commentid>
    <comment_count>15</comment_count>
      <attachid>44280</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-04 07:19:55 -0800</bug_when>
    <thetext>Comment on attachment 44280
Replacement patch with all issues addressed.

Yay, so much smaller!

But you never call WKCACFLayerRenderer::create()!

I also think we need to make sure the D3D/QuartzCore DLLs are delay-loaded so that WebKit can launch/run without them present. We can probably do this right in the vcproj (I don&apos;t think it&apos;s harmful to specify /delayload for a DLL that you don&apos;t end up linking against (in non-ACCELERATED_COMPOSITING builds)), or we could do it via more #pragma comment lines.

So close!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168794</commentid>
    <comment_count>16</comment_count>
      <attachid>44320</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-04 09:24:10 -0800</bug_when>
    <thetext>Created attachment 44320
Patch which fixes the line endings on WebView.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168796</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-04 09:27:56 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44320 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168803</commentid>
    <comment_count>18</comment_count>
      <attachid>44320</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-04 09:38:41 -0800</bug_when>
    <thetext>Comment on attachment 44320
Patch which fixes the line endings on WebView.cpp

(I&apos;ll bet that the random style fixes scattered throughout this patch could be removed without angering the style-queue, now that those functions aren&apos;t otherwise being touched. But it&apos;s good to fix style issues!)

This all looks good except for the delay-load issue. r- so we can get that fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169794</commentid>
    <comment_count>19</comment_count>
      <attachid>44320</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-08 14:22:04 -0800</bug_when>
    <thetext>Comment on attachment 44320
Patch which fixes the line endings on WebView.cpp

Chris is going to implement delay-loading in a separate patch.

r=me on this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170174</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-09 14:29:24 -0800</bug_when>
    <thetext>Patch landed in http://trac.webkit.org/changeset/51906</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170176</commentid>
    <comment_count>21</comment_count>
      <attachid>44562</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-09 14:31:20 -0800</bug_when>
    <thetext>Created attachment 44562
Final Patch to enable ACCELERATED_COMPOSITING on Windows

This patch will build with accelerated compositing turned on, but only if you have the internal SDK. So OpenSource builds will still have it turned off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170178</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-09 14:32:22 -0800</bug_when>
    <thetext>Attachment 44562 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitLibraries/win/include/QuartzCoreInterface/QuartzCoreInterface.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170235</commentid>
    <comment_count>23</comment_count>
      <attachid>44562</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-09 16:16:56 -0800</bug_when>
    <thetext>Comment on attachment 44562
Final Patch to enable ACCELERATED_COMPOSITING on Windows

It might be worth adding a FIXME in Platform.h saying that defining ENABLE_3D_RENDERING in this file isn&apos;t really appropriate.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170461</commentid>
    <comment_count>24</comment_count>
      <attachid>44625</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-10 10:47:52 -0800</bug_when>
    <thetext>Created attachment 44625
Patch with some fixes from Adam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170505</commentid>
    <comment_count>25</comment_count>
      <attachid>44636</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-10 13:30:52 -0800</bug_when>
    <thetext>Created attachment 44636
One more try of final patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170506</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 13:31:22 -0800</bug_when>
    <thetext>Attachment 44636 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/win/WKCACFLayer.cpp:84:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:94:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/platform/graphics/win/WKCACFLayer.cpp:152:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170527</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-10 14:20:33 -0800</bug_when>
    <thetext>&gt; Attachment 44636 [details] did not pass style-queue:

Those style issues look like true positives, FWIW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170530</commentid>
    <comment_count>28</comment_count>
      <attachid>44636</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-10 14:28:08 -0800</bug_when>
    <thetext>Comment on attachment 44636
One more try of final patch

&gt; +#define STATIC_CACF_STRING(name, qcName) \
&gt; +    static CFStringRef name() \
&gt; +    { \
&gt; +        static RetainPtr&lt;CFStringRef&gt; name; \
&gt; +        if (!name) \
&gt; +            name = RetainPtr&lt;CFStringRef&gt;(AdoptCF, wkqcCFStringRef(wkqc##qcName)); \
&gt; +        return name.get(); \
&gt; +    }

It would be better to store a bare pointer so that an exit-time destructor isn&apos;t generated:

static CFStringRef name = wkqcCFStringRef(wkcq##qcName);
return name;

&gt; +STATIC_CACF_STRING(ltTransformLayer, kCACFTransformLayer)

No need for the &quot;lt&quot; prefix here.

&gt; +STATIC_CACF_STRING(Center, kCACFGravityCenter)
&gt; +STATIC_CACF_STRING(Top, kCACFGravityTop)
&gt; +STATIC_CACF_STRING(Bottom, kCACFGravityBottom)
&gt; +STATIC_CACF_STRING(Left, kCACFGravityLeft)
&gt; +STATIC_CACF_STRING(Right, kCACFGravityRight)
&gt; +STATIC_CACF_STRING(TopLeft, kCACFGravityTopLeft)
&gt; +STATIC_CACF_STRING(TopRight, kCACFGravityTopRight)
&gt; +STATIC_CACF_STRING(BottomLeft, kCACFGravityBottomLeft)
&gt; +STATIC_CACF_STRING(BottomRight, kCACFGravityBottomRight)
&gt; +STATIC_CACF_STRING(Resize, kCACFGravityResize)
&gt; +STATIC_CACF_STRING(ResizeAspect, kCACFGravityResizeAspect)
&gt; +STATIC_CACF_STRING(ResizeAspectFill, kCACFGravityResizeAspectFill)
&gt; +STATIC_CACF_STRING(Linear, kCACFFilterLinear)
&gt; +STATIC_CACF_STRING(Nearest, kCACFFilterNearest)
&gt; +STATIC_CACF_STRING(Trilinear, kCACFFilterTrilinear)
&gt; +STATIC_CACF_STRING(Lanczos, kCACFFilterLanczos)

It&apos;s strange for all these functions to start with an uppercase letter.

&gt; +static CFStringRef toCACFLayerType(WKCACFLayer::LayerType type)
&gt; +{
&gt; +    switch (type)
&gt; +    {

I think the brace is supposed to go on the same line as the switch keyword. (The same thing occurs elsewhere in this patch.)

&gt; +        case WKCACFLayer::Layer: return wkqcCFStringRef(wkqckCACFLayer);
&gt; +        case WKCACFLayer::TransformLayer: return wkqcCFStringRef(wkqckCACFTransformLayer);

Why not use your Layer() and TransformLayer() functions here?

&gt; +static WKCACFLayer::ContentsGravityType fromCACFContentsGravityType(CFStringRef string)
&gt; +{
&gt; +    if (CFStringCompare(string, Top(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::Top;
&gt; +
&gt; +    if (CFStringCompare(string, Bottom(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::Bottom;
&gt; +
&gt; +    if (CFStringCompare(string, Left(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::Left;
&gt; +
&gt; +    if (CFStringCompare(string, Right(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::Right;
&gt; +
&gt; +    if (CFStringCompare(string, TopLeft(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::TopLeft;
&gt; +
&gt; +    if (CFStringCompare(string, TopRight(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::TopRight;
&gt; +
&gt; +    if (CFStringCompare(string, BottomLeft(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::BottomLeft;
&gt; +
&gt; +    if (CFStringCompare(string, BottomRight(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::BottomRight;
&gt; +
&gt; +    if (CFStringCompare(string, Resize(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::Resize;
&gt; +
&gt; +    if (CFStringCompare(string, ResizeAspect(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::ResizeAspect;
&gt; +
&gt; +    if (CFStringCompare(string, ResizeAspectFill(), 0) == kCFCompareEqualTo)
&gt; +        return WKCACFLayer::ResizeAspectFill;

I think you can use CFEqual here and elsewhere in this patch.

r=me, but do consider fixing the above issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170826</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-11 10:36:35 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/52006</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44094</attachid>
            <date>2009-12-01 12:54:34 -0800</date>
            <delta_ts>2009-12-02 17:23:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>33266</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTU1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMTItMDEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGF5IGxvYWQgRExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAg
ICBUaGlzIGFsc28gcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGZpbGVzIHJlcXVpcmluZyBleHRlcm5h
bCBsaW5rYWdlIHRvIHR3bworICAgICAgICBhbmQgYWRkcyBjaGVja3MgZm9yIHRoZSBETExzIChk
M2Q5IGFuZCBRdWFydHpDb3JlKS4gSWYgbm90IHByZXNlbnQgaXQKKyAgICAgICAgdHVybnMgb2Zm
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGFuZCBhdm9pZHMgY2FsbGluZyBhbnkgb2YgdGhlIGZ1
bmN0aW9ucworICAgICAgICBpbiB0aGUgRExMcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0xheWVyQ0FDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0FDRjo6R3JhcGhpY3NMYXllckNBQ0YpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBQ0Y6OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1dLQ0FDRkxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyOjpzZXRTY3JvbGxGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyOjpzZXRSb290Q29udGVu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXJSZW5kZXJlcjo6c2V0Um9vdENoaWxk
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXJSZW5kZXJlcjo6c2V0TmVlZHNE
aXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZVJl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OnJlbmRlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisKIDIwMDktMTIt
MDEgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0xheWVyQ0FDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0YuY3BwCShyZXZpc2lvbiA1MTU0NSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJDQUNGLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIldLQ0FDRkxheWVyLmgiCiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5o
PgorI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgogCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCkBAIC0xMjMsNyArMTI0LDcgQEAgR3JhcGhpY3NMYXllckNBQ0Y6OkdyYXBoaWNz
TGF5ZXJDQUNGKEdyYQogICAgICwgbV9jb250ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5
ZXIpCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IoZmFsc2UpCiB7Ci0g
ICAgbV9sYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllciwgdGhpcyk7CisgICAg
bV9sYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoV0tDQUNGTGF5ZXI6OkxheWVyLCB0aGlzKTsK
ICAgICAKICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KQEAgLTUzNiw3ICs1MzcsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQUNGOjp1cGRhdGVMYXllclByZXNlCiB7CiAgICAgaWYgKG1f
cHJlc2VydmVzM0QgJiYgIW1fdHJhbnNmb3JtTGF5ZXIpIHsKICAgICAgICAgLy8gQ3JlYXRlIHRo
ZSB0cmFuc2Zvcm0gbGF5ZXIuCi0gICAgICAgIG1fdHJhbnNmb3JtTGF5ZXIgPSBXS0NBQ0ZMYXll
cjo6Y3JlYXRlKGtDQUNGVHJhbnNmb3JtTGF5ZXIsIHRoaXMpOworICAgICAgICBtX3RyYW5zZm9y
bUxheWVyID0gV0tDQUNGTGF5ZXI6OmNyZWF0ZShXS0NBQ0ZMYXllcjo6VHJhbnNmb3JtTGF5ZXIs
IHRoaXMpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBtX3RyYW5zZm9ybUxheWVyLT5zZXRO
YW1lKFN0cmluZygpLmZvcm1hdCgiVHJhbnNmb3JtIExheWVyIENBVHJhbnNmb3JtTGF5ZXIoJXAp
IEdyYXBoaWNzTGF5ZXIoJXApIiwgbV90cmFuc2Zvcm1MYXllci5nZXQoKSwgdGhpcykpOwpAQCAt
NjA5LDcgKzYxMCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUNvbnRlbnRzSW0K
IHsKICAgICBpZiAobV9wZW5kaW5nQ29udGVudHNJbWFnZSkgewogICAgICAgICBpZiAoIW1fY29u
dGVudHNMYXllci5nZXQoKSkgewotICAgICAgICAgICAgUmVmUHRyPFdLQ0FDRkxheWVyPiBpbWFn
ZUxheWVyID0gV0tDQUNGTGF5ZXI6OmNyZWF0ZShrQ0FDRkxheWVyLCB0aGlzKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxXS0NBQ0ZMYXllcj4gaW1hZ2VMYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUo
V0tDQUNGTGF5ZXI6OkxheWVyLCB0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBp
bWFnZUxheWVyLT5zZXROYW1lKCJJbWFnZSBMYXllciIpOwogI2VuZGlmCkBAIC02MjAsNyArNjIx
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0FDRjo6dXBkYXRlQ29udGVudHNJbQogCiAgICAgICAg
IC8vIEZJWE1FOiBtYXliZSBvbmx5IGRvIHRyaWxpbmVhciBpZiB0aGUgaW1hZ2UgaXMgYmVpbmcg
c2NhbGVkIGRvd24sCiAgICAgICAgIC8vIGJ1dCB0aGVuIHdoYXQgaWYgdGhlIGxheWVyIHNpemUg
Y2hhbmdlcz8KLSAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXRNaW5pZmljYXRpb25GaWx0ZXIo
a0NBQ0ZGaWx0ZXJUcmlsaW5lYXIpOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE1pbmlm
aWNhdGlvbkZpbHRlcihXS0NBQ0ZMYXllcjo6VHJpbGluZWFyKTsKICAgICAgICAgbV9jb250ZW50
c0xheWVyLT5zZXRDb250ZW50cyhtX3BlbmRpbmdDb250ZW50c0ltYWdlLmdldCgpKTsKICAgICAg
ICAgbV9wZW5kaW5nQ29udGVudHNJbWFnZSA9IDA7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmNwcAkocmV2aXNpb24gNTE1NDUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDEyICszMywzOSBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs
dWRlIDxRdWFydHpDb3JlL0NBQ0ZDb250ZXh0Lmg+CisjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUNG
TGF5ZXIuaD4KKyNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZWZWN0b3IuaD4KICNpbmNsdWRlIDxR
dWFydHpDb3JlL0NBUmVuZGVyLmg+CiAKKyNwcmFnbWEgY29tbWVudChsaWIsICJkM2Q5IikKKyNw
cmFnbWEgY29tbWVudChsaWIsICJkM2R4OSIpCisjcHJhZ21hIGNvbW1lbnQobGliLCAiUXVhcnR6
Q29yZSIpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAor
Ym9vbCBXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpCit7Cisg
ICAgc3RhdGljIGJvb2wgYXZhaWwgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbCB0ZXN0ZWQgPSBm
YWxzZTsKKworICAgIGlmICghdGVzdGVkKSB7CisgICAgICAgIHRlc3RlZCA9IHRydWU7CisgICAg
ICAgIEhNT0RVTEUgbGlicmFyeSA9IExvYWRMaWJyYXJ5KFRFWFQoImQzZDkuZGxsIikpOworICAg
ICAgICBpZiAobGlicmFyeSkgeworICAgICAgICAgICAgRnJlZUxpYnJhcnkobGlicmFyeSk7Cisg
ICAgICAgICAgICBsaWJyYXJ5ID0gTG9hZExpYnJhcnkoVEVYVCgiUXVhcnR6Q29yZS5kbGwiKSk7
CisgICAgICAgICAgICBpZiAobGlicmFyeSkgeworICAgICAgICAgICAgICAgIEZyZWVMaWJyYXJ5
KGxpYnJhcnkpOworICAgICAgICAgICAgICAgIGF2YWlsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBhdmFpbDsKK30KKwogc3RhdGljIHZvaWQg
ZGlzcGxheUluQ29udGV4dChDQUNGTGF5ZXJSZWYgbGF5ZXIsIENHQ29udGV4dFJlZiBjb250ZXh0
KQogewogICAgIEFTU0VSVF9BUkcobGF5ZXIsIFdLQ0FDRkxheWVyOjpsYXllcihsYXllcikpOwpA
QCAtNDgsOCArNzUsOCBAQCBzdGF0aWMgdm9pZCBkaXNwbGF5SW5Db250ZXh0KENBQ0ZMYXllclJl
CiAvLyBGSVhNRTogSXQgbWlnaHQgYmUgZ29vZCB0byBoYXZlIGEgd2F5IG9mIGVuc3VyaW5nIHRo
YXQgYWxsIFdLQ0FDRkxheWVycyBldmVudHVhbGx5CiAvLyBnZXQgZGVzdHJveWVkIGluIGRlYnVn
IGJ1aWxkcy4gQSBzdGF0aWMgY291bnRlciBjb3VsZCBhY2NvbXBsaXNoIHRoaXMgcHJldHR5IGVh
c2lseS4KIAotV0tDQUNGTGF5ZXI6OldLQ0FDRkxheWVyKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwg
R3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKQotICAgIDogbV9sYXllcihBZG9wdENGLCBDQUNGTGF5
ZXJDcmVhdGUoY2xhc3NOYW1lKSkKK1dLQ0FDRkxheWVyOjpXS0NBQ0ZMYXllcihMYXllclR5cGUg
bGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXIpCis6IG1fbGF5ZXIoQWRvcHRDRiwg
Q0FDRkxheWVyQ3JlYXRlKChsYXllclR5cGUgPT0gVHJhbnNmb3JtTGF5ZXIpID8ga0NBQ0ZUcmFu
c2Zvcm1MYXllciA6IGtDQUNGTGF5ZXIpKQogICAgICwgbV9uZWVkc0Rpc3BsYXlPbkJvdW5kc0No
YW5nZShmYWxzZSkKICAgICAsIG1fb3duZXIob3duZXIpCiB7CkBAIC02Niw2ICs5Myw1MCBAQCBX
S0NBQ0ZMYXllcjo6fldLQ0FDRkxheWVyKCkKICAgICBDQUNGTGF5ZXJTZXREaXNwbGF5Q2FsbGJh
Y2sobGF5ZXIoKSwgMCk7CiB9CiAKK1Bhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IFdLQ0FDRkxheWVy
OjpjcmVhdGUoTGF5ZXJUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKQor
eworICAgIGlmICghYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV0tDQUNGTGF5ZXIobGF5ZXJUeXBl
LCBvd25lcikpOworfQorCitXS0NBQ0ZMYXllciogV0tDQUNGTGF5ZXI6OmxheWVyKENBQ0ZMYXll
clJlZiBsYXllcikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tDQUNGTGF5ZXIqPihDQUNG
TGF5ZXJHZXRVc2VyRGF0YShsYXllcikpOworfQorCitSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBXS0NB
Q0ZMYXllcjo6Y2ZWYWx1ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCit7Cisg
ICAgQ0FUcmFuc2Zvcm0zRCB0OworICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFs
dWUubTEyKCk7IHQubTEzID0gdmFsdWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAorICAg
IHQubTIxID0gdmFsdWUubTIxKCk7IHQubTIyID0gdmFsdWUubTIyKCk7IHQubTIzID0gdmFsdWUu
bTIzKCk7IHQubTI0ID0gdmFsdWUubTI0KCk7IAorICAgIHQubTMxID0gdmFsdWUubTMxKCk7IHQu
bTMyID0gdmFsdWUubTMyKCk7IHQubTMzID0gdmFsdWUubTMzKCk7IHQubTM0ID0gdmFsdWUubTM0
KCk7IAorICAgIHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQyKCk7IHQubTQz
ID0gdmFsdWUubTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAorICAgIHJldHVybiBSZXRhaW5Q
dHI8Q0ZUeXBlUmVmPihBZG9wdENGLCBDQUNGVmVjdG9yQ3JlYXRlVHJhbnNmb3JtKHQpKTsKK30K
KworUmV0YWluUHRyPENGVHlwZVJlZj4gV0tDQUNGTGF5ZXI6OmNmVmFsdWUoY29uc3QgRmxvYXRQ
b2ludCYgdmFsdWUpCit7CisgICAgQ0dQb2ludCBwOworICAgIHAueCA9IHZhbHVlLngoKTsgcC55
ID0gdmFsdWUueSgpOworICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZUeXBlUmVmPihBZG9wdENGLCBD
QUNGVmVjdG9yQ3JlYXRlUG9pbnQocCkpOworfQorCitSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBXS0NB
Q0ZMYXllcjo6Y2ZWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgQ0dSZWN0IHI7
CisgICAgci5vcmlnaW4ueCA9IHJlY3QueCgpOyByLm9yaWdpbi55ID0gcmVjdC55KCk7CisgICAg
ci5zaXplLndpZHRoID0gcmVjdC53aWR0aCgpOyByLnNpemUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQo
KTsKKyAgICBDR0Zsb2F0IHZbNF0gPSB7IENHUmVjdEdldE1pblgociksIENHUmVjdEdldE1pblko
ciksIENHUmVjdEdldE1heFgociksIENHUmVjdEdldE1heFkocikgfTsKKyAgICByZXR1cm4gUmV0
YWluUHRyPENGVHlwZVJlZj4oQWRvcHRDRiwgQ0FDRlZlY3RvckNyZWF0ZSg0LCB2KSk7Cit9CisK
K1JldGFpblB0cjxDRlR5cGVSZWY+IFdLQ0FDRkxheWVyOjpjZlZhbHVlKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICByZXR1cm4gUmV0YWluUHRyPENGVHlwZVJlZj4oQWRvcHRDRiwgQ0dDb2xv
ckNyZWF0ZUdlbmVyaWNSR0IoY29sb3IucmVkKCksIGNvbG9yLmdyZWVuKCksIGNvbG9yLmJsdWUo
KSwgY29sb3IuYWxwaGEoKSkpOworfQorCiB2b2lkIFdLQ0FDRkxheWVyOjpkaXNwbGF5KFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQogewogICAgIGlmICghbV9vd25lcikKQEAgLTE0
OCw2ICsyMTksMTIgQEAgdm9pZCBXS0NBQ0ZMYXllcjo6c2V0TmVlZHNDb21taXQoKQogICAgICAg
ICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKIH0KIAorc2l6ZV90IFdLQ0FDRkxheWVy
OjpudW1TdWJsYXllcnMoKSBjb25zdAoreworICAgIENGQXJyYXlSZWYgc3VibGF5ZXJzID0gQ0FD
RkxheWVyR2V0U3VibGF5ZXJzKGxheWVyKCkpOworICAgIHJldHVybiBzdWJsYXllcnMgPyBDRkFy
cmF5R2V0Q291bnQoc3VibGF5ZXJzKSA6IDA7Cit9CisKIHZvaWQgV0tDQUNGTGF5ZXI6OmFkZFN1
YmxheWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IHN1YmxheWVyKQogewogICAgIGluc2VydFN1
YmxheWVyKHN1YmxheWVyLCBudW1TdWJsYXllcnMoKSk7CkBAIC0yNjQsNiArMzQxLDY2IEBAIFdL
Q0FDRkxheWVyKiBXS0NBQ0ZMYXllcjo6YW5jZXN0b3JPclNlbGYKICAgICByZXR1cm4gMDsKIH0K
IAorYm9vbCBXS0NBQ0ZMYXllcjo6aXNUcmFuc2Zvcm1MYXllcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIENBQ0ZMYXllckdldENsYXNzKGxheWVyKCkpID09IGtDQUNGVHJhbnNmb3JtTGF5ZXI7Cit9
CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldEFuY2hvclBvaW50KGNvbnN0IENHUG9pbnQmIHApCit7
CisgICAgQ0FDRkxheWVyU2V0QW5jaG9yUG9pbnQobGF5ZXIoKSwgcCk7IAorICAgIHNldE5lZWRz
Q29tbWl0KCk7Cit9CisKK0NHUG9pbnQgV0tDQUNGTGF5ZXI6OmFuY2hvclBvaW50KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gQ0FDRkxheWVyR2V0QW5jaG9yUG9pbnQobGF5ZXIoKSk7Cit9CisKK3Zv
aWQgV0tDQUNGTGF5ZXI6OnNldEFuY2hvclBvaW50WihDR0Zsb2F0IHopCit7CisgICAgQ0FDRkxh
eWVyU2V0QW5jaG9yUG9pbnRaKGxheWVyKCksIHopOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9
CisKK0NHRmxvYXQgV0tDQUNGTGF5ZXI6OmFuY2hvclBvaW50WigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIENBQ0ZMYXllckdldEFuY2hvclBvaW50WihsYXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZM
YXllcjo6c2V0QmFja2dyb3VuZENvbG9yKENHQ29sb3JSZWYgY29sb3IpCit7CisgICAgQ0FDRkxh
eWVyU2V0QmFja2dyb3VuZENvbG9yKGxheWVyKCksIGNvbG9yKTsKKyAgICBzZXROZWVkc0NvbW1p
dCgpOworfQorCitDR0NvbG9yUmVmIFdLQ0FDRkxheWVyOjpiYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dAoreworICAgIHJldHVybiBDQUNGTGF5ZXJHZXRCYWNrZ3JvdW5kQ29sb3IobGF5ZXIoKSk7Cit9
CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldEJvcmRlckNvbG9yKENHQ29sb3JSZWYgY29sb3IpCit7
CisgICAgQ0FDRkxheWVyU2V0Qm9yZGVyQ29sb3IobGF5ZXIoKSwgY29sb3IpOworICAgIHNldE5l
ZWRzQ29tbWl0KCk7Cit9CisKK0NHQ29sb3JSZWYgV0tDQUNGTGF5ZXI6OmJvcmRlckNvbG9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gQ0FDRkxheWVyR2V0Qm9yZGVyQ29sb3IobGF5ZXIoKSk7Cit9
CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldEJvcmRlcldpZHRoKENHRmxvYXQgd2lkdGgpCit7Cisg
ICAgQ0FDRkxheWVyU2V0Qm9yZGVyV2lkdGgobGF5ZXIoKSwgd2lkdGgpOworICAgIHNldE5lZWRz
Q29tbWl0KCk7Cit9CisKK0NHRmxvYXQgV0tDQUNGTGF5ZXI6OmJvcmRlcldpZHRoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gQ0FDRkxheWVyR2V0Qm9yZGVyV2lkdGgobGF5ZXIoKSk7Cit9CisKIHZv
aWQgV0tDQUNGTGF5ZXI6OnNldEJvdW5kcyhjb25zdCBDR1JlY3QmIHJlY3QpCiB7CiAgICAgaWYg
KENHUmVjdEVxdWFsVG9SZWN0KHJlY3QsIGJvdW5kcygpKSkKQEAgLTI3Niw2ICs0MTMsODggQEAg
dm9pZCBXS0NBQ0ZMYXllcjo6c2V0Qm91bmRzKGNvbnN0IENHUmVjdAogICAgICAgICBzZXROZWVk
c0Rpc3BsYXkoKTsKIH0KIAorQ0dSZWN0IFdLQ0FDRkxheWVyOjpib3VuZHMoKSBjb25zdAorewor
ICAgIHJldHVybiBDQUNGTGF5ZXJHZXRCb3VuZHMobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tDQUNG
TGF5ZXI6OnNldENsZWFyc0NvbnRleHQoYm9vbCBjbGVhcnMpCit7CisgICAgQ0FDRkxheWVyU2V0
Q2xlYXJzQ29udGV4dChsYXllcigpLCBjbGVhcnMpOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9
CisKK2Jvb2wgV0tDQUNGTGF5ZXI6OmNsZWFyc0NvbnRleHQoKSBjb25zdCAKK3sKKyAgICByZXR1
cm4gQ0FDRkxheWVyR2V0Q2xlYXJzQ29udGV4dChsYXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZM
YXllcjo6c2V0Q29udGVudHMoQ0dJbWFnZVJlZiBjb250ZW50cykKK3sKKyAgICBDQUNGTGF5ZXJT
ZXRDb250ZW50cyhsYXllcigpLCBjb250ZW50cyk7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30K
KworQ0dJbWFnZVJlZiBXS0NBQ0ZMYXllcjo6Y29udGVudHMoKSBjb25zdAoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDR0ltYWdlUmVmPihjb25zdF9jYXN0PHZvaWQqPihDQUNGTGF5ZXJHZXRD
b250ZW50cyhsYXllcigpKSkpOworfQorCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRDb250ZW50c1Jl
Y3QoY29uc3QgQ0dSZWN0JiBjb250ZW50c1JlY3QpCit7CisgICAgQ0FDRkxheWVyU2V0Q29udGVu
dHNSZWN0KGxheWVyKCksIGNvbnRlbnRzUmVjdCk7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30K
KworQ0dSZWN0IFdLQ0FDRkxheWVyOjpjb250ZW50c1JlY3QoKSBjb25zdAoreworICAgIHJldHVy
biBDQUNGTGF5ZXJHZXRDb250ZW50c1JlY3QobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5
ZXI6OnNldENvbnRlbnRzR3Jhdml0eShDRlN0cmluZ1JlZiBzdHIpCit7CisgICAgQ0FDRkxheWVy
U2V0Q29udGVudHNHcmF2aXR5KGxheWVyKCksIHN0cik7CisgICAgc2V0TmVlZHNDb21taXQoKTsK
K30KKworQ0ZTdHJpbmdSZWYgV0tDQUNGTGF5ZXI6OmNvbnRlbnRzR3Jhdml0eSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIENBQ0ZMYXllckdldENvbnRlbnRzR3Jhdml0eShsYXllcigpKTsKK30KKyAg
ICAKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldERvdWJsZVNpZGVkKGJvb2wgYikKK3sKKyAgICBDQUNG
TGF5ZXJTZXREb3VibGVTaWRlZChsYXllcigpLCBiKTsgCisgICAgc2V0TmVlZHNDb21taXQoKTsK
K30KKworYm9vbCBXS0NBQ0ZMYXllcjo6ZG91YmxlU2lkZWQoKSBjb25zdAoreworICAgIHJldHVy
biBDQUNGTGF5ZXJJc0RvdWJsZVNpZGVkKGxheWVyKCkpOworfQorCit2b2lkIFdLQ0FDRkxheWVy
OjpzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1aW50MzJfdCBtYXNrKQoreworICAgIENBQ0ZMYXll
clNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKGxheWVyKCksIG1hc2spOworICAgIHNldE5lZWRzQ29t
bWl0KCk7Cit9CisKK3VpbnQzMl90IFdLQ0FDRkxheWVyOjplZGdlQW50aWFsaWFzaW5nTWFzaygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIENBQ0ZMYXllckdldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKGxh
eWVyKCkpOworfQorCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRGaWx0ZXJzKENGQXJyYXlSZWYgZmls
dGVycykKK3sKKyAgICBDQUNGTGF5ZXJTZXRGaWx0ZXJzKGxheWVyKCksIGZpbHRlcnMpOworICAg
IHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK0NGQXJyYXlSZWYgV0tDQUNGTGF5ZXI6OmZpbHRlcnMo
KSBjb25zdAoreworICAgIHJldHVybiBDQUNGTGF5ZXJHZXRGaWx0ZXJzKGxheWVyKCkpOworfQor
CiB2b2lkIFdLQ0FDRkxheWVyOjpzZXRGcmFtZShjb25zdCBDR1JlY3QmIHJlY3QpCiB7CiAgICAg
Q0dSZWN0IG9sZEZyYW1lID0gZnJhbWUoKTsKQEAgLTI4OSw2ICs1MDgsMjE2IEBAIHZvaWQgV0tD
QUNGTGF5ZXI6OnNldEZyYW1lKGNvbnN0IENHUmVjdCYKICAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KCk7CiB9CiAKK0NHUmVjdCBXS0NBQ0ZMYXllcjo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVy
biBDQUNGTGF5ZXJHZXRGcmFtZShsYXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZMYXllcjo6c2V0
SGlkZGVuKGJvb2wgaGlkZGVuKQoreworICAgIENBQ0ZMYXllclNldEhpZGRlbihsYXllcigpLCBo
aWRkZW4pOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9Citib29sIFdLQ0FDRkxheWVyOjppc0hp
ZGRlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENBQ0ZMYXllcklzSGlkZGVuKGxheWVyKCkpOwor
fQorCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgYikKK3sKKyAgICBD
QUNGTGF5ZXJTZXRNYXNrc1RvQm91bmRzKGxheWVyKCksIGIpOworICAgIHNldE5lZWRzQ29tbWl0
KCk7Cit9CisKK2Jvb2wgV0tDQUNGTGF5ZXI6Om1hc2tzVG9Cb3VuZHMoKSBjb25zdAoreworICAg
IHJldHVybiBDQUNGTGF5ZXJHZXRNYXNrc1RvQm91bmRzKGxheWVyKCkpOworfQorCit2b2lkIFdL
Q0FDRkxheWVyOjpzZXRNYWduaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUgZmlsdGVyVHlwZSkK
K3sKKyAgICBTdHJpbmcgczsKKyAgICBzd2l0Y2goZmlsdGVyVHlwZSkgeworICAgICAgICBjYXNl
IExhbmN6b3M6IHMgPSBrQ0FDRkZpbHRlckxhbmN6b3M7CisgICAgICAgIGNhc2UgTmVhcmVzdDog
cyA9IGtDQUNGRmlsdGVyTmVhcmVzdDsKKyAgICAgICAgY2FzZSBUcmlsaW5lYXI6IHMgPSBrQ0FD
RkZpbHRlclRyaWxpbmVhcjsKKyAgICAgICAgZGVmYXVsdDogcyA9IGtDQUNGRmlsdGVyTGluZWFy
OworICAgIH0KKworICAgIENBQ0ZMYXllclNldE1hZ25pZmljYXRpb25GaWx0ZXIobGF5ZXIoKSwg
UmV0YWluUHRyPENGU3RyaW5nUmVmPihBZG9wdENGLCBzLmNyZWF0ZUNGU3RyaW5nKCkpLmdldCgp
KTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCitXS0NBQ0ZMYXllcjo6RmlsdGVyVHlwZSBX
S0NBQ0ZMYXllcjo6bWFnbmlmaWNhdGlvbkZpbHRlcigpIGNvbnN0Cit7CisgICAgU3RyaW5nIHMg
PSBDQUNGTGF5ZXJHZXRNYWduaWZpY2F0aW9uRmlsdGVyKGxheWVyKCkpOworICAgIGlmIChzID09
IFN0cmluZyhrQ0FDRkZpbHRlckxhbmN6b3MpKQorICAgICAgICByZXR1cm4gTGFuY3pvczsKKyAg
ICBpZiAocyA9PSBTdHJpbmcoa0NBQ0ZGaWx0ZXJOZWFyZXN0KSkKKyAgICAgICAgcmV0dXJuIE5l
YXJlc3Q7CisgICAgaWYgKHMgPT0gU3RyaW5nKGtDQUNGRmlsdGVyVHJpbGluZWFyKSkKKyAgICAg
ICAgcmV0dXJuIFRyaWxpbmVhcjsKKyAgICByZXR1cm4gTGluZWFyOworfQorCit2b2lkIFdLQ0FD
RkxheWVyOjpzZXRNaW5pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSBmaWx0ZXJUeXBlKQorewor
ICAgIFN0cmluZyBzOworICAgIHN3aXRjaChmaWx0ZXJUeXBlKSB7CisgICAgICAgIGNhc2UgTGFu
Y3pvczogcyA9IGtDQUNGRmlsdGVyTGFuY3pvczsKKyAgICAgICAgY2FzZSBOZWFyZXN0OiBzID0g
a0NBQ0ZGaWx0ZXJOZWFyZXN0OworICAgICAgICBjYXNlIFRyaWxpbmVhcjogcyA9IGtDQUNGRmls
dGVyVHJpbGluZWFyOworICAgICAgICBkZWZhdWx0OiBzID0ga0NBQ0ZGaWx0ZXJMaW5lYXI7Cisg
ICAgfQorCisgICAgQ0FDRkxheWVyU2V0TWluaWZpY2F0aW9uRmlsdGVyKGxheWVyKCksIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgcy5jcmVhdGVDRlN0cmluZygpKS5nZXQoKSk7Cisg
ICAgc2V0TmVlZHNDb21taXQoKTsKK30KKworV0tDQUNGTGF5ZXI6OkZpbHRlclR5cGUgV0tDQUNG
TGF5ZXI6Om1pbmlmaWNhdGlvbkZpbHRlcigpIGNvbnN0Cit7CisgICAgU3RyaW5nIHMgPSBDQUNG
TGF5ZXJHZXRNaW5pZmljYXRpb25GaWx0ZXIobGF5ZXIoKSk7CisgICAgaWYgKHMgPT0gU3RyaW5n
KGtDQUNGRmlsdGVyTGFuY3pvcykpCisgICAgICAgIHJldHVybiBMYW5jem9zOworICAgIGlmIChz
ID09IFN0cmluZyhrQ0FDRkZpbHRlck5lYXJlc3QpKQorICAgICAgICByZXR1cm4gTmVhcmVzdDsK
KyAgICBpZiAocyA9PSBTdHJpbmcoa0NBQ0ZGaWx0ZXJUcmlsaW5lYXIpKQorICAgICAgICByZXR1
cm4gVHJpbGluZWFyOworICAgIHJldHVybiBMaW5lYXI7Cit9CisKK3ZvaWQgV0tDQUNGTGF5ZXI6
OnNldE1pbmlmaWNhdGlvbkZpbHRlckJpYXMoZmxvYXQgYmlhcykKK3sKKyAgICBDQUNGTGF5ZXJT
ZXRNaW5pZmljYXRpb25GaWx0ZXJCaWFzKGxheWVyKCksIGJpYXMpOworICAgIHNldE5lZWRzQ29t
bWl0KCk7Cit9CisKK2Zsb2F0IFdLQ0FDRkxheWVyOjptaW5pZmljYXRpb25GaWx0ZXJCaWFzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gQ0FDRkxheWVyR2V0TWluaWZpY2F0aW9uRmlsdGVyQmlhcyhs
YXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZMYXllcjo6c2V0TmFtZShjb25zdCBTdHJpbmcmIG5h
bWUpCit7CisgICAgQ0FDRkxheWVyU2V0TmFtZShsYXllcigpLCBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+KEFkb3B0Q0YsIG5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSkuZ2V0KCkpOworICAgIHNldE5lZWRz
Q29tbWl0KCk7Cit9CisKK1N0cmluZyBXS0NBQ0ZMYXllcjo6bmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIENBQ0ZMYXllckdldE5hbWUobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5ZXI6
OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBDQUNGTGF5ZXJTZXRPcGFjaXR5KGxh
eWVyKCksIG9wYWNpdHkpOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK2Zsb2F0IFdLQ0FD
RkxheWVyOjpvcGFjaXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ0FDRkxheWVyR2V0T3BhY2l0
eShsYXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZMYXllcjo6c2V0T3BhcXVlKGJvb2wgYikKK3sK
KyAgICBDQUNGTGF5ZXJTZXRPcGFxdWUobGF5ZXIoKSwgYik7CisgICAgc2V0TmVlZHNDb21taXQo
KTsKK30KKworYm9vbCBXS0NBQ0ZMYXllcjo6b3BhcXVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Q0FDRkxheWVySXNPcGFxdWUobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldFBv
c2l0aW9uKGNvbnN0IENHUG9pbnQmIHBvc2l0aW9uKQoreworICAgIENBQ0ZMYXllclNldFBvc2l0
aW9uKGxheWVyKCksIHBvc2l0aW9uKTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCitDR1Bv
aW50IFdLQ0FDRkxheWVyOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENBQ0ZMYXll
ckdldFBvc2l0aW9uKGxheWVyKCkpOworfQorCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRaUG9zaXRp
b24oQ0dGbG9hdCBwb3NpdGlvbikKK3sKKyAgICBDQUNGTGF5ZXJTZXRaUG9zaXRpb24obGF5ZXIo
KSwgcG9zaXRpb24pOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK0NHRmxvYXQgV0tDQUNG
TGF5ZXI6OnpQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENBQ0ZMYXllckdldFpQb3Np
dGlvbihsYXllcigpKTsKK30KKwordm9pZCBXS0NBQ0ZMYXllcjo6c2V0U3BlZWQoZmxvYXQgc3Bl
ZWQpCit7CisgICAgQ0FDRkxheWVyU2V0U3BlZWQobGF5ZXIoKSwgc3BlZWQpOworICAgIHNldE5l
ZWRzQ29tbWl0KCk7Cit9CisKK0NGVGltZUludGVydmFsIFdLQ0FDRkxheWVyOjpzcGVlZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIENBQ0ZMYXllckdldFNwZWVkKGxheWVyKCkpOworfQorCit2b2lk
IFdLQ0FDRkxheWVyOjpzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFsIHQpCit7CisgICAgQ0FD
RkxheWVyU2V0VGltZU9mZnNldChsYXllcigpLCB0KTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOwor
fQorCitDRlRpbWVJbnRlcnZhbCBXS0NBQ0ZMYXllcjo6dGltZU9mZnNldCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIENBQ0ZMYXllckdldFRpbWVPZmZzZXQobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tD
QUNGTGF5ZXI6OnNldFNvcnRzU3VibGF5ZXJzKGJvb2wgc29ydHMpCit7CisgICAgQ0FDRkxheWVy
U2V0U29ydHNTdWJsYXllcnMobGF5ZXIoKSwgc29ydHMpOworICAgIHNldE5lZWRzQ29tbWl0KCk7
Cit9CisKK2Jvb2wgV0tDQUNGTGF5ZXI6OnNvcnRzU3VibGF5ZXJzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gQ0FDRkxheWVyR2V0U29ydHNTdWJsYXllcnMobGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tD
QUNGTGF5ZXI6OnNldFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IENBVHJhbnNmb3JtM0QmIHRyYW5z
Zm9ybSkKK3sKKyAgICBDQUNGTGF5ZXJTZXRTdWJsYXllclRyYW5zZm9ybShsYXllcigpLCB0cmFu
c2Zvcm0pOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK0NBVHJhbnNmb3JtM0QgV0tDQUNG
TGF5ZXI6OnN1YmxheWVyVHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ0FDRkxheWVy
R2V0U3VibGF5ZXJUcmFuc2Zvcm0obGF5ZXIoKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNl
dFRyYW5zZm9ybShjb25zdCBDQVRyYW5zZm9ybTNEJiB0cmFuc2Zvcm0pCit7CisgICAgQ0FDRkxh
eWVyU2V0VHJhbnNmb3JtKGxheWVyKCksIHRyYW5zZm9ybSk7CisgICAgc2V0TmVlZHNDb21taXQo
KTsKK30KKworQ0FUcmFuc2Zvcm0zRCBXS0NBQ0ZMYXllcjo6dHJhbnNmb3JtKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gQ0FDRkxheWVyR2V0VHJhbnNmb3JtKGxheWVyKCkpOworfQorCit2b2lkIFdL
Q0FDRkxheWVyOjpzZXRHZW9tZXRyeUZsaXBwZWQoYm9vbCBmbGlwcGVkKQoreworICAgIENBQ0ZM
YXllclNldEdlb21ldHJ5RmxpcHBlZChsYXllcigpLCBmbGlwcGVkKTsKKyAgICBzZXROZWVkc0Nv
bW1pdCgpOworfQorCitib29sIFdLQ0FDRkxheWVyOjpnZW9tZXRyeUZsaXBwZWQoKSBjb25zdAor
eworICAgIHJldHVybiBDQUNGTGF5ZXJJc0dlb21ldHJ5RmxpcHBlZChsYXllcigpKTsKK30KKyAg
ICAKIFdLQ0FDRkxheWVyKiBXS0NBQ0ZMYXllcjo6cm9vdExheWVyKCkgY29uc3QKIHsKICAgICBX
S0NBQ0ZMYXllciogbGF5ZXIgPSBjb25zdF9jYXN0PFdLQ0FDRkxheWVyKj4odGhpcyk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgJKHJldmlzaW9u
IDUxNTQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQAogCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KIAotI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FDRkxheWVyLmg+Ci0jaW5jbHVkZSA8UXVh
cnR6Q29yZS9DQUNGVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMsNiAr
NDEsMTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCiAKK3R5cGVkZWYgc3RydWN0IF9DQUNGQ29udGV4dCAqQ0FDRkNvbnRl
eHRSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0FDRkxheWVyICpDQUNGTGF5ZXJSZWY7Cit0eXBlZGVm
IHN0cnVjdCBDQVRyYW5zZm9ybTNEIENBVHJhbnNmb3JtM0Q7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgV0tDQUNGQW5pbWF0aW9uOwpAQCAtNTAsOCArNTIsMTMgQEAgY2xhc3MgV0tD
QUNGVGltaW5nRnVuY3Rpb247CiAKIGNsYXNzIFdLQ0FDRkxheWVyIDogcHVibGljIFJlZkNvdW50
ZWQ8V0tDQUNGTGF5ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXS0NBQ0ZM
YXllcj4gY3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93
bmVyPTApIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXS0NBQ0ZMYXllcihjbGFzc05hbWUsIG93bmVy
KSk7IH0KLSAgICBzdGF0aWMgV0tDQUNGTGF5ZXIqIGxheWVyKENBQ0ZMYXllclJlZiBsYXllcikg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8V0tDQUNGTGF5ZXIqPihDQUNGTGF5ZXJHZXRVc2VyRGF0YShs
YXllcikpOyB9CisgICAgZW51bSBMYXllclR5cGUgeyBMYXllciwgVHJhbnNmb3JtTGF5ZXIgfTsK
KyAgICBlbnVtIEZpbHRlclR5cGUgeyBMaW5lYXIsIE5lYXJlc3QsIFRyaWxpbmVhciwgTGFuY3pv
cyB9OworCisgICAgc3RhdGljIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgp
OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IGNyZWF0ZShMYXllclR5cGUg
bGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXI9MCk7CisgICAgc3RhdGljIFdLQ0FD
RkxheWVyKiBsYXllcihDQUNGTGF5ZXJSZWYgbGF5ZXIpOwogCiAgICAgfldLQ0FDRkxheWVyKCk7
CiAKQEAgLTU5LDM3ICs2NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWNvbWVSb290TGF5ZXJG
b3JDb250ZXh0KENBQ0ZDb250ZXh0UmVmKTsKIAogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZUeXBl
UmVmPiBjZlZhbHVlKGZsb2F0IHZhbHVlKSB7IHJldHVybiBSZXRhaW5QdHI8Q0ZUeXBlUmVmPihB
ZG9wdENGLCBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJGbG9hdDMyVHlwZSwgJnZhbHVlKSk7
IH0KLSAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgdmFsdWUpCi0gICAgewotICAgICAgICBDQVRyYW5zZm9ybTNEIHQ7Ci0g
ICAgICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFsdWUubTEyKCk7IHQubTEzID0g
dmFsdWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAotICAgICAgICB0Lm0yMSA9IHZhbHVl
Lm0yMSgpOyB0Lm0yMiA9IHZhbHVlLm0yMigpOyB0Lm0yMyA9IHZhbHVlLm0yMygpOyB0Lm0yNCA9
IHZhbHVlLm0yNCgpOyAKLSAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEoKTsgdC5tMzIgPSB2YWx1
ZS5tMzIoKTsgdC5tMzMgPSB2YWx1ZS5tMzMoKTsgdC5tMzQgPSB2YWx1ZS5tMzQoKTsgCi0gICAg
ICAgIHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQyKCk7IHQubTQzID0gdmFs
dWUubTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAotICAgICAgICByZXR1cm4gUmV0YWluUHRy
PENGVHlwZVJlZj4oQWRvcHRDRiwgQ0FDRlZlY3RvckNyZWF0ZVRyYW5zZm9ybSh0KSk7Ci0gICAg
fQotICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBjZlZhbHVlKGNvbnN0IEZsb2F0UG9p
bnQmIHZhbHVlKQotICAgIHsKLSAgICAgICAgQ0dQb2ludCBwOwotICAgICAgICBwLnggPSB2YWx1
ZS54KCk7IHAueSA9IHZhbHVlLnkoKTsKLSAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVS
ZWY+KEFkb3B0Q0YsIENBQ0ZWZWN0b3JDcmVhdGVQb2ludChwKSk7Ci0gICAgfQotICAgIHN0YXRp
YyBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBjZlZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLSAg
ICB7Ci0gICAgICAgIENHUmVjdCByOwotICAgICAgICByLm9yaWdpbi54ID0gcmVjdC54KCk7IHIu
b3JpZ2luLnkgPSByZWN0LnkoKTsKLSAgICAgICAgci5zaXplLndpZHRoID0gcmVjdC53aWR0aCgp
OyByLnNpemUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQoKTsKLSAgICAgICAgQ0dGbG9hdCB2WzRdID0g
eyBDR1JlY3RHZXRNaW5YKHIpLCBDR1JlY3RHZXRNaW5ZKHIpLCBDR1JlY3RHZXRNYXhYKHIpLCBD
R1JlY3RHZXRNYXhZKHIpIH07Ci0gICAgICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZUeXBlUmVmPihB
ZG9wdENGLCBDQUNGVmVjdG9yQ3JlYXRlKDQsIHYpKTsKLSAgICB9Ci0gICAgc3RhdGljIFJldGFp
blB0cjxDRlR5cGVSZWY+IGNmVmFsdWUoY29uc3QgQ29sb3ImIGNvbG9yKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFkb3B0Q0YsIENHQ29sb3JDcmVhdGVHZW5l
cmljUkdCKGNvbG9yLnJlZCgpLCBjb2xvci5ncmVlbigpLCBjb2xvci5ibHVlKCksIGNvbG9yLmFs
cGhhKCkpKTsKLSAgICB9CisgICAgc3RhdGljIFJldGFpblB0cjxDRlR5cGVSZWY+IGNmVmFsdWUo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKTsKKyAgICBzdGF0aWMgUmV0YWluUHRy
PENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBGbG9hdFBvaW50JiB2YWx1ZSk7CisgICAgc3RhdGlj
IFJldGFpblB0cjxDRlR5cGVSZWY+IGNmVmFsdWUoY29uc3QgRmxvYXRSZWN0JiByZWN0KTsKKyAg
ICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBDb2xvciYgY29sb3Ip
OwogCiAgICAgdm9pZCBkaXNwbGF5KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7CiAKLSAgICBi
b29sIGlzVHJhbnNmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRDbGFzcyhs
YXllcigpKSA9PSBrQ0FDRlRyYW5zZm9ybUxheWVyOyB9CisgICAgYm9vbCBpc1RyYW5zZm9ybUxh
eWVyKCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZFN1YmxheWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5
ZXI+IHN1YmxheWVyKTsKICAgICB2b2lkIGluc2VydFN1YmxheWVyKFBhc3NSZWZQdHI8V0tDQUNG
TGF5ZXI+LCBzaXplX3QgaW5kZXgpOwpAQCAtMTAxLDExOSArODUsMTE1IEBAIHB1YmxpYzoKIAog
ICAgIFdLQ0FDRkxheWVyKiBhbmNlc3Rvck9yU2VsZldpdGhTdXBlcmxheWVyKFdLQ0FDRkxheWVy
KikgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBDR1BvaW50JiBw
KSB7IENBQ0ZMYXllclNldEFuY2hvclBvaW50KGxheWVyKCksIHApOyBzZXROZWVkc0NvbW1pdCgp
OyB9Ci0gICAgQ0dQb2ludCBhbmNob3JQb2ludCgpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdl
dEFuY2hvclBvaW50KGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBD
R1BvaW50JiBwKTsKKyAgICBDR1BvaW50IGFuY2hvclBvaW50KCkgY29uc3Q7CiAKLSAgICB2b2lk
IHNldEFuY2hvclBvaW50WihDR0Zsb2F0IHopIHsgQ0FDRkxheWVyU2V0QW5jaG9yUG9pbnRaKGxh
eWVyKCksIHopOyBzZXROZWVkc0NvbW1pdCgpOyB9Ci0gICAgQ0dGbG9hdCBhbmNob3JQb2ludFoo
KSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRBbmNob3JQb2ludFoobGF5ZXIoKSk7IH0KKyAg
ICB2b2lkIHNldEFuY2hvclBvaW50WihDR0Zsb2F0IHopOworICAgIENHRmxvYXQgYW5jaG9yUG9p
bnRaKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihDR0NvbG9yUmVmIGNv
bG9yKSB7IENBQ0ZMYXllclNldEJhY2tncm91bmRDb2xvcihsYXllcigpLCBjb2xvcik7IHNldE5l
ZWRzQ29tbWl0KCk7IH0KLSAgICBDR0NvbG9yUmVmIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsg
cmV0dXJuIENBQ0ZMYXllckdldEJhY2tncm91bmRDb2xvcihsYXllcigpKTsgfQorICAgIHZvaWQg
c2V0QmFja2dyb3VuZENvbG9yKENHQ29sb3JSZWYgY29sb3IpOworICAgIENHQ29sb3JSZWYgYmFj
a2dyb3VuZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEJvcmRlckNvbG9yKENHQ29sb3JS
ZWYgY29sb3IpIHsgQ0FDRkxheWVyU2V0Qm9yZGVyQ29sb3IobGF5ZXIoKSwgY29sb3IpOyBzZXRO
ZWVkc0NvbW1pdCgpOyB9Ci0gICAgQ0dDb2xvclJlZiBib3JkZXJDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIENBQ0ZMYXllckdldEJvcmRlckNvbG9yKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRCb3Jk
ZXJDb2xvcihDR0NvbG9yUmVmIGNvbG9yKTsKKyAgICBDR0NvbG9yUmVmIGJvcmRlckNvbG9yKCkg
Y29uc3Q7CiAKLSAgICB2b2lkIHNldEJvcmRlcldpZHRoKENHRmxvYXQgd2lkdGgpIHsgQ0FDRkxh
eWVyU2V0Qm9yZGVyV2lkdGgobGF5ZXIoKSwgd2lkdGgpOyBzZXROZWVkc0NvbW1pdCgpOyB9Ci0g
ICAgQ0dGbG9hdCBib3JkZXJXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdldEJvcmRl
cldpZHRoKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRCb3JkZXJXaWR0aChDR0Zsb2F0IHdpZHRo
KTsKKyAgICBDR0Zsb2F0IGJvcmRlcldpZHRoKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEJvdW5k
cyhjb25zdCBDR1JlY3QmKTsKLSAgICBDR1JlY3QgYm91bmRzKCkgY29uc3QgeyByZXR1cm4gQ0FD
RkxheWVyR2V0Qm91bmRzKGxheWVyKCkpOyB9CisgICAgQ0dSZWN0IGJvdW5kcygpIGNvbnN0Owog
Ci0gICAgdm9pZCBzZXRDbGVhcnNDb250ZXh0KGJvb2wgY2xlYXJzKSB7IENBQ0ZMYXllclNldENs
ZWFyc0NvbnRleHQobGF5ZXIoKSwgY2xlYXJzKTsgc2V0TmVlZHNDb21taXQoKTsgfQotICAgIGJv
b2wgY2xlYXJzQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdldENsZWFyc0NvbnRl
eHQobGF5ZXIoKSk7IH0KKyAgICB2b2lkIHNldENsZWFyc0NvbnRleHQoYm9vbCBjbGVhcnMpOwor
ICAgIGJvb2wgY2xlYXJzQ29udGV4dCgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRDb250ZW50cyhD
R0ltYWdlUmVmIGNvbnRlbnRzKSB7IENBQ0ZMYXllclNldENvbnRlbnRzKGxheWVyKCksIGNvbnRl
bnRzKTsgc2V0TmVlZHNDb21taXQoKTsgfQotICAgIENHSW1hZ2VSZWYgY29udGVudHMoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxDR0ltYWdlUmVmPihjb25zdF9jYXN0PHZvaWQqPihDQUNG
TGF5ZXJHZXRDb250ZW50cyhsYXllcigpKSkpOyB9CisgICAgdm9pZCBzZXRDb250ZW50cyhDR0lt
YWdlUmVmIGNvbnRlbnRzKTsKKyAgICBDR0ltYWdlUmVmIGNvbnRlbnRzKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBDR1JlY3QmIGNvbnRlbnRzUmVjdCkgeyBDQUNG
TGF5ZXJTZXRDb250ZW50c1JlY3QobGF5ZXIoKSwgY29udGVudHNSZWN0KTsgc2V0TmVlZHNDb21t
aXQoKTsgfQotICAgIENHUmVjdCBjb250ZW50c1JlY3QoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5
ZXJHZXRDb250ZW50c1JlY3QobGF5ZXIoKSk7IH0KKyAgICB2b2lkIHNldENvbnRlbnRzUmVjdChj
b25zdCBDR1JlY3QmIGNvbnRlbnRzUmVjdCk7CisgICAgQ0dSZWN0IGNvbnRlbnRzUmVjdCgpIGNv
bnN0OwogCi0gICAgdm9pZCBzZXRDb250ZW50c0dyYXZpdHkoQ0ZTdHJpbmdSZWYgc3RyKSB7IENB
Q0ZMYXllclNldENvbnRlbnRzR3Jhdml0eShsYXllcigpLCBzdHIpOyBzZXROZWVkc0NvbW1pdCgp
OyB9Ci0gICAgQ0ZTdHJpbmdSZWYgY29udGVudHNHcmF2aXR5KCkgY29uc3QgeyByZXR1cm4gQ0FD
RkxheWVyR2V0Q29udGVudHNHcmF2aXR5KGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRDb250ZW50
c0dyYXZpdHkoQ0ZTdHJpbmdSZWYgc3RyKTsKKyAgICBDRlN0cmluZ1JlZiBjb250ZW50c0dyYXZp
dHkoKSBjb25zdDsKICAgICAgICAgCi0gICAgdm9pZCBzZXREb3VibGVTaWRlZChib29sIGIpIHsg
Q0FDRkxheWVyU2V0RG91YmxlU2lkZWQobGF5ZXIoKSwgYik7IHNldE5lZWRzQ29tbWl0KCk7IH0K
LSAgICBib29sIGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVySXNEb3VibGVT
aWRlZChsYXllcigpKTsgfQorICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCBiKTsKKyAgICBi
b29sIGRvdWJsZVNpZGVkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEVkZ2VBbnRpYWxpYXNpbmdN
YXNrKHVpbnQzMl90IG1hc2spIHsgQ0FDRkxheWVyU2V0RWRnZUFudGlhbGlhc2luZ01hc2sobGF5
ZXIoKSwgbWFzayk7IHNldE5lZWRzQ29tbWl0KCk7IH0KLSAgICB1aW50MzJfdCBlZGdlQW50aWFs
aWFzaW5nTWFzaygpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdldEVkZ2VBbnRpYWxpYXNpbmdN
YXNrKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1aW50MzJf
dCBtYXNrKTsKKyAgICB1aW50MzJfdCBlZGdlQW50aWFsaWFzaW5nTWFzaygpIGNvbnN0OwogCi0g
ICAgdm9pZCBzZXRGaWx0ZXJzKENGQXJyYXlSZWYgZmlsdGVycykgeyBDQUNGTGF5ZXJTZXRGaWx0
ZXJzKGxheWVyKCksIGZpbHRlcnMpOyBzZXROZWVkc0NvbW1pdCgpOyB9Ci0gICAgQ0ZBcnJheVJl
ZiBmaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0RmlsdGVycyhsYXllcigpKTsg
fQorICAgIHZvaWQgc2V0RmlsdGVycyhDRkFycmF5UmVmIGZpbHRlcnMpOworICAgIENGQXJyYXlS
ZWYgZmlsdGVycygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRGcmFtZShjb25zdCBDR1JlY3QmKTsK
LSAgICBDR1JlY3QgZnJhbWUoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRGcmFtZShsYXll
cigpKTsgfQorICAgIENHUmVjdCBmcmFtZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRIaWRkZW4o
Ym9vbCBoaWRkZW4pIHsgQ0FDRkxheWVyU2V0SGlkZGVuKGxheWVyKCksIGhpZGRlbik7IHNldE5l
ZWRzQ29tbWl0KCk7IH0KLSAgICBib29sIGlzSGlkZGVuKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxh
eWVySXNIaWRkZW4obGF5ZXIoKSk7IH0KKyAgICB2b2lkIHNldEhpZGRlbihib29sIGhpZGRlbik7
CisgICAgYm9vbCBpc0hpZGRlbigpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRNYXNrc1RvQm91bmRz
KGJvb2wgYikgeyBDQUNGTGF5ZXJTZXRNYXNrc1RvQm91bmRzKGxheWVyKCksIGIpOyB9Ci0gICAg
Ym9vbCBtYXNrc1RvQm91bmRzKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0TWFza3NUb0Jv
dW5kcyhsYXllcigpKTsgfQorICAgIHZvaWQgc2V0TWFza3NUb0JvdW5kcyhib29sIGIpOworICAg
IGJvb2wgbWFza3NUb0JvdW5kcygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRNYWduaWZpY2F0aW9u
RmlsdGVyKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IENBQ0ZMYXllclNldE1hZ25pZmljYXRpb25G
aWx0ZXIobGF5ZXIoKSwgUmV0YWluUHRyPENGU3RyaW5nUmVmPihBZG9wdENGLCBzdHJpbmcuY3Jl
YXRlQ0ZTdHJpbmcoKSkuZ2V0KCkpOyB9Ci0gICAgU3RyaW5nIG1hZ25pZmljYXRpb25GaWx0ZXIo
KSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRNYWduaWZpY2F0aW9uRmlsdGVyKGxheWVyKCkp
OyB9CisgICAgdm9pZCBzZXRNYWduaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUpOworICAgIEZp
bHRlclR5cGUgbWFnbmlmaWNhdGlvbkZpbHRlcigpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRNaW5p
ZmljYXRpb25GaWx0ZXIoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgQ0FDRkxheWVyU2V0TWluaWZp
Y2F0aW9uRmlsdGVyKGxheWVyKCksIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgc3Ry
aW5nLmNyZWF0ZUNGU3RyaW5nKCkpLmdldCgpKTsgfQotICAgIFN0cmluZyBtaW5pZmljYXRpb25G
aWx0ZXIoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRNaW5pZmljYXRpb25GaWx0ZXIobGF5
ZXIoKSk7IH0KKyAgICB2b2lkIHNldE1pbmlmaWNhdGlvbkZpbHRlcihGaWx0ZXJUeXBlKTsKKyAg
ICBGaWx0ZXJUeXBlIG1pbmlmaWNhdGlvbkZpbHRlcigpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRN
aW5pZmljYXRpb25GaWx0ZXJCaWFzKGZsb2F0IGJpYXMpIHsgQ0FDRkxheWVyU2V0TWluaWZpY2F0
aW9uRmlsdGVyQmlhcyhsYXllcigpLCBiaWFzKTsgfQotICAgIGZsb2F0IG1pbmlmaWNhdGlvbkZp
bHRlckJpYXMoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRNaW5pZmljYXRpb25GaWx0ZXJC
aWFzKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRNaW5pZmljYXRpb25GaWx0ZXJCaWFzKGZsb2F0
IGJpYXMpOworICAgIGZsb2F0IG1pbmlmaWNhdGlvbkZpbHRlckJpYXMoKSBjb25zdDsKIAotICAg
IHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpIHsgQ0FDRkxheWVyU2V0TmFtZShsYXll
cigpLCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIG5hbWUuY3JlYXRlQ0ZTdHJpbmco
KSkuZ2V0KCkpOyB9Ci0gICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJH
ZXROYW1lKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSk7
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNv
bnN0IENHUmVjdCYgZGlydHlSZWN0KTsKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheSgpOwogICAg
IAotICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UoYm9vbCBuZWVkc0Rpc3Bs
YXkpIHsgbV9uZWVkc0Rpc3BsYXlPbkJvdW5kc0NoYW5nZSA9IG5lZWRzRGlzcGxheTsgfQorICAg
IHZvaWQgc2V0TmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UoYm9vbCBuZWVkc0Rpc3BsYXkpOwog
Ci0gICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpIHsgQ0FDRkxheWVyU2V0T3BhY2l0
eShsYXllcigpLCBvcGFjaXR5KTsgc2V0TmVlZHNDb21taXQoKTsgfQotICAgIGZsb2F0IG9wYWNp
dHkoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJHZXRPcGFjaXR5KGxheWVyKCkpOyB9CisgICAg
dm9pZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpOworICAgIGZsb2F0IG9wYWNpdHkoKSBjb25z
dDsKIAotICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wgYikgeyBDQUNGTGF5ZXJTZXRPcGFxdWUobGF5
ZXIoKSwgYik7IHNldE5lZWRzQ29tbWl0KCk7IH0KLSAgICBib29sIG9wYXF1ZSgpIGNvbnN0IHsg
cmV0dXJuIENBQ0ZMYXllcklzT3BhcXVlKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRPcGFxdWUo
Ym9vbCBiKTsKKyAgICBib29sIG9wYXF1ZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRQb3NpdGlv
bihjb25zdCBDR1BvaW50JiBwb3NpdGlvbikgeyBDQUNGTGF5ZXJTZXRQb3NpdGlvbihsYXllcigp
LCBwb3NpdGlvbik7IHNldE5lZWRzQ29tbWl0KCk7IH0KLSAgICBDR1BvaW50IHBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0UG9zaXRpb24obGF5ZXIoKSk7IH0KKyAgICB2b2lk
IHNldFBvc2l0aW9uKGNvbnN0IENHUG9pbnQmIHBvc2l0aW9uKTsKKyAgICBDR1BvaW50IHBvc2l0
aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFpQb3NpdGlvbihDR0Zsb2F0IHBvc2l0aW9uKSB7
IENBQ0ZMYXllclNldFpQb3NpdGlvbihsYXllcigpLCBwb3NpdGlvbik7IHNldE5lZWRzQ29tbWl0
KCk7IH0KLSAgICBDR0Zsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdl
dFpQb3NpdGlvbihsYXllcigpKTsgfQorICAgIHZvaWQgc2V0WlBvc2l0aW9uKENHRmxvYXQgcG9z
aXRpb24pOworICAgIENHRmxvYXQgelBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNw
ZWVkKGZsb2F0IHNwZWVkKSB7IENBQ0ZMYXllclNldFNwZWVkKGxheWVyKCksIHNwZWVkKTsgfQot
ICAgIENGVGltZUludGVydmFsIHNwZWVkKCkgY29uc3QgeyBDQUNGTGF5ZXJHZXRTcGVlZChsYXll
cigpKTsgfQorICAgIHZvaWQgc2V0U3BlZWQoZmxvYXQgc3BlZWQpOworICAgIENGVGltZUludGVy
dmFsIHNwZWVkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwgdCkgeyBDQUNGTGF5ZXJTZXRUaW1lT2Zmc2V0KGxheWVyKCksIHQpOyB9Ci0gICAgQ0ZUaW1l
SW50ZXJ2YWwgdGltZU9mZnNldCgpIGNvbnN0IHsgQ0FDRkxheWVyR2V0VGltZU9mZnNldChsYXll
cigpKTsgfQorICAgIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCB0KTsKKyAgICBD
RlRpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KCkgY29uc3Q7CiAKICAgICBXS0NBQ0ZMYXllciogcm9v
dExheWVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNvcnRzU3VibGF5ZXJzKGJvb2wgc29ydHMp
IHsgQ0FDRkxheWVyU2V0U29ydHNTdWJsYXllcnMobGF5ZXIoKSwgc29ydHMpOyBzZXROZWVkc0Nv
bW1pdCgpOyB9Ci0gICAgYm9vbCBzb3J0c1N1YmxheWVycygpIGNvbnN0IHsgcmV0dXJuIENBQ0ZM
YXllckdldFNvcnRzU3VibGF5ZXJzKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRTb3J0c1N1Ymxh
eWVycyhib29sIHNvcnRzKTsKKyAgICBib29sIHNvcnRzU3VibGF5ZXJzKCkgY29uc3Q7CiAKICAg
ICB2b2lkIHJlbW92ZUFsbFN1YmxheWVycygpOwogICAgIAogICAgIHZvaWQgc2V0U3VibGF5ZXJz
KGNvbnN0IFZlY3RvcjxSZWZQdHI8V0tDQUNGTGF5ZXI+ID4mKTsKIAotICAgIHZvaWQgc2V0U3Vi
bGF5ZXJUcmFuc2Zvcm0oY29uc3QgQ0FUcmFuc2Zvcm0zRCYgdHJhbnNmb3JtKSB7IENBQ0ZMYXll
clNldFN1YmxheWVyVHJhbnNmb3JtKGxheWVyKCksIHRyYW5zZm9ybSk7IHNldE5lZWRzQ29tbWl0
KCk7IH0KLSAgICBDQVRyYW5zZm9ybTNEIHN1YmxheWVyVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1
cm4gQ0FDRkxheWVyR2V0U3VibGF5ZXJUcmFuc2Zvcm0obGF5ZXIoKSk7IH0KKyAgICB2b2lkIHNl
dFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IENBVHJhbnNmb3JtM0QmIHRyYW5zZm9ybSk7CisgICAg
Q0FUcmFuc2Zvcm0zRCBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0OwogCiAgICAgV0tDQUNGTGF5
ZXIqIHN1cGVybGF5ZXIoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IENB
VHJhbnNmb3JtM0QmIHRyYW5zZm9ybSkgeyBDQUNGTGF5ZXJTZXRUcmFuc2Zvcm0obGF5ZXIoKSwg
dHJhbnNmb3JtKTsgc2V0TmVlZHNDb21taXQoKTsgfQotICAgIENBVHJhbnNmb3JtM0QgdHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0VHJhbnNmb3JtKGxheWVyKCkpOyB9Cisg
ICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgQ0FUcmFuc2Zvcm0zRCYgdHJhbnNmb3JtKTsKKyAg
ICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRHZW9tZXRy
eUZsaXBwZWQoYm9vbCBmbGlwcGVkKSB7IENBQ0ZMYXllclNldEdlb21ldHJ5RmxpcHBlZChsYXll
cigpLCBmbGlwcGVkKTsgc2V0TmVlZHNDb21taXQoKTsgfQotICAgIGJvb2wgZ2VvbWV0cnlGbGlw
cGVkKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVySXNHZW9tZXRyeUZsaXBwZWQobGF5ZXIoKSk7
IH0KKyAgICB2b2lkIHNldEdlb21ldHJ5RmxpcHBlZChib29sIGZsaXBwZWQpOworICAgIGJvb2wg
Z2VvbWV0cnlGbGlwcGVkKCkgY29uc3Q7CiAKLSAgICBXS0NBQ0ZMYXllcihDRlN0cmluZ1JlZiBj
bGFzc05hbWUsIEdyYXBoaWNzTGF5ZXJDQUNGKiBvd25lcik7CisgICAgV0tDQUNGTGF5ZXIoTGF5
ZXJUeXBlLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXIpOwogCiBwcml2YXRlOgogICAgIHZvaWQg
c2V0TmVlZHNDb21taXQoKTsKICAgICBDQUNGTGF5ZXJSZWYgbGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX2xheWVyLmdldCgpOyB9Ci0gICAgc2l6ZV90IG51bVN1YmxheWVycygpIGNvbnN0Ci0gICAg
ewotICAgICAgICBDRkFycmF5UmVmIHN1YmxheWVycyA9IENBQ0ZMYXllckdldFN1YmxheWVycyhs
YXllcigpKTsKLSAgICAgICAgcmV0dXJuIHN1YmxheWVycyA/IENGQXJyYXlHZXRDb3VudChzdWJs
YXllcnMpIDogMDsKLSAgICB9CisgICAgc2l6ZV90IG51bVN1YmxheWVycygpIGNvbnN0OwogICAg
IAogICAgIC8vIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwYXNzZWQgbGF5ZXIgaW4gdGhpcyBs
YXllcidzIHN1YmxheWVycyBsaXN0CiAgICAgLy8gb3IgLTEgaWYgbm90IGZvdW5kCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRl
cmVyLmNwcAkocmV2aXNpb24gNTE1NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9XS0NBQ0ZMYXllclJlbmRlcmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw5
IEBAIFdLQ0FDRkxheWVyUmVuZGVyZXI6On5XS0NBQ0ZMYXllclJlbmRlcmUKIAogdm9pZCBXS0NB
Q0ZMYXllclJlbmRlcmVyOjpzZXRTY3JvbGxGcmFtZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGlu
dCBzY3JvbGxYLCBpbnQgc2Nyb2xsWSkKIHsKKyAgICBpZiAoIVdLQ0FDRkxheWVyOjphY2NlbGVy
YXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fc2Ny
b2xsRnJhbWVXaWR0aCA9IHdpZHRoOwogICAgIG1fc2Nyb2xsRnJhbWVIZWlnaHQgPSBoZWlnaHQ7
CiAKQEAgLTEyOCw2ICsxMzEsOSBAQCB2b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6OnNldFNjcm9s
bEZyYW1lCiAKIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6c2V0Um9vdENvbnRlbnRzKENHSW1h
Z2VSZWYgaW1hZ2UpCiB7CisgICAgaWYgKCFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBBU1NFUlQobV9yb290TGF5
ZXIpOwogICAgIG1fcm9vdExheWVyLT5zZXRDb250ZW50cyhpbWFnZSk7CiAgICAgcmVuZGVyU29v
bigpOwpAQCAtMTM1LDcgKzE0MSw3IEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6c2V0Um9v
dENvbnRlbnQKIAogdm9pZCBXS0NBQ0ZMYXllclJlbmRlcmVyOjpzZXRSb290Q2hpbGRMYXllcihX
ZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBsYXllcikKIHsKLSAgICBpZiAoIW1fc2Nyb2xsTGF5ZXIp
CisgICAgaWYgKCFtX3Njcm9sbExheWVyIHx8ICFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Njcm9sbExheWVy
LT5yZW1vdmVBbGxTdWJsYXllcnMoKTsKQEAgLTE1Miw2ICsxNTgsOSBAQCB2b2lkIFdLQ0FDRkxh
eWVyUmVuZGVyZXI6OnNldFJvb3RDaGlsZExhCiAgICAKIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJl
cjo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKKyAgICBpZiAoIVdLQ0FDRkxheWVyOjphY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVCht
X3Jvb3RMYXllcik7CiAgICAgbV9yb290TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAgIHJl
bmRlclNvb24oKTsKQEAgLTE1OSw2ICsxNjgsOSBAQCB2b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6
OnNldE5lZWRzRGlzcGxhCiAKIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6Y3JlYXRlUmVuZGVy
ZXIoKQogeworICAgIGlmICghV0tDQUNGTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKG1fdHJpZWRUb0NyZWF0ZUQzRFJl
bmRlcmVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5NCw4ICsyMDYsOCBAQCB2b2lkIFdLQ0FD
RkxheWVyUmVuZGVyZXI6OmNyZWF0ZVJlbmRlcmVyCiAgICAgbV9yZW5kZXJlciA9IENBUmVuZGVy
T0dMTmV3KCZrQ0FSZW5kZXJEWDlDYWxsYmFja3MsIG1fZDNkRGV2aWNlLmdldCgpLCAwKTsKIAog
ICAgIC8vIENyZWF0ZSB0aGUgcm9vdCBoaWVyYXJjaHkKLSAgICBtX3Jvb3RMYXllciA9IFdLQ0FD
RkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllcik7Ci0gICAgbV9zY3JvbGxMYXllciA9IFdLQ0FDRkxh
eWVyOjpjcmVhdGUoa0NBQ0ZMYXllcik7CisgICAgbV9yb290TGF5ZXIgPSBXS0NBQ0ZMYXllcjo6
Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllcik7CisgICAgbV9zY3JvbGxMYXllciA9IFdLQ0FDRkxh
eWVyOjpjcmVhdGUoV0tDQUNGTGF5ZXI6OkxheWVyKTsKIAogICAgIG1fcm9vdExheWVyLT5hZGRT
dWJsYXllcihtX3Njcm9sbExheWVyKTsKICAgICBtX3Njcm9sbExheWVyLT5zZXRNYXNrc1RvQm91
bmRzKHRydWUpOwpAQCAtMzYxLDcgKzM3Myw3IEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6
cmVuZGVyKGNvbnN0IFYKIAogICAgICAgICBpZiAoZXJyID09IEQzREVSUl9ERVZJQ0VMT1NUKSB7
CiAgICAgICAgICAgICAvLyBMb3N0IGRldmljZSBzaXR1YXRpb24uCi0gICAgICAgICAgICBDQVJl
bmRlck9HTFB1cmdlKG1fcmVuZGVyZXIpOworICAgICAgICAgICAgLy9DQVJlbmRlck9HTFB1cmdl
KG1fcmVuZGVyZXIpOwogICAgICAgICAgICAgcmVzZXREZXZpY2UoKTsKICAgICAgICAgICAgIENB
UmVuZGVyVXBkYXRlQWRkUmVjdCh1LCAmYm91bmRzKTsKICAgICAgICAgfQpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiA1MTU0NSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDcgKzI4LDkgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNpbmNs
dWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgICAgCiAj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxNTUzKQorKysgV2ViS2l0L3dpbi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMi0wMSAgQ2hyaXMg
TWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgIERlbGF5IGxvYWQgRExMcyBmb3IgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxODU2CisgICAgICAgIAorICAgICAgICBBZGQgbG9naWMgdG8gdHVybiBvZmYgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcgaWYgZDNkOSBvciBRdWFydHpDb3JlCisgICAgICAgIERMTHMgYXJlIG5v
dCBwcmVzZW50LgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKwogMjAwOS0xMS0zMCAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRvdWJsZS1mcmVlIG9mIEJTVFJzIHBhc3NlZCB0
byBXZWJOYXZpZ2F0aW9uRGF0YTo6Y3JlYXRlSW5zdGFuY2UKSW5kZXg6IFdlYktpdC93aW4vV2Vi
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24g
NTE1NDUpCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTA0
LDYgKzQ1MDQsMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQog
ICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbkFsbG93ZWRSdW5UaW1l
KHJ1blRpbWUpOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHNldHRp
bmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChXS0NBQ0ZMYXllcjo6YWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKDNEX0NB
TlZBUykKICAgICBzZXR0aW5ncy0+c2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKHRydWUpOwog
I2VuZGlmICAvLyBFTkFCTEUoM0RfQ0FOVkFTKQpAQCAtNTczOCw3ICs1NzQyLDcgQEAgdm9pZCBX
ZWJWaWV3OjpzZXRSb290Q2hpbGRMYXllcihXZWJDb3JlOgogCiB2b2lkIFdlYlZpZXc6OnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKIHsKLSAgICBpZiAobV9pc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcgPT0gYWNjZWxlcmF0ZWQpCisgICAgaWYgKG1faXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nID09IGFjY2VsZXJhdGVkIHx8ICFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyA9IGFjY2VsZXJhdGVkOwo=
</data>
<flag name="review"
          id="25869"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44197</attachid>
            <date>2009-12-02 17:23:12 -0800</date>
            <delta_ts>2009-12-02 17:29:30 -0800</delta_ts>
            <desc>Replacement patch</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>52545</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTYxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDktMTItMDIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGF5IGxvYWQgRExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAg
ICBJZiB0aGUgRExMcyAoZDNkOSBhbmQgUXVhcnR6Q29yZSkuIGFyZSBub3QgcHJlc2VudCBpdAor
ICAgICAgICB0dXJucyBvZmYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5kIGF2b2lkcyBjYWxs
aW5nIAorICAgICAgICBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgRExMcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpkaXNwbGF5SW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpXS0NBQ0ZMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6fldL
Q0FDRkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpkaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpiZWNvbWVSb290TGF5ZXJGb3JDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXROZWVkc0NvbW1pdCk6CisgICAgICAg
IChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YWRkU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
V0tDQUNGTGF5ZXI6Omluc2VydFN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxh
eWVyOjppbnNlcnRTdWJsYXllckFib3ZlTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNG
TGF5ZXI6Omluc2VydFN1YmxheWVyQmVsb3dMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NB
Q0ZMYXllcjo6cmVwbGFjZVN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVy
OjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6
cmVtb3ZlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmluZGV4T2ZT
dWJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YW5jZXN0b3JPclNlbGZX
aXRoU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0Qm91bmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXRGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXS0NBQ0ZMYXllcjo6cm9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpyZW1vdmVBbGxTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5
ZXI6OnNldFN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6bW92ZVN1
YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c3VwZXJsYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRkxheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmNm
VmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKwogMjAwOS0xMi0w
MiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
Q0ZMYXllci5jcHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1NyArMSwzODQgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQotI2luY2x1ZGUgIldLQ0FDRkxheWVyLmgiCi0KLSNpbmNsdWRlICJXS0NBQ0ZDb250ZXh0Rmx1
c2hlci5oIgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZD
b250ZXh0Lmg+Ci0jaW5jbHVkZSA8UXVhcnR6Q29yZS9DQVJlbmRlci5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLXN0YXRpYyB2b2lkIGRpc3BsYXlJ
bkNvbnRleHQoQ0FDRkxheWVyUmVmIGxheWVyLCBDR0NvbnRleHRSZWYgY29udGV4dCkKLXsKLSAg
ICBBU1NFUlRfQVJHKGxheWVyLCBXS0NBQ0ZMYXllcjo6bGF5ZXIobGF5ZXIpKTsKLSAgICBXS0NB
Q0ZMYXllcjo6bGF5ZXIobGF5ZXIpLT5kaXNwbGF5KGNvbnRleHQpOwotfQotCi0vLyBGSVhNRTog
SXQgbWlnaHQgYmUgZ29vZCB0byBoYXZlIGEgd2F5IG9mIGVuc3VyaW5nIHRoYXQgYWxsIFdLQ0FD
RkxheWVycyBldmVudHVhbGx5Ci0vLyBnZXQgZGVzdHJveWVkIGluIGRlYnVnIGJ1aWxkcy4gQSBz
dGF0aWMgY291bnRlciBjb3VsZCBhY2NvbXBsaXNoIHRoaXMgcHJldHR5IGVhc2lseS4KLQotV0tD
QUNGTGF5ZXI6OldLQ0FDRkxheWVyKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NMYXll
ckNBQ0YqIG93bmVyKQotICAgIDogbV9sYXllcihBZG9wdENGLCBDQUNGTGF5ZXJDcmVhdGUoY2xh
c3NOYW1lKSkKLSAgICAsIG1fbmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UoZmFsc2UpCi0gICAg
LCBtX293bmVyKG93bmVyKQotewotICAgIENBQ0ZMYXllclNldFVzZXJEYXRhKGxheWVyKCksIHRo
aXMpOwotICAgIENBQ0ZMYXllclNldERpc3BsYXlDYWxsYmFjayhsYXllcigpLCBkaXNwbGF5SW5D
b250ZXh0KTsKLX0KLQotV0tDQUNGTGF5ZXI6On5XS0NBQ0ZMYXllcigpCi17Ci0gICAgLy8gT3Vy
IHN1cGVybGF5ZXIgc2hvdWxkIGJlIGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gdXMsIHNvIHRoZXJl
IHNob3VsZCBiZSBubyB3YXkgZm9yIHVzIHRvIGJlIGRlc3Ryb3llZCB3aGlsZSB3ZSBzdGlsbCBo
YXZlIGEgc3VwZXJsYXllci4KLSAgICBBU1NFUlQoIXN1cGVybGF5ZXIoKSk7Ci0KLSAgICBDQUNG
TGF5ZXJTZXRVc2VyRGF0YShsYXllcigpLCAwKTsKLSAgICBDQUNGTGF5ZXJTZXREaXNwbGF5Q2Fs
bGJhY2sobGF5ZXIoKSwgMCk7Ci19Ci0KLXZvaWQgV0tDQUNGTGF5ZXI6OmRpc3BsYXkoUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgaWYgKCFtX293bmVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotCi0gICAgQ0dS
ZWN0IGxheWVyQm91bmRzID0gYm91bmRzKCk7Ci0gICAgaWYgKG1fb3duZXItPmNvbnRlbnRzT3Jp
ZW50YXRpb24oKSA9PSBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5h
dGVzVG9wRG93bikgewotICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAxLCAtMSk7
Ci0gICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAwLCAtbGF5ZXJCb3VuZHMu
c2l6ZS5oZWlnaHQpOwotICAgIH0KLQotICAgIGlmIChtX293bmVyLT5jbGllbnQoKSkgewotICAg
ICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KGNvbnRleHQpOwotCi0gICAgICAg
IC8vIEl0J3MgaW1wb3J0YW50IHRvIGdldCB0aGUgY2xpcCBmcm9tIHRoZSBjb250ZXh0LCBiZWNh
dXNlIGl0IG1heSBiZSBzaWduaWZpY2FudGx5Ci0gICAgICAgIC8vIHNtYWxsZXIgdGhhbiB0aGUg
bGF5ZXIgYm91bmRzIChlLmcuIHRpbGVkIGxheWVycykKLSAgICAgICAgQ0dSZWN0IGNsaXBCb3Vu
ZHMgPSBDR0NvbnRleHRHZXRDbGlwQm91bmRpbmdCb3goY29udGV4dCk7Ci0gICAgICAgIEludFJl
Y3QgY2xpcChlbmNsb3NpbmdJbnRSZWN0KGNsaXBCb3VuZHMpKTsKLSAgICAgICAgbV9vd25lci0+
cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ3JhcGhpY3NDb250ZXh0LCBjbGlwKTsKLSAgICB9
Ci0jaWZuZGVmIE5ERUJVRwotICAgIGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLQotICAgICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSdkIGF2b2lkIGNhbGxpbmcgLXNldE5l
ZWRzRGlzcGxheSBvbiBhIGxheWVyIHRoYXQgaXMgYSBwbGFpbiBjb2xvciwKLSAgICAgICAgLy8g
c28gQ0EgbmV2ZXIgbWFrZXMgYmFja2luZyBzdG9yZSBmb3IgaXQgKHdoaWNoIGlzIHdoYXQgLXNl
dE5lZWRzRGlzcGxheSB3aWxsIGRvIGFib3ZlKS4KLSAgICAgICAgQ0dDb250ZXh0U2V0UkdCRmls
bENvbG9yKGNvbnRleHQsIDAuMGYsIDEuMGYsIDAuMGYsIDEuMGYpOwotICAgICAgICBDR0NvbnRl
eHRGaWxsUmVjdChjb250ZXh0LCBsYXllckJvdW5kcyk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBp
ZiAobV9vd25lci0+c2hvd1JlcGFpbnRDb3VudGVyKCkpIHsKLSAgICAgICAgY2hhciB0ZXh0WzE2
XTsgLy8gdGhhdCdzIGEgbG90IG9mIHJlcGFpbnRzCi0gICAgICAgIF9zbnByaW50Zih0ZXh0LCBz
aXplb2YodGV4dCksICIlZCIsIG1fb3duZXItPmluY3JlbWVudFJlcGFpbnRDb3VudCgpKTsKLQot
ICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAgICAgICBDR0NvbnRleHRT
ZXRSR0JGaWxsQ29sb3IoY29udGV4dCwgMS4wZiwgMC4wZiwgMC4wZiwgMC44Zik7Ci0gICAgICAg
IAotICAgICAgICBDR1JlY3QgYUJvdW5kcyA9IGxheWVyQm91bmRzOwotCi0gICAgICAgIGFCb3Vu
ZHMuc2l6ZS53aWR0aCA9IDEwICsgMTIgKiBzdHJsZW4odGV4dCk7Ci0gICAgICAgIGFCb3VuZHMu
c2l6ZS5oZWlnaHQgPSAyNTsKLSAgICAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4dCwgYUJv
dW5kcyk7Ci0gICAgICAgIAotICAgICAgICBDR0NvbnRleHRTZXRSR0JGaWxsQ29sb3IoY29udGV4
dCwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZik7Ci0KLSAgICAgICAgQ0dDb250ZXh0U2V0VGV4dE1h
dHJpeChjb250ZXh0LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgxLjBmLCAtMS4wZikpOwot
ICAgICAgICBDR0NvbnRleHRTZWxlY3RGb250KGNvbnRleHQsICJIZWx2ZXRpY2EiLCAyNSwga0NH
RW5jb2RpbmdNYWNSb21hbik7Ci0gICAgICAgIENHQ29udGV4dFNob3dUZXh0QXRQb2ludChjb250
ZXh0LCBhQm91bmRzLm9yaWdpbi54ICsgMy4wZiwgYUJvdW5kcy5vcmlnaW4ueSArIDIwLjBmLCB0
ZXh0LCBzdHJsZW4odGV4dCkpOwotICAgICAgICAKLSAgICAgICAgQ0dDb250ZXh0UmVzdG9yZUdT
dGF0ZShjb250ZXh0KTsgICAgICAgIAotICAgIH0KLQotICAgIENHQ29udGV4dFJlc3RvcmVHU3Rh
dGUoY29udGV4dCk7Ci19Ci0KLXZvaWQgV0tDQUNGTGF5ZXI6OmJlY29tZVJvb3RMYXllckZvckNv
bnRleHQoQ0FDRkNvbnRleHRSZWYgY29udGV4dCkKLXsKLSAgICBDQUNGQ29udGV4dFNldExheWVy
KGNvbnRleHQsIGxheWVyKCkpOwotICAgIHNldE5lZWRzQ29tbWl0KCk7Ci19Ci0KLXZvaWQgV0tD
QUNGTGF5ZXI6OnNldE5lZWRzQ29tbWl0KCkKLXsKLSAgICBDQUNGQ29udGV4dFJlZiBjb250ZXh0
ID0gQ0FDRkxheWVyR2V0Q29udGV4dChyb290TGF5ZXIoKS0+bGF5ZXIoKSk7Ci0KLSAgICAvLyBU
aGUgY29udGV4dCBtaWdodCBub3cgYmUgc2V0IHlldC4gVGhpcyBoYXBwZW5zIGlmIGEgcHJvcGVy
dHkgZ2V0cyBzZXQKLSAgICAvLyBiZWZvcmUgcGxhY2luZyB0aGUgbGF5ZXIgaW4gdGhlIHRyZWUu
IEluIHRoaXMgY2FzZSB3ZSBkb24ndCBuZWVkIHRvIAotICAgIC8vIHdvcnJ5IGFib3V0IHJlbWVt
YmVyaW5nIHRoZSBjb250ZXh0IGJlY2F1c2Ugd2Ugd2lsbCB3aGVuIHRoZSBsYXllciBpcwotICAg
IC8vIGFkZGVkIHRvIHRoZSB0cmVlLgotICAgIGlmIChjb250ZXh0KQotICAgICAgICBXS0NBQ0ZD
b250ZXh0Rmx1c2hlcjo6c2hhcmVkKCkuYWRkQ29udGV4dChjb250ZXh0KTsKLQotICAgIC8vIENh
bGwgbm90aWZ5U3luY1JlcXVpcmVkKCksIHdoaWNoIGluIHRoaXMgaW1wbGVtZW50YXRpb24gcGx1
bWJzIHRocm91Z2ggdG8KLSAgICAvLyBjYWxsIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIG9u
IHRoZSBXZWJWaWV3LCB3aGljaCBjYXVzZXMgdGhlIENBQ0ZSZW5kZXJlcgotICAgIC8vIHRvIHJl
bmRlciBhIGZyYW1lLgotICAgIGlmIChtX293bmVyKQotICAgICAgICBtX293bmVyLT5ub3RpZnlT
eW5jUmVxdWlyZWQoKTsKLX0KLQotdm9pZCBXS0NBQ0ZMYXllcjo6YWRkU3VibGF5ZXIoUGFzc1Jl
ZlB0cjxXS0NBQ0ZMYXllcj4gc3VibGF5ZXIpCi17Ci0gICAgaW5zZXJ0U3VibGF5ZXIoc3VibGF5
ZXIsIG51bVN1YmxheWVycygpKTsKLX0KLQotdm9pZCBXS0NBQ0ZMYXllcjo6aW5zZXJ0U3VibGF5
ZXIoUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4gc3VibGF5ZXIsIHNpemVfdCBpbmRleCkKLXsKLSAg
ICBpbmRleCA9IG1pbihpbmRleCwgbnVtU3VibGF5ZXJzKCkpOwotICAgIENBQ0ZMYXllckluc2Vy
dFN1YmxheWVyKGxheWVyKCksIHN1YmxheWVyLT5sYXllcigpLCBpbmRleCk7Ci0gICAgc2V0TmVl
ZHNDb21taXQoKTsKLX0KLQotdm9pZCBXS0NBQ0ZMYXllcjo6aW5zZXJ0U3VibGF5ZXJBYm92ZUxh
eWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IHN1YmxheWVyLCBjb25zdCBXS0NBQ0ZMYXllciog
cmVmZXJlbmNlKQotewotICAgIGlmICghcmVmZXJlbmNlKSB7Ci0gICAgICAgIGluc2VydFN1Ymxh
eWVyKHN1YmxheWVyLCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGludCByZWZl
cmVuY2VJbmRleCA9IGluZGV4T2ZTdWJsYXllcihyZWZlcmVuY2UpOwotICAgIGlmIChyZWZlcmVu
Y2VJbmRleCA9PSAtMSkgewotICAgICAgICBhZGRTdWJsYXllcihzdWJsYXllcik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpbnNlcnRTdWJsYXllcihzdWJsYXllciwgcmVmZXJlbmNl
SW5kZXggKyAxKTsKLX0KLQotdm9pZCBXS0NBQ0ZMYXllcjo6aW5zZXJ0U3VibGF5ZXJCZWxvd0xh
eWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IHN1YmxheWVyLCBjb25zdCBXS0NBQ0ZMYXllciog
cmVmZXJlbmNlKQotewotICAgIGlmICghcmVmZXJlbmNlKSB7Ci0gICAgICAgIGluc2VydFN1Ymxh
eWVyKHN1YmxheWVyLCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGludCByZWZl
cmVuY2VJbmRleCA9IGluZGV4T2ZTdWJsYXllcihyZWZlcmVuY2UpOwotICAgIGlmIChyZWZlcmVu
Y2VJbmRleCA9PSAtMSkgewotICAgICAgICBhZGRTdWJsYXllcihzdWJsYXllcik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpbnNlcnRTdWJsYXllcihzdWJsYXllciwgcmVmZXJlbmNl
SW5kZXgpOwotfQotCi12b2lkIFdLQ0FDRkxheWVyOjpyZXBsYWNlU3VibGF5ZXIoV0tDQUNGTGF5
ZXIqIHJlZmVyZW5jZSwgUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4gbmV3TGF5ZXIpCi17Ci0gICAg
QVNTRVJUX0FSRyhyZWZlcmVuY2UsIHJlZmVyZW5jZSk7Ci0gICAgQVNTRVJUX0FSRyhyZWZlcmVu
Y2UsIHJlZmVyZW5jZS0+c3VwZXJsYXllcigpID09IHRoaXMpOwotCi0gICAgaWYgKHJlZmVyZW5j
ZSA9PSBuZXdMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFuZXdMYXllcikgewot
ICAgICAgICByZW1vdmVTdWJsYXllcihyZWZlcmVuY2UpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgbmV3TGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7Ci0KLSAgICBpbnQgcmVm
ZXJlbmNlSW5kZXggPSBpbmRleE9mU3VibGF5ZXIocmVmZXJlbmNlKTsKLSAgICBBU1NFUlQocmVm
ZXJlbmNlSW5kZXggIT0gLTEpOwotICAgIGlmIChyZWZlcmVuY2VJbmRleCA9PSAtMSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IENhbiB3ZSBtYWtlIHRoaXMgbW9yZSBlZmZpY2ll
bnQ/IFRoZSBjdXJyZW50IENBQ0YgQVBJIGRvZXNuJ3Qgc2VlbSB0byBnaXZlIHVzIGEgd2F5IHRv
IGRvIHNvLgotICAgIHJlZmVyZW5jZS0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKLSAgICBpbnNl
cnRTdWJsYXllcihuZXdMYXllciwgcmVmZXJlbmNlSW5kZXgpOwotfQotCi12b2lkIFdLQ0FDRkxh
eWVyOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCi17Ci0gICAgV0tDQUNGTGF5ZXIqIHN1cGVybGF5
ZXIgPSB0aGlzLT5zdXBlcmxheWVyKCk7Ci0gICAgaWYgKCFzdXBlcmxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBzdXBlcmxheWVyLT5yZW1vdmVTdWJsYXllcih0aGlzKTsKLSAgICBDQUNG
TGF5ZXJSZW1vdmVGcm9tU3VwZXJsYXllcihsYXllcigpKTsKLSAgICBzdXBlcmxheWVyLT5zZXRO
ZWVkc0NvbW1pdCgpOwotfQotCi12b2lkIFdLQ0FDRkxheWVyOjpyZW1vdmVTdWJsYXllcihjb25z
dCBXS0NBQ0ZMYXllciogc3VibGF5ZXIpCi17Ci0gICAgaW50IGZvdW5kSW5kZXggPSBpbmRleE9m
U3VibGF5ZXIoc3VibGF5ZXIpOwotICAgIGlmIChmb3VuZEluZGV4ID09IC0xKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBDQUNGTGF5ZXJSZW1vdmVGcm9tU3VwZXJsYXllcihzdWJsYXllci0+bGF5
ZXIoKSk7Ci0gICAgc2V0TmVlZHNDb21taXQoKTsKLX0KLQotaW50IFdLQ0FDRkxheWVyOjppbmRl
eE9mU3VibGF5ZXIoY29uc3QgV0tDQUNGTGF5ZXIqIHJlZmVyZW5jZSkKLXsKLSAgICBDQUNGTGF5
ZXJSZWYgcmVmID0gcmVmZXJlbmNlLT5sYXllcigpOwotICAgIGlmICghcmVmKQotICAgICAgICBy
ZXR1cm4gLTE7Ci0KLSAgICBDRkFycmF5UmVmIHN1YmxheWVycyA9IENBQ0ZMYXllckdldFN1Ymxh
eWVycyhsYXllcigpKTsKLSAgICBzaXplX3QgbiA9IENGQXJyYXlHZXRDb3VudChzdWJsYXllcnMp
OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpCi0gICAgICAgIGlmIChDRkFy
cmF5R2V0VmFsdWVBdEluZGV4KHN1YmxheWVycywgaSkgPT0gcmVmKQotICAgICAgICAgICAgcmV0
dXJuIGk7Ci0KLSAgICByZXR1cm4gLTE7Ci19Ci0KLVdLQ0FDRkxheWVyKiBXS0NBQ0ZMYXllcjo6
YW5jZXN0b3JPclNlbGZXaXRoU3VwZXJsYXllcihXS0NBQ0ZMYXllciogc3VwZXJsYXllcikgY29u
c3QKLXsKLSAgICBXS0NBQ0ZMYXllciogbGF5ZXIgPSBjb25zdF9jYXN0PFdLQ0FDRkxheWVyKj4o
dGhpcyk7Ci0gICAgZm9yIChXS0NBQ0ZMYXllciogYW5jZXN0b3IgPSB0aGlzLT5zdXBlcmxheWVy
KCk7IGFuY2VzdG9yOyBsYXllciA9IGFuY2VzdG9yLCBhbmNlc3RvciA9IGFuY2VzdG9yLT5zdXBl
cmxheWVyKCkpIHsKLSAgICAgICAgaWYgKGFuY2VzdG9yID09IHN1cGVybGF5ZXIpCi0gICAgICAg
ICAgICByZXR1cm4gbGF5ZXI7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi12b2lkIFdLQ0FD
RkxheWVyOjpzZXRCb3VuZHMoY29uc3QgQ0dSZWN0JiByZWN0KQotewotICAgIGlmIChDR1JlY3RF
cXVhbFRvUmVjdChyZWN0LCBib3VuZHMoKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENBQ0ZM
YXllclNldEJvdW5kcyhsYXllcigpLCByZWN0KTsKLSAgICBzZXROZWVkc0NvbW1pdCgpOwotCi0g
ICAgaWYgKG1fbmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UpCi0gICAgICAgIHNldE5lZWRzRGlz
cGxheSgpOwotfQotCi12b2lkIFdLQ0FDRkxheWVyOjpzZXRGcmFtZShjb25zdCBDR1JlY3QmIHJl
Y3QpCi17Ci0gICAgQ0dSZWN0IG9sZEZyYW1lID0gZnJhbWUoKTsKLSAgICBpZiAoQ0dSZWN0RXF1
YWxUb1JlY3QocmVjdCwgb2xkRnJhbWUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDQUNGTGF5
ZXJTZXRGcmFtZShsYXllcigpLCByZWN0KTsKLSAgICBzZXROZWVkc0NvbW1pdCgpOwotCi0gICAg
aWYgKG1fbmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UpCi0gICAgICAgIHNldE5lZWRzRGlzcGxh
eSgpOwotfQotCi1XS0NBQ0ZMYXllciogV0tDQUNGTGF5ZXI6OnJvb3RMYXllcigpIGNvbnN0Ci17
Ci0gICAgV0tDQUNGTGF5ZXIqIGxheWVyID0gY29uc3RfY2FzdDxXS0NBQ0ZMYXllcio+KHRoaXMp
OwotICAgIGZvciAoV0tDQUNGTGF5ZXIqIHN1cGVybGF5ZXIgPSBsYXllci0+c3VwZXJsYXllcigp
OyBzdXBlcmxheWVyOyBsYXllciA9IHN1cGVybGF5ZXIsIHN1cGVybGF5ZXIgPSBzdXBlcmxheWVy
LT5zdXBlcmxheWVyKCkpIHsgfQotICAgIHJldHVybiBsYXllcjsKLX0KLQotdm9pZCBXS0NBQ0ZM
YXllcjo6cmVtb3ZlQWxsU3VibGF5ZXJzKCkKLXsKLSAgICBDQUNGTGF5ZXJTZXRTdWJsYXllcnMo
bGF5ZXIoKSwgMCk7Ci0gICAgc2V0TmVlZHNDb21taXQoKTsKLX0KLQotdm9pZCBXS0NBQ0ZMYXll
cjo6c2V0U3VibGF5ZXJzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V0tDQUNGTGF5ZXI+ID4mIHN1Ymxh
eWVycykKLXsKLSAgICBpZiAoc3VibGF5ZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgQ0FDRkxheWVy
U2V0U3VibGF5ZXJzKGxheWVyKCksIDApOwotICAgIGVsc2UgewotICAgICAgICAvLyBDcmVhdGUg
YSB2ZWN0b3Igb2YgQ0FDRkxheWVycy4KLSAgICAgICAgVmVjdG9yPGNvbnN0IHZvaWQqPiBsYXll
cnM7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3VibGF5ZXJzLnNpemUoKTsgaSsr
KQotICAgICAgICAgICAgbGF5ZXJzLmFwcGVuZChzdWJsYXllcnNbaV0tPmxheWVyKCkpOwotICAg
IAotICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGF5ZXJzQXJyYXkoQWRvcHRDRiwgQ0ZB
cnJheUNyZWF0ZSgwLCBsYXllcnMuZGF0YSgpLCBsYXllcnMuc2l6ZSgpLCAwKSk7Ci0gICAgICAg
IENBQ0ZMYXllclNldFN1YmxheWVycyhsYXllcigpLCBsYXllcnNBcnJheS5nZXQoKSk7Ci0gICAg
fQotICAgIAotICAgIHNldE5lZWRzQ29tbWl0KCk7Ci19Ci0KLXZvaWQgV0tDQUNGTGF5ZXI6Om1v
dmVTdWJsYXllcnMoV0tDQUNGTGF5ZXIqIGZyb21MYXllciwgV0tDQUNGTGF5ZXIqIHRvTGF5ZXIp
Ci17Ci0gICAgaWYgKCFmcm9tTGF5ZXIgfHwgIXRvTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIENBQ0ZMYXllclNldFN1YmxheWVycyh0b0xheWVyLT5sYXllcigpLCBDQUNGTGF5ZXJHZXRT
dWJsYXllcnMoZnJvbUxheWVyLT5sYXllcigpKSk7Ci0gICAgZnJvbUxheWVyLT5zZXROZWVkc0Nv
bW1pdCgpOwotICAgIHRvTGF5ZXItPnNldE5lZWRzQ29tbWl0KCk7Ci19Ci0KLVdLQ0FDRkxheWVy
KiBXS0NBQ0ZMYXllcjo6c3VwZXJsYXllcigpIGNvbnN0Ci17Ci0gICAgQ0FDRkxheWVyUmVmIHN1
cGVyID0gQ0FDRkxheWVyR2V0U3VwZXJsYXllcihsYXllcigpKTsKLSAgICBpZiAoIXN1cGVyKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gV0tDQUNGTGF5ZXI6OmxheWVyKHN1cGVyKTsK
LX0KLQotdm9pZCBXS0NBQ0ZMYXllcjo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IENHUmVjdCYgZGly
dHlSZWN0KQotewotICAgIGlmIChtX293bmVyKQotICAgICAgICBDQUNGTGF5ZXJTZXROZWVkc0Rp
c3BsYXkobGF5ZXIoKSwgJmRpcnR5UmVjdCk7Ci0gICAgc2V0TmVlZHNDb21taXQoKTsKLX0KLQot
dm9pZCBXS0NBQ0ZMYXllcjo6c2V0TmVlZHNEaXNwbGF5KCkKLXsKLSAgICBpZiAobV9vd25lcikK
LSAgICAgICAgQ0FDRkxheWVyU2V0TmVlZHNEaXNwbGF5KGxheWVyKCksIDApOwotICAgIHNldE5l
ZWRzQ29tbWl0KCk7Ci19Ci0KLQotfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorLyoNCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KKyAqDQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorICogYXJlIG1l
dDoNCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodA0KKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUNCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KKyAqDQorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZDQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUNCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVINCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1INCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwNCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sDQorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SDQorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQ0KKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQ0KKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIA0KKyAqLw0KKw0KKyNpbmNsdWRlICJjb25maWcuaCINCisN
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQ0KKw0KKyNpbmNsdWRlICJXS0NBQ0ZM
YXllci5oIg0KKw0KKyNpbmNsdWRlICJXS0NBQ0ZDb250ZXh0Rmx1c2hlci5oIg0KKw0KKyNpbmNs
dWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZDb250ZXh0Lmg+DQorI2lu
Y2x1ZGUgPFF1YXJ0ekNvcmUvQ0FSZW5kZXIuaD4NCisNCisjcHJhZ21hIGNvbW1lbnQobGliLCAi
ZDNkOSIpDQorI3ByYWdtYSBjb21tZW50KGxpYiwgImQzZHg5IikNCisjcHJhZ21hIGNvbW1lbnQo
bGliLCAiUXVhcnR6Q29yZSIpDQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0KKw0KK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7DQorDQorYm9vbCBXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0F2YWlsYWJsZSgpDQorew0KKyAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGU7DQorICAgIHN0YXRp
YyBib29sIHRlc3RlZDsNCisNCisgICAgaWYgKHRlc3RlZCkNCisgICAgICAgIHJldHVybiBhdmFp
bGFibGU7DQorDQorICAgIHRlc3RlZCA9IHRydWU7DQorICAgIEhNT0RVTEUgbGlicmFyeSA9IExv
YWRMaWJyYXJ5KFRFWFQoImQzZDkuZGxsIikpOw0KKyAgICBpZiAoIWxpYnJhcnkpDQorICAgICAg
ICByZXR1cm4gZmFsc2U7DQorDQorICAgIEZyZWVMaWJyYXJ5KGxpYnJhcnkpOw0KKyAgICBsaWJy
YXJ5ID0gTG9hZExpYnJhcnkoVEVYVCgiUXVhcnR6Q29yZS5kbGwiKSk7DQorICAgIGlmICghbGli
cmFyeSkNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisNCisgICAgRnJlZUxpYnJhcnkobGlicmFy
eSk7DQorICAgIGF2YWlsYWJsZSA9IHRydWU7DQorICAgIHJldHVybiBhdmFpbGFibGU7DQorfQ0K
Kw0KK3N0YXRpYyB2b2lkIGRpc3BsYXlJbkNvbnRleHQoQ0FDRkxheWVyUmVmIGxheWVyLCBDR0Nv
bnRleHRSZWYgY29udGV4dCkNCit7DQorICAgIEFTU0VSVF9BUkcobGF5ZXIsIFdLQ0FDRkxheWVy
OjpsYXllcihsYXllcikpOw0KKyAgICBXS0NBQ0ZMYXllcjo6bGF5ZXIobGF5ZXIpLT5kaXNwbGF5
KGNvbnRleHQpOw0KK30NCisNCisvLyBGSVhNRTogSXQgbWlnaHQgYmUgZ29vZCB0byBoYXZlIGEg
d2F5IG9mIGVuc3VyaW5nIHRoYXQgYWxsIFdLQ0FDRkxheWVycyBldmVudHVhbGx5DQorLy8gZ2V0
IGRlc3Ryb3llZCBpbiBkZWJ1ZyBidWlsZHMuIEEgc3RhdGljIGNvdW50ZXIgY291bGQgYWNjb21w
bGlzaCB0aGlzIHByZXR0eSBlYXNpbHkuDQorDQorV0tDQUNGTGF5ZXI6OldLQ0FDRkxheWVyKENG
U3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKQ0KKyAgICA6IG1f
bGF5ZXIoQWRvcHRDRiwgQ0FDRkxheWVyQ3JlYXRlKGNsYXNzTmFtZSkpDQorICAgICwgbV9uZWVk
c0Rpc3BsYXlPbkJvdW5kc0NoYW5nZShmYWxzZSkNCisgICAgLCBtX293bmVyKG93bmVyKQ0KK3sN
CisgICAgQ0FDRkxheWVyU2V0VXNlckRhdGEobGF5ZXIoKSwgdGhpcyk7DQorICAgIENBQ0ZMYXll
clNldERpc3BsYXlDYWxsYmFjayhsYXllcigpLCBkaXNwbGF5SW5Db250ZXh0KTsNCit9DQorDQor
V0tDQUNGTGF5ZXI6On5XS0NBQ0ZMYXllcigpDQorew0KKyAgICAvLyBPdXIgc3VwZXJsYXllciBz
aG91bGQgYmUgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB1cywgc28gdGhlcmUgc2hvdWxkIGJlIG5v
IHdheSBmb3IgdXMgdG8gYmUgZGVzdHJveWVkIHdoaWxlIHdlIHN0aWxsIGhhdmUgYSBzdXBlcmxh
eWVyLg0KKyAgICBBU1NFUlQoIXN1cGVybGF5ZXIoKSk7DQorDQorICAgIENBQ0ZMYXllclNldFVz
ZXJEYXRhKGxheWVyKCksIDApOw0KKyAgICBDQUNGTGF5ZXJTZXREaXNwbGF5Q2FsbGJhY2sobGF5
ZXIoKSwgMCk7DQorfQ0KKw0KK3ZvaWQgV0tDQUNGTGF5ZXI6OmRpc3BsYXkoUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQqIGNvbnRleHQpDQorew0KKyAgICBpZiAoIW1fb3duZXIpDQorICAgICAgICBy
ZXR1cm47DQorDQorICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7DQorDQorICAgIENH
UmVjdCBsYXllckJvdW5kcyA9IGJvdW5kcygpOw0KKyAgICBpZiAobV9vd25lci0+Y29udGVudHNP
cmllbnRhdGlvbigpID09IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRp
bmF0ZXNUb3BEb3duKSB7DQorICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAxLCAt
MSk7DQorICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgLWxheWVyQm91
bmRzLnNpemUuaGVpZ2h0KTsNCisgICAgfQ0KKw0KKyAgICBpZiAobV9vd25lci0+Y2xpZW50KCkp
IHsNCisgICAgICAgIEdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHQoY29udGV4dCk7DQor
DQorICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBnZXQgdGhlIGNsaXAgZnJvbSB0aGUgY29u
dGV4dCwgYmVjYXVzZSBpdCBtYXkgYmUgc2lnbmlmaWNhbnRseQ0KKyAgICAgICAgLy8gc21hbGxl
ciB0aGFuIHRoZSBsYXllciBib3VuZHMgKGUuZy4gdGlsZWQgbGF5ZXJzKQ0KKyAgICAgICAgQ0dS
ZWN0IGNsaXBCb3VuZHMgPSBDR0NvbnRleHRHZXRDbGlwQm91bmRpbmdCb3goY29udGV4dCk7DQor
ICAgICAgICBJbnRSZWN0IGNsaXAoZW5jbG9zaW5nSW50UmVjdChjbGlwQm91bmRzKSk7DQorICAg
ICAgICBtX293bmVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhncmFwaGljc0NvbnRleHQs
IGNsaXApOw0KKyAgICB9DQorI2lmbmRlZiBOREVCVUcNCisgICAgZWxzZSB7DQorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsNCisNCisgICAgICAgIC8vIEZJWE1FOiBpZGVhbGx5IHdlJ2Qg
YXZvaWQgY2FsbGluZyAtc2V0TmVlZHNEaXNwbGF5IG9uIGEgbGF5ZXIgdGhhdCBpcyBhIHBsYWlu
IGNvbG9yLA0KKyAgICAgICAgLy8gc28gQ0EgbmV2ZXIgbWFrZXMgYmFja2luZyBzdG9yZSBmb3Ig
aXQgKHdoaWNoIGlzIHdoYXQgLXNldE5lZWRzRGlzcGxheSB3aWxsIGRvIGFib3ZlKS4NCisgICAg
ICAgIENHQ29udGV4dFNldFJHQkZpbGxDb2xvcihjb250ZXh0LCAwLjBmLCAxLjBmLCAwLjBmLCAx
LjBmKTsNCisgICAgICAgIENHQ29udGV4dEZpbGxSZWN0KGNvbnRleHQsIGxheWVyQm91bmRzKTsN
CisgICAgfQ0KKyNlbmRpZg0KKw0KKyAgICBpZiAobV9vd25lci0+c2hvd1JlcGFpbnRDb3VudGVy
KCkpIHsNCisgICAgICAgIGNoYXIgdGV4dFsxNl07IC8vIHRoYXQncyBhIGxvdCBvZiByZXBhaW50
cw0KKyAgICAgICAgX3NucHJpbnRmKHRleHQsIHNpemVvZih0ZXh0KSwgIiVkIiwgbV9vd25lci0+
aW5jcmVtZW50UmVwYWludENvdW50KCkpOw0KKw0KKyAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0
ZShjb250ZXh0KTsNCisgICAgICAgIENHQ29udGV4dFNldFJHQkZpbGxDb2xvcihjb250ZXh0LCAx
LjBmLCAwLjBmLCAwLjBmLCAwLjhmKTsNCisgICAgICAgIA0KKyAgICAgICAgQ0dSZWN0IGFCb3Vu
ZHMgPSBsYXllckJvdW5kczsNCisNCisgICAgICAgIGFCb3VuZHMuc2l6ZS53aWR0aCA9IDEwICsg
MTIgKiBzdHJsZW4odGV4dCk7DQorICAgICAgICBhQm91bmRzLnNpemUuaGVpZ2h0ID0gMjU7DQor
ICAgICAgICBDR0NvbnRleHRGaWxsUmVjdChjb250ZXh0LCBhQm91bmRzKTsNCisgICAgICAgIA0K
KyAgICAgICAgQ0dDb250ZXh0U2V0UkdCRmlsbENvbG9yKGNvbnRleHQsIDAuMGYsIDAuMGYsIDAu
MGYsIDEuMGYpOw0KKw0KKyAgICAgICAgQ0dDb250ZXh0U2V0VGV4dE1hdHJpeChjb250ZXh0LCBD
R0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgxLjBmLCAtMS4wZikpOw0KKyAgICAgICAgQ0dDb250
ZXh0U2VsZWN0Rm9udChjb250ZXh0LCAiSGVsdmV0aWNhIiwgMjUsIGtDR0VuY29kaW5nTWFjUm9t
YW4pOw0KKyAgICAgICAgQ0dDb250ZXh0U2hvd1RleHRBdFBvaW50KGNvbnRleHQsIGFCb3VuZHMu
b3JpZ2luLnggKyAzLjBmLCBhQm91bmRzLm9yaWdpbi55ICsgMjAuMGYsIHRleHQsIHN0cmxlbih0
ZXh0KSk7DQorICAgICAgICANCisgICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4
dCk7ICAgICAgICANCisgICAgfQ0KKw0KKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRl
eHQpOw0KK30NCisNCit2b2lkIFdLQ0FDRkxheWVyOjpiZWNvbWVSb290TGF5ZXJGb3JDb250ZXh0
KENBQ0ZDb250ZXh0UmVmIGNvbnRleHQpDQorew0KKyAgICBDQUNGQ29udGV4dFNldExheWVyKGNv
bnRleHQsIGxheWVyKCkpOw0KKyAgICBzZXROZWVkc0NvbW1pdCgpOw0KK30NCisNCit2b2lkIFdL
Q0FDRkxheWVyOjpzZXROZWVkc0NvbW1pdCgpDQorew0KKyAgICBDQUNGQ29udGV4dFJlZiBjb250
ZXh0ID0gQ0FDRkxheWVyR2V0Q29udGV4dChyb290TGF5ZXIoKS0+bGF5ZXIoKSk7DQorDQorICAg
IC8vIFRoZSBjb250ZXh0IG1pZ2h0IG5vdyBiZSBzZXQgeWV0LiBUaGlzIGhhcHBlbnMgaWYgYSBw
cm9wZXJ0eSBnZXRzIHNldA0KKyAgICAvLyBiZWZvcmUgcGxhY2luZyB0aGUgbGF5ZXIgaW4gdGhl
IHRyZWUuIEluIHRoaXMgY2FzZSB3ZSBkb24ndCBuZWVkIHRvIA0KKyAgICAvLyB3b3JyeSBhYm91
dCByZW1lbWJlcmluZyB0aGUgY29udGV4dCBiZWNhdXNlIHdlIHdpbGwgd2hlbiB0aGUgbGF5ZXIg
aXMNCisgICAgLy8gYWRkZWQgdG8gdGhlIHRyZWUuDQorICAgIGlmIChjb250ZXh0KQ0KKyAgICAg
ICAgV0tDQUNGQ29udGV4dEZsdXNoZXI6OnNoYXJlZCgpLmFkZENvbnRleHQoY29udGV4dCk7DQor
DQorICAgIC8vIENhbGwgbm90aWZ5U3luY1JlcXVpcmVkKCksIHdoaWNoIGluIHRoaXMgaW1wbGVt
ZW50YXRpb24gcGx1bWJzIHRocm91Z2ggdG8NCisgICAgLy8gY2FsbCBzZXRSb290TGF5ZXJOZWVk
c0Rpc3BsYXkoKSBvbiB0aGUgV2ViVmlldywgd2hpY2ggY2F1c2VzIHRoZSBDQUNGUmVuZGVyZXIN
CisgICAgLy8gdG8gcmVuZGVyIGEgZnJhbWUuDQorICAgIGlmIChtX293bmVyKQ0KKyAgICAgICAg
bV9vd25lci0+bm90aWZ5U3luY1JlcXVpcmVkKCk7DQorfQ0KKw0KK3ZvaWQgV0tDQUNGTGF5ZXI6
OmFkZFN1YmxheWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+IHN1YmxheWVyKQ0KK3sNCisgICAg
aW5zZXJ0U3VibGF5ZXIoc3VibGF5ZXIsIG51bVN1YmxheWVycygpKTsNCit9DQorDQordm9pZCBX
S0NBQ0ZMYXllcjo6aW5zZXJ0U3VibGF5ZXIoUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4gc3VibGF5
ZXIsIHNpemVfdCBpbmRleCkNCit7DQorICAgIGluZGV4ID0gbWluKGluZGV4LCBudW1TdWJsYXll
cnMoKSk7DQorICAgIENBQ0ZMYXllckluc2VydFN1YmxheWVyKGxheWVyKCksIHN1YmxheWVyLT5s
YXllcigpLCBpbmRleCk7DQorICAgIHNldE5lZWRzQ29tbWl0KCk7DQorfQ0KKw0KK3ZvaWQgV0tD
QUNGTGF5ZXI6Omluc2VydFN1YmxheWVyQWJvdmVMYXllcihQYXNzUmVmUHRyPFdLQ0FDRkxheWVy
PiBzdWJsYXllciwgY29uc3QgV0tDQUNGTGF5ZXIqIHJlZmVyZW5jZSkNCit7DQorICAgIGlmICgh
cmVmZXJlbmNlKSB7DQorICAgICAgICBpbnNlcnRTdWJsYXllcihzdWJsYXllciwgMCk7DQorICAg
ICAgICByZXR1cm47DQorICAgIH0NCisNCisgICAgaW50IHJlZmVyZW5jZUluZGV4ID0gaW5kZXhP
ZlN1YmxheWVyKHJlZmVyZW5jZSk7DQorICAgIGlmIChyZWZlcmVuY2VJbmRleCA9PSAtMSkgew0K
KyAgICAgICAgYWRkU3VibGF5ZXIoc3VibGF5ZXIpOw0KKyAgICAgICAgcmV0dXJuOw0KKyAgICB9
DQorDQorICAgIGluc2VydFN1YmxheWVyKHN1YmxheWVyLCByZWZlcmVuY2VJbmRleCArIDEpOw0K
K30NCisNCit2b2lkIFdLQ0FDRkxheWVyOjppbnNlcnRTdWJsYXllckJlbG93TGF5ZXIoUGFzc1Jl
ZlB0cjxXS0NBQ0ZMYXllcj4gc3VibGF5ZXIsIGNvbnN0IFdLQ0FDRkxheWVyKiByZWZlcmVuY2Up
DQorew0KKyAgICBpZiAoIXJlZmVyZW5jZSkgew0KKyAgICAgICAgaW5zZXJ0U3VibGF5ZXIoc3Vi
bGF5ZXIsIDApOw0KKyAgICAgICAgcmV0dXJuOw0KKyAgICB9DQorDQorICAgIGludCByZWZlcmVu
Y2VJbmRleCA9IGluZGV4T2ZTdWJsYXllcihyZWZlcmVuY2UpOw0KKyAgICBpZiAocmVmZXJlbmNl
SW5kZXggPT0gLTEpIHsNCisgICAgICAgIGFkZFN1YmxheWVyKHN1YmxheWVyKTsNCisgICAgICAg
IHJldHVybjsNCisgICAgfQ0KKw0KKyAgICBpbnNlcnRTdWJsYXllcihzdWJsYXllciwgcmVmZXJl
bmNlSW5kZXgpOw0KK30NCisNCit2b2lkIFdLQ0FDRkxheWVyOjpyZXBsYWNlU3VibGF5ZXIoV0tD
QUNGTGF5ZXIqIHJlZmVyZW5jZSwgUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4gbmV3TGF5ZXIpDQor
ew0KKyAgICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlKTsNCisgICAgQVNTRVJUX0FS
RyhyZWZlcmVuY2UsIHJlZmVyZW5jZS0+c3VwZXJsYXllcigpID09IHRoaXMpOw0KKw0KKyAgICBp
ZiAocmVmZXJlbmNlID09IG5ld0xheWVyKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBpZiAo
IW5ld0xheWVyKSB7DQorICAgICAgICByZW1vdmVTdWJsYXllcihyZWZlcmVuY2UpOw0KKyAgICAg
ICAgcmV0dXJuOw0KKyAgICB9DQorDQorICAgIG5ld0xheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXll
cigpOw0KKw0KKyAgICBpbnQgcmVmZXJlbmNlSW5kZXggPSBpbmRleE9mU3VibGF5ZXIocmVmZXJl
bmNlKTsNCisgICAgQVNTRVJUKHJlZmVyZW5jZUluZGV4ICE9IC0xKTsNCisgICAgaWYgKHJlZmVy
ZW5jZUluZGV4ID09IC0xKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICAvLyBGSVhNRTogQ2Fu
IHdlIG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudD8gVGhlIGN1cnJlbnQgQ0FDRiBBUEkgZG9lc24n
dCBzZWVtIHRvIGdpdmUgdXMgYSB3YXkgdG8gZG8gc28uDQorICAgIHJlZmVyZW5jZS0+cmVtb3Zl
RnJvbVN1cGVybGF5ZXIoKTsNCisgICAgaW5zZXJ0U3VibGF5ZXIobmV3TGF5ZXIsIHJlZmVyZW5j
ZUluZGV4KTsNCit9DQorDQordm9pZCBXS0NBQ0ZMYXllcjo6cmVtb3ZlRnJvbVN1cGVybGF5ZXIo
KQ0KK3sNCisgICAgV0tDQUNGTGF5ZXIqIHN1cGVybGF5ZXIgPSB0aGlzLT5zdXBlcmxheWVyKCk7
DQorICAgIGlmICghc3VwZXJsYXllcikNCisgICAgICAgIHJldHVybjsNCisNCisgICAgc3VwZXJs
YXllci0+cmVtb3ZlU3VibGF5ZXIodGhpcyk7DQorICAgIENBQ0ZMYXllclJlbW92ZUZyb21TdXBl
cmxheWVyKGxheWVyKCkpOw0KKyAgICBzdXBlcmxheWVyLT5zZXROZWVkc0NvbW1pdCgpOw0KK30N
CisNCit2b2lkIFdLQ0FDRkxheWVyOjpyZW1vdmVTdWJsYXllcihjb25zdCBXS0NBQ0ZMYXllciog
c3VibGF5ZXIpDQorew0KKyAgICBpbnQgZm91bmRJbmRleCA9IGluZGV4T2ZTdWJsYXllcihzdWJs
YXllcik7DQorICAgIGlmIChmb3VuZEluZGV4ID09IC0xKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0K
KyAgICBDQUNGTGF5ZXJSZW1vdmVGcm9tU3VwZXJsYXllcihzdWJsYXllci0+bGF5ZXIoKSk7DQor
ICAgIHNldE5lZWRzQ29tbWl0KCk7DQorfQ0KKw0KK2ludCBXS0NBQ0ZMYXllcjo6aW5kZXhPZlN1
YmxheWVyKGNvbnN0IFdLQ0FDRkxheWVyKiByZWZlcmVuY2UpDQorew0KKyAgICBDQUNGTGF5ZXJS
ZWYgcmVmID0gcmVmZXJlbmNlLT5sYXllcigpOw0KKyAgICBpZiAoIXJlZikNCisgICAgICAgIHJl
dHVybiAtMTsNCisNCisgICAgQ0ZBcnJheVJlZiBzdWJsYXllcnMgPSBDQUNGTGF5ZXJHZXRTdWJs
YXllcnMobGF5ZXIoKSk7DQorICAgIHNpemVfdCBuID0gQ0ZBcnJheUdldENvdW50KHN1YmxheWVy
cyk7DQorDQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICAgICAgaWYg
KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoc3VibGF5ZXJzLCBpKSA9PSByZWYpDQorICAgICAgICAg
ICAgcmV0dXJuIGk7DQorDQorICAgIHJldHVybiAtMTsNCit9DQorDQorV0tDQUNGTGF5ZXIqIFdL
Q0FDRkxheWVyOjphbmNlc3Rvck9yU2VsZldpdGhTdXBlcmxheWVyKFdLQ0FDRkxheWVyKiBzdXBl
cmxheWVyKSBjb25zdA0KK3sNCisgICAgV0tDQUNGTGF5ZXIqIGxheWVyID0gY29uc3RfY2FzdDxX
S0NBQ0ZMYXllcio+KHRoaXMpOw0KKyAgICBmb3IgKFdLQ0FDRkxheWVyKiBhbmNlc3RvciA9IHRo
aXMtPnN1cGVybGF5ZXIoKTsgYW5jZXN0b3I7IGxheWVyID0gYW5jZXN0b3IsIGFuY2VzdG9yID0g
YW5jZXN0b3ItPnN1cGVybGF5ZXIoKSkgew0KKyAgICAgICAgaWYgKGFuY2VzdG9yID09IHN1cGVy
bGF5ZXIpDQorICAgICAgICAgICAgcmV0dXJuIGxheWVyOw0KKyAgICB9DQorICAgIHJldHVybiAw
Ow0KK30NCisNCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRCb3VuZHMoY29uc3QgQ0dSZWN0JiByZWN0
KQ0KK3sNCisgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KHJlY3QsIGJvdW5kcygpKSkNCisgICAg
ICAgIHJldHVybjsNCisNCisgICAgQ0FDRkxheWVyU2V0Qm91bmRzKGxheWVyKCksIHJlY3QpOw0K
KyAgICBzZXROZWVkc0NvbW1pdCgpOw0KKw0KKyAgICBpZiAobV9uZWVkc0Rpc3BsYXlPbkJvdW5k
c0NoYW5nZSkNCisgICAgICAgIHNldE5lZWRzRGlzcGxheSgpOw0KK30NCisNCit2b2lkIFdLQ0FD
RkxheWVyOjpzZXRGcmFtZShjb25zdCBDR1JlY3QmIHJlY3QpDQorew0KKyAgICBDR1JlY3Qgb2xk
RnJhbWUgPSBmcmFtZSgpOw0KKyAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3QocmVjdCwgb2xkRnJh
bWUpKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBDQUNGTGF5ZXJTZXRGcmFtZShsYXllcigp
LCByZWN0KTsNCisgICAgc2V0TmVlZHNDb21taXQoKTsNCisNCisgICAgaWYgKG1fbmVlZHNEaXNw
bGF5T25Cb3VuZHNDaGFuZ2UpDQorICAgICAgICBzZXROZWVkc0Rpc3BsYXkoKTsNCit9DQorDQor
V0tDQUNGTGF5ZXIqIFdLQ0FDRkxheWVyOjpyb290TGF5ZXIoKSBjb25zdA0KK3sNCisgICAgV0tD
QUNGTGF5ZXIqIGxheWVyID0gY29uc3RfY2FzdDxXS0NBQ0ZMYXllcio+KHRoaXMpOw0KKyAgICBm
b3IgKFdLQ0FDRkxheWVyKiBzdXBlcmxheWVyID0gbGF5ZXItPnN1cGVybGF5ZXIoKTsgc3VwZXJs
YXllcjsgbGF5ZXIgPSBzdXBlcmxheWVyLCBzdXBlcmxheWVyID0gc3VwZXJsYXllci0+c3VwZXJs
YXllcigpKSB7IH0NCisgICAgcmV0dXJuIGxheWVyOw0KK30NCisNCit2b2lkIFdLQ0FDRkxheWVy
OjpyZW1vdmVBbGxTdWJsYXllcnMoKQ0KK3sNCisgICAgQ0FDRkxheWVyU2V0U3VibGF5ZXJzKGxh
eWVyKCksIDApOw0KKyAgICBzZXROZWVkc0NvbW1pdCgpOw0KK30NCisNCit2b2lkIFdLQ0FDRkxh
eWVyOjpzZXRTdWJsYXllcnMoY29uc3QgVmVjdG9yPFJlZlB0cjxXS0NBQ0ZMYXllcj4gPiYgc3Vi
bGF5ZXJzKQ0KK3sNCisgICAgaWYgKHN1YmxheWVycy5pc0VtcHR5KCkpDQorICAgICAgICBDQUNG
TGF5ZXJTZXRTdWJsYXllcnMobGF5ZXIoKSwgMCk7DQorICAgIGVsc2Ugew0KKyAgICAgICAgLy8g
Q3JlYXRlIGEgdmVjdG9yIG9mIENBQ0ZMYXllcnMuDQorICAgICAgICBWZWN0b3I8Y29uc3Qgdm9p
ZCo+IGxheWVyczsNCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3VibGF5ZXJzLnNp
emUoKTsgaSsrKQ0KKyAgICAgICAgICAgIGxheWVycy5hcHBlbmQoc3VibGF5ZXJzW2ldLT5sYXll
cigpKTsNCisgICAgDQorICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGF5ZXJzQXJyYXko
QWRvcHRDRiwgQ0ZBcnJheUNyZWF0ZSgwLCBsYXllcnMuZGF0YSgpLCBsYXllcnMuc2l6ZSgpLCAw
KSk7DQorICAgICAgICBDQUNGTGF5ZXJTZXRTdWJsYXllcnMobGF5ZXIoKSwgbGF5ZXJzQXJyYXku
Z2V0KCkpOw0KKyAgICB9DQorICAgIA0KKyAgICBzZXROZWVkc0NvbW1pdCgpOw0KK30NCisNCit2
b2lkIFdLQ0FDRkxheWVyOjptb3ZlU3VibGF5ZXJzKFdLQ0FDRkxheWVyKiBmcm9tTGF5ZXIsIFdL
Q0FDRkxheWVyKiB0b0xheWVyKQ0KK3sNCisgICAgaWYgKCFmcm9tTGF5ZXIgfHwgIXRvTGF5ZXIp
DQorICAgICAgICByZXR1cm47DQorDQorICAgIENBQ0ZMYXllclNldFN1YmxheWVycyh0b0xheWVy
LT5sYXllcigpLCBDQUNGTGF5ZXJHZXRTdWJsYXllcnMoZnJvbUxheWVyLT5sYXllcigpKSk7DQor
ICAgIGZyb21MYXllci0+c2V0TmVlZHNDb21taXQoKTsNCisgICAgdG9MYXllci0+c2V0TmVlZHND
b21taXQoKTsNCit9DQorDQorV0tDQUNGTGF5ZXIqIFdLQ0FDRkxheWVyOjpzdXBlcmxheWVyKCkg
Y29uc3QNCit7DQorICAgIENBQ0ZMYXllclJlZiBzdXBlciA9IENBQ0ZMYXllckdldFN1cGVybGF5
ZXIobGF5ZXIoKSk7DQorICAgIGlmICghc3VwZXIpDQorICAgICAgICByZXR1cm4gMDsNCisgICAg
cmV0dXJuIFdLQ0FDRkxheWVyOjpsYXllcihzdXBlcik7DQorfQ0KKw0KK3ZvaWQgV0tDQUNGTGF5
ZXI6OnNldE5lZWRzRGlzcGxheShjb25zdCBDR1JlY3QmIGRpcnR5UmVjdCkNCit7DQorICAgIGlm
IChtX293bmVyKQ0KKyAgICAgICAgQ0FDRkxheWVyU2V0TmVlZHNEaXNwbGF5KGxheWVyKCksICZk
aXJ0eVJlY3QpOw0KKyAgICBzZXROZWVkc0NvbW1pdCgpOw0KK30NCisNCit2b2lkIFdLQ0FDRkxh
eWVyOjpzZXROZWVkc0Rpc3BsYXkoKQ0KK3sNCisgICAgaWYgKG1fb3duZXIpDQorICAgICAgICBD
QUNGTGF5ZXJTZXROZWVkc0Rpc3BsYXkobGF5ZXIoKSwgMCk7DQorICAgIHNldE5lZWRzQ29tbWl0
KCk7DQorfQ0KKw0KKw0KK30NCisNCisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQ0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIu
aAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
Q0ZMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw4IEBAIGNsYXNzIFdLQ0FDRlRp
bWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBXS0NBQ0ZMYXllciA6IHB1YmxpYyBSZWZDb3VudGVkPFdL
Q0FDRkxheWVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V0tDQUNGTGF5ZXI+
IGNyZWF0ZShDRlN0cmluZ1JlZiBjbGFzc05hbWUsIEdyYXBoaWNzTGF5ZXJDQUNGKiBvd25lcj0w
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgV0tDQUNGTGF5ZXIoY2xhc3NOYW1lLCBvd25lcikpOyB9
CisgICAgc3RhdGljIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdLQ0FDRkxheWVyPiBjcmVhdGUoQ0ZTdHJpbmdSZWYgY2xhc3NO
YW1lLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXIgPSAwKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
V0tDQUNGTGF5ZXIoY2xhc3NOYW1lLCBvd25lcikpOyB9CiAgICAgc3RhdGljIFdLQ0FDRkxheWVy
KiBsYXllcihDQUNGTGF5ZXJSZWYgbGF5ZXIpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFdLQ0FDRkxh
eWVyKj4oQ0FDRkxheWVyR2V0VXNlckRhdGEobGF5ZXIpKTsgfQogCiAgICAgfldLQ0FDRkxheWVy
KCk7CkBAIC02MiwxMCArNjMsMjIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZU
eXBlUmVmPiBjZlZhbHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKICAgICB7
CiAgICAgICAgIENBVHJhbnNmb3JtM0QgdDsKLSAgICAgICAgdC5tMTEgPSB2YWx1ZS5tMTEoKTsg
dC5tMTIgPSB2YWx1ZS5tMTIoKTsgdC5tMTMgPSB2YWx1ZS5tMTMoKTsgdC5tMTQgPSB2YWx1ZS5t
MTQoKTsgCi0gICAgICAgIHQubTIxID0gdmFsdWUubTIxKCk7IHQubTIyID0gdmFsdWUubTIyKCk7
IHQubTIzID0gdmFsdWUubTIzKCk7IHQubTI0ID0gdmFsdWUubTI0KCk7IAotICAgICAgICB0Lm0z
MSA9IHZhbHVlLm0zMSgpOyB0Lm0zMiA9IHZhbHVlLm0zMigpOyB0Lm0zMyA9IHZhbHVlLm0zMygp
OyB0Lm0zNCA9IHZhbHVlLm0zNCgpOyAKLSAgICAgICAgdC5tNDEgPSB2YWx1ZS5tNDEoKTsgdC5t
NDIgPSB2YWx1ZS5tNDIoKTsgdC5tNDMgPSB2YWx1ZS5tNDMoKTsgdC5tNDQgPSB2YWx1ZS5tNDQo
KTsgCisgICAgICAgIHQubTExID0gdmFsdWUubTExKCk7CisgICAgICAgIHQubTEyID0gdmFsdWUu
bTEyKCk7CisgICAgICAgIHQubTEzID0gdmFsdWUubTEzKCk7CisgICAgICAgIHQubTE0ID0gdmFs
dWUubTE0KCk7IAorICAgICAgICB0Lm0yMSA9IHZhbHVlLm0yMSgpOworICAgICAgICB0Lm0yMiA9
IHZhbHVlLm0yMigpOworICAgICAgICB0Lm0yMyA9IHZhbHVlLm0yMygpOworICAgICAgICB0Lm0y
NCA9IHZhbHVlLm0yNCgpOyAKKyAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEoKTsKKyAgICAgICAg
dC5tMzIgPSB2YWx1ZS5tMzIoKTsKKyAgICAgICAgdC5tMzMgPSB2YWx1ZS5tMzMoKTsKKyAgICAg
ICAgdC5tMzQgPSB2YWx1ZS5tMzQoKTsgCisgICAgICAgIHQubTQxID0gdmFsdWUubTQxKCk7Cisg
ICAgICAgIHQubTQyID0gdmFsdWUubTQyKCk7CisgICAgICAgIHQubTQzID0gdmFsdWUubTQzKCk7
CisgICAgICAgIHQubTQ0ID0gdmFsdWUubTQ0KCk7IAogICAgICAgICByZXR1cm4gUmV0YWluUHRy
PENGVHlwZVJlZj4oQWRvcHRDRiwgQ0FDRlZlY3RvckNyZWF0ZVRyYW5zZm9ybSh0KSk7CiAgICAg
fQogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBjZlZhbHVlKGNvbnN0IEZsb2F0UG9p
bnQmIHZhbHVlKQpAQCAtNzcsOCArOTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZXRhaW5Q
dHI8Q0ZUeXBlUmVmPiBjZlZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICB7CiAgICAg
ICAgIENHUmVjdCByOwotICAgICAgICByLm9yaWdpbi54ID0gcmVjdC54KCk7IHIub3JpZ2luLnkg
PSByZWN0LnkoKTsKLSAgICAgICAgci5zaXplLndpZHRoID0gcmVjdC53aWR0aCgpOyByLnNpemUu
aGVpZ2h0ID0gcmVjdC5oZWlnaHQoKTsKKyAgICAgICAgci5vcmlnaW4ueCA9IHJlY3QueCgpOwor
ICAgICAgICByLm9yaWdpbi55ID0gcmVjdC55KCk7CisgICAgICAgIHIuc2l6ZS53aWR0aCA9IHJl
Y3Qud2lkdGgoKTsKKyAgICAgICAgci5zaXplLmhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAg
ICAgIENHRmxvYXQgdls0XSA9IHsgQ0dSZWN0R2V0TWluWChyKSwgQ0dSZWN0R2V0TWluWShyKSwg
Q0dSZWN0R2V0TWF4WChyKSwgQ0dSZWN0R2V0TWF4WShyKSB9OwogICAgICAgICByZXR1cm4gUmV0
YWluUHRyPENGVHlwZVJlZj4oQWRvcHRDRiwgQ0FDRlZlY3RvckNyZWF0ZSg0LCB2KSk7CiAgICAg
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNG
TGF5ZXJSZW5kZXJlci5jcHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1
LDYgKzk1LDEzIEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6ZGlkRmx1c2hDb250ZXgKICAg
ICB3aW5kb3ctPnJlbmRlclNvb24oKTsKIH0KIAorV0tDQUNGTGF5ZXJSZW5kZXJlciogV0tDQUNG
TGF5ZXJSZW5kZXJlcjo6Y3JlYXRlKCkKK3sKKyAgICBpZiAoIVdLQ0FDRkxheWVyOjphY2NlbGVy
YXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBuZXcgV0tDQUNGTGF5ZXJSZW5kZXJlcjsKK30KKwogV0tDQUNGTGF5ZXJSZW5kZXJlcjo6V0tD
QUNGTGF5ZXJSZW5kZXJlcigpCiAgICAgOiBtX3RyaWVkVG9DcmVhdGVEM0RSZW5kZXJlcihmYWxz
ZSkKICAgICAsIG1fcmVuZGVyQ29udGV4dCgwKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaAkocmV2aXNpb24gNTE2MDAp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8g
KGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg1NSkKIGNsYXNzIFdL
Q0FDRkxheWVyUmVuZGVyZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIFdL
Q0FDRkxheWVyUmVuZGVyZXIoKTsKKyAgICBzdGF0aWMgV0tDQUNGTGF5ZXJSZW5kZXJlciogY3Jl
YXRlKCk7CiAgICAgfldLQ0FDRkxheWVyUmVuZGVyZXIoKTsKIAogICAgIHN0YXRpYyB2b2lkIGRp
ZEZsdXNoQ29udGV4dChDQUNGQ29udGV4dFJlZik7CkBAIC03Miw2ICs3Miw4IEBAIHByb3RlY3Rl
ZDoKICAgICBXS0NBQ0ZMYXllciogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5
ZXIuZ2V0KCk7IH0KIAogcHJpdmF0ZToKKyAgICBXS0NBQ0ZMYXllclJlbmRlcmVyKCk7CisKICAg
ICB2b2lkIHJlbmRlclRpbWVyRmlyZWQoVGltZXI8V0tDQUNGTGF5ZXJSZW5kZXJlcj4qKTsKIAog
ICAgIENHUmVjdCBib3VuZHMoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29u
dHJvbGxlci5oIgorI2lmIEVOQUJMRSgzRF9DQU5WQVMpICAgIAogI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgog
I2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKSW5k
ZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdl
TG9nCShyZXZpc2lvbiA1MTYxOCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMTItMDIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICBEZWxheSBsb2FkIERMTHMgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg1NgorICAgICAgICAK
KyAgICAgICAgQWRkIGxvZ2ljIHRvIHR1cm4gb2ZmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlm
IGQzZDkgb3IgUXVhcnR6Q29yZQorICAgICAgICBETExzIGFyZSBub3QgcHJlc2VudC4KKworICAg
ICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6CisgICAgICAg
IChXZWJWaWV3Ojp+V2ViVmlldyk6CisgICAgICAgIChXZWJWaWV3OjpyZWdpc3RlcldlYlZpZXdX
aW5kb3dDbGFzcyk6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3V25kUHJvYyk6CisgICAgICAg
IChXZWJWaWV3Ojp3bmRQcm9jKToKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2Vz
Q2hhbmdlZCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRSb290Q2hpbGRMYXllcik6CisgICAgICAg
IChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKyAgICAgICAgKFdlYlZpZXc6
OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisgICAgICAg
IChXZWJWaWV3OjpzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViVmlldzo6
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKyAgICAgICAgKFdlYlZpZXc6OnJlc2l6ZUxheWVy
UmVuZGVyZXIpOgorICAgICAgICAoV2ViVmlldzo6bGF5ZXJSZW5kZXJlckJlY2FtZVZpc2libGUp
OgorCiAyMDA5LTEyLTAyICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAog
ICAgICAgICBNb3ZlIHNldFZhbHVlRm9yVXNlciB0byB0aGUgZW5kIG9mIHRoZSBET01IVE1MSW5w
dXRFbGVtZW50IGludGVyZmFjZQpJbmRleDogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYktp
dC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MSw3ICsyNzEsNiBAQCBzdGF0
aWMgY29uc3QgaW50IG1heFRvb2xUaXBXaWR0aCA9IDI1MDsKIHN0YXRpYyBjb25zdCBpbnQgZGVs
YXlCZWZvcmVEZWxldGluZ0JhY2tpbmdTdG9yZU1zZWMgPSA1MDAwOwogCiBzdGF0aWMgQVRPTSBy
ZWdpc3RlcldlYlZpZXcoKTsKLXN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9j
KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsK
IAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN0YXRpY09ic2VydmVycygpOwogCkBAIC0yOTUsMzYg
KzI5NCwzNyBAQCBlbnVtIHsKIGJvb2wgV2ViVmlldzo6c19hbGxvd1NpdGVTcGVjaWZpY0hhY2tz
ID0gZmFsc2U7CiAKIFdlYlZpZXc6OldlYlZpZXcoKQotOiBtX3JlZkNvdW50KDApCi0sIG1faG9z
dFdpbmRvdygwKQotLCBtX3ZpZXdXaW5kb3coMCkKLSwgbV9tYWluRnJhbWUoMCkKLSwgbV9wYWdl
KDApCi0sIG1faGFzQ3VzdG9tRHJvcFRhcmdldChmYWxzZSkKLSwgbV91c2VCYWNrRm9yd2FyZExp
c3QodHJ1ZSkKLSwgbV91c2VyQWdlbnRPdmVycmlkZGVuKGZhbHNlKQotLCBtX3pvb21NdWx0aXBs
aWVyKDEuMGYpCi0sIG1fbW91c2VBY3RpdmF0ZWQoZmFsc2UpCi0sIG1fZHJhZ0RhdGEoMCkKLSwg
bV9jdXJyZW50Q2hhcmFjdGVyQ29kZSgwKQotLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCi0s
IG1fcGFpbnRDb3VudCgwKQotLCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnKGZhbHNlKQot
LCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKLSwgbV9kaWRDbG9zZShmYWxzZSkK
LSwgbV9pbklNRUNvbXBvc2l0aW9uKDApCi0sIG1fdG9vbFRpcEh3bmQoMCkKLSwgbV9jbG9zZVdp
bmRvd1RpbWVyKHRoaXMsICZXZWJWaWV3OjpjbG9zZVdpbmRvd1RpbWVyRmlyZWQpCi0sIG1fdG9w
TGV2ZWxQYXJlbnQoMCkKLSwgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2ZShmYWxzZSkK
LSwgbV90cmFuc3BhcmVudChmYWxzZSkKLSwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKQotLCBtX2xhc3RQYW5YKDApCi0sIG1fbGFzdFBhblkoMCkKLSwgbV94T3ZlcnBh
bigwKQotLCBtX3lPdmVycGFuKDApCisgICAgOiBtX3JlZkNvdW50KDApCisgICAgLCBtX2hvc3RX
aW5kb3coMCkKKyAgICAsIG1fdmlld1dpbmRvdygwKQorICAgICwgbV9tYWluRnJhbWUoMCkKKyAg
ICAsIG1fcGFnZSgwKQorICAgICwgbV9oYXNDdXN0b21Ecm9wVGFyZ2V0KGZhbHNlKQorICAgICwg
bV91c2VCYWNrRm9yd2FyZExpc3QodHJ1ZSkKKyAgICAsIG1fdXNlckFnZW50T3ZlcnJpZGRlbihm
YWxzZSkKKyAgICAsIG1fem9vbU11bHRpcGxpZXIoMS4wZikKKyAgICAsIG1fbW91c2VBY3RpdmF0
ZWQoZmFsc2UpCisgICAgLCBtX2RyYWdEYXRhKDApCisgICAgLCBtX2N1cnJlbnRDaGFyYWN0ZXJD
b2RlKDApCisgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCisgICAgLCBtX3BhaW50Q291
bnQoMCkKKyAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCisgICAgLCBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fZGlkQ2xvc2UoZmFsc2Up
CisgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKKyAgICAsIG1fdG9vbFRpcEh3bmQoMCkKKyAg
ICAsIG1fY2xvc2VXaW5kb3dUaW1lcih0aGlzLCAmV2ViVmlldzo6Y2xvc2VXaW5kb3dUaW1lckZp
cmVkKQorICAgICwgbV90b3BMZXZlbFBhcmVudCgwKQorICAgICwgbV9kZWxldGVCYWNraW5nU3Rv
cmVUaW1lckFjdGl2ZShmYWxzZSkKKyAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCisgICAgLCBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCisgICAgLCBtX2xhc3RQYW5Y
KDApCisgICAgLCBtX2xhc3RQYW5ZKDApCisgICAgLCBtX3hPdmVycGFuKDApCisgICAgLCBtX3lP
dmVycGFuKDApCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotLCBtX2lzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyAgICAsIG1fbGF5ZXJSZW5kZXJlcigwKQorICAgICwg
bV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpCiAjZW5kaWYKIHsKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKQEAgLTM0OSw2ICszNDksMTAgQEAgV2ViVmlldzo6V2ViVmll
dygpCiAKIFdlYlZpZXc6On5XZWJWaWV3KCkKIHsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSk7CisjZW5kaWYKKwog
ICAgIGRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogCiAgICAgLy8gPHJkYXI6Ly80OTU4MzgyPiBtX3Zp
ZXdXaW5kb3cgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiBtX2hvc3RXaW5kb3cgaXMgZGVzdHJveWVk
LCBidXQgaWYKQEAgLTE4MjQsNyArMTgyOCw3IEBAIGJvb2wgV2ViVmlldzo6a2V5UHJlc3MoV1BB
UkFNIGNoYXJDb2RlLCAKICAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5rZXlFdmVu
dChrZXlFdmVudCk7CiB9CiAKLXN0YXRpYyBib29sIHJlZ2lzdGVyV2ViVmlld1dpbmRvd0NsYXNz
KCkKK2Jvb2wgV2ViVmlldzo6cmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKQogewogICAgIHN0
YXRpYyBib29sIGhhdmVSZWdpc3RlcmVkV2luZG93Q2xhc3MgPSBmYWxzZTsKICAgICBpZiAoaGF2
ZVJlZ2lzdGVyZWRXaW5kb3dDbGFzcykKQEAgLTE4NjgsOSArMTg3Miw4IEBAIHN0YXRpYyBIV05E
IGZpbmRUb3BMZXZlbFBhcmVudChIV05EIHdpbmQKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGlj
IExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCitMUkVTVUxUIENBTExCQUNLIFdlYlZpZXc6
OldlYlZpZXdXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBM
UEFSQU0gbFBhcmFtKQogewotICAgIExSRVNVTFQgbFJlc3VsdCA9IDA7CiAgICAgTE9OR19QVFIg
bG9uZ1B0ciA9IEdldFdpbmRvd0xvbmdQdHIoaFduZCwgMCk7CiAgICAgV2ViVmlldyogd2ViVmll
dyA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViVmlldyo+KGxvbmdQdHIpOwogICAgIFdlYkZyYW1lKiBt
YWluRnJhbWVJbXBsID0gd2ViVmlldyA/IHdlYlZpZXctPnRvcExldmVsRnJhbWUoKSA6IDA7CkBA
IC0xODgxLDYgKzE4ODQsMTQgQEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFBy
b2MoSAogICAgIENPTVB0cjxXZWJWaWV3PiBwcm90ZWN0b3Iod2ViVmlldyk7CiAgICAgQVNTRVJU
KHdlYlZpZXcpOwogCisgICAgcmV0dXJuIHdlYlZpZXctPnduZFByb2MoaFduZCwgbWVzc2FnZSwg
d1BhcmFtLCBsUGFyYW0pOworfQorCitMUkVTVUxUIENBTExCQUNLIFdlYlZpZXc6OnduZFByb2Mo
SFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7
CisgICAgTFJFU1VMVCBsUmVzdWx0ID0gMDsKKyAgICBXZWJGcmFtZSogbWFpbkZyYW1lSW1wbCA9
IHRvcExldmVsRnJhbWUoKTsKKwogICAgIC8vIFdpbmRvd3MgTWVkaWEgUGxheWVyIGhhcyBhIG1v
ZGFsIG1lc3NhZ2UgbG9vcCB0aGF0IHdpbGwgZGVsaXZlciBtZXNzYWdlcwogICAgIC8vIHRvIHVz
IGF0IGluYXBwcm9wcmlhdGUgdGltZXMgYW5kIHdlIHdpbGwgY3Jhc2ggaWYgd2UgaGFuZGxlIHRo
ZW0gd2hlbgogICAgIC8vIHRoZXkgYXJlIGRlbGl2ZXJlZC4gV2UgcmVwb3N0IHBhaW50IG1lc3Nh
Z2VzIHNvIHRoYXQgd2UgZXZlbnR1YWxseSBnZXQKQEAgLTE4OTYsMjIgKzE5MDcsMjIgQEAgc3Rh
dGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogCiAgICAgc3dpdGNoIChtZXNz
YWdlKSB7CiAgICAgICAgIGNhc2UgV01fUEFJTlQ6IHsKLSAgICAgICAgICAgIHdlYlZpZXctPnBh
aW50KDAsIDApOworICAgICAgICAgICAgcGFpbnQoMCwgMCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIFdNX1BSSU5UQ0xJRU5UOgotICAgICAgICAgICAgd2Vi
Vmlldy0+cGFpbnQoKEhEQyl3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBwYWludCgoSERD
KXdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0RF
U1RST1k6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5zZXRJc0JlaW5nRGVzdHJveWVkKCk7Ci0gICAg
ICAgICAgICB3ZWJWaWV3LT5jbG9zZSgpOwotICAgICAgICAgICAgd2ViVmlldy0+cmV2b2tlRHJh
Z0Ryb3AoKTsKKyAgICAgICAgICAgIHNldElzQmVpbmdEZXN0cm95ZWQoKTsKKyAgICAgICAgICAg
IGNsb3NlKCk7CisgICAgICAgICAgICByZXZva2VEcmFnRHJvcCgpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV01fR0VTVFVSRU5PVElGWToKLSAgICAgICAgICAgIGhhbmRsZWQg
PSB3ZWJWaWV3LT5nZXN0dXJlTm90aWZ5KHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhh
bmRsZWQgPSBnZXN0dXJlTm90aWZ5KHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdNX0dFU1RVUkU6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmll
dy0+Z2VzdHVyZSh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0gZ2VzdHVy
ZSh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9N
T1VTRU1PVkU6CiAgICAgICAgIGNhc2UgV01fTEJVVFRPTkRPV046CkBAIC0xOTI2LDQzICsxOTM3
LDQzIEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICAgICAg
Y2FzZSBXTV9NT1VTRUxFQVZFOgogICAgICAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKG1haW5GcmFtZUltcGwpKQogICAgICAgICAgICAgICAgIGlmIChjb3JlRnJhbWUtPnZpZXco
KS0+ZGlkRmlyc3RMYXlvdXQoKSkKLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZp
ZXctPmhhbmRsZU1vdXNlRXZlbnQobWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworICAgICAgICAg
ICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxlTW91c2VFdmVudChtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9NT1VTRVdIRUVMOgog
ICAgICAgICBjYXNlIFdNX1ZJU1RBX01PVVNFSFdIRUVMOgogICAgICAgICAgICAgaWYgKEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKG1haW5GcmFtZUltcGwpKQogICAgICAgICAgICAgICAgIGlmIChj
b3JlRnJhbWUtPnZpZXcoKS0+ZGlkRmlyc3RMYXlvdXQoKSkKLSAgICAgICAgICAgICAgICAgICAg
aGFuZGxlZCA9IHdlYlZpZXctPm1vdXNlV2hlZWwod1BhcmFtLCBsUGFyYW0sIG1lc3NhZ2UgPT0g
V01fVklTVEFfTU9VU0VIV0hFRUwpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gbW91
c2VXaGVlbCh3UGFyYW0sIGxQYXJhbSwgbWVzc2FnZSA9PSBXTV9WSVNUQV9NT1VTRUhXSEVFTCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9TWVNLRVlET1dOOgotICAgICAg
ICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmtleURvd24od1BhcmFtLCBsUGFyYW0sIHRydWUpOwor
ICAgICAgICAgICAgaGFuZGxlZCA9IGtleURvd24od1BhcmFtLCBsUGFyYW0sIHRydWUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fS0VZRE9XTjoKLSAgICAgICAgICAgIGhh
bmRsZWQgPSB3ZWJWaWV3LT5rZXlEb3duKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhh
bmRsZWQgPSBrZXlEb3duKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX1NZU0tFWVVQOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmtl
eVVwKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBrZXlVcCh3
UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBX
TV9LRVlVUDoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5rZXlVcCh3UGFyYW0sIGxQ
YXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0ga2V5VXAod1BhcmFtLCBsUGFyYW0pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fU1lTQ0hBUjoKLSAgICAgICAgICAgIGhh
bmRsZWQgPSB3ZWJWaWV3LT5rZXlQcmVzcyh3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CisgICAgICAg
ICAgICBoYW5kbGVkID0ga2V5UHJlc3Mod1BhcmFtLCBsUGFyYW0sIHRydWUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fQ0hBUjoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3
ZWJWaWV3LT5rZXlQcmVzcyh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0g
a2V5UHJlc3Mod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8v
IEZJWE1FOiBXZSBuZWVkIHRvIGNoZWNrIFdNX1VOSUNIQVIgdG8gc3VwcG9ydCBzdXBwbGVtZW50
YXJ5IGNoYXJhY3RlcnMgKHRoYXQgZG9uJ3QgZml0IGluIDE2IGJpdHMpLgogICAgICAgICBjYXNl
IFdNX1NJWkU6Ci0gICAgICAgICAgICBpZiAod2ViVmlldy0+aXNCZWluZ0Rlc3Ryb3llZCgpKQor
ICAgICAgICAgICAgaWYgKGlzQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgICAgICAgICAvLyBJ
ZiBzb21lb25lIGhhcyBzZW50IHVzIHRoaXMgbWVzc2FnZSB3aGlsZSB3ZSdyZSBiZWluZyBkZXN0
cm95ZWQsIHdlIHNob3VsZCBiYWlsIG91dCBzbyB3ZSBkb24ndCBjcmFzaC4KICAgICAgICAgICAg
ICAgICBicmVhazsKIAogICAgICAgICAgICAgaWYgKGxQYXJhbSAhPSAwKSB7Ci0gICAgICAgICAg
ICAgICAgd2ViVmlldy0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CisgICAgICAgICAgICAgICAgZGVs
ZXRlQmFja2luZ1N0b3JlKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
ICAgICAgICAgICAgIGlmICh3ZWJWaWV3LT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAg
ICAgICAgICAgICAgICAgICAgd2ViVmlldy0+cmVzaXplTGF5ZXJSZW5kZXJlcigpOworICAgICAg
ICAgICAgICAgIGlmIChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmVzaXplTGF5ZXJSZW5kZXJlcigpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgaWYg
KEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1haW5GcmFtZUltcGwpKQogICAgICAgICAgICAgICAg
ICAgICBjb3JlRnJhbWUtPnZpZXcoKS0+cmVzaXplKExPV09SRChsUGFyYW0pLCBISVdPUkQobFBh
cmFtKSk7CkBAIC0xOTczLDIxICsxOTg0LDIxIEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdl
YlZpZXdXbmRQcm9jKEgKICAgICAgICAgICAgIGlmICh3UGFyYW0gPT0gMCkgewogICAgICAgICAg
ICAgICAgIC8vIFRoZSB3aW5kb3cgaXMgYmVpbmcgaGlkZGVuIChlLmcuLCBiZWNhdXNlIHdlIHN3
aXRjaGVkIHRhYnMpLgogICAgICAgICAgICAgICAgIC8vIE51bGwgb3V0IG91ciBiYWNraW5nIHN0
b3JlLgotICAgICAgICAgICAgICAgIHdlYlZpZXctPmRlbGV0ZUJhY2tpbmdTdG9yZSgpOworICAg
ICAgICAgICAgICAgIGRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgICAgICAgICAgfQogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgIGVsc2UgaWYgKHdlYlZpZXct
PmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICAgICAgICAgIHdlYlZpZXctPmxh
eWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxlKCk7CisgICAgICAgICAgICBlbHNlIGlmIChpc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoKSkKKyAgICAgICAgICAgICAgICBsYXllclJlbmRlcmVyQmVjYW1l
VmlzaWJsZSgpOwogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9T
RVRGT0NVUzogewogICAgICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRl
OwogICAgICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZVBy
aXZhdGU7Ci0gICAgICAgICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPnVpRGVsZWdhdGUoJnVp
RGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYmCisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKFdl
YlZpZXc6OnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYmCiAgICAgICAg
ICAgICAgICAgU1VDQ0VFREVEKHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlE
ZWxlZ2F0ZVByaXZhdGUsICh2b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYmIHVpRGVsZWdh
dGVQcml2YXRlKQotICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3UmVj
ZWl2ZWRGb2N1cyh3ZWJWaWV3KTsKKyAgICAgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+
d2ViVmlld1JlY2VpdmVkRm9jdXModGhpcyk7CiAKLSAgICAgICAgICAgIEZvY3VzQ29udHJvbGxl
ciogZm9jdXNDb250cm9sbGVyID0gd2ViVmlldy0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsK
KyAgICAgICAgICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDb250cm9sbGVyID0gcGFnZSgpLT5m
b2N1c0NvbnRyb2xsZXIoKTsKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBmb2N1c0Nv
bnRyb2xsZXItPmZvY3VzZWRGcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgLy8gU2VuZCBmb2N1
cyBldmVudHMgdW5sZXNzIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgd2luZG93IGlzIGEKICAgICAg
ICAgICAgICAgICAvLyBjaGlsZCBvZiBvdXJzIChmb3IgZXhhbXBsZSBhIHBsdWdpbikuCkBAIC0x
OTk1LDcgKzIwMDYsNyBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhI
CiAgICAgICAgICAgICAgICAgICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZCh0cnVlKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZm9jdXNDb250cm9sbGVyLT5z
ZXRGb2N1c2VkKHRydWUpOwotICAgICAgICAgICAgICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9j
dXNlZEZyYW1lKHdlYlZpZXctPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOworICAgICAgICAgICAgICAg
IGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZEZyYW1lKHBhZ2UoKS0+bWFpbkZyYW1lKCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIwMDMsMTMg
KzIwMTQsMTMgQEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAg
ICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgICAgICAgICAg
Q09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZVByaXZhdGU7CiAgICAgICAg
ICAgICBIV05EIG5ld0ZvY3VzV25kID0gcmVpbnRlcnByZXRfY2FzdDxIV05EPih3UGFyYW0pOwot
ICAgICAgICAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRl
KSkgJiYgdWlEZWxlZ2F0ZSAmJgorICAgICAgICAgICAgaWYgKFNVQ0NFRURFRChXZWJWaWV3Ojp1
aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkgJiYgdWlEZWxlZ2F0ZSAmJgogICAgICAgICAgICAgICAg
IFNVQ0NFRURFRCh1aURlbGVnYXRlLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVsZWdhdGVQ
cml2YXRlLCAodm9pZCoqKSAmdWlEZWxlZ2F0ZVByaXZhdGUpKSAmJiB1aURlbGVnYXRlUHJpdmF0
ZSkKLSAgICAgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld0xvc3RGb2N1cyh3
ZWJWaWV3LCAoT0xFX0hBTkRMRSkoVUxPTkc2NCluZXdGb2N1c1duZCk7CisgICAgICAgICAgICAg
ICAgdWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdMb3N0Rm9jdXModGhpcywgKE9MRV9IQU5ETEUp
KFVMT05HNjQpbmV3Rm9jdXNXbmQpOwogCi0gICAgICAgICAgICBGb2N1c0NvbnRyb2xsZXIqIGZv
Y3VzQ29udHJvbGxlciA9IHdlYlZpZXctPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCk7CisgICAg
ICAgICAgICBGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlciA9IHBhZ2UoKS0+Zm9jdXND
b250cm9sbGVyKCk7CiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBmb2N1c0NvbnRyb2xsZXIt
PmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgICAgICAgICAgd2ViVmlldy0+cmVzZXRJTUUoZnJh
bWUpOworICAgICAgICAgICAgcmVzZXRJTUUoZnJhbWUpOwogICAgICAgICAgICAgLy8gU2VuZCBi
bHVyIGV2ZW50cyB1bmxlc3Mgd2UncmUgbG9zaW5nIGZvY3VzIHRvIGEgY2hpbGQgb2Ygb3Vycy4K
ICAgICAgICAgICAgIGlmICghSXNDaGlsZChoV25kLCBuZXdGb2N1c1duZCkpCiAgICAgICAgICAg
ICAgICAgZm9jdXNDb250cm9sbGVyLT5zZXRGb2N1c2VkKGZhbHNlKTsKQEAgLTIwMjEsNjEgKzIw
MzIsNjEgQEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgV01fV0lORE9XUE9TQ0hBTkdFRDoKICAgICAgICAgICAgIGlmIChy
ZWludGVycHJldF9jYXN0PFdJTkRPV1BPUyo+KGxQYXJhbSktPmZsYWdzICYgU1dQX1NIT1dXSU5E
T1cpCi0gICAgICAgICAgICAgICAgd2ViVmlldy0+dXBkYXRlQWN0aXZlU3RhdGVTb29uKCk7Cisg
ICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZlU3RhdGVTb29uKCk7CiAgICAgICAgICAgICBoYW5k
bGVkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9DVVQ6Ci0g
ICAgICAgICAgICB3ZWJWaWV3LT5jdXQoMCk7CisgICAgICAgICAgICBjdXQoMCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9DT1BZOgotICAgICAgICAgICAgd2ViVmlldy0+
Y29weSgwKTsKKyAgICAgICAgICAgIGNvcHkoMCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXTV9QQVNURToKLSAgICAgICAgICAgIHdlYlZpZXctPnBhc3RlKDApOworICAgICAg
ICAgICAgcGFzdGUoMCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9DTEVB
UjoKLSAgICAgICAgICAgIHdlYlZpZXctPmRlbGV0ZV8oMCk7CisgICAgICAgICAgICBkZWxldGVf
KDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fQ09NTUFORDoKICAgICAg
ICAgICAgIGlmIChISVdPUkQod1BhcmFtKSkKLSAgICAgICAgICAgICAgICBoYW5kbGVkID0gd2Vi
Vmlldy0+ZXhlY0NvbW1hbmQod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgICAgIGhhbmRs
ZWQgPSBleGVjQ29tbWFuZCh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBlbHNlIC8vIElm
IHRoZSBoaWdoIHdvcmQgb2Ygd1BhcmFtIGlzIDAsIHRoZSBtZXNzYWdlIGlzIGZyb20gYSBtZW51
Ci0gICAgICAgICAgICAgICAgd2ViVmlldy0+cGVyZm9ybUNvbnRleHRNZW51QWN0aW9uKHdQYXJh
bSwgbFBhcmFtLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgcGVyZm9ybUNvbnRleHRNZW51QWN0
aW9uKHdQYXJhbSwgbFBhcmFtLCBmYWxzZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXTV9NRU5VQ09NTUFORDoKLSAgICAgICAgICAgIHdlYlZpZXctPnBlcmZvcm1Db250ZXh0
TWVudUFjdGlvbih3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CisgICAgICAgICAgICBwZXJmb3JtQ29u
dGV4dE1lbnVBY3Rpb24od1BhcmFtLCBsUGFyYW0sIHRydWUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV01fQ09OVEVYVE1FTlU6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2Vi
Vmlldy0+aGFuZGxlQ29udGV4dE1lbnVFdmVudCh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAg
ICBoYW5kbGVkID0gaGFuZGxlQ29udGV4dE1lbnVFdmVudCh3UGFyYW0sIGxQYXJhbSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTklUTUVOVVBPUFVQOgotICAgICAgICAg
ICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uSW5pdE1lbnVQb3B1cCh3UGFyYW0sIGxQYXJhbSk7Cisg
ICAgICAgICAgICBoYW5kbGVkID0gb25Jbml0TWVudVBvcHVwKHdQYXJhbSwgbFBhcmFtKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX01FQVNVUkVJVEVNOgotICAgICAgICAg
ICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uTWVhc3VyZUl0ZW0od1BhcmFtLCBsUGFyYW0pOworICAg
ICAgICAgICAgaGFuZGxlZCA9IG9uTWVhc3VyZUl0ZW0od1BhcmFtLCBsUGFyYW0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fRFJBV0lURU06Ci0gICAgICAgICAgICBoYW5k
bGVkID0gd2ViVmlldy0+b25EcmF3SXRlbSh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBo
YW5kbGVkID0gb25EcmF3SXRlbSh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBXTV9VTklOSVRNRU5VUE9QVVA6Ci0gICAgICAgICAgICBoYW5kbGVkID0g
d2ViVmlldy0+b25VbmluaXRNZW51UG9wdXAod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAg
aGFuZGxlZCA9IG9uVW5pbml0TWVudVBvcHVwKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFdNX1hQX1RIRU1FQ0hBTkdFRDoKICAgICAgICAgICAgIGlm
IChGcmFtZSogY29yZUZyYW1lID0gY29yZShtYWluRnJhbWVJbXBsKSkgewotICAgICAgICAgICAg
ICAgIHdlYlZpZXctPmRlbGV0ZUJhY2tpbmdTdG9yZSgpOworICAgICAgICAgICAgICAgIGRlbGV0
ZUJhY2tpbmdTdG9yZSgpOwogICAgICAgICAgICAgICAgIGNvcmVGcmFtZS0+cGFnZSgpLT50aGVt
ZSgpLT50aGVtZUNoYW5nZWQoKTsKICAgICAgICAgICAgICAgICBTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUoKS0+dGhlbWVDaGFuZ2VkKCk7CiAgICAgICAgICAgICAgICAgUkVDVCB3aW5kb3dS
ZWN0OwogICAgICAgICAgICAgICAgIDo6R2V0Q2xpZW50UmVjdChoV25kLCAmd2luZG93UmVjdCk7
CiAgICAgICAgICAgICAgICAgOjpJbnZhbGlkYXRlUmVjdChoV25kLCAmd2luZG93UmVjdCwgZmFs
c2UpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgICAgICBp
ZiAod2ViVmlldy0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAg
ICAgIHdlYlZpZXctPnNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpOworICAgICAgICAgICAgICAg
IGlmIChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgc2V0
Um9vdExheWVyTmVlZHNEaXNwbGF5KCk7CiAjZW5kaWYKICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fTU9VU0VBQ1RJVkFURToKLSAgICAgICAgICAgIHdl
YlZpZXctPnNldE1vdXNlQWN0aXZhdGVkKHRydWUpOworICAgICAgICAgICAgc2V0TW91c2VBY3Rp
dmF0ZWQodHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9HRVRETEdD
T0RFOiB7CiAgICAgICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CkBA
IC0yMDg3LDUzICsyMDk4LDUzIEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQ
cm9jKEgKICAgICAgICAgICAgICAgICBpZiAobHBNc2ctPm1lc3NhZ2UgPT0gV01fS0VZRE9XTikK
ICAgICAgICAgICAgICAgICAgICAga2V5Q29kZSA9IChVSU5UKSBscE1zZy0+d1BhcmFtOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT51aURlbGVnYXRl
KCZ1aURlbGVnYXRlKSkgJiYgdWlEZWxlZ2F0ZSAmJgorICAgICAgICAgICAgaWYgKFNVQ0NFRURF
RChXZWJWaWV3Ojp1aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkgJiYgdWlEZWxlZ2F0ZSAmJgogICAg
ICAgICAgICAgICAgIFNVQ0NFRURFRCh1aURlbGVnYXRlLT5RdWVyeUludGVyZmFjZShJSURfSVdl
YlVJRGVsZWdhdGVQcml2YXRlLCAodm9pZCoqKSAmdWlEZWxlZ2F0ZVByaXZhdGUpKSAmJiB1aURl
bGVnYXRlUHJpdmF0ZSAmJgotICAgICAgICAgICAgICAgIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJp
dmF0ZS0+d2ViVmlld0dldERsZ0NvZGUod2ViVmlldywga2V5Q29kZSwgJmRsZ0NvZGUpKSkKKyAg
ICAgICAgICAgICAgICBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdHZXREbGdD
b2RlKHRoaXMsIGtleUNvZGUsICZkbGdDb2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGRs
Z0NvZGU7CiAgICAgICAgICAgICBoYW5kbGVkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIFdNX0dFVE9CSkVDVDoKLSAgICAgICAgICAgIGhhbmRs
ZWQgPSB3ZWJWaWV3LT5vbkdldE9iamVjdCh3UGFyYW0sIGxQYXJhbSwgbFJlc3VsdCk7CisgICAg
ICAgICAgICBoYW5kbGVkID0gb25HZXRPYmplY3Qod1BhcmFtLCBsUGFyYW0sIGxSZXN1bHQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fSU1FX1NUQVJUQ09NUE9TSVRJT046
Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+b25JTUVTdGFydENvbXBvc2l0aW9uKCk7
CisgICAgICAgICAgICBoYW5kbGVkID0gb25JTUVTdGFydENvbXBvc2l0aW9uKCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfUkVRVUVTVDoKLSAgICAgICAgICAgIHdl
YlZpZXctPm9uSU1FUmVxdWVzdCh3UGFyYW0sIGxQYXJhbSwgJmxSZXN1bHQpOworICAgICAgICAg
ICAgb25JTUVSZXF1ZXN0KHdQYXJhbSwgbFBhcmFtLCAmbFJlc3VsdCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfQ09NUE9TSVRJT046Ci0gICAgICAgICAgICBoYW5k
bGVkID0gd2ViVmlldy0+b25JTUVDb21wb3NpdGlvbihsUGFyYW0pOworICAgICAgICAgICAgaGFu
ZGxlZCA9IG9uSU1FQ29tcG9zaXRpb24obFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX0lNRV9FTkRDT01QT1NJVElPTjoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3
ZWJWaWV3LT5vbklNRUVuZENvbXBvc2l0aW9uKCk7CisgICAgICAgICAgICBoYW5kbGVkID0gb25J
TUVFbmRDb21wb3NpdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01f
SU1FX0NIQVI6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+b25JTUVDaGFyKHdQYXJh
bSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBvbklNRUNoYXIod1BhcmFtLCBsUGFy
YW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fSU1FX05PVElGWToKLSAg
ICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5vbklNRU5vdGlmeSh3UGFyYW0sIGxQYXJhbSwg
JmxSZXN1bHQpOworICAgICAgICAgICAgaGFuZGxlZCA9IG9uSU1FTm90aWZ5KHdQYXJhbSwgbFBh
cmFtLCAmbFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVf
U0VMRUNUOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uSU1FU2VsZWN0KHdQYXJh
bSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBvbklNRVNlbGVjdCh3UGFyYW0sIGxQ
YXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfU0VUQ09OVEVY
VDoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5vbklNRVNldENvbnRleHQod1BhcmFt
LCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IG9uSU1FU2V0Q29udGV4dCh3UGFyYW0s
IGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9USU1FUjoKICAg
ICAgICAgICAgIHN3aXRjaCAod1BhcmFtKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBVcGRhdGVB
Y3RpdmVTdGF0ZVRpbWVyOgogICAgICAgICAgICAgICAgICAgICBLaWxsVGltZXIoaFduZCwgVXBk
YXRlQWN0aXZlU3RhdGVUaW1lcik7Ci0gICAgICAgICAgICAgICAgICAgIHdlYlZpZXctPnVwZGF0
ZUFjdGl2ZVN0YXRlKCk7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKCk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgRGVsZXRl
QmFja2luZ1N0b3JlVGltZXI6Ci0gICAgICAgICAgICAgICAgICAgIHdlYlZpZXctPmRlbGV0ZUJh
Y2tpbmdTdG9yZSgpOworICAgICAgICAgICAgICAgICAgICBkZWxldGVCYWNraW5nU3RvcmUoKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXTV9TRVRDVVJTT1I6Ci0gICAgICAgICAgICBpZiAoaGFuZGxl
ZCA9IHdlYlZpZXctPnBhZ2UoKS0+Y2hyb21lKCktPnNldEN1cnNvcihsYXN0U2V0Q3Vyc29yKSkK
KyAgICAgICAgICAgIGlmIChoYW5kbGVkID0gcGFnZSgpLT5jaHJvbWUoKS0+c2V0Q3Vyc29yKGxh
c3RTZXRDdXJzb3IpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBfX2Zh
bGx0aHJvdWdoOwpAQCAtNDUwNCw2ICs0NTE1LDEwIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5
UHJlZmVyZW5jZXNDaGFuZ2UKICAgICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLT5zZXRQ
bHVnaW5BbGxvd2VkUnVuVGltZShydW5UaW1lKTsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
V0tDQUNGTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKSk7CisjZW5kaWYK
KwogI2lmIEVOQUJMRSgzRF9DQU5WQVMpCiAgICAgc2V0dGluZ3MtPnNldEV4cGVyaW1lbnRhbFdl
YkdMRW5hYmxlZCh0cnVlKTsKICNlbmRpZiAgLy8gRU5BQkxFKDNEX0NBTlZBUykKQEAgLTU3MzMs
MjkgKzU3NDgsMzggQEAgdm9pZCBXZWJWaWV3Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1cgog
dm9pZCBXZWJWaWV3OjpzZXRSb290Q2hpbGRMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBs
YXllcikKIHsKICAgICBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGxheWVyID8gdHJ1ZSA6IGZh
bHNlKTsKLSAgICBtX2xheWVyUmVuZGVyZXIuc2V0Um9vdENoaWxkTGF5ZXIobGF5ZXIpOworICAg
IGlmIChtX2xheWVyUmVuZGVyZXIpCisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0Um9vdENo
aWxkTGF5ZXIobGF5ZXIpOwogfQogCiB2b2lkIFdlYlZpZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKIHsKLSAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmcgPT0gYWNjZWxlcmF0ZWQpCisgICAgaWYgKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
ID09IGFjY2VsZXJhdGVkIHx8ICFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2
YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZyA9IGFjY2VsZXJhdGVkOwotICAgIGlmIChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZykg
ewotICAgICAgICAvLyBDcmVhdGUgdGhlIHJvb3QgbGF5ZXIKLSAgICAgICAgQVNTRVJUKG1fdmll
d1dpbmRvdyk7Ci0gICAgICAgIG1fbGF5ZXJSZW5kZXJlci5zZXRIb3N0V2luZG93KG1fdmlld1dp
bmRvdyk7Ci0gICAgICAgIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCk7CisgICAgaWYgKGFjY2Vs
ZXJhdGVkKSB7CisgICAgICAgIGlmIChtX2xheWVyUmVuZGVyZXIpCisgICAgICAgICAgICBkZWxl
dGUgbV9sYXllclJlbmRlcmVyOworCisgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9IFdLQ0FDRkxh
eWVyUmVuZGVyZXI6OmNyZWF0ZSgpOworICAgICAgICBpZiAobV9sYXllclJlbmRlcmVyKSB7Cisg
ICAgICAgICAgICBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IHRydWU7CisKKyAgICAgICAg
ICAgIC8vIENyZWF0ZSB0aGUgcm9vdCBsYXllcgorICAgICAgICAgICAgQVNTRVJUKG1fdmlld1dp
bmRvdyk7CisgICAgICAgICAgICBtX2xheWVyUmVuZGVyZXItPnNldEhvc3RXaW5kb3cobV92aWV3
V2luZG93KTsKKyAgICAgICAgICAgIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCk7CisgICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICAvLyBUZWFyIGRvd24gdGhlIHJvb3QgbGF5ZXIKLSAg
ICAgICAgbV9sYXllclJlbmRlcmVyLmRlc3Ryb3lSZW5kZXJlcigpOworICAgICAgICBkZWxldGUg
bV9sYXllclJlbmRlcmVyOworICAgICAgICBtX2xheWVyUmVuZGVyZXIgPSAwOworICAgICAgICBt
X2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IGZhbHNlOwogICAgIH0KIH0KIAogdm9pZCBXZWJW
aWV3Ojp1cGRhdGVSb290TGF5ZXJDb250ZW50cygpCiB7Ci0gICAgaWYgKCFtX2JhY2tpbmdTdG9y
ZUJpdG1hcCkKKyAgICBpZiAoIW1fYmFja2luZ1N0b3JlQml0bWFwIHx8ICFtX2xheWVyUmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEdldCB0aGUgYmFja2luZyBzdG9yZSBpbnRv
IGEgQ0dJbWFnZQpAQCAtNTc3Niw3ICs1ODAwLDcgQEAgdm9pZCBXZWJWaWV3Ojp1cGRhdGVSb290
TGF5ZXJDb250ZW50cygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NH
UmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOwogCiAgICAgLy8gSGFuZCB0aGUgQ0dJbWFnZSB0byBD
QUNGIGZvciBjb21wb3NpdGluZwotICAgIG1fbGF5ZXJSZW5kZXJlci5zZXRSb290Q29udGVudHMo
YmFja2luZ1N0b3JlSW1hZ2UuZ2V0KCkpOworICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0Um9vdENv
bnRlbnRzKGJhY2tpbmdTdG9yZUltYWdlLmdldCgpKTsKIAogICAgIC8vIFNldCB0aGUgZnJhbWUg
YW5kIHNjcm9sbCBwb3NpdGlvbgogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fbWFpbkZy
YW1lKTsKQEAgLTU3ODQsNyArNTgwOCw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlUm9vdExheWVy
Q29udGVudHMoKQogICAgICAgICByZXR1cm47CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBj
b3JlRnJhbWUtPnZpZXcoKTsKIAotICAgIG1fbGF5ZXJSZW5kZXJlci5zZXRTY3JvbGxGcmFtZShm
cmFtZVZpZXctPmxheW91dFdpZHRoKCksIGZyYW1lVmlldy0+bGF5b3V0SGVpZ2h0KCksIAorICAg
IG1fbGF5ZXJSZW5kZXJlci0+c2V0U2Nyb2xsRnJhbWUoZnJhbWVWaWV3LT5sYXlvdXRXaWR0aCgp
LCBmcmFtZVZpZXctPmxheW91dEhlaWdodCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZyYW1lVmlldy0+c2Nyb2xsWCgpLCBmcmFtZVZpZXctPnNjcm9sbFkoKSk7CiB9CiAj
ZW5kaWYKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
aW4vV2ViVmlldy5oCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYktpdC93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC04NjQsMTAgKzg2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRvd25s
b2FkVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9Ci0gICAgdm9pZCByZXNpemVMYXllclJl
bmRlcmVyKCkgeyBtX2xheWVyUmVuZGVyZXIucmVzaXplKCk7IH0KLSAgICB2b2lkIGxheWVyUmVu
ZGVyZXJCZWNhbWVWaXNpYmxlKCkgeyBtX2xheWVyUmVuZGVyZXIuY3JlYXRlUmVuZGVyZXIoKTsg
fQotICAgIHZvaWQgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgeyBtX2xheWVyUmVuZGVyZXIu
c2V0TmVlZHNEaXNwbGF5KCk7IH0KKyAgICB2b2lkIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgp
IHsgaWYgKG1fbGF5ZXJSZW5kZXJlcikgbV9sYXllclJlbmRlcmVyLT5zZXROZWVkc0Rpc3BsYXko
KTsgfQogICAgIHZvaWQgc2V0Um9vdENoaWxkTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1MYXllciog
bGF5ZXIpOwogI2VuZGlmCiAKQEAgLTg5NSw2ICs4OTIsMTAgQEAgcHJpdmF0ZToKICAgICBEV09S
RCBtX2xhc3REcm9wRWZmZWN0OwogCiBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGJvb2wgcmVnaXN0
ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJW
aWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFN
IGxQYXJhbSk7CisgICAgTFJFU1VMVCBDQUxMQkFDSyB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKKwogICAgIEhJTUMgZ2V0SU1N
Q29udGV4dCgpOwogICAgIHZvaWQgcmVsZWFzZUlNTUNvbnRleHQoSElNQyk7CiAgICAgc3RhdGlj
IGJvb2wgYWxsb3dTaXRlU3BlY2lmaWNIYWNrcygpIHsgcmV0dXJuIHNfYWxsb3dTaXRlU3BlY2lm
aWNIYWNrczsgfSAKQEAgLTk4MiwxMCArOTgzLDEzIEBAIHByb3RlY3RlZDoKICAgICBsb25nIG1f
eU92ZXJwYW47CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgYm9vbCBp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZzsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29sKTsK
ICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCk7CisgICAgdm9pZCByZXNpemVMYXll
clJlbmRlcmVyKCkgeyBtX2xheWVyUmVuZGVyZXItPnJlc2l6ZSgpOyB9CisgICAgdm9pZCBsYXll
clJlbmRlcmVyQmVjYW1lVmlzaWJsZSgpIHsgbV9sYXllclJlbmRlcmVyLT5jcmVhdGVSZW5kZXJl
cigpOyB9CiAKLSAgICBXZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyIG1fbGF5ZXJSZW5kZXJl
cjsKKyAgICBXZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyKiBtX2xheWVyUmVuZGVyZXI7CiAg
ICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKICNlbmRpZgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44198</attachid>
            <date>2009-12-02 17:29:30 -0800</date>
            <delta_ts>2009-12-02 17:34:30 -0800</delta_ts>
            <desc>Another replacement patch</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>30415</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTYxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDktMTItMDIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGF5IGxvYWQgRExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAg
ICBJZiB0aGUgRExMcyAoZDNkOSBhbmQgUXVhcnR6Q29yZSkuIGFyZSBub3QgcHJlc2VudCBpdAor
ICAgICAgICB0dXJucyBvZmYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5kIGF2b2lkcyBjYWxs
aW5nIAorICAgICAgICBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgRExMcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpkaXNwbGF5SW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpXS0NBQ0ZMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6fldL
Q0FDRkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpkaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpiZWNvbWVSb290TGF5ZXJGb3JDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXROZWVkc0NvbW1pdCk6CisgICAgICAg
IChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YWRkU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
V0tDQUNGTGF5ZXI6Omluc2VydFN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxh
eWVyOjppbnNlcnRTdWJsYXllckFib3ZlTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNG
TGF5ZXI6Omluc2VydFN1YmxheWVyQmVsb3dMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NB
Q0ZMYXllcjo6cmVwbGFjZVN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVy
OjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6
cmVtb3ZlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmluZGV4T2ZT
dWJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YW5jZXN0b3JPclNlbGZX
aXRoU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0Qm91bmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXRGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXS0NBQ0ZMYXllcjo6cm9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpyZW1vdmVBbGxTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5
ZXI6OnNldFN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6bW92ZVN1
YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c3VwZXJsYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRkxheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmNm
VmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKwogMjAwOS0xMi0w
MiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
Q0ZMYXllci5jcHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsMzcgQEAK
ICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZDb250ZXh0Lmg+CiAjaW5jbHVkZSA8UXVhcnR6Q29y
ZS9DQVJlbmRlci5oPgogCisjcHJhZ21hIGNvbW1lbnQobGliLCAiZDNkOSIpDQorI3ByYWdtYSBj
b21tZW50KGxpYiwgImQzZHg5IikNCisjcHJhZ21hIGNvbW1lbnQobGliLCAiUXVhcnR6Q29yZSIp
DQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK2Jvb2wg
V0tDQUNGTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKQ0KK3sNCisgICAg
c3RhdGljIGJvb2wgYXZhaWxhYmxlOw0KKyAgICBzdGF0aWMgYm9vbCB0ZXN0ZWQ7DQorDQorICAg
IGlmICh0ZXN0ZWQpDQorICAgICAgICByZXR1cm4gYXZhaWxhYmxlOw0KKw0KKyAgICB0ZXN0ZWQg
PSB0cnVlOw0KKyAgICBITU9EVUxFIGxpYnJhcnkgPSBMb2FkTGlicmFyeShURVhUKCJkM2Q5LmRs
bCIpKTsNCisgICAgaWYgKCFsaWJyYXJ5KQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAg
ICBGcmVlTGlicmFyeShsaWJyYXJ5KTsNCisgICAgbGlicmFyeSA9IExvYWRMaWJyYXJ5KFRFWFQo
IlF1YXJ0ekNvcmUuZGxsIikpOw0KKyAgICBpZiAoIWxpYnJhcnkpDQorICAgICAgICByZXR1cm4g
ZmFsc2U7DQorDQorICAgIEZyZWVMaWJyYXJ5KGxpYnJhcnkpOw0KKyAgICBhdmFpbGFibGUgPSB0
cnVlOw0KKyAgICByZXR1cm4gYXZhaWxhYmxlOw0KK30NCisNCiBzdGF0aWMgdm9pZCBkaXNwbGF5
SW5Db250ZXh0KENBQ0ZMYXllclJlZiBsYXllciwgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAg
ICAgQVNTRVJUX0FSRyhsYXllciwgV0tDQUNGTGF5ZXI6OmxheWVyKGxheWVyKSk7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgJKHJldmlzaW9uIDUx
NjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNTAsNyArNTAsOCBAQCBjbGFzcyBXS0NBQ0ZUaW1pbmdGdW5jdGlvbjsK
IAogY2xhc3MgV0tDQUNGTGF5ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXS0NBQ0ZMYXllcj4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdLQ0FDRkxheWVyPiBjcmVhdGUoQ0ZTdHJp
bmdSZWYgY2xhc3NOYW1lLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXI9MCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFdLQ0FDRkxheWVyKGNsYXNzTmFtZSwgb3duZXIpKTsgfQorICAgIHN0YXRpYyBi
b29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXS0NBQ0ZMYXllcj4gY3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NM
YXllckNBQ0YqIG93bmVyID0gMCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdLQ0FDRkxheWVyKGNs
YXNzTmFtZSwgb3duZXIpKTsgfQogICAgIHN0YXRpYyBXS0NBQ0ZMYXllciogbGF5ZXIoQ0FDRkxh
eWVyUmVmIGxheWVyKSB7IHJldHVybiBzdGF0aWNfY2FzdDxXS0NBQ0ZMYXllcio+KENBQ0ZMYXll
ckdldFVzZXJEYXRhKGxheWVyKSk7IH0KIAogICAgIH5XS0NBQ0ZMYXllcigpOwpAQCAtNjIsMTAg
KzYzLDIyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1
ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiAgICAgewogICAgICAgICBDQVRy
YW5zZm9ybTNEIHQ7Ci0gICAgICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFsdWUu
bTEyKCk7IHQubTEzID0gdmFsdWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAotICAgICAg
ICB0Lm0yMSA9IHZhbHVlLm0yMSgpOyB0Lm0yMiA9IHZhbHVlLm0yMigpOyB0Lm0yMyA9IHZhbHVl
Lm0yMygpOyB0Lm0yNCA9IHZhbHVlLm0yNCgpOyAKLSAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEo
KTsgdC5tMzIgPSB2YWx1ZS5tMzIoKTsgdC5tMzMgPSB2YWx1ZS5tMzMoKTsgdC5tMzQgPSB2YWx1
ZS5tMzQoKTsgCi0gICAgICAgIHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQy
KCk7IHQubTQzID0gdmFsdWUubTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAorICAgICAgICB0
Lm0xMSA9IHZhbHVlLm0xMSgpOworICAgICAgICB0Lm0xMiA9IHZhbHVlLm0xMigpOworICAgICAg
ICB0Lm0xMyA9IHZhbHVlLm0xMygpOworICAgICAgICB0Lm0xNCA9IHZhbHVlLm0xNCgpOyAKKyAg
ICAgICAgdC5tMjEgPSB2YWx1ZS5tMjEoKTsKKyAgICAgICAgdC5tMjIgPSB2YWx1ZS5tMjIoKTsK
KyAgICAgICAgdC5tMjMgPSB2YWx1ZS5tMjMoKTsKKyAgICAgICAgdC5tMjQgPSB2YWx1ZS5tMjQo
KTsgCisgICAgICAgIHQubTMxID0gdmFsdWUubTMxKCk7CisgICAgICAgIHQubTMyID0gdmFsdWUu
bTMyKCk7CisgICAgICAgIHQubTMzID0gdmFsdWUubTMzKCk7CisgICAgICAgIHQubTM0ID0gdmFs
dWUubTM0KCk7IAorICAgICAgICB0Lm00MSA9IHZhbHVlLm00MSgpOworICAgICAgICB0Lm00MiA9
IHZhbHVlLm00MigpOworICAgICAgICB0Lm00MyA9IHZhbHVlLm00MygpOworICAgICAgICB0Lm00
NCA9IHZhbHVlLm00NCgpOyAKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFk
b3B0Q0YsIENBQ0ZWZWN0b3JDcmVhdGVUcmFuc2Zvcm0odCkpOwogICAgIH0KICAgICBzdGF0aWMg
UmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBGbG9hdFBvaW50JiB2YWx1ZSkKQEAg
LTc3LDggKzkwLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4g
Y2ZWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgewogICAgICAgICBDR1JlY3QgcjsK
LSAgICAgICAgci5vcmlnaW4ueCA9IHJlY3QueCgpOyByLm9yaWdpbi55ID0gcmVjdC55KCk7Ci0g
ICAgICAgIHIuc2l6ZS53aWR0aCA9IHJlY3Qud2lkdGgoKTsgci5zaXplLmhlaWdodCA9IHJlY3Qu
aGVpZ2h0KCk7CisgICAgICAgIHIub3JpZ2luLnggPSByZWN0LngoKTsKKyAgICAgICAgci5vcmln
aW4ueSA9IHJlY3QueSgpOworICAgICAgICByLnNpemUud2lkdGggPSByZWN0LndpZHRoKCk7Cisg
ICAgICAgIHIuc2l6ZS5oZWlnaHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBDR0Zsb2F0IHZb
NF0gPSB7IENHUmVjdEdldE1pblgociksIENHUmVjdEdldE1pblkociksIENHUmVjdEdldE1heFgo
ciksIENHUmVjdEdldE1heFkocikgfTsKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVS
ZWY+KEFkb3B0Q0YsIENBQ0ZWZWN0b3JDcmVhdGUoNCwgdikpOwogICAgIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIu
Y3BwCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dL
Q0FDRkxheWVyUmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSwxMyBAQCB2
b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6OmRpZEZsdXNoQ29udGV4CiAgICAgd2luZG93LT5yZW5k
ZXJTb29uKCk7CiB9CiAKK1dLQ0FDRkxheWVyUmVuZGVyZXIqIFdLQ0FDRkxheWVyUmVuZGVyZXI6
OmNyZWF0ZSgpCit7CisgICAgaWYgKCFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IFdLQ0FDRkxh
eWVyUmVuZGVyZXI7Cit9CisKIFdLQ0FDRkxheWVyUmVuZGVyZXI6OldLQ0FDRkxheWVyUmVuZGVy
ZXIoKQogICAgIDogbV90cmllZFRvQ3JlYXRlRDNEUmVuZGVyZXIoZmFsc2UpCiAgICAgLCBtX3Jl
bmRlckNvbnRleHQoMCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FD
RkxheWVyUmVuZGVyZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIChodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTUpCiBjbGFzcyBXS0NBQ0ZMYXllclJlbmRl
cmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBXS0NBQ0ZMYXllclJlbmRl
cmVyKCk7CisgICAgc3RhdGljIFdLQ0FDRkxheWVyUmVuZGVyZXIqIGNyZWF0ZSgpOwogICAgIH5X
S0NBQ0ZMYXllclJlbmRlcmVyKCk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQo
Q0FDRkNvbnRleHRSZWYpOwpAQCAtNzIsNiArNzIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgV0tDQUNG
TGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAK
IHByaXZhdGU6CisgICAgV0tDQUNGTGF5ZXJSZW5kZXJlcigpOworCiAgICAgdm9pZCByZW5kZXJU
aW1lckZpcmVkKFRpbWVyPFdLQ0FDRkxheWVyUmVuZGVyZXI+Kik7CiAKICAgICBDR1JlY3QgYm91
bmRzKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBAQAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKKyNp
ZiBFTkFCTEUoM0RfQ0FOVkFTKSAgICAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NT
dHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkluZGV4OiBXZWJLaXQvd2lu
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24g
NTE2MTgpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI5IEBACisyMDA5LTEyLTAyICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAgRGVsYXkgbG9h
ZCBETExzIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTYKKyAgICAgICAgCisgICAgICAgIEFkZCBs
b2dpYyB0byB0dXJuIG9mZiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpZiBkM2Q5IG9yIFF1YXJ0
ekNvcmUKKyAgICAgICAgRExMcyBhcmUgbm90IHByZXNlbnQuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6fldl
YlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6cmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MpOgor
ICAgICAgICAoV2ViVmlldzo6V2ViVmlld1duZFByb2MpOgorICAgICAgICAoV2ViVmlldzo6d25k
UHJvYyk6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAg
ICAgICAoV2ViVmlldzo6c2V0Um9vdENoaWxkTGF5ZXIpOgorICAgICAgICAoV2ViVmlldzo6c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgIChXZWJWaWV3Ojp1cGRhdGVSb290TGF5
ZXJDb250ZW50cyk6CisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldzo6c2V0
Um9vdExheWVyTmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdlYlZpZXc6OmlzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZyk6CisgICAgICAgIChXZWJWaWV3OjpyZXNpemVMYXllclJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYlZpZXc6OmxheWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxlKToKKwogMjAwOS0xMi0w
MiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBz
ZXRWYWx1ZUZvclVzZXIgdG8gdGhlIGVuZCBvZiB0aGUgRE9NSFRNTElucHV0RWxlbWVudCBpbnRl
cmZhY2UKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzEsNyArMjcxLDYgQEAgc3RhdGljIGNvbnN0IGludCBt
YXhUb29sVGlwV2lkdGggPSAyNTA7CiBzdGF0aWMgY29uc3QgaW50IGRlbGF5QmVmb3JlRGVsZXRp
bmdCYWNraW5nU3RvcmVNc2VjID0gNTAwMDsKIAogc3RhdGljIEFUT00gcmVnaXN0ZXJXZWJWaWV3
KCk7Ci1zdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CiAKIHN0YXRpYyB2b2lk
IGluaXRpYWxpemVTdGF0aWNPYnNlcnZlcnMoKTsKIApAQCAtMjk1LDM2ICsyOTQsMzcgQEAgZW51
bSB7CiBib29sIFdlYlZpZXc6OnNfYWxsb3dTaXRlU3BlY2lmaWNIYWNrcyA9IGZhbHNlOwogCiBX
ZWJWaWV3OjpXZWJWaWV3KCkKLTogbV9yZWZDb3VudCgwKQotLCBtX2hvc3RXaW5kb3coMCkKLSwg
bV92aWV3V2luZG93KDApCi0sIG1fbWFpbkZyYW1lKDApCi0sIG1fcGFnZSgwKQotLCBtX2hhc0N1
c3RvbURyb3BUYXJnZXQoZmFsc2UpCi0sIG1fdXNlQmFja0ZvcndhcmRMaXN0KHRydWUpCi0sIG1f
dXNlckFnZW50T3ZlcnJpZGRlbihmYWxzZSkKLSwgbV96b29tTXVsdGlwbGllcigxLjBmKQotLCBt
X21vdXNlQWN0aXZhdGVkKGZhbHNlKQotLCBtX2RyYWdEYXRhKDApCi0sIG1fY3VycmVudENoYXJh
Y3RlckNvZGUoMCkKLSwgbV9pc0JlaW5nRGVzdHJveWVkKGZhbHNlKQotLCBtX3BhaW50Q291bnQo
MCkKLSwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkKLSwgbV9zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZmFsc2UpCi0sIG1fZGlkQ2xvc2UoZmFsc2UpCi0sIG1faW5JTUVDb21w
b3NpdGlvbigwKQotLCBtX3Rvb2xUaXBId25kKDApCi0sIG1fY2xvc2VXaW5kb3dUaW1lcih0aGlz
LCAmV2ViVmlldzo6Y2xvc2VXaW5kb3dUaW1lckZpcmVkKQotLCBtX3RvcExldmVsUGFyZW50KDAp
Ci0sIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2UpCi0sIG1fdHJhbnNwYXJl
bnQoZmFsc2UpCi0sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSwg
bV9sYXN0UGFuWCgwKQotLCBtX2xhc3RQYW5ZKDApCi0sIG1feE92ZXJwYW4oMCkKLSwgbV95T3Zl
cnBhbigwKQorICAgIDogbV9yZWZDb3VudCgwKQorICAgICwgbV9ob3N0V2luZG93KDApCisgICAg
LCBtX3ZpZXdXaW5kb3coMCkKKyAgICAsIG1fbWFpbkZyYW1lKDApCisgICAgLCBtX3BhZ2UoMCkK
KyAgICAsIG1faGFzQ3VzdG9tRHJvcFRhcmdldChmYWxzZSkKKyAgICAsIG1fdXNlQmFja0Zvcndh
cmRMaXN0KHRydWUpCisgICAgLCBtX3VzZXJBZ2VudE92ZXJyaWRkZW4oZmFsc2UpCisgICAgLCBt
X3pvb21NdWx0aXBsaWVyKDEuMGYpCisgICAgLCBtX21vdXNlQWN0aXZhdGVkKGZhbHNlKQorICAg
ICwgbV9kcmFnRGF0YSgwKQorICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyQ29kZSgwKQorICAgICwg
bV9pc0JlaW5nRGVzdHJveWVkKGZhbHNlKQorICAgICwgbV9wYWludENvdW50KDApCisgICAgLCBt
X2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnKGZhbHNlKQorICAgICwgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoZmFsc2UpCisgICAgLCBtX2RpZENsb3NlKGZhbHNlKQorICAgICwgbV9pbklN
RUNvbXBvc2l0aW9uKDApCisgICAgLCBtX3Rvb2xUaXBId25kKDApCisgICAgLCBtX2Nsb3NlV2lu
ZG93VGltZXIodGhpcywgJldlYlZpZXc6OmNsb3NlV2luZG93VGltZXJGaXJlZCkKKyAgICAsIG1f
dG9wTGV2ZWxQYXJlbnQoMCkKKyAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUo
ZmFsc2UpCisgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQorICAgICwgbV9zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQorICAgICwgbV9sYXN0UGFuWCgwKQorICAgICwgbV9s
YXN0UGFuWSgwKQorICAgICwgbV94T3ZlcnBhbigwKQorICAgICwgbV95T3ZlcnBhbigwKQogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSwgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcoZmFsc2UpCisgICAgLCBtX2xheWVyUmVuZGVyZXIoMCkKKyAgICAsIG1faXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKGZhbHNlKQogI2VuZGlmCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFk
aW5nKCk7CkBAIC0zNDksNiArMzQ5LDEwIEBAIFdlYlZpZXc6OldlYlZpZXcoKQogCiBXZWJWaWV3
Ojp+V2ViVmlldygpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHNl
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpOworI2VuZGlmCisKICAgICBkZWxldGVCYWNr
aW5nU3RvcmUoKTsKIAogICAgIC8vIDxyZGFyOi8vNDk1ODM4Mj4gbV92aWV3V2luZG93IHdpbGwg
YmUgZGVzdHJveWVkIHdoZW4gbV9ob3N0V2luZG93IGlzIGRlc3Ryb3llZCwgYnV0IGlmCkBAIC0x
ODI0LDcgKzE4MjgsNyBAQCBib29sIFdlYlZpZXc6OmtleVByZXNzKFdQQVJBTSBjaGFyQ29kZSwg
CiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+a2V5RXZlbnQoa2V5RXZlbnQpOwog
fQogCi1zdGF0aWMgYm9vbCByZWdpc3RlcldlYlZpZXdXaW5kb3dDbGFzcygpCitib29sIFdlYlZp
ZXc6OnJlZ2lzdGVyV2ViVmlld1dpbmRvd0NsYXNzKCkKIHsKICAgICBzdGF0aWMgYm9vbCBoYXZl
UmVnaXN0ZXJlZFdpbmRvd0NsYXNzID0gZmFsc2U7CiAgICAgaWYgKGhhdmVSZWdpc3RlcmVkV2lu
ZG93Q2xhc3MpCkBAIC0xODY4LDkgKzE4NzIsOCBAQCBzdGF0aWMgSFdORCBmaW5kVG9wTGV2ZWxQ
YXJlbnQoSFdORCB3aW5kCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBMUkVTVUxUIENBTExC
QUNLIFdlYlZpZXdXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtKQorTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3OjpXZWJWaWV3V25kUHJv
YyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkK
IHsKLSAgICBMUkVTVUxUIGxSZXN1bHQgPSAwOwogICAgIExPTkdfUFRSIGxvbmdQdHIgPSBHZXRX
aW5kb3dMb25nUHRyKGhXbmQsIDApOwogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSByZWludGVycHJl
dF9jYXN0PFdlYlZpZXcqPihsb25nUHRyKTsKICAgICBXZWJGcmFtZSogbWFpbkZyYW1lSW1wbCA9
IHdlYlZpZXcgPyB3ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkgOiAwOwpAQCAtMTg4MSw2ICsxODg0
LDE0IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICBDT01Q
dHI8V2ViVmlldz4gcHJvdGVjdG9yKHdlYlZpZXcpOwogICAgIEFTU0VSVCh3ZWJWaWV3KTsKIAor
ICAgIHJldHVybiB3ZWJWaWV3LT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFt
KTsKK30KKworTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIExSRVNVTFQg
bFJlc3VsdCA9IDA7CisgICAgV2ViRnJhbWUqIG1haW5GcmFtZUltcGwgPSB0b3BMZXZlbEZyYW1l
KCk7CisKICAgICAvLyBXaW5kb3dzIE1lZGlhIFBsYXllciBoYXMgYSBtb2RhbCBtZXNzYWdlIGxv
b3AgdGhhdCB3aWxsIGRlbGl2ZXIgbWVzc2FnZXMKICAgICAvLyB0byB1cyBhdCBpbmFwcHJvcHJp
YXRlIHRpbWVzIGFuZCB3ZSB3aWxsIGNyYXNoIGlmIHdlIGhhbmRsZSB0aGVtIHdoZW4KICAgICAv
LyB0aGV5IGFyZSBkZWxpdmVyZWQuIFdlIHJlcG9zdCBwYWludCBtZXNzYWdlcyBzbyB0aGF0IHdl
IGV2ZW50dWFsbHkgZ2V0CkBAIC0xODk2LDIyICsxOTA3LDIyIEBAIHN0YXRpYyBMUkVTVUxUIENB
TExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKIAogICAgIHN3aXRjaCAobWVzc2FnZSkgewogICAgICAg
ICBjYXNlIFdNX1BBSU5UOiB7Ci0gICAgICAgICAgICB3ZWJWaWV3LT5wYWludCgwLCAwKTsKKyAg
ICAgICAgICAgIHBhaW50KDAsIDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBXTV9QUklOVENMSUVOVDoKLSAgICAgICAgICAgIHdlYlZpZXctPnBhaW50KChI
REMpd1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgcGFpbnQoKEhEQyl3UGFyYW0sIGxQYXJh
bSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9ERVNUUk9ZOgotICAgICAg
ICAgICAgd2ViVmlldy0+c2V0SXNCZWluZ0Rlc3Ryb3llZCgpOwotICAgICAgICAgICAgd2ViVmll
dy0+Y2xvc2UoKTsKLSAgICAgICAgICAgIHdlYlZpZXctPnJldm9rZURyYWdEcm9wKCk7CisgICAg
ICAgICAgICBzZXRJc0JlaW5nRGVzdHJveWVkKCk7CisgICAgICAgICAgICBjbG9zZSgpOworICAg
ICAgICAgICAgcmV2b2tlRHJhZ0Ryb3AoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdNX0dFU1RVUkVOT1RJRlk6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+Z2Vz
dHVyZU5vdGlmeSh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0gZ2VzdHVy
ZU5vdGlmeSh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBXTV9HRVNUVVJFOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmdlc3R1cmUod1Bh
cmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IGdlc3R1cmUod1BhcmFtLCBsUGFy
YW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fTU9VU0VNT1ZFOgogICAg
ICAgICBjYXNlIFdNX0xCVVRUT05ET1dOOgpAQCAtMTkyNiw0MyArMTkzNyw0MyBAQCBzdGF0aWMg
TFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAgICAgICAgIGNhc2UgV01fTU9VU0VM
RUFWRToKICAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShtYWluRnJhbWVJ
bXBsKSkKICAgICAgICAgICAgICAgICBpZiAoY29yZUZyYW1lLT52aWV3KCktPmRpZEZpcnN0TGF5
b3V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5oYW5kbGVNb3Vz
ZUV2ZW50KG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlZCA9IGhhbmRsZU1vdXNlRXZlbnQobWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fTU9VU0VXSEVFTDoKICAgICAgICAgY2FzZSBX
TV9WSVNUQV9NT1VTRUhXSEVFTDoKICAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0g
Y29yZShtYWluRnJhbWVJbXBsKSkKICAgICAgICAgICAgICAgICBpZiAoY29yZUZyYW1lLT52aWV3
KCktPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJW
aWV3LT5tb3VzZVdoZWVsKHdQYXJhbSwgbFBhcmFtLCBtZXNzYWdlID09IFdNX1ZJU1RBX01PVVNF
SFdIRUVMKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IG1vdXNlV2hlZWwod1BhcmFt
LCBsUGFyYW0sIG1lc3NhZ2UgPT0gV01fVklTVEFfTU9VU0VIV0hFRUwpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgV01fU1lTS0VZRE9XTjoKLSAgICAgICAgICAgIGhhbmRsZWQg
PSB3ZWJWaWV3LT5rZXlEb3duKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAgICAgICAgIGhh
bmRsZWQgPSBrZXlEb3duKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdNX0tFWURPV046Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmll
dy0+a2V5RG93bih3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0ga2V5RG93
bih3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9T
WVNLRVlVUDoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5rZXlVcCh3UGFyYW0sIGxQ
YXJhbSwgdHJ1ZSk7CisgICAgICAgICAgICBoYW5kbGVkID0ga2V5VXAod1BhcmFtLCBsUGFyYW0s
IHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fS0VZVVA6Ci0gICAg
ICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+a2V5VXAod1BhcmFtLCBsUGFyYW0pOworICAgICAg
ICAgICAgaGFuZGxlZCA9IGtleVVwKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdNX1NZU0NIQVI6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmll
dy0+a2V5UHJlc3Mod1BhcmFtLCBsUGFyYW0sIHRydWUpOworICAgICAgICAgICAgaGFuZGxlZCA9
IGtleVByZXNzKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX0NIQVI6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+a2V5UHJl
c3Mod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IGtleVByZXNzKHdQYXJh
bSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAvLyBGSVhNRTogV2UgbmVl
ZCB0byBjaGVjayBXTV9VTklDSEFSIHRvIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJz
ICh0aGF0IGRvbid0IGZpdCBpbiAxNiBiaXRzKS4KICAgICAgICAgY2FzZSBXTV9TSVpFOgotICAg
ICAgICAgICAgaWYgKHdlYlZpZXctPmlzQmVpbmdEZXN0cm95ZWQoKSkKKyAgICAgICAgICAgIGlm
IChpc0JlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgICAgICAgICAgLy8gSWYgc29tZW9uZSBoYXMg
c2VudCB1cyB0aGlzIG1lc3NhZ2Ugd2hpbGUgd2UncmUgYmVpbmcgZGVzdHJveWVkLCB3ZSBzaG91
bGQgYmFpbCBvdXQgc28gd2UgZG9uJ3QgY3Jhc2guCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgICAgIGlmIChsUGFyYW0gIT0gMCkgewotICAgICAgICAgICAgICAgIHdlYlZpZXct
PmRlbGV0ZUJhY2tpbmdTdG9yZSgpOworICAgICAgICAgICAgICAgIGRlbGV0ZUJhY2tpbmdTdG9y
ZSgpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgICAgICBp
ZiAod2ViVmlldy0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAg
ICAgIHdlYlZpZXctPnJlc2l6ZUxheWVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAo
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJlc2l6ZUxh
eWVyUmVuZGVyZXIoKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZy
YW1lID0gY29yZShtYWluRnJhbWVJbXBsKSkKICAgICAgICAgICAgICAgICAgICAgY29yZUZyYW1l
LT52aWV3KCktPnJlc2l6ZShMT1dPUkQobFBhcmFtKSwgSElXT1JEKGxQYXJhbSkpOwpAQCAtMTk3
MywyMSArMTk4NCwyMSBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhI
CiAgICAgICAgICAgICBpZiAod1BhcmFtID09IDApIHsKICAgICAgICAgICAgICAgICAvLyBUaGUg
d2luZG93IGlzIGJlaW5nIGhpZGRlbiAoZS5nLiwgYmVjYXVzZSB3ZSBzd2l0Y2hlZCB0YWJzKS4K
ICAgICAgICAgICAgICAgICAvLyBOdWxsIG91dCBvdXIgYmFja2luZyBzdG9yZS4KLSAgICAgICAg
ICAgICAgICB3ZWJWaWV3LT5kZWxldGVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgICAgICAgICBk
ZWxldGVCYWNraW5nU3RvcmUoKTsKICAgICAgICAgICAgIH0KICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0gICAgICAgICAgICBlbHNlIGlmICh3ZWJWaWV3LT5pc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LT5sYXllclJlbmRlcmVyQmVj
YW1lVmlzaWJsZSgpOworICAgICAgICAgICAgZWxzZSBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkpCisgICAgICAgICAgICAgICAgbGF5ZXJSZW5kZXJlckJlY2FtZVZpc2libGUoKTsKICNl
bmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fU0VURk9DVVM6IHsKICAg
ICAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICAgICAgICAg
IENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGVQcml2YXRlOwotICAgICAg
ICAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkgJiYg
dWlEZWxlZ2F0ZSAmJgorICAgICAgICAgICAgaWYgKFNVQ0NFRURFRChXZWJWaWV3Ojp1aURlbGVn
YXRlKCZ1aURlbGVnYXRlKSkgJiYgdWlEZWxlZ2F0ZSAmJgogICAgICAgICAgICAgICAgIFNVQ0NF
RURFRCh1aURlbGVnYXRlLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVsZWdhdGVQcml2YXRl
LCAodm9pZCoqKSAmdWlEZWxlZ2F0ZVByaXZhdGUpKSAmJiB1aURlbGVnYXRlUHJpdmF0ZSkKLSAg
ICAgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld1JlY2VpdmVkRm9jdXMod2Vi
Vmlldyk7CisgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdSZWNlaXZl
ZEZvY3VzKHRoaXMpOwogCi0gICAgICAgICAgICBGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJv
bGxlciA9IHdlYlZpZXctPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCk7CisgICAgICAgICAgICBG
b2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlciA9IHBhZ2UoKS0+Zm9jdXNDb250cm9sbGVy
KCk7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZm9jdXNDb250cm9sbGVyLT5mb2N1
c2VkRnJhbWUoKSkgewogICAgICAgICAgICAgICAgIC8vIFNlbmQgZm9jdXMgZXZlbnRzIHVubGVz
cyB0aGUgcHJldmlvdXNseSBmb2N1c2VkIHdpbmRvdyBpcyBhCiAgICAgICAgICAgICAgICAgLy8g
Y2hpbGQgb2Ygb3VycyAoZm9yIGV4YW1wbGUgYSBwbHVnaW4pLgpAQCAtMTk5NSw3ICsyMDA2LDcg
QEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAgICAgICAgICAg
ICAgICAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWQodHJ1ZSk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZCh0cnVl
KTsKLSAgICAgICAgICAgICAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWRGcmFtZSh3ZWJW
aWV3LT5wYWdlKCktPm1haW5GcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBmb2N1c0NvbnRyb2xs
ZXItPnNldEZvY3VzZWRGcmFtZShwYWdlKCktPm1haW5GcmFtZSgpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMDAzLDEzICsyMDE0LDEzIEBAIHN0
YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICAgICAgICAgIENPTVB0
cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICAgICAgICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGVQcml2YXRlOwogICAgICAgICAgICAgSFdORCBuZXdG
b2N1c1duZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SFdORD4od1BhcmFtKTsKLSAgICAgICAgICAgIGlm
IChTVUNDRUVERUQod2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpICYmIHVpRGVsZWdh
dGUgJiYKKyAgICAgICAgICAgIGlmIChTVUNDRUVERUQoV2ViVmlldzo6dWlEZWxlZ2F0ZSgmdWlE
ZWxlZ2F0ZSkpICYmIHVpRGVsZWdhdGUgJiYKICAgICAgICAgICAgICAgICBTVUNDRUVERUQodWlE
ZWxlZ2F0ZS0+UXVlcnlJbnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlUHJpdmF0ZSwgKHZvaWQq
KikgJnVpRGVsZWdhdGVQcml2YXRlKSkgJiYgdWlEZWxlZ2F0ZVByaXZhdGUpCi0gICAgICAgICAg
ICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdMb3N0Rm9jdXMod2ViVmlldywgKE9MRV9I
QU5ETEUpKFVMT05HNjQpbmV3Rm9jdXNXbmQpOworICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVQ
cml2YXRlLT53ZWJWaWV3TG9zdEZvY3VzKHRoaXMsIChPTEVfSEFORExFKShVTE9ORzY0KW5ld0Zv
Y3VzV25kKTsKIAotICAgICAgICAgICAgRm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIg
PSB3ZWJWaWV3LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgICAgICAgICAgRm9jdXND
b250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOwog
ICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNDb250cm9sbGVyLT5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKLSAgICAgICAgICAgIHdlYlZpZXctPnJlc2V0SU1FKGZyYW1lKTsKKyAgICAgICAg
ICAgIHJlc2V0SU1FKGZyYW1lKTsKICAgICAgICAgICAgIC8vIFNlbmQgYmx1ciBldmVudHMgdW5s
ZXNzIHdlJ3JlIGxvc2luZyBmb2N1cyB0byBhIGNoaWxkIG9mIG91cnMuCiAgICAgICAgICAgICBp
ZiAoIUlzQ2hpbGQoaFduZCwgbmV3Rm9jdXNXbmQpKQogICAgICAgICAgICAgICAgIGZvY3VzQ29u
dHJvbGxlci0+c2V0Rm9jdXNlZChmYWxzZSk7CkBAIC0yMDIxLDYxICsyMDMyLDYxIEBAIHN0YXRp
YyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICAgICAgfQogICAgICAgICBj
YXNlIFdNX1dJTkRPV1BPU0NIQU5HRUQ6CiAgICAgICAgICAgICBpZiAocmVpbnRlcnByZXRfY2Fz
dDxXSU5ET1dQT1MqPihsUGFyYW0pLT5mbGFncyAmIFNXUF9TSE9XV0lORE9XKQotICAgICAgICAg
ICAgICAgIHdlYlZpZXctPnVwZGF0ZUFjdGl2ZVN0YXRlU29vbigpOworICAgICAgICAgICAgICAg
IHVwZGF0ZUFjdGl2ZVN0YXRlU29vbigpOwogICAgICAgICAgICAgaGFuZGxlZCA9IGZhbHNlOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fQ1VUOgotICAgICAgICAgICAgd2Vi
Vmlldy0+Y3V0KDApOworICAgICAgICAgICAgY3V0KDApOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV01fQ09QWToKLSAgICAgICAgICAgIHdlYlZpZXctPmNvcHkoMCk7CisgICAg
ICAgICAgICBjb3B5KDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fUEFT
VEU6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5wYXN0ZSgwKTsKKyAgICAgICAgICAgIHBhc3RlKDAp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fQ0xFQVI6Ci0gICAgICAgICAg
ICB3ZWJWaWV3LT5kZWxldGVfKDApOworICAgICAgICAgICAgZGVsZXRlXygwKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0NPTU1BTkQ6CiAgICAgICAgICAgICBpZiAoSElX
T1JEKHdQYXJhbSkpCi0gICAgICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmV4ZWNDb21t
YW5kKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgICAgICBoYW5kbGVkID0gZXhlY0NvbW1h
bmQod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgZWxzZSAvLyBJZiB0aGUgaGlnaCB3b3Jk
IG9mIHdQYXJhbSBpcyAwLCB0aGUgbWVzc2FnZSBpcyBmcm9tIGEgbWVudQotICAgICAgICAgICAg
ICAgIHdlYlZpZXctPnBlcmZvcm1Db250ZXh0TWVudUFjdGlvbih3UGFyYW0sIGxQYXJhbSwgZmFs
c2UpOworICAgICAgICAgICAgICAgIHBlcmZvcm1Db250ZXh0TWVudUFjdGlvbih3UGFyYW0sIGxQ
YXJhbSwgZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fTUVOVUNP
TU1BTkQ6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5wZXJmb3JtQ29udGV4dE1lbnVBY3Rpb24od1Bh
cmFtLCBsUGFyYW0sIHRydWUpOworICAgICAgICAgICAgcGVyZm9ybUNvbnRleHRNZW51QWN0aW9u
KHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFdNX0NPTlRFWFRNRU5VOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmhhbmRsZUNv
bnRleHRNZW51RXZlbnQod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IGhh
bmRsZUNvbnRleHRNZW51RXZlbnQod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV01fSU5JVE1FTlVQT1BVUDoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3
ZWJWaWV3LT5vbkluaXRNZW51UG9wdXAod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFu
ZGxlZCA9IG9uSW5pdE1lbnVQb3B1cCh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBXTV9NRUFTVVJFSVRFTToKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3
ZWJWaWV3LT5vbk1lYXN1cmVJdGVtKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRs
ZWQgPSBvbk1lYXN1cmVJdGVtKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdNX0RSQVdJVEVNOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXct
Pm9uRHJhd0l0ZW0od1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IG9uRHJh
d0l0ZW0od1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
V01fVU5JTklUTUVOVVBPUFVQOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uVW5p
bml0TWVudVBvcHVwKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBvblVu
aW5pdE1lbnVQb3B1cCh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXTV9YUF9USEVNRUNIQU5HRUQ6CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUobWFpbkZyYW1lSW1wbCkpIHsKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LT5k
ZWxldGVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgICAgICAgICBkZWxldGVCYWNraW5nU3RvcmUo
KTsKICAgICAgICAgICAgICAgICBjb3JlRnJhbWUtPnBhZ2UoKS0+dGhlbWUoKS0+dGhlbWVDaGFu
Z2VkKCk7CiAgICAgICAgICAgICAgICAgU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCktPnRo
ZW1lQ2hhbmdlZCgpOwogICAgICAgICAgICAgICAgIFJFQ1Qgd2luZG93UmVjdDsKICAgICAgICAg
ICAgICAgICA6OkdldENsaWVudFJlY3QoaFduZCwgJndpbmRvd1JlY3QpOwogICAgICAgICAgICAg
ICAgIDo6SW52YWxpZGF0ZVJlY3QoaFduZCwgJndpbmRvd1JlY3QsIGZhbHNlKTsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICAgICAgICAgaWYgKHdlYlZpZXctPmlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LT5z
ZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHNldFJvb3RMYXllck5lZWRz
RGlzcGxheSgpOwogI2VuZGlmCiAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX01PVVNFQUNUSVZBVEU6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5zZXRNb3Vz
ZUFjdGl2YXRlZCh0cnVlKTsKKyAgICAgICAgICAgIHNldE1vdXNlQWN0aXZhdGVkKHRydWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fR0VURExHQ09ERTogewogICAgICAg
ICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwpAQCAtMjA4Nyw1MyArMjA5
OCw1MyBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAgICAgICAg
ICAgICAgICAgaWYgKGxwTXNnLT5tZXNzYWdlID09IFdNX0tFWURPV04pCiAgICAgICAgICAgICAg
ICAgICAgIGtleUNvZGUgPSAoVUlOVCkgbHBNc2ctPndQYXJhbTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkp
ICYmIHVpRGVsZWdhdGUgJiYKKyAgICAgICAgICAgIGlmIChTVUNDRUVERUQoV2ViVmlldzo6dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpICYmIHVpRGVsZWdhdGUgJiYKICAgICAgICAgICAgICAgICBT
VUNDRUVERUQodWlEZWxlZ2F0ZS0+UXVlcnlJbnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlUHJp
dmF0ZSwgKHZvaWQqKikgJnVpRGVsZWdhdGVQcml2YXRlKSkgJiYgdWlEZWxlZ2F0ZVByaXZhdGUg
JiYKLSAgICAgICAgICAgICAgICBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdH
ZXREbGdDb2RlKHdlYlZpZXcsIGtleUNvZGUsICZkbGdDb2RlKSkpCisgICAgICAgICAgICAgICAg
U1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3R2V0RGxnQ29kZSh0aGlzLCBrZXlD
b2RlLCAmZGxnQ29kZSkpKQogICAgICAgICAgICAgICAgIHJldHVybiBkbGdDb2RlOwogICAgICAg
ICAgICAgaGFuZGxlZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBXTV9HRVRPQkpFQ1Q6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+
b25HZXRPYmplY3Qod1BhcmFtLCBsUGFyYW0sIGxSZXN1bHQpOworICAgICAgICAgICAgaGFuZGxl
ZCA9IG9uR2V0T2JqZWN0KHdQYXJhbSwgbFBhcmFtLCBsUmVzdWx0KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFdNX0lNRV9TVEFSVENPTVBPU0lUSU9OOgotICAgICAgICAgICAg
aGFuZGxlZCA9IHdlYlZpZXctPm9uSU1FU3RhcnRDb21wb3NpdGlvbigpOworICAgICAgICAgICAg
aGFuZGxlZCA9IG9uSU1FU3RhcnRDb21wb3NpdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV01fSU1FX1JFUVVFU1Q6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5vbklNRVJl
cXVlc3Qod1BhcmFtLCBsUGFyYW0sICZsUmVzdWx0KTsKKyAgICAgICAgICAgIG9uSU1FUmVxdWVz
dCh3UGFyYW0sIGxQYXJhbSwgJmxSZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV01fSU1FX0NPTVBPU0lUSU9OOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXct
Pm9uSU1FQ29tcG9zaXRpb24obFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBvbklNRUNv
bXBvc2l0aW9uKGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9J
TUVfRU5EQ09NUE9TSVRJT046Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+b25JTUVF
bmRDb21wb3NpdGlvbigpOworICAgICAgICAgICAgaGFuZGxlZCA9IG9uSU1FRW5kQ29tcG9zaXRp
b24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0lNRV9DSEFSOgotICAg
ICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uSU1FQ2hhcih3UGFyYW0sIGxQYXJhbSk7Cisg
ICAgICAgICAgICBoYW5kbGVkID0gb25JTUVDaGFyKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0lNRV9OT1RJRlk6Ci0gICAgICAgICAgICBoYW5k
bGVkID0gd2ViVmlldy0+b25JTUVOb3RpZnkod1BhcmFtLCBsUGFyYW0sICZsUmVzdWx0KTsKKyAg
ICAgICAgICAgIGhhbmRsZWQgPSBvbklNRU5vdGlmeSh3UGFyYW0sIGxQYXJhbSwgJmxSZXN1bHQp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fSU1FX1NFTEVDVDoKLSAgICAg
ICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5vbklNRVNlbGVjdCh3UGFyYW0sIGxQYXJhbSk7Cisg
ICAgICAgICAgICBoYW5kbGVkID0gb25JTUVTZWxlY3Qod1BhcmFtLCBsUGFyYW0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fSU1FX1NFVENPTlRFWFQ6Ci0gICAgICAgICAg
ICBoYW5kbGVkID0gd2ViVmlldy0+b25JTUVTZXRDb250ZXh0KHdQYXJhbSwgbFBhcmFtKTsKKyAg
ICAgICAgICAgIGhhbmRsZWQgPSBvbklNRVNldENvbnRleHQod1BhcmFtLCBsUGFyYW0pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fVElNRVI6CiAgICAgICAgICAgICBzd2l0
Y2ggKHdQYXJhbSkgewogICAgICAgICAgICAgICAgIGNhc2UgVXBkYXRlQWN0aXZlU3RhdGVUaW1l
cjoKICAgICAgICAgICAgICAgICAgICAgS2lsbFRpbWVyKGhXbmQsIFVwZGF0ZUFjdGl2ZVN0YXRl
VGltZXIpOwotICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LT51cGRhdGVBY3RpdmVTdGF0ZSgp
OworICAgICAgICAgICAgICAgICAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIERlbGV0ZUJhY2tpbmdTdG9yZVRp
bWVyOgotICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LT5kZWxldGVCYWNraW5nU3RvcmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV01fU0VUQ1VSU09SOgotICAgICAgICAgICAgaWYgKGhhbmRsZWQgPSB3ZWJWaWV3LT5w
YWdlKCktPmNocm9tZSgpLT5zZXRDdXJzb3IobGFzdFNldEN1cnNvcikpCisgICAgICAgICAgICBp
ZiAoaGFuZGxlZCA9IHBhZ2UoKS0+Y2hyb21lKCktPnNldEN1cnNvcihsYXN0U2V0Q3Vyc29yKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgX19mYWxsdGhyb3VnaDsKQEAg
LTQ1MDQsNiArNDUxNSwxMCBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hh
bmdlCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luQWxsb3dlZFJ1
blRpbWUocnVuVGltZSk7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAg
c2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKFdLQ0FDRkxheWVyOjph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpOworI2VuZGlmCisKICNpZiBFTkFCTEUo
M0RfQ0FOVkFTKQogICAgIHNldHRpbmdzLT5zZXRFeHBlcmltZW50YWxXZWJHTEVuYWJsZWQodHJ1
ZSk7CiAjZW5kaWYgIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkBAIC01NzMzLDI5ICs1NzQ4LDM4IEBA
IHZvaWQgV2ViVmlldzo6ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYgdXIKIHZvaWQgV2ViVmlldzo6
c2V0Um9vdENoaWxkTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1MYXllciogbGF5ZXIpCiB7CiAgICAg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhsYXllciA/IHRydWUgOiBmYWxzZSk7Ci0gICAgbV9s
YXllclJlbmRlcmVyLnNldFJvb3RDaGlsZExheWVyKGxheWVyKTsKKyAgICBpZiAobV9sYXllclJl
bmRlcmVyKQorICAgICAgICBtX2xheWVyUmVuZGVyZXItPnNldFJvb3RDaGlsZExheWVyKGxheWVy
KTsKIH0KIAogdm9pZCBXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgYWNj
ZWxlcmF0ZWQpCiB7Ci0gICAgaWYgKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID09IGFjY2Vs
ZXJhdGVkKQorICAgIGlmIChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9PSBhY2NlbGVyYXRl
ZCB8fCAhV0tDQUNGTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBhY2NlbGVy
YXRlZDsKLSAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsKLSAgICAgICAgLy8g
Q3JlYXRlIHRoZSByb290IGxheWVyCi0gICAgICAgIEFTU0VSVChtX3ZpZXdXaW5kb3cpOwotICAg
ICAgICBtX2xheWVyUmVuZGVyZXIuc2V0SG9zdFdpbmRvdyhtX3ZpZXdXaW5kb3cpOwotICAgICAg
ICB1cGRhdGVSb290TGF5ZXJDb250ZW50cygpOworICAgIGlmIChhY2NlbGVyYXRlZCkgeworICAg
ICAgICBpZiAobV9sYXllclJlbmRlcmVyKQorICAgICAgICAgICAgZGVsZXRlIG1fbGF5ZXJSZW5k
ZXJlcjsKKworICAgICAgICBtX2xheWVyUmVuZGVyZXIgPSBXS0NBQ0ZMYXllclJlbmRlcmVyOjpj
cmVhdGUoKTsKKyAgICAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikgeworICAgICAgICAgICAgbV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSB0cnVlOworCisgICAgICAgICAgICAvLyBDcmVhdGUg
dGhlIHJvb3QgbGF5ZXIKKyAgICAgICAgICAgIEFTU0VSVChtX3ZpZXdXaW5kb3cpOworICAgICAg
ICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXRIb3N0V2luZG93KG1fdmlld1dpbmRvdyk7CisgICAg
ICAgICAgICB1cGRhdGVSb290TGF5ZXJDb250ZW50cygpOworICAgICAgICB9CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgLy8gVGVhciBkb3duIHRoZSByb290IGxheWVyCi0gICAgICAgIG1fbGF5ZXJS
ZW5kZXJlci5kZXN0cm95UmVuZGVyZXIoKTsKKyAgICAgICAgZGVsZXRlIG1fbGF5ZXJSZW5kZXJl
cjsKKyAgICAgICAgbV9sYXllclJlbmRlcmVyID0gMDsKKyAgICAgICAgbV9pc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgPSBmYWxzZTsKICAgICB9CiB9CiAKIHZvaWQgV2ViVmlldzo6dXBkYXRlUm9v
dExheWVyQ29udGVudHMoKQogewotICAgIGlmICghbV9iYWNraW5nU3RvcmVCaXRtYXApCisgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZUJpdG1hcCB8fCAhbV9sYXllclJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBHZXQgdGhlIGJhY2tpbmcgc3RvcmUgaW50byBhIENHSW1hZ2UKQEAg
LTU3NzYsNyArNTgwMCw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlUm9vdExheWVyQ29udGVudHMo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDR1JlbmRlcmluZ0ludGVu
dERlZmF1bHQpKTsKIAogICAgIC8vIEhhbmQgdGhlIENHSW1hZ2UgdG8gQ0FDRiBmb3IgY29tcG9z
aXRpbmcKLSAgICBtX2xheWVyUmVuZGVyZXIuc2V0Um9vdENvbnRlbnRzKGJhY2tpbmdTdG9yZUlt
YWdlLmdldCgpKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnNldFJvb3RDb250ZW50cyhiYWNraW5n
U3RvcmVJbWFnZS5nZXQoKSk7CiAKICAgICAvLyBTZXQgdGhlIGZyYW1lIGFuZCBzY3JvbGwgcG9z
aXRpb24KICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX21haW5GcmFtZSk7CkBAIC01Nzg0
LDcgKzU4MDgsNyBAQCB2b2lkIFdlYlZpZXc6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gY29yZUZyYW1lLT52aWV3
KCk7CiAKLSAgICBtX2xheWVyUmVuZGVyZXIuc2V0U2Nyb2xsRnJhbWUoZnJhbWVWaWV3LT5sYXlv
dXRXaWR0aCgpLCBmcmFtZVZpZXctPmxheW91dEhlaWdodCgpLCAKKyAgICBtX2xheWVyUmVuZGVy
ZXItPnNldFNjcm9sbEZyYW1lKGZyYW1lVmlldy0+bGF5b3V0V2lkdGgoKSwgZnJhbWVWaWV3LT5s
YXlvdXRIZWlnaHQoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVZp
ZXctPnNjcm9sbFgoKSwgZnJhbWVWaWV3LT5zY3JvbGxZKCkpOwogfQogI2VuZGlmCkluZGV4OiBX
ZWJLaXQvd2luL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlZpZXcuaAko
cmV2aXNpb24gNTE2MDApCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtODY0LDEwICs4NjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb3dubG9hZFVSTChjb25zdCBX
ZWJDb3JlOjpLVVJMJik7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
Ym9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZzsgfQotICAgIHZvaWQgcmVzaXplTGF5ZXJSZW5kZXJlcigpIHsgbV9s
YXllclJlbmRlcmVyLnJlc2l6ZSgpOyB9Ci0gICAgdm9pZCBsYXllclJlbmRlcmVyQmVjYW1lVmlz
aWJsZSgpIHsgbV9sYXllclJlbmRlcmVyLmNyZWF0ZVJlbmRlcmVyKCk7IH0KLSAgICB2b2lkIHNl
dFJvb3RMYXllck5lZWRzRGlzcGxheSgpIHsgbV9sYXllclJlbmRlcmVyLnNldE5lZWRzRGlzcGxh
eSgpOyB9CisgICAgdm9pZCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKSB7IGlmIChtX2xheWVy
UmVuZGVyZXIpIG1fbGF5ZXJSZW5kZXJlci0+c2V0TmVlZHNEaXNwbGF5KCk7IH0KICAgICB2b2lk
IHNldFJvb3RDaGlsZExheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqIGxheWVyKTsKICNlbmRp
ZgogCkBAIC04OTUsNiArODkyLDEwIEBAIHByaXZhdGU6CiAgICAgRFdPUkQgbV9sYXN0RHJvcEVm
ZmVjdDsKIAogcHJvdGVjdGVkOgorICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyV2ViVmlld1dpbmRv
d0NsYXNzKCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSFdO
RCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOworICAg
IExSRVNVTFQgQ0FMTEJBQ0sgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFN
IHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisKICAgICBISU1DIGdldElNTUNvbnRleHQoKTsKICAg
ICB2b2lkIHJlbGVhc2VJTU1Db250ZXh0KEhJTUMpOwogICAgIHN0YXRpYyBib29sIGFsbG93U2l0
ZVNwZWNpZmljSGFja3MoKSB7IHJldHVybiBzX2FsbG93U2l0ZVNwZWNpZmljSGFja3M7IH0gCkBA
IC05ODIsMTAgKzk4MywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgbG9uZyBtX3lPdmVycGFuOwogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgaXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7IH0K
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7CiAgICAgdm9pZCB1cGRh
dGVSb290TGF5ZXJDb250ZW50cygpOworICAgIHZvaWQgcmVzaXplTGF5ZXJSZW5kZXJlcigpIHsg
bV9sYXllclJlbmRlcmVyLT5yZXNpemUoKTsgfQorICAgIHZvaWQgbGF5ZXJSZW5kZXJlckJlY2Ft
ZVZpc2libGUoKSB7IG1fbGF5ZXJSZW5kZXJlci0+Y3JlYXRlUmVuZGVyZXIoKTsgfQogCi0gICAg
V2ViQ29yZTo6V0tDQUNGTGF5ZXJSZW5kZXJlciBtX2xheWVyUmVuZGVyZXI7CisgICAgV2ViQ29y
ZTo6V0tDQUNGTGF5ZXJSZW5kZXJlciogbV9sYXllclJlbmRlcmVyOwogICAgIGJvb2wgbV9pc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmc7CiAjZW5kaWYKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44199</attachid>
            <date>2009-12-02 17:34:30 -0800</date>
            <delta_ts>2009-12-03 17:46:03 -0800</delta_ts>
            <desc>Same replacement patch with a better changelog message</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>30875</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTYxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDktMTItMDIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGF5IGxvYWQgRExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAg
ICBJZiB0aGUgRExMcyAoZDNkOSBhbmQgUXVhcnR6Q29yZSkuIGFyZSBub3QgcHJlc2VudCBpdAor
ICAgICAgICB0dXJucyBvZmYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5kIGF2b2lkcyBjYWxs
aW5nIAorICAgICAgICBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgRExMcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpkaXNwbGF5SW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpXS0NBQ0ZMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6fldL
Q0FDRkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpkaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpiZWNvbWVSb290TGF5ZXJGb3JDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXROZWVkc0NvbW1pdCk6CisgICAgICAg
IChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YWRkU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
V0tDQUNGTGF5ZXI6Omluc2VydFN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxh
eWVyOjppbnNlcnRTdWJsYXllckFib3ZlTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNG
TGF5ZXI6Omluc2VydFN1YmxheWVyQmVsb3dMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NB
Q0ZMYXllcjo6cmVwbGFjZVN1YmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVy
OjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6
cmVtb3ZlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmluZGV4T2ZT
dWJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6YW5jZXN0b3JPclNlbGZX
aXRoU3VwZXJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0Qm91bmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXRGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXS0NBQ0ZMYXllcjo6cm9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FD
RkxheWVyOjpyZW1vdmVBbGxTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5
ZXI6OnNldFN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6bW92ZVN1
YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c3VwZXJsYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRkxheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OmNm
VmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKwogMjAwOS0xMi0w
MiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
Q0ZMYXllci5jcHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsMzcgQEAK
ICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZDb250ZXh0Lmg+CiAjaW5jbHVkZSA8UXVhcnR6Q29y
ZS9DQVJlbmRlci5oPgogCisjcHJhZ21hIGNvbW1lbnQobGliLCAiZDNkOSIpDQorI3ByYWdtYSBj
b21tZW50KGxpYiwgImQzZHg5IikNCisjcHJhZ21hIGNvbW1lbnQobGliLCAiUXVhcnR6Q29yZSIp
DQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK2Jvb2wg
V0tDQUNGTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKQ0KK3sNCisgICAg
c3RhdGljIGJvb2wgYXZhaWxhYmxlOw0KKyAgICBzdGF0aWMgYm9vbCB0ZXN0ZWQ7DQorDQorICAg
IGlmICh0ZXN0ZWQpDQorICAgICAgICByZXR1cm4gYXZhaWxhYmxlOw0KKw0KKyAgICB0ZXN0ZWQg
PSB0cnVlOw0KKyAgICBITU9EVUxFIGxpYnJhcnkgPSBMb2FkTGlicmFyeShURVhUKCJkM2Q5LmRs
bCIpKTsNCisgICAgaWYgKCFsaWJyYXJ5KQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAg
ICBGcmVlTGlicmFyeShsaWJyYXJ5KTsNCisgICAgbGlicmFyeSA9IExvYWRMaWJyYXJ5KFRFWFQo
IlF1YXJ0ekNvcmUuZGxsIikpOw0KKyAgICBpZiAoIWxpYnJhcnkpDQorICAgICAgICByZXR1cm4g
ZmFsc2U7DQorDQorICAgIEZyZWVMaWJyYXJ5KGxpYnJhcnkpOw0KKyAgICBhdmFpbGFibGUgPSB0
cnVlOw0KKyAgICByZXR1cm4gYXZhaWxhYmxlOw0KK30NCisNCiBzdGF0aWMgdm9pZCBkaXNwbGF5
SW5Db250ZXh0KENBQ0ZMYXllclJlZiBsYXllciwgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAg
ICAgQVNTRVJUX0FSRyhsYXllciwgV0tDQUNGTGF5ZXI6OmxheWVyKGxheWVyKSk7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgJKHJldmlzaW9uIDUx
NjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNTAsNyArNTAsOCBAQCBjbGFzcyBXS0NBQ0ZUaW1pbmdGdW5jdGlvbjsK
IAogY2xhc3MgV0tDQUNGTGF5ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXS0NBQ0ZMYXllcj4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdLQ0FDRkxheWVyPiBjcmVhdGUoQ0ZTdHJp
bmdSZWYgY2xhc3NOYW1lLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXI9MCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFdLQ0FDRkxheWVyKGNsYXNzTmFtZSwgb3duZXIpKTsgfQorICAgIHN0YXRpYyBi
b29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXS0NBQ0ZMYXllcj4gY3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NM
YXllckNBQ0YqIG93bmVyID0gMCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdLQ0FDRkxheWVyKGNs
YXNzTmFtZSwgb3duZXIpKTsgfQogICAgIHN0YXRpYyBXS0NBQ0ZMYXllciogbGF5ZXIoQ0FDRkxh
eWVyUmVmIGxheWVyKSB7IHJldHVybiBzdGF0aWNfY2FzdDxXS0NBQ0ZMYXllcio+KENBQ0ZMYXll
ckdldFVzZXJEYXRhKGxheWVyKSk7IH0KIAogICAgIH5XS0NBQ0ZMYXllcigpOwpAQCAtNjIsMTAg
KzYzLDIyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1
ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiAgICAgewogICAgICAgICBDQVRy
YW5zZm9ybTNEIHQ7Ci0gICAgICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFsdWUu
bTEyKCk7IHQubTEzID0gdmFsdWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAotICAgICAg
ICB0Lm0yMSA9IHZhbHVlLm0yMSgpOyB0Lm0yMiA9IHZhbHVlLm0yMigpOyB0Lm0yMyA9IHZhbHVl
Lm0yMygpOyB0Lm0yNCA9IHZhbHVlLm0yNCgpOyAKLSAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEo
KTsgdC5tMzIgPSB2YWx1ZS5tMzIoKTsgdC5tMzMgPSB2YWx1ZS5tMzMoKTsgdC5tMzQgPSB2YWx1
ZS5tMzQoKTsgCi0gICAgICAgIHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQy
KCk7IHQubTQzID0gdmFsdWUubTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAorICAgICAgICB0
Lm0xMSA9IHZhbHVlLm0xMSgpOworICAgICAgICB0Lm0xMiA9IHZhbHVlLm0xMigpOworICAgICAg
ICB0Lm0xMyA9IHZhbHVlLm0xMygpOworICAgICAgICB0Lm0xNCA9IHZhbHVlLm0xNCgpOyAKKyAg
ICAgICAgdC5tMjEgPSB2YWx1ZS5tMjEoKTsKKyAgICAgICAgdC5tMjIgPSB2YWx1ZS5tMjIoKTsK
KyAgICAgICAgdC5tMjMgPSB2YWx1ZS5tMjMoKTsKKyAgICAgICAgdC5tMjQgPSB2YWx1ZS5tMjQo
KTsgCisgICAgICAgIHQubTMxID0gdmFsdWUubTMxKCk7CisgICAgICAgIHQubTMyID0gdmFsdWUu
bTMyKCk7CisgICAgICAgIHQubTMzID0gdmFsdWUubTMzKCk7CisgICAgICAgIHQubTM0ID0gdmFs
dWUubTM0KCk7IAorICAgICAgICB0Lm00MSA9IHZhbHVlLm00MSgpOworICAgICAgICB0Lm00MiA9
IHZhbHVlLm00MigpOworICAgICAgICB0Lm00MyA9IHZhbHVlLm00MygpOworICAgICAgICB0Lm00
NCA9IHZhbHVlLm00NCgpOyAKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFk
b3B0Q0YsIENBQ0ZWZWN0b3JDcmVhdGVUcmFuc2Zvcm0odCkpOwogICAgIH0KICAgICBzdGF0aWMg
UmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBGbG9hdFBvaW50JiB2YWx1ZSkKQEAg
LTc3LDggKzkwLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4g
Y2ZWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgewogICAgICAgICBDR1JlY3QgcjsK
LSAgICAgICAgci5vcmlnaW4ueCA9IHJlY3QueCgpOyByLm9yaWdpbi55ID0gcmVjdC55KCk7Ci0g
ICAgICAgIHIuc2l6ZS53aWR0aCA9IHJlY3Qud2lkdGgoKTsgci5zaXplLmhlaWdodCA9IHJlY3Qu
aGVpZ2h0KCk7CisgICAgICAgIHIub3JpZ2luLnggPSByZWN0LngoKTsKKyAgICAgICAgci5vcmln
aW4ueSA9IHJlY3QueSgpOworICAgICAgICByLnNpemUud2lkdGggPSByZWN0LndpZHRoKCk7Cisg
ICAgICAgIHIuc2l6ZS5oZWlnaHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBDR0Zsb2F0IHZb
NF0gPSB7IENHUmVjdEdldE1pblgociksIENHUmVjdEdldE1pblkociksIENHUmVjdEdldE1heFgo
ciksIENHUmVjdEdldE1heFkocikgfTsKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVS
ZWY+KEFkb3B0Q0YsIENBQ0ZWZWN0b3JDcmVhdGUoNCwgdikpOwogICAgIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIu
Y3BwCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dL
Q0FDRkxheWVyUmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSwxMyBAQCB2
b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6OmRpZEZsdXNoQ29udGV4CiAgICAgd2luZG93LT5yZW5k
ZXJTb29uKCk7CiB9CiAKK1dLQ0FDRkxheWVyUmVuZGVyZXIqIFdLQ0FDRkxheWVyUmVuZGVyZXI6
OmNyZWF0ZSgpCit7CisgICAgaWYgKCFXS0NBQ0ZMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IFdLQ0FDRkxh
eWVyUmVuZGVyZXI7Cit9CisKIFdLQ0FDRkxheWVyUmVuZGVyZXI6OldLQ0FDRkxheWVyUmVuZGVy
ZXIoKQogICAgIDogbV90cmllZFRvQ3JlYXRlRDNEUmVuZGVyZXIoZmFsc2UpCiAgICAgLCBtX3Jl
bmRlckNvbnRleHQoMCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FD
RkxheWVyUmVuZGVyZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIChodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTUpCiBjbGFzcyBXS0NBQ0ZMYXllclJlbmRl
cmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBXS0NBQ0ZMYXllclJlbmRl
cmVyKCk7CisgICAgc3RhdGljIFdLQ0FDRkxheWVyUmVuZGVyZXIqIGNyZWF0ZSgpOwogICAgIH5X
S0NBQ0ZMYXllclJlbmRlcmVyKCk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQo
Q0FDRkNvbnRleHRSZWYpOwpAQCAtNzIsNiArNzIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgV0tDQUNG
TGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAK
IHByaXZhdGU6CisgICAgV0tDQUNGTGF5ZXJSZW5kZXJlcigpOworCiAgICAgdm9pZCByZW5kZXJU
aW1lckZpcmVkKFRpbWVyPFdLQ0FDRkxheWVyUmVuZGVyZXI+Kik7CiAKICAgICBDR1JlY3QgYm91
bmRzKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBAQAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKKyNp
ZiBFTkFCTEUoM0RfQ0FOVkFTKSAgICAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NT
dHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkluZGV4OiBXZWJLaXQvd2lu
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24g
NTE2MTgpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM2IEBACisyMDA5LTEyLTAyICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAgRGVsYXkgbG9h
ZCBETExzIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTYKKyAgICAgICAgCisgICAgICAgIEFkZCBs
b2dpYyB0byB0dXJuIG9mZiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpZiBkM2Q5IG9yIFF1YXJ0
ekNvcmUKKyAgICAgICAgRExMcyBhcmUgbm90IHByZXNlbnQuCisgICAgICAgIAorICAgICAgICBU
aGlzIHBhdGNoIGFsc28gY2hhbmdlcyB0aGUgV0tDQUNGTGF5ZXJSZW5kZXJlciB0byBiZSBhIHBv
aW50ZXIuCisgICAgICAgIFRoaXMgYWxsb3dzIG1lIHRvIGhhdmUgYSBjcmVhdGUoKSBtZXRob2Qg
d2hpY2ggd2lsbCBub3QgY3JlYXRlIGl0IHdoZW4KKyAgICAgICAgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcgaXMgZGlzYWJsZWQgYmVjYXVzZSBvZiBtaXNzaW5nIERMTHMuIEl0IAorICAgICAgICBh
dm9pZHMgaGF2aW5nIHRvIGRvIHNvIG1hbnkgY2hlY2tzLiBJIGFsc28gbWFkZSBXZWJWaWV3V25k
UHJvYyAKKyAgICAgICAgYSBtZW1iZXIgZnVuY3Rpb24gdG8gYWxsb3cgc2V2ZXJhbCBtZXRob2Rz
IHRvIGJlIG1hZGUgcHJvdGVjdGVkLCB3aGljaAorICAgICAgICBhbGxvd3MgbWUgdG8gYXZvaWQg
ZG9pbmcgYXZhaWxhYmlsaXR5IGNoZWNrcyB0aGVyZSBhcyB3ZWxsLgorCisgICAgICAgICogV2Vi
Vmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6
On5XZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnJlZ2lzdGVyV2ViVmlld1dpbmRvd0NsYXNz
KToKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXdXbmRQcm9jKToKKyAgICAgICAgKFdlYlZpZXc6
OnduZFByb2MpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToK
KyAgICAgICAgKFdlYlZpZXc6OnNldFJvb3RDaGlsZExheWVyKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAoV2ViVmlldzo6dXBkYXRlUm9v
dExheWVyQ29udGVudHMpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXc6
OnNldFJvb3RMYXllck5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJWaWV3Ojppc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAoV2ViVmlldzo6cmVzaXplTGF5ZXJSZW5kZXJlcik6
CisgICAgICAgIChXZWJWaWV3OjpsYXllclJlbmRlcmVyQmVjYW1lVmlzaWJsZSk6CisKIDIwMDkt
MTItMDIgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1v
dmUgc2V0VmFsdWVGb3JVc2VyIHRvIHRoZSBlbmQgb2YgdGhlIERPTUhUTUxJbnB1dEVsZW1lbnQg
aW50ZXJmYWNlCkluZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcxLDcgKzI3MSw2IEBAIHN0YXRpYyBjb25zdCBp
bnQgbWF4VG9vbFRpcFdpZHRoID0gMjUwOwogc3RhdGljIGNvbnN0IGludCBkZWxheUJlZm9yZURl
bGV0aW5nQmFja2luZ1N0b3JlTXNlYyA9IDUwMDA7CiAKIHN0YXRpYyBBVE9NIHJlZ2lzdGVyV2Vi
VmlldygpOwotc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSFdORCBoV25k
LCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwogCiBzdGF0aWMg
dm9pZCBpbml0aWFsaXplU3RhdGljT2JzZXJ2ZXJzKCk7CiAKQEAgLTI5NSwzNiArMjk0LDM3IEBA
IGVudW0gewogYm9vbCBXZWJWaWV3OjpzX2FsbG93U2l0ZVNwZWNpZmljSGFja3MgPSBmYWxzZTsK
IAogV2ViVmlldzo6V2ViVmlldygpCi06IG1fcmVmQ291bnQoMCkKLSwgbV9ob3N0V2luZG93KDAp
Ci0sIG1fdmlld1dpbmRvdygwKQotLCBtX21haW5GcmFtZSgwKQotLCBtX3BhZ2UoMCkKLSwgbV9o
YXNDdXN0b21Ecm9wVGFyZ2V0KGZhbHNlKQotLCBtX3VzZUJhY2tGb3J3YXJkTGlzdCh0cnVlKQot
LCBtX3VzZXJBZ2VudE92ZXJyaWRkZW4oZmFsc2UpCi0sIG1fem9vbU11bHRpcGxpZXIoMS4wZikK
LSwgbV9tb3VzZUFjdGl2YXRlZChmYWxzZSkKLSwgbV9kcmFnRGF0YSgwKQotLCBtX2N1cnJlbnRD
aGFyYWN0ZXJDb2RlKDApCi0sIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKLSwgbV9wYWludENv
dW50KDApCi0sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0sIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQotLCBtX2RpZENsb3NlKGZhbHNlKQotLCBtX2luSU1F
Q29tcG9zaXRpb24oMCkKLSwgbV90b29sVGlwSHduZCgwKQotLCBtX2Nsb3NlV2luZG93VGltZXIo
dGhpcywgJldlYlZpZXc6OmNsb3NlV2luZG93VGltZXJGaXJlZCkKLSwgbV90b3BMZXZlbFBhcmVu
dCgwKQotLCBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyQWN0aXZlKGZhbHNlKQotLCBtX3RyYW5z
cGFyZW50KGZhbHNlKQotLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
Ci0sIG1fbGFzdFBhblgoMCkKLSwgbV9sYXN0UGFuWSgwKQotLCBtX3hPdmVycGFuKDApCi0sIG1f
eU92ZXJwYW4oMCkKKyAgICA6IG1fcmVmQ291bnQoMCkKKyAgICAsIG1faG9zdFdpbmRvdygwKQor
ICAgICwgbV92aWV3V2luZG93KDApCisgICAgLCBtX21haW5GcmFtZSgwKQorICAgICwgbV9wYWdl
KDApCisgICAgLCBtX2hhc0N1c3RvbURyb3BUYXJnZXQoZmFsc2UpCisgICAgLCBtX3VzZUJhY2tG
b3J3YXJkTGlzdCh0cnVlKQorICAgICwgbV91c2VyQWdlbnRPdmVycmlkZGVuKGZhbHNlKQorICAg
ICwgbV96b29tTXVsdGlwbGllcigxLjBmKQorICAgICwgbV9tb3VzZUFjdGl2YXRlZChmYWxzZSkK
KyAgICAsIG1fZHJhZ0RhdGEoMCkKKyAgICAsIG1fY3VycmVudENoYXJhY3RlckNvZGUoMCkKKyAg
ICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKKyAgICAsIG1fcGFpbnRDb3VudCgwKQorICAg
ICwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkKKyAgICAsIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGZhbHNlKQorICAgICwgbV9kaWRDbG9zZShmYWxzZSkKKyAgICAsIG1f
aW5JTUVDb21wb3NpdGlvbigwKQorICAgICwgbV90b29sVGlwSHduZCgwKQorICAgICwgbV9jbG9z
ZVdpbmRvd1RpbWVyKHRoaXMsICZXZWJWaWV3OjpjbG9zZVdpbmRvd1RpbWVyRmlyZWQpCisgICAg
LCBtX3RvcExldmVsUGFyZW50KDApCisgICAgLCBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyQWN0
aXZlKGZhbHNlKQorICAgICwgbV90cmFuc3BhcmVudChmYWxzZSkKKyAgICAsIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fbGFzdFBhblgoMCkKKyAgICAs
IG1fbGFzdFBhblkoMCkKKyAgICAsIG1feE92ZXJwYW4oMCkKKyAgICAsIG1feU92ZXJwYW4oMCkK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0sIG1faXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKGZhbHNlKQorICAgICwgbV9sYXllclJlbmRlcmVyKDApCisgICAgLCBtX2lzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKICNlbmRpZgogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwpAQCAtMzQ5LDYgKzM0OSwxMCBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKIAogV2Vi
Vmlldzo6fldlYlZpZXcoKQogeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGZhbHNlKTsKKyNlbmRpZgorCiAgICAgZGVsZXRl
QmFja2luZ1N0b3JlKCk7CiAKICAgICAvLyA8cmRhcjovLzQ5NTgzODI+IG1fdmlld1dpbmRvdyB3
aWxsIGJlIGRlc3Ryb3llZCB3aGVuIG1faG9zdFdpbmRvdyBpcyBkZXN0cm95ZWQsIGJ1dCBpZgpA
QCAtMTgyNCw3ICsxODI4LDcgQEAgYm9vbCBXZWJWaWV3OjprZXlQcmVzcyhXUEFSQU0gY2hhckNv
ZGUsIAogICAgIHJldHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmtleUV2ZW50KGtleUV2ZW50
KTsKIH0KIAotc3RhdGljIGJvb2wgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKQorYm9vbCBX
ZWJWaWV3OjpyZWdpc3RlcldlYlZpZXdXaW5kb3dDbGFzcygpCiB7CiAgICAgc3RhdGljIGJvb2wg
aGF2ZVJlZ2lzdGVyZWRXaW5kb3dDbGFzcyA9IGZhbHNlOwogICAgIGlmIChoYXZlUmVnaXN0ZXJl
ZFdpbmRvd0NsYXNzKQpAQCAtMTg2OCw5ICsxODcyLDggQEAgc3RhdGljIEhXTkQgZmluZFRvcExl
dmVsUGFyZW50KEhXTkQgd2luZAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgTFJFU1VMVCBD
QUxMQkFDSyBXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6V2ViVmlld1du
ZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFy
YW0pCiB7Ci0gICAgTFJFU1VMVCBsUmVzdWx0ID0gMDsKICAgICBMT05HX1BUUiBsb25nUHRyID0g
R2V0V2luZG93TG9uZ1B0cihoV25kLCAwKTsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJWaWV3Kj4obG9uZ1B0cik7CiAgICAgV2ViRnJhbWUqIG1haW5GcmFtZUlt
cGwgPSB3ZWJWaWV3ID8gd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpIDogMDsKQEAgLTE4ODEsNiAr
MTg4NCwxNCBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAgICAg
Q09NUHRyPFdlYlZpZXc+IHByb3RlY3Rvcih3ZWJWaWV3KTsKICAgICBBU1NFUlQod2ViVmlldyk7
CiAKKyAgICByZXR1cm4gd2ViVmlldy0+d25kUHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7Cit9CisKK0xSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6d25kUHJvYyhIV05EIGhXbmQs
IFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBMUkVT
VUxUIGxSZXN1bHQgPSAwOworICAgIFdlYkZyYW1lKiBtYWluRnJhbWVJbXBsID0gdG9wTGV2ZWxG
cmFtZSgpOworCiAgICAgLy8gV2luZG93cyBNZWRpYSBQbGF5ZXIgaGFzIGEgbW9kYWwgbWVzc2Fn
ZSBsb29wIHRoYXQgd2lsbCBkZWxpdmVyIG1lc3NhZ2VzCiAgICAgLy8gdG8gdXMgYXQgaW5hcHBy
b3ByaWF0ZSB0aW1lcyBhbmQgd2Ugd2lsbCBjcmFzaCBpZiB3ZSBoYW5kbGUgdGhlbSB3aGVuCiAg
ICAgLy8gdGhleSBhcmUgZGVsaXZlcmVkLiBXZSByZXBvc3QgcGFpbnQgbWVzc2FnZXMgc28gdGhh
dCB3ZSBldmVudHVhbGx5IGdldApAQCAtMTg5NiwyMiArMTkwNywyMiBAQCBzdGF0aWMgTFJFU1VM
VCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAKICAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKICAg
ICAgICAgY2FzZSBXTV9QQUlOVDogewotICAgICAgICAgICAgd2ViVmlldy0+cGFpbnQoMCwgMCk7
CisgICAgICAgICAgICBwYWludCgwLCAwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgV01fUFJJTlRDTElFTlQ6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5wYWlu
dCgoSERDKXdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIHBhaW50KChIREMpd1BhcmFtLCBs
UGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fREVTVFJPWToKLSAg
ICAgICAgICAgIHdlYlZpZXctPnNldElzQmVpbmdEZXN0cm95ZWQoKTsKLSAgICAgICAgICAgIHdl
YlZpZXctPmNsb3NlKCk7Ci0gICAgICAgICAgICB3ZWJWaWV3LT5yZXZva2VEcmFnRHJvcCgpOwor
ICAgICAgICAgICAgc2V0SXNCZWluZ0Rlc3Ryb3llZCgpOworICAgICAgICAgICAgY2xvc2UoKTsK
KyAgICAgICAgICAgIHJldm9rZURyYWdEcm9wKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXTV9HRVNUVVJFTk9USUZZOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXct
Pmdlc3R1cmVOb3RpZnkod1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IGdl
c3R1cmVOb3RpZnkod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV01fR0VTVFVSRToKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5nZXN0dXJl
KHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBnZXN0dXJlKHdQYXJhbSwg
bFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX01PVVNFTU9WRToK
ICAgICAgICAgY2FzZSBXTV9MQlVUVE9ORE9XTjoKQEAgLTE5MjYsNDMgKzE5MzcsNDMgQEAgc3Rh
dGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAgICAgICBjYXNlIFdNX01P
VVNFTEVBVkU6CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobWFpbkZy
YW1lSW1wbCkpCiAgICAgICAgICAgICAgICAgaWYgKGNvcmVGcmFtZS0+dmlldygpLT5kaWRGaXJz
dExheW91dCgpKQotICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+aGFuZGxl
TW91c2VFdmVudChtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICAgICAgICAg
IGhhbmRsZWQgPSBoYW5kbGVNb3VzZUV2ZW50KG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX01PVVNFV0hFRUw6CiAgICAgICAgIGNh
c2UgV01fVklTVEFfTU9VU0VIV0hFRUw6CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFt
ZSA9IGNvcmUobWFpbkZyYW1lSW1wbCkpCiAgICAgICAgICAgICAgICAgaWYgKGNvcmVGcmFtZS0+
dmlldygpLT5kaWRGaXJzdExheW91dCgpKQotICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0g
d2ViVmlldy0+bW91c2VXaGVlbCh3UGFyYW0sIGxQYXJhbSwgbWVzc2FnZSA9PSBXTV9WSVNUQV9N
T1VTRUhXSEVFTCk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSBtb3VzZVdoZWVsKHdQ
YXJhbSwgbFBhcmFtLCBtZXNzYWdlID09IFdNX1ZJU1RBX01PVVNFSFdIRUVMKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX1NZU0tFWURPV046Ci0gICAgICAgICAgICBoYW5k
bGVkID0gd2ViVmlldy0+a2V5RG93bih3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CisgICAgICAgICAg
ICBoYW5kbGVkID0ga2V5RG93bih3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXTV9LRVlET1dOOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdl
YlZpZXctPmtleURvd24od1BhcmFtLCBsUGFyYW0pOworICAgICAgICAgICAgaGFuZGxlZCA9IGtl
eURvd24od1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
V01fU1lTS0VZVVA6Ci0gICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+a2V5VXAod1BhcmFt
LCBsUGFyYW0sIHRydWUpOworICAgICAgICAgICAgaGFuZGxlZCA9IGtleVVwKHdQYXJhbSwgbFBh
cmFtLCB0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0tFWVVQOgot
ICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmtleVVwKHdQYXJhbSwgbFBhcmFtKTsKKyAg
ICAgICAgICAgIGhhbmRsZWQgPSBrZXlVcCh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXTV9TWVNDSEFSOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdl
YlZpZXctPmtleVByZXNzKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAgICAgICAgIGhhbmRs
ZWQgPSBrZXlQcmVzcyh3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBXTV9DSEFSOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPmtl
eVByZXNzKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBrZXlQcmVzcyh3
UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgLy8gRklYTUU6IFdl
IG5lZWQgdG8gY2hlY2sgV01fVU5JQ0hBUiB0byBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFj
dGVycyAodGhhdCBkb24ndCBmaXQgaW4gMTYgYml0cykuCiAgICAgICAgIGNhc2UgV01fU0laRToK
LSAgICAgICAgICAgIGlmICh3ZWJWaWV3LT5pc0JlaW5nRGVzdHJveWVkKCkpCisgICAgICAgICAg
ICBpZiAoaXNCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICAgICAgICAgIC8vIElmIHNvbWVvbmUg
aGFzIHNlbnQgdXMgdGhpcyBtZXNzYWdlIHdoaWxlIHdlJ3JlIGJlaW5nIGRlc3Ryb3llZCwgd2Ug
c2hvdWxkIGJhaWwgb3V0IHNvIHdlIGRvbid0IGNyYXNoLgogICAgICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgICAgICBpZiAobFBhcmFtICE9IDApIHsKLSAgICAgICAgICAgICAgICB3ZWJW
aWV3LT5kZWxldGVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgICAgICAgICBkZWxldGVCYWNraW5n
U3RvcmUoKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICAgICAg
ICAgaWYgKHdlYlZpZXctPmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICAgICAg
ICAgICAgICB3ZWJWaWV3LT5yZXNpemVMYXllclJlbmRlcmVyKCk7CisgICAgICAgICAgICAgICAg
aWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICAgICAgICAgICAgICByZXNp
emVMYXllclJlbmRlcmVyKCk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUobWFpbkZyYW1lSW1wbCkpCiAgICAgICAgICAgICAgICAgICAgIGNvcmVG
cmFtZS0+dmlldygpLT5yZXNpemUoTE9XT1JEKGxQYXJhbSksIEhJV09SRChsUGFyYW0pKTsKQEAg
LTE5NzMsMjEgKzE5ODQsMjEgQEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFBy
b2MoSAogICAgICAgICAgICAgaWYgKHdQYXJhbSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgLy8g
VGhlIHdpbmRvdyBpcyBiZWluZyBoaWRkZW4gKGUuZy4sIGJlY2F1c2Ugd2Ugc3dpdGNoZWQgdGFi
cykuCiAgICAgICAgICAgICAgICAgLy8gTnVsbCBvdXQgb3VyIGJhY2tpbmcgc3RvcmUuCi0gICAg
ICAgICAgICAgICAgd2ViVmlldy0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CisgICAgICAgICAgICAg
ICAgZGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgICAgICAgICB9CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAgZWxzZSBpZiAod2ViVmlldy0+aXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAgd2ViVmlldy0+bGF5ZXJSZW5kZXJl
ckJlY2FtZVZpc2libGUoKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpKQorICAgICAgICAgICAgICAgIGxheWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxlKCk7
CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX1NFVEZPQ1VTOiB7
CiAgICAgICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgICAg
ICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJpdmF0ZTsKLSAg
ICAgICAgICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkp
ICYmIHVpRGVsZWdhdGUgJiYKKyAgICAgICAgICAgIGlmIChTVUNDRUVERUQoV2ViVmlldzo6dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpICYmIHVpRGVsZWdhdGUgJiYKICAgICAgICAgICAgICAgICBT
VUNDRUVERUQodWlEZWxlZ2F0ZS0+UXVlcnlJbnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlUHJp
dmF0ZSwgKHZvaWQqKikgJnVpRGVsZWdhdGVQcml2YXRlKSkgJiYgdWlEZWxlZ2F0ZVByaXZhdGUp
Ci0gICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdSZWNlaXZlZEZvY3Vz
KHdlYlZpZXcpOworICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3UmVj
ZWl2ZWRGb2N1cyh0aGlzKTsKIAotICAgICAgICAgICAgRm9jdXNDb250cm9sbGVyKiBmb2N1c0Nv
bnRyb2xsZXIgPSB3ZWJWaWV3LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgICAgICAg
ICAgRm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBwYWdlKCktPmZvY3VzQ29udHJv
bGxlcigpOwogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGZvY3VzQ29udHJvbGxlci0+
Zm9jdXNlZEZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICAvLyBTZW5kIGZvY3VzIGV2ZW50cyB1
bmxlc3MgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCB3aW5kb3cgaXMgYQogICAgICAgICAgICAgICAg
IC8vIGNoaWxkIG9mIG91cnMgKGZvciBleGFtcGxlIGEgcGx1Z2luKS4KQEAgLTE5OTUsNyArMjAw
Niw3IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICAgICAg
ICAgICAgICAgICAgZm9jdXNDb250cm9sbGVyLT5zZXRGb2N1c2VkKHRydWUpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWQo
dHJ1ZSk7Ci0gICAgICAgICAgICAgICAgZm9jdXNDb250cm9sbGVyLT5zZXRGb2N1c2VkRnJhbWUo
d2ViVmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKSk7CisgICAgICAgICAgICAgICAgZm9jdXNDb250
cm9sbGVyLT5zZXRGb2N1c2VkRnJhbWUocGFnZSgpLT5tYWluRnJhbWUoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjAwMywxMyArMjAxNCwxMyBA
QCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAgICAgICAgICAgICBD
T01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgICAgICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJpdmF0ZTsKICAgICAgICAgICAgIEhXTkQg
bmV3Rm9jdXNXbmQgPSByZWludGVycHJldF9jYXN0PEhXTkQ+KHdQYXJhbSk7Ci0gICAgICAgICAg
ICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURl
bGVnYXRlICYmCisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKFdlYlZpZXc6OnVpRGVsZWdhdGUo
JnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYmCiAgICAgICAgICAgICAgICAgU1VDQ0VFREVE
KHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0ZVByaXZhdGUsICh2
b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYmIHVpRGVsZWdhdGVQcml2YXRlKQotICAgICAg
ICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3TG9zdEZvY3VzKHdlYlZpZXcsIChP
TEVfSEFORExFKShVTE9ORzY0KW5ld0ZvY3VzV25kKTsKKyAgICAgICAgICAgICAgICB1aURlbGVn
YXRlUHJpdmF0ZS0+d2ViVmlld0xvc3RGb2N1cyh0aGlzLCAoT0xFX0hBTkRMRSkoVUxPTkc2NClu
ZXdGb2N1c1duZCk7CiAKLSAgICAgICAgICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDb250cm9s
bGVyID0gd2ViVmlldy0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAgICAgICAgICAgIEZv
Y3VzQ29udHJvbGxlciogZm9jdXNDb250cm9sbGVyID0gcGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KTsKICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzQ29udHJvbGxlci0+Zm9jdXNlZE9y
TWFpbkZyYW1lKCk7Ci0gICAgICAgICAgICB3ZWJWaWV3LT5yZXNldElNRShmcmFtZSk7CisgICAg
ICAgICAgICByZXNldElNRShmcmFtZSk7CiAgICAgICAgICAgICAvLyBTZW5kIGJsdXIgZXZlbnRz
IHVubGVzcyB3ZSdyZSBsb3NpbmcgZm9jdXMgdG8gYSBjaGlsZCBvZiBvdXJzLgogICAgICAgICAg
ICAgaWYgKCFJc0NoaWxkKGhXbmQsIG5ld0ZvY3VzV25kKSkKICAgICAgICAgICAgICAgICBmb2N1
c0NvbnRyb2xsZXItPnNldEZvY3VzZWQoZmFsc2UpOwpAQCAtMjAyMSw2MSArMjAzMiw2MSBAQCBz
dGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhICiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBXTV9XSU5ET1dQT1NDSEFOR0VEOgogICAgICAgICAgICAgaWYgKHJlaW50ZXJwcmV0
X2Nhc3Q8V0lORE9XUE9TKj4obFBhcmFtKS0+ZmxhZ3MgJiBTV1BfU0hPV1dJTkRPVykKLSAgICAg
ICAgICAgICAgICB3ZWJWaWV3LT51cGRhdGVBY3RpdmVTdGF0ZVNvb24oKTsKKyAgICAgICAgICAg
ICAgICB1cGRhdGVBY3RpdmVTdGF0ZVNvb24oKTsKICAgICAgICAgICAgIGhhbmRsZWQgPSBmYWxz
ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0NVVDoKLSAgICAgICAgICAg
IHdlYlZpZXctPmN1dCgwKTsKKyAgICAgICAgICAgIGN1dCgwKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdNX0NPUFk6Ci0gICAgICAgICAgICB3ZWJWaWV3LT5jb3B5KDApOwor
ICAgICAgICAgICAgY29weSgwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdN
X1BBU1RFOgotICAgICAgICAgICAgd2ViVmlldy0+cGFzdGUoMCk7CisgICAgICAgICAgICBwYXN0
ZSgwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0NMRUFSOgotICAgICAg
ICAgICAgd2ViVmlldy0+ZGVsZXRlXygwKTsKKyAgICAgICAgICAgIGRlbGV0ZV8oMCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9DT01NQU5EOgogICAgICAgICAgICAgaWYg
KEhJV09SRCh3UGFyYW0pKQotICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5leGVj
Q29tbWFuZCh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICAgICAgaGFuZGxlZCA9IGV4ZWND
b21tYW5kKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGVsc2UgLy8gSWYgdGhlIGhpZ2gg
d29yZCBvZiB3UGFyYW0gaXMgMCwgdGhlIG1lc3NhZ2UgaXMgZnJvbSBhIG1lbnUKLSAgICAgICAg
ICAgICAgICB3ZWJWaWV3LT5wZXJmb3JtQ29udGV4dE1lbnVBY3Rpb24od1BhcmFtLCBsUGFyYW0s
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICBwZXJmb3JtQ29udGV4dE1lbnVBY3Rpb24od1BhcmFt
LCBsUGFyYW0sIGZhbHNlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX01F
TlVDT01NQU5EOgotICAgICAgICAgICAgd2ViVmlldy0+cGVyZm9ybUNvbnRleHRNZW51QWN0aW9u
KHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAgICAgICAgIHBlcmZvcm1Db250ZXh0TWVudUFj
dGlvbih3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXTV9DT05URVhUTUVOVToKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5oYW5k
bGVDb250ZXh0TWVudUV2ZW50KHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQg
PSBoYW5kbGVDb250ZXh0TWVudUV2ZW50KHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFdNX0lOSVRNRU5VUE9QVVA6Ci0gICAgICAgICAgICBoYW5kbGVk
ID0gd2ViVmlldy0+b25Jbml0TWVudVBvcHVwKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAg
IGhhbmRsZWQgPSBvbkluaXRNZW51UG9wdXAod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgV01fTUVBU1VSRUlURU06Ci0gICAgICAgICAgICBoYW5kbGVk
ID0gd2ViVmlldy0+b25NZWFzdXJlSXRlbSh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBo
YW5kbGVkID0gb25NZWFzdXJlSXRlbSh3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBXTV9EUkFXSVRFTToKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJW
aWV3LT5vbkRyYXdJdGVtKHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBv
bkRyYXdJdGVtKHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdNX1VOSU5JVE1FTlVQT1BVUDoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5v
blVuaW5pdE1lbnVQb3B1cCh3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0g
b25VbmluaXRNZW51UG9wdXAod1BhcmFtLCBsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV01fWFBfVEhFTUVDSEFOR0VEOgogICAgICAgICAgICAgaWYgKEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKG1haW5GcmFtZUltcGwpKSB7Ci0gICAgICAgICAgICAgICAgd2ViVmll
dy0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CisgICAgICAgICAgICAgICAgZGVsZXRlQmFja2luZ1N0
b3JlKCk7CiAgICAgICAgICAgICAgICAgY29yZUZyYW1lLT5wYWdlKCktPnRoZW1lKCktPnRoZW1l
Q2hhbmdlZCgpOwogICAgICAgICAgICAgICAgIFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgp
LT50aGVtZUNoYW5nZWQoKTsKICAgICAgICAgICAgICAgICBSRUNUIHdpbmRvd1JlY3Q7CiAgICAg
ICAgICAgICAgICAgOjpHZXRDbGllbnRSZWN0KGhXbmQsICZ3aW5kb3dSZWN0KTsKICAgICAgICAg
ICAgICAgICA6OkludmFsaWRhdGVSZWN0KGhXbmQsICZ3aW5kb3dSZWN0LCBmYWxzZSk7CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAgICAgIGlmICh3ZWJWaWV3
LT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgd2ViVmll
dy0+c2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgaWYgKGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICAgICAgICAgICAgICBzZXRSb290TGF5ZXJO
ZWVkc0Rpc3BsYXkoKTsKICNlbmRpZgogICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBXTV9NT1VTRUFDVElWQVRFOgotICAgICAgICAgICAgd2ViVmlldy0+c2V0
TW91c2VBY3RpdmF0ZWQodHJ1ZSk7CisgICAgICAgICAgICBzZXRNb3VzZUFjdGl2YXRlZCh0cnVl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0dFVERMR0NPREU6IHsKICAg
ICAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKQEAgLTIwODcsNTMg
KzIwOTgsNTMgQEAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAg
ICAgICAgICAgICAgIGlmIChscE1zZy0+bWVzc2FnZSA9PSBXTV9LRVlET1dOKQogICAgICAgICAg
ICAgICAgICAgICBrZXlDb2RlID0gKFVJTlQpIGxwTXNnLT53UGFyYW07CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdh
dGUpKSAmJiB1aURlbGVnYXRlICYmCisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKFdlYlZpZXc6
OnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYmCiAgICAgICAgICAgICAg
ICAgU1VDQ0VFREVEKHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0
ZVByaXZhdGUsICh2b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYmIHVpRGVsZWdhdGVQcml2
YXRlICYmCi0gICAgICAgICAgICAgICAgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlLT53ZWJW
aWV3R2V0RGxnQ29kZSh3ZWJWaWV3LCBrZXlDb2RlLCAmZGxnQ29kZSkpKQorICAgICAgICAgICAg
ICAgIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld0dldERsZ0NvZGUodGhpcywg
a2V5Q29kZSwgJmRsZ0NvZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZGxnQ29kZTsKICAg
ICAgICAgICAgIGhhbmRsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgV01fR0VUT0JKRUNUOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZp
ZXctPm9uR2V0T2JqZWN0KHdQYXJhbSwgbFBhcmFtLCBsUmVzdWx0KTsKKyAgICAgICAgICAgIGhh
bmRsZWQgPSBvbkdldE9iamVjdCh3UGFyYW0sIGxQYXJhbSwgbFJlc3VsdCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfU1RBUlRDT01QT1NJVElPTjoKLSAgICAgICAg
ICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5vbklNRVN0YXJ0Q29tcG9zaXRpb24oKTsKKyAgICAgICAg
ICAgIGhhbmRsZWQgPSBvbklNRVN0YXJ0Q29tcG9zaXRpb24oKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdNX0lNRV9SRVFVRVNUOgotICAgICAgICAgICAgd2ViVmlldy0+b25J
TUVSZXF1ZXN0KHdQYXJhbSwgbFBhcmFtLCAmbFJlc3VsdCk7CisgICAgICAgICAgICBvbklNRVJl
cXVlc3Qod1BhcmFtLCBsUGFyYW0sICZsUmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX0lNRV9DT01QT1NJVElPTjoKLSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJW
aWV3LT5vbklNRUNvbXBvc2l0aW9uKGxQYXJhbSk7CisgICAgICAgICAgICBoYW5kbGVkID0gb25J
TUVDb21wb3NpdGlvbihsUGFyYW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
V01fSU1FX0VORENPTVBPU0lUSU9OOgotICAgICAgICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPm9u
SU1FRW5kQ29tcG9zaXRpb24oKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBvbklNRUVuZENvbXBv
c2l0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfQ0hBUjoK
LSAgICAgICAgICAgIGhhbmRsZWQgPSB3ZWJWaWV3LT5vbklNRUNoYXIod1BhcmFtLCBsUGFyYW0p
OworICAgICAgICAgICAgaGFuZGxlZCA9IG9uSU1FQ2hhcih3UGFyYW0sIGxQYXJhbSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9JTUVfTk9USUZZOgotICAgICAgICAgICAg
aGFuZGxlZCA9IHdlYlZpZXctPm9uSU1FTm90aWZ5KHdQYXJhbSwgbFBhcmFtLCAmbFJlc3VsdCk7
CisgICAgICAgICAgICBoYW5kbGVkID0gb25JTUVOb3RpZnkod1BhcmFtLCBsUGFyYW0sICZsUmVz
dWx0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0lNRV9TRUxFQ1Q6Ci0g
ICAgICAgICAgICBoYW5kbGVkID0gd2ViVmlldy0+b25JTUVTZWxlY3Qod1BhcmFtLCBsUGFyYW0p
OworICAgICAgICAgICAgaGFuZGxlZCA9IG9uSU1FU2VsZWN0KHdQYXJhbSwgbFBhcmFtKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX0lNRV9TRVRDT05URVhUOgotICAgICAg
ICAgICAgaGFuZGxlZCA9IHdlYlZpZXctPm9uSU1FU2V0Q29udGV4dCh3UGFyYW0sIGxQYXJhbSk7
CisgICAgICAgICAgICBoYW5kbGVkID0gb25JTUVTZXRDb250ZXh0KHdQYXJhbSwgbFBhcmFtKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX1RJTUVSOgogICAgICAgICAgICAg
c3dpdGNoICh3UGFyYW0pIHsKICAgICAgICAgICAgICAgICBjYXNlIFVwZGF0ZUFjdGl2ZVN0YXRl
VGltZXI6CiAgICAgICAgICAgICAgICAgICAgIEtpbGxUaW1lcihoV25kLCBVcGRhdGVBY3RpdmVT
dGF0ZVRpbWVyKTsKLSAgICAgICAgICAgICAgICAgICAgd2ViVmlldy0+dXBkYXRlQWN0aXZlU3Rh
dGUoKTsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZlU3RhdGUoKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBEZWxldGVCYWNraW5nU3Rv
cmVUaW1lcjoKLSAgICAgICAgICAgICAgICAgICAgd2ViVmlldy0+ZGVsZXRlQmFja2luZ1N0b3Jl
KCk7CisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdNX1NFVENVUlNPUjoKLSAgICAgICAgICAgIGlmIChoYW5kbGVkID0gd2ViVmll
dy0+cGFnZSgpLT5jaHJvbWUoKS0+c2V0Q3Vyc29yKGxhc3RTZXRDdXJzb3IpKQorICAgICAgICAg
ICAgaWYgKGhhbmRsZWQgPSBwYWdlKCktPmNocm9tZSgpLT5zZXRDdXJzb3IobGFzdFNldEN1cnNv
cikpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIF9fZmFsbHRocm91Z2g7
CkBAIC00NTA0LDYgKzQ1MTUsMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNl
c0NoYW5nZQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbkFsbG93
ZWRSdW5UaW1lKHJ1blRpbWUpOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChXS0NBQ0ZMYXll
cjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpKTsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKDNEX0NBTlZBUykKICAgICBzZXR0aW5ncy0+c2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVk
KHRydWUpOwogI2VuZGlmICAvLyBFTkFCTEUoM0RfQ0FOVkFTKQpAQCAtNTczMywyOSArNTc0OCwz
OCBAQCB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVyCiB2b2lkIFdlYlZp
ZXc6OnNldFJvb3RDaGlsZExheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqIGxheWVyKQogewog
ICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0cnVlIDogZmFsc2UpOwotICAg
IG1fbGF5ZXJSZW5kZXJlci5zZXRSb290Q2hpbGRMYXllcihsYXllcik7CisgICAgaWYgKG1fbGF5
ZXJSZW5kZXJlcikKKyAgICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXRSb290Q2hpbGRMYXllcihs
YXllcik7CiB9CiAKIHZvaWQgV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29s
IGFjY2VsZXJhdGVkKQogewotICAgIGlmIChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9PSBh
Y2NlbGVyYXRlZCkKKyAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPT0gYWNjZWxl
cmF0ZWQgfHwgIVdLQ0FDRkxheWVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gYWNj
ZWxlcmF0ZWQ7Ci0gICAgaWYgKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKSB7Ci0gICAgICAg
IC8vIENyZWF0ZSB0aGUgcm9vdCBsYXllcgotICAgICAgICBBU1NFUlQobV92aWV3V2luZG93KTsK
LSAgICAgICAgbV9sYXllclJlbmRlcmVyLnNldEhvc3RXaW5kb3cobV92aWV3V2luZG93KTsKLSAg
ICAgICAgdXBkYXRlUm9vdExheWVyQ29udGVudHMoKTsKKyAgICBpZiAoYWNjZWxlcmF0ZWQpIHsK
KyAgICAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKKyAgICAgICAgICAgIGRlbGV0ZSBtX2xheWVy
UmVuZGVyZXI7CisKKyAgICAgICAgbV9sYXllclJlbmRlcmVyID0gV0tDQUNGTGF5ZXJSZW5kZXJl
cjo6Y3JlYXRlKCk7CisgICAgICAgIGlmIChtX2xheWVyUmVuZGVyZXIpIHsKKyAgICAgICAgICAg
IG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gdHJ1ZTsKKworICAgICAgICAgICAgLy8gQ3Jl
YXRlIHRoZSByb290IGxheWVyCisgICAgICAgICAgICBBU1NFUlQobV92aWV3V2luZG93KTsKKyAg
ICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0SG9zdFdpbmRvdyhtX3ZpZXdXaW5kb3cpOwor
ICAgICAgICAgICAgdXBkYXRlUm9vdExheWVyQ29udGVudHMoKTsKKyAgICAgICAgfQogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIFRlYXIgZG93biB0aGUgcm9vdCBsYXllcgotICAgICAgICBtX2xh
eWVyUmVuZGVyZXIuZGVzdHJveVJlbmRlcmVyKCk7CisgICAgICAgIGRlbGV0ZSBtX2xheWVyUmVu
ZGVyZXI7CisgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9IDA7CisgICAgICAgIG1faXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nID0gZmFsc2U7CiAgICAgfQogfQogCiB2b2lkIFdlYlZpZXc6OnVwZGF0
ZVJvb3RMYXllckNvbnRlbnRzKCkKIHsKLSAgICBpZiAoIW1fYmFja2luZ1N0b3JlQml0bWFwKQor
ICAgIGlmICghbV9iYWNraW5nU3RvcmVCaXRtYXAgfHwgIW1fbGF5ZXJSZW5kZXJlcikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gR2V0IHRoZSBiYWNraW5nIHN0b3JlIGludG8gYSBDR0ltYWdl
CkBAIC01Nzc2LDcgKzU4MDAsNyBAQCB2b2lkIFdlYlZpZXc6OnVwZGF0ZVJvb3RMYXllckNvbnRl
bnRzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0dSZW5kZXJpbmdJ
bnRlbnREZWZhdWx0KSk7CiAKICAgICAvLyBIYW5kIHRoZSBDR0ltYWdlIHRvIENBQ0YgZm9yIGNv
bXBvc2l0aW5nCi0gICAgbV9sYXllclJlbmRlcmVyLnNldFJvb3RDb250ZW50cyhiYWNraW5nU3Rv
cmVJbWFnZS5nZXQoKSk7CisgICAgbV9sYXllclJlbmRlcmVyLT5zZXRSb290Q29udGVudHMoYmFj
a2luZ1N0b3JlSW1hZ2UuZ2V0KCkpOwogCiAgICAgLy8gU2V0IHRoZSBmcmFtZSBhbmQgc2Nyb2xs
IHBvc2l0aW9uCiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJhbWUpOwpAQCAt
NTc4NCw3ICs1ODA4LDcgQEAgdm9pZCBXZWJWaWV3Ojp1cGRhdGVSb290TGF5ZXJDb250ZW50cygp
CiAgICAgICAgIHJldHVybjsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGNvcmVGcmFtZS0+
dmlldygpOwogCi0gICAgbV9sYXllclJlbmRlcmVyLnNldFNjcm9sbEZyYW1lKGZyYW1lVmlldy0+
bGF5b3V0V2lkdGgoKSwgZnJhbWVWaWV3LT5sYXlvdXRIZWlnaHQoKSwgCisgICAgbV9sYXllclJl
bmRlcmVyLT5zZXRTY3JvbGxGcmFtZShmcmFtZVZpZXctPmxheW91dFdpZHRoKCksIGZyYW1lVmll
dy0+bGF5b3V0SGVpZ2h0KCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJh
bWVWaWV3LT5zY3JvbGxYKCksIGZyYW1lVmlldy0+c2Nyb2xsWSgpKTsKIH0KICNlbmRpZgpJbmRl
eDogV2ViS2l0L3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3
LmgJKHJldmlzaW9uIDUxNjAwKQorKysgV2ViS2l0L3dpbi9XZWJWaWV3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg2NCwxMCArODY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZG93bmxvYWRVUkwoY29u
c3QgV2ViQ29yZTo6S1VSTCYpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
ICAgIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmc7IH0KLSAgICB2b2lkIHJlc2l6ZUxheWVyUmVuZGVyZXIoKSB7
IG1fbGF5ZXJSZW5kZXJlci5yZXNpemUoKTsgfQotICAgIHZvaWQgbGF5ZXJSZW5kZXJlckJlY2Ft
ZVZpc2libGUoKSB7IG1fbGF5ZXJSZW5kZXJlci5jcmVhdGVSZW5kZXJlcigpOyB9Ci0gICAgdm9p
ZCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKSB7IG1fbGF5ZXJSZW5kZXJlci5zZXROZWVkc0Rp
c3BsYXkoKTsgfQorICAgIHZvaWQgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgeyBpZiAobV9s
YXllclJlbmRlcmVyKSBtX2xheWVyUmVuZGVyZXItPnNldE5lZWRzRGlzcGxheSgpOyB9CiAgICAg
dm9pZCBzZXRSb290Q2hpbGRMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBsYXllcik7CiAj
ZW5kaWYKIApAQCAtODk1LDYgKzg5MiwxMCBAQCBwcml2YXRlOgogICAgIERXT1JEIG1fbGFzdERy
b3BFZmZlY3Q7CiAKIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlcldlYlZpZXdX
aW5kb3dDbGFzcygpOworICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9j
KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsK
KyAgICBMUkVTVUxUIENBTExCQUNLIHduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOworCiAgICAgSElNQyBnZXRJTU1Db250ZXh0KCk7
CiAgICAgdm9pZCByZWxlYXNlSU1NQ29udGV4dChISU1DKTsKICAgICBzdGF0aWMgYm9vbCBhbGxv
d1NpdGVTcGVjaWZpY0hhY2tzKCkgeyByZXR1cm4gc19hbGxvd1NpdGVTcGVjaWZpY0hhY2tzOyB9
IApAQCAtOTgyLDEwICs5ODMsMTMgQEAgcHJvdGVjdGVkOgogICAgIGxvbmcgbV95T3ZlcnBhbjsK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29sIGlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
OyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wpOwogICAgIHZvaWQg
dXBkYXRlUm9vdExheWVyQ29udGVudHMoKTsKKyAgICB2b2lkIHJlc2l6ZUxheWVyUmVuZGVyZXIo
KSB7IG1fbGF5ZXJSZW5kZXJlci0+cmVzaXplKCk7IH0KKyAgICB2b2lkIGxheWVyUmVuZGVyZXJC
ZWNhbWVWaXNpYmxlKCkgeyBtX2xheWVyUmVuZGVyZXItPmNyZWF0ZVJlbmRlcmVyKCk7IH0KIAot
ICAgIFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXIgbV9sYXllclJlbmRlcmVyOworICAgIFdl
YkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXIqIG1fbGF5ZXJSZW5kZXJlcjsKICAgICBib29sIG1f
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiB9Owo=
</data>
<flag name="review"
          id="25996"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44280</attachid>
            <date>2009-12-03 17:46:03 -0800</date>
            <delta_ts>2009-12-04 09:24:10 -0800</delta_ts>
            <desc>Replacement patch with all issues addressed.</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>9652</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTY2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICBE
ZWxheSBsb2FkIERMTHMgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg1NgorICAgICAgICAKKyAgICAg
ICAgQWRkIGxvZ2ljIHRvIHR1cm4gb2ZmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlmIGQzZDkg
b3IgUXVhcnR6Q29yZQorICAgICAgICBETExzIGFyZSBub3QgcHJlc2VudC4KKyAgICAgICAgCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSBXS0NBQ0ZMYXllclJlbmRlcmVyIHRv
IGJlIGEgcG9pbnRlci4KKyAgICAgICAgVGhpcyBhbGxvd3MgbWUgdG8gaGF2ZSBhIGNyZWF0ZSgp
IG1ldGhvZCB3aGljaCB3aWxsIG5vdCBjcmVhdGUgaXQgd2hlbgorICAgICAgICBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBpcyBkaXNhYmxlZCBiZWNhdXNlIG9mIG1pc3NpbmcgRExMcy4gSXQgCisg
ICAgICAgIGF2b2lkcyBoYXZpbmcgdG8gZG8gc28gbWFueSBjaGVja3MuIEkgYWxzbyBtYWRlIFdl
YlZpZXdXbmRQcm9jIAorICAgICAgICBhIG1lbWJlciBmdW5jdGlvbiB0byBhbGxvdyBzZXZlcmFs
IG1ldGhvZHMgdG8gYmUgbWFkZSBwcm90ZWN0ZWQsIHdoaWNoCisgICAgICAgIGFsbG93cyBtZSB0
byBhdm9pZCBkb2luZyBhdmFpbGFiaWxpdHkgY2hlY2tzIHRoZXJlIGFzIHdlbGwuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorCiAyMDA5LTEyLTAzICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHAJKHJl
dmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8UXVhcnR6
Q29yZS9DQUNGQ29udGV4dC5oPgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FSZW5kZXIuaD4KIAor
I3ByYWdtYSBjb21tZW50KGxpYiwgIlF1YXJ0ekNvcmUiKQ0KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9XS0NBQ0ZMYXllci5oCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUw
LDcgQEAgY2xhc3MgV0tDQUNGVGltaW5nRnVuY3Rpb247CiAKIGNsYXNzIFdLQ0FDRkxheWVyIDog
cHVibGljIFJlZkNvdW50ZWQ8V0tDQUNGTGF5ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXS0NBQ0ZMYXllcj4gY3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhp
Y3NMYXllckNBQ0YqIG93bmVyPTApIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXS0NBQ0ZMYXllcihj
bGFzc05hbWUsIG93bmVyKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4g
Y3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyID0g
MCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdLQ0FDRkxheWVyKGNsYXNzTmFtZSwgb3duZXIpKTsg
fQogICAgIHN0YXRpYyBXS0NBQ0ZMYXllciogbGF5ZXIoQ0FDRkxheWVyUmVmIGxheWVyKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxXS0NBQ0ZMYXllcio+KENBQ0ZMYXllckdldFVzZXJEYXRhKGxheWVy
KSk7IH0KIAogICAgIH5XS0NBQ0ZMYXllcigpOwpAQCAtNjIsMTAgKzYyLDIyIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdmFsdWUpCiAgICAgewogICAgICAgICBDQVRyYW5zZm9ybTNEIHQ7Ci0gICAg
ICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFsdWUubTEyKCk7IHQubTEzID0gdmFs
dWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAotICAgICAgICB0Lm0yMSA9IHZhbHVlLm0y
MSgpOyB0Lm0yMiA9IHZhbHVlLm0yMigpOyB0Lm0yMyA9IHZhbHVlLm0yMygpOyB0Lm0yNCA9IHZh
bHVlLm0yNCgpOyAKLSAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEoKTsgdC5tMzIgPSB2YWx1ZS5t
MzIoKTsgdC5tMzMgPSB2YWx1ZS5tMzMoKTsgdC5tMzQgPSB2YWx1ZS5tMzQoKTsgCi0gICAgICAg
IHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQyKCk7IHQubTQzID0gdmFsdWUu
bTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAorICAgICAgICB0Lm0xMSA9IHZhbHVlLm0xMSgp
OworICAgICAgICB0Lm0xMiA9IHZhbHVlLm0xMigpOworICAgICAgICB0Lm0xMyA9IHZhbHVlLm0x
MygpOworICAgICAgICB0Lm0xNCA9IHZhbHVlLm0xNCgpOyAKKyAgICAgICAgdC5tMjEgPSB2YWx1
ZS5tMjEoKTsKKyAgICAgICAgdC5tMjIgPSB2YWx1ZS5tMjIoKTsKKyAgICAgICAgdC5tMjMgPSB2
YWx1ZS5tMjMoKTsKKyAgICAgICAgdC5tMjQgPSB2YWx1ZS5tMjQoKTsgCisgICAgICAgIHQubTMx
ID0gdmFsdWUubTMxKCk7CisgICAgICAgIHQubTMyID0gdmFsdWUubTMyKCk7CisgICAgICAgIHQu
bTMzID0gdmFsdWUubTMzKCk7CisgICAgICAgIHQubTM0ID0gdmFsdWUubTM0KCk7IAorICAgICAg
ICB0Lm00MSA9IHZhbHVlLm00MSgpOworICAgICAgICB0Lm00MiA9IHZhbHVlLm00MigpOworICAg
ICAgICB0Lm00MyA9IHZhbHVlLm00MygpOworICAgICAgICB0Lm00NCA9IHZhbHVlLm00NCgpOyAK
ICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFkb3B0Q0YsIENBQ0ZWZWN0b3JD
cmVhdGVUcmFuc2Zvcm0odCkpOwogICAgIH0KICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJl
Zj4gY2ZWYWx1ZShjb25zdCBGbG9hdFBvaW50JiB2YWx1ZSkKQEAgLTc3LDggKzg5LDEwIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiAgICAgewogICAgICAgICBDR1JlY3QgcjsKLSAgICAgICAgci5vcmlnaW4u
eCA9IHJlY3QueCgpOyByLm9yaWdpbi55ID0gcmVjdC55KCk7Ci0gICAgICAgIHIuc2l6ZS53aWR0
aCA9IHJlY3Qud2lkdGgoKTsgci5zaXplLmhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CisgICAgICAg
IHIub3JpZ2luLnggPSByZWN0LngoKTsKKyAgICAgICAgci5vcmlnaW4ueSA9IHJlY3QueSgpOwor
ICAgICAgICByLnNpemUud2lkdGggPSByZWN0LndpZHRoKCk7CisgICAgICAgIHIuc2l6ZS5oZWln
aHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBDR0Zsb2F0IHZbNF0gPSB7IENHUmVjdEdldE1p
blgociksIENHUmVjdEdldE1pblkociksIENHUmVjdEdldE1heFgociksIENHUmVjdEdldE1heFko
cikgfTsKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFkb3B0Q0YsIENBQ0ZW
ZWN0b3JDcmVhdGUoNCwgdikpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCShyZXZpc2lvbiA1MTYw
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPGQzZHg5Lmg+
CiAjaW5jbHVkZSA8ZHhlcnI5Lmg+CiAKKyNwcmFnbWEgY29tbWVudChsaWIsICJkM2Q5IikNCisj
cHJhZ21hIGNvbW1lbnQobGliLCAiZDNkeDkiKQ0KKyNwcmFnbWEgY29tbWVudChsaWIsICJRdWFy
dHpDb3JlIikNCisKIHN0YXRpYyBJRGlyZWN0M0Q5KiBzX2QzZCA9IDA7CiBzdGF0aWMgSURpcmVj
dDNEOSogZDNkKCkKIHsKQEAgLTg2LDYgKzkwLDI5IEBAIHN0YXRpYyBEM0RQUkVTRU5UX1BBUkFN
RVRFUlMgaW5pdGlhbFByZXMKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIAorYm9vbCBXS0NB
Q0ZMYXllclJlbmRlcmVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkNCit7DQor
ICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZTsNCisgICAgc3RhdGljIGJvb2wgdGVzdGVkOw0KKw0K
KyAgICBpZiAodGVzdGVkKQ0KKyAgICAgICAgcmV0dXJuIGF2YWlsYWJsZTsNCisNCisgICAgdGVz
dGVkID0gdHJ1ZTsNCisgICAgSE1PRFVMRSBsaWJyYXJ5ID0gTG9hZExpYnJhcnkoVEVYVCgiZDNk
OS5kbGwiKSk7DQorICAgIGlmICghbGlicmFyeSkNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisN
CisgICAgRnJlZUxpYnJhcnkobGlicmFyeSk7DQorICAgIGxpYnJhcnkgPSBMb2FkTGlicmFyeShU
RVhUKCJRdWFydHpDb3JlLmRsbCIpKTsNCisgICAgaWYgKCFsaWJyYXJ5KQ0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOw0KKw0KKyAgICBGcmVlTGlicmFyeShsaWJyYXJ5KTsNCisgICAgYXZhaWxhYmxl
ID0gdHJ1ZTsNCisgICAgcmV0dXJuIGF2YWlsYWJsZTsNCit9DQorDQogdm9pZCBXS0NBQ0ZMYXll
clJlbmRlcmVyOjpkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRSZWYgY29udGV4dCkKIHsKICAg
ICBXS0NBQ0ZMYXllclJlbmRlcmVyKiB3aW5kb3cgPSB3aW5kb3dzRm9yQ29udGV4dHMoKS5nZXQo
Y29udGV4dCk7CkBAIC05NSw2ICsxMjIsMTMgQEAgdm9pZCBXS0NBQ0ZMYXllclJlbmRlcmVyOjpk
aWRGbHVzaENvbnRleAogICAgIHdpbmRvdy0+cmVuZGVyU29vbigpOwogfQogCitQYXNzT3duUHRy
PFdLQ0FDRkxheWVyUmVuZGVyZXI+IFdLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZSgpCit7Cisg
ICAgaWYgKCFhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBuZXcgV0tDQUNGTGF5ZXJSZW5kZXJlcjsKK30KKwogV0tDQUNGTGF5
ZXJSZW5kZXJlcjo6V0tDQUNGTGF5ZXJSZW5kZXJlcigpCiAgICAgOiBtX3RyaWVkVG9DcmVhdGVE
M0RSZW5kZXJlcihmYWxzZSkKICAgICAsIG1fcmVuZGVyQ29udGV4dCgwKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaAko
cmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZM
YXllclJlbmRlcmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUyLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzE4NTUpCiBjbGFzcyBXS0NBQ0ZMYXllclJlbmRlcmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsK
IHB1YmxpYzoKLSAgICBXS0NBQ0ZMYXllclJlbmRlcmVyKCk7CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8V0tDQUNGTGF5ZXJSZW5kZXJlcj4gY3JlYXRlKCk7CiAgICAgfldLQ0FDRkxheWVyUmVuZGVy
ZXIoKTsKIAorICAgIHN0YXRpYyBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUo
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRSZWYpOwogCiAg
ICAgdm9pZCBzZXRTY3JvbGxGcmFtZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBzY3JvbGxY
LCBpbnQgc2Nyb2xsWSk7CkBAIC03Miw2ICs3Myw4IEBAIHByb3RlY3RlZDoKICAgICBXS0NBQ0ZM
YXllciogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIAog
cHJpdmF0ZToKKyAgICBXS0NBQ0ZMYXllclJlbmRlcmVyKCk7CisKICAgICB2b2lkIHJlbmRlclRp
bWVyRmlyZWQoVGltZXI8V0tDQUNGTGF5ZXJSZW5kZXJlcj4qKTsKIAogICAgIENHUmVjdCBib3Vu
ZHMoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2lm
IEVOQUJMRSgzRF9DQU5WQVMpICAgIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5o
IgorI2VuZGlmCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKSW5kZXg6IFdlYktpdC93aW4v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1
MTY2OSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMDktMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGF5IGxvYWQg
RExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAgICBJZiB0aGUg
RExMcyAoZDNkOSBhbmQgUXVhcnR6Q29yZSkuIGFyZSBub3QgcHJlc2VudCBpdAorICAgICAgICB0
dXJucyBvZmYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5kIGF2b2lkcyBjYWxsaW5nIAorICAg
ICAgICBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgRExMcy4KKworICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorICAgICAgICAqIFdlYlZpZXcuaDoKKwogMjAwOS0xMi0wMyAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
SW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
Vmlldy5oCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYktpdC93aW4vV2ViVmlldy5oCSh3b3JraW5n
IGNvcHkpCkBAIC04NjQsMTAgKzg2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRvd25sb2FkVVJM
KGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLSAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9Ci0gICAgdm9pZCByZXNpemVMYXllclJlbmRlcmVy
KCkgeyBtX2xheWVyUmVuZGVyZXIucmVzaXplKCk7IH0KLSAgICB2b2lkIGxheWVyUmVuZGVyZXJC
ZWNhbWVWaXNpYmxlKCkgeyBtX2xheWVyUmVuZGVyZXIuY3JlYXRlUmVuZGVyZXIoKTsgfQotICAg
IHZvaWQgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgeyBtX2xheWVyUmVuZGVyZXIuc2V0TmVl
ZHNEaXNwbGF5KCk7IH0KKyAgICB2b2lkIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIHsgaWYg
KG1fbGF5ZXJSZW5kZXJlcikgbV9sYXllclJlbmRlcmVyLT5zZXROZWVkc0Rpc3BsYXkoKTsgfQog
ICAgIHZvaWQgc2V0Um9vdENoaWxkTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1MYXllciogbGF5ZXIp
OwogI2VuZGlmCiAKQEAgLTg5NSw2ICs4OTIsOSBAQCBwcml2YXRlOgogICAgIERXT1JEIG1fbGFz
dERyb3BFZmZlY3Q7CiAKIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlcldlYlZp
ZXdXaW5kb3dDbGFzcygpOworICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQ
cm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFt
KTsKKwogICAgIEhJTUMgZ2V0SU1NQ29udGV4dCgpOwogICAgIHZvaWQgcmVsZWFzZUlNTUNvbnRl
eHQoSElNQyk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dTaXRlU3BlY2lmaWNIYWNrcygpIHsgcmV0
dXJuIHNfYWxsb3dTaXRlU3BlY2lmaWNIYWNrczsgfSAKQEAgLTk4MiwxMCArOTgyLDEzIEBAIHBy
b3RlY3RlZDoKICAgICBsb25nIG1feU92ZXJwYW47CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZyhib29sKTsKICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCk7
CisgICAgdm9pZCByZXNpemVMYXllclJlbmRlcmVyKCkgeyBtX2xheWVyUmVuZGVyZXItPnJlc2l6
ZSgpOyB9CisgICAgdm9pZCBsYXllclJlbmRlcmVyQmVjYW1lVmlzaWJsZSgpIHsgbV9sYXllclJl
bmRlcmVyLT5jcmVhdGVSZW5kZXJlcigpOyB9CiAKLSAgICBXZWJDb3JlOjpXS0NBQ0ZMYXllclJl
bmRlcmVyIG1fbGF5ZXJSZW5kZXJlcjsKKyAgICBPd25QdHI8V2ViQ29yZTo6V0tDQUNGTGF5ZXJS
ZW5kZXJlcj4gbV9sYXllclJlbmRlcmVyOwogICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmc7CiAjZW5kaWYKIH07Cg==
</data>
<flag name="review"
          id="26088"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44320</attachid>
            <date>2009-12-04 09:24:10 -0800</date>
            <delta_ts>2009-12-08 14:22:04 -0800</delta_ts>
            <desc>Patch which fixes the line endings on WebView.cpp</desc>
            <filename>31856.patch</filename>
            <type>text/plain</type>
            <size>17432</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTY2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICBE
ZWxheSBsb2FkIERMTHMgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg1NgorICAgICAgICAKKyAgICAg
ICAgQWRkIGxvZ2ljIHRvIHR1cm4gb2ZmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlmIGQzZDkg
b3IgUXVhcnR6Q29yZQorICAgICAgICBETExzIGFyZSBub3QgcHJlc2VudC4KKyAgICAgICAgCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSBXS0NBQ0ZMYXllclJlbmRlcmVyIHRv
IGJlIGEgcG9pbnRlci4KKyAgICAgICAgVGhpcyBhbGxvd3MgbWUgdG8gaGF2ZSBhIGNyZWF0ZSgp
IG1ldGhvZCB3aGljaCB3aWxsIG5vdCBjcmVhdGUgaXQgd2hlbgorICAgICAgICBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBpcyBkaXNhYmxlZCBiZWNhdXNlIG9mIG1pc3NpbmcgRExMcy4gSXQgCisg
ICAgICAgIGF2b2lkcyBoYXZpbmcgdG8gZG8gc28gbWFueSBjaGVja3MuIEkgYWxzbyBtYWRlIFdl
YlZpZXdXbmRQcm9jIAorICAgICAgICBhIG1lbWJlciBmdW5jdGlvbiB0byBhbGxvdyBzZXZlcmFs
IG1ldGhvZHMgdG8gYmUgbWFkZSBwcm90ZWN0ZWQsIHdoaWNoCisgICAgICAgIGFsbG93cyBtZSB0
byBhdm9pZCBkb2luZyBhdmFpbGFiaWxpdHkgY2hlY2tzIHRoZXJlIGFzIHdlbGwuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorCiAyMDA5LTEyLTAzICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHAJKHJl
dmlzaW9uIDUxNjAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8UXVhcnR6
Q29yZS9DQUNGQ29udGV4dC5oPgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FSZW5kZXIuaD4KIAor
I3ByYWdtYSBjb21tZW50KGxpYiwgIlF1YXJ0ekNvcmUiKQ0KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9XS0NBQ0ZMYXllci5oCShyZXZpc2lvbiA1MTYwMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUw
LDcgQEAgY2xhc3MgV0tDQUNGVGltaW5nRnVuY3Rpb247CiAKIGNsYXNzIFdLQ0FDRkxheWVyIDog
cHVibGljIFJlZkNvdW50ZWQ8V0tDQUNGTGF5ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXS0NBQ0ZMYXllcj4gY3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhp
Y3NMYXllckNBQ0YqIG93bmVyPTApIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXS0NBQ0ZMYXllcihj
bGFzc05hbWUsIG93bmVyKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4g
Y3JlYXRlKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyID0g
MCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdLQ0FDRkxheWVyKGNsYXNzTmFtZSwgb3duZXIpKTsg
fQogICAgIHN0YXRpYyBXS0NBQ0ZMYXllciogbGF5ZXIoQ0FDRkxheWVyUmVmIGxheWVyKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxXS0NBQ0ZMYXllcio+KENBQ0ZMYXllckdldFVzZXJEYXRhKGxheWVy
KSk7IH0KIAogICAgIH5XS0NBQ0ZMYXllcigpOwpAQCAtNjIsMTAgKzYyLDIyIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdmFsdWUpCiAgICAgewogICAgICAgICBDQVRyYW5zZm9ybTNEIHQ7Ci0gICAg
ICAgIHQubTExID0gdmFsdWUubTExKCk7IHQubTEyID0gdmFsdWUubTEyKCk7IHQubTEzID0gdmFs
dWUubTEzKCk7IHQubTE0ID0gdmFsdWUubTE0KCk7IAotICAgICAgICB0Lm0yMSA9IHZhbHVlLm0y
MSgpOyB0Lm0yMiA9IHZhbHVlLm0yMigpOyB0Lm0yMyA9IHZhbHVlLm0yMygpOyB0Lm0yNCA9IHZh
bHVlLm0yNCgpOyAKLSAgICAgICAgdC5tMzEgPSB2YWx1ZS5tMzEoKTsgdC5tMzIgPSB2YWx1ZS5t
MzIoKTsgdC5tMzMgPSB2YWx1ZS5tMzMoKTsgdC5tMzQgPSB2YWx1ZS5tMzQoKTsgCi0gICAgICAg
IHQubTQxID0gdmFsdWUubTQxKCk7IHQubTQyID0gdmFsdWUubTQyKCk7IHQubTQzID0gdmFsdWUu
bTQzKCk7IHQubTQ0ID0gdmFsdWUubTQ0KCk7IAorICAgICAgICB0Lm0xMSA9IHZhbHVlLm0xMSgp
OworICAgICAgICB0Lm0xMiA9IHZhbHVlLm0xMigpOworICAgICAgICB0Lm0xMyA9IHZhbHVlLm0x
MygpOworICAgICAgICB0Lm0xNCA9IHZhbHVlLm0xNCgpOyAKKyAgICAgICAgdC5tMjEgPSB2YWx1
ZS5tMjEoKTsKKyAgICAgICAgdC5tMjIgPSB2YWx1ZS5tMjIoKTsKKyAgICAgICAgdC5tMjMgPSB2
YWx1ZS5tMjMoKTsKKyAgICAgICAgdC5tMjQgPSB2YWx1ZS5tMjQoKTsgCisgICAgICAgIHQubTMx
ID0gdmFsdWUubTMxKCk7CisgICAgICAgIHQubTMyID0gdmFsdWUubTMyKCk7CisgICAgICAgIHQu
bTMzID0gdmFsdWUubTMzKCk7CisgICAgICAgIHQubTM0ID0gdmFsdWUubTM0KCk7IAorICAgICAg
ICB0Lm00MSA9IHZhbHVlLm00MSgpOworICAgICAgICB0Lm00MiA9IHZhbHVlLm00MigpOworICAg
ICAgICB0Lm00MyA9IHZhbHVlLm00MygpOworICAgICAgICB0Lm00NCA9IHZhbHVlLm00NCgpOyAK
ICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFkb3B0Q0YsIENBQ0ZWZWN0b3JD
cmVhdGVUcmFuc2Zvcm0odCkpOwogICAgIH0KICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJl
Zj4gY2ZWYWx1ZShjb25zdCBGbG9hdFBvaW50JiB2YWx1ZSkKQEAgLTc3LDggKzg5LDEwIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJlZj4gY2ZWYWx1ZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiAgICAgewogICAgICAgICBDR1JlY3QgcjsKLSAgICAgICAgci5vcmlnaW4u
eCA9IHJlY3QueCgpOyByLm9yaWdpbi55ID0gcmVjdC55KCk7Ci0gICAgICAgIHIuc2l6ZS53aWR0
aCA9IHJlY3Qud2lkdGgoKTsgci5zaXplLmhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CisgICAgICAg
IHIub3JpZ2luLnggPSByZWN0LngoKTsKKyAgICAgICAgci5vcmlnaW4ueSA9IHJlY3QueSgpOwor
ICAgICAgICByLnNpemUud2lkdGggPSByZWN0LndpZHRoKCk7CisgICAgICAgIHIuc2l6ZS5oZWln
aHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBDR0Zsb2F0IHZbNF0gPSB7IENHUmVjdEdldE1p
blgociksIENHUmVjdEdldE1pblkociksIENHUmVjdEdldE1heFgociksIENHUmVjdEdldE1heFko
cikgfTsKICAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlR5cGVSZWY+KEFkb3B0Q0YsIENBQ0ZW
ZWN0b3JDcmVhdGUoNCwgdikpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwCShyZXZpc2lvbiA1MTYw
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPGQzZHg5Lmg+
CiAjaW5jbHVkZSA8ZHhlcnI5Lmg+CiAKKyNwcmFnbWEgY29tbWVudChsaWIsICJkM2Q5IikNCisj
cHJhZ21hIGNvbW1lbnQobGliLCAiZDNkeDkiKQ0KKyNwcmFnbWEgY29tbWVudChsaWIsICJRdWFy
dHpDb3JlIikNCisKIHN0YXRpYyBJRGlyZWN0M0Q5KiBzX2QzZCA9IDA7CiBzdGF0aWMgSURpcmVj
dDNEOSogZDNkKCkKIHsKQEAgLTg2LDYgKzkwLDI5IEBAIHN0YXRpYyBEM0RQUkVTRU5UX1BBUkFN
RVRFUlMgaW5pdGlhbFByZXMKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIAorYm9vbCBXS0NB
Q0ZMYXllclJlbmRlcmVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkNCit7DQor
ICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZTsNCisgICAgc3RhdGljIGJvb2wgdGVzdGVkOw0KKw0K
KyAgICBpZiAodGVzdGVkKQ0KKyAgICAgICAgcmV0dXJuIGF2YWlsYWJsZTsNCisNCisgICAgdGVz
dGVkID0gdHJ1ZTsNCisgICAgSE1PRFVMRSBsaWJyYXJ5ID0gTG9hZExpYnJhcnkoVEVYVCgiZDNk
OS5kbGwiKSk7DQorICAgIGlmICghbGlicmFyeSkNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisN
CisgICAgRnJlZUxpYnJhcnkobGlicmFyeSk7DQorICAgIGxpYnJhcnkgPSBMb2FkTGlicmFyeShU
RVhUKCJRdWFydHpDb3JlLmRsbCIpKTsNCisgICAgaWYgKCFsaWJyYXJ5KQ0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOw0KKw0KKyAgICBGcmVlTGlicmFyeShsaWJyYXJ5KTsNCisgICAgYXZhaWxhYmxl
ID0gdHJ1ZTsNCisgICAgcmV0dXJuIGF2YWlsYWJsZTsNCit9DQorDQogdm9pZCBXS0NBQ0ZMYXll
clJlbmRlcmVyOjpkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRSZWYgY29udGV4dCkKIHsKICAg
ICBXS0NBQ0ZMYXllclJlbmRlcmVyKiB3aW5kb3cgPSB3aW5kb3dzRm9yQ29udGV4dHMoKS5nZXQo
Y29udGV4dCk7CkBAIC05NSw2ICsxMjIsMTMgQEAgdm9pZCBXS0NBQ0ZMYXllclJlbmRlcmVyOjpk
aWRGbHVzaENvbnRleAogICAgIHdpbmRvdy0+cmVuZGVyU29vbigpOwogfQogCitQYXNzT3duUHRy
PFdLQ0FDRkxheWVyUmVuZGVyZXI+IFdLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZSgpCit7Cisg
ICAgaWYgKCFhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBuZXcgV0tDQUNGTGF5ZXJSZW5kZXJlcjsKK30KKwogV0tDQUNGTGF5
ZXJSZW5kZXJlcjo6V0tDQUNGTGF5ZXJSZW5kZXJlcigpCiAgICAgOiBtX3RyaWVkVG9DcmVhdGVE
M0RSZW5kZXJlcihmYWxzZSkKICAgICAsIG1fcmVuZGVyQ29udGV4dCgwKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaAko
cmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZM
YXllclJlbmRlcmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUyLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzE4NTUpCiBjbGFzcyBXS0NBQ0ZMYXllclJlbmRlcmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsK
IHB1YmxpYzoKLSAgICBXS0NBQ0ZMYXllclJlbmRlcmVyKCk7CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8V0tDQUNGTGF5ZXJSZW5kZXJlcj4gY3JlYXRlKCk7CiAgICAgfldLQ0FDRkxheWVyUmVuZGVy
ZXIoKTsKIAorICAgIHN0YXRpYyBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUo
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRSZWYpOwogCiAg
ICAgdm9pZCBzZXRTY3JvbGxGcmFtZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBzY3JvbGxY
LCBpbnQgc2Nyb2xsWSk7CkBAIC03Miw2ICs3Myw4IEBAIHByb3RlY3RlZDoKICAgICBXS0NBQ0ZM
YXllciogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIAog
cHJpdmF0ZToKKyAgICBXS0NBQ0ZMYXllclJlbmRlcmVyKCk7CisKICAgICB2b2lkIHJlbmRlclRp
bWVyRmlyZWQoVGltZXI8V0tDQUNGTGF5ZXJSZW5kZXJlcj4qKTsKIAogICAgIENHUmVjdCBib3Vu
ZHMoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2lm
IEVOQUJMRSgzRF9DQU5WQVMpICAgIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5o
IgorI2VuZGlmCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKSW5kZXg6IFdlYktpdC93aW4v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1
MTY2OSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMDktMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGF5IGxvYWQg
RExMcyBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAorICAgICAgICBJZiB0aGUg
RExMcyAoZDNkOSBhbmQgUXVhcnR6Q29yZSkuIGFyZSBub3QgcHJlc2VudCBpdAorICAgICAgICB0
dXJucyBvZmYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5kIGF2b2lkcyBjYWxsaW5nIAorICAg
ICAgICBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgRExMcy4KKworICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorICAgICAgICAqIFdlYlZpZXcuaDoKKwogMjAwOS0xMi0wMyAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
SW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcAkocmV2aXNpb24gNTE2MDApCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzEsNyArMjcxLDYgQEAgc3RhdGljIGNvbnN0IGludCBtYXhUb29s
VGlwV2lkdGggPSAyNTA7CiBzdGF0aWMgY29uc3QgaW50IGRlbGF5QmVmb3JlRGVsZXRpbmdCYWNr
aW5nU3RvcmVNc2VjID0gNTAwMDsKIAogc3RhdGljIEFUT00gcmVnaXN0ZXJXZWJWaWV3KCk7Ci1z
dGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CiAKIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVTdGF0aWNPYnNlcnZlcnMoKTsKIApAQCAtMjk1LDM2ICsyOTQsMzYgQEAgZW51bSB7CiBi
b29sIFdlYlZpZXc6OnNfYWxsb3dTaXRlU3BlY2lmaWNIYWNrcyA9IGZhbHNlOwogCiBXZWJWaWV3
OjpXZWJWaWV3KCkKLTogbV9yZWZDb3VudCgwKQotLCBtX2hvc3RXaW5kb3coMCkKLSwgbV92aWV3
V2luZG93KDApCi0sIG1fbWFpbkZyYW1lKDApCi0sIG1fcGFnZSgwKQotLCBtX2hhc0N1c3RvbURy
b3BUYXJnZXQoZmFsc2UpCi0sIG1fdXNlQmFja0ZvcndhcmRMaXN0KHRydWUpCi0sIG1fdXNlckFn
ZW50T3ZlcnJpZGRlbihmYWxzZSkKLSwgbV96b29tTXVsdGlwbGllcigxLjBmKQotLCBtX21vdXNl
QWN0aXZhdGVkKGZhbHNlKQotLCBtX2RyYWdEYXRhKDApCi0sIG1fY3VycmVudENoYXJhY3RlckNv
ZGUoMCkKLSwgbV9pc0JlaW5nRGVzdHJveWVkKGZhbHNlKQotLCBtX3BhaW50Q291bnQoMCkKLSwg
bV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkKLSwgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoZmFsc2UpCi0sIG1fZGlkQ2xvc2UoZmFsc2UpCi0sIG1faW5JTUVDb21wb3NpdGlv
bigwKQotLCBtX3Rvb2xUaXBId25kKDApCi0sIG1fY2xvc2VXaW5kb3dUaW1lcih0aGlzLCAmV2Vi
Vmlldzo6Y2xvc2VXaW5kb3dUaW1lckZpcmVkKQotLCBtX3RvcExldmVsUGFyZW50KDApCi0sIG1f
ZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2UpCi0sIG1fdHJhbnNwYXJlbnQoZmFs
c2UpCi0sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSwgbV9sYXN0
UGFuWCgwKQotLCBtX2xhc3RQYW5ZKDApCi0sIG1feE92ZXJwYW4oMCkKLSwgbV95T3ZlcnBhbigw
KQorICAgIDogbV9yZWZDb3VudCgwKQorICAgICwgbV9ob3N0V2luZG93KDApCisgICAgLCBtX3Zp
ZXdXaW5kb3coMCkKKyAgICAsIG1fbWFpbkZyYW1lKDApCisgICAgLCBtX3BhZ2UoMCkKKyAgICAs
IG1faGFzQ3VzdG9tRHJvcFRhcmdldChmYWxzZSkKKyAgICAsIG1fdXNlQmFja0ZvcndhcmRMaXN0
KHRydWUpCisgICAgLCBtX3VzZXJBZ2VudE92ZXJyaWRkZW4oZmFsc2UpCisgICAgLCBtX3pvb21N
dWx0aXBsaWVyKDEuMGYpCisgICAgLCBtX21vdXNlQWN0aXZhdGVkKGZhbHNlKQorICAgICwgbV9k
cmFnRGF0YSgwKQorICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyQ29kZSgwKQorICAgICwgbV9pc0Jl
aW5nRGVzdHJveWVkKGZhbHNlKQorICAgICwgbV9wYWludENvdW50KDApCisgICAgLCBtX2hhc1Nw
ZWxsQ2hlY2tlckRvY3VtZW50VGFnKGZhbHNlKQorICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpCisgICAgLCBtX2RpZENsb3NlKGZhbHNlKQorICAgICwgbV9pbklNRUNvbXBv
c2l0aW9uKDApCisgICAgLCBtX3Rvb2xUaXBId25kKDApCisgICAgLCBtX2Nsb3NlV2luZG93VGlt
ZXIodGhpcywgJldlYlZpZXc6OmNsb3NlV2luZG93VGltZXJGaXJlZCkKKyAgICAsIG1fdG9wTGV2
ZWxQYXJlbnQoMCkKKyAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2Up
CisgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQorICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKQorICAgICwgbV9sYXN0UGFuWCgwKQorICAgICwgbV9sYXN0UGFu
WSgwKQorICAgICwgbV94T3ZlcnBhbigwKQorICAgICwgbV95T3ZlcnBhbigwKQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLSwgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFs
c2UpCisgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKICNlbmRpZgogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwpAQCAtMTgyNCw3ICsxODIzLDcgQEAgYm9v
bCBXZWJWaWV3OjprZXlQcmVzcyhXUEFSQU0gY2hhckNvZGUsIAogICAgIHJldHVybiBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCktPmtleUV2ZW50KGtleUV2ZW50KTsKIH0KIAotc3RhdGljIGJvb2wgcmVn
aXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKQorYm9vbCBXZWJWaWV3OjpyZWdpc3RlcldlYlZpZXdX
aW5kb3dDbGFzcygpCiB7CiAgICAgc3RhdGljIGJvb2wgaGF2ZVJlZ2lzdGVyZWRXaW5kb3dDbGFz
cyA9IGZhbHNlOwogICAgIGlmIChoYXZlUmVnaXN0ZXJlZFdpbmRvd0NsYXNzKQpAQCAtMTg2OCw3
ICsxODY3LDcgQEAgc3RhdGljIEhXTkQgZmluZFRvcExldmVsUGFyZW50KEhXTkQgd2luZAogICAg
IHJldHVybiAwOwogfQogCi1zdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xS
RVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6V2ViVmlld1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1l
c3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CiAgICAgTFJFU1VMVCBsUmVz
dWx0ID0gMDsKICAgICBMT05HX1BUUiBsb25nUHRyID0gR2V0V2luZG93TG9uZ1B0cihoV25kLCAw
KTsKQEAgLTE5ODMsOCArMTk4Miw4IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdX
bmRQcm9jKEgKICAgICAgICAgY2FzZSBXTV9TRVRGT0NVUzogewogICAgICAgICAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgICAgICAgICAgQ09NUHRyPElXZWJVSURl
bGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZVByaXZhdGU7Ci0gICAgICAgICAgICBpZiAoU1VDQ0VF
REVEKHdlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYmCi0g
ICAgICAgICAgICAgICAgU1VDQ0VFREVEKHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJRF9J
V2ViVUlEZWxlZ2F0ZVByaXZhdGUsICh2b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYmIHVp
RGVsZWdhdGVQcml2YXRlKQorICAgICAgICAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT51aURl
bGVnYXRlKCZ1aURlbGVnYXRlKSkgJiYgdWlEZWxlZ2F0ZQorICAgICAgICAgICAgICAgICYmIFNV
Q0NFRURFRCh1aURlbGVnYXRlLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVsZWdhdGVQcml2
YXRlLCAodm9pZCoqKSAmdWlEZWxlZ2F0ZVByaXZhdGUpKSAmJiB1aURlbGVnYXRlUHJpdmF0ZSkK
ICAgICAgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld1JlY2VpdmVkRm9jdXMo
d2ViVmlldyk7CiAKICAgICAgICAgICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDb250cm9sbGVy
ID0gd2ViVmlldy0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsKQEAgLTIwMDMsOCArMjAwMiw4
IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEgKICAgICAgICAgICAg
IENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICAgICAgICAgIENPTVB0cjxJ
V2ViVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGVQcml2YXRlOwogICAgICAgICAgICAgSFdO
RCBuZXdGb2N1c1duZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SFdORD4od1BhcmFtKTsKLSAgICAgICAg
ICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpICYmIHVp
RGVsZWdhdGUgJiYKLSAgICAgICAgICAgICAgICBTVUNDRUVERUQodWlEZWxlZ2F0ZS0+UXVlcnlJ
bnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlUHJpdmF0ZSwgKHZvaWQqKikgJnVpRGVsZWdhdGVQ
cml2YXRlKSkgJiYgdWlEZWxlZ2F0ZVByaXZhdGUpCisgICAgICAgICAgICBpZiAoU1VDQ0VFREVE
KHdlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlCisgICAgICAg
ICAgICAgICAgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUsICh2b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYmIHVpRGVs
ZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3
TG9zdEZvY3VzKHdlYlZpZXcsIChPTEVfSEFORExFKShVTE9ORzY0KW5ld0ZvY3VzV25kKTsKIAog
ICAgICAgICAgICAgRm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSB3ZWJWaWV3LT5w
YWdlKCktPmZvY3VzQ29udHJvbGxlcigpOwpAQCAtMjA4Nyw5ICsyMDg2LDkgQEAgc3RhdGljIExS
RVNVTFQgQ0FMTEJBQ0sgV2ViVmlld1duZFByb2MoSAogICAgICAgICAgICAgICAgIGlmIChscE1z
Zy0+bWVzc2FnZSA9PSBXTV9LRVlET1dOKQogICAgICAgICAgICAgICAgICAgICBrZXlDb2RlID0g
KFVJTlQpIGxwTXNnLT53UGFyYW07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoU1VD
Q0VFREVEKHdlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSAmJiB1aURlbGVnYXRlICYm
Ci0gICAgICAgICAgICAgICAgU1VDQ0VFREVEKHVpRGVsZWdhdGUtPlF1ZXJ5SW50ZXJmYWNlKElJ
RF9JV2ViVUlEZWxlZ2F0ZVByaXZhdGUsICh2b2lkKiopICZ1aURlbGVnYXRlUHJpdmF0ZSkpICYm
IHVpRGVsZWdhdGVQcml2YXRlICYmCi0gICAgICAgICAgICAgICAgU1VDQ0VFREVEKHVpRGVsZWdh
dGVQcml2YXRlLT53ZWJWaWV3R2V0RGxnQ29kZSh3ZWJWaWV3LCBrZXlDb2RlLCAmZGxnQ29kZSkp
KQorICAgICAgICAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkgJiYgdWlEZWxlZ2F0ZQorICAgICAgICAgICAgICAgICYmIFNVQ0NFRURFRCh1aURlbGVn
YXRlLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVsZWdhdGVQcml2YXRlLCAodm9pZCoqKSAm
dWlEZWxlZ2F0ZVByaXZhdGUpKSAmJiB1aURlbGVnYXRlUHJpdmF0ZQorICAgICAgICAgICAgICAg
ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld0dldERsZ0NvZGUod2ViVmll
dywga2V5Q29kZSwgJmRsZ0NvZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZGxnQ29kZTsK
ICAgICAgICAgICAgIGhhbmRsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTcz
MywyOSArNTczMiwzNCBAQCB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVy
CiB2b2lkIFdlYlZpZXc6OnNldFJvb3RDaGlsZExheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIq
IGxheWVyKQogewogICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0cnVlIDog
ZmFsc2UpOwotICAgIG1fbGF5ZXJSZW5kZXJlci5zZXRSb290Q2hpbGRMYXllcihsYXllcik7Cisg
ICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKKyAgICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXRSb290
Q2hpbGRMYXllcihsYXllcik7CiB9CiAKIHZvaWQgV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZyhib29sIGFjY2VsZXJhdGVkKQogewotICAgIGlmIChtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyA9PSBhY2NlbGVyYXRlZCkKKyAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcgPT0gYWNjZWxlcmF0ZWQgfHwgIVdLQ0FDRkxheWVyUmVuZGVyZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcgPSBhY2NlbGVyYXRlZDsKLSAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcpIHsKLSAgICAgICAgLy8gQ3JlYXRlIHRoZSByb290IGxheWVyCi0gICAgICAgIEFT
U0VSVChtX3ZpZXdXaW5kb3cpOwotICAgICAgICBtX2xheWVyUmVuZGVyZXIuc2V0SG9zdFdpbmRv
dyhtX3ZpZXdXaW5kb3cpOwotICAgICAgICB1cGRhdGVSb290TGF5ZXJDb250ZW50cygpOworICAg
IGlmIChhY2NlbGVyYXRlZCkgeworICAgICAgICBtX2xheWVyUmVuZGVyZXIgPSBXS0NBQ0ZMYXll
clJlbmRlcmVyOjpjcmVhdGUoKTsKKyAgICAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikgeworICAg
ICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSB0cnVlOworCisgICAgICAgICAg
ICAvLyBDcmVhdGUgdGhlIHJvb3QgbGF5ZXIKKyAgICAgICAgICAgIEFTU0VSVChtX3ZpZXdXaW5k
b3cpOworICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXRIb3N0V2luZG93KG1fdmlld1dp
bmRvdyk7CisgICAgICAgICAgICB1cGRhdGVSb290TGF5ZXJDb250ZW50cygpOworICAgICAgICB9
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gVGVhciBkb3duIHRoZSByb290IGxheWVyCi0gICAg
ICAgIG1fbGF5ZXJSZW5kZXJlci5kZXN0cm95UmVuZGVyZXIoKTsKKyAgICAgICAgbV9sYXllclJl
bmRlcmVyID0gMDsKKyAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBmYWxzZTsK
ICAgICB9CiB9CiAKIHZvaWQgV2ViVmlldzo6dXBkYXRlUm9vdExheWVyQ29udGVudHMoKQogewot
ICAgIGlmICghbV9iYWNraW5nU3RvcmVCaXRtYXApCisgICAgaWYgKCFtX2JhY2tpbmdTdG9yZUJp
dG1hcCB8fCAhbV9sYXllclJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBHZXQg
dGhlIGJhY2tpbmcgc3RvcmUgaW50byBhIENHSW1hZ2UKQEAgLTU3NzYsNyArNTc4MCw3IEBAIHZv
aWQgV2ViVmlldzo6dXBkYXRlUm9vdExheWVyQ29udGVudHMoKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKIAogICAgIC8v
IEhhbmQgdGhlIENHSW1hZ2UgdG8gQ0FDRiBmb3IgY29tcG9zaXRpbmcKLSAgICBtX2xheWVyUmVu
ZGVyZXIuc2V0Um9vdENvbnRlbnRzKGJhY2tpbmdTdG9yZUltYWdlLmdldCgpKTsKKyAgICBtX2xh
eWVyUmVuZGVyZXItPnNldFJvb3RDb250ZW50cyhiYWNraW5nU3RvcmVJbWFnZS5nZXQoKSk7CiAK
ICAgICAvLyBTZXQgdGhlIGZyYW1lIGFuZCBzY3JvbGwgcG9zaXRpb24KICAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShtX21haW5GcmFtZSk7CkBAIC01Nzg0LDcgKzU3ODgsNyBAQCB2b2lkIFdl
YlZpZXc6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCkKICAgICAgICAgcmV0dXJuOwogICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gY29yZUZyYW1lLT52aWV3KCk7CiAKLSAgICBtX2xheWVyUmVu
ZGVyZXIuc2V0U2Nyb2xsRnJhbWUoZnJhbWVWaWV3LT5sYXlvdXRXaWR0aCgpLCBmcmFtZVZpZXct
PmxheW91dEhlaWdodCgpLCAKKyAgICBtX2xheWVyUmVuZGVyZXItPnNldFNjcm9sbEZyYW1lKGZy
YW1lVmlldy0+bGF5b3V0V2lkdGgoKSwgZnJhbWVWaWV3LT5sYXlvdXRIZWlnaHQoKSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVZpZXctPnNjcm9sbFgoKSwgZnJhbWVW
aWV3LT5zY3JvbGxZKCkpOwogfQogI2VuZGlmCkluZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlZpZXcuaAkocmV2aXNpb24gNTE2MDApCisrKyBX
ZWJLaXQvd2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtODY0LDEwICs4NjQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsgfQot
ICAgIHZvaWQgcmVzaXplTGF5ZXJSZW5kZXJlcigpIHsgbV9sYXllclJlbmRlcmVyLnJlc2l6ZSgp
OyB9Ci0gICAgdm9pZCBsYXllclJlbmRlcmVyQmVjYW1lVmlzaWJsZSgpIHsgbV9sYXllclJlbmRl
cmVyLmNyZWF0ZVJlbmRlcmVyKCk7IH0KLSAgICB2b2lkIHNldFJvb3RMYXllck5lZWRzRGlzcGxh
eSgpIHsgbV9sYXllclJlbmRlcmVyLnNldE5lZWRzRGlzcGxheSgpOyB9CisgICAgdm9pZCBzZXRS
b290TGF5ZXJOZWVkc0Rpc3BsYXkoKSB7IGlmIChtX2xheWVyUmVuZGVyZXIpIG1fbGF5ZXJSZW5k
ZXJlci0+c2V0TmVlZHNEaXNwbGF5KCk7IH0KICAgICB2b2lkIHNldFJvb3RDaGlsZExheWVyKFdl
YkNvcmU6OlBsYXRmb3JtTGF5ZXIqIGxheWVyKTsKICNlbmRpZgogCkBAIC04OTUsNiArODkyLDkg
QEAgcHJpdmF0ZToKICAgICBEV09SRCBtX2xhc3REcm9wRWZmZWN0OwogCiBwcm90ZWN0ZWQ6Cisg
ICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMg
TFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwg
V1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisKICAgICBISU1DIGdldElNTUNvbnRleHQo
KTsKICAgICB2b2lkIHJlbGVhc2VJTU1Db250ZXh0KEhJTUMpOwogICAgIHN0YXRpYyBib29sIGFs
bG93U2l0ZVNwZWNpZmljSGFja3MoKSB7IHJldHVybiBzX2FsbG93U2l0ZVNwZWNpZmljSGFja3M7
IH0gCkBAIC05ODIsMTAgKzk4MiwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgbG9uZyBtX3lPdmVycGFu
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmc7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7CiAgICAgdm9p
ZCB1cGRhdGVSb290TGF5ZXJDb250ZW50cygpOworICAgIHZvaWQgcmVzaXplTGF5ZXJSZW5kZXJl
cigpIHsgbV9sYXllclJlbmRlcmVyLT5yZXNpemUoKTsgfQorICAgIHZvaWQgbGF5ZXJSZW5kZXJl
ckJlY2FtZVZpc2libGUoKSB7IG1fbGF5ZXJSZW5kZXJlci0+Y3JlYXRlUmVuZGVyZXIoKTsgfQog
Ci0gICAgV2ViQ29yZTo6V0tDQUNGTGF5ZXJSZW5kZXJlciBtX2xheWVyUmVuZGVyZXI7CisgICAg
T3duUHRyPFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI+IG1fbGF5ZXJSZW5kZXJlcjsKICAg
ICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiB9Owo=
</data>
<flag name="review"
          id="26144"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44562</attachid>
            <date>2009-12-09 14:31:20 -0800</date>
            <delta_ts>2009-12-10 10:47:52 -0800</delta_ts>
            <desc>Final Patch to enable ACCELERATED_COMPOSITING on Windows</desc>
            <filename>31856_OpenSource.patch</filename>
            <type>text/plain</type>
            <size>49829</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxOTIwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMDkgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBjaGVjayBmb3IgcHJlc2VuY2Ugb2YgUXVhcnR6Q29yZSBo
ZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTg1NgorICAgICAgICAKKyAgICAgICAgVGhlIHNjcmlwdCBub3cgY2hlY2tzIGZvciB0aGUgcHJl
c2VuY2Ugb2YgUXVhcnR6Q29yZS5oLiBJZiBwcmVzZW50CisgICAgICAgIGl0IHdpbGwgdHVybiBv
biBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBhbmQgM0RfUkVOREVSSU5HIHRvIGVuYWJsZQorICAg
ICAgICBIVyBjb21wb3NpdGluZyBvbiBXaW5kb3dzLiBUaGUgc2NyaXB0IHdyaXRlcyBRdWFydHpD
b3JlUHJlc2VudC5oIHRvCisgICAgICAgIHRoZSBidWlsZCBkaXJlY3Rvcnkgd2hpY2ggaGFzIGEg
ZGVmaW5lIHRlbGxpbmcgd2hldGhlciBRdWFydHpDb3JlIGlzIAorICAgICAgICBwcmVzZW50Lgor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdl
bmVyYXRlZC1maWxlcy5zaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAwOS0xMi0w
OSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvYnVp
bGQtZ2VuZXJhdGVkLWZpbGVzLnNoCShyZXZpc2lvbiA1MTkxNSkKKysrIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9idWlsZC1nZW5lcmF0ZWQtZmls
ZXMuc2gJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwxMyBAQAogIyEvdXNyL2Jpbi9iYXNoCiAK
KyMgRGV0ZXJtaW5lIGlmIHdlIGhhdmUgUXVhcnR6Q29yZSBzbyB3ZSBjYW4gdHVybiBvbgoraWYg
WyAtZiAke1dFQktJVExJQlJBUklFU0RJUn0vaW5jbHVkZS9RdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aCBdCit0aGVuCisJZWNobyAiI2RlZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMSIgPiAke1dFQktJ
VE9VVFBVVERJUn0vSW5jbHVkZS9RdWFydHpDb3JlUHJlc2VudC5oCitlbHNlCisJZWNobyAiI2Rl
ZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMCIgPiAke1dFQktJVE9VVFBVVERJUn0vSW5jbHVkZS9R
dWFydHpDb3JlUHJlc2VudC5oCitmaQorCiBOVU1DUFVTPWAuLi8uLi8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL251bS1jcHVzYAogCiBYU1JDUk9PVD0iYHB3ZGAvLi4vLi4iCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAkocmV2aXNpb24gNTE5MTUpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTE2LDcgKzkxNiwxMSBAQCBvbiBNaW5HVy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3NoCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKLSNk
ZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAwCisjaW5jbHVkZSAiUXVhcnR6
Q29yZVByZXNlbnQuaCIKKyNpZiBRVUFSVFpDT1JFX1BSRVNFTlQKKyNkZWZpbmUgV1RGX1VTRV9B
Q0NFTEVSQVRFRF9DT01QT1NJVElORyAxCisjZGVmaW5lIEVOQUJMRV8zRF9SRU5ERVJJTkcgMQor
I2VuZGlmCiAjZW5kaWYKIAogI2lmIENPTVBJTEVSKEdDQykKSW5kZXg6IFdlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkocmV2
aXNpb24gNTE5MjApCisrKyBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMDkgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBRdWFydHpDb3JlIGJ1aWxkIGZpbGVzIHRvIE9wZW5Tb3VyY2UgdHJlZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTYKKyAgICAgICAgCisg
ICAgICAgIFRoaXMgYWxsb3dzIHByb3BlciBidWlsZGluZyBhbmQgbGlua2luZyB3aXRoIFF1YXJ0
ekNvcmUKKyAgICAgICAgd2hlbiBwcmVzZW50LgorCisgICAgICAgICogd2luL2JpbjogQWRkZWQu
CisgICAgICAgICogd2luL2Jpbi9RdWFydHpDb3JlSW50ZXJmYWNlLmRsbDogQWRkZWQuCisgICAg
ICAgICogd2luL2luY2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZTogQWRkZWQuCisgICAgICAgICog
d2luL2luY2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmg6IEFk
ZGVkLgorICAgICAgICAqIHdpbi9saWIvUXVhcnR6Q29yZUludGVyZmFjZS5saWI6IEFkZGVkLgor
CiAyMDA5LTEyLTA3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBX
aW5kb3dzIGJ1aWxkIGZpeCBmb3IgY2hlY2tvdXRzIHdpdGggYSBzcGFjZSBpbiB0aGUgcGF0aApJ
bmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9pbmNsdWRlL1F1YXJ0ekNvcmVJbnRlcmZhY2UvUXVh
cnR6Q29yZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vaW5j
bHVkZS9RdWFydHpDb3JlSW50ZXJmYWNlL1F1YXJ0ekNvcmVJbnRlcmZhY2UuaAkocmV2aXNpb24g
MCkKKysrIFdlYktpdExpYnJhcmllcy93aW4vaW5jbHVkZS9RdWFydHpDb3JlSW50ZXJmYWNlL1F1
YXJ0ekNvcmVJbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFF1YXJ0ekNvcmVJbnRlcmZhY2VfaAorI2RlZmluZSBR
dWFydHpDb3JlSW50ZXJmYWNlX2gKKworI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FDRkxheWVyLmg+
CisjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUNGQ29udGV4dC5oPgorI2luY2x1ZGUgPFF1YXJ0ekNv
cmUvQ0FSZW5kZXJPR0wuaD4KKworI2lmZGVmIFFVQVJUWkNPUkVJTlRFUkZBQ0VfRVhQT1JUUwor
I2RlZmluZSBRVUFSVFpDT1JFSU5URVJGQUNFX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNl
bHNlCisjZGVmaW5lIFFVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0
KQorI2VuZGlmCisKKy8vIEludGVyZmFjZSB0byBnaXZlIGFjY2VzcyB0byBRdWFydHpDb3JlIGRh
dGEgc3ltYm9scy4KKyNkZWZpbmUgd2txY2tDQUNGTGF5ZXIgMQorI2RlZmluZSB3a3Fja0NBQ0ZU
cmFuc2Zvcm1MYXllciAyCisjZGVmaW5lIHdrcWNrQ0FDRkZpbHRlckxpbmVhciAzCisjZGVmaW5l
IHdrcWNrQ0FDRkZpbHRlck5lYXJlc3QgNAorI2RlZmluZSB3a3Fja0NBQ0ZGaWx0ZXJUcmlsaW5l
YXIgNQorI2RlZmluZSB3a3Fja0NBQ0ZGaWx0ZXJMYW5jem9zIDYKKyNkZWZpbmUgd2txY2tDQUNG
R3Jhdml0eUNlbnRlciA3CisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZpdHlUb3AgOAorI2RlZmluZSB3
a3Fja0NBQ0ZHcmF2aXR5Qm90dG9tIDkKKyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eUxlZnQgMTAK
KyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eVJpZ2h0IDExCisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZp
dHlUb3BMZWZ0IDEyCisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZpdHlUb3BSaWdodCAxMworI2RlZmlu
ZSB3a3Fja0NBQ0ZHcmF2aXR5Qm90dG9tTGVmdCAxNAorI2RlZmluZSB3a3Fja0NBQ0ZHcmF2aXR5
Qm90dG9tUmlnaHQgMTUKKyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eVJlc2l6ZSAxNgorI2RlZmlu
ZSB3a3Fja0NBQ0ZHcmF2aXR5UmVzaXplQXNwZWN0IDE3CisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZp
dHlSZXNpemVBc3BlY3RGaWxsIDE4CisKKyNkZWZpbmUgcWNrQ0FSZW5kZXJEWDlDYWxsYmFja3Mg
MTkKKworZXh0ZXJuICJDIiB7CitRVUFSVFpDT1JFSU5URVJGQUNFX0FQSSBDRlN0cmluZ1JlZiB3
a3FjQ0ZTdHJpbmdSZWZTeW1ib2woaW50IGlkKTsKK1FVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIENB
UmVuZGVyT0dMQ2FsbGJhY2tzKiB3a3FjQ0FSZW5kZXJPR0xDYWxsYmFja3NTeW1ib2woaW50IGlk
KTsKK1FVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIENBVHJhbnNmb3JtM0Qgd2txY0NBVHJhbnNmb3Jt
M0RJZGVudGl0eSgpOworfQorCisjZW5kaWYgLy8gUXVhcnR6Q29yZUludGVyZmFjZV9oCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXRMaWJyYXJpZXMvd2luL2luY2x1ZGUvUXVhcnR6Q29yZUlu
dGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1
dGFibGUKICAgKyAqCgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9iaW4vUXVhcnR6Q29yZUlu
dGVyZmFjZS5kbGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJv
cGVydHkgY2hhbmdlcyBvbjogV2ViS2l0TGlicmFyaWVzL3dpbi9iaW4vUXVhcnR6Q29yZUludGVy
ZmFjZS5kbGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCkFkZGVkOiBz
dm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKVFZxUUFBTUFBQUFF
QUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBNEFBQUFBNGZ1ZzRBdEFuTkliZ0JUTTBoVkdocGN5QndjbTluY21GdElHTmhi
bTV2ZENCaVpTQnlkVzRnYVc0Z1JFOVRJRzF2ClpHVXVEUTBLSkFBQUFBQUFBQURXVVdRV2tqQUtS
Wkl3Q2tXU01BcEZ0ZlpuUlp3d0NrVzE5bkZGbHpBS1JWRS9WMFdRTUFwRmtqQUwKUmEwd0NrVzE5
bVJGbFRBS1JiWDJjRVdUTUFwRnRmWjJSWk13Q2tXMTluSkZrekFLUlZKcFkyaVNNQXBGQUFBQUFB
QUFBQUJRUlFBQQpUQUVHQU9pSEhVc0FBQUFBQUFBQUFPQUFBaUVMQVFnQUFESUFBQUJBQUFBQUFB
QUFJQlVBQUFBUUFBQUFVQUFBQUFBQUVBQVFBQUFBCkFnQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFB
Q3dBQUFBQkFBQUFBQUFBQUlBUUFBQUFCQUFBQkFBQUFBQUVBQUFFQUFBQUFBQUFCQUEKQUFEQWFR
QUF0d0VBQUFDQUFBQlFBQUFBQUpBQUFBa01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0FBQU5n
Q0FBQWdWUUFBSEFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJaGNBQUJBQUFB
QUFBQUFBQUFBQUFEOGdRQUFyQUVBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUM1
MFpYaDBBQUFBYkRFQUFBQVFBQUFBTWdBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFHQXUKY21S
aGRHRUFBSGNiQUFBQVVBQUFBQndBQUFBMkFBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQUxtUmhkR0VB
QUFEa0JBQUFBSEFBQUFBQwpBQUFBVWdBQUFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1cFpHRjBZUUFB
TGdvQUFBQ0FBQUFBREFBQUFGUUFBQUFBQUFBQUFBQUFBQUFBCkFFQUFBTUF1Y25OeVl3QUFBQWtN
QUFBQWtBQUFBQTRBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQUxuSmxiRzlqQUFDNUF3QUEK
QUtBQUFBQUVBQUFBYmdBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUWdBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFNek0Kek16TTZiWUJBQURwRVFBQUFNek16TXpNek16TXpNek16TXpNek16TVZZdnNnZXpFQUFB
QVUxWlhqYjA4Ly8vL3VURUFBQUM0ek16TQp6UE9yaTBVSWlZVTgvLy8vaTQwOC8vLy9nK2tCaVkw
OC8vLy9nNzA4Ly8vL0VRK0hyd0FBQUl1VlBQLy8vLzhrbFJ3UkFCQ2hMSU1BCkVJc0E2WmdBQUFD
aE1JTUFFSXNBNll3QUFBQ2hOSU1BRUlzQTZZQUFBQUNoT0lNQUVJc0E2M2VoUElNQUVJc0E2MjZo
UUlNQUVJc0EKNjJXaFJJTUFFSXNBNjF5aFNJTUFFSXNBNjFPaFRJTUFFSXNBNjBxaFVJTUFFSXNB
NjBHaFZJTUFFSXNBNnppaFdJTUFFSXNBNnkraApYSU1BRUlzQTZ5YWhZSU1BRUlzQTZ4MmhaSU1B
RUlzQTZ4U2hhSU1BRUlzQTZ3dWhiSU1BRUlzQTZ3SXp3RjllVzR2bFhjT1FjQkFBCkVIQVFBQkI4
RUFBUWlCQUFFSlFRQUJDZEVBQVFwaEFBRUs4UUFCQzRFQUFRd1JBQUVNb1FBQkRURUFBUTNCQUFF
T1VRQUJEdUVBQVEKOXhBQUVBQVJBQkFKRVFBUXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXhWaSt5QjdNUUFBQUJUClZsZU52
VHovLy8rNU1RQUFBTGpNek16TTg2dUxSUWlKaFR6Ly8vOHp3RjllVzR2bFhjUE16TXpNek16TXpN
ek16TXpNek16TWdEMVEKY1FBUUFIVWZhZ0JxQVdvQWFnQnFBTVlGVUhFQUVBSG9wd1VBQUZEb2F3
VUFBSVBFR01QTXpNek16TXpNYWdGcUFXb0FhZ0JxQU9pSApCUUFBZzhRVXc4ek16TXpNek16TXpN
ek16TXhWaSt4UmFLZ0FBQUJvUUZVQUVHb0NhSUFBQUFEL0ZlU0NBQkNEeEJDSlJmeUxSZnhRCi94
WG9nZ0FRZzhRRW85UjBBQkNMRGRSMEFCQ0pEY1IwQUJDRGZmd0FkUWU0QVFBQUFPc3FpMVg4eHdJ
QUFBQUE2SFlHQUFCb1VCa0EKRU9oTUJnQUFnOFFFYU5BWEFCRG9Qd1lBQUlQRUJEUEFpK1Zkdzh6
TXpNek16RldMN0lQc0dJTjlEQUIxSDRNOVZIRUFFQUIrRDZGVQpjUUFRZytnQm8xUnhBQkRyQnpQ
QTZROENBQUNMRGFpQ0FCQ0xFWWtWcEhRQUVJTjlEQUVQaFFVQkFBREhSZlFBQUFBQTZQRUJBQUNM
ClFBU0pSZmpIUmZ3QUFBQUFhZ0NMVGZoUmFNQjBBQkQvRlZ5Q0FCQ0pSZlNEZmZRQWRCNkxWZlE3
VmZoMUNjZEYvQUVBQUFEckRXam8KQXdBQS94VmdnZ0FRNjhpRFBiQjBBQkFBZEF4cUgrZ29DQUFB
ZzhRRTYwUEhCYkIwQUJBQkFBQUFhQkJVQUJCb0NGSUFFT2dFQ0FBQQpnOFFJaGNCMEJ6UEE2V29C
QUFCb0JGRUFFR2dBVUFBUTZPRUhBQUNEeEFqSEJiQjBBQkFDQUFBQWczMzhBSFVOYWdCb3dIUUFF
UDhWClpJSUFFSU05MkhRQUVBQjBJV2pZZEFBUTZKNEdBQUNEeEFTRndIUVFpMFVRVUdvQ2kwMElV
ZjhWMkhRQUVHb0IveFh3Z2dBUWc4UUUKaXhWVWNRQVFnOElCaVJWVWNRQVE2ZTBBQUFDRGZRd0FE
NFhqQUFBQXgwWHdBQUFBQUdvQWFnRm93SFFBRVA4VlhJSUFFSWxGOElOOQo4QUIwRFdqb0F3QUEv
eFZnZ2dBUTY5dURQYkIwQUJBQ2RBOXFIK2crQndBQWc4UUU2WjhBQUFDaDFIUUFFRkQvRmRpQ0FC
Q0R4QVNKClJleURmZXdBZEhDTERjUjBBQkJSL3hYWWdnQVFnOFFFaVVYb2kxWG9nK29FaVZYb2kw
WG9PMFhzY2lpTFRlaURPUUIwSHY4VjNJSUEKRUl0VjZEa0NkQkdMUmVpTENGSC9GZGlDQUJDRHhB
VC8wT3ZIYWdLTFZleFMveFhnZ2dBUWc4UUkveFhjZ2dBUW84UjBBQkNoeEhRQQpFS1BVZEFBUXh3
V3dkQUFRQUFBQUFHb0FhTUIwQUJEL0ZXU0NBQkM0QVFBQUFJdmxYY0lNQUZXTDdHU2hHQUFBQUYz
RHpNek16TXhWCmkreURmUXdCZFFYb2dnWUFBSXRGRUZDTFRReFJpMVVJVXVnUkFBQUFnOFFNWGNJ
TUFNek16TXpNek16TXpNeFZpK3hxL21qd1p3QVEKYU1BY0FCQmtvUUFBQUFCUWc4VHdVMVpYb1Fo
d0FCQXhSZmd6eFZDTlJmQmtvd0FBQUFDSlplakhSZVFCQUFBQXgwWDhBQUFBQUl0RgpES01BY0FB
UXgwWDhBUUFBQUlOOURBQjFGWU05VkhFQUVBQjFETWRGNUFBQUFBRHA4Z0FBQUlOOURBRjBCb045
REFKMVE0TTlQRlVBCkVBQjBGWXRORUZHTFZReFNpMFVJVVA4VlBGVUFFSWxGNUlOOTVBQjBGSXRO
RUZHTFZReFNpMFVJVU9qVS9QLy9pVVhrZzMza0FIVUYKNmFNQUFBQ0xUUkJSaTFVTVVvdEZDRkRv
ZFFZQUFJbEY1SU45REFGMVBZTjk1QUIxTjR0TkVGRnFBSXRWQ0ZMb1Z3WUFBSXRGRUZCcQpBSXRO
Q0ZIb2lQei8vNE05UEZVQUVBQjBFSXRWRUZKcUFJdEZDRkQvRlR4VkFCQ0RmUXdBZEFhRGZRd0Rk
VUNMVFJCUmkxVU1Vb3RGCkNGRG9VdnovLzRYQWRRZkhSZVFBQUFBQWczM2tBSFFlZ3owOFZRQVFB
SFFWaTAwUVVZdFZERktMUlFoUS94VThWUUFRaVVYa3gwWDgKQUFBQUFPc3NpMDNzaXhHTEFvbEY0
SXRON0ZHTFZlQlM2TDBGQUFDRHhBakRpMlhveDBYa0FBQUFBTWRGL0FBQUFBREhSZnorLy8vLwo2
QUlBQUFEckM4Y0ZBSEFBRVAvLy8vL0RpMFhraTAzd1pJa05BQUFBQUZsZlhsdUw1VjNEdUFVQUFB
RER6TXpNek16TXpNek16RldMCjdJdEZDSVA0QkhjSml3U0YrRlVBRUYzRE04QmR3OHpNek16TXpN
ek1WWXZzaTAwSWcva0VkeE9MVlF5TEJJMFFjQUFRaVJTTkVIQUEKRUYzRGc4ai9YY1BNek16TXpN
ek16TXpNek16TVZZdnNpMDBJb1ZoeEFCQ0pEVmh4QUJESEJWeHhBQkFBQUFBQVhjUE16TXhWaSt5
TApUUWloWEhFQUVJa05YSEVBRU1jRldIRUFFQUFBQUFCZHc4ek16S0ZZY1FBUXc4ek16TXpNek16
TXpNeWhYSEVBRU1QL0pleUNBQkRNCnpNek1WWXZzYUdSeEFCRG96d3dBQUlQRUJGM0R6TXpNek16
TXpNek16TXpNek14VmkreHEvbWdZYUFBUWFNQWNBQkJrb1FBQUFBQlEKZzhUc1UxWlhvUWh3QUJB
eFJmZ3p4VkNOUmZCa293QUFBQUNoMUhRQUVGRC9GZGlDQUJDRHhBU0pSZVNEZmVUL2RSS0xUUWhS
L3hYQQpnZ0FRZzhRRTZaY0FBQUJxQ09odERBQUFnOFFFeDBYOEFBQUFBSXNWMUhRQUVGTC9GZGlD
QUJDRHhBU0pSZVNoeEhRQUVGRC9GZGlDCkFCQ0R4QVNKUmR5TlRkeFJqVlhrVW90RkNGRC9GZWlD
QUJDRHhBUlE2QjBNQUFDRHhBeUpSZUNMVGVSUi94WG9nZ0FRZzhRRW85UjAKQUJDTFZkeFMveFhv
Z2dBUWc4UUVvOFIwQUJESFJmeisvLy8vNkFJQUFBRHJDMm9JNk5nTEFBQ0R4QVREaTBYZ2kwM3da
SWtOQUFBQQpBRmxmWGx1TDVWM0R6TXpNek16TXpNek16TXpNekZXTDdJdEZDRkRvNVA3Ly80UEVC
UGZZRzhEMzJJUG9BVjNEek16TXpNek1WcjdZCllRQVFpOFk5M0dNQUVITVVrSXNHaGNCMEF2L1Fn
OFlFZ2Y3Y1l3QVFjdTFldzh6TXpNek16TXpNek16TVZyN2taQUFRaThZOTZHWUEKRUhNVWtJc0do
Y0IwQXYvUWc4WUVnZjdvWmdBUWN1MWV3OHovSmVpQ0FCRC9KZVNDQUJEL0plQ0NBQkQvSmR5Q0FC
RC9KZGlDQUJELwpKZkNDQUJETXpNek16TXhWaSt5RDdBeUxSUWlKUmZpTFRmZ1B0eEdCK2sxYUFB
QjBCRFBBNnp1TFJmaUxUZmdEU0R5SlRmU0xWZlNCCk9sQkZBQUIwQkRQQTZ5Q0xSZlNEd0JpSlJm
eUxUZndQdHhHQitnc0JBQUIwQkRQQTZ3VzRBUUFBQUl2bFhjUE16TXhWaSt5RDdBeUwKUlFpTFRR
Z0RTRHlKVGZ6SFJmZ0FBQUFBaTFYOEQ3ZENGSXROL0kxVUFSaUpWZlRyRW90RitJUEFBWWxGK0l0
TjlJUEJLSWxOOUl0VgovQSszUWdZNVJmaHpJNHROOUl0VkREdFJESElXaTBYMGkwZ01pMVgwQTBv
SU9VME1jd1dMUmZUckJPdS9NOENMNVYzRHpNek16TXpNCnpNek16TXpNekZXTDdHcithRGhvQUJC
b3dCd0FFR1NoQUFBQUFGQ0R4TmhUVmxlaENIQUFFREZGK0RQRlVJMUY4R1NqQUFBQUFJbGwKNk1k
RjVBQUFBQkRIUmZ3QUFBQUFpMFhrVU9qVy92Ly9nOFFFaGNCMUZzZEYxQUFBQUFESFJmeisvLy8v
aTBYVTZaY0FBQUNMVFFncgpUZVNKVGR5TFZkeFNpMFhrVU9nRC8vLy9nOFFJaVVYZ2czM2dBSFVU
eDBYUUFBQUFBTWRGL1A3Ly8vK0xSZERyWW90TjRJdFJKSUhpCkFBQUFnUGZhRzlLRHdnR0pWY3pI
UmZ6Ky8vLy9pMFhNNjBESFJmeisvLy8vNnplTFJleUxDSXNSaVZYWWkwWFlNOGs5QlFBQXdBK1UK
d1l2Qnc0dGw2TWRGeUFBQUFBREhSZnorLy8vL2kwWEk2d2ZIUmZ6Ky8vLy9pMDN3WklrTkFBQUFB
RmxmWGx1TDVWM0QveVhVZ2dBUQoveVhRZ2dBUS95WE1nZ0FRek16TXpNek16TXpNek16TXpNeFZp
K3lEN0JqSFJmZ0FBQUFBeDBYOEFBQUFBSUU5Q0hBQUVFN21RTHQwCkg2RUljQUFRSlFBQS8vOTBF
NHNOQ0hBQUVQZlJpUTBNY0FBUTZaWUFBQUNOVmZoUy94VkVnZ0FRaTBYNGlVWDBpMDMwTTAzOGlV
MzAKL3hWSWdnQVFNMFgwaVVYMC94Vk1nZ0FRTTBYMGlVWDAveFZRZ2dBUU0wWDBpVVgwalZYb1V2
OFZWSUlBRUl0RjlETkY2SWxGOUl0Tgo5RE5ON0lsTjlJRjk5RTdtUUx0MUNjZEY5RS9tUUx2ckY0
dFY5SUhpQUFELy8zVU1pMFgwd2VBUUMwWDBpVVgwaTAzMGlRMEljQUFRCmkxWDA5OUtKRlF4d0FC
Q0w1VjNEelA4bHJJSUFFRldMN0lOOURBRjFFNE05UEZVQUVBQjFDb3RGQ0ZEL0ZVQ0NBQkM0QVFB
QUFGM0MKREFETXpNek16TXpNek16TXpGV0w3SXRGRkZDTFRSQlJpMVVNVW90RkNGQm8wQ1FBRUdn
SWNBQVE2T0lIQUFDRHhCaGR3OHpNek16TQp6TXpNekdnRUVBQUE2QVlBQUFDRHhBVER6TXhWaSt4
cS9taFlhQUFRYU1BY0FCQmtvUUFBQUFCUWcrd2tVMVpYb1Fod0FCQXhSZmd6CnhWQ05SZkJrb3dB
QUFBQ0paZWd6d0loRjU4ZEZ6QUVRQUFDTFRRaUpUZENOVmVlSlZkU0pSZnlOVGN4UmFnWlFhSWdU
YlVEL0ZWaUMKQUJEckI0UEkvOE9MWmVqSFJmeisvLy8vRDdaRjU0dE44R1NKRFFBQUFBQlpYMTVi
aStWZHc4ek16TXpNek16TXpNeFZpK3lMUlF5RAorQVIzSklzTWhSQndBQkNEK2YrTEZJVWtjQUFR
ZEE5U1VJdEZDRkZRNkNZQUFBQ0R4QkJkdzRzVk9IQUFFRks0QlFBQUFGQ0xSUWk1CkFRQUFBRkZR
NkFVQUFBQ0R4QkJkdzFXTDdJSHNQQTRBQUtFSWNBQVFNOFdKUmZ4VFZvdDFGRmVMZlFoWGliWEU4
Zi8veDRYTThmLy8KQUFBQUFPaXUrZi8vaTlpRHhBU0YyM1VQVitpUCtmLy9nOFFFaVlYTThmLy9h
Z0JxQUdyL1ZvczFNSUlBRUdvQWFPbjlBQUQvMWowQQpBZ0FBY3l5TGpjVHgvLzlRallYVThmLy9V
R3IvVVdvQWFPbjlBQUQvMW9YQWRBNk5sZFR4Ly8rSmxkRHgvLy9yQ3NlRjBQSC8vOWhaCkFCQm9B
aEFBQU9oNS92Ly9pM1VRZzhRRWhjQjBKWXVGMFBILy80c010Y2hZQUJCUVYxRlc2SGtCQUFDRHhC
Q0Z3QStGVWdFQUFETEEKNndLd0FZTzl6UEgvL3dCMUNJWGJENFExQVFBQWhNQjBEdjhWTklJQUVJ
WEFENFVqQVFBQWFBUUJBQUNObGV6Ny8vOVNqWVhJOGYvLwpVR2dFQVFBQWpZMzAvZi8vVVlQSCsx
Zm8zUVVBQUlQRUdJWGJkQzJMbGREeC8vK0xqY2p4Ly85U1ZtaVlXUUFRallYcysvLy9VSXRGCkRG
R05sZlQ5Ly85U1VQL1Q2YjhBQUFDTE5UaUNBQkJxQUdvQWFnQnFBR3IvalkzMC9mLy9VV29BYU9u
OUFBRC8xb1hBZENocUFHb0EKVUkyVjFQWC8vMUpxLzQyRjlQMy8vMUJxQUdqcC9RQUEvOWFGd0ky
OTFQWC8vM1VGdjRCWkFCQnFBR29BYWdCcUFHci9qWTNzKy8vLwpVV29BYU9uOUFBRC8xb1hBZENo
cUFHb0FVSTJWNVBuLy8xSnEvNDJGN1B2Ly8xQnFBR2pwL1FBQS85YUZ3STJGNVBuLy8zVUZ1R3ha
CkFCQ0xqY1R4Ly8rTFZSQlJpMDBNVW1oTVdRQVFVSXVGeVBILy8xQlhVZitWelBILy80UEVISVA0
QVhVRy94VThnZ0FRaTAzOFgxNHoKelZ2b3Z3UUFBSXZsWGNQTXpNek16TXpNek16TXpGV0w3R3Ir
YUhob0FCQm93QndBRUdTaEFBQUFBRkNEN0NSVFZsZWhDSEFBRURGRgorRFBGVUkxRjhHU2pBQUFB
QUlsbDZEUEFpRVhueDBYTUFoQUFBSXROQ0lsTjBJdFZESWxWMUl0TkVJbE4ySTFWNTRsVjNJdE5G
SWxOCjRJbEYvSTFWekZKcUJsQm9pQk50UVA4VldJSUFFT3NIZzhqL3c0dGw2TWRGL1A3Ly8vOFB0
a1huaTAzd1pJa05BQUFBQUZsZlhsdUwKNVYzRHpNek16TXpNek14VmkreUI3QWdFQUFDaENIQUFF
RFBGaVVYOGd6MFljQUFRLzR0RkNJbUYrUHYvLzR0RkRBK0U1UUFBQUlBNApBRk5XRDRTN0FBQUFp
OGlOY1FHTlpDUUFpaEdEd1FHRTBuWDNLODZEd1MyQitRQUVBQUFQaDVnQUFBQ05uZno3Ly84enll
c01qYVFrCkFBQUFBT3NEalVrQWlwSGdXQUFRaUpRTi9Qdi8vNFBCQVlUU2RleUwwSW9JZzhBQmhN
bDE5MWVOdmZ6Ny8vOHJ3b1BILytzRGpVa0EKaWs4Qmc4Y0JoTWwxOW92SXdla0NpL0x6cFl2SWcr
RUR1UHhZQUJEenBJdklpaENEd0FHRTBuWDNqYjM4Ky8vL0s4R0w4WVBILzRwUApBWVBIQVlUSmRm
YUx5TUhwQXZPbGk4aUQ0UVB6cEYvckJidEVXZ0FRb1Jod0FCQ0xqZmo3Ly85VGFnSlFVZWdVL1Av
L2c4UVFYbHVMClRmd3p6ZWoxQWdBQWkrVmR3OHhWaSt5QjdFUUJBQUNoQ0hBQUVEUEZpVVg4VTRz
ZElIQUFFSVA3LzFhTGRReFhpMzBJaWIyOC92Ly8KRDRUdkFBQUFhSXhiQUJEL0ZTU0NBQkNGd0Er
RXl3QUFBR2lBV3dBUVVQOFZLSUlBRUlYMm8yeHhBQkFQaExJQUFBQ0Z3QStFcWdBQQpBSXRORUl0
V0RHaDBXd0FRVVdoSVd3QVFnK29rVW1oQVd3QVFqWDRnVjJnd1d3QVFhT2hhQUJDTmpjRCsvLzlv
MEZvQUVGSC8wSXRXCkRJUHFKRkpYalVXMFVJMU42Rkhva0FBQUFJUEVPR2pNV2dBUWpWVzBVbWpJ
V2dBUWpVWG9VR2k4V2dBUWpZM0Evdi8vVWY4VkxJSUEKRUkyVUJjRCsvLzlTL3hWc2NRQVFpNDI4
L3YvL2pZWEEvdi8vVUdvRVUxSG9CZnYvLzRQRUtGOWVXNHROL0RQTjZPVUJBQUNMNVYzRAphSEJh
QUJCcUJGTlg2T1A2Ly8rRHhCQ0xUZnhmWGpQTlcrakRBUUFBaStWZHc4ek16TXpNek16TXpNek16
TXpNekZXTDdJUHNDSXRGCkRGTldpM1VJaVVYOGkwVVFWelAvSzhhSlJmaU5aQ1FBaTAwVWcva1Fj
Z1c1RUFBQUFEdjVjeXFLSERDTFZmd1B0c3RSYUpoYkFCQlMKL3hWc2NRQVFnMFg4QTR0RitJUEVE
SWdlZzhjQmc4WUI2OFdMVFF5TFJRaU5GSG5HQkFjQXhnUVhBRjllVzR2bFhjUE16TXpNek16TQp6
TXpNek16TVZZdnNnZXdFQkFBQW9RaHdBQkF6eFlsRi9JTTlISEFBRVArTFJRZ1BoTnNBQUFDRndG
TldENFMxQUFBQWk4aU5jUUdLCkVZUEJBWVRTZGZjcnpvUEJPb0g1QUFRQUFBK0hsZ0FBQUkyZC9Q
di8velBKNndxTnBDUUFBQUFBalVrQWlwRVFXUUFRaUpRTi9Qdi8KLzRQQkFZVFNkZXlMMElvSWc4
QUJoTWwxOTFlTnZmejcvLzhyd29QSC8rc0RqVWtBaWs4Qmc4Y0JoTWwxOW92SXdla0NpL0x6cFl2
SQpnK0VEdUNCWkFCRHpwSXZJaWhDRHdBR0UwblgzamIzOCsvLy9LOEdMOFlQSC80cFBBWVBIQVlU
SmRmYUx5TUhwQXZPbGk4aUQ0UVB6CnBGL3JCYnVnV3dBUW9SeHdBQkJUYWdOUWkwVUVVT2hIK2Yv
L2c4UVFYbHVMVGZ3enplZ29BQUFBaStWZHcvOGxzSUlBRVA4bHRJSUEKRVA4bHVJSUFFUDhsdklJ
QUVQOGx4SUlBRU16TXpNek16RHNOQ0hBQUVIVUM4OFBwa1FRQUFNeFZpK3lMUlJTTFRReUQ3RVJX
aTNVSQphaHlOVmJ4U2crNEJ4d0FBQUFBQVZtYkhBUUFBL3hVUWdnQVFoY0IxQnpQQVhvdmxYY09M
UlJ5TFRSaUxWY0JRVVZML0ZSU0NBQkNGCndIVGppMVhBWm9FNlRWcDEyWXRDUElYQWZ0SUR3b0U0
VUVVQUFIWElEN2RJQmxOWEQ3ZDRGSTFFQnhncjhqUC9NOXVGeVhZY2c4QU0KaXhBNzhuSUppLzRy
K2p0dy9ISUtnOE1CZzhBb085bHk1enZaZEYyRHd3R0FQWFJ4QUJBQWRTQ0RQWEJ4QUJBQWRVam9G
d0lBQUlYQQpvM0J4QUJCME9zWUZkSEVBRUFIckJhRndjUUFRYU9SYkFCQlEveFVvZ2dBUU0vWTd4
blFhalUzd1VZdE5HRlpXalZYWVVsWldWbEgvCjBJUEVJSVhBZFFsZld6UEFYb3ZsWGNPTFRmQ0xF
WXNDaVhYay85QTl0YVV4QVErRmtnRUFBSXROOElzUmkxSWNqVVhvVUdqZ1d3QVEKVnYvU2hjQVBo
SFlCQUFDTFRlaUxBWXRBSUZaV1ZvMVY5RkpYVS8vUWhjQVBoRkVCQUFDTFRmU0pkZnlMRVl0U2FJ
MUYvRkQvMG9UQQpENFF1QVFBQWkwMzhPODRQaENNQkFBQ0xBWXRRQ1AvU2hjQVBoUHNBQUFDTFRm
eUxBWXRBREdvQWpWWDRVbzFWNEZLTlZRaFNqVlhzClVtb0EvOUNFd0ErRTVRQUFBQSszVFFnN3kz
VVFpMFhzTzhkM0NZdFY0QVBDTy9oeUU0dE4vSXNCaTFBSS85S0Z3SFcwNmFvQUFBQ0wKUmZpRndB
K0Vyd0FBQUQzLy8vOGZENE9rQUFBQUE4QUR3QVBBVUdvQS94VVlnZ0FRVVA4VkhJSUFFSXZ3aGZZ
UGhJUUFBQUNMVGZ5TApFWXRTREZhTlJmaFFhZ0JxQUdvQWpVWGNVUC9TaE1CMFZ5dDk3RHMrY2xD
TFRmaTRBUUFBQUR2SWRnK05TUUE3UE1aeUI0UEFBVHZCCmN2U0xSTWI4aTAwVWFnQWwvLy8vQUlr
QmkwMzBpeEdMVW5CcUFHb0FqVVVRVUl0RkRGQ0xSZHhRLzlLRXdIUUh4MFhrQVFBQUFGWnEKQVA4
VkdJSUFFRkQvRlNDQ0FCQ0xUZnlMQVlzUS85S0xUZlNMQVl0UVFQL1NpMDNvaXdHTFVEai8wb3RO
OElzQmkxQW8vOUtMUmVSZgpXMTZMNVYzRHpNek16TXpNek16TXpNek16TXhWaSt5QjdCZ0JBQUNo
Q0hBQUVEUEZpVVg4Z3oxNGNRQVFBSFFRTThDTFRmd3p6ZWo0Ci9QLy9pK1ZkdzZFOGNBQVFWb3Mx
SklJQUVGREhCWGh4QUJBQkFBQUEvOWFGd0ErRllBRUFBR2h3WEFBUS85YUw4SVgyZFE5ZWkwMzgK
TTgzb3Uvei8vNHZsWGNOVGl4MG9nZ0FRYUdCY0FCQlcvOU9Gd0ltRjdQNy8vM1VRVzE2TFRmd3p6
ZWlTL1AvL2krVmR3MWRvVEZ3QQpFRmIvMDR2NGhmOTBhR2hBWEFBUVZ2L1RpOWlGMjNSYWpZM3cv
di8vVVdvQmFnQm9FRndBRUdnQ0FBQ0EvNVhzL3YvL2hjQjFOSXVOCjhQNy8vNDJWOVA3Ly8xSlFq
WVhvL3YvL1VHb0FhUGhiQUJCUi85ZUZ3SFVSaTVYMC92Ly9nOElOZ2ZvRUFRQUFjaHBXL3hVTWdn
QVEKWDFzendGNkxUZnd6emVnSS9QLy9pK1ZkdzQyRjlQNy8vMUNMaGZEKy8vK05qZmorLy85Umpa
WG8vdi8vVW1vQWFQaGJBQkJRLzllTApqZkQrLy85Umkvai8wMWIvRlF5Q0FCQ0YvM1d5aTQzMC92
Ly9zRnc0aEEzMi92Ly9kQW1JaEEzMy92Ly82d21ENlFHSmpmVCsvLytMCk5UeHdBQkF6d0kyTURm
aisvLytOcENRQUFBQUFpaFFHaUJRQmc4QUJnL2dMZnZLTmhmaisvLzlRL3hVa2dnQVFYMXVMVGZ3
enpWN28KYVB2Ly80dmxYY1BNek16TVZZdnNnZXdvQXdBQW80aHlBQkNKRFlSeUFCQ0pGWUJ5QUJD
SkhYeHlBQkNKTlhoeUFCQ0pQWFJ5QUJCbQpqQldnY2dBUVpvd05sSElBRUdhTUhYQnlBQkJtakFW
c2NnQVFab3dsYUhJQUVHYU1MV1J5QUJDY2p3V1ljZ0FRaTBVQW80eHlBQkNMClJRU2prSElBRUkx
RkNLT2NjZ0FRaTRYZy9QLy94d1hZY1FBUUFRQUJBS0dRY2dBUW80eHhBQkRIQllCeEFCQUpCQURB
eHdXRWNRQVEKQVFBQUFJc05DSEFBRUltTjJQei8vNHNWREhBQUVJbVYzUHovLy84Vk5JSUFFS1BR
Y1FBUWFnSG9Qd0FBQUlQRUJHb0EveFg4Z1FBUQphSUJjQUJEL0ZRQ0NBQkNEUGRCeEFCQUFkUXBx
QWVnWkFBQUFnOFFFYUFrRUFNRC9GUVNDQUJCUS94VUlnZ0FRaStWZHcvOGx5SUlBCkVQOGxaSUlB
RVA4bFlJSUFFUDhsWElJQUVQOGxWSUlBRVA4bFVJSUFFUDhsVElJQUVQOGxTSUlBRVA4bFJJSUFF
UDhsUUlJQUVQOGwKV0lJQUVQOGxQSUlBRVA4bE9JSUFFUDhsTklJQUVQOGxNSUlBRVA4bExJSUFF
UDhsS0lJQUVQOGxKSUlBRVA4bElJSUFFUDhsSElJQQpFUDhsR0lJQUVQOGxGSUlBRVA4bEVJSUFF
UDhsRElJQUVQOGxDSUlBRVA4bEJJSUFFUDhsQUlJQUVQOGwvSUVBRU16TXpNek16TXpNCnpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
CnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0K
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
CnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek13QUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBVUJJQUVB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRG9oeDFMQUFBQUFBSUFBQUJYQUFBQVhG
OEFBRnhGCkFBQUFBQUFBWTNKMFpHeHNMbU1BQUFBQVUzUmhZMnNnWVhKdmRXNWtJRjloYkd4dlky
RWdZMjl5Y25Wd2RHVmtBQUJNYjJOaGJDQjIKWVhKcFlXSnNaU0IxYzJWa0lHSmxabTl5WlNCcGJt
bDBhV0ZzYVhwaGRHbHZiZ0FBQUZOMFlXTnJJRzFsYlc5eWVTQmpiM0p5ZFhCMAphVzl1QUVOaGMz
UWdkRzhnYzIxaGJHeGxjaUIwZVhCbElHTmhkWE5wYm1jZ2JHOXpjeUJ2WmlCa1lYUmhBQUFBVTNS
aFkyc2djRzlwCmJuUmxjaUJqYjNKeWRYQjBhVzl1QUFBQUFOeFZBQkN3VlFBUW1GVUFFR3hWQUJC
TVZRQVFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUEKQUFCVmJtdHViM2R1SUZKMWJuUnBiV1VnUTJo
bFkyc2dSWEp5YjNJS0RRQUFBRk4wWVdOcklHMWxiVzl5ZVNCaGNtOTFibVFnWDJGcwpiRzlqWVNC
M1lYTWdZMjl5Y25Wd2RHVmtDZzBBUVNCc2IyTmhiQ0IyWVhKcFlXSnNaU0IzWVhNZ2RYTmxaQ0Jp
WldadmNtVWdhWFFnCmQyRnpJR2x1YVhScFlXeHBlbVZrQ2cwQUFBQlRkR0ZqYXlCdFpXMXZjbmtn
ZDJGeklHTnZjbkoxY0hSbFpBb05BQUFBQUFBQUFBQkIKSUdOaGMzUWdkRzhnWVNCemJXRnNiR1Z5
SUdSaGRHRWdkSGx3WlNCb1lYTWdZMkYxYzJWa0lHRWdiRzl6Y3lCdlppQmtZWFJoTGlBZwpTV1ln
ZEdocGN5QjNZWE1nYVc1MFpXNTBhVzl1WVd3c0lIbHZkU0J6YUc5MWJHUWdiV0Z6YXlCMGFHVWdj
MjkxY21ObElHOW1JSFJvClpTQmpZWE4wSUhkcGRHZ2dkR2hsSUdGd2NISnZjSEpwWVhSbElHSnBk
RzFoYzJzdUlDQkdiM0lnWlhoaGJYQnNaVG9nSUFvTkNXTm8KWVhJZ1l5QTlJQ2hwSUNZZ01IaEdS
aWs3Q2cxRGFHRnVaMmx1WnlCMGFHVWdZMjlrWlNCcGJpQjBhR2x6SUhkaGVTQjNhV3hzSUc1dgpk
Q0JoWm1abFkzUWdkR2hsSUhGMVlXeHBkSGtnYjJZZ2RHaGxJSEpsYzNWc2RHbHVaeUJ2Y0hScGJX
bDZaV1FnWTI5a1pTNEtEUUFBCkFBQlVhR1VnZG1Gc2RXVWdiMllnUlZOUUlIZGhjeUJ1YjNRZ2NI
SnZjR1Z5YkhrZ2MyRjJaV1FnWVdOeWIzTnpJR0VnWm5WdVkzUnAKYjI0Z1kyRnNiQzRnSUZSb2FY
TWdhWE1nZFhOMVlXeHNlU0JoSUhKbGMzVnNkQ0J2WmlCallXeHNhVzVuSUdFZ1puVnVZM1JwYjI0
ZwpaR1ZqYkdGeVpXUWdkMmwwYUNCdmJtVWdZMkZzYkdsdVp5QmpiMjUyWlc1MGFXOXVJSGRwZEdn
Z1lTQm1kVzVqZEdsdmJpQndiMmx1CmRHVnlJR1JsWTJ4aGNtVmtJSGRwZEdnZ1lTQmthV1ptWlhK
bGJuUWdZMkZzYkdsdVp5QmpiMjUyWlc1MGFXOXVMZ29OQUFBQUFBRUEKQUFBQUFBQUFBUUFBQUFF
QUFBQUJBQUFBQVFBQUFGTjBZV05ySUdGeWIzVnVaQ0IwYUdVZ2RtRnlhV0ZpYkdVZ0p3QW5JSGRo
Y3lCagpiM0p5ZFhCMFpXUXVBQUFBQUZSb1pTQjJZWEpwWVdKc1pTQW5BQUFuSUdseklHSmxhVzVu
SUhWelpXUWdkMmwwYUc5MWRDQmlaV2x1Clp5QnBibWwwYVdGc2FYcGxaQzRBQUZKMWJpMVVhVzFs
SUVOb1pXTnJJRVpoYVd4MWNtVWdJeVZrSUMwZ0pYTUFWVzVyYm05M2JpQk4KYjJSMWJHVWdUbUZ0
WlFCVmJtdHViM2R1SUVacGJHVnVZVzFsQUFBQUFBQUFBQUJTQUhVQWJnQXRBRlFBYVFCdEFHVUFJ
QUJEQUdnQQpaUUJqQUdzQUlBQkdBR0VBYVFCc0FIVUFjZ0JsQUNBQUl3QWxBR1FBSUFBdEFDQUFK
UUJ6QUFBQVVnQjFBRzRBZEFCcEFHMEFaUUFnCkFFTUFhQUJsQUdNQWF3QWdBRVVBY2dCeUFHOEFj
Z0F1QUFvQURRQWdBRlVBYmdCaEFHSUFiQUJsQUNBQWRBQnZBQ0FBWkFCcEFITUEKY0FCc0FHRUFl
UUFnQUZJQVZBQkRBQ0FBVFFCbEFITUFjd0JoQUdjQVpRQXVBQUFBVTNSaFkyc2dZMjl5Y25Wd2RH
VmtJRzVsWVhJZwpkVzVyYm05M2JpQjJZWEpwWVdKc1pRQUFBQUFBQUFCVGRHRmpheUJoY21WaElH
RnliM1Z1WkNCZllXeHNiMk5oSUcxbGJXOXllU0J5ClpYTmxjblpsWkNCaWVTQjBhR2x6SUdaMWJt
TjBhVzl1SUdseklHTnZjbkoxY0hSbFpBb0FBQUFBSlhNbGN5VnpKWE1BQUFBQVBpQUEKQUFvQUFB
QWxjeVZ6SlhBbGN5VnNaQ1Z6SldRbGN3QUFBQUFBQUFCVGRHRmpheUJoY21WaElHRnliM1Z1WkNC
ZllXeHNiMk5oSUcxbApiVzl5ZVNCeVpYTmxjblpsWkNCaWVTQjBhR2x6SUdaMWJtTjBhVzl1SUds
eklHTnZjbkoxY0hSbFpBQUtRV1JrY21WemN6b2dNSGdBCkFBQUFDbE5wZW1VNklBQUtRV3hzYjJO
aGRHbHZiaUJ1ZFcxaVpYSWdkMmwwYUdsdUlIUm9hWE1nWm5WdVkzUnBiMjQ2SUFBQUFBcEUKWVhS
aE9pQThBQUFBQUhkemNISnBiblJtUVFBQUFIVnpaWEl6TWk1a2JHd0FBQ1V1TWxnZ0FBQUFRU0Iy
WVhKcFlXSnNaU0JwY3lCaQpaV2x1WnlCMWMyVmtJSGRwZEdodmRYUWdZbVZwYm1jZ2FXNXBkR2xo
YkdsNlpXUXVBRTFUVUVSQ09EQXVSRXhNQUhJQUFBQlFSRUpQCmNHVnVWbUZzYVdSaGRHVTFBQUFB
QUVWdWRtbHliMjV0Wlc1MFJHbHlaV04wYjNKNUFBQUFBRk5QUmxSWFFWSkZYRTFwWTNKdmMyOW0K
ZEZ4V2FYTjFZV3hUZEhWa2FXOWNPQzR3WEZObGRIVndYRlpUQUFBQUFGSmxaME5zYjNObFMyVjVB
RkpsWjFGMVpYSjVWbUZzZFdWRgplRUVBQUFBQVVtVm5UM0JsYmt0bGVVVjRRUUFBQUVGRVZrRlFT
VE15TGtSTVRBQUFBQUNBY1FBUTJIRUFFRWdBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWh3QUJEUVlB
QVEKQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlNVMFJUR2x2NDBUTEUya0dnOVNCOGZK
THlFZ1FBQUFCak9seGoKZVdkM2FXNWNhRzl0WlZ4amJXRnljbWx1WEZkbFlrdHBkRUoxYVd4a1hH
SnBibHhSZFdGeWRIcERiM0psU1c1MFpYSm1ZV05sTG5CawpZZ0FBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFEQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUJJQUVBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBTUJJQUVBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBRCsvLy8vQUFBQUFORC8vLzhBQUFB
QS92Ly8vd0FBQUFEd0ZnQVFBQUFBQUxZV0FCRFJGZ0FRL3YvLy93QUFBQURNLy8vL0FBQUEKQVA3
Ly8vOEFBQUFBMHhnQUVBQUFBQUQrLy8vL0FBQUFBTGovLy84QUFBQUEvdi8vLzBjYkFCQmhHd0FR
QUFBQUFQNy8vLzhBQUFBQQp2UC8vL3dBQUFBRCsvLy8vWWgwQUVHWWRBQkFBQUFBQS92Ly8vd0FB
QUFDOC8vLy9BQUFBQVA3Ly8vK1VJQUFRbUNBQUVBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFEb2h4MUxBQUFBQVB4cEFB
QUJBQUFBQWdBQUFBSUFBQURvYVFBQThHa0FBUGhwQUFBRkVBQUFDaEFBCkFCUnFBQUE3YWdBQUFB
QUJBRkYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlV1Wkd4c0FIZHJVWFZoY25SNlEyOXlaVU5CVW1W
dVpHVnkKVDBkTVEyRnNiR0poWTJ0elUzbHRZbTlzQUhkclVYVmhjblI2UTI5eVpVTkdVM1J5YVc1
blVtVm1VM2x0WW05c0FBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vVHVaQXU3RVp2MFFCQUFBQUFRQUFBQUVBQUFBQkFB
QUFBUUFBQU9oWEFCREkKVmdBUXBGWUFFR3hXQUJCQVZnQVFJRllBRU5SYkFCQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lFQUFBQUFBQUFBQUFBQU1JVUFBQ3lEQUFEOGdBQUFB
QUFBQUFBQUFBRCtoUUFBcUlJQUFGQ0EKQUFBQUFBQUFBQUFBQUtDSUFBRDhnUUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFDQ2lBQUFab2dBQUZLSUFBQStpQUFBTUlnQQpBQ0NJQUFBS2lBQUEr
SWNBQU95SEFBRGdod0FBMEljQUFMNkhBQUN5aHdBQW5JY0FBSWlIQUFCeWh3QUFaSWNBQURhSEFB
QWNod0FBCkJvY0FBUENHQUFEZ2hnQUF4b1lBQUZLSEFBQ29oZ0FBb0lZQUFJcUdBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQTNJVUFBT3lGQUFBTWhnQUFNSVlBQURxRwpBQUJJaGdBQVVJ
WUFBRnFHQUFCMGhnQUF6b1VBQU1DRkFBQzBoUUFBam9VQUFINkZBQUJ5aFFBQVpJVUFBRktGQUFC
QWhRQUFvSVVBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKR29VQUFBYUZBQUR3aEFBQTJJUUFBTUtFQUFD
c2hBQUFtb1FBQUlTRUFBQndoQUFBWElRQUFFYUVBQUF1aEFBQUZJUUFBUHFEQUFEawpnd0FBeUlN
QUFLaURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFJS0lBQUJtaUFBQVVvZ0FBRDZJQUFBd2lBQUFJSWdB
QUFxSUFBRDRod0FBN0ljQUFPQ0hBQURRaHdBQXZvY0EKQUxLSEFBQ2Nod0FBaUljQUFIS0hBQUJr
aHdBQU5vY0FBQnlIQUFBR2h3QUE4SVlBQU9DR0FBREdoZ0FBVW9jQUFLaUdBQUNnaGdBQQppb1lB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBRGNoUUFBN0lVQUFBeUdBQUF3aGdBQU9vWUFB
RWlHQUFCUWhnQUFXb1lBQUhTR0FBRE9oUUFBd0lVQUFMU0YKQUFDT2hRQUFmb1VBQUhLRkFBQmto
UUFBVW9VQUFFQ0ZBQUNnaFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhaFFBQUJvVUFBUENFQUFEWWhB
QUF3b1FBQUt5RUFBQ2FoQUFBCmhJUUFBSENFQUFCY2hBQUFSb1FBQUM2RUFBQVVoQUFBK29NQUFP
U0RBQURJZ3dBQXFJTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXNBRnJRMEZEUmtkeVlYWnBkSGxTWlhO
cAplbVZCYzNCbFkzUkdhV3hzQUFDdkFXdERRVU5HUjNKaGRtbDBlVkpsYzJsNlpVRnpjR1ZqZEFB
QXJnRnJRMEZEUmtkeVlYWnBkSGxTClpYTnBlbVVBQUtzQmEwTkJRMFpIY21GMmFYUjVRbTkwZEc5
dFVtbG5hSFFBcWdGclEwRkRSa2R5WVhacGRIbENiM1IwYjIxTVpXWjAKQUFDMEFXdERRVU5HUjNK
aGRtbDBlVlJ2Y0ZKcFoyaDBBQUN6QVd0RFFVTkdSM0poZG1sMGVWUnZjRXhsWm5RQXNRRnJRMEZE
UmtkeQpZWFpwZEhsU2FXZG9kQUN0QVd0RFFVTkdSM0poZG1sMGVVeGxablFBQUtrQmEwTkJRMFpI
Y21GMmFYUjVRbTkwZEc5dEFBQ3lBV3REClFVTkdSM0poZG1sMGVWUnZjQUNzQVd0RFFVTkdSM0po
ZG1sMGVVTmxiblJsY2dBQXBRRnJRMEZEUmtacGJIUmxja3hoYm1ONmIzTUEKQUtnQmEwTkJRMFpH
YVd4MFpYSlVjbWxzYVc1bFlYSUFBS2NCYTBOQlEwWkdhV3gwWlhKT1pXRnlaWE4wQUFDbUFXdERR
VU5HUm1scwpkR1Z5VEdsdVpXRnlBTHdCYTBOQlEwWlVjbUZ1YzJadmNtMU1ZWGxsY2dCUmRXRnlk
SHBEYjNKbExtUnNiQUFBWHdCZlExSlVYMUpVClExOUpUa2xVVndBQXB3RmZaVzVqYjJSbFgzQnZh
VzUwWlhJQXpnSmZiV0ZzYkc5algyUmlad0RqQVY5bWNtVmxYMlJpWndDb0FWOWwKYm1OdlpHVmtY
MjUxYkd3QW5BRmZaR1ZqYjJSbFgzQnZhVzUwWlhJQWRRQmZRM0owVTJWMFEyaGxZMnREYjNWdWRB
QkxBbDlwYm1sMApkR1Z5YlFCTUFsOXBibWwwZEdWeWJWOWxBRXdCWDJGdGMyZGZaWGhwZEFBQU9n
RmZZV1JxZFhOMFgyWmthWFlBQUpFQVgxOURjSEJZClkzQjBSbWxzZEdWeUFFMVRWa05TT0RCRUxt
UnNiQUFBc3dCZlgyTnNaV0Z1WDNSNWNHVmZhVzVtYjE5dVlXMWxjMTlwYm5SbGNtNWgKYkFBQU1n
UmZkVzVzYjJOckFMMEFYMTlrYkd4dmJtVjRhWFFBdkFKZmJHOWphd0JsQTE5dmJtVjRhWFFBc0FG
ZlpYaGpaWEIwWDJoaApibVJzWlhJMFgyTnZiVzF2YmdDSEFWOWpjblJmWkdWaWRXZG5aWEpmYUc5
dmF3QUFLUUpKYm5SbGNteHZZMnRsWkVWNFkyaGhibWRsCkFGWURVMnhsWlhBQUpnSkpiblJsY214
dlkydGxaRU52YlhCaGNtVkZlR05vWVc1blpRQUFvd0pSZFdWeWVWQmxjbVp2Y20xaGJtTmwKUTI5
MWJuUmxjZ0RmQVVkbGRGUnBZMnREYjNWdWRBQUFSZ0ZIWlhSRGRYSnlaVzUwVkdoeVpXRmtTV1FB
QUVNQlIyVjBRM1Z5Y21WdQpkRkJ5YjJObGMzTkpaQURLQVVkbGRGTjVjM1JsYlZScGJXVkJjMFpw
YkdWVWFXMWxBSXNBUkdsellXSnNaVlJvY21WaFpFeHBZbkpoCmNubERZV3hzY3dDbkFsSmhhWE5s
UlhoalpYQjBhVzl1QUFCNEFFUmxZblZuUW5KbFlXc0FBSlFEVjJsa1pVTm9ZWEpVYjAxMWJIUnAK
UW5sMFpRQTVBa2x6UkdWaWRXZG5aWEpRY21WelpXNTBBSFVDVFhWc2RHbENlWFJsVkc5WGFXUmxR
MmhoY2dETUEyeHpkSEpzWlc1QgpBQUNnQVVkbGRGQnliMk5CWkdSeVpYTnpBQUJTQWt4dllXUk1h
V0p5WVhKNVFRQUFGZ0pJWldGd1JuSmxaUUFBRUFKSVpXRndRV3hzCmIyTUFvd0ZIWlhSUWNtOWpa
WE56U0dWaGNBQUFmZ0ZIWlhSTmIyUjFiR1ZHYVd4bFRtRnRaVmNBQUlnRFZtbHlkSFZoYkZGMVpY
SjUKQUFENEFFWnlaV1ZNYVdKeVlYSjVBRjREVkdWeWJXbHVZWFJsVUhKdlkyVnpjd0FBUWdGSFpY
UkRkWEp5Wlc1MFVISnZZMlZ6Y3dCdQpBMVZ1YUdGdVpHeGxaRVY0WTJWd2RHbHZia1pwYkhSbGNn
QUFTZ05UWlhSVmJtaGhibVJzWldSRmVHTmxjSFJwYjI1R2FXeDBaWElBClMwVlNUa1ZNTXpJdVpH
eHNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUJnQUFBQVlBQUNBQUFBQUFBQUFBQUFB
QUFBQUFBQUJBQUlBQUFBd0FBQ0EKQUFBQUFBQUFBQUFBQUFBQUFBQUJBQWtFQUFCSUFBQUFjSkVB
QUpZQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEdnU3
ODhQM2h0YkNCMlpYSnphVzl1UFNJeExqQWkKSUdWdVkyOWthVzVuUFNKVlZFWXRPQ0lnYzNSaGJt
UmhiRzl1WlQwaWVXVnpJajgrRFFvOFlYTnpaVzFpYkhrZ2VHMXNibk05SW5WeQpianB6WTJobGJX
RnpMVzFwWTNKdmMyOW1kQzFqYjIwNllYTnRMbll4SWlCdFlXNXBabVZ6ZEZabGNuTnBiMjQ5SWpF
dU1DSStEUW9nCklEeGtaWEJsYm1SbGJtTjVQZzBLSUNBZ0lEeGtaWEJsYm1SbGJuUkJjM05sYldK
c2VUNE5DaUFnSUNBZ0lEeGhjM05sYldKc2VVbGsKWlc1MGFYUjVJSFI1Y0dVOUluZHBiak15SWlC
dVlXMWxQU0pOYVdOeWIzTnZablF1VmtNNE1DNUVaV0oxWjBOU1ZDSWdkbVZ5YzJsdgpiajBpT0M0
d0xqVXdOekkzTGpRd05UTWlJSEJ5YjJObGMzTnZja0Z5WTJocGRHVmpkSFZ5WlQwaWVEZzJJaUJ3
ZFdKc2FXTkxaWGxVCmIydGxiajBpTVdaak9HSXpZamxoTVdVeE9HVXpZaUkrUEM5aGMzTmxiV0pz
ZVVsa1pXNTBhWFI1UGcwS0lDQWdJRHd2WkdWd1pXNWsKWlc1MFFYTnpaVzFpYkhrK0RRb2dJRHd2
WkdWd1pXNWtaVzVqZVQ0TkNqd3ZZWE56WlcxaWJIaytBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFFQUFBY0FFQUFHd3djVEI5TUlrd2xUQ2VNS2N3c0RDNU1NSXd5ekRVTU4wdzVq
RHZNUGd3QVRFS01Sd3hJREVrTVNneExERXcKTVRReE9ERThNVUF4UkRGSU1Vd3hVREZVTVZneFhE
RmdNUUl5RlRKYU1tY3lkekovTW9VeWl6S3JNcmd5M2pMbU11NHkvVElGTXpNegpPVE5lTTJZemV6
T0VNNGt6b1RPbU03UXp4VFBMTTlFejJUUDFNLzB6QmpRUE5DNDBORFJJTkZBMFp6UnVOSUEwaHpT
c05MODAwalRiCk5PQTA1VFRxTlBBMCt6UUJOVlkxV3pWdE5aVTFxRFhKTmQ0MVNqWmROcEUycGpi
eU5pNDNVVGRZTjNjM2ZUZURONWMzblRlak43RTMKd1RmSU45UTM5amY3TncwNElUZ29PRDQ0WFRo
a09HODRkamlPT0tjNHJ6aTVPTUU0SWprcE9UMDVVamxaT1cwNWVEbCtPWVE1aWptUQpPWlk1aGpx
TE9wMDZ0anFTTzVnN25qdkdPOUU3M2p2bU8vVTdDandXUENJOE1qeDJQSUU4akR5YlBLZzgxRHpa
UEFZOUN6MGRQVnc5Cm5qMm9QY0U5NmowelBuayttajdQUGhrL09UK0VQODgvNGo4QUFBQWdBQUFV
QVFBQUFEQW1NQ3N3UFRDT01Nb3cxVEF5TVhreHN6RzQKTWVveDlqRVNNaGd5SlRJc01qTXlUREpT
TWxzeVpESnBNblF5bERLZE1xWXlzekxCTXZBeVhETmpNNm96dFRNQ05FazBnelNJTks0MAp0RFM2
Tk1BMHhqVFNOQWMxSkRXRU5ZMDFuRFdrTmF3MXNUVzROUWsyMkRiZk5tWTNiVGU2TjhVMzNUZmtO
K3MzL2pjY09DRTRSRGhTCk9HczRsamkxT09vNC96Z3NPVmM1ZWptQU9ZWTVqRG1TT1pnNW56bW1P
YTA1dERtN09jSTV5VG5ST2RrNTRUbnRPZlk1K3prQk9nczYKRlRvaE9pMDZNanBFT2trNlR6cFZP
bTA2ZERwK09vUTZpanFRT3BZNm5EcWlPcWc2cmpxME9ybzZ3RHJHT3N3NjBqcllPdDQ2NURycQpP
dkE2OWpyOE9nSTdDRHNPT3hRN0dqc2dPd0JRQUFBY0FBQUFERFA0TmZ3MUFEWUVOZ2cyZ0R5RVBN
UTh5RHdBWUFBQUlBQUFBTmd5CjVEVUlPQkE0RkRnd09FdzRVRGhzT0hBNGpEaVFPQUJ3QUFBWUFB
QUFKREFvTUN3d01EQTBNRGd3UERBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIv
UXVhcnR6Q29yZUludGVyZmFjZS5saWIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIvUXVh
cnR6Q29yZUludGVyZmFjZS5saWIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoK
SVR4aGNtTm9QZ292SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdNVEkyTURJeU5qVXpOaUFnSUNBZ0lDQWdJ
Q0FnSUNBZ01DQWdJQ0FnSUNBeQpPRGdnSUNBZ0lDQWdZQW9BQUFBSEFBQURIZ0FBQlhnQUFBYThB
QUFJdUFBQUNMZ0FBQWdvQUFBSUtGOWZTVTFRVDFKVVgwUkZVME5TClNWQlVUMUpmVVhWaGNuUjZR
Mjl5WlVsdWRHVnlabUZqWlFCZlgwNVZURXhmU1UxUVQxSlVYMFJGVTBOU1NWQlVUMUlBZjFGMVlY
SjAKZWtOdmNtVkpiblJsY21aaFkyVmZUbFZNVEY5VVNGVk9TMTlFUVZSQkFGOWZhVzF3WDE5M2Ex
RjFZWEowZWtOdmNtVkRSbE4wY21sdQpaMUpsWmxONWJXSnZiQUJmZDJ0UmRXRnlkSHBEYjNKbFEw
WlRkSEpwYm1kU1pXWlRlVzFpYjJ3QVgxOXBiWEJmWDNkclVYVmhjblI2ClEyOXlaVU5CVW1WdVpH
VnlUMGRNUTJGc2JHSmhZMnR6VTNsdFltOXNBRjkzYTFGMVlYSjBla052Y21WRFFWSmxibVJsY2s5
SFRFTmgKYkd4aVlXTnJjMU41YldKdmJBQXZJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01USTJNREl5TmpV
ek5pQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZwpJQ0FnSUNBeU9UZ2dJQ0FnSUNBZ1lBb0ZBQUFBSGdN
QUFIZ0ZBQUM4QmdBQXVBZ0FBQ2dJQUFBSEFBQUFBUUFDQUFVQUJBQUZBQVFBCkF3QmZYMGxOVUU5
U1ZGOUVSVk5EVWtsUVZFOVNYMUYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlVBWDE5T1ZVeE1YMGxO
VUU5U1ZGOUUKUlZORFVrbFFWRTlTQUY5ZmFXMXdYMTkzYTFGMVlYSjBla052Y21WRFFWSmxibVJs
Y2s5SFRFTmhiR3hpWVdOcmMxTjViV0p2YkFCZgpYMmx0Y0Y5ZmQydFJkV0Z5ZEhwRGIzSmxRMFpU
ZEhKcGJtZFNaV1pUZVcxaWIyd0FYM2RyVVhWaGNuUjZRMjl5WlVOQlVtVnVaR1Z5ClQwZE1RMkZz
YkdKaFkydHpVM2x0WW05c0FGOTNhMUYxWVhKMGVrTnZjbVZEUmxOMGNtbHVaMUpsWmxONWJXSnZi
QUIvVVhWaGNuUjYKUTI5eVpVbHVkR1Z5Wm1GalpWOU9WVXhNWDFSSVZVNUxYMFJCVkVFQUx5OGdJ
Q0FnSUNBZ0lDQWdJQ0FnSURFeU5qQXlNalkxTXpZZwpJQ0FnSUNBZ0lDQWdJQ0FnSURBZ0lDQWdJ
Q0FnTWpRZ0lDQWdJQ0FnSUdBS1VYVmhjblI2UTI5eVpVbHVkR1Z5Wm1GalpTNWtiR3dBCkx6QWdJ
Q0FnSUNBZ0lDQWdJQ0FnSURFeU5qQXlNalkxTXpZZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnSUNBZ0lD
QWdOVFF5SUNBZ0lDQWcKSUdBS1RBRURBT2lISFVza0FRQUFDQUFBQUFBQUFBRXVaR1ZpZFdja1V3
QUFBQUFBQUFBQVRnQUFBSXdBQUFBQUFBQUFBQUFBQUFBQQpBQUJBQUJCQ0xtbGtZWFJoSkRJQUFB
QUFBQUFBQUJRQUFBRGFBQUFBN2dBQUFBQUFBQUFEQUFBQVFBQXd3QzVwWkdGMFlTUTJBQUFBCkFB
QUFBQUFZQUFBQURBRUFBTzRBQUFBQUFBQUFBQUFBQUVBQUlNQUNBQUFBSGdBSkFBQUFBQUFYVVhW
aGNuUjZRMjl5WlVsdWRHVnkKWm1GalpTNWtiR3dvQUJNUUJ3QUFBQU1BQUFBQUFBQUFDQUFBQUNm
R0VrMXBZM0p2YzI5bWRDQW9VaWtnVEVsT1N3QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUF3
QUFBQURBQUFBQndBQUFBQUFCQUFBQUFjQUVBQUFBQVVBQUFBSEFGRjFZWEowZWtOdmNtVkpiblJs
CmNtWmhZMlV1Wkd4c0FFQmpiMjF3TG1sa0o4WjdBUC8vQUFBREFBQUFBQUFFQUFBQUFBQUFBQUlB
QUFBQ0FDNXBaR0YwWVNReVFBQUEKd0FJQUFBQm9BQzVwWkdGMFlTUTJBQUFBQUFNQUFBQURBQzVw
WkdGMFlTUTBRQUFBd0FBQUFBQm9BQzVwWkdGMFlTUTFRQUFBd0FBQQpBQUJvQUFBQUFBQXNBQUFB
QUFBQUFBQUFBQUFDQUFBQUFBQkZBQUFBQUFBQUFBQUFBQUFDQUdvQUFBQmZYMGxOVUU5U1ZGOUVS
Vk5EClVrbFFWRTlTWDFGMVlYSjBla052Y21WSmJuUmxjbVpoWTJVQVgxOU9WVXhNWDBsTlVFOVNW
RjlFUlZORFVrbFFWRTlTQUg5UmRXRnkKZEhwRGIzSmxTVzUwWlhKbVlXTmxYMDVWVEV4ZlZFaFZU
a3RmUkVGVVFRQXZNQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01USTJNREl5TmpVegpOaUFnSUNBZ0lDQWdJ
Q0FnSUNBZ01DQWdJQ0FnSUNBeU5qTWdJQ0FnSUNBZ1lBcE1BUUlBNkljZFM4WUFBQUFDQUFBQUFB
QUFBUzVrClpXSjFaeVJUQUFBQUFBQUFBQUJPQUFBQVpBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUVF
SXVhV1JoZEdFa013QUFBQUFBQUFBQUZBQUEKQUxJQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUREQUFn
QUFBQjRBQ1FBQUFBQUFGMUYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlV1Wkd4cwpLQUFURUFjQUFB
QURBQUFBQUFBQUFBZ0FBQUFueGhKTmFXTnliM052Wm5RZ0tGSXBJRXhKVGtzQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUJBWTI5dGNDNXBaQ2ZHZXdELy93QUFBd0FBQUFBQUJBQUFBQUFBQUFB
Q0FBQUFBZ0FkQUFBQVgxOU9WVXhNWDBsTlVFOVMKVkY5RVJWTkRVa2xRVkU5U0FBb3ZNQ0FnSUNB
Z0lDQWdJQ0FnSUNBZ01USTJNREl5TmpVek5pQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZwpJQ0FnSUNB
ek1ETWdJQ0FnSUNBZ1lBcE1BUU1BNkljZFMrSUFBQUFDQUFBQUFBQUFBUzVrWldKMVp5UlRBQUFB
QUFBQUFBQk9BQUFBCmpBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUVFSXVhV1JoZEdFa05RQUFBQUFB
QUFBQUJBQUFBTm9BQUFBQUFBQUFBQUFBQUFBQUFBQkEKQUREQUxtbGtZWFJoSkRRQUFBQUFBQUFB
QUFRQUFBRGVBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQXd3QUlBQUFBZUFBa0FBQUFBQUJkUgpkV0Z5
ZEhwRGIzSmxTVzUwWlhKbVlXTmxMbVJzYkNnQUV4QUhBQUFBQXdBQUFBQUFBQUFJQUFBQUo4WVNU
V2xqY205emIyWjBJQ2hTCktTQk1TVTVMQUFBQUFBQUFBQUFBUUdOdmJYQXVhV1FueG5zQS8vOEFB
QU1BQUFBQUFBUUFBQUFBQUFBQUFnQUFBQUlBS1FBQUFIOVIKZFdGeWRIcERiM0psU1c1MFpYSm1Z
V05sWDA1VlRFeGZWRWhWVGt0ZlJFRlVRUUFLTHpBZ0lDQWdJQ0FnSUNBZ0lDQWdJREV5TmpBeQpN
alkxTXpZZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnSUNBZ0lDQWdPRFFnSUNBZ0lDQWdJR0FLQUFELy93
QUFUQUhvaHgxTFFBQUFBQUFBCkNBQmZkMnRSZFdGeWRIcERiM0psUTBGU1pXNWtaWEpQUjB4RFlX
eHNZbUZqYTNOVGVXMWliMndBVVhWaGNuUjZRMjl5WlVsdWRHVnkKWm1GalpTNWtiR3dBTHpBZ0lD
QWdJQ0FnSUNBZ0lDQWdJREV5TmpBeU1qWTFNellnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdJQ0FnSUNB
ZwpOelVnSUNBZ0lDQWdJR0FLQUFELy93QUFUQUhvaHgxTE53QUFBQUVBQ0FCZmQydFJkV0Z5ZEhw
RGIzSmxRMFpUZEhKcGJtZFNaV1pUCmVXMWliMndBVVhWaGNuUjZRMjl5WlVsdWRHVnlabUZqWlM1
a2JHd0FDZz09Cgo=
</data>
<flag name="review"
          id="26453"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44625</attachid>
            <date>2009-12-10 10:47:52 -0800</date>
            <delta_ts>2009-12-10 13:30:52 -0800</delta_ts>
            <desc>Patch with some fixes from Adam</desc>
            <filename>31856_OpenSource.patch</filename>
            <type>text/plain</type>
            <size>49829</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxOTIwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMDkgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBjaGVjayBmb3IgcHJlc2VuY2Ugb2YgUXVhcnR6Q29yZSBo
ZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTg1NgorICAgICAgICAKKyAgICAgICAgVGhlIHNjcmlwdCBub3cgY2hlY2tzIGZvciB0aGUgcHJl
c2VuY2Ugb2YgUXVhcnR6Q29yZS5oLiBJZiBwcmVzZW50CisgICAgICAgIGl0IHdpbGwgdHVybiBv
biBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBhbmQgM0RfUkVOREVSSU5HIHRvIGVuYWJsZQorICAg
ICAgICBIVyBjb21wb3NpdGluZyBvbiBXaW5kb3dzLiBUaGUgc2NyaXB0IHdyaXRlcyBRdWFydHpD
b3JlUHJlc2VudC5oIHRvCisgICAgICAgIHRoZSBidWlsZCBkaXJlY3Rvcnkgd2hpY2ggaGFzIGEg
ZGVmaW5lIHRlbGxpbmcgd2hldGhlciBRdWFydHpDb3JlIGlzIAorICAgICAgICBwcmVzZW50Lgor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdl
bmVyYXRlZC1maWxlcy5zaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAwOS0xMi0w
OSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvYnVp
bGQtZ2VuZXJhdGVkLWZpbGVzLnNoCShyZXZpc2lvbiA1MTkxNSkKKysrIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9idWlsZC1nZW5lcmF0ZWQtZmls
ZXMuc2gJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwxMyBAQAogIyEvdXNyL2Jpbi9iYXNoCiAK
KyMgRGV0ZXJtaW5lIGlmIHdlIGhhdmUgUXVhcnR6Q29yZSBzbyB3ZSBjYW4gdHVybiBvbgoraWYg
WyAtZiAke1dFQktJVExJQlJBUklFU0RJUn0vaW5jbHVkZS9RdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aCBdCit0aGVuCisJZWNobyAiI2RlZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMSIgPiAke1dFQktJ
VE9VVFBVVERJUn0vSW5jbHVkZS9RdWFydHpDb3JlUHJlc2VudC5oCitlbHNlCisJZWNobyAiI2Rl
ZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMCIgPiAke1dFQktJVE9VVFBVVERJUn0vSW5jbHVkZS9R
dWFydHpDb3JlUHJlc2VudC5oCitmaQorCiBOVU1DUFVTPWAuLi8uLi8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL251bS1jcHVzYAogCiBYU1JDUk9PVD0iYHB3ZGAvLi4vLi4iCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAkocmV2aXNpb24gNTE5MTUpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTE2LDcgKzkxNiwxMSBAQCBvbiBNaW5HVy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3NoCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKLSNk
ZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAwCisjaW5jbHVkZSAiUXVhcnR6
Q29yZVByZXNlbnQuaCIKKyNpZiBRVUFSVFpDT1JFX1BSRVNFTlQKKyNkZWZpbmUgV1RGX1VTRV9B
Q0NFTEVSQVRFRF9DT01QT1NJVElORyAxCisjZGVmaW5lIEVOQUJMRV8zRF9SRU5ERVJJTkcgMQor
I2VuZGlmCiAjZW5kaWYKIAogI2lmIENPTVBJTEVSKEdDQykKSW5kZXg6IFdlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkocmV2
aXNpb24gNTE5MjApCisrKyBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMDkgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBRdWFydHpDb3JlIGJ1aWxkIGZpbGVzIHRvIE9wZW5Tb3VyY2UgdHJlZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NTYKKyAgICAgICAgCisg
ICAgICAgIFRoaXMgYWxsb3dzIHByb3BlciBidWlsZGluZyBhbmQgbGlua2luZyB3aXRoIFF1YXJ0
ekNvcmUKKyAgICAgICAgd2hlbiBwcmVzZW50LgorCisgICAgICAgICogd2luL2JpbjogQWRkZWQu
CisgICAgICAgICogd2luL2Jpbi9RdWFydHpDb3JlSW50ZXJmYWNlLmRsbDogQWRkZWQuCisgICAg
ICAgICogd2luL2luY2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZTogQWRkZWQuCisgICAgICAgICog
d2luL2luY2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmg6IEFk
ZGVkLgorICAgICAgICAqIHdpbi9saWIvUXVhcnR6Q29yZUludGVyZmFjZS5saWI6IEFkZGVkLgor
CiAyMDA5LTEyLTA3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBX
aW5kb3dzIGJ1aWxkIGZpeCBmb3IgY2hlY2tvdXRzIHdpdGggYSBzcGFjZSBpbiB0aGUgcGF0aApJ
bmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9pbmNsdWRlL1F1YXJ0ekNvcmVJbnRlcmZhY2UvUXVh
cnR6Q29yZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vaW5j
bHVkZS9RdWFydHpDb3JlSW50ZXJmYWNlL1F1YXJ0ekNvcmVJbnRlcmZhY2UuaAkocmV2aXNpb24g
MCkKKysrIFdlYktpdExpYnJhcmllcy93aW4vaW5jbHVkZS9RdWFydHpDb3JlSW50ZXJmYWNlL1F1
YXJ0ekNvcmVJbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFF1YXJ0ekNvcmVJbnRlcmZhY2VfaAorI2RlZmluZSBR
dWFydHpDb3JlSW50ZXJmYWNlX2gKKworI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FDRkxheWVyLmg+
CisjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUNGQ29udGV4dC5oPgorI2luY2x1ZGUgPFF1YXJ0ekNv
cmUvQ0FSZW5kZXJPR0wuaD4KKworI2lmZGVmIFFVQVJUWkNPUkVJTlRFUkZBQ0VfRVhQT1JUUwor
I2RlZmluZSBRVUFSVFpDT1JFSU5URVJGQUNFX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNl
bHNlCisjZGVmaW5lIFFVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0
KQorI2VuZGlmCisKKy8vIEludGVyZmFjZSB0byBnaXZlIGFjY2VzcyB0byBRdWFydHpDb3JlIGRh
dGEgc3ltYm9scy4KKyNkZWZpbmUgd2txY2tDQUNGTGF5ZXIgMQorI2RlZmluZSB3a3Fja0NBQ0ZU
cmFuc2Zvcm1MYXllciAyCisjZGVmaW5lIHdrcWNrQ0FDRkZpbHRlckxpbmVhciAzCisjZGVmaW5l
IHdrcWNrQ0FDRkZpbHRlck5lYXJlc3QgNAorI2RlZmluZSB3a3Fja0NBQ0ZGaWx0ZXJUcmlsaW5l
YXIgNQorI2RlZmluZSB3a3Fja0NBQ0ZGaWx0ZXJMYW5jem9zIDYKKyNkZWZpbmUgd2txY2tDQUNG
R3Jhdml0eUNlbnRlciA3CisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZpdHlUb3AgOAorI2RlZmluZSB3
a3Fja0NBQ0ZHcmF2aXR5Qm90dG9tIDkKKyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eUxlZnQgMTAK
KyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eVJpZ2h0IDExCisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZp
dHlUb3BMZWZ0IDEyCisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZpdHlUb3BSaWdodCAxMworI2RlZmlu
ZSB3a3Fja0NBQ0ZHcmF2aXR5Qm90dG9tTGVmdCAxNAorI2RlZmluZSB3a3Fja0NBQ0ZHcmF2aXR5
Qm90dG9tUmlnaHQgMTUKKyNkZWZpbmUgd2txY2tDQUNGR3Jhdml0eVJlc2l6ZSAxNgorI2RlZmlu
ZSB3a3Fja0NBQ0ZHcmF2aXR5UmVzaXplQXNwZWN0IDE3CisjZGVmaW5lIHdrcWNrQ0FDRkdyYXZp
dHlSZXNpemVBc3BlY3RGaWxsIDE4CisKKyNkZWZpbmUgcWNrQ0FSZW5kZXJEWDlDYWxsYmFja3Mg
MTkKKworZXh0ZXJuICJDIiB7CitRVUFSVFpDT1JFSU5URVJGQUNFX0FQSSBDRlN0cmluZ1JlZiB3
a3FjQ0ZTdHJpbmdSZWZTeW1ib2woaW50IGlkKTsKK1FVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIENB
UmVuZGVyT0dMQ2FsbGJhY2tzKiB3a3FjQ0FSZW5kZXJPR0xDYWxsYmFja3NTeW1ib2woaW50IGlk
KTsKK1FVQVJUWkNPUkVJTlRFUkZBQ0VfQVBJIENBVHJhbnNmb3JtM0Qgd2txY0NBVHJhbnNmb3Jt
M0RJZGVudGl0eSgpOworfQorCisjZW5kaWYgLy8gUXVhcnR6Q29yZUludGVyZmFjZV9oCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXRMaWJyYXJpZXMvd2luL2luY2x1ZGUvUXVhcnR6Q29yZUlu
dGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1
dGFibGUKICAgKyAqCgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9iaW4vUXVhcnR6Q29yZUlu
dGVyZmFjZS5kbGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJv
cGVydHkgY2hhbmdlcyBvbjogV2ViS2l0TGlicmFyaWVzL3dpbi9iaW4vUXVhcnR6Q29yZUludGVy
ZmFjZS5kbGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCkFkZGVkOiBz
dm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKVFZxUUFBTUFBQUFF
QUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBNEFBQUFBNGZ1ZzRBdEFuTkliZ0JUTTBoVkdocGN5QndjbTluY21GdElHTmhi
bTV2ZENCaVpTQnlkVzRnYVc0Z1JFOVRJRzF2ClpHVXVEUTBLSkFBQUFBQUFBQURXVVdRV2tqQUtS
Wkl3Q2tXU01BcEZ0ZlpuUlp3d0NrVzE5bkZGbHpBS1JWRS9WMFdRTUFwRmtqQUwKUmEwd0NrVzE5
bVJGbFRBS1JiWDJjRVdUTUFwRnRmWjJSWk13Q2tXMTluSkZrekFLUlZKcFkyaVNNQXBGQUFBQUFB
QUFBQUJRUlFBQQpUQUVHQU9pSEhVc0FBQUFBQUFBQUFPQUFBaUVMQVFnQUFESUFBQUJBQUFBQUFB
QUFJQlVBQUFBUUFBQUFVQUFBQUFBQUVBQVFBQUFBCkFnQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFB
Q3dBQUFBQkFBQUFBQUFBQUlBUUFBQUFCQUFBQkFBQUFBQUVBQUFFQUFBQUFBQUFCQUEKQUFEQWFR
QUF0d0VBQUFDQUFBQlFBQUFBQUpBQUFBa01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0FBQU5n
Q0FBQWdWUUFBSEFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJaGNBQUJBQUFB
QUFBQUFBQUFBQUFEOGdRQUFyQUVBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUM1
MFpYaDBBQUFBYkRFQUFBQVFBQUFBTWdBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFHQXUKY21S
aGRHRUFBSGNiQUFBQVVBQUFBQndBQUFBMkFBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQUxtUmhkR0VB
QUFEa0JBQUFBSEFBQUFBQwpBQUFBVWdBQUFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1cFpHRjBZUUFB
TGdvQUFBQ0FBQUFBREFBQUFGUUFBQUFBQUFBQUFBQUFBQUFBCkFFQUFBTUF1Y25OeVl3QUFBQWtN
QUFBQWtBQUFBQTRBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQUxuSmxiRzlqQUFDNUF3QUEK
QUtBQUFBQUVBQUFBYmdBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUWdBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFNek0Kek16TTZiWUJBQURwRVFBQUFNek16TXpNek16TXpNek16TXpNek16TVZZdnNnZXpFQUFB
QVUxWlhqYjA4Ly8vL3VURUFBQUM0ek16TQp6UE9yaTBVSWlZVTgvLy8vaTQwOC8vLy9nK2tCaVkw
OC8vLy9nNzA4Ly8vL0VRK0hyd0FBQUl1VlBQLy8vLzhrbFJ3UkFCQ2hMSU1BCkVJc0E2WmdBQUFD
aE1JTUFFSXNBNll3QUFBQ2hOSU1BRUlzQTZZQUFBQUNoT0lNQUVJc0E2M2VoUElNQUVJc0E2MjZo
UUlNQUVJc0EKNjJXaFJJTUFFSXNBNjF5aFNJTUFFSXNBNjFPaFRJTUFFSXNBNjBxaFVJTUFFSXNB
NjBHaFZJTUFFSXNBNnppaFdJTUFFSXNBNnkraApYSU1BRUlzQTZ5YWhZSU1BRUlzQTZ4MmhaSU1B
RUlzQTZ4U2hhSU1BRUlzQTZ3dWhiSU1BRUlzQTZ3SXp3RjllVzR2bFhjT1FjQkFBCkVIQVFBQkI4
RUFBUWlCQUFFSlFRQUJDZEVBQVFwaEFBRUs4UUFCQzRFQUFRd1JBQUVNb1FBQkRURUFBUTNCQUFF
T1VRQUJEdUVBQVEKOXhBQUVBQVJBQkFKRVFBUXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXhWaSt5QjdNUUFBQUJUClZsZU52
VHovLy8rNU1RQUFBTGpNek16TTg2dUxSUWlKaFR6Ly8vOHp3RjllVzR2bFhjUE16TXpNek16TXpN
ek16TXpNek16TWdEMVEKY1FBUUFIVWZhZ0JxQVdvQWFnQnFBTVlGVUhFQUVBSG9wd1VBQUZEb2F3
VUFBSVBFR01QTXpNek16TXpNYWdGcUFXb0FhZ0JxQU9pSApCUUFBZzhRVXc4ek16TXpNek16TXpN
ek16TXhWaSt4UmFLZ0FBQUJvUUZVQUVHb0NhSUFBQUFEL0ZlU0NBQkNEeEJDSlJmeUxSZnhRCi94
WG9nZ0FRZzhRRW85UjBBQkNMRGRSMEFCQ0pEY1IwQUJDRGZmd0FkUWU0QVFBQUFPc3FpMVg4eHdJ
QUFBQUE2SFlHQUFCb1VCa0EKRU9oTUJnQUFnOFFFYU5BWEFCRG9Qd1lBQUlQRUJEUEFpK1Zkdzh6
TXpNek16RldMN0lQc0dJTjlEQUIxSDRNOVZIRUFFQUIrRDZGVQpjUUFRZytnQm8xUnhBQkRyQnpQ
QTZROENBQUNMRGFpQ0FCQ0xFWWtWcEhRQUVJTjlEQUVQaFFVQkFBREhSZlFBQUFBQTZQRUJBQUNM
ClFBU0pSZmpIUmZ3QUFBQUFhZ0NMVGZoUmFNQjBBQkQvRlZ5Q0FCQ0pSZlNEZmZRQWRCNkxWZlE3
VmZoMUNjZEYvQUVBQUFEckRXam8KQXdBQS94VmdnZ0FRNjhpRFBiQjBBQkFBZEF4cUgrZ29DQUFB
ZzhRRTYwUEhCYkIwQUJBQkFBQUFhQkJVQUJCb0NGSUFFT2dFQ0FBQQpnOFFJaGNCMEJ6UEE2V29C
QUFCb0JGRUFFR2dBVUFBUTZPRUhBQUNEeEFqSEJiQjBBQkFDQUFBQWczMzhBSFVOYWdCb3dIUUFF
UDhWClpJSUFFSU05MkhRQUVBQjBJV2pZZEFBUTZKNEdBQUNEeEFTRndIUVFpMFVRVUdvQ2kwMElV
ZjhWMkhRQUVHb0IveFh3Z2dBUWc4UUUKaXhWVWNRQVFnOElCaVJWVWNRQVE2ZTBBQUFDRGZRd0FE
NFhqQUFBQXgwWHdBQUFBQUdvQWFnRm93SFFBRVA4VlhJSUFFSWxGOElOOQo4QUIwRFdqb0F3QUEv
eFZnZ2dBUTY5dURQYkIwQUJBQ2RBOXFIK2crQndBQWc4UUU2WjhBQUFDaDFIUUFFRkQvRmRpQ0FC
Q0R4QVNKClJleURmZXdBZEhDTERjUjBBQkJSL3hYWWdnQVFnOFFFaVVYb2kxWG9nK29FaVZYb2kw
WG9PMFhzY2lpTFRlaURPUUIwSHY4VjNJSUEKRUl0VjZEa0NkQkdMUmVpTENGSC9GZGlDQUJDRHhB
VC8wT3ZIYWdLTFZleFMveFhnZ2dBUWc4UUkveFhjZ2dBUW84UjBBQkNoeEhRQQpFS1BVZEFBUXh3
V3dkQUFRQUFBQUFHb0FhTUIwQUJEL0ZXU0NBQkM0QVFBQUFJdmxYY0lNQUZXTDdHU2hHQUFBQUYz
RHpNek16TXhWCmkreURmUXdCZFFYb2dnWUFBSXRGRUZDTFRReFJpMVVJVXVnUkFBQUFnOFFNWGNJ
TUFNek16TXpNek16TXpNeFZpK3hxL21qd1p3QVEKYU1BY0FCQmtvUUFBQUFCUWc4VHdVMVpYb1Fo
d0FCQXhSZmd6eFZDTlJmQmtvd0FBQUFDSlplakhSZVFCQUFBQXgwWDhBQUFBQUl0RgpES01BY0FB
UXgwWDhBUUFBQUlOOURBQjFGWU05VkhFQUVBQjFETWRGNUFBQUFBRHA4Z0FBQUlOOURBRjBCb045
REFKMVE0TTlQRlVBCkVBQjBGWXRORUZHTFZReFNpMFVJVVA4VlBGVUFFSWxGNUlOOTVBQjBGSXRO
RUZHTFZReFNpMFVJVU9qVS9QLy9pVVhrZzMza0FIVUYKNmFNQUFBQ0xUUkJSaTFVTVVvdEZDRkRv
ZFFZQUFJbEY1SU45REFGMVBZTjk1QUIxTjR0TkVGRnFBSXRWQ0ZMb1Z3WUFBSXRGRUZCcQpBSXRO
Q0ZIb2lQei8vNE05UEZVQUVBQjBFSXRWRUZKcUFJdEZDRkQvRlR4VkFCQ0RmUXdBZEFhRGZRd0Rk
VUNMVFJCUmkxVU1Vb3RGCkNGRG9VdnovLzRYQWRRZkhSZVFBQUFBQWczM2tBSFFlZ3owOFZRQVFB
SFFWaTAwUVVZdFZERktMUlFoUS94VThWUUFRaVVYa3gwWDgKQUFBQUFPc3NpMDNzaXhHTEFvbEY0
SXRON0ZHTFZlQlM2TDBGQUFDRHhBakRpMlhveDBYa0FBQUFBTWRGL0FBQUFBREhSZnorLy8vLwo2
QUlBQUFEckM4Y0ZBSEFBRVAvLy8vL0RpMFhraTAzd1pJa05BQUFBQUZsZlhsdUw1VjNEdUFVQUFB
RER6TXpNek16TXpNek16RldMCjdJdEZDSVA0QkhjSml3U0YrRlVBRUYzRE04QmR3OHpNek16TXpN
ek1WWXZzaTAwSWcva0VkeE9MVlF5TEJJMFFjQUFRaVJTTkVIQUEKRUYzRGc4ai9YY1BNek16TXpN
ek16TXpNek16TVZZdnNpMDBJb1ZoeEFCQ0pEVmh4QUJESEJWeHhBQkFBQUFBQVhjUE16TXhWaSt5
TApUUWloWEhFQUVJa05YSEVBRU1jRldIRUFFQUFBQUFCZHc4ek16S0ZZY1FBUXc4ek16TXpNek16
TXpNeWhYSEVBRU1QL0pleUNBQkRNCnpNek1WWXZzYUdSeEFCRG96d3dBQUlQRUJGM0R6TXpNek16
TXpNek16TXpNek14VmkreHEvbWdZYUFBUWFNQWNBQkJrb1FBQUFBQlEKZzhUc1UxWlhvUWh3QUJB
eFJmZ3p4VkNOUmZCa293QUFBQUNoMUhRQUVGRC9GZGlDQUJDRHhBU0pSZVNEZmVUL2RSS0xUUWhS
L3hYQQpnZ0FRZzhRRTZaY0FBQUJxQ09odERBQUFnOFFFeDBYOEFBQUFBSXNWMUhRQUVGTC9GZGlD
QUJDRHhBU0pSZVNoeEhRQUVGRC9GZGlDCkFCQ0R4QVNKUmR5TlRkeFJqVlhrVW90RkNGRC9GZWlD
QUJDRHhBUlE2QjBNQUFDRHhBeUpSZUNMVGVSUi94WG9nZ0FRZzhRRW85UjAKQUJDTFZkeFMveFhv
Z2dBUWc4UUVvOFIwQUJESFJmeisvLy8vNkFJQUFBRHJDMm9JNk5nTEFBQ0R4QVREaTBYZ2kwM3da
SWtOQUFBQQpBRmxmWGx1TDVWM0R6TXpNek16TXpNek16TXpNekZXTDdJdEZDRkRvNVA3Ly80UEVC
UGZZRzhEMzJJUG9BVjNEek16TXpNek1WcjdZCllRQVFpOFk5M0dNQUVITVVrSXNHaGNCMEF2L1Fn
OFlFZ2Y3Y1l3QVFjdTFldzh6TXpNek16TXpNek16TVZyN2taQUFRaThZOTZHWUEKRUhNVWtJc0do
Y0IwQXYvUWc4WUVnZjdvWmdBUWN1MWV3OHovSmVpQ0FCRC9KZVNDQUJEL0plQ0NBQkQvSmR5Q0FC
RC9KZGlDQUJELwpKZkNDQUJETXpNek16TXhWaSt5RDdBeUxSUWlKUmZpTFRmZ1B0eEdCK2sxYUFB
QjBCRFBBNnp1TFJmaUxUZmdEU0R5SlRmU0xWZlNCCk9sQkZBQUIwQkRQQTZ5Q0xSZlNEd0JpSlJm
eUxUZndQdHhHQitnc0JBQUIwQkRQQTZ3VzRBUUFBQUl2bFhjUE16TXhWaSt5RDdBeUwKUlFpTFRR
Z0RTRHlKVGZ6SFJmZ0FBQUFBaTFYOEQ3ZENGSXROL0kxVUFSaUpWZlRyRW90RitJUEFBWWxGK0l0
TjlJUEJLSWxOOUl0VgovQSszUWdZNVJmaHpJNHROOUl0VkREdFJESElXaTBYMGkwZ01pMVgwQTBv
SU9VME1jd1dMUmZUckJPdS9NOENMNVYzRHpNek16TXpNCnpNek16TXpNekZXTDdHcithRGhvQUJC
b3dCd0FFR1NoQUFBQUFGQ0R4TmhUVmxlaENIQUFFREZGK0RQRlVJMUY4R1NqQUFBQUFJbGwKNk1k
RjVBQUFBQkRIUmZ3QUFBQUFpMFhrVU9qVy92Ly9nOFFFaGNCMUZzZEYxQUFBQUFESFJmeisvLy8v
aTBYVTZaY0FBQUNMVFFncgpUZVNKVGR5TFZkeFNpMFhrVU9nRC8vLy9nOFFJaVVYZ2czM2dBSFVU
eDBYUUFBQUFBTWRGL1A3Ly8vK0xSZERyWW90TjRJdFJKSUhpCkFBQUFnUGZhRzlLRHdnR0pWY3pI
UmZ6Ky8vLy9pMFhNNjBESFJmeisvLy8vNnplTFJleUxDSXNSaVZYWWkwWFlNOGs5QlFBQXdBK1UK
d1l2Qnc0dGw2TWRGeUFBQUFBREhSZnorLy8vL2kwWEk2d2ZIUmZ6Ky8vLy9pMDN3WklrTkFBQUFB
RmxmWGx1TDVWM0QveVhVZ2dBUQoveVhRZ2dBUS95WE1nZ0FRek16TXpNek16TXpNek16TXpNeFZp
K3lEN0JqSFJmZ0FBQUFBeDBYOEFBQUFBSUU5Q0hBQUVFN21RTHQwCkg2RUljQUFRSlFBQS8vOTBF
NHNOQ0hBQUVQZlJpUTBNY0FBUTZaWUFBQUNOVmZoUy94VkVnZ0FRaTBYNGlVWDBpMDMwTTAzOGlV
MzAKL3hWSWdnQVFNMFgwaVVYMC94Vk1nZ0FRTTBYMGlVWDAveFZRZ2dBUU0wWDBpVVgwalZYb1V2
OFZWSUlBRUl0RjlETkY2SWxGOUl0Tgo5RE5ON0lsTjlJRjk5RTdtUUx0MUNjZEY5RS9tUUx2ckY0
dFY5SUhpQUFELy8zVU1pMFgwd2VBUUMwWDBpVVgwaTAzMGlRMEljQUFRCmkxWDA5OUtKRlF4d0FC
Q0w1VjNEelA4bHJJSUFFRldMN0lOOURBRjFFNE05UEZVQUVBQjFDb3RGQ0ZEL0ZVQ0NBQkM0QVFB
QUFGM0MKREFETXpNek16TXpNek16TXpGV0w3SXRGRkZDTFRSQlJpMVVNVW90RkNGQm8wQ1FBRUdn
SWNBQVE2T0lIQUFDRHhCaGR3OHpNek16TQp6TXpNekdnRUVBQUE2QVlBQUFDRHhBVER6TXhWaSt4
cS9taFlhQUFRYU1BY0FCQmtvUUFBQUFCUWcrd2tVMVpYb1Fod0FCQXhSZmd6CnhWQ05SZkJrb3dB
QUFBQ0paZWd6d0loRjU4ZEZ6QUVRQUFDTFRRaUpUZENOVmVlSlZkU0pSZnlOVGN4UmFnWlFhSWdU
YlVEL0ZWaUMKQUJEckI0UEkvOE9MWmVqSFJmeisvLy8vRDdaRjU0dE44R1NKRFFBQUFBQlpYMTVi
aStWZHc4ek16TXpNek16TXpNeFZpK3lMUlF5RAorQVIzSklzTWhSQndBQkNEK2YrTEZJVWtjQUFR
ZEE5U1VJdEZDRkZRNkNZQUFBQ0R4QkJkdzRzVk9IQUFFRks0QlFBQUFGQ0xSUWk1CkFRQUFBRkZR
NkFVQUFBQ0R4QkJkdzFXTDdJSHNQQTRBQUtFSWNBQVFNOFdKUmZ4VFZvdDFGRmVMZlFoWGliWEU4
Zi8veDRYTThmLy8KQUFBQUFPaXUrZi8vaTlpRHhBU0YyM1VQVitpUCtmLy9nOFFFaVlYTThmLy9h
Z0JxQUdyL1ZvczFNSUlBRUdvQWFPbjlBQUQvMWowQQpBZ0FBY3l5TGpjVHgvLzlRallYVThmLy9V
R3IvVVdvQWFPbjlBQUQvMW9YQWRBNk5sZFR4Ly8rSmxkRHgvLy9yQ3NlRjBQSC8vOWhaCkFCQm9B
aEFBQU9oNS92Ly9pM1VRZzhRRWhjQjBKWXVGMFBILy80c010Y2hZQUJCUVYxRlc2SGtCQUFDRHhC
Q0Z3QStGVWdFQUFETEEKNndLd0FZTzl6UEgvL3dCMUNJWGJENFExQVFBQWhNQjBEdjhWTklJQUVJ
WEFENFVqQVFBQWFBUUJBQUNObGV6Ny8vOVNqWVhJOGYvLwpVR2dFQVFBQWpZMzAvZi8vVVlQSCsx
Zm8zUVVBQUlQRUdJWGJkQzJMbGREeC8vK0xqY2p4Ly85U1ZtaVlXUUFRallYcysvLy9VSXRGCkRG
R05sZlQ5Ly85U1VQL1Q2YjhBQUFDTE5UaUNBQkJxQUdvQWFnQnFBR3IvalkzMC9mLy9VV29BYU9u
OUFBRC8xb1hBZENocUFHb0EKVUkyVjFQWC8vMUpxLzQyRjlQMy8vMUJxQUdqcC9RQUEvOWFGd0ky
OTFQWC8vM1VGdjRCWkFCQnFBR29BYWdCcUFHci9qWTNzKy8vLwpVV29BYU9uOUFBRC8xb1hBZENo
cUFHb0FVSTJWNVBuLy8xSnEvNDJGN1B2Ly8xQnFBR2pwL1FBQS85YUZ3STJGNVBuLy8zVUZ1R3ha
CkFCQ0xqY1R4Ly8rTFZSQlJpMDBNVW1oTVdRQVFVSXVGeVBILy8xQlhVZitWelBILy80UEVISVA0
QVhVRy94VThnZ0FRaTAzOFgxNHoKelZ2b3Z3UUFBSXZsWGNQTXpNek16TXpNek16TXpGV0w3R3Ir
YUhob0FCQm93QndBRUdTaEFBQUFBRkNEN0NSVFZsZWhDSEFBRURGRgorRFBGVUkxRjhHU2pBQUFB
QUlsbDZEUEFpRVhueDBYTUFoQUFBSXROQ0lsTjBJdFZESWxWMUl0TkVJbE4ySTFWNTRsVjNJdE5G
SWxOCjRJbEYvSTFWekZKcUJsQm9pQk50UVA4VldJSUFFT3NIZzhqL3c0dGw2TWRGL1A3Ly8vOFB0
a1huaTAzd1pJa05BQUFBQUZsZlhsdUwKNVYzRHpNek16TXpNek14VmkreUI3QWdFQUFDaENIQUFF
RFBGaVVYOGd6MFljQUFRLzR0RkNJbUYrUHYvLzR0RkRBK0U1UUFBQUlBNApBRk5XRDRTN0FBQUFp
OGlOY1FHTlpDUUFpaEdEd1FHRTBuWDNLODZEd1MyQitRQUVBQUFQaDVnQUFBQ05uZno3Ly84enll
c01qYVFrCkFBQUFBT3NEalVrQWlwSGdXQUFRaUpRTi9Qdi8vNFBCQVlUU2RleUwwSW9JZzhBQmhN
bDE5MWVOdmZ6Ny8vOHJ3b1BILytzRGpVa0EKaWs4Qmc4Y0JoTWwxOW92SXdla0NpL0x6cFl2SWcr
RUR1UHhZQUJEenBJdklpaENEd0FHRTBuWDNqYjM4Ky8vL0s4R0w4WVBILzRwUApBWVBIQVlUSmRm
YUx5TUhwQXZPbGk4aUQ0UVB6cEYvckJidEVXZ0FRb1Jod0FCQ0xqZmo3Ly85VGFnSlFVZWdVL1Av
L2c4UVFYbHVMClRmd3p6ZWoxQWdBQWkrVmR3OHhWaSt5QjdFUUJBQUNoQ0hBQUVEUEZpVVg4VTRz
ZElIQUFFSVA3LzFhTGRReFhpMzBJaWIyOC92Ly8KRDRUdkFBQUFhSXhiQUJEL0ZTU0NBQkNGd0Er
RXl3QUFBR2lBV3dBUVVQOFZLSUlBRUlYMm8yeHhBQkFQaExJQUFBQ0Z3QStFcWdBQQpBSXRORUl0
V0RHaDBXd0FRVVdoSVd3QVFnK29rVW1oQVd3QVFqWDRnVjJnd1d3QVFhT2hhQUJDTmpjRCsvLzlv
MEZvQUVGSC8wSXRXCkRJUHFKRkpYalVXMFVJMU42Rkhva0FBQUFJUEVPR2pNV2dBUWpWVzBVbWpJ
V2dBUWpVWG9VR2k4V2dBUWpZM0Evdi8vVWY4VkxJSUEKRUkyVUJjRCsvLzlTL3hWc2NRQVFpNDI4
L3YvL2pZWEEvdi8vVUdvRVUxSG9CZnYvLzRQRUtGOWVXNHROL0RQTjZPVUJBQUNMNVYzRAphSEJh
QUJCcUJGTlg2T1A2Ly8rRHhCQ0xUZnhmWGpQTlcrakRBUUFBaStWZHc4ek16TXpNek16TXpNek16
TXpNekZXTDdJUHNDSXRGCkRGTldpM1VJaVVYOGkwVVFWelAvSzhhSlJmaU5aQ1FBaTAwVWcva1Fj
Z1c1RUFBQUFEdjVjeXFLSERDTFZmd1B0c3RSYUpoYkFCQlMKL3hWc2NRQVFnMFg4QTR0RitJUEVE
SWdlZzhjQmc4WUI2OFdMVFF5TFJRaU5GSG5HQkFjQXhnUVhBRjllVzR2bFhjUE16TXpNek16TQp6
TXpNek16TVZZdnNnZXdFQkFBQW9RaHdBQkF6eFlsRi9JTTlISEFBRVArTFJRZ1BoTnNBQUFDRndG
TldENFMxQUFBQWk4aU5jUUdLCkVZUEJBWVRTZGZjcnpvUEJPb0g1QUFRQUFBK0hsZ0FBQUkyZC9Q
di8velBKNndxTnBDUUFBQUFBalVrQWlwRVFXUUFRaUpRTi9Qdi8KLzRQQkFZVFNkZXlMMElvSWc4
QUJoTWwxOTFlTnZmejcvLzhyd29QSC8rc0RqVWtBaWs4Qmc4Y0JoTWwxOW92SXdla0NpL0x6cFl2
SQpnK0VEdUNCWkFCRHpwSXZJaWhDRHdBR0UwblgzamIzOCsvLy9LOEdMOFlQSC80cFBBWVBIQVlU
SmRmYUx5TUhwQXZPbGk4aUQ0UVB6CnBGL3JCYnVnV3dBUW9SeHdBQkJUYWdOUWkwVUVVT2hIK2Yv
L2c4UVFYbHVMVGZ3enplZ29BQUFBaStWZHcvOGxzSUlBRVA4bHRJSUEKRVA4bHVJSUFFUDhsdklJ
QUVQOGx4SUlBRU16TXpNek16RHNOQ0hBQUVIVUM4OFBwa1FRQUFNeFZpK3lMUlJTTFRReUQ3RVJX
aTNVSQphaHlOVmJ4U2crNEJ4d0FBQUFBQVZtYkhBUUFBL3hVUWdnQVFoY0IxQnpQQVhvdmxYY09M
UlJ5TFRSaUxWY0JRVVZML0ZSU0NBQkNGCndIVGppMVhBWm9FNlRWcDEyWXRDUElYQWZ0SUR3b0U0
VUVVQUFIWElEN2RJQmxOWEQ3ZDRGSTFFQnhncjhqUC9NOXVGeVhZY2c4QU0KaXhBNzhuSUppLzRy
K2p0dy9ISUtnOE1CZzhBb085bHk1enZaZEYyRHd3R0FQWFJ4QUJBQWRTQ0RQWEJ4QUJBQWRVam9G
d0lBQUlYQQpvM0J4QUJCME9zWUZkSEVBRUFIckJhRndjUUFRYU9SYkFCQlEveFVvZ2dBUU0vWTd4
blFhalUzd1VZdE5HRlpXalZYWVVsWldWbEgvCjBJUEVJSVhBZFFsZld6UEFYb3ZsWGNPTFRmQ0xF
WXNDaVhYay85QTl0YVV4QVErRmtnRUFBSXROOElzUmkxSWNqVVhvVUdqZ1d3QVEKVnYvU2hjQVBo
SFlCQUFDTFRlaUxBWXRBSUZaV1ZvMVY5RkpYVS8vUWhjQVBoRkVCQUFDTFRmU0pkZnlMRVl0U2FJ
MUYvRkQvMG9UQQpENFF1QVFBQWkwMzhPODRQaENNQkFBQ0xBWXRRQ1AvU2hjQVBoUHNBQUFDTFRm
eUxBWXRBREdvQWpWWDRVbzFWNEZLTlZRaFNqVlhzClVtb0EvOUNFd0ErRTVRQUFBQSszVFFnN3kz
VVFpMFhzTzhkM0NZdFY0QVBDTy9oeUU0dE4vSXNCaTFBSS85S0Z3SFcwNmFvQUFBQ0wKUmZpRndB
K0Vyd0FBQUQzLy8vOGZENE9rQUFBQUE4QUR3QVBBVUdvQS94VVlnZ0FRVVA4VkhJSUFFSXZ3aGZZ
UGhJUUFBQUNMVGZ5TApFWXRTREZhTlJmaFFhZ0JxQUdvQWpVWGNVUC9TaE1CMFZ5dDk3RHMrY2xD
TFRmaTRBUUFBQUR2SWRnK05TUUE3UE1aeUI0UEFBVHZCCmN2U0xSTWI4aTAwVWFnQWwvLy8vQUlr
QmkwMzBpeEdMVW5CcUFHb0FqVVVRVUl0RkRGQ0xSZHhRLzlLRXdIUUh4MFhrQVFBQUFGWnEKQVA4
VkdJSUFFRkQvRlNDQ0FCQ0xUZnlMQVlzUS85S0xUZlNMQVl0UVFQL1NpMDNvaXdHTFVEai8wb3RO
OElzQmkxQW8vOUtMUmVSZgpXMTZMNVYzRHpNek16TXpNek16TXpNek16TXhWaSt5QjdCZ0JBQUNo
Q0hBQUVEUEZpVVg4Z3oxNGNRQVFBSFFRTThDTFRmd3p6ZWo0Ci9QLy9pK1ZkdzZFOGNBQVFWb3Mx
SklJQUVGREhCWGh4QUJBQkFBQUEvOWFGd0ErRllBRUFBR2h3WEFBUS85YUw4SVgyZFE5ZWkwMzgK
TTgzb3Uvei8vNHZsWGNOVGl4MG9nZ0FRYUdCY0FCQlcvOU9Gd0ltRjdQNy8vM1VRVzE2TFRmd3p6
ZWlTL1AvL2krVmR3MWRvVEZ3QQpFRmIvMDR2NGhmOTBhR2hBWEFBUVZ2L1RpOWlGMjNSYWpZM3cv
di8vVVdvQmFnQm9FRndBRUdnQ0FBQ0EvNVhzL3YvL2hjQjFOSXVOCjhQNy8vNDJWOVA3Ly8xSlFq
WVhvL3YvL1VHb0FhUGhiQUJCUi85ZUZ3SFVSaTVYMC92Ly9nOElOZ2ZvRUFRQUFjaHBXL3hVTWdn
QVEKWDFzendGNkxUZnd6emVnSS9QLy9pK1ZkdzQyRjlQNy8vMUNMaGZEKy8vK05qZmorLy85Umpa
WG8vdi8vVW1vQWFQaGJBQkJRLzllTApqZkQrLy85Umkvai8wMWIvRlF5Q0FCQ0YvM1d5aTQzMC92
Ly9zRnc0aEEzMi92Ly9kQW1JaEEzMy92Ly82d21ENlFHSmpmVCsvLytMCk5UeHdBQkF6d0kyTURm
aisvLytOcENRQUFBQUFpaFFHaUJRQmc4QUJnL2dMZnZLTmhmaisvLzlRL3hVa2dnQVFYMXVMVGZ3
enpWN28KYVB2Ly80dmxYY1BNek16TVZZdnNnZXdvQXdBQW80aHlBQkNKRFlSeUFCQ0pGWUJ5QUJD
SkhYeHlBQkNKTlhoeUFCQ0pQWFJ5QUJCbQpqQldnY2dBUVpvd05sSElBRUdhTUhYQnlBQkJtakFW
c2NnQVFab3dsYUhJQUVHYU1MV1J5QUJDY2p3V1ljZ0FRaTBVQW80eHlBQkNMClJRU2prSElBRUkx
RkNLT2NjZ0FRaTRYZy9QLy94d1hZY1FBUUFRQUJBS0dRY2dBUW80eHhBQkRIQllCeEFCQUpCQURB
eHdXRWNRQVEKQVFBQUFJc05DSEFBRUltTjJQei8vNHNWREhBQUVJbVYzUHovLy84Vk5JSUFFS1BR
Y1FBUWFnSG9Qd0FBQUlQRUJHb0EveFg4Z1FBUQphSUJjQUJEL0ZRQ0NBQkNEUGRCeEFCQUFkUXBx
QWVnWkFBQUFnOFFFYUFrRUFNRC9GUVNDQUJCUS94VUlnZ0FRaStWZHcvOGx5SUlBCkVQOGxaSUlB
RVA4bFlJSUFFUDhsWElJQUVQOGxWSUlBRVA4bFVJSUFFUDhsVElJQUVQOGxTSUlBRVA4bFJJSUFF
UDhsUUlJQUVQOGwKV0lJQUVQOGxQSUlBRVA4bE9JSUFFUDhsTklJQUVQOGxNSUlBRVA4bExJSUFF
UDhsS0lJQUVQOGxKSUlBRVA4bElJSUFFUDhsSElJQQpFUDhsR0lJQUVQOGxGSUlBRVA4bEVJSUFF
UDhsRElJQUVQOGxDSUlBRVA4bEJJSUFFUDhsQUlJQUVQOGwvSUVBRU16TXpNek16TXpNCnpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
CnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0K
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
CnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek13QUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBVUJJQUVB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRG9oeDFMQUFBQUFBSUFBQUJYQUFBQVhG
OEFBRnhGCkFBQUFBQUFBWTNKMFpHeHNMbU1BQUFBQVUzUmhZMnNnWVhKdmRXNWtJRjloYkd4dlky
RWdZMjl5Y25Wd2RHVmtBQUJNYjJOaGJDQjIKWVhKcFlXSnNaU0IxYzJWa0lHSmxabTl5WlNCcGJt
bDBhV0ZzYVhwaGRHbHZiZ0FBQUZOMFlXTnJJRzFsYlc5eWVTQmpiM0p5ZFhCMAphVzl1QUVOaGMz
UWdkRzhnYzIxaGJHeGxjaUIwZVhCbElHTmhkWE5wYm1jZ2JHOXpjeUJ2WmlCa1lYUmhBQUFBVTNS
aFkyc2djRzlwCmJuUmxjaUJqYjNKeWRYQjBhVzl1QUFBQUFOeFZBQkN3VlFBUW1GVUFFR3hWQUJC
TVZRQVFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUEKQUFCVmJtdHViM2R1SUZKMWJuUnBiV1VnUTJo
bFkyc2dSWEp5YjNJS0RRQUFBRk4wWVdOcklHMWxiVzl5ZVNCaGNtOTFibVFnWDJGcwpiRzlqWVNC
M1lYTWdZMjl5Y25Wd2RHVmtDZzBBUVNCc2IyTmhiQ0IyWVhKcFlXSnNaU0IzWVhNZ2RYTmxaQ0Jp
WldadmNtVWdhWFFnCmQyRnpJR2x1YVhScFlXeHBlbVZrQ2cwQUFBQlRkR0ZqYXlCdFpXMXZjbmtn
ZDJGeklHTnZjbkoxY0hSbFpBb05BQUFBQUFBQUFBQkIKSUdOaGMzUWdkRzhnWVNCemJXRnNiR1Z5
SUdSaGRHRWdkSGx3WlNCb1lYTWdZMkYxYzJWa0lHRWdiRzl6Y3lCdlppQmtZWFJoTGlBZwpTV1ln
ZEdocGN5QjNZWE1nYVc1MFpXNTBhVzl1WVd3c0lIbHZkU0J6YUc5MWJHUWdiV0Z6YXlCMGFHVWdj
MjkxY21ObElHOW1JSFJvClpTQmpZWE4wSUhkcGRHZ2dkR2hsSUdGd2NISnZjSEpwWVhSbElHSnBk
RzFoYzJzdUlDQkdiM0lnWlhoaGJYQnNaVG9nSUFvTkNXTm8KWVhJZ1l5QTlJQ2hwSUNZZ01IaEdS
aWs3Q2cxRGFHRnVaMmx1WnlCMGFHVWdZMjlrWlNCcGJpQjBhR2x6SUhkaGVTQjNhV3hzSUc1dgpk
Q0JoWm1abFkzUWdkR2hsSUhGMVlXeHBkSGtnYjJZZ2RHaGxJSEpsYzNWc2RHbHVaeUJ2Y0hScGJX
bDZaV1FnWTI5a1pTNEtEUUFBCkFBQlVhR1VnZG1Gc2RXVWdiMllnUlZOUUlIZGhjeUJ1YjNRZ2NI
SnZjR1Z5YkhrZ2MyRjJaV1FnWVdOeWIzTnpJR0VnWm5WdVkzUnAKYjI0Z1kyRnNiQzRnSUZSb2FY
TWdhWE1nZFhOMVlXeHNlU0JoSUhKbGMzVnNkQ0J2WmlCallXeHNhVzVuSUdFZ1puVnVZM1JwYjI0
ZwpaR1ZqYkdGeVpXUWdkMmwwYUNCdmJtVWdZMkZzYkdsdVp5QmpiMjUyWlc1MGFXOXVJSGRwZEdn
Z1lTQm1kVzVqZEdsdmJpQndiMmx1CmRHVnlJR1JsWTJ4aGNtVmtJSGRwZEdnZ1lTQmthV1ptWlhK
bGJuUWdZMkZzYkdsdVp5QmpiMjUyWlc1MGFXOXVMZ29OQUFBQUFBRUEKQUFBQUFBQUFBUUFBQUFF
QUFBQUJBQUFBQVFBQUFGTjBZV05ySUdGeWIzVnVaQ0IwYUdVZ2RtRnlhV0ZpYkdVZ0p3QW5JSGRo
Y3lCagpiM0p5ZFhCMFpXUXVBQUFBQUZSb1pTQjJZWEpwWVdKc1pTQW5BQUFuSUdseklHSmxhVzVu
SUhWelpXUWdkMmwwYUc5MWRDQmlaV2x1Clp5QnBibWwwYVdGc2FYcGxaQzRBQUZKMWJpMVVhVzFs
SUVOb1pXTnJJRVpoYVd4MWNtVWdJeVZrSUMwZ0pYTUFWVzVyYm05M2JpQk4KYjJSMWJHVWdUbUZ0
WlFCVmJtdHViM2R1SUVacGJHVnVZVzFsQUFBQUFBQUFBQUJTQUhVQWJnQXRBRlFBYVFCdEFHVUFJ
QUJEQUdnQQpaUUJqQUdzQUlBQkdBR0VBYVFCc0FIVUFjZ0JsQUNBQUl3QWxBR1FBSUFBdEFDQUFK
UUJ6QUFBQVVnQjFBRzRBZEFCcEFHMEFaUUFnCkFFTUFhQUJsQUdNQWF3QWdBRVVBY2dCeUFHOEFj
Z0F1QUFvQURRQWdBRlVBYmdCaEFHSUFiQUJsQUNBQWRBQnZBQ0FBWkFCcEFITUEKY0FCc0FHRUFl
UUFnQUZJQVZBQkRBQ0FBVFFCbEFITUFjd0JoQUdjQVpRQXVBQUFBVTNSaFkyc2dZMjl5Y25Wd2RH
VmtJRzVsWVhJZwpkVzVyYm05M2JpQjJZWEpwWVdKc1pRQUFBQUFBQUFCVGRHRmpheUJoY21WaElH
RnliM1Z1WkNCZllXeHNiMk5oSUcxbGJXOXllU0J5ClpYTmxjblpsWkNCaWVTQjBhR2x6SUdaMWJt
TjBhVzl1SUdseklHTnZjbkoxY0hSbFpBb0FBQUFBSlhNbGN5VnpKWE1BQUFBQVBpQUEKQUFvQUFB
QWxjeVZ6SlhBbGN5VnNaQ1Z6SldRbGN3QUFBQUFBQUFCVGRHRmpheUJoY21WaElHRnliM1Z1WkNC
ZllXeHNiMk5oSUcxbApiVzl5ZVNCeVpYTmxjblpsWkNCaWVTQjBhR2x6SUdaMWJtTjBhVzl1SUds
eklHTnZjbkoxY0hSbFpBQUtRV1JrY21WemN6b2dNSGdBCkFBQUFDbE5wZW1VNklBQUtRV3hzYjJO
aGRHbHZiaUJ1ZFcxaVpYSWdkMmwwYUdsdUlIUm9hWE1nWm5WdVkzUnBiMjQ2SUFBQUFBcEUKWVhS
aE9pQThBQUFBQUhkemNISnBiblJtUVFBQUFIVnpaWEl6TWk1a2JHd0FBQ1V1TWxnZ0FBQUFRU0Iy
WVhKcFlXSnNaU0JwY3lCaQpaV2x1WnlCMWMyVmtJSGRwZEdodmRYUWdZbVZwYm1jZ2FXNXBkR2xo
YkdsNlpXUXVBRTFUVUVSQ09EQXVSRXhNQUhJQUFBQlFSRUpQCmNHVnVWbUZzYVdSaGRHVTFBQUFB
QUVWdWRtbHliMjV0Wlc1MFJHbHlaV04wYjNKNUFBQUFBRk5QUmxSWFFWSkZYRTFwWTNKdmMyOW0K
ZEZ4V2FYTjFZV3hUZEhWa2FXOWNPQzR3WEZObGRIVndYRlpUQUFBQUFGSmxaME5zYjNObFMyVjVB
RkpsWjFGMVpYSjVWbUZzZFdWRgplRUVBQUFBQVVtVm5UM0JsYmt0bGVVVjRRUUFBQUVGRVZrRlFT
VE15TGtSTVRBQUFBQUNBY1FBUTJIRUFFRWdBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWh3QUJEUVlB
QVEKQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlNVMFJUR2x2NDBUTEUya0dnOVNCOGZK
THlFZ1FBQUFCak9seGoKZVdkM2FXNWNhRzl0WlZ4amJXRnljbWx1WEZkbFlrdHBkRUoxYVd4a1hH
SnBibHhSZFdGeWRIcERiM0psU1c1MFpYSm1ZV05sTG5CawpZZ0FBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFEQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUJJQUVBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBTUJJQUVBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBRCsvLy8vQUFBQUFORC8vLzhBQUFB
QS92Ly8vd0FBQUFEd0ZnQVFBQUFBQUxZV0FCRFJGZ0FRL3YvLy93QUFBQURNLy8vL0FBQUEKQVA3
Ly8vOEFBQUFBMHhnQUVBQUFBQUQrLy8vL0FBQUFBTGovLy84QUFBQUEvdi8vLzBjYkFCQmhHd0FR
QUFBQUFQNy8vLzhBQUFBQQp2UC8vL3dBQUFBRCsvLy8vWWgwQUVHWWRBQkFBQUFBQS92Ly8vd0FB
QUFDOC8vLy9BQUFBQVA3Ly8vK1VJQUFRbUNBQUVBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFEb2h4MUxBQUFBQVB4cEFB
QUJBQUFBQWdBQUFBSUFBQURvYVFBQThHa0FBUGhwQUFBRkVBQUFDaEFBCkFCUnFBQUE3YWdBQUFB
QUJBRkYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlV1Wkd4c0FIZHJVWFZoY25SNlEyOXlaVU5CVW1W
dVpHVnkKVDBkTVEyRnNiR0poWTJ0elUzbHRZbTlzQUhkclVYVmhjblI2UTI5eVpVTkdVM1J5YVc1
blVtVm1VM2x0WW05c0FBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vVHVaQXU3RVp2MFFCQUFBQUFRQUFBQUVBQUFBQkFB
QUFBUUFBQU9oWEFCREkKVmdBUXBGWUFFR3hXQUJCQVZnQVFJRllBRU5SYkFCQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lFQUFBQUFBQUFBQUFBQU1JVUFBQ3lEQUFEOGdBQUFB
QUFBQUFBQUFBRCtoUUFBcUlJQUFGQ0EKQUFBQUFBQUFBQUFBQUtDSUFBRDhnUUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFDQ2lBQUFab2dBQUZLSUFBQStpQUFBTUlnQQpBQ0NJQUFBS2lBQUEr
SWNBQU95SEFBRGdod0FBMEljQUFMNkhBQUN5aHdBQW5JY0FBSWlIQUFCeWh3QUFaSWNBQURhSEFB
QWNod0FBCkJvY0FBUENHQUFEZ2hnQUF4b1lBQUZLSEFBQ29oZ0FBb0lZQUFJcUdBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQTNJVUFBT3lGQUFBTWhnQUFNSVlBQURxRwpBQUJJaGdBQVVJ
WUFBRnFHQUFCMGhnQUF6b1VBQU1DRkFBQzBoUUFBam9VQUFINkZBQUJ5aFFBQVpJVUFBRktGQUFC
QWhRQUFvSVVBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKR29VQUFBYUZBQUR3aEFBQTJJUUFBTUtFQUFD
c2hBQUFtb1FBQUlTRUFBQndoQUFBWElRQUFFYUVBQUF1aEFBQUZJUUFBUHFEQUFEawpnd0FBeUlN
QUFLaURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFJS0lBQUJtaUFBQVVvZ0FBRDZJQUFBd2lBQUFJSWdB
QUFxSUFBRDRod0FBN0ljQUFPQ0hBQURRaHdBQXZvY0EKQUxLSEFBQ2Nod0FBaUljQUFIS0hBQUJr
aHdBQU5vY0FBQnlIQUFBR2h3QUE4SVlBQU9DR0FBREdoZ0FBVW9jQUFLaUdBQUNnaGdBQQppb1lB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBRGNoUUFBN0lVQUFBeUdBQUF3aGdBQU9vWUFB
RWlHQUFCUWhnQUFXb1lBQUhTR0FBRE9oUUFBd0lVQUFMU0YKQUFDT2hRQUFmb1VBQUhLRkFBQmto
UUFBVW9VQUFFQ0ZBQUNnaFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhaFFBQUJvVUFBUENFQUFEWWhB
QUF3b1FBQUt5RUFBQ2FoQUFBCmhJUUFBSENFQUFCY2hBQUFSb1FBQUM2RUFBQVVoQUFBK29NQUFP
U0RBQURJZ3dBQXFJTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXNBRnJRMEZEUmtkeVlYWnBkSGxTWlhO
cAplbVZCYzNCbFkzUkdhV3hzQUFDdkFXdERRVU5HUjNKaGRtbDBlVkpsYzJsNlpVRnpjR1ZqZEFB
QXJnRnJRMEZEUmtkeVlYWnBkSGxTClpYTnBlbVVBQUtzQmEwTkJRMFpIY21GMmFYUjVRbTkwZEc5
dFVtbG5hSFFBcWdGclEwRkRSa2R5WVhacGRIbENiM1IwYjIxTVpXWjAKQUFDMEFXdERRVU5HUjNK
aGRtbDBlVlJ2Y0ZKcFoyaDBBQUN6QVd0RFFVTkdSM0poZG1sMGVWUnZjRXhsWm5RQXNRRnJRMEZE
UmtkeQpZWFpwZEhsU2FXZG9kQUN0QVd0RFFVTkdSM0poZG1sMGVVeGxablFBQUtrQmEwTkJRMFpI
Y21GMmFYUjVRbTkwZEc5dEFBQ3lBV3REClFVTkdSM0poZG1sMGVWUnZjQUNzQVd0RFFVTkdSM0po
ZG1sMGVVTmxiblJsY2dBQXBRRnJRMEZEUmtacGJIUmxja3hoYm1ONmIzTUEKQUtnQmEwTkJRMFpH
YVd4MFpYSlVjbWxzYVc1bFlYSUFBS2NCYTBOQlEwWkdhV3gwWlhKT1pXRnlaWE4wQUFDbUFXdERR
VU5HUm1scwpkR1Z5VEdsdVpXRnlBTHdCYTBOQlEwWlVjbUZ1YzJadmNtMU1ZWGxsY2dCUmRXRnlk
SHBEYjNKbExtUnNiQUFBWHdCZlExSlVYMUpVClExOUpUa2xVVndBQXB3RmZaVzVqYjJSbFgzQnZh
VzUwWlhJQXpnSmZiV0ZzYkc5algyUmlad0RqQVY5bWNtVmxYMlJpWndDb0FWOWwKYm1OdlpHVmtY
MjUxYkd3QW5BRmZaR1ZqYjJSbFgzQnZhVzUwWlhJQWRRQmZRM0owVTJWMFEyaGxZMnREYjNWdWRB
QkxBbDlwYm1sMApkR1Z5YlFCTUFsOXBibWwwZEdWeWJWOWxBRXdCWDJGdGMyZGZaWGhwZEFBQU9n
RmZZV1JxZFhOMFgyWmthWFlBQUpFQVgxOURjSEJZClkzQjBSbWxzZEdWeUFFMVRWa05TT0RCRUxt
UnNiQUFBc3dCZlgyTnNaV0Z1WDNSNWNHVmZhVzVtYjE5dVlXMWxjMTlwYm5SbGNtNWgKYkFBQU1n
UmZkVzVzYjJOckFMMEFYMTlrYkd4dmJtVjRhWFFBdkFKZmJHOWphd0JsQTE5dmJtVjRhWFFBc0FG
ZlpYaGpaWEIwWDJoaApibVJzWlhJMFgyTnZiVzF2YmdDSEFWOWpjblJmWkdWaWRXZG5aWEpmYUc5
dmF3QUFLUUpKYm5SbGNteHZZMnRsWkVWNFkyaGhibWRsCkFGWURVMnhsWlhBQUpnSkpiblJsY214
dlkydGxaRU52YlhCaGNtVkZlR05vWVc1blpRQUFvd0pSZFdWeWVWQmxjbVp2Y20xaGJtTmwKUTI5
MWJuUmxjZ0RmQVVkbGRGUnBZMnREYjNWdWRBQUFSZ0ZIWlhSRGRYSnlaVzUwVkdoeVpXRmtTV1FB
QUVNQlIyVjBRM1Z5Y21WdQpkRkJ5YjJObGMzTkpaQURLQVVkbGRGTjVjM1JsYlZScGJXVkJjMFpw
YkdWVWFXMWxBSXNBUkdsellXSnNaVlJvY21WaFpFeHBZbkpoCmNubERZV3hzY3dDbkFsSmhhWE5s
UlhoalpYQjBhVzl1QUFCNEFFUmxZblZuUW5KbFlXc0FBSlFEVjJsa1pVTm9ZWEpVYjAxMWJIUnAK
UW5sMFpRQTVBa2x6UkdWaWRXZG5aWEpRY21WelpXNTBBSFVDVFhWc2RHbENlWFJsVkc5WGFXUmxR
MmhoY2dETUEyeHpkSEpzWlc1QgpBQUNnQVVkbGRGQnliMk5CWkdSeVpYTnpBQUJTQWt4dllXUk1h
V0p5WVhKNVFRQUFGZ0pJWldGd1JuSmxaUUFBRUFKSVpXRndRV3hzCmIyTUFvd0ZIWlhSUWNtOWpa
WE56U0dWaGNBQUFmZ0ZIWlhSTmIyUjFiR1ZHYVd4bFRtRnRaVmNBQUlnRFZtbHlkSFZoYkZGMVpY
SjUKQUFENEFFWnlaV1ZNYVdKeVlYSjVBRjREVkdWeWJXbHVZWFJsVUhKdlkyVnpjd0FBUWdGSFpY
UkRkWEp5Wlc1MFVISnZZMlZ6Y3dCdQpBMVZ1YUdGdVpHeGxaRVY0WTJWd2RHbHZia1pwYkhSbGNn
QUFTZ05UWlhSVmJtaGhibVJzWldSRmVHTmxjSFJwYjI1R2FXeDBaWElBClMwVlNUa1ZNTXpJdVpH
eHNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUJnQUFBQVlBQUNBQUFBQUFBQUFBQUFB
QUFBQUFBQUJBQUlBQUFBd0FBQ0EKQUFBQUFBQUFBQUFBQUFBQUFBQUJBQWtFQUFCSUFBQUFjSkVB
QUpZQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEdnU3
ODhQM2h0YkNCMlpYSnphVzl1UFNJeExqQWkKSUdWdVkyOWthVzVuUFNKVlZFWXRPQ0lnYzNSaGJt
UmhiRzl1WlQwaWVXVnpJajgrRFFvOFlYTnpaVzFpYkhrZ2VHMXNibk05SW5WeQpianB6WTJobGJX
RnpMVzFwWTNKdmMyOW1kQzFqYjIwNllYTnRMbll4SWlCdFlXNXBabVZ6ZEZabGNuTnBiMjQ5SWpF
dU1DSStEUW9nCklEeGtaWEJsYm1SbGJtTjVQZzBLSUNBZ0lEeGtaWEJsYm1SbGJuUkJjM05sYldK
c2VUNE5DaUFnSUNBZ0lEeGhjM05sYldKc2VVbGsKWlc1MGFYUjVJSFI1Y0dVOUluZHBiak15SWlC
dVlXMWxQU0pOYVdOeWIzTnZablF1VmtNNE1DNUVaV0oxWjBOU1ZDSWdkbVZ5YzJsdgpiajBpT0M0
d0xqVXdOekkzTGpRd05UTWlJSEJ5YjJObGMzTnZja0Z5WTJocGRHVmpkSFZ5WlQwaWVEZzJJaUJ3
ZFdKc2FXTkxaWGxVCmIydGxiajBpTVdaak9HSXpZamxoTVdVeE9HVXpZaUkrUEM5aGMzTmxiV0pz
ZVVsa1pXNTBhWFI1UGcwS0lDQWdJRHd2WkdWd1pXNWsKWlc1MFFYTnpaVzFpYkhrK0RRb2dJRHd2
WkdWd1pXNWtaVzVqZVQ0TkNqd3ZZWE56WlcxaWJIaytBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFFQUFBY0FFQUFHd3djVEI5TUlrd2xUQ2VNS2N3c0RDNU1NSXd5ekRVTU4wdzVq
RHZNUGd3QVRFS01Sd3hJREVrTVNneExERXcKTVRReE9ERThNVUF4UkRGSU1Vd3hVREZVTVZneFhE
RmdNUUl5RlRKYU1tY3lkekovTW9VeWl6S3JNcmd5M2pMbU11NHkvVElGTXpNegpPVE5lTTJZemV6
T0VNNGt6b1RPbU03UXp4VFBMTTlFejJUUDFNLzB6QmpRUE5DNDBORFJJTkZBMFp6UnVOSUEwaHpT
c05MODAwalRiCk5PQTA1VFRxTlBBMCt6UUJOVlkxV3pWdE5aVTFxRFhKTmQ0MVNqWmROcEUycGpi
eU5pNDNVVGRZTjNjM2ZUZURONWMzblRlak43RTMKd1RmSU45UTM5amY3TncwNElUZ29PRDQ0WFRo
a09HODRkamlPT0tjNHJ6aTVPTUU0SWprcE9UMDVVamxaT1cwNWVEbCtPWVE1aWptUQpPWlk1aGpx
TE9wMDZ0anFTTzVnN25qdkdPOUU3M2p2bU8vVTdDandXUENJOE1qeDJQSUU4akR5YlBLZzgxRHpa
UEFZOUN6MGRQVnc5Cm5qMm9QY0U5NmowelBuayttajdQUGhrL09UK0VQODgvNGo4QUFBQWdBQUFV
QVFBQUFEQW1NQ3N3UFRDT01Nb3cxVEF5TVhreHN6RzQKTWVveDlqRVNNaGd5SlRJc01qTXlUREpT
TWxzeVpESnBNblF5bERLZE1xWXlzekxCTXZBeVhETmpNNm96dFRNQ05FazBnelNJTks0MAp0RFM2
Tk1BMHhqVFNOQWMxSkRXRU5ZMDFuRFdrTmF3MXNUVzROUWsyMkRiZk5tWTNiVGU2TjhVMzNUZmtO
K3MzL2pjY09DRTRSRGhTCk9HczRsamkxT09vNC96Z3NPVmM1ZWptQU9ZWTVqRG1TT1pnNW56bW1P
YTA1dERtN09jSTV5VG5ST2RrNTRUbnRPZlk1K3prQk9nczYKRlRvaE9pMDZNanBFT2trNlR6cFZP
bTA2ZERwK09vUTZpanFRT3BZNm5EcWlPcWc2cmpxME9ybzZ3RHJHT3N3NjBqcllPdDQ2NURycQpP
dkE2OWpyOE9nSTdDRHNPT3hRN0dqc2dPd0JRQUFBY0FBQUFERFA0TmZ3MUFEWUVOZ2cyZ0R5RVBN
UTh5RHdBWUFBQUlBQUFBTmd5CjVEVUlPQkE0RkRnd09FdzRVRGhzT0hBNGpEaVFPQUJ3QUFBWUFB
QUFKREFvTUN3d01EQTBNRGd3UERBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIv
UXVhcnR6Q29yZUludGVyZmFjZS5saWIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIvUXVh
cnR6Q29yZUludGVyZmFjZS5saWIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoK
SVR4aGNtTm9QZ292SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdNVEkyTURJeU5qVXpOaUFnSUNBZ0lDQWdJ
Q0FnSUNBZ01DQWdJQ0FnSUNBeQpPRGdnSUNBZ0lDQWdZQW9BQUFBSEFBQURIZ0FBQlhnQUFBYThB
QUFJdUFBQUNMZ0FBQWdvQUFBSUtGOWZTVTFRVDFKVVgwUkZVME5TClNWQlVUMUpmVVhWaGNuUjZR
Mjl5WlVsdWRHVnlabUZqWlFCZlgwNVZURXhmU1UxUVQxSlVYMFJGVTBOU1NWQlVUMUlBZjFGMVlY
SjAKZWtOdmNtVkpiblJsY21aaFkyVmZUbFZNVEY5VVNGVk9TMTlFUVZSQkFGOWZhVzF3WDE5M2Ex
RjFZWEowZWtOdmNtVkRSbE4wY21sdQpaMUpsWmxONWJXSnZiQUJmZDJ0UmRXRnlkSHBEYjNKbFEw
WlRkSEpwYm1kU1pXWlRlVzFpYjJ3QVgxOXBiWEJmWDNkclVYVmhjblI2ClEyOXlaVU5CVW1WdVpH
VnlUMGRNUTJGc2JHSmhZMnR6VTNsdFltOXNBRjkzYTFGMVlYSjBla052Y21WRFFWSmxibVJsY2s5
SFRFTmgKYkd4aVlXTnJjMU41YldKdmJBQXZJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01USTJNREl5TmpV
ek5pQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZwpJQ0FnSUNBeU9UZ2dJQ0FnSUNBZ1lBb0ZBQUFBSGdN
QUFIZ0ZBQUM4QmdBQXVBZ0FBQ2dJQUFBSEFBQUFBUUFDQUFVQUJBQUZBQVFBCkF3QmZYMGxOVUU5
U1ZGOUVSVk5EVWtsUVZFOVNYMUYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlVBWDE5T1ZVeE1YMGxO
VUU5U1ZGOUUKUlZORFVrbFFWRTlTQUY5ZmFXMXdYMTkzYTFGMVlYSjBla052Y21WRFFWSmxibVJs
Y2s5SFRFTmhiR3hpWVdOcmMxTjViV0p2YkFCZgpYMmx0Y0Y5ZmQydFJkV0Z5ZEhwRGIzSmxRMFpU
ZEhKcGJtZFNaV1pUZVcxaWIyd0FYM2RyVVhWaGNuUjZRMjl5WlVOQlVtVnVaR1Z5ClQwZE1RMkZz
YkdKaFkydHpVM2x0WW05c0FGOTNhMUYxWVhKMGVrTnZjbVZEUmxOMGNtbHVaMUpsWmxONWJXSnZi
QUIvVVhWaGNuUjYKUTI5eVpVbHVkR1Z5Wm1GalpWOU9WVXhNWDFSSVZVNUxYMFJCVkVFQUx5OGdJ
Q0FnSUNBZ0lDQWdJQ0FnSURFeU5qQXlNalkxTXpZZwpJQ0FnSUNBZ0lDQWdJQ0FnSURBZ0lDQWdJ
Q0FnTWpRZ0lDQWdJQ0FnSUdBS1VYVmhjblI2UTI5eVpVbHVkR1Z5Wm1GalpTNWtiR3dBCkx6QWdJ
Q0FnSUNBZ0lDQWdJQ0FnSURFeU5qQXlNalkxTXpZZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnSUNBZ0lD
QWdOVFF5SUNBZ0lDQWcKSUdBS1RBRURBT2lISFVza0FRQUFDQUFBQUFBQUFBRXVaR1ZpZFdja1V3
QUFBQUFBQUFBQVRnQUFBSXdBQUFBQUFBQUFBQUFBQUFBQQpBQUJBQUJCQ0xtbGtZWFJoSkRJQUFB
QUFBQUFBQUJRQUFBRGFBQUFBN2dBQUFBQUFBQUFEQUFBQVFBQXd3QzVwWkdGMFlTUTJBQUFBCkFB
QUFBQUFZQUFBQURBRUFBTzRBQUFBQUFBQUFBQUFBQUVBQUlNQUNBQUFBSGdBSkFBQUFBQUFYVVhW
aGNuUjZRMjl5WlVsdWRHVnkKWm1GalpTNWtiR3dvQUJNUUJ3QUFBQU1BQUFBQUFBQUFDQUFBQUNm
R0VrMXBZM0p2YzI5bWRDQW9VaWtnVEVsT1N3QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUF3
QUFBQURBQUFBQndBQUFBQUFCQUFBQUFjQUVBQUFBQVVBQUFBSEFGRjFZWEowZWtOdmNtVkpiblJs
CmNtWmhZMlV1Wkd4c0FFQmpiMjF3TG1sa0o4WjdBUC8vQUFBREFBQUFBQUFFQUFBQUFBQUFBQUlB
QUFBQ0FDNXBaR0YwWVNReVFBQUEKd0FJQUFBQm9BQzVwWkdGMFlTUTJBQUFBQUFNQUFBQURBQzVw
WkdGMFlTUTBRQUFBd0FBQUFBQm9BQzVwWkdGMFlTUTFRQUFBd0FBQQpBQUJvQUFBQUFBQXNBQUFB
QUFBQUFBQUFBQUFDQUFBQUFBQkZBQUFBQUFBQUFBQUFBQUFDQUdvQUFBQmZYMGxOVUU5U1ZGOUVS
Vk5EClVrbFFWRTlTWDFGMVlYSjBla052Y21WSmJuUmxjbVpoWTJVQVgxOU9WVXhNWDBsTlVFOVNW
RjlFUlZORFVrbFFWRTlTQUg5UmRXRnkKZEhwRGIzSmxTVzUwWlhKbVlXTmxYMDVWVEV4ZlZFaFZU
a3RmUkVGVVFRQXZNQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01USTJNREl5TmpVegpOaUFnSUNBZ0lDQWdJ
Q0FnSUNBZ01DQWdJQ0FnSUNBeU5qTWdJQ0FnSUNBZ1lBcE1BUUlBNkljZFM4WUFBQUFDQUFBQUFB
QUFBUzVrClpXSjFaeVJUQUFBQUFBQUFBQUJPQUFBQVpBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUVF
SXVhV1JoZEdFa013QUFBQUFBQUFBQUZBQUEKQUxJQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUREQUFn
QUFBQjRBQ1FBQUFBQUFGMUYxWVhKMGVrTnZjbVZKYm5SbGNtWmhZMlV1Wkd4cwpLQUFURUFjQUFB
QURBQUFBQUFBQUFBZ0FBQUFueGhKTmFXTnliM052Wm5RZ0tGSXBJRXhKVGtzQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUJBWTI5dGNDNXBaQ2ZHZXdELy93QUFBd0FBQUFBQUJBQUFBQUFBQUFB
Q0FBQUFBZ0FkQUFBQVgxOU9WVXhNWDBsTlVFOVMKVkY5RVJWTkRVa2xRVkU5U0FBb3ZNQ0FnSUNB
Z0lDQWdJQ0FnSUNBZ01USTJNREl5TmpVek5pQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZwpJQ0FnSUNB
ek1ETWdJQ0FnSUNBZ1lBcE1BUU1BNkljZFMrSUFBQUFDQUFBQUFBQUFBUzVrWldKMVp5UlRBQUFB
QUFBQUFBQk9BQUFBCmpBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUVFSXVhV1JoZEdFa05RQUFBQUFB
QUFBQUJBQUFBTm9BQUFBQUFBQUFBQUFBQUFBQUFBQkEKQUREQUxtbGtZWFJoSkRRQUFBQUFBQUFB
QUFRQUFBRGVBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQXd3QUlBQUFBZUFBa0FBQUFBQUJkUgpkV0Z5
ZEhwRGIzSmxTVzUwWlhKbVlXTmxMbVJzYkNnQUV4QUhBQUFBQXdBQUFBQUFBQUFJQUFBQUo4WVNU
V2xqY205emIyWjBJQ2hTCktTQk1TVTVMQUFBQUFBQUFBQUFBUUdOdmJYQXVhV1FueG5zQS8vOEFB
QU1BQUFBQUFBUUFBQUFBQUFBQUFnQUFBQUlBS1FBQUFIOVIKZFdGeWRIcERiM0psU1c1MFpYSm1Z
V05sWDA1VlRFeGZWRWhWVGt0ZlJFRlVRUUFLTHpBZ0lDQWdJQ0FnSUNBZ0lDQWdJREV5TmpBeQpN
alkxTXpZZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnSUNBZ0lDQWdPRFFnSUNBZ0lDQWdJR0FLQUFELy93
QUFUQUhvaHgxTFFBQUFBQUFBCkNBQmZkMnRSZFdGeWRIcERiM0psUTBGU1pXNWtaWEpQUjB4RFlX
eHNZbUZqYTNOVGVXMWliMndBVVhWaGNuUjZRMjl5WlVsdWRHVnkKWm1GalpTNWtiR3dBTHpBZ0lD
QWdJQ0FnSUNBZ0lDQWdJREV5TmpBeU1qWTFNellnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdJQ0FnSUNB
ZwpOelVnSUNBZ0lDQWdJR0FLQUFELy93QUFUQUhvaHgxTE53QUFBQUVBQ0FCZmQydFJkV0Z5ZEhw
RGIzSmxRMFpUZEhKcGJtZFNaV1pUCmVXMWliMndBVVhWaGNuUjZRMjl5WlVsdWRHVnlabUZqWlM1
a2JHd0FDZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44636</attachid>
            <date>2009-12-10 13:30:52 -0800</date>
            <delta_ts>2009-12-10 14:28:07 -0800</delta_ts>
            <desc>One more try of final patch</desc>
            <filename>31856_OpenSource.patch</filename>
            <type>text/plain</type>
            <size>65674</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxOTUxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMTAgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBjaGVjayBmb3IgcHJlc2VuY2Ugb2YgUXVhcnR6Q29yZSBo
ZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTg1NgorICAgICAgICAKKyAgICAgICAgVGhlIHNjcmlwdCBub3cgY2hlY2tzIGZvciB0aGUgcHJl
c2VuY2Ugb2YgUXVhcnR6Q29yZS5oLiBJZiBwcmVzZW50CisgICAgICAgIGl0IHdpbGwgdHVybiBv
biBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBhbmQgM0RfUkVOREVSSU5HIHRvIGVuYWJsZQorICAg
ICAgICBIVyBjb21wb3NpdGluZyBvbiBXaW5kb3dzLiBUaGUgc2NyaXB0IHdyaXRlcyBRdWFydHpD
b3JlUHJlc2VudC5oIHRvCisgICAgICAgIHRoZSBidWlsZCBkaXJlY3Rvcnkgd2hpY2ggaGFzIGEg
ZGVmaW5lIHRlbGxpbmcgd2hldGhlciBRdWFydHpDb3JlIGlzIAorICAgICAgICBwcmVzZW50Lgor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdl
bmVyYXRlZC1maWxlcy5zaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAwOS0xMi0w
OSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvYnVp
bGQtZ2VuZXJhdGVkLWZpbGVzLnNoCShyZXZpc2lvbiA1MTk1MSkKKysrIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9idWlsZC1nZW5lcmF0ZWQtZmls
ZXMuc2gJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwxMyBAQAogIyEvdXNyL2Jpbi9iYXNoCiAK
KyMgRGV0ZXJtaW5lIGlmIHdlIGhhdmUgUXVhcnR6Q29yZSBzbyB3ZSBjYW4gdHVybiBvbgoraWYg
WyAtZiAke1dFQktJVExJQlJBUklFU0RJUn0vaW5jbHVkZS9RdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aCBdCit0aGVuCisJZWNobyAiI2RlZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMSIgPiAke1dFQktJ
VE9VVFBVVERJUn0vSW5jbHVkZS9RdWFydHpDb3JlUHJlc2VudC5oCitlbHNlCisJZWNobyAiI2Rl
ZmluZSBRVUFSVFpDT1JFX1BSRVNFTlQgMCIgPiAke1dFQktJVE9VVFBVVERJUn0vSW5jbHVkZS9R
dWFydHpDb3JlUHJlc2VudC5oCitmaQorCiBOVU1DUFVTPWAuLi8uLi8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL251bS1jcHVzYAogCiBYU1JDUk9PVD0iYHB3ZGAvLi4vLi4iCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAkocmV2aXNpb24gNTE5NTEpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTE1LDggKzkxNSwxNSBAQCBvbiBNaW5HVy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3NoCiAjZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcgMQogI2VuZGlmCiAKKy8qIEZJWE1FOiBEZWZpbmluZyBFTkFCTEVfM0RfUkVOREVS
SU5HIGhlcmUgaXNuJ3QgcmVhbGx5IHJpZ2h0LCBidXQgaXQncyBhbHdheXMgdXNlZCB3aXRoCisg
ICB3aXRoIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcsIGFuZCBpdCBhbGxvd3MgdGhl
IGZlYXR1cmUgdG8gYmUgdHVybmVkIG9uIGFuZAorICAgb2ZmIGluIG9uZSBwbGFjZS4gKi8KICNp
ZiBQTEFURk9STShXSU4pCi0jZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcg
MAorI2luY2x1ZGUgIlF1YXJ0ekNvcmVQcmVzZW50LmgiCisjaWYgUVVBUlRaQ09SRV9QUkVTRU5U
CisjZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgMQorI2RlZmluZSBFTkFC
TEVfM0RfUkVOREVSSU5HIDEKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBDT01QSUxFUihHQ0MpCklu
ZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gNTE5NTEpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDM4IEBACisyMDA5LTEyLTEwICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWxh
eSBsb2FkIERMTHMgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg1NgorICAgICAgICAKKyAgICAgICAg
Q2hhbmdlIGNhbGxzIHRoYXQgdXNlIHRoZSBkYXRhIGV4cG9ydCBzeW1ib2xzIGZyb20KKyAgICAg
ICAgUXVhcnR6Q29yZSB0byB1c2UgdGhlIGZ1bmN0aW9ucyBpbiBRdWFydHpDb3JlSW50ZXJmYWNl
LgorICAgICAgICBUaGlzIGFsbG93cyBRdWFydHpDb3JlIHRvIGJlIGRlbGF5IGxvYWRlZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyQ0FDRi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0FDRjo6R3JhcGhpY3NMYXllckNBQ0YpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUxheWVyUHJlc2VydmVz
M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUNvbnRlbnRz
SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0NBQ0ZMYXllclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
dG9DQUNGQ29udGVudHNHcmF2aXR5VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpmcm9tQ0FDRkNv
bnRlbnRzR3Jhdml0eVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9DQUNGRmlsdGVyVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpmcm9tQ0FDRkZpbHRlclR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V0tDQUNGTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6
V0tDQUNGTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6OnNldENvbnRlbnRz
R3Jhdml0eSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllcjo6Y29udGVudHNHcmF2aXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXRNYWduaWZpY2F0aW9uRmlsdGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjptYWduaWZpY2F0aW9uRmlsdGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldLQ0FDRkxheWVyOjpzZXRNaW5pZmljYXRpb25GaWx0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V0tDQUNGTGF5ZXI6Om1pbmlmaWNhdGlvbkZpbHRlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpXS0NBQ0ZMYXllcjo6KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tD
QUNGTGF5ZXJSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRl
cmVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRkxheWVyUmVuZGVyZXI6OmNyZWF0ZVJlbmRlcmVyKToKKwogMjAwOS0xMi0xMCAgU3Rl
cGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFNjaHVsemUuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0xheWVyQ0FDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0YuY3BwCShyZXZpc2lvbiA1MTk1MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJDQUNGLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIldLQ0FDRkxheWVyLmgiCisjaW5jbHVkZSA8
UXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCkBAIC0xMjMs
NyArMTI0LDcgQEAgR3JhcGhpY3NMYXllckNBQ0Y6OkdyYXBoaWNzTGF5ZXJDQUNGKEdyYQogICAg
ICwgbV9jb250ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2NvbnRl
bnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IoZmFsc2UpCiB7Ci0gICAgbV9sYXllciA9IFdLQ0FD
RkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllciwgdGhpcyk7CisgICAgbV9sYXllciA9IFdLQ0FDRkxh
eWVyOjpjcmVhdGUoV0tDQUNGTGF5ZXI6OkxheWVyLCB0aGlzKTsKICAgICAKICAgICB1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoKTsKIH0KQEAgLTUzNiw3ICs1MzcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQUNGOjp1cGRhdGVMYXllclByZXNlCiB7CiAgICAgaWYgKG1fcHJlc2VydmVzM0QgJiYgIW1f
dHJhbnNmb3JtTGF5ZXIpIHsKICAgICAgICAgLy8gQ3JlYXRlIHRoZSB0cmFuc2Zvcm0gbGF5ZXIu
Ci0gICAgICAgIG1fdHJhbnNmb3JtTGF5ZXIgPSBXS0NBQ0ZMYXllcjo6Y3JlYXRlKGtDQUNGVHJh
bnNmb3JtTGF5ZXIsIHRoaXMpOworICAgICAgICBtX3RyYW5zZm9ybUxheWVyID0gV0tDQUNGTGF5
ZXI6OmNyZWF0ZShXS0NBQ0ZMYXllcjo6VHJhbnNmb3JtTGF5ZXIsIHRoaXMpOwogCiAjaWZuZGVm
IE5ERUJVRwogICAgICAgICBtX3RyYW5zZm9ybUxheWVyLT5zZXROYW1lKFN0cmluZygpLmZvcm1h
dCgiVHJhbnNmb3JtIExheWVyIENBVHJhbnNmb3JtTGF5ZXIoJXApIEdyYXBoaWNzTGF5ZXIoJXAp
IiwgbV90cmFuc2Zvcm1MYXllci5nZXQoKSwgdGhpcykpOwpAQCAtNTUyLDcgKzU1Myw3IEBAIHZv
aWQgR3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUxheWVyUHJlc2UKICAgICAgICAgbV9sYXllci0+
c2V0UG9zaXRpb24ocG9pbnQpOwogCiAgICAgICAgIG1fbGF5ZXItPnNldEFuY2hvclBvaW50KENH
UG9pbnRNYWtlKDAuNWYsIDAuNWYpKTsKLSAgICAgICAgbV9sYXllci0+c2V0VHJhbnNmb3JtKENB
VHJhbnNmb3JtM0RJZGVudGl0eSk7CisgICAgICAgIG1fbGF5ZXItPnNldFRyYW5zZm9ybSh3a3Fj
Q0FUcmFuc2Zvcm0zRElkZW50aXR5KCkpOwogICAgICAgICAKICAgICAgICAgLy8gU2V0IHRoZSBv
bGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBGdXJ0aGVyIGRvd24gd2Ugd2lsbCBzZXQgdGhlIG9w
YWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgbV9sYXllci0+c2V0T3BhY2l0
eSgxKTsKQEAgLTYwOSw3ICs2MTAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQUNGOjp1cGRhdGVD
b250ZW50c0ltCiB7CiAgICAgaWYgKG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2UpIHsKICAgICAgICAg
aWYgKCFtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxXS0NBQ0ZM
YXllcj4gaW1hZ2VMYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllciwgdGhpcyk7
CisgICAgICAgICAgICBSZWZQdHI8V0tDQUNGTGF5ZXI+IGltYWdlTGF5ZXIgPSBXS0NBQ0ZMYXll
cjo6Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllciwgdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAg
ICAgICAgICAgaW1hZ2VMYXllci0+c2V0TmFtZSgiSW1hZ2UgTGF5ZXIiKTsKICNlbmRpZgpAQCAt
NjIwLDcgKzYyMSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBQ0Y6OnVwZGF0ZUNvbnRlbnRzSW0K
IAogICAgICAgICAvLyBGSVhNRTogbWF5YmUgb25seSBkbyB0cmlsaW5lYXIgaWYgdGhlIGltYWdl
IGlzIGJlaW5nIHNjYWxlZCBkb3duLAogICAgICAgICAvLyBidXQgdGhlbiB3aGF0IGlmIHRoZSBs
YXllciBzaXplIGNoYW5nZXM/Ci0gICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TWluaWZpY2F0
aW9uRmlsdGVyKGtDQUNGRmlsdGVyVHJpbGluZWFyKTsKKyAgICAgICAgbV9jb250ZW50c0xheWVy
LT5zZXRNaW5pZmljYXRpb25GaWx0ZXIoV0tDQUNGTGF5ZXI6OlRyaWxpbmVhcik7CiAgICAgICAg
IG1fY29udGVudHNMYXllci0+c2V0Q29udGVudHMobV9wZW5kaW5nQ29udGVudHNJbWFnZS5nZXQo
KSk7CiAgICAgICAgIG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2UgPSAwOwogICAgICAgICAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5jcHAJKHJldmlz
aW9uIDUxOTUxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTUgQEAKICNpbmNsdWRlICJXS0NBQ0ZM
YXllci5oIgogCiAjaW5jbHVkZSAiV0tDQUNGQ29udGV4dEZsdXNoZXIuaCIKKyNpbmNsdWRlICJX
S0NBQ0ZMYXllclJlbmRlcmVyLmgiCiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPFF1
YXJ0ekNvcmUvQ0FDRkNvbnRleHQuaD4KICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBUmVuZGVyLmg+
CisjaW5jbHVkZSA8UXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmg+CiAK
LSNwcmFnbWEgY29tbWVudChsaWIsICJRdWFydHpDb3JlIikNCisjcHJhZ21hIGNvbW1lbnQobGli
LCAiUXVhcnR6Q29yZSIpCisjcHJhZ21hIGNvbW1lbnQobGliLCAiUXVhcnR6Q29yZUludGVyZmFj
ZSIpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEgKzUwLDE0MCBAQCBzdGF0aWMg
dm9pZCBkaXNwbGF5SW5Db250ZXh0KENBQ0ZMYXllclJlCiAgICAgV0tDQUNGTGF5ZXI6OmxheWVy
KGxheWVyKS0+ZGlzcGxheShjb250ZXh0KTsKIH0KIAorI2RlZmluZSBTVEFUSUNfQ0FDRl9TVFJJ
TkcobmFtZSwgcWNOYW1lKSBcCisgICAgc3RhdGljIENGU3RyaW5nUmVmIG5hbWUoKSBcCisgICAg
eyBcCisgICAgICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG5hbWU7IFwKKyAgICAg
ICAgaWYgKCFuYW1lKSBcCisgICAgICAgICAgICBuYW1lID0gUmV0YWluUHRyPENGU3RyaW5nUmVm
PihBZG9wdENGLCB3a3FjQ0ZTdHJpbmdSZWYod2txYyMjcWNOYW1lKSk7IFwKKyAgICAgICAgcmV0
dXJuIG5hbWUuZ2V0KCk7IFwKKyAgICB9CisKK1NUQVRJQ19DQUNGX1NUUklORyhMYXllciwga0NB
Q0ZMYXllcikKK1NUQVRJQ19DQUNGX1NUUklORyhsdFRyYW5zZm9ybUxheWVyLCBrQ0FDRlRyYW5z
Zm9ybUxheWVyKQorU1RBVElDX0NBQ0ZfU1RSSU5HKENlbnRlciwga0NBQ0ZHcmF2aXR5Q2VudGVy
KQorU1RBVElDX0NBQ0ZfU1RSSU5HKFRvcCwga0NBQ0ZHcmF2aXR5VG9wKQorU1RBVElDX0NBQ0Zf
U1RSSU5HKEJvdHRvbSwga0NBQ0ZHcmF2aXR5Qm90dG9tKQorU1RBVElDX0NBQ0ZfU1RSSU5HKExl
ZnQsIGtDQUNGR3Jhdml0eUxlZnQpCitTVEFUSUNfQ0FDRl9TVFJJTkcoUmlnaHQsIGtDQUNGR3Jh
dml0eVJpZ2h0KQorU1RBVElDX0NBQ0ZfU1RSSU5HKFRvcExlZnQsIGtDQUNGR3Jhdml0eVRvcExl
ZnQpCitTVEFUSUNfQ0FDRl9TVFJJTkcoVG9wUmlnaHQsIGtDQUNGR3Jhdml0eVRvcFJpZ2h0KQor
U1RBVElDX0NBQ0ZfU1RSSU5HKEJvdHRvbUxlZnQsIGtDQUNGR3Jhdml0eUJvdHRvbUxlZnQpCitT
VEFUSUNfQ0FDRl9TVFJJTkcoQm90dG9tUmlnaHQsIGtDQUNGR3Jhdml0eUJvdHRvbVJpZ2h0KQor
U1RBVElDX0NBQ0ZfU1RSSU5HKFJlc2l6ZSwga0NBQ0ZHcmF2aXR5UmVzaXplKQorU1RBVElDX0NB
Q0ZfU1RSSU5HKFJlc2l6ZUFzcGVjdCwga0NBQ0ZHcmF2aXR5UmVzaXplQXNwZWN0KQorU1RBVElD
X0NBQ0ZfU1RSSU5HKFJlc2l6ZUFzcGVjdEZpbGwsIGtDQUNGR3Jhdml0eVJlc2l6ZUFzcGVjdEZp
bGwpCitTVEFUSUNfQ0FDRl9TVFJJTkcoTGluZWFyLCBrQ0FDRkZpbHRlckxpbmVhcikKK1NUQVRJ
Q19DQUNGX1NUUklORyhOZWFyZXN0LCBrQ0FDRkZpbHRlck5lYXJlc3QpCitTVEFUSUNfQ0FDRl9T
VFJJTkcoVHJpbGluZWFyLCBrQ0FDRkZpbHRlclRyaWxpbmVhcikKK1NUQVRJQ19DQUNGX1NUUklO
RyhMYW5jem9zLCBrQ0FDRkZpbHRlckxhbmN6b3MpCisKK3N0YXRpYyBDRlN0cmluZ1JlZiB0b0NB
Q0ZMYXllclR5cGUoV0tDQUNGTGF5ZXI6OkxheWVyVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAo
dHlwZSkKKyAgICB7CisgICAgICAgIGNhc2UgV0tDQUNGTGF5ZXI6OkxheWVyOiByZXR1cm4gd2tx
Y0NGU3RyaW5nUmVmKHdrcWNrQ0FDRkxheWVyKTsKKyAgICAgICAgY2FzZSBXS0NBQ0ZMYXllcjo6
VHJhbnNmb3JtTGF5ZXI6IHJldHVybiB3a3FjQ0ZTdHJpbmdSZWYod2txY2tDQUNGVHJhbnNmb3Jt
TGF5ZXIpOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gMDsKKyAgICB9Cit9CisKK3N0YXRpYyBD
RlN0cmluZ1JlZiB0b0NBQ0ZDb250ZW50c0dyYXZpdHlUeXBlKFdLQ0FDRkxheWVyOjpDb250ZW50
c0dyYXZpdHlUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKQorICAgIHsKKyAgICAgICAg
Y2FzZSBXS0NBQ0ZMYXllcjo6Q2VudGVyOiByZXR1cm4gQ2VudGVyKCk7CisgICAgICAgIGNhc2Ug
V0tDQUNGTGF5ZXI6OlRvcDogcmV0dXJuIFRvcCgpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVy
OjpCb3R0b206IHJldHVybiBCb3R0b20oKTsKKyAgICAgICAgY2FzZSBXS0NBQ0ZMYXllcjo6TGVm
dDogcmV0dXJuIExlZnQoKTsKKyAgICAgICAgY2FzZSBXS0NBQ0ZMYXllcjo6UmlnaHQ6IHJldHVy
biBSaWdodCgpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVyOjpUb3BMZWZ0OiByZXR1cm4gVG9w
TGVmdCgpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVyOjpUb3BSaWdodDogcmV0dXJuIFRvcFJp
Z2h0KCk7CisgICAgICAgIGNhc2UgV0tDQUNGTGF5ZXI6OkJvdHRvbUxlZnQ6IHJldHVybiBCb3R0
b21MZWZ0KCk7CisgICAgICAgIGNhc2UgV0tDQUNGTGF5ZXI6OkJvdHRvbVJpZ2h0OiByZXR1cm4g
Qm90dG9tUmlnaHQoKTsKKyAgICAgICAgY2FzZSBXS0NBQ0ZMYXllcjo6UmVzaXplOiByZXR1cm4g
UmVzaXplKCk7CisgICAgICAgIGNhc2UgV0tDQUNGTGF5ZXI6OlJlc2l6ZUFzcGVjdDogcmV0dXJu
IFJlc2l6ZUFzcGVjdCgpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVyOjpSZXNpemVBc3BlY3RG
aWxsOiByZXR1cm4gUmVzaXplQXNwZWN0RmlsbCgpOworICAgICAgICBkZWZhdWx0OiByZXR1cm4g
MDsKKyAgICB9Cit9CisKK3N0YXRpYyBXS0NBQ0ZMYXllcjo6Q29udGVudHNHcmF2aXR5VHlwZSBm
cm9tQ0FDRkNvbnRlbnRzR3Jhdml0eVR5cGUoQ0ZTdHJpbmdSZWYgc3RyaW5nKQoreworICAgIGlm
IChDRlN0cmluZ0NvbXBhcmUoc3RyaW5nLCBUb3AoKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG8p
CisgICAgICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6VG9wOworCisgICAgaWYgKENGU3RyaW5nQ29t
cGFyZShzdHJpbmcsIEJvdHRvbSgpLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAg
cmV0dXJuIFdLQ0FDRkxheWVyOjpCb3R0b207CisKKyAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHN0
cmluZywgTGVmdCgpLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAgcmV0dXJuIFdL
Q0FDRkxheWVyOjpMZWZ0OworCisgICAgaWYgKENGU3RyaW5nQ29tcGFyZShzdHJpbmcsIFJpZ2h0
KCksIDApID09IGtDRkNvbXBhcmVFcXVhbFRvKQorICAgICAgICByZXR1cm4gV0tDQUNGTGF5ZXI6
OlJpZ2h0OworCisgICAgaWYgKENGU3RyaW5nQ29tcGFyZShzdHJpbmcsIFRvcExlZnQoKSwgMCkg
PT0ga0NGQ29tcGFyZUVxdWFsVG8pCisgICAgICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6VG9wTGVm
dDsKKworICAgIGlmIChDRlN0cmluZ0NvbXBhcmUoc3RyaW5nLCBUb3BSaWdodCgpLCAwKSA9PSBr
Q0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAgcmV0dXJuIFdLQ0FDRkxheWVyOjpUb3BSaWdodDsK
KworICAgIGlmIChDRlN0cmluZ0NvbXBhcmUoc3RyaW5nLCBCb3R0b21MZWZ0KCksIDApID09IGtD
RkNvbXBhcmVFcXVhbFRvKQorICAgICAgICByZXR1cm4gV0tDQUNGTGF5ZXI6OkJvdHRvbUxlZnQ7
CisKKyAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHN0cmluZywgQm90dG9tUmlnaHQoKSwgMCkgPT0g
a0NGQ29tcGFyZUVxdWFsVG8pCisgICAgICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6Qm90dG9tUmln
aHQ7CisKKyAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHN0cmluZywgUmVzaXplKCksIDApID09IGtD
RkNvbXBhcmVFcXVhbFRvKQorICAgICAgICByZXR1cm4gV0tDQUNGTGF5ZXI6OlJlc2l6ZTsKKwor
ICAgIGlmIChDRlN0cmluZ0NvbXBhcmUoc3RyaW5nLCBSZXNpemVBc3BlY3QoKSwgMCkgPT0ga0NG
Q29tcGFyZUVxdWFsVG8pCisgICAgICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6UmVzaXplQXNwZWN0
OworCisgICAgaWYgKENGU3RyaW5nQ29tcGFyZShzdHJpbmcsIFJlc2l6ZUFzcGVjdEZpbGwoKSwg
MCkgPT0ga0NGQ29tcGFyZUVxdWFsVG8pCisgICAgICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6UmVz
aXplQXNwZWN0RmlsbDsKKworICAgIHJldHVybiBXS0NBQ0ZMYXllcjo6Q2VudGVyOworfQorCitz
dGF0aWMgQ0ZTdHJpbmdSZWYgdG9DQUNGRmlsdGVyVHlwZShXS0NBQ0ZMYXllcjo6RmlsdGVyVHlw
ZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkKKyAgICB7CisgICAgICAgIGNhc2UgV0tDQUNG
TGF5ZXI6OkxpbmVhcjogcmV0dXJuIExpbmVhcigpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVy
OjpOZWFyZXN0OiByZXR1cm4gTmVhcmVzdCgpOworICAgICAgICBjYXNlIFdLQ0FDRkxheWVyOjpU
cmlsaW5lYXI6IHJldHVybiBUcmlsaW5lYXIoKTsKKyAgICAgICAgY2FzZSBXS0NBQ0ZMYXllcjo6
TGFuY3pvczogcmV0dXJuIExhbmN6b3MoKTsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIDA7Cisg
ICAgfQorfQorCitzdGF0aWMgV0tDQUNGTGF5ZXI6OkZpbHRlclR5cGUgZnJvbUNBQ0ZGaWx0ZXJU
eXBlKENGU3RyaW5nUmVmIHN0cmluZykKK3sKKyAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHN0cmlu
ZywgTmVhcmVzdCgpLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAgcmV0dXJuIFdL
Q0FDRkxheWVyOjpOZWFyZXN0OworCisgICAgaWYgKENGU3RyaW5nQ29tcGFyZShzdHJpbmcsIFRy
aWxpbmVhcigpLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAgcmV0dXJuIFdLQ0FD
RkxheWVyOjpUcmlsaW5lYXI7CisKKyAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHN0cmluZywgTGFu
Y3pvcygpLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAgcmV0dXJuIFdLQ0FDRkxh
eWVyOjpMYW5jem9zOworCisgICAgcmV0dXJuIFdLQ0FDRkxheWVyOjpMaW5lYXI7Cit9CisKK1Bh
c3NSZWZQdHI8V0tDQUNGTGF5ZXI+IFdLQ0FDRkxheWVyOjpjcmVhdGUoTGF5ZXJUeXBlIHR5cGUs
IEdyYXBoaWNzTGF5ZXJDQUNGKiBvd25lcikKK3sKKyAgICBpZiAoIVdLQ0FDRkxheWVyUmVuZGVy
ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXS0NBQ0ZMYXllcih0eXBlLCBvd25lcikpOworfQor
CiAvLyBGSVhNRTogSXQgbWlnaHQgYmUgZ29vZCB0byBoYXZlIGEgd2F5IG9mIGVuc3VyaW5nIHRo
YXQgYWxsIFdLQ0FDRkxheWVycyBldmVudHVhbGx5CiAvLyBnZXQgZGVzdHJveWVkIGluIGRlYnVn
IGJ1aWxkcy4gQSBzdGF0aWMgY291bnRlciBjb3VsZCBhY2NvbXBsaXNoIHRoaXMgcHJldHR5IGVh
c2lseS4KIAotV0tDQUNGTGF5ZXI6OldLQ0FDRkxheWVyKENGU3RyaW5nUmVmIGNsYXNzTmFtZSwg
R3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKQotICAgIDogbV9sYXllcihBZG9wdENGLCBDQUNGTGF5
ZXJDcmVhdGUoY2xhc3NOYW1lKSkKK1dLQ0FDRkxheWVyOjpXS0NBQ0ZMYXllcihMYXllclR5cGUg
dHlwZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKQorICAgIDogbV9sYXllcihBZG9wdENGLCBD
QUNGTGF5ZXJDcmVhdGUodG9DQUNGTGF5ZXJUeXBlKHR5cGUpKSkKICAgICAsIG1fbmVlZHNEaXNw
bGF5T25Cb3VuZHNDaGFuZ2UoZmFsc2UpCiAgICAgLCBtX293bmVyKG93bmVyKQogewpAQCAtMjkx
LDYgKzQyMywzOSBAQCB2b2lkIFdLQ0FDRkxheWVyOjpzZXRGcmFtZShjb25zdCBDR1JlY3QmCiAg
ICAgICAgIHNldE5lZWRzRGlzcGxheSgpOwogfQogCit2b2lkIFdLQ0FDRkxheWVyOjpzZXRDb250
ZW50c0dyYXZpdHkoQ29udGVudHNHcmF2aXR5VHlwZSB0eXBlKQoreworICAgIENBQ0ZMYXllclNl
dENvbnRlbnRzR3Jhdml0eShsYXllcigpLCB0b0NBQ0ZDb250ZW50c0dyYXZpdHlUeXBlKHR5cGUp
KTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCitXS0NBQ0ZMYXllcjo6Q29udGVudHNHcmF2
aXR5VHlwZSBXS0NBQ0ZMYXllcjo6Y29udGVudHNHcmF2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZnJvbUNBQ0ZDb250ZW50c0dyYXZpdHlUeXBlKENBQ0ZMYXllckdldENvbnRlbnRzR3Jhdml0
eShsYXllcigpKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5ZXI6OnNldE1hZ25pZmljYXRpb25GaWx0
ZXIoRmlsdGVyVHlwZSB0eXBlKQoreworICAgIENBQ0ZMYXllclNldE1hZ25pZmljYXRpb25GaWx0
ZXIobGF5ZXIoKSwgdG9DQUNGRmlsdGVyVHlwZSh0eXBlKSk7CisgICAgc2V0TmVlZHNDb21taXQo
KTsKK30KKworV0tDQUNGTGF5ZXI6OkZpbHRlclR5cGUgV0tDQUNGTGF5ZXI6Om1hZ25pZmljYXRp
b25GaWx0ZXIoKSBjb25zdAoreworICAgIHJldHVybiBmcm9tQ0FDRkZpbHRlclR5cGUoQ0FDRkxh
eWVyR2V0TWFnbmlmaWNhdGlvbkZpbHRlcihsYXllcigpKSk7Cit9CisKK3ZvaWQgV0tDQUNGTGF5
ZXI6OnNldE1pbmlmaWNhdGlvbkZpbHRlcihGaWx0ZXJUeXBlIHR5cGUpCit7CisgICAgQ0FDRkxh
eWVyU2V0TWluaWZpY2F0aW9uRmlsdGVyKGxheWVyKCksIHRvQ0FDRkZpbHRlclR5cGUodHlwZSkp
OworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK1dLQ0FDRkxheWVyOjpGaWx0ZXJUeXBlIFdL
Q0FDRkxheWVyOjptaW5pZmljYXRpb25GaWx0ZXIoKSBjb25zdAoreworICAgIHJldHVybiBmcm9t
Q0FDRkZpbHRlclR5cGUoQ0FDRkxheWVyR2V0TWluaWZpY2F0aW9uRmlsdGVyKGxheWVyKCkpKTsK
K30KKwogV0tDQUNGTGF5ZXIqIFdLQ0FDRkxheWVyOjpyb290TGF5ZXIoKSBjb25zdAogewogICAg
IFdLQ0FDRkxheWVyKiBsYXllciA9IGNvbnN0X2Nhc3Q8V0tDQUNGTGF5ZXIqPih0aGlzKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXIuaAkocmV2aXNp
b24gNTE5NTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCwxMiBAQCBjbGFzcyBXS0NBQ0ZUaW1pbmdGdW5j
dGlvbjsKIAogY2xhc3MgV0tDQUNGTGF5ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXS0NBQ0ZMYXll
cj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdLQ0FDRkxheWVyPiBjcmVhdGUo
Q0ZTdHJpbmdSZWYgY2xhc3NOYW1lLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXIgPSAwKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgV0tDQUNGTGF5ZXIoY2xhc3NOYW1lLCBvd25lcikpOyB9CisgICAg
ZW51bSBMYXllclR5cGUgeyBMYXllciwgVHJhbnNmb3JtTGF5ZXIgfTsKKyAgICBlbnVtIEZpbHRl
clR5cGUgeyBMaW5lYXIsIE5lYXJlc3QsIFRyaWxpbmVhciwgTGFuY3pvcyB9OworICAgIGVudW0g
Q29udGVudHNHcmF2aXR5VHlwZSB7IENlbnRlciwgVG9wLCBCb3R0b20sIExlZnQsIFJpZ2h0LCBU
b3BMZWZ0LCBUb3BSaWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm90dG9t
TGVmdCwgQm90dG9tUmlnaHQsIFJlc2l6ZSwgUmVzaXplQXNwZWN0LCBSZXNpemVBc3BlY3RGaWxs
IH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXS0NBQ0ZMYXllcj4gY3JlYXRlKExheWVyVHlw
ZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyID0gMCk7CiAgICAgc3RhdGljIFdLQ0FDRkxheWVy
KiBsYXllcihDQUNGTGF5ZXJSZWYgbGF5ZXIpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFdLQ0FDRkxh
eWVyKj4oQ0FDRkxheWVyR2V0VXNlckRhdGEobGF5ZXIpKTsgfQogCiAgICAgfldLQ0FDRkxheWVy
KCk7CkBAIC0xNDIsOCArMTQ3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudHNSZWN0
KGNvbnN0IENHUmVjdCYgY29udGVudHNSZWN0KSB7IENBQ0ZMYXllclNldENvbnRlbnRzUmVjdChs
YXllcigpLCBjb250ZW50c1JlY3QpOyBzZXROZWVkc0NvbW1pdCgpOyB9CiAgICAgQ0dSZWN0IGNv
bnRlbnRzUmVjdCgpIGNvbnN0IHsgcmV0dXJuIENBQ0ZMYXllckdldENvbnRlbnRzUmVjdChsYXll
cigpKTsgfQogCi0gICAgdm9pZCBzZXRDb250ZW50c0dyYXZpdHkoQ0ZTdHJpbmdSZWYgc3RyKSB7
IENBQ0ZMYXllclNldENvbnRlbnRzR3Jhdml0eShsYXllcigpLCBzdHIpOyBzZXROZWVkc0NvbW1p
dCgpOyB9Ci0gICAgQ0ZTdHJpbmdSZWYgY29udGVudHNHcmF2aXR5KCkgY29uc3QgeyByZXR1cm4g
Q0FDRkxheWVyR2V0Q29udGVudHNHcmF2aXR5KGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRDb250
ZW50c0dyYXZpdHkoQ29udGVudHNHcmF2aXR5VHlwZSk7CisgICAgQ29udGVudHNHcmF2aXR5VHlw
ZSBjb250ZW50c0dyYXZpdHkoKSBjb25zdDsKICAgICAgICAgCiAgICAgdm9pZCBzZXREb3VibGVT
aWRlZChib29sIGIpIHsgQ0FDRkxheWVyU2V0RG91YmxlU2lkZWQobGF5ZXIoKSwgYik7IHNldE5l
ZWRzQ29tbWl0KCk7IH0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4gQ0FD
RkxheWVySXNEb3VibGVTaWRlZChsYXllcigpKTsgfQpAQCAtMTYzLDExICsxNjgsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TWFza3NUb0JvdW5kcyhib29sIGIpIHsgQ0FDRkxheWVyU2V0TWFz
a3NUb0JvdW5kcyhsYXllcigpLCBiKTsgfQogICAgIGJvb2wgbWFza3NUb0JvdW5kcygpIGNvbnN0
IHsgcmV0dXJuIENBQ0ZMYXllckdldE1hc2tzVG9Cb3VuZHMobGF5ZXIoKSk7IH0KIAotICAgIHZv
aWQgc2V0TWFnbmlmaWNhdGlvbkZpbHRlcihjb25zdCBTdHJpbmcmIHN0cmluZykgeyBDQUNGTGF5
ZXJTZXRNYWduaWZpY2F0aW9uRmlsdGVyKGxheWVyKCksIFJldGFpblB0cjxDRlN0cmluZ1JlZj4o
QWRvcHRDRiwgc3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkpLmdldCgpKTsgfQotICAgIFN0cmluZyBt
YWduaWZpY2F0aW9uRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0TWFnbmlmaWNh
dGlvbkZpbHRlcihsYXllcigpKTsgfQorICAgIHZvaWQgc2V0TWFnbmlmaWNhdGlvbkZpbHRlcihG
aWx0ZXJUeXBlKTsKKyAgICBGaWx0ZXJUeXBlIG1hZ25pZmljYXRpb25GaWx0ZXIoKSBjb25zdDsK
IAotICAgIHZvaWQgc2V0TWluaWZpY2F0aW9uRmlsdGVyKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7
IENBQ0ZMYXllclNldE1pbmlmaWNhdGlvbkZpbHRlcihsYXllcigpLCBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+KEFkb3B0Q0YsIHN0cmluZy5jcmVhdGVDRlN0cmluZygpKS5nZXQoKSk7IH0KLSAgICBT
dHJpbmcgbWluaWZpY2F0aW9uRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0TWlu
aWZpY2F0aW9uRmlsdGVyKGxheWVyKCkpOyB9CisgICAgdm9pZCBzZXRNaW5pZmljYXRpb25GaWx0
ZXIoRmlsdGVyVHlwZSk7CisgICAgRmlsdGVyVHlwZSBtaW5pZmljYXRpb25GaWx0ZXIoKSBjb25z
dDsKIAogICAgIHZvaWQgc2V0TWluaWZpY2F0aW9uRmlsdGVyQmlhcyhmbG9hdCBiaWFzKSB7IENB
Q0ZMYXllclNldE1pbmlmaWNhdGlvbkZpbHRlckJpYXMobGF5ZXIoKSwgYmlhcyk7IH0KICAgICBm
bG9hdCBtaW5pZmljYXRpb25GaWx0ZXJCaWFzKCkgY29uc3QgeyByZXR1cm4gQ0FDRkxheWVyR2V0
TWluaWZpY2F0aW9uRmlsdGVyQmlhcyhsYXllcigpKTsgfQpAQCAtMjE4LDkgKzIyMyw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEdlb21ldHJ5RmxpcHBlZChib29sIGZsaXBwZWQpIHsgQ0FDRkxh
eWVyU2V0R2VvbWV0cnlGbGlwcGVkKGxheWVyKCksIGZsaXBwZWQpOyBzZXROZWVkc0NvbW1pdCgp
OyB9CiAgICAgYm9vbCBnZW9tZXRyeUZsaXBwZWQoKSBjb25zdCB7IHJldHVybiBDQUNGTGF5ZXJJ
c0dlb21ldHJ5RmxpcHBlZChsYXllcigpKTsgfQogCi0gICAgV0tDQUNGTGF5ZXIoQ0ZTdHJpbmdS
ZWYgY2xhc3NOYW1lLCBHcmFwaGljc0xheWVyQ0FDRiogb3duZXIpOwotCiBwcml2YXRlOgorICAg
IFdLQ0FDRkxheWVyKExheWVyVHlwZSwgR3JhcGhpY3NMYXllckNBQ0YqIG93bmVyKTsKKwogICAg
IHZvaWQgc2V0TmVlZHNDb21taXQoKTsKICAgICBDQUNGTGF5ZXJSZWYgbGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAgICAgc2l6ZV90IG51bVN1YmxheWVycygpIGNvbnN0
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZM
YXllclJlbmRlcmVyLmNwcAkocmV2aXNpb24gNTE5NTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
MTUgKzM0LDE2IEBACiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHU1JlZ2lvbi5oPgogI2luY2x1
ZGUgPFF1YXJ0ekNvcmUvQ0FDRkNvbnRleHQuaD4KICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBUmVu
ZGVyT0dMLmg+CisjaW5jbHVkZSA8UXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJm
YWNlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KICNpbmNsdWRlIDxkM2Q5Lmg+CiAjaW5jbHVkZSA8ZDNkeDkuaD4KICNpbmNsdWRlIDxk
eGVycjkuaD4KIAotI3ByYWdtYSBjb21tZW50KGxpYiwgImQzZDkiKQ0KLSNwcmFnbWEgY29tbWVu
dChsaWIsICJkM2R4OSIpDQotI3ByYWdtYSBjb21tZW50KGxpYiwgIlF1YXJ0ekNvcmUiKQ0KKyNw
cmFnbWEgY29tbWVudChsaWIsICJkM2Q5IikKKyNwcmFnbWEgY29tbWVudChsaWIsICJkM2R4OSIp
CisjcHJhZ21hIGNvbW1lbnQobGliLCAiUXVhcnR6Q29yZSIpCiAKIHN0YXRpYyBJRGlyZWN0M0Q5
KiBzX2QzZCA9IDA7CiBzdGF0aWMgSURpcmVjdDNEOSogZDNkKCkKQEAgLTkwLDI5ICs5MSwyOSBA
QCBzdGF0aWMgRDNEUFJFU0VOVF9QQVJBTUVURVJTIGluaXRpYWxQcmVzCiAgICAgcmV0dXJuIHBh
cmFtZXRlcnM7CiB9CiAKLWJvb2wgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6YWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0F2YWlsYWJsZSgpDQotew0KLSAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGU7DQotICAg
IHN0YXRpYyBib29sIHRlc3RlZDsNCi0NCi0gICAgaWYgKHRlc3RlZCkNCi0gICAgICAgIHJldHVy
biBhdmFpbGFibGU7DQotDQotICAgIHRlc3RlZCA9IHRydWU7DQotICAgIEhNT0RVTEUgbGlicmFy
eSA9IExvYWRMaWJyYXJ5KFRFWFQoImQzZDkuZGxsIikpOw0KLSAgICBpZiAoIWxpYnJhcnkpDQot
ICAgICAgICByZXR1cm4gZmFsc2U7DQotDQotICAgIEZyZWVMaWJyYXJ5KGxpYnJhcnkpOw0KLSAg
ICBsaWJyYXJ5ID0gTG9hZExpYnJhcnkoVEVYVCgiUXVhcnR6Q29yZS5kbGwiKSk7DQotICAgIGlm
ICghbGlicmFyeSkNCi0gICAgICAgIHJldHVybiBmYWxzZTsNCi0NCi0gICAgRnJlZUxpYnJhcnko
bGlicmFyeSk7DQotICAgIGF2YWlsYWJsZSA9IHRydWU7DQotICAgIHJldHVybiBhdmFpbGFibGU7
DQotfQ0KLQ0KK2Jvb2wgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0F2YWlsYWJsZSgpCit7CisgICAgc3RhdGljIGJvb2wgYXZhaWxhYmxlOworICAgIHN0YXRpYyBi
b29sIHRlc3RlZDsKKworICAgIGlmICh0ZXN0ZWQpCisgICAgICAgIHJldHVybiBhdmFpbGFibGU7
CisKKyAgICB0ZXN0ZWQgPSB0cnVlOworICAgIEhNT0RVTEUgbGlicmFyeSA9IExvYWRMaWJyYXJ5
KFRFWFQoImQzZDkuZGxsIikpOworICAgIGlmICghbGlicmFyeSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRnJlZUxpYnJhcnkobGlicmFyeSk7CisgICAgbGlicmFyeSA9IExvYWRMaWJy
YXJ5KFRFWFQoIlF1YXJ0ekNvcmUuZGxsIikpOworICAgIGlmICghbGlicmFyeSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgRnJlZUxpYnJhcnkobGlicmFyeSk7CisgICAgYXZhaWxhYmxl
ID0gdHJ1ZTsKKyAgICByZXR1cm4gYXZhaWxhYmxlOworfQorCiB2b2lkIFdLQ0FDRkxheWVyUmVu
ZGVyZXI6OmRpZEZsdXNoQ29udGV4dChDQUNGQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIFdL
Q0FDRkxheWVyUmVuZGVyZXIqIHdpbmRvdyA9IHdpbmRvd3NGb3JDb250ZXh0cygpLmdldChjb250
ZXh0KTsKQEAgLTIyNSwxMSArMjI2LDExIEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6Y3Jl
YXRlUmVuZGVyZXIKICAgICB3aW5kb3dzRm9yQ29udGV4dHMoKS5zZXQobV9jb250ZXh0LmdldCgp
LCB0aGlzKTsKIAogICAgIG1fcmVuZGVyQ29udGV4dCA9IHN0YXRpY19jYXN0PENBUmVuZGVyQ29u
dGV4dCo+KENBQ0ZDb250ZXh0R2V0UmVuZGVyQ29udGV4dChtX2NvbnRleHQuZ2V0KCkpKTsKLSAg
ICBtX3JlbmRlcmVyID0gQ0FSZW5kZXJPR0xOZXcoJmtDQVJlbmRlckRYOUNhbGxiYWNrcywgbV9k
M2REZXZpY2UuZ2V0KCksIDApOworICAgIG1fcmVuZGVyZXIgPSBDQVJlbmRlck9HTE5ldyh3a3Fj
Q0FSZW5kZXJPR0xDYWxsYmFja3Mod2txY2tDQVJlbmRlckRYOUNhbGxiYWNrcyksIG1fZDNkRGV2
aWNlLmdldCgpLCAwKTsKIAogICAgIC8vIENyZWF0ZSB0aGUgcm9vdCBoaWVyYXJjaHkKLSAgICBt
X3Jvb3RMYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllcik7Ci0gICAgbV9zY3Jv
bGxMYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoa0NBQ0ZMYXllcik7CisgICAgbV9yb290TGF5
ZXIgPSBXS0NBQ0ZMYXllcjo6Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllcik7CisgICAgbV9zY3Jv
bGxMYXllciA9IFdLQ0FDRkxheWVyOjpjcmVhdGUoV0tDQUNGTGF5ZXI6OkxheWVyKTsKIAogICAg
IG1fcm9vdExheWVyLT5hZGRTdWJsYXllcihtX3Njcm9sbExheWVyKTsKICAgICBtX3Njcm9sbExh
eWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxOTUxKQorKysg
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAw
OS0xMi0xMCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsYXkgbG9hZCBETExzIGZvciBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzE4NTYKKyAgICAgICAgCisgICAgICAgIElmIHRoZSBETExzIChkM2Q5
IGFuZCBRdWFydHpDb3JlKS4gYXJlIG5vdCBwcmVzZW50IGl0CisgICAgICAgIHR1cm5zIG9mZiBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZyBhbmQgYXZvaWRzIGNhbGxpbmcgCisgICAgICAgIGFueSBv
ZiB0aGUgZnVuY3Rpb25zIGluIHRoZSBETExzLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDA5LTEyLTA5
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZlcnQg
aW5jb3JyZWN0IGNvbW1pdC1ib3ggdXBkYXRlIHI1MTkxMS4KSW5kZXg6IFdlYktpdC93aW4vV2Vi
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24g
NTE5NTEpCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTA0
LDYgKzQ1MDQsMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQog
ICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbkFsbG93ZWRSdW5UaW1l
KHJ1blRpbWUpOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHNldHRp
bmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChXS0NBQ0ZMYXllclJlbmRlcmVy
OjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpOworI2VuZGlmCisKICNpZiBFTkFC
TEUoM0RfQ0FOVkFTKQogICAgIHNldHRpbmdzLT5zZXRFeHBlcmltZW50YWxXZWJHTEVuYWJsZWQo
dHJ1ZSk7CiAjZW5kaWYgIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJLaXRMaWJyYXJp
ZXMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDUxOTUxKQorKysgV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTEyLTEwICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgUXVhcnR6Q29yZSBidWlsZCBmaWxlcyB0byBPcGVuU291cmNlIHRyZWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODU2CisgICAgICAgIAor
ICAgICAgICBUaGlzIGFsbG93cyBwcm9wZXIgYnVpbGRpbmcgYW5kIGxpbmtpbmcgd2l0aCBRdWFy
dHpDb3JlCisgICAgICAgIHdoZW4gcHJlc2VudC4KKworICAgICAgICAqIHdpbi9iaW46IEFkZGVk
LgorICAgICAgICAqIHdpbi9iaW4vUXVhcnR6Q29yZUludGVyZmFjZS5kbGw6IEFkZGVkLgorICAg
ICAgICAqIHdpbi9pbmNsdWRlL1F1YXJ0ekNvcmVJbnRlcmZhY2U6IEFkZGVkLgorICAgICAgICAq
IHdpbi9pbmNsdWRlL1F1YXJ0ekNvcmVJbnRlcmZhY2UvUXVhcnR6Q29yZUludGVyZmFjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3aW4vbGliL1F1YXJ0ekNvcmVJbnRlcmZhY2UubGliOiBBZGRlZC4K
KwogMjAwOS0xMi0wNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2luZG93cyBidWlsZCBmaXggZm9yIGNoZWNrb3V0cyB3aXRoIGEgc3BhY2UgaW4gdGhlIHBhdGgK
SW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vaW5jbHVkZS9RdWFydHpDb3JlSW50ZXJmYWNlL1F1
YXJ0ekNvcmVJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL2lu
Y2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZS9RdWFydHpDb3JlSW50ZXJmYWNlLmgJKHJldmlzaW9u
IDApCisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL2luY2x1ZGUvUXVhcnR6Q29yZUludGVyZmFjZS9R
dWFydHpDb3JlSW50ZXJmYWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICov
CisKKyNpZm5kZWYgUXVhcnR6Q29yZUludGVyZmFjZV9oCisjZGVmaW5lIFF1YXJ0ekNvcmVJbnRl
cmZhY2VfaAorCisjaWZkZWYgUVVBUlRaQ09SRUlOVEVSRkFDRV9FWFBPUlRTCisjZGVmaW5lIFFV
QVJUWkNPUkVJTlRFUkZBQ0VfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorI2Vsc2UKKyNkZWZp
bmUgUVVBUlRaQ09SRUlOVEVSRkFDRV9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZW5kaWYK
KworLy8gSW50ZXJmYWNlIHRvIGdpdmUgYWNjZXNzIHRvIFF1YXJ0ekNvcmUgZGF0YSBzeW1ib2xz
LgorZW51bSBXS1FDU3RyaW5nUmVmVHlwZSB7IHdrcWNrQ0FDRkxheWVyLCB3a3Fja0NBQ0ZUcmFu
c2Zvcm1MYXllciwgd2txY2tDQUNGRmlsdGVyTGluZWFyLCB3a3Fja0NBQ0ZGaWx0ZXJOZWFyZXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdrcWNrQ0FDRkZpbHRlclRyaWxpbmVhciwgd2tx
Y2tDQUNGRmlsdGVyTGFuY3pvcywgd2txY2tDQUNGR3Jhdml0eUNlbnRlciwgd2txY2tDQUNGR3Jh
dml0eVRvcCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgd2txY2tDQUNGR3Jhdml0eUJvdHRv
bSwgd2txY2tDQUNGR3Jhdml0eUxlZnQsIHdrcWNrQ0FDRkdyYXZpdHlSaWdodCwgd2txY2tDQUNG
R3Jhdml0eVRvcExlZnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIHdrcWNrQ0FDRkdyYXZp
dHlUb3BSaWdodCwgd2txY2tDQUNGR3Jhdml0eUJvdHRvbUxlZnQsIHdrcWNrQ0FDRkdyYXZpdHlC
b3R0b21SaWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgd2txY2tDQUNGR3Jhdml0eVJl
c2l6ZSwgd2txY2tDQUNGR3Jhdml0eVJlc2l6ZUFzcGVjdCwgd2txY2tDQUNGR3Jhdml0eVJlc2l6
ZUFzcGVjdEZpbGwgfTsKKworZW51bSBXS1FDQ0FSZW5kZXJPR0xDYWxsYmFja3NUeXBlIHsgd2tx
Y2tDQVJlbmRlckRYOUNhbGxiYWNrcyB9OworCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGU3Ry
aW5nICogQ0ZTdHJpbmdSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0FSZW5kZXJPR0xDYWxsYmFja3Mg
Q0FSZW5kZXJPR0xDYWxsYmFja3M7Cit0eXBlZGVmIHN0cnVjdCBDQVRyYW5zZm9ybTNEIENBVHJh
bnNmb3JtM0Q7CisKK2V4dGVybiAiQyIgeworUVVBUlRaQ09SRUlOVEVSRkFDRV9BUEkgQ0ZTdHJp
bmdSZWYgd2txY0NGU3RyaW5nUmVmKFdLUUNTdHJpbmdSZWZUeXBlKTsKK1FVQVJUWkNPUkVJTlRF
UkZBQ0VfQVBJIGNvbnN0IENBUmVuZGVyT0dMQ2FsbGJhY2tzKiB3a3FjQ0FSZW5kZXJPR0xDYWxs
YmFja3MoV0tRQ0NBUmVuZGVyT0dMQ2FsbGJhY2tzVHlwZSk7CitRVUFSVFpDT1JFSU5URVJGQUNF
X0FQSSBjb25zdCBDQVRyYW5zZm9ybTNEJiB3a3FjQ0FUcmFuc2Zvcm0zRElkZW50aXR5KCk7Cit9
CisKKyNlbmRpZiAvLyBRdWFydHpDb3JlSW50ZXJmYWNlX2gKSW5kZXg6IFdlYktpdExpYnJhcmll
cy93aW4vYmluL1F1YXJ0ekNvcmVJbnRlcmZhY2UuZGxsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3Bs
YXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdExpYnJhcmllcy93
aW4vYmluL1F1YXJ0ekNvcmVJbnRlcmZhY2UuZGxsCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVj
dXRhYmxlCiAgICsgKgpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKClRWcVFBQU1BQUFBRUFBQUEvLzhBQUxnQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQStBQUFBQTRmdWc0QXRBbk5JYmdCVE0w
aFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdgpaR1V1RFEw
S0pBQUFBQUFBQUFDa1hXa1Y0RHdIUnVBOEIwYmdQQWRHeC9wNlJ1RThCMGJIK21wRzdqd0hSaU16
V2tiaVBBZEd4L3A4ClJ1VThCMGJnUEFaR29Ud0hSc2Y2YVViblBBZEd4L3A5UnVFOEIwYkgrbnRH
NFR3SFJzZjZmMGJoUEFkR1VtbGphT0E4QjBZQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFCUVJRQUFUQUVHQVBaUElVc0FBQUFBQUFBQUFPQUFBaUVMQVFnQUFDd0FBQUJBQUFBQQpBQUFB
V1JVQUFBQVFBQUFBUUFBQUFBQUFFQUFRQUFBQUFnQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFBQ2dB
QUFBQkFBQUFBQUFBQUlBClFBQUFBQkFBQUJBQUFBQUFFQUFBRUFBQUFBQUFBQkFBQUFDZ1dRQUF3
UUVBQUFCd0FBQlFBQUFBQUlBQUFBa01BQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUpBQUFLUUNB
QUFnUlFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIaE1BQUJBQUFBQQpB
QUFBQUFBQUFBQUljZ0FBdUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUM1MFpY
aDBBQUFBWHlvQUFBQVFBQUFBCkxBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBR0F1Y21SaGRH
RUFBR0ViQUFBQVFBQUFBQndBQUFBd0FBQUFBQUFBQUFBQUFBQUEKQUFCQUFBQkFMbVJoZEdFQUFB
RGtCQUFBQUdBQUFBQUNBQUFBVEFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1cFpHRjBZUUFBYmdv
QQpBQUJ3QUFBQURBQUFBRTRBQUFBQUFBQUFBQUFBQUFBQUFFQUFBTUF1Y25OeVl3QUFBQWtNQUFB
QWdBQUFBQTRBQUFCYUFBQUFBQUFBCkFBQUFBQUFBQUFCQUFBQkFMbkpsYkc5akFBQjNBd0FBQUpB
QUFBQUVBQUFBYUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUWdBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTXpNCnpNek02VllCQUFEcElRQUFBT2w4QVFBQXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpGV0w3RkhIUmZ6TXpNek0KaTBVSWlVWDhn
MzM4RVErSHh3QUFBSXROL1A4a2pSZ1JBQkNMRlR4ekFCQ0xBdW15QUFBQW9VQnpBQkNMQU9tbUFB
QUFpdzFFY3dBUQppd0hwbVFBQUFJc1ZTSE1BRUlzQzZZd0FBQUNoVEhNQUVJc0E2WUFBQUFDTERW
QnpBQkNMQWV0Mml4VlVjd0FRaXdMcmJLRlljd0FRCml3RHJZNHNOWEhNQUVJc0I2MW1MRldCekFC
Q0xBdXRQb1dSekFCQ0xBT3RHaXcxb2N3QVFpd0hyUElzVmJITUFFSXNDNnpLaGNITUEKRUlzQTZ5
bUxEWFJ6QUJDTEFlc2ZpeFY0Y3dBUWl3THJGYUY4Y3dBUWl3RHJESXNOZ0hNQUVJc0I2d0l6d0l2
bFhjTlZFQUFRWWhBQQpFRzRRQUJCN0VBQVFpQkFBRUpRUUFCQ2VFQUFRcUJBQUVMRVFBQkM3RUFB
UXhSQUFFTTRRQUJEWUVBQVE0aEFBRU9zUUFCRDFFQUFRCi94QUFFQWdSQUJCVmkreFJ4MFg4ek16
TXpJdEZDSWxGL0lOOS9BQjBBdXNIb1RoekFCRHJBalBBaStWZHc4ek16TXpNek16TXpNeFYKaSt5
aE5ITUFFRjNEek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TU04QTRCVkJoQUJCMUcxQnFBVkJRClVNWUZVR0VBRUFIbzJnTUFBRkRv
c0FNQUFJUEVHTU5xQVRQQWFnRlFVRkRvd2dNQUFJUEVGTU5rb1JnQUFBRERWbWlBQUFBQS94WDQK
Y2dBUWkvQlcveFh3Y2dBUWhmWlpXYVBVWkFBUW84UmtBQkIxQlRQQVFGN0RneVlBNkU0RUFBQm8x
eFlBRU9neUJBQUF4d1FrOEJVQQpFT2dtQkFBQVdUUEFYc09MUkNRSVZUUHRPOFYxRGprdFZHRUFF
SDQ2L3cxVVlRQVFnL2dCaXcyOGNnQVFpd2xUVmxlSkRhUmtBQkFQCmhkUUFBQUJrb1JnQUFBQ0xj
QVNMSFdoeUFCQ0piQ1FZdjhCa0FCRHJGalBBNldzQkFBQTd4blFXYU9nREFBRC9GV3h5QUJCVlZs
Zi8KMHp2RmRlanJDTWRFSkJnQkFBQUFvYkJrQUJDRndHb0NYblFKYWgvb1h3VUFBT3M4YUJCRUFC
Qm9DRUlBRU1jRnNHUUFFQUVBQUFEbwpQZ1VBQUlYQVdWbDBCelBBNlFzQkFBQm9CRUVBRUdnQVFB
QVE2QndGQUFCWmlUV3daQUFRT1d3a0hGbDFDRlZYL3hWd2NnQVFPUzNZClpBQVFkQjVvMkdRQUVP
ZzRCQUFBaGNCWmRBLy9kQ1FjVnY5MEpCei9GZGhrQUJEL0JWUmhBQkRwc2dBQUFEdkZENFdxQUFB
QWl6Vm8KY2dBUXY4QmtBQkRyQzJqb0F3QUEveFZzY2dBUVZXb0JWLy9XaGNCMTY2R3daQUFRZy9n
Q2RBcHFIK2ltQkFBQVdldDAvelhVWkFBUQppeDNrY2dBUS85T0w2SVh0V1hSTS96WEVaQUFRLzlO
WmkvRHJJSU0rQUhRYml3YUpSQ1FZL3hYb2NnQVFPVVFrR0hRSi8zUWtHUC9UCldmL1FnKzRFTy9W
ejJWWC9GZXh5QUJCWi94WG9jZ0FRbzhSa0FCQ2oxR1FBRUdvQVY4Y0ZzR1FBRUFBQUFBRC9GWEJ5
QUJBendFQmYKWGx0ZHdnd0FhaEJvMEZjQUVPaEZCQUFBaS9tTDhvdGRDRFBBUUlsRjVEUEppVTM4
aVRVQVlBQVFpVVg4Ty9GMUVEa05WR0VBRUhVSQppVTNrNmJjQUFBQTc4SFFGZy80Q2RTNmhQRVVB
RUR2QmRBaFhWbFAvMElsRjVJTjk1QUFQaEpNQUFBQlhWbFBvMXYzLy80bEY1SVhBCkQ0U0FBQUFB
VjFaVDZMY0RBQUNKUmVTRC9nRjFKSVhBZFNCWFVGUG9vd01BQUZkcUFGUG9wdjMvLzZFOFJRQVFo
Y0IwQmxkcUFGUC8KMElYMmRBV0QvZ04xUTFkV1UraUcvZi8vaGNCMUF5RkY1SU45NUFCMExxRThS
UUFRaGNCMEpWZFdVLy9RaVVYazZ4dUxSZXlMQ0lzSgppVTNnVUZIb1F3TUFBRmxadzR0bDZJTmw1
QUNEWmZ3QXgwWDgvdi8vLytnSkFBQUFpMFhrNkl3REFBRER4d1VBWUFBUS8vLy8vOE9ECmZDUUlB
WFVGNktzREFBRC9kQ1FFaTB3a0VJdFVKQXpvemY3Ly8xbkNEQUJxQlZqRGkwUWtCSVA0QkhjSWl3
U0Y3RVVBRU1NendNT0wKUkNRRWcvZ0VkeENMVkNRSWpReUZDR0FBRUlzQmlSSERnOGovdzR0TUpB
U2hXR0VBRUlNbFhHRUFFQUNKRFZoaEFCRERpMHdrQktGYwpZUUFRZ3lWWVlRQVFBSWtOWEdFQUVN
T2hXR0VBRU1PaFhHRUFFTVBNL3lYMGNnQVFhR1JoQUJEbzRBa0FBRm5EYWhSbytGY0FFT2lNCkFn
QUEvelhVWkFBUWl6WGtjZ0FRLzlaWmlVWGtnL2ovZFF6L2RRai9GZFJ5QUJCWjYyZHFDT2k2Q1FB
QVdZTmwvQUQvTmRSa0FCRC8KMW9sRjVQODF4R1FBRVAvV1dWbUpSZUNOUmVCUWpVWGtVUDkxQ0lz
MThISUFFUC9XV1ZEb2ZRa0FBSWxGM1A5MTVQL1dvOVJrQUJELwpkZUQvMW9QRUZLUEVaQUFReDBY
OC92Ly8vK2dKQUFBQWkwWGM2RUlDQUFERGFnam9RUWtBQUZuRC8zUWtCT2hTLy8vLzk5Z2J3UGZZ
CldVakRWbGU0dUZFQUVMKzhVd0FRTzhlTDhITVBpd2FGd0hRQy85Q0R4Z1E3OTNMeFgxN0RWbGU0
eEZRQUVML0lWZ0FRTzhlTDhITVAKaXdhRndIUUMvOUNEeGdRNzkzTHhYMTdEelA4bDhISUFFUDhs
K0hJQUVQOGw3SElBRVA4bDZISUFFUDhsNUhJQUVNek16TXpNekl0TQpKQVJtZ1RsTlduUURNOERE
aTBFOEE4R0JPRkJGQUFCMThEUEpab0Y0R0FzQkQ1VEJpOEhEek16TXpNek16SXRFSkFTTFNEd0R5
QSszClFSUlRWZyszY1FZejBvWDJWNDFFQ0JoMkhvdDhKQlNMU0F3NytYSUppMWdJQTlrNyszSU1n
OElCZzhBb085Wnk1alBBWDE1Ync4ek0Kek16TXpNek16TXpNek16TVZZdnNhdjVvR0ZnQUVHanRH
QUFRWktFQUFBQUFVSVBzQ0ZOV1Y2RTBZQUFRTVVYNE04VlFqVVh3WktNQQpBQUFBaVdYb3gwWDhB
QUFBQUdnQUFBQVE2RHovLy8rRHhBU0Z3SFJWaTBVSUxRQUFBQkJRYUFBQUFCRG9Vdi8vLzRQRUNJ
WEFkRHVMClFDVEI2Qi8zMElQZ0FjZEYvUDcvLy8rTFRmQmtpUTBBQUFBQVdWOWVXNHZsWGNPTFJl
eUxDSXNCTTlJOUJRQUF3QStVd292Q3c0dGwKNk1kRi9QNy8vLzh6d0l0TjhHU0pEUUFBQUFCWlgx
NWJpK1Zkdzh6L0plQnlBQkQvSmJSeUFCRC9KYmh5QUJEL0pjQnlBQkNEZkNRSQpBWFVUZ3owOFJR
QVFBSFVLLzNRa0JQOFZaSElBRURQQVFNSU1BR2p0R0FBUVpQODFBQUFBQUl0RUpCQ0piQ1FRald3
a0VDdmdVMVpYCm9UUmdBQkF4UmZ3enhWQ0paZWovZGZpTFJmekhSZnorLy8vL2lVWDRqVVh3WktN
QUFBQUF3NHROOEdTSkRRQUFBQUJaWDE5ZVc0dmwKWFZIRC8zUWtFUDkwSkJEL2RDUVEvM1FrRUdq
eUh3QVFhRFJnQUJEbzlnWUFBSVBFR01OVmkreUQ3QkNoTkdBQUVJTmwrQUNEWmZ3QQpVMWUvVHVa
QXV6dkh1d0FBLy85MERZWERkQW4zMEtNNFlBQVE2MkJXalVYNFVQOFZVSElBRUl0MS9ETjErUDhW
VkhJQUVEUHcveFZnCmNnQVFNL0QvRlZoeUFCQXo4STFGOEZEL0ZWeHlBQkNMUmZRelJmQXo4RHYz
ZFFlK1QrWkF1K3NMaGZOMUI0dkd3ZUFRQy9DSk5UUmcKQUJEMzFvazFPR0FBRUY1Zlc4bkRhaVJv
T0ZnQUVPamsvdi8vTThDSVJlZkhSY3dCRUFBQWlVM1FqVTNuaVUzVWlVWDhqVTNNVVdvRwpVR2lJ
RTIxQS94Vk1jZ0FRNndlRHlQL0RpMlhveDBYOC92Ly8vdysyUmVmbzV2Ny8vOE5xSkdoWVdBQVE2
SlQrLy84endJaEY1OGRGCnpBSVFBQUNKVGRDTFRRaUpUZFNMVFF5SlRkaU5UZWVKVGR5TFRSQ0pU
ZUNKUmZ5TlRjeFJhZ1pRYUlnVGJVRC9GVXh5QUJEckI0UEkKLzhPTFplakhSZnorLy8vL0Q3WkY1
K2lFL3YvL3c3a0VFQUFBNlVULy8vOVZqYXdrUlBMLy80SHNQQTRBQUtFMFlBQVFNOFdKaGJnTgpB
QUJUVm92eFY0djZNOXRXaVhXSWlYMkFpVjJFNkZENy8vODd3MW1KUll4MUNsYm9QUHYvLzFtSlJZ
UlRVMnIvVjRzOVBISUFFRk8rCjZmMEFBRmIvMXowQUFnQUFjeFZRalVXUVVHci8vM1dBVTFiLzE0
WEFqWDJRZFFXL3lFa0FFTGtDRUFBQTZNRCsvLytGd0hRbGk0M0kKRFFBQVYvOTFpUDgwamJoSUFC
RG85djcvLzRQRURJWEFENFV0QVFBQU1zRHJBckFCT1YyRWRRazVYWXdQaEJNQkFBQTZ3M1FPL3hW
QQpjZ0FRaGNBUGhRRUJBQUM0QkFFQUFGQ05qYWdKQUFCUmpVMklVVkNOaGJBTEFBQlFpMFdJZzhE
N1VPZ0xCZ0FBZzhRWU9WMk1kQ3RYCi83WElEUUFBallXb0NRQUFhSWhKQUJCUS8zV0lqWVd3Q3dB
QVVQKzF4QTBBQVA5VmpPbWhBQUFBaXoxRWNnQVFVMU5UVTJyL2pZV3cKQ3dBQVVGTlcvOWM3dzNR
bVUxTlFqWVdRQXdBQVVHci9qWVd3Q3dBQVVGTlcvOWVGd0hRTGpZV1FBd0FBaVVXTTZ3ZkhSWXh3
U1FBUQpVMU5UVTJyL2pZV29DUUFBVUZOVy85Yzd3M1FoVTFOUWpZV2dCd0FBVUdyL2pZV29DUUFB
VUZOVy85ZUZ3STJGb0FjQUFIVUZ1RnhKCkFCRC9kWUQvdGNnTkFBQm9QRWtBRUZEL2RZai9kWXov
dGNRTkFBRC9WWVNEeEJ5RCtBRjFCdjhWU0hJQUVJdU51QTBBQUY5ZU04MWIKNkt3REFBQ0J4YndO
QUFESnc0dE1KQWlEK1FSM0VJc0VqUWhnQUJDTEZJMGNZQUFRNnd5TEZUQmdBQkF6d0dvRlFGbUQr
UDkwRFZHTApUQ1FJVU9qZC9mLy9XVm5EVll2c2dld0lCQUFBb1RSZ0FCQXp4WWxGL0lNOUVHQUFF
UCtMUlFoV2kzVU1pWVg0Ky8vL0Q0UzNBQUFBCmdENEFVdytFa0FBQUFJdk9qVkVCaWdGQmhNQjEr
U3ZLZzhFdGdma0FCQUFBZDNlTm5mejcvLzh6eVlxQjBFZ0FFSWlFRGZ6Ny8vOUIKaE1CMTdvdkdp
OWFLQ0VDRXlYWDVWNDI5L1B2Ly95dkNUNHBQQVVlRXlYWDRpOGpCNlFMenBZdklnK0VEdU94SUFC
RHpwSXZJaWhCQQpoTkoxK1kyOS9Qdi8veXZCaS9GUGlrOEJSNFRKZGZpTHlNSHBBdk9saThpRDRR
UHpwRi9yQmJzMFNnQVFpNDM0Ky8vL2FnTC9OUkJnCkFCQ0wwK2o1L1AvL1dWbGJpMDM4TTgxZTZI
MENBQURKdzFXTDdGRlJpMFVNVTFhSlJmeUxSUkJYaTMwSU0vWXJ4NGxGK0l0TkZJUDUKRUhJRGFo
QlpPL0Z6SllvY09BKzJ3MUJvWEVvQUVQOTEvUDhWYkdFQUVJTkYvQU9MUmZpRHhBeUlIMFpINjh5
TFJRakdCQVlBYS9ZRAppMFVNWDhZRUJnQmVXOG5EVll2c2dleEVBUUFBb1RSZ0FCQXp4WWxGL0ZP
TEhSaGdBQkNEKy85V2kzVU1WNHQ5Q0ltOXZQNy8vdytFCjNRQUFBR2lFU3dBUS94VXdjZ0FRaGNB
UGhMa0FBQUJvZUVzQUVGRC9GVFJ5QUJDRjlxTnNZUUFRRDRTZ0FBQUFoY0FQaEpnQUFBQ0wKVGd4
b2JFc0FFUDkxRUlQcEpHaEFTd0FRVVdnNFN3QVFqWDRnVjJnb1N3QVFhT0JLQUJDTmpjRCsvLzlv
eUVvQUVGSC8wSXRHRElQbwpKRkJYalVXMFVJMUY2RkRvN1A3Ly80UEVPR2pFU2dBUWpVVzBVR2pB
U2dBUWpVWG9VR2kwU2dBUWpZWEEvdi8vVVA4Vk9ISUFFSTJFCkJjRCsvLzlRL3hWc1lRQVFpNDI4
L3YvL2FnUlRqWlhBL3YvLzZJejcvLytEeENEckVXb0VVN3BvU2dBUWk4L29lUHYvLzFsWmkwMzgK
WDE0enpWdm8rd0FBQU1uRFZZdnNnZXdFQkFBQW9UUmdBQkF6eFlsRi9JTTlGR0FBRVArTFJRZ1Bo
TEVBQUFDRndGTldENFNPQUFBQQppOGlOY1FHS0dVR0UyM1g1Szg2RHdUcUIrUUFFQUFCM2RZMlYv
UHYvL3pQSmlwa0FTUUFRaUp3Ti9Qdi8vMEdFMjNYdWkvQ0tDRUNFCnlYWDVWNDI5L1B2Ly95dkdU
NHBQQVVlRXlYWDRpOGpCNlFMenBZdklnK0VEdUJCSkFCRHpwSXZJaWhoQWhOdDErWTI5L1B2Ly95
dkIKaS9GUGlrOEJSNFRKZGZpTHlNSHBBdk9saThpRDRRUHpwRi9yQmJxUVN3QVFpMDBFYWdQL05S
UmdBQkRvbC9yLy8xbFpYbHVMVGZ3egp6ZWdiQUFBQXljUE0veVhFY2dBUS95WEljZ0FRL3lYTWNn
QVEveVhRY2dBUU93MDBZQUFRZFFMencrblVBd0FBelA4bDJISUFFRldOCnJDUmsvLy8vZ2V3Y0FR
QUFvVFJnQUJBenhZbUZtQUFBQUlNOWRHRUFFQUIwQnpQQTZSY0JBQUJXL3pVOFlBQVFpelV3Y2dB
UXh3VjAKWVFBUUFRQUFBUC9XaGNBUGhmVUFBQUJYYUVoTUFCRC8xb3Y0aGY5MEZZczFOSElBRUdn
NFRBQVFWLy9XaGNDSlJZaDFCelBBNmNvQQpBQUJUYUNSTUFCQlgvOWFMMklYYmRIOW9HRXdBRUZm
LzFqUDJPOGFKUllSMGJvMUZqRkJxQVZabzZFc0FFR2dDQUFDQS8xV0loY0IxCkpvMUZrRkJXalVX
QVVGYSswRXNBRUZiL2RZei8wNFhBZFEyTFJaQ0R3QTA5QkFFQUFISUpWLzhWTEhJQUVPc25qVVdR
VUkxRmxGQ04KUllCUWFnQlcvM1dNLzlQL2RZeUw4UDlWaEZmL0ZTeHlBQkNGOW5RRU04RHJONHRO
a0lCOERaSmNkQWZHUkEyVFhPc0VTWWxOa0RQQQpqVXdObElzVlBHQUFFSW9VQW9nVUFVQ0QrQXQr
N28xRmxGRC9GVEJ5QUJCYlgxNkxqWmdBQUFBenplaWIvdi8vZ2NXY0FBQUF5Y05WCmkreUxSUlNE
N0VSVE05dFdpM1VJaVJpTFJReG1pUmhxSEkxRnZGQk9WdjhWR0hJQUVJWEFkUWN6d09sQkFnQUEv
M1VjLzNVWS8zWEEKL3hVY2NnQVFoY0IwNW90VndHYUJPazFhZGR5TFFqdzd3MzdWQThLQk9GQkZB
QUIxeXcrM1NBWlhEN2Q0RkkxRUJ4Z3I4alAvTzh1SgpYZngySFlQQURJc1FPL0p5Q1l2K0svbzdj
UHh5Qy85Ri9JUEFLRGxOL0hMbU9VMzhkRmIvUmZ3NEhYaGhBQkIxSFRrZGNHRUFFSFZECjZQajkv
Lzg3dzZOd1lRQVFkRFhHQlhoaEFCQUJhRnhNQUJEL05YQmhBQkQvRlRSeUFCQTd3M1FaalUzc1VW
TlRqVTNZVVZOVFUvOTEKR1AvUWc4UWdoY0IxQnpQQTZYc0JBQUNMVGV5TEFZbGQ0UDhRUGJXbE1R
RVBoVnNCQUFDTFRleUxBWTFWNUZKb1dFd0FFRlAvVUJ5Rgp3QStFUVFFQUFJdE41SXNCVTFOVGpW
WHdVbGYvZGZ6L1VDQ0Z3QStFSGdFQUFJdE44STFWK0lsZCtJc0JVdjlRYUlUQUQ0VC9BQUFBCmkw
MzRPOHNQaFBRQUFBQXo5dXMraTAzNGl3RlRqVlgwVW8xVjNGS05WUWhTalZYb1VsUC9VQXlFd0Er
RXh3QUFBQSszUlFnN1JmeDEKRUl0RjZEdkhkd21MVGR3RHdUdjRjaEdMVGZpTEFmOVFDSVhBZGJu
cGpnQUFBSXRGOUR2REQ0U1NBQUFBUGYvLy94OFBnNGNBQUFEQgo0QU5RVS84VklISUFFRkQvRlNS
eUFCQ0w4RHZ6ZEcrTFRmaUxBVmFOVmZSU1UxTlRqVlg4VXY5UURJVEFkRWdyZmVpTHp6c09jajh6
Ci8wYzVmZlNMeDNZTE93ekdjZ1pBTzBYMGN2V0xSTWI4aTAwVVUxTlRqVlVRVXY5MURDWC8vLzhB
LzNYOGlRR0xUZkNMQWY5UWNJVEEKZEFPSmZlQldVLzhWSUhJQUVGRC9GU2h5QUJDTFRmaUxBZjhR
aTAzd2l3SC9VRUNMVGVTTEFmOVFPSXRON0lzQi8xQW9pMFhnWDE1Ygp5Y05WaSt5QjdDZ0RBQUNq
aUdJQUVJa05oR0lBRUlrVmdHSUFFSWtkZkdJQUVJazFlR0lBRUlrOWRHSUFFR2FNRmFCaUFCQm1q
QTJVCllnQVFab3dkY0dJQUVHYU1CV3hpQUJCbWpDVm9ZZ0FRWm93dFpHSUFFSnlQQlpoaUFCQ0xS
UUNqakdJQUVJdEZCS09RWWdBUWpVVUkKbzV4aUFCQ0xoZUQ4Ly8vSEJkaGhBQkFCQUFFQW9aQmlB
QkNqakdFQUVNY0ZnR0VBRUFrRUFNREhCWVJoQUJBQkFBQUFvVFJnQUJDSgpoZGo4Ly8raE9HQUFF
SW1GM1B6Ly8vOFZRSElBRUtQUVlRQVFhZ0hvT2dBQUFGbHFBUDhWQ0hJQUVHaHdUQUFRL3hVTWNn
QVFnejNRCllRQVFBSFVJYWdIb0ZnQUFBRmxvQ1FRQXdQOFZFSElBRUZEL0ZSUnlBQkRKdzh6L0pk
eHlBQkQvSlhCeUFCRC9KV3h5QUJEL0pXaHkKQUJEL0pXUnlBQkQvSlZ4eUFCRC9KVmh5QUJEL0pX
QnlBQkQvSlZSeUFCRC9KVkJ5QUJEL0pVeHlBQkQvSlVoeUFCRC9KVVJ5QUJELwpKVUJ5QUJEL0pU
eHlBQkQvSlRoeUFCRC9KVFJ5QUJEL0pUQnlBQkQvSlN4eUFCRC9KU2h5QUJEL0pTUnlBQkQvSlNC
eUFCRC9KUnh5CkFCRC9KUmh5QUJEL0pSUnlBQkQvSlJCeUFCRC9KUXh5QUJEL0pRaHlBQkRNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0K
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
CnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TQp6
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0Kek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek0K
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16TXpN
ek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek0Kek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TQp6TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNCnpNek16TXpNek16
TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpN
ek16TXpNek0Kek16TXpNek16TXpNek16TXpNek1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFNeElBRUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEMlR5RkxBQUFBQUFJQUFBQlhBQUFBU0U4
QQpBRWcvQUFBQUFBQUFVM1JoWTJzZ1lYSnZkVzVrSUY5aGJHeHZZMkVnWTI5eWNuVndkR1ZrQUFC
TWIyTmhiQ0IyWVhKcFlXSnNaU0IxCmMyVmtJR0psWm05eVpTQnBibWwwYVdGc2FYcGhkR2x2YmdB
QUFGTjBZV05ySUcxbGJXOXllU0JqYjNKeWRYQjBhVzl1QUVOaGMzUWcKZEc4Z2MyMWhiR3hsY2lC
MGVYQmxJR05oZFhOcGJtY2diRzl6Y3lCdlppQmtZWFJoQUFBQVUzUmhZMnNnY0c5cGJuUmxjaUJq
YjNKeQpkWEIwYVc5dUFBQUFBTkJGQUJDa1JRQVFqRVVBRUdCRkFCQkFSUUFRQUFBQUFBRUFBQUFD
QUFBQUF3QUFBQVFBQUFCVmJtdHViM2R1CklGSjFiblJwYldVZ1EyaGxZMnNnUlhKeWIzSUtEUUFB
QUZOMFlXTnJJRzFsYlc5eWVTQmhjbTkxYm1RZ1gyRnNiRzlqWVNCM1lYTWcKWTI5eWNuVndkR1Zr
Q2cwQVFTQnNiMk5oYkNCMllYSnBZV0pzWlNCM1lYTWdkWE5sWkNCaVpXWnZjbVVnYVhRZ2QyRnpJ
R2x1YVhScApZV3hwZW1Wa0NnMEFBQUJUZEdGamF5QnRaVzF2Y25rZ2QyRnpJR052Y25KMWNIUmxa
QW9OQUFBQUFFRWdZMkZ6ZENCMGJ5QmhJSE50CllXeHNaWElnWkdGMFlTQjBlWEJsSUdoaGN5QmpZ
WFZ6WldRZ1lTQnNiM056SUc5bUlHUmhkR0V1SUNCSlppQjBhR2x6SUhkaGN5QnAKYm5SbGJuUnBi
MjVoYkN3Z2VXOTFJSE5vYjNWc1pDQnRZWE5ySUhSb1pTQnpiM1Z5WTJVZ2IyWWdkR2hsSUdOaGMz
UWdkMmwwYUNCMAphR1VnWVhCd2NtOXdjbWxoZEdVZ1ltbDBiV0Z6YXk0Z0lFWnZjaUJsZUdGdGNH
eGxPaUFnQ2cwSlkyaGhjaUJqSUQwZ0tHa2dKaUF3CmVFWkdLVHNLRFVOb1lXNW5hVzVuSUhSb1pT
QmpiMlJsSUdsdUlIUm9hWE1nZDJGNUlIZHBiR3dnYm05MElHRm1abVZqZENCMGFHVWcKY1hWaGJH
bDBlU0J2WmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRzl3ZEdsdGFYcGxaQ0JqYjJSbExnb05BQUFBQUZS
b1pTQjJZV3gxWlNCdgpaaUJGVTFBZ2QyRnpJRzV2ZENCd2NtOXdaWEpzZVNCellYWmxaQ0JoWTNK
dmMzTWdZU0JtZFc1amRHbHZiaUJqWVd4c0xpQWdWR2hwCmN5QnBjeUIxYzNWaGJHeDVJR0VnY21W
emRXeDBJRzltSUdOaGJHeHBibWNnWVNCbWRXNWpkR2x2YmlCa1pXTnNZWEpsWkNCM2FYUm8KSUc5
dVpTQmpZV3hzYVc1bklHTnZiblpsYm5ScGIyNGdkMmwwYUNCaElHWjFibU4wYVc5dUlIQnZhVzUw
WlhJZ1pHVmpiR0Z5WldRZwpkMmwwYUNCaElHUnBabVpsY21WdWRDQmpZV3hzYVc1bklHTnZiblps
Ym5ScGIyNHVDZzBBQUFBQUFRQUFBQUFBQUFBQkFBQUFBUUFBCkFBRUFBQUFCQUFBQVUzUmhZMnNn
WVhKdmRXNWtJSFJvWlNCMllYSnBZV0pzWlNBbkFDY2dkMkZ6SUdOdmNuSjFjSFJsWkM0QUFBQUEK
VkdobElIWmhjbWxoWW14bElDY0FBQ2NnYVhNZ1ltVnBibWNnZFhObFpDQjNhWFJvYjNWMElHSmxh
VzVuSUdsdWFYUnBZV3hwZW1WawpMZ0FBVW5WdUxWUnBiV1VnUTJobFkyc2dSbUZwYkhWeVpTQWpK
V1FnTFNBbGN3QlZibXR1YjNkdUlFMXZaSFZzWlNCT1lXMWxBRlZ1CmEyNXZkMjRnUm1sc1pXNWhi
V1VBQUFBQUFBQUFBRklBZFFCdUFDMEFWQUJwQUcwQVpRQWdBRU1BYUFCbEFHTUFhd0FnQUVZQVlR
QnAKQUd3QWRRQnlBR1VBSUFBakFDVUFaQUFnQUMwQUlBQWxBSE1BQUFCU0FIVUFiZ0IwQUdrQWJR
QmxBQ0FBUXdCb0FHVUFZd0JyQUNBQQpSUUJ5QUhJQWJ3QnlBQzRBQ2dBTkFDQUFWUUJ1QUdFQVln
QnNBR1VBSUFCMEFHOEFJQUJrQUdrQWN3QndBR3dBWVFCNUFDQUFVZ0JVCkFFTUFJQUJOQUdVQWN3
QnpBR0VBWndCbEFDNEFBQUJUZEdGamF5QmpiM0p5ZFhCMFpXUWdibVZoY2lCMWJtdHViM2R1SUha
aGNtbGgKWW14bEFBQUFKUzR5V0NBQUFBQUFBQUFBVTNSaFkyc2dZWEpsWVNCaGNtOTFibVFnWDJG
c2JHOWpZU0J0WlcxdmNua2djbVZ6WlhKMgpaV1FnWW5rZ2RHaHBjeUJtZFc1amRHbHZiaUJwY3lC
amIzSnlkWEIwWldRS0FBQUFBQ1Z6SlhNbGN5VnpBQUFBQUQ0Z0FBQUtBQUFBCkpYTWxjeVZ3SlhN
bGJHUWxjeVZrSlhNQUFBQUFBQUFBVTNSaFkyc2dZWEpsWVNCaGNtOTFibVFnWDJGc2JHOWpZU0J0
WlcxdmNua2cKY21WelpYSjJaV1FnWW5rZ2RHaHBjeUJtZFc1amRHbHZiaUJwY3lCamIzSnlkWEIw
WldRQUNrRmtaSEpsYzNNNklEQjRBQUFBQUFwVAphWHBsT2lBQUNrRnNiRzlqWVhScGIyNGdiblZ0
WW1WeUlIZHBkR2hwYmlCMGFHbHpJR1oxYm1OMGFXOXVPaUFBQUFBS1JHRjBZVG9nClBBQUFBQUIz
YzNCeWFXNTBaa0VBQUFCMWMyVnlNekl1Wkd4c0FBQkJJSFpoY21saFlteGxJR2x6SUdKbGFXNW5J
SFZ6WldRZ2QybDAKYUc5MWRDQmlaV2x1WnlCcGJtbDBhV0ZzYVhwbFpDNEFUVk5RUkVJNE1DNUVU
RXdBUlc1MmFYSnZibTFsYm5SRWFYSmxZM1J2Y25rQQpBQUFBVTA5R1ZGZEJVa1ZjVFdsamNtOXpi
MlowWEZacGMzVmhiRk4wZFdScGIxdzRMakJjVTJWMGRYQmNWbE1BQUFBQVVtVm5RMnh2CmMyVkxa
WGtBVW1WblVYVmxjbmxXWVd4MVpVVjRRUUFBQUFCU1pXZFBjR1Z1UzJWNVJYaEJBQUFBUVVSV1FW
QkpNekl1UkV4TUFBQUEKQUhJQUFBQlFSRUpQY0dWdVZtRnNhV1JoZEdVMUFBQUFBSUJoQUJEWVlR
QVFTQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFOR0FBRUxCUUFCQUJBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBVWxORVUxNXBiM0tNcEhkRnNNbWwwRkxCTlNVQ0FBQUFZenBjWTNsbmQybHVYR2h2YldW
Y1kyMWhjbkpwCmJseFhaV0pMYVhSQ2RXbHNaRnhpYVc1Y1VYVmhjblI2UTI5eVpVbHVkR1Z5Wm1G
alpTNXdaR0lBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBN1JnQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUFFS
QUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJvU0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS92Ly8vd0FB
QUFEUS8vLy9BQUFBQVA3Ly8vOEFBQUFBVGhVQQpFQUFBQUFBYUZRQVFMaFVBRVA3Ly8vOEFBQUFB
elAvLy93QUFBQUQrLy8vL0FBQUFBSmdXQUJBQUFBQUEvdi8vL3dBQUFBRFkvLy8vCkFBQUFBUDcv
Ly84cEdBQVFQUmdBRUFBQUFBRCsvLy8vQUFBQUFMei8vLzhBQUFBQS92Ly8vOXdaQUJEZ0dRQVFB
QUFBQVA3Ly8vOEEKQUFBQXZQLy8vd0FBQUFEKy8vLy9QaG9BRUVJYUFCQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOWs4
aFN3QUFBQURtV1FBQUFRQUEKQUFNQUFBQURBQUFBeUZrQUFOUlpBQURnV1FBQUJSQUFBQThRQUFB
S0VBQUEvbGtBQUJkYUFBQXhXZ0FBQUFBQkFBSUFVWFZoY25SNgpRMjl5WlVsdWRHVnlabUZqWlM1
a2JHd0FkMnR4WTBOQlVtVnVaR1Z5VDBkTVEyRnNiR0poWTJ0ekFIZHJjV05EUVZSeVlXNXpabTl5
CmJUTkVTV1JsYm5ScGRIa0FkMnR4WTBOR1UzUnlhVzVuVW1WbUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBUC8vLy8vLy8vLy9BUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQURZUndB
UXVFWUFFSmhHCkFCQmdSZ0FRTkVZQUVCUkdBQkJPNWtDN3NSbS9STVJMQUJBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFmSEVBQUFBQUFBQUFBQUFBaG5VQUFEUnpBQUQ4Y0FBQUFB
QUFBQUFBQUFBOGRnQUF0SElBCkFGQndBQUFBQUFBQUFBQUFBTng0QUFBSWNnQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUMrZUFBQW9uZ0FBSTU0QUFCNmVBQUEKYW5nQUFGUjRBQUJDZUFBQU5u
Z0FBQ3A0QUFBY2VBQUFESGdBQVBwM0FBRHVkd0FBMkhjQUFNUjNBQUN1ZHdBQW9IY0FBSTUzQUFC
MApkd0FBWG5jQUFEaDNBQUFlZHdBQVNIY0FBQUozQUFEa2RnQUEzSFlBQU1aMkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBL25VQUFBeDJBQUFhZGdBQUtuWUEKQUVoMkFBQnNkZ0FBZG5Z
QUFJUjJBQUNNZGdBQWxuWUFBTEIyQUFEeWRRQUE0SFVBQU5CMUFBRElkUUFBcUhVQUFKWjFBQUM2
ZFFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ1CmRRQUFWblVBQUVoMUFBQXlkUUFBSG5VQUFBaDFBQUR3
ZEFBQTJuUUFBTVIwQUFDeWRBQUFuSFFBQUloMEFBQjBkQUFBWG5RQUFFWjAKQUFBc2RBQUFFblFB
QVB4ekFBRGdjd0FBd0hNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMNTRBQUNpZUFBQWpuZ0FB
SHA0QUFCcWVBQUFWSGdBQUVKNEFBQTJlQUFBCktuZ0FBQng0QUFBTWVBQUErbmNBQU81M0FBRFlk
d0FBeEhjQUFLNTNBQUNnZHdBQWpuY0FBSFIzQUFCZWR3QUFPSGNBQUI1M0FBQkkKZHdBQUFuY0FB
T1IyQUFEY2RnQUF4bllBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRCtkUUFBREhZQUFC
cDJBQUFxZGdBQVNIWUFBR3gyQUFCMmRnQUFoSFlBCkFJeDJBQUNXZGdBQXNIWUFBUEoxQUFEZ2RR
QUEwSFVBQU1oMUFBQ29kUUFBbG5VQUFMcDFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHNTFBQUJXZFFB
QVNIVUFBREoxQUFBZQpkUUFBQ0hVQUFQQjBBQURhZEFBQXhIUUFBTEowQUFDY2RBQUFpSFFBQUhS
MEFBQmVkQUFBUm5RQUFDeDBBQUFTZEFBQS9ITUFBT0J6CkFBREFjd0FBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBc0FGclEwRkRSa2R5WVhacGRIbFNaWE5wZW1WQmMzQmxZM1JHYVd4c0FBQ3ZBV3RE
UVVOR1IzSmhkbWwwZVZKbApjMmw2WlVGemNHVmpkQUFBcmdGclEwRkRSa2R5WVhacGRIbFNaWE5w
ZW1VQUFLc0JhME5CUTBaSGNtRjJhWFI1UW05MGRHOXRVbWxuCmFIUUFxZ0ZyUTBGRFJrZHlZWFpw
ZEhsQ2IzUjBiMjFNWldaMEFBQzBBV3REUVVOR1IzSmhkbWwwZVZSdmNGSnBaMmgwQUFDekFXdEQK
UVVOR1IzSmhkbWwwZVZSdmNFeGxablFBc1FGclEwRkRSa2R5WVhacGRIbFNhV2RvZEFDdEFXdERR
VU5HUjNKaGRtbDBlVXhsWm5RQQpBS2tCYTBOQlEwWkhjbUYyYVhSNVFtOTBkRzl0QUFDeUFXdERR
VU5HUjNKaGRtbDBlVlJ2Y0FDc0FXdERRVU5HUjNKaGRtbDBlVU5sCmJuUmxjZ0FBcFFGclEwRkRS
a1pwYkhSbGNreGhibU42YjNNQUFLZ0JhME5CUTBaR2FXeDBaWEpVY21sc2FXNWxZWElBQUtjQmEw
TkIKUTBaR2FXeDBaWEpPWldGeVpYTjBBQUNtQVd0RFFVTkdSbWxzZEdWeVRHbHVaV0Z5QUx3QmEw
TkJRMFpVY21GdWMyWnZjbTFNWVhsbApjZ0MyQVd0RFFVTkdUR0Y1WlhJQUFORUJhME5CVW1WdVpH
VnlSRmc1UTJGc2JHSmhZMnR6QUhvQlEwRlVjbUZ1YzJadmNtMHpSRWxrClpXNTBhWFI1QUZGMVlY
SjBla052Y21VdVpHeHNBQUJiQUY5RFVsUmZVbFJEWDBsT1NWUlhBQUJ5QVY5bGJtTnZaR1ZmY0c5
cGJuUmwKY2dDVEFsOXRZV3hzYjJOZlkzSjBBUFFFWm5KbFpRQUFjd0ZmWlc1amIyUmxaRjl1ZFd4
c0FHZ0JYMlJsWTI5a1pWOXdiMmx1ZEdWeQpBQkFDWDJsdWFYUjBaWEp0QUJFQ1gybHVhWFIwWlhK
dFgyVUFIUUZmWVcxeloxOWxlR2wwQUFBVEFWOWhaR3AxYzNSZlptUnBkZ0FBCmJRQmZYME53Y0Zo
amNIUkdhV3gwWlhJQVRWTldRMUk0TUM1a2JHd0Fqd0JmWDJOc1pXRnVYM1I1Y0dWZmFXNW1iMTl1
WVcxbGMxOXAKYm5SbGNtNWhiQUFBOHdOZmRXNXNiMk5yQUprQVgxOWtiR3h2Ym1WNGFYUUFnZ0pm
Ykc5amF3QW9BMTl2Ym1WNGFYUUFld0ZmWlhoagpaWEIwWDJoaGJtUnNaWEkwWDJOdmJXMXZiZ0JU
QVY5amNuUmZaR1ZpZFdkblpYSmZhRzl2YXdBQUtRSkpiblJsY214dlkydGxaRVY0ClkyaGhibWRs
QUZZRFUyeGxaWEFBSmdKSmJuUmxjbXh2WTJ0bFpFTnZiWEJoY21WRmVHTm9ZVzVuWlFBQWl3QkVh
WE5oWW14bFZHaHkKWldGa1RHbGljbUZ5ZVVOaGJHeHpBS01DVVhWbGNubFFaWEptYjNKdFlXNWpa
VU52ZFc1MFpYSUEzd0ZIWlhSVWFXTnJRMjkxYm5RQQpBRVlCUjJWMFEzVnljbVZ1ZEZSb2NtVmha
RWxrQUFCREFVZGxkRU4xY25KbGJuUlFjbTlqWlhOelNXUUF5Z0ZIWlhSVGVYTjBaVzFVCmFXMWxR
WE5HYVd4bFZHbHRaUUNuQWxKaGFYTmxSWGhqWlhCMGFXOXVBQUI0QUVSbFluVm5RbkpsWVdzQUFK
UURWMmxrWlVOb1lYSlUKYjAxMWJIUnBRbmwwWlFBNUFrbHpSR1ZpZFdkblpYSlFjbVZ6Wlc1MEFI
VUNUWFZzZEdsQ2VYUmxWRzlYYVdSbFEyaGhjZ0RNQTJ4egpkSEpzWlc1QkFBQ2dBVWRsZEZCeWIy
TkJaR1J5WlhOekFBQlNBa3h2WVdSTWFXSnlZWEo1UVFBQStBQkdjbVZsVEdsaWNtRnllUUFXCkFr
aGxZWEJHY21WbEFBQVFBa2hsWVhCQmJHeHZZd0NqQVVkbGRGQnliMk5sYzNOSVpXRndBQUIrQVVk
bGRFMXZaSFZzWlVacGJHVk8KWVcxbFZ3QUFpQU5XYVhKMGRXRnNVWFZsY25rQUFGNERWR1Z5Ylds
dVlYUmxVSEp2WTJWemN3QUFRZ0ZIWlhSRGRYSnlaVzUwVUhKdgpZMlZ6Y3dCdUExVnVhR0Z1Wkd4
bFpFVjRZMlZ3ZEdsdmJrWnBiSFJsY2dBQVNnTlRaWFJWYm1oaGJtUnNaV1JGZUdObGNIUnBiMjVH
CmFXeDBaWElBUzBWU1RrVk1Nekl1Wkd4c0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQmdBQUFBWUFBQ0FBQUFBQUFBQUFBQUFB
QUFBQUFBQkFBSUFBQUF3CkFBQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQkFBa0VBQUJJQUFBQWNJRUFB
SlVDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR2dTc4
OFAzaHRiQ0IyWlhKemFXOXVQU0l4CkxqQWlJR1Z1WTI5a2FXNW5QU0pWVkVZdE9DSWdjM1JoYm1S
aGJHOXVaVDBpZVdWeklqOCtEUW84WVhOelpXMWliSGtnZUcxc2JuTTkKSW5WeWJqcHpZMmhsYldG
ekxXMXBZM0p2YzI5bWRDMWpiMjA2WVhOdExuWXhJaUJ0WVc1cFptVnpkRlpsY25OcGIyNDlJakV1
TUNJKwpEUW9nSUR4a1pYQmxibVJsYm1ONVBnMEtJQ0FnSUR4a1pYQmxibVJsYm5SQmMzTmxiV0pz
ZVQ0TkNpQWdJQ0FnSUR4aGMzTmxiV0pzCmVVbGtaVzUwYVhSNUlIUjVjR1U5SW5kcGJqTXlJaUJ1
WVcxbFBTSk5hV055YjNOdlpuUXVWa000TUM1RVpXSjFaME5TVkNJZ2RtVnkKYzJsdmJqMGlPQzR3
TGpVd056STNMalF3TlRNaUlIQnliMk5sYzNOdmNrRnlZMmhwZEdWamRIVnlaVDBpZURnMklpQndk
V0pzYVdOTApaWGxVYjJ0bGJqMGlNV1pqT0dJellqbGhNV1V4T0dVellpSStQQzloYzNObGJXSnNl
VWxrWlc1MGFYUjVQZzBLSUNBZ0lEd3ZaR1Z3ClpXNWtaVzUwUVhOelpXMWliSGsrRFFvZ0lEd3Za
R1Z3Wlc1a1pXNWplVDROQ2lBZ1BHUmxjR1Z1WkdWdVkzaytEUW9nSUNBZ1BHUmwKY0dWdVpHVnVk
RUZ6YzJWdFlteDVQZzBLSUNBZ0lDQWdQR0Z6YzJWdFlteDVTV1JsYm5ScGRIa2dkSGx3WlQwaWQy
bHVNeklpSUc1aApiV1U5SWsxcFkzSnZjMjltZEM1V1F6Z3dMa05TVkNJZ2RtVnljMmx2YmowaU9D
NHdMalV3TnpJM0xqUXdOVE1pSUhCeWIyTmxjM052CmNrRnlZMmhwZEdWamRIVnlaVDBpZURnMklp
QndkV0pzYVdOTFpYbFViMnRsYmowaU1XWmpPR0l6WWpsaE1XVXhPR1V6WWlJK1BDOWgKYzNObGJX
SnNlVWxrWlc1MGFYUjVQZzBLSUNBZ0lEd3ZaR1Z3Wlc1a1pXNTBRWE56WlcxaWJIaytEUW9nSUR3
dlpHVndaVzVrWlc1agplVDROQ2p3dllYTnpaVzFpYkhrK0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUVBQUFsQUVBQUZFd1Z6QmpNSEF3ZlRDSk1KWXdvRENwTUxNd3ZUREdNTkF3MmpE
ak1PMHc5ekFBTVFveEdERWNNU0F4CkpERW9NU3d4TURFME1UZ3hQREZBTVVReFNERk1NVkF4VkRG
WU1Wd3hlakdVTWZneEJqSTdNa1F5VFRKU01tWXljaktOTXBVeW5qS3AKTXI0eXh6TGZNdmN5RERN
Uk14Y3pNak0zTTBNelVqTllNMTh6ZUROK001RXpsak9qTTdJenh6UE5NOXd6OURNUk5CZzBIVFFp
TkNzMApOVFJHTkdNMGNEU0lOTnMwQ0RWUU5ZbzFvalcwTmJvMXdUWExOZEUxMkRYZU5lUTE3RFh4
TmY4MUNqWVFOaVEyT1RaRU5sdzJjalovCk5yWTJ1emJhTnQ4Mi9qWUVOd28zRURjV042WTNxemU5
TjlzMzd6ZjFOMTQ0WkRocU9IQTRmVGlLT0pVNHNqaitPQU01RnprNk9VYzUKVXpsYk9XTTViem1U
T1pzNXB6bldPZmM1T0Rwdk9xdzYxanIxT2lNN2FqdUpPOHM3Qmp3VVBESThXanhoUEdrOGtEeWJQ
T0E4R2oxTwpQVnc5cVQyeVBlWTk4ajBPUGhRK0lUNG9QaTgrUlQ1UVBsWStYejVrUG04K2p6NllQ
cUUrcmo2OFB0MCtBejhPUDBrL2dUKzFQOEEvCjNEL2lQK2cvN2ovMFB3QWdBQUM4QUFBQUJEQVhN
Q1V3TmpBOE1FSXdWakJrTUdrd2dEQ09NS1l3d1REZk1BUXhMVEZETVlFeG16SDkKTVFVeUV6SWJN
aUV5SnpJdE1uUXlMak0xTTZNenFqUGZNK1V6NnpQeE0vY3ovVE1FTkFzMEVqUVpOQ0EwSnpRdU5E
WTBQalJHTkZJMApXelJnTkdZMGNEUjVOSVEwa0RTVk5LVTBxalN3TkxZMHpEVFROTncwNGpUb05P
NDA5RFQ2TkFBMUJqVU1OUkkxR0RVZU5TUTFLalV3Ck5UWTFQRFZDTlVnMVRqVlVOVm8xWURWbU5X
dzFjalY0Tlg0MUFFQUFBQndBQUFBTU0rdzE4RFgwTmZnMS9EVndQSFE4dER5NFBBQlEKQUFBZ0FB
QUF1RExFTmVnMzhEZjBOeEE0TERnd09FdzRVRGhzT0hBNEFHQUFBQmdBQUFBY01DQXdKREFvTUN3
d01EQThNQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBCgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIv
UXVhcnR6Q29yZUludGVyZmFjZS5saWIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0TGlicmFyaWVzL3dpbi9saWIvUXVh
cnR6Q29yZUludGVyZmFjZS5saWIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoK
SVR4aGNtTm9QZ292SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdNVEkyTURRM05ETTFPQ0FnSUNBZ0lDQWdJ
Q0FnSUNBZ01DQWdJQ0FnSUNBegpNREFnSUNBZ0lDQWdZQW9BQUFBSkFBQUROZ0FBQlpBQUFBYlVB
QUFKUmdBQUNVWUFBQWhBQUFBSVFBQUFDTUlBQUFqQ1gxOUpUVkJQClVsUmZSRVZUUTFKSlVGUlBV
bDlSZFdGeWRIcERiM0psU1c1MFpYSm1ZV05sQUY5ZlRsVk1URjlKVFZCUFVsUmZSRVZUUTFKSlVG
UlAKVWdCL1VYVmhjblI2UTI5eVpVbHVkR1Z5Wm1GalpWOU9WVXhNWDFSSVZVNUxYMFJCVkVFQVgx
OXBiWEJmWDNkcmNXTkRSbE4wY21sdQpaMUpsWmdCZmQydHhZME5HVTNSeWFXNW5VbVZtQUY5ZmFX
MXdYMTkzYTNGalEwRlNaVzVrWlhKUFIweERZV3hzWW1GamEzTUFYM2RyCmNXTkRRVkpsYm1SbGNr
OUhURU5oYkd4aVlXTnJjd0JmWDJsdGNGOWZkMnR4WTBOQlZISmhibk5tYjNKdE0wUkpaR1Z1ZEds
MGVRQmYKZDJ0eFkwTkJWSEpoYm5ObWIzSnRNMFJKWkdWdWRHbDBlUUF2SUNBZ0lDQWdJQ0FnSUNB
Z0lDQWdNVEkyTURRM05ETTFPQ0FnSUNBZwpJQ0FnSUNBZ0lDQWdNQ0FnSUNBZ0lDQXpNVEFnSUNB
Z0lDQWdZQW9HQUFBQU5nTUFBSkFGQUFEVUJnQUFSZ2tBQUVBSUFBRENDQUFBCkNRQUFBQUVBQWdB
RkFBWUFCQUFGQUFZQUJBQURBRjlmU1UxUVQxSlVYMFJGVTBOU1NWQlVUMUpmVVhWaGNuUjZRMjl5
WlVsdWRHVnkKWm1GalpRQmZYMDVWVEV4ZlNVMVFUMUpVWDBSRlUwTlNTVkJVVDFJQVgxOXBiWEJm
WDNkcmNXTkRRVkpsYm1SbGNrOUhURU5oYkd4aQpZV05yY3dCZlgybHRjRjlmZDJ0eFkwTkJWSEpo
Ym5ObWIzSnRNMFJKWkdWdWRHbDBlUUJmWDJsdGNGOWZkMnR4WTBOR1UzUnlhVzVuClVtVm1BRjkz
YTNGalEwRlNaVzVrWlhKUFIweERZV3hzWW1GamEzTUFYM2RyY1dORFFWUnlZVzV6Wm05eWJUTkVT
V1JsYm5ScGRIa0EKWDNkcmNXTkRSbE4wY21sdVoxSmxaZ0IvVVhWaGNuUjZRMjl5WlVsdWRHVnla
bUZqWlY5T1ZVeE1YMVJJVlU1TFgwUkJWRUVBTHk4ZwpJQ0FnSUNBZ0lDQWdJQ0FnSURFeU5qQTBO
elF6TlRnZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnSUNBZ0lDQWdNalFnSUNBZ0lDQWdJR0FLClVYVmhj
blI2UTI5eVpVbHVkR1Z5Wm1GalpTNWtiR3dBTHpBZ0lDQWdJQ0FnSUNBZ0lDQWdJREV5TmpBME56
UXpOVGdnSUNBZ0lDQWcKSUNBZ0lDQWdJREFnSUNBZ0lDQWdOVFF5SUNBZ0lDQWdJR0FLVEFFREFQ
WlBJVXNrQVFBQUNBQUFBQUFBQUFFdVpHVmlkV2NrVXdBQQpBQUFBQUFBQVRnQUFBSXdBQUFBQUFB
QUFBQUFBQUFBQUFBQkFBQkJDTG1sa1lYUmhKRElBQUFBQUFBQUFBQlFBQUFEYUFBQUE3Z0FBCkFB
QUFBQUFEQUFBQVFBQXd3QzVwWkdGMFlTUTJBQUFBQUFBQUFBQVlBQUFBREFFQUFPNEFBQUFBQUFB
QUFBQUFBRUFBSU1BQ0FBQUEKSGdBSkFBQUFBQUFYVVhWaGNuUjZRMjl5WlVsdWRHVnlabUZqWlM1
a2JHd29BQk1RQndBQUFBTUFBQUFBQUFBQUNBQUFBQ2ZHRWsxcApZM0p2YzI5bWRDQW9VaWtnVEVs
T1N3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBREFBQUFCd0FBQUFBQUJBQUFBQWNB
CkVBQUFBQVVBQUFBSEFGRjFZWEowZWtOdmNtVkpiblJsY21aaFkyVXVaR3hzQUVCamIyMXdMbWxr
SjhaN0FQLy9BQUFEQUFBQUFBQUUKQUFBQUFBQUFBQUlBQUFBQ0FDNXBaR0YwWVNReVFBQUF3QUlB
QUFCb0FDNXBaR0YwWVNRMkFBQUFBQU1BQUFBREFDNXBaR0YwWVNRMApRQUFBd0FBQUFBQm9BQzVw
WkdGMFlTUTFRQUFBd0FBQUFBQm9BQUFBQUFBc0FBQUFBQUFBQUFBQUFBQUNBQUFBQUFCRkFBQUFB
QUFBCkFBQUFBQUFDQUdvQUFBQmZYMGxOVUU5U1ZGOUVSVk5EVWtsUVZFOVNYMUYxWVhKMGVrTnZj
bVZKYm5SbGNtWmhZMlVBWDE5T1ZVeE0KWDBsTlVFOVNWRjlFUlZORFVrbFFWRTlTQUg5UmRXRnlk
SHBEYjNKbFNXNTBaWEptWVdObFgwNVZURXhmVkVoVlRrdGZSRUZVUVFBdgpNQ0FnSUNBZ0lDQWdJ
Q0FnSUNBZ01USTJNRFEzTkRNMU9DQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZ0lDQWdJQ0F5TmpNZ0lD
QWdJQ0FnCllBcE1BUUlBOWs4aFM4WUFBQUFDQUFBQUFBQUFBUzVrWldKMVp5UlRBQUFBQUFBQUFB
Qk9BQUFBWkFBQUFBQUFBQUFBQUFBQUFBQUEKQUVBQUVFSXVhV1JoZEdFa013QUFBQUFBQUFBQUZB
QUFBTElBQUFBQUFBQUFBQUFBQUFBQUFBQkFBRERBQWdBQUFCNEFDUUFBQUFBQQpGMUYxWVhKMGVr
TnZjbVZKYm5SbGNtWmhZMlV1Wkd4c0tBQVRFQWNBQUFBREFBQUFBQUFBQUFnQUFBQW54aEpOYVdO
eWIzTnZablFnCktGSXBJRXhKVGtzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFZMjl0Y0M1
cFpDZkdld0QvL3dBQUF3QUFBQUFBQkFBQUFBQUEKQUFBQ0FBQUFBZ0FkQUFBQVgxOU9WVXhNWDBs
TlVFOVNWRjlFUlZORFVrbFFWRTlTQUFvdk1DQWdJQ0FnSUNBZ0lDQWdJQ0FnTVRJMgpNRFEzTkRN
MU9DQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBZ0lDQWdJQ0F6TURNZ0lDQWdJQ0FnWUFwTUFRTUE5azho
UytJQUFBQUNBQUFBCkFBQUFBUzVrWldKMVp5UlRBQUFBQUFBQUFBQk9BQUFBakFBQUFBQUFBQUFB
QUFBQUFBQUFBRUFBRUVJdWFXUmhkR0VrTlFBQUFBQUEKQUFBQUJBQUFBTm9BQUFBQUFBQUFBQUFB
QUFBQUFBQkFBRERBTG1sa1lYUmhKRFFBQUFBQUFBQUFBQVFBQUFEZUFBQUFBQUFBQUFBQQpBQUFB
QUFBQVFBQXd3QUlBQUFBZUFBa0FBQUFBQUJkUmRXRnlkSHBEYjNKbFNXNTBaWEptWVdObExtUnNi
Q2dBRXhBSEFBQUFBd0FBCkFBQUFBQUFJQUFBQUo4WVNUV2xqY205emIyWjBJQ2hTS1NCTVNVNUxB
QUFBQUFBQUFBQUFRR052YlhBdWFXUW54bnNBLy84QUFBTUEKQUFBQUFBUUFBQUFBQUFBQUFnQUFB
QUlBS1FBQUFIOVJkV0Z5ZEhwRGIzSmxTVzUwWlhKbVlXTmxYMDVWVEV4ZlZFaFZUa3RmUkVGVQpR
UUFLTHpBZ0lDQWdJQ0FnSUNBZ0lDQWdJREV5TmpBME56UXpOVGdnSUNBZ0lDQWdJQ0FnSUNBZ0lE
QWdJQ0FnSUNBZ056QWdJQ0FnCklDQWdJR0FLQUFELy93QUFUQUgyVHlGTE1nQUFBQUFBQ0FCZmQy
dHhZME5CVW1WdVpHVnlUMGRNUTJGc2JHSmhZMnR6QUZGMVlYSjAKZWtOdmNtVkpiblJsY21aaFky
VXVaR3hzQUM4d0lDQWdJQ0FnSUNBZ0lDQWdJQ0F4TWpZd05EYzBNelU0SUNBZ0lDQWdJQ0FnSUNB
ZwpJQ0F3SUNBZ0lDQWdJRGN4SUNBZ0lDQWdJQ0JnQ2dBQS8vOEFBRXdCOWs4aFN6TUFBQUFCQUFn
QVgzZHJjV05EUVZSeVlXNXpabTl5CmJUTkVTV1JsYm5ScGRIa0FVWFZoY25SNlEyOXlaVWx1ZEdW
eVptRmpaUzVrYkd3QUNpOHdJQ0FnSUNBZ0lDQWdJQ0FnSUNBeE1qWXcKTkRjME16VTRJQ0FnSUNB
Z0lDQWdJQ0FnSUNBd0lDQWdJQ0FnSURZeElDQWdJQ0FnSUNCZ0NnQUEvLzhBQUV3QjlrOGhTeWtB
QUFBQwpBQWdBWDNkcmNXTkRSbE4wY21sdVoxSmxaZ0JSZFdGeWRIcERiM0psU1c1MFpYSm1ZV05s
TG1Sc2JBQUsKCg==
</data>
<flag name="review"
          id="26531"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>