<?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>73319</bug_id>
          
          <creation_ts>2011-11-29 07:19:01 -0800</creation_ts>
          <short_desc>[GTK] Initial implementation of Accelerated Compositing using Clutter</short_desc>
          <delta_ts>2012-12-23 17:19:29 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</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>
          <dependson>73298</dependson>
    
    <dependson>73458</dependson>
          <blocked>73767</blocked>
    
    <blocked>74087</blocked>
    
    <blocked>105699</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joone Hur">joone.hur</reporter>
          <assigned_to name="Joone Hur">joone.hur</assigned_to>
          <cc>alex</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nayankk</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510749</commentid>
    <comment_count>0</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-11-29 07:19:01 -0800</bug_when>
    <thetext>This is an initial implementation of Accelerated Compositing for WebKitGtk+.
A GtkClutterEmbed will be used to embed Clutter Actors inside WebKitWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514507</commentid>
    <comment_count>1</comment_count>
      <attachid>117759</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-03 09:04:09 -0800</bug_when>
    <thetext>Created attachment 117759
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514510</commentid>
    <comment_count>2</comment_count>
      <attachid>117761</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-03 09:07:34 -0800</bug_when>
    <thetext>Created attachment 117761
Proposed Patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514511</commentid>
    <comment_count>3</comment_count>
      <attachid>117761</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-03 09:16:03 -0800</bug_when>
    <thetext>Comment on attachment 117761
Proposed Patch2

Attachment 117761 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10728339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514515</commentid>
    <comment_count>4</comment_count>
      <attachid>117761</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-03 10:07:59 -0800</bug_when>
    <thetext>Comment on attachment 117761
Proposed Patch2

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

&gt; Source/WebKit/gtk/ChangeLog:6
&gt; +        This patch allows to add a GtkClutterEmbed to embed Clutter Actors in WebKitWebView and set the root GraphicsLayer to WebKitWebView when Accelerated Compositing needs to be enabled.

This line looks a bit too long, split it around &quot;set the root&quot;? =)

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4904
&gt; +    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));

make this an ASSERT() I guess, g_return_if_fail should only be used in public API.

&gt; Tools/GtkLauncher/main.c:388
&gt; +#ifdef WTF_USE_CLUTTER
&gt; +    gtk_clutter_init(&amp;argc, &amp;argv);
&gt; +#else
&gt;      gtk_init(&amp;argc, &amp;argv);
&gt; +#endif

This is bad =(. We would need to initialize clutter ourselves I think, somehow, otherwise we&apos;ll break lots of stuff. Should be OK for the early stages though.

&gt; configure.ac:1094
&gt; +   AC_SUBST(CAIRO_CFLAGS)
&gt; +   AC_SUBST(CAIRO_LIBS)

Why do we need cairo checks here? Can&apos;t we use the existing ones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514539</commentid>
    <comment_count>5</comment_count>
      <attachid>117767</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-03 10:52:18 -0800</bug_when>
    <thetext>Created attachment 117767
Proposed Patch3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514541</commentid>
    <comment_count>6</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-03 10:56:33 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=117767) [details]
&gt; Proposed Patch3

Sorry, I didn&apos;t apply Kov&apos;s comments to this patch.
I will update the patch again. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514548</commentid>
    <comment_count>7</comment_count>
      <attachid>117770</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-03 11:15:13 -0800</bug_when>
    <thetext>Created attachment 117770
Proposed Patch4

I updated the patch with the changes suggested by Kov.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514657</commentid>
    <comment_count>8</comment_count>
      <attachid>117770</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-04 01:25:31 -0800</bug_when>
    <thetext>Comment on attachment 117770
Proposed Patch4

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

The patch looks good to me except for those comments, I&apos;d like to hear Martin&apos;s opinion on the general approach before we go ahead.

&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h:46
&gt; +    ClutterActor* m_layer; // The main layer

I&apos;d remove this comment.

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:936
&gt; +    // Currently, we only support CSS 3D Transform

Missing period.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:849
&gt; +

Unnecessary change? =)

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4913
&gt; +    ClutterActor* stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv-&gt;rootLayerEmbedder));

Spaces before (.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4942
&gt; +    // Detach the root layer from the hosting view&quot;);

There&apos;s &quot;); at the end instead of a period.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4949
&gt; +    return TRUE;

I&apos;m wondering, why do we have this boolean return value if we always return TRUE? =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514660</commentid>
    <comment_count>9</comment_count>
      <attachid>117770</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-04 01:55:51 -0800</bug_when>
    <thetext>Comment on attachment 117770
Proposed Patch4

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

&gt;&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h:46
&gt;&gt; +    ClutterActor* m_layer; // The main layer
&gt; 
&gt; I&apos;d remove this comment.

Done.

&gt;&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:936
&gt;&gt; +    // Currently, we only support CSS 3D Transform
&gt; 
&gt; Missing period.

Done.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:849
&gt;&gt; +
&gt; 
&gt; Unnecessary change? =)

Done.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4913
&gt;&gt; +    ClutterActor* stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv-&gt;rootLayerEmbedder));
&gt; 
&gt; Spaces before (.

Done.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4942
&gt;&gt; +    // Detach the root layer from the hosting view&quot;);
&gt; 
&gt; There&apos;s &quot;); at the end instead of a period.

Done.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4949
&gt;&gt; +    return TRUE;
&gt; 
&gt; I&apos;m wondering, why do we have this boolean return value if we always return TRUE? =)

Yes, we don&apos;t need to have the return value,so I&apos;ve removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514661</commentid>
    <comment_count>10</comment_count>
      <attachid>117786</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-04 01:56:32 -0800</bug_when>
    <thetext>Created attachment 117786
Proposed Patch5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514678</commentid>
    <comment_count>11</comment_count>
      <attachid>117786</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-04 05:54:44 -0800</bug_when>
    <thetext>Comment on attachment 117786
Proposed Patch5

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

General comments: I&apos;m seeing a lot of this code over and over in the AC implementations banging around. It would be nice to abstract it away with a class. In fact, I&apos;m working on such a thing now. ;)

Some it picky comments follow, but I think there are a few more serious issues as well.

&gt; Source/WebCore/ChangeLog:5
&gt; +        [GTK] Initial implementation of Accelerated Compositing using Clutter
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=73319

Extra line here.

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests added as this patch doesn&apos;t affect any functionality.

This comment seems innaccurate. You&apos;re adding a new feature, so it does add new functionality. Here you could describe whether or not the AC layout tests run or whether the feature is complete enough to run the tests.

&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.cpp:31
&gt;  
&gt;  #if USE(ACCELERATED_COMPOSITING)
&gt; +
&gt;  #include &quot;GraphicsLayerClutter.h&quot;

Accidental change?

&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.cpp:46
&gt; +    // ClutterRectangle will be used to show the debug border.
&gt; +    m_layer = clutter_rectangle_new();

This should be an initializer field.

&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.cpp:51
&gt;  GraphicsLayerClutter::~GraphicsLayerClutter()
&gt;  {
&gt;  }

You are leaking m_layer, I think.

&gt; Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h:47
&gt; +    ClutterActor* m_layer;

Can you use a smart pointer here?

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:919
&gt; -    webViewSetRootGraphicsLayer(m_webView, rootLayer);
&gt; +    if (rootLayer)
&gt; +        webViewSetRootGraphicsLayer(m_webView, rootLayer);
&gt; +    else
&gt; +        webViewDetachRootGraphicsLayer(m_webView);
&gt;  }

This patch doesn&apos;t seem to be against trunk.  In Alex&apos;s implementation webViewSetRootGraphicsLayer handles the detach case.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:3324
&gt; +    priv-&gt;rootGraphicsLayer = NULL;
&gt; +    priv-&gt;rootLayerEmbedder = NULL;

These pointers are initialized to zero by default by GLib aren&apos;t they?

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4916
&gt; +        priv-&gt;rootGraphicsLayer = NULL;

NULL should be 0.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4919
&gt; +        Frame* frame = core(webView)-&gt;mainFrame();
&gt; +        frame-&gt;view()-&gt;syncCompositingStateIncludingSubframes();

Could be one line.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4926
&gt; +        ClutterColor stage_color = { 0xFF, 0xFF, 0xFF, 0xFF };

stage_color -&gt; stageColor.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4953
&gt; +    WebKitWebView* webView = WEBKIT_WEB_VIEW(data);
&gt; +    Frame* frame = core(webView)-&gt;mainFrame();
&gt; +    frame-&gt;view()-&gt;syncCompositingStateIncludingSubframes();

I think it makes sense for this to be one line as well.

&gt; Tools/GtkLauncher/main.c:386
&gt; +#ifdef WTF_USE_CLUTTER
&gt; +    gtk_clutter_init(&amp;argc, &amp;argv);
&gt; +#else

I suppose there is no way to enforce this for embedders. Is there a way to check if clutter is initialized and not attempt to use it if gtk_init was called instead of gtk_clutter_init?

WTF_USE_CLUTTER should be USE(CLUTTER)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514713</commentid>
    <comment_count>12</comment_count>
      <attachid>117796</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-04 10:19:09 -0800</bug_when>
    <thetext>Created attachment 117796
Proposed Patch6

I applied Martin&apos;s comments to this patch.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514721</commentid>
    <comment_count>13</comment_count>
      <attachid>117796</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-04 11:02:34 -0800</bug_when>
    <thetext>Comment on attachment 117796
Proposed Patch6

Attachment 117796 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10729543

New failing tests:
svg/custom/linking-uri-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515151</commentid>
    <comment_count>14</comment_count>
      <attachid>117891</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-05 09:49:21 -0800</bug_when>
    <thetext>Created attachment 117891
Proposed Patch7

GRefPtrClutter is added to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515844</commentid>
    <comment_count>15</comment_count>
      <attachid>117891</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-06 05:47:06 -0800</bug_when>
    <thetext>Comment on attachment 117891
Proposed Patch7

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

Please fix those comments before landing!

&gt; Source/WebCore/GNUmakefile.am:580
&gt; +	-I$(srcdir)/Source/WebCore/platform/clutter

Missing a \

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4913
&gt; +        core(webView)-&gt;mainFrame()-&gt;view()-&gt;syncCompositingStateIncludingSubframes();

Don&apos;t we need to call this also after adding the new layer to the stage?

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4949
&gt; +static gboolean webViewSyncLayers(gpointer data)
&gt; +{
&gt; +    WebKitWebView* webView = WEBKIT_WEB_VIEW(data);
&gt; +    core(webView)-&gt;mainFrame()-&gt;view()-&gt;syncCompositingStateIncludingSubframes();
&gt; +
&gt; +    return FALSE;
&gt;  }

Maybe wrap this in #if USE(CLUTTER) so that it won&apos;t give us warnings when building without.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516052</commentid>
    <comment_count>16</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-06 11:13:06 -0800</bug_when>
    <thetext>btw, I noticed while testing this that we require clutter &gt;= 1.8.3, that isn&apos;t really needed, I bet, since I only have 1.8.2 which is the latest packaged in Debian, please change that as well =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518139</commentid>
    <comment_count>17</comment_count>
      <attachid>117891</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-08 23:32:50 -0800</bug_when>
    <thetext>Comment on attachment 117891
Proposed Patch7

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

&gt;&gt; Source/WebCore/GNUmakefile.am:580
&gt;&gt; +	-I$(srcdir)/Source/WebCore/platform/clutter
&gt; 
&gt; Missing a \

Done.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4913
&gt;&gt; +        core(webView)-&gt;mainFrame()-&gt;view()-&gt;syncCompositingStateIncludingSubframes();
&gt; 
&gt; Don&apos;t we need to call this also after adding the new layer to the stage?

I&apos;ve removed this with the IF statement because there seems no case to run this code. Usually, the rootGraphicsLayer is removed when the webViewDetachRootGraphicsLayer is called.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4949
&gt;&gt;  }
&gt; 
&gt; Maybe wrap this in #if USE(CLUTTER) so that it won&apos;t give us warnings when building without.

Done.

&gt; configure.ac:289
&gt; +CLUTTER_REQUIRED_VERSION=1.8.3

Changed to 1.8.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518150</commentid>
    <comment_count>18</comment_count>
      <attachid>118539</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-12-08 23:56:24 -0800</bug_when>
    <thetext>Created attachment 118539
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518179</commentid>
    <comment_count>19</comment_count>
      <attachid>118539</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-09 01:41:06 -0800</bug_when>
    <thetext>Comment on attachment 118539
Updated patch

Clearing flags on attachment: 118539

Committed r102448: &lt;http://trac.webkit.org/changeset/102448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518180</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-09 01:41:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>117759</attachid>
            <date>2011-12-03 09:04:09 -0800</date>
            <delta_ts>2011-12-03 09:07:34 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>ac.patch</filename>
            <type>application/octet-stream</type>
            <size>19665</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi40Y2YyOThh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNWZiYzQ4Li5lNjk5YjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgYW55IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIgcGF0aC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgR3JhcGhp
Y3NMYXllckNsdXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOiBEZWZpbmUgUGxhdGZvcm1MYXllciB0eXBlLCB3aGljaCByZXByZXNlbnRzIENsdXR0ZXJB
Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJD
bHV0dGVyLmNwcDogQm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaDogQm9pbGVy
cGxhdGUgaW1wbGVtZW50YXRpb24uCisKIDIwMTEtMTItMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGlu
Z0B3ZWJraXQub3JnPgogCiAgICAgICAgIFNocmluayBDU1NWYWx1ZUxpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDc1ODkzNGMuLjlkMDUyY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
NTc1LDYgKzU3NSwxMSBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAKIGVuZGlmICAjIEVORCBVU0VURVhU
VVJFX01BUFBFUl9HTAogCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9jcHBmbGFncyArPSBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlcgorZW5k
aWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCkBA
IC04MDEsNiArODA2LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoQ0FJUk9fQ0ZM
QUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChF
TkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xVRV9DRkxBR1MpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDlmMTgzOWU3Li5hNTk5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTUwNjksNiArNTA2OSwxMyBAQCBlbmRpZiAgIyBFTkQgRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FCiAjIENvbXBpbGUgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBzdXBwb3J0CiAjIC0tLQogaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCitpZiBVU0Vf
Q0xVVFRFUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCitlbmRp
ZiAgIyBFTkQgVVNFX0NMVVRURVIKKworaWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKQEAgLTUw
NzYsNyArNTA4Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oCi1pZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVndGtfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1h
cHBlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2ZjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC03NCw2ICs3
NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsK
IH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1
dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVyQWN0b3IgUGxh
dGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRjM2MuLmNkMDg2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIv
R3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2x1dHRlci5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKQEAgLTQxLDEyICs0MiwxOSBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiBHcmFw
aGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCiB7CisgICAgLy8gQ2x1dHRl
clJlY3RhbmdsZSB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgZGVidWcgYm9yZGVyLgorICAgIG1f
bGF5ZXIgPSBjbHV0dGVyX3JlY3RhbmdsZV9uZXcoKTsKIH0KIAogR3JhcGhpY3NMYXllckNsdXR0
ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0NsdXR0ZXJBY3RvciogR3JhcGhp
Y3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpzZXROZWVkc0Rpc3BsYXkoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgKaW5k
ZXggZGIyOWIxZi4uOTdlM2Y4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaApAQCAt
MzAsNiArMzAsNyBAQAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw4ICszOSwxMSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJDbHV0dGVyKCk7CiAKKyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1M
YXllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworcHJp
dmF0ZToKKyAgICBDbHV0dGVyQWN0b3IqIG1fbGF5ZXI7IC8vIFRoZSBtYWluIGxheWVyCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYWMyMTBmYi4uMWUz
ODY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTAzICBKb29u
ZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRp
YWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTkK
KworICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBhZGQgYSBHdGtDbHV0dGVyRW1iZWQgdG8g
ZW1iZWQgQ2x1dHRlciBBY3RvcnMgaW4gV2ViS2l0V2ViVmlldyBhbmQgc2V0IHRoZSByb290IEdy
YXBoaWNzTGF5ZXIgdG8gV2ViS2l0V2ViVmlldyB3aGVuIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5n
IG5lZWRzIHRvIGJlIGVuYWJsZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogU2V0IHRoZSByb290IEdyYXBoaWNzTGF5ZXIgdG8gV2Vi
S2l0V2ViVmlldy4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9z
aXRpbmdUcmlnZ2Vycyk6IEFsbG93IHRvIHN1cHBvcnQgQ1NTIDNEIFRyYW5zZm9ybXMgb25seS4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IFNldCB0aGUgc2l6ZSBvZiBHdGtDbHV0dGVyRW1iZWQgd2hl
biB0aGUgdmlldyBpcyBjaGFuZ2VkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpCisg
ICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIpOiBBZGQgdGhlIEd0a0NsdXR0ZXJF
bWJlZCB0byB0aGUgV2ViS2l0V2ViVmlldyBhcyBhIGNoaWxkLgorICAgICAgICAod2ViVmlld0Rl
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogUmVtb3ZlIHRoZSBHdGtDbHV0dGVyRW1iZWQgZnJvbSB0
aGUgV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYlZpZXdTeW5jTGF5ZXJzKTogQ29tbWl0IGxh
eWVyIGNoYW5nZXMuCisgICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOiBTZXQgdG8gY2FsbCB3
ZWJWaWV3U3luY0xheWVycyB1c2luZyBnX3RpbWVvdXRfYWRkLgorICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBGdWxsc2NyZWVuIGNv
bnRyb2xsZXIgc3VwcG9ydCBmb3IgdGhlIG5ldyBXZWJLaXQgRnVsbHNjcmVlbiBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KaW5kZXggZTM0YjQ0Mi4uNjFhNTc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05V
bWFrZWZpbGUuYW0KQEAgLTY1LDYgKzY1LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUEYKIAkk
KEdMSUJfQ0ZMQUdTKSBcCiAJJChHU1RSRUFNRVJfQ0ZMQUdTKSBcCiAJJChHVEtfQ0ZMQUdTKSBc
CisJJChDTFVUVEVSX0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChISUxE
T05fQ0ZMQUdTKSBcCiAJJChMSUJGRlRXX0NGTEFHUykgXAogCSQoTElCU09VUF9DRkxBR1MpIFwK
QEAgLTg3LDYgKzg5LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0xJQkEKIAlsaWJqYXZhc2NyaXB0
Y29yZWd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5P
Ul9WRVJTSU9OQC5sYSBcCiAJJCh3ZWJjb3JlX2xkZmxhZ3MpIFwKIAkkKENBSVJPX0xJQlMpIFwK
KwkkKENMVVRURVJfTElCUykgXAorCSQoQ0xVVFRFUl9HVEtfTElCUykgXAogCSQoQ09WRVJBR0Vf
TERGTEFHUykgXAogCSQoRU5DSEFOVF9MSUJTKSBcCiAJJChGUkVFVFlQRV9MSUJTKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAppbmRleCBhZDhjZjlhLi4zN2UwZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTkxMiw3ICs5MTIsMTAgQEAg
dm9pZCBDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50KiBlbGVtZW50KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hy
b21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNz
TGF5ZXIqIHJvb3RMYXllcikKIHsKLSAgICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93
ZWJWaWV3LCByb290TGF5ZXIpOworICAgIGlmIChyb290TGF5ZXIpCisgICAgICAgIHdlYlZpZXdT
ZXRSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcsIHJvb3RMYXllcik7CisgICAgZWxzZQorICAg
ICAgICB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3KTsKIH0KIAogdm9p
ZCBDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpA
QCAtOTI3LDcgKzkzMCwxNCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyU3luYygpCiAKIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hy
b21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0CiB7CisgICAgIGlm
ICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBVU0Uo
Q0xVVFRFUikKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBDU1MgM0QgVHJhbnNm
b3JtCisgICAgcmV0dXJuIFRocmVlRFRyYW5zZm9ybVRyaWdnZXI7CisjZWxzZQogICAgIHJldHVy
biBBbGxUcmlnZ2VyczsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA5MWYyZGZhLi42ZTY0YWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC04NDYsNiArODQ2LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEd0a0FsbG9jYXRpb24qIGFsbG8KICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJf
dmlld19wYXJlbnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbik7CiAK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7CisK
ICAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KTsKICAgICBJbnRTaXplIG9sZFNpemU7CiAg
ICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkg
ewpAQCAtODU2LDYgKzg1NywxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9h
bGxvY2F0ZShHdGtXaWRnZXQqIHdpZGdldCwgR3RrQWxsb2NhdGlvbiogYWxsbwogICAgIFdlYktp
dDo6Q2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9t
ZUNsaWVudCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CiAgICAgY2hyb21lQ2xpZW50LT53
aWRnZXRTaXplQ2hhbmdlZChvbGRTaXplLCBJbnRTaXplKGFsbG9jYXRpb24tPndpZHRoLCBhbGxv
Y2F0aW9uLT5oZWlnaHQpKTsKICAgICBjaHJvbWVDbGllbnQtPmFkanVzdG1lbnRXYXRjaGVyKCkt
PnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnMoKTsKKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgaWYgKHdlYlZpZXctPnByaXYtPnJv
b3RMYXllckVtYmVkZGVyKSB7CisgICAgICAgIGFsbG9jYXRpb24tPnggPSAwOworICAgICAgICBh
bGxvY2F0aW9uLT55ID0gMDsKKyAgICAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19X
SURHRVQod2ViVmlldy0+cHJpdi0+cm9vdExheWVyRW1iZWRkZXIpLCBhbGxvY2F0aW9uKTsKKyAg
ICB9CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dyYWJfZm9jdXMo
R3RrV2lkZ2V0KiB3aWRnZXQpCkBAIC0zMzEwLDYgKzMzMTksMTEgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBndGtfZHJhZ19k
ZXN0X3NldF90YXJnZXRfbGlzdChHVEtfV0lER0VUKHdlYlZpZXcpLCBQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpOwogCiAgICAgcHJpdi0+
c2VsZlNjcm9sbGluZyA9IGZhbHNlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoQ0xVVFRFUikKKyAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7Cisg
ICAgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIgPSBOVUxMOworI2VuZGlmCiB9CiAKIEd0a1dpZGdl
dCogd2Via2l0X3dlYl92aWV3X25ldyh2b2lkKQpAQCAtNDg4NSwxMyArNDg5OSw3NiBAQCB2b2lk
IHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgd2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7
CisjaWYgVVNFKENMVVRURVIpCisKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZp
ZXctPnByaXY7CisKKyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR3RrQ2x1dHRlckVtYmVk
IHRvIGhvc3QgYWN0b3JzIGFzIHdlYiBsYXllcnMuCisgICAgaWYgKCFwcml2LT5yb290TGF5ZXJF
bWJlZGRlcikgeworICAgICAgICBwcml2LT5yb290TGF5ZXJFbWJlZGRlciA9IGd0a19jbHV0dGVy
X2VtYmVkX25ldygpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdl
YlZpZXcpLCBwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgICAgIGd0a193aWRnZXRfc2hv
dyhwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgfQorCisgICAgQ2x1dHRlckFjdG9yKiBz
dGFnZSA9IGd0a19jbHV0dGVyX2VtYmVkX2dldF9zdGFnZSAoR1RLX0NMVVRURVJfRU1CRUQgKHBy
aXYtPnJvb3RMYXllckVtYmVkZGVyKSk7CisKKyAgICAvLyBSZW1vdmUgdGhlIGV4aXN0aW5nIHJv
b3QgbGF5ZXIgZnJvbSB0aGUgc3RhZ2UKKyAgICBpZiAocHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIp
IHsKKyAgICAgICAgY2x1dHRlcl9jb250YWluZXJfcmVtb3ZlX2FjdG9yKENMVVRURVJfQ09OVEFJ
TkVSKHN0YWdlKSwgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwor
ICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7CisKKyAgICAgICAgRnJhbWUq
IGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7CisgICAgICAgIGZyYW1lLT52aWV3
KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CisgICAgfQorCisg
ICAgLy8gQWRkIGEgcm9vdCBsYXllciB0byB0aGUgc3RhZ2UKKyAgICBpZiAoZ3JhcGhpY3NMYXll
cikgeworICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IGdyYXBoaWNzTGF5ZXI7Cisg
ICAgICAgIC8vIHNldCB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIENsdXR0ZXJDb2xvciBzdGFn
ZV9jb2xvciA9IHsgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9OworICAgICAgICBjbHV0dGVyX3N0
YWdlX3NldF9jb2xvcihDTFVUVEVSX1NUQUdFIChzdGFnZSksICZzdGFnZV9jb2xvcik7CisgICAg
ICAgIGNsdXR0ZXJfY29udGFpbmVyX2FkZF9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSks
ICBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgY2x1
dHRlcl9hY3Rvcl9zaG93X2FsbChzdGFnZSk7CisgICAgfQorI2Vsc2UKICAgICBub3RJbXBsZW1l
bnRlZCgpOworI2VuZGlmCit9CisKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NM
YXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworI2lmIFVTRShDTFVUVEVSKQorICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKyAgICAvLyBEZXRhY2gg
dGhlIHJvb3QgbGF5ZXIgZnJvbSB0aGUgaG9zdGluZyB2aWV3Iik7CisgICAgZ3RrX2NvbnRhaW5l
cl9yZW1vdmUoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIp
OworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsKKyAgICBwcml2LT5yb290R3Jh
cGhpY3NMYXllciA9IE5VTEw7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYK
KyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHdlYlZpZXdTeW5jTGF5ZXJz
KGdwb2ludGVyIGRhdGEpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9X
RUJfVklFVyhkYXRhKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJh
bWUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiB2b2lkIHdlYlZpZXdNYXJrRm9y
U3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBzY2hlZHVsZVN5bmMpCiB7Cisj
aWYgVVNFKENMVVRURVIpCisgICAgZ190aW1lb3V0X2FkZCgwLCB3ZWJWaWV3U3luY0xheWVycywg
d2ViVmlldyk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKIH0KKwogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCA5MmMzNTVlLi45NzZmODIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaApAQCAtMzIsNiAr
MzIsMTEgQEAKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0d2Vidmlldy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoQ0xVVFRFUikKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0dGVyLWd0ay5oPgorI2lu
Y2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
V2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7CiBXZWJLaXRXZWJWaWV3KiBraXQo
V2ViQ29yZTo6UGFnZSopOwpAQCAtOTIsNiArOTcsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKICAg
ICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKICAgICBi
b29sIHNlbGZTY3JvbGxpbmc7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0xVVFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXll
cjsKKyAgICBHdGtXaWRnZXQqIHJvb3RMYXllckVtYmVkZGVyOworI2VuZGlmCiB9OwogCiB2b2lk
IHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyopOwpAQCAtMTE0LDYg
KzEyMyw3IEBAIHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCB3ZWJWaWV3U2V0
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcihXZWJLaXRXZWJWaWV3
Kik7CiB2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiwgZ2Jvb2xlYW4pOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZmY3Y2YzNS4uZGQxY2U0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTAzICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRpYWwgaW1w
bGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENsdXR0ZXIgYW5kIENsdXR0ZXItR3Rr
IHRvIGVuYWJsZSBBY2NlbGVyYXRlZCBDb21wb3NpdGluZworCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IEFkZCBXVEZfVVNFX0NMVVRURVJfR1RLIHRvIGdsb2JhbF9jcHBmbGFncy4KKyAgICAg
ICAgKiBHdGtMYXVuY2hlci9tYWluLmM6IAorICAgICAgICAobWFpbik6IENhbGwgZ3RrX2NsdXR0
ZXJfaW5pdCgpIGluc3RlYWQgb2YgZ3RrX2luaXQoKS4KKwogMjAxMS0xMi0wMyAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGpoYnVpbGQgaW5z
dGFsbGF0aW9uIGZvciBwZW9wbGUgd2hvIGhhdmUgdW51c3VhbCBNQUtFIGVudmlyb25tZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGJiMmIxYTguLjQxYzQwMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBAIC0xOCwxMiArMTgsMTQgQEAgUHJvZ3JhbXNfR3Rr
TGF1bmNoZXJfQ0ZMQUdTID0gXAogCS1hbnNpIFwKIAktZm5vLXN0cmljdC1hbGlhc2luZyBcCiAJ
JChnbG9iYWxfY2ZsYWdzKSBcCisJJChDTFVUVEVSX0dUS19DRkxBR1MpCiAJJChHVEtfQ0ZMQUdT
KSBcCiAJJChMSUJTT1VQX0NGTEFHUykKIAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfTERBREQgPSBc
CiAJbGlid2Via2l0Z3RrLUBXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtf
QVBJX01JTk9SX1ZFUlNJT05ALmxhIFwKIAlsaWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VCS0lUR1RL
X0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCisJ
JChDTFVUVEVSX0dUS19MSUJTKSAKIAkkKEdUS19MSUJTKSBcCiAJJChHTElCX0xJQlMpIFwKIAkk
KExJQlNPVVBfTElCUykgXApkaWZmIC0tZ2l0IGEvVG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jIGIv
VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCmluZGV4IDg3NmRhYjIuLjlmYTRmMmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYworKysgYi9Ub29scy9HdGtMYXVuY2hlci9tYWlu
LmMKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdC5oPgogCisjaWZkZWYgV1RGX1VTRV9DTFVUVEVSCisjaW5jbHVkZSA8Y2x1dHRl
ci1ndGsvY2x1dHRlci1ndGsuaD4KKyNlbmRpZgorCiBzdGF0aWMgZ2ludCB3aW5kb3dDb3VudCA9
IDA7CiAKIHN0YXRpYyBHdGtXaWRnZXQqIGNyZWF0ZVdpbmRvdyhXZWJLaXRXZWJWaWV3Kiogb3V0
V2ViVmlldyk7CkBAIC0zNzcsNyArMzgxLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgICAgIHsgMCwgMCwgMCwgMCwgMCwgMCwgMCB9CiAgICAgfTsKIAorI2lmZGVm
IFdURl9VU0VfQ0xVVFRFUgorICAgIGd0a19jbHV0dGVyX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNl
bHNlCiAgICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgogCiAgICAgR09wdGlvbkNv
bnRleHQgKmNvbnRleHQgPSBnX29wdGlvbl9jb250ZXh0X25ldygwKTsKICAgICBnX29wdGlvbl9j
b250ZXh0X2FkZF9tYWluX2VudHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRpb25zLCAwKTsK
ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2NGZmYzc5Li5k
NTM3ODVjIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0y
ODYsNiArMjg2LDggQEAgR1NUUkVBTUVSX1JFUVVJUkVEX1ZFUlNJT049MC4xMAogR1NUUkVBTUVS
X1BMVUdJTlNfQkFTRV9SRVFVSVJFRF9WRVJTSU9OPTAuMTAuMzAKIEVOQ0hBTlRfUkVRVUlSRURf
VkVSU0lPTj0wLjIyCiBMSUJGRlRXX1JFUVVJUkVEX1ZFUlNJT049My4yLjIKK0NMVVRURVJfUkVR
VUlSRURfVkVSU0lPTj0xLjguMworQ0xVVFRFUl9HVEtfUkVRVUlSRURfVkVSU0lPTj0xLjAuMgog
CiAjIEF2YWlsYWJsZSBtb2R1bGVzCiAjCkBAIC0zOTcsNyArMzk5LDcgQEAgQUNfTVNHX1JFU1VM
VChbJGVuYWJsZV93ZWJnbF0pCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nIHN1cHBvcnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9ydF0pCiBBQ19BUkdfV0lUSChhY2NlbGVyYXRl
ZF9jb21wb3NpdGluZywKLSAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmc9QDw6QG5vL29wZW5nbC9jYWlyb0A6PkBdLAorICAgICAgICAgICAg
QUNfSEVMUF9TVFJJTkcoWy0td2l0aC1hY2NlbGVyYXRlZC1jb21wb3NpdGluZz1APDpAbm8vb3Bl
bmdsL2NhaXJvL2NsdXR0ZXJAOj5AXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2Ug
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgKGV4cGVyaW1lbnRhbCkgW2RlZmF1bHQ9bm9dXSksCiAg
ICAgICAgICAgICBbXSwgW3dpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmc9Im5vIl0pCiBBQ19N
U0dfUkVTVUxUKFskd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ10pCkBAIC0xMDgyLDYgKzEw
ODQsMjAgQEAgaWYgdGVzdCAiJGVuYWJsZV93ZWJfYXVkaW8iID0gInllcyI7IHRoZW4KICAgICBB
Q19TVUJTVChbTElCRkZUV19MSUJTXSkKIGZpCiAKK2lmIHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIjsgdGhlbgorICAgUEtHX0NIRUNLX01PRFVMRVMoQ0FJ
Uk8sIGNhaXJvID49ICRDQUlST19SRVFVSVJFRF9WRVJTSU9OKQorICAgUEtHX0NIRUNLX01PRFVM
RVMoQ0xVVFRFUiwgY2x1dHRlci0xLjAgPj0gJENMVVRURVJfUkVRVUlSRURfVkVSU0lPTikKKyAg
IFBLR19DSEVDS19NT0RVTEVTKFtDTFVUVEVSX0dUS10sCisgICAgICAgICAgICAgICAgICAgICBb
Y2x1dHRlci1ndGstMS4wID49ICRDTFVUVEVSX0dUS19SRVFVSVJFRF9WRVJTSU9OXSkKKworICAg
QUNfU1VCU1QoQ0FJUk9fQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0FJUk9fTElCUykKKyAgIEFDX1NV
QlNUKENMVVRURVJfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9MSUJTKQorICAgQUNfU1VC
U1QoQ0xVVFRFUl9HVEtfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9HVEtfTElCUykKK2Zp
CisKICMgY2hlY2sgZm9yIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydAogaWYgdGVzdCAiJGVuYWJsZV9j
b3ZlcmFnZSIgPSAieWVzIjsgdGhlbgogICAgQ09WRVJBR0VfQ0ZMQUdTPSItTUQiCkBAIC0xMTU2
LDkgKzExNzIsMTAgQEAgQU1fQ09ORElUSU9OQUwoW1VTRV9QQU5HT10sIFt0ZXN0ICIkd2l0aF9m
b250X2JhY2tlbmQiID0gInBhbmdvIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX0dTVFJFQU1FUl0s
IFt0ZXN0ICIkaGF2ZV9nc3RyZWFtZXIiID0gInllcyJdKQogCiAjIEFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nIGNvbmRpdGlvbmFsCi1BTV9DT05ESVRJT05BTChbVVNFX0FDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjYWlybyIg
fHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gIm9wZW5nbCJdKQorQU1f
Q09ORElUSU9OQUwoW1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0ICIkd2l0aF9h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nIiA9ICJvcGVuZ2wiIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2Nv
bXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX1RFWFRVUkVfTUFQ
UEVSX0NBSVJPXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjYWly
byJdKQogQU1fQ09ORElUSU9OQUwoW1VTRV9URVhUVVJFX01BUFBFUl9HTF0sIFt0ZXN0ICIkd2l0
aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3BlbmdsIl0pCitBTV9DT05ESVRJT05BTChb
VVNFX0NMVVRURVJdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNs
dXR0ZXIiXSkKIAogIyBXZWJLaXQgZmVhdHVyZSBjb25kaXRpb25hbHMKIEFNX0NPTkRJVElPTkFM
KFtFTkFCTEVfREVCVUddLFt0ZXN0ICIkZW5hYmxlX2RlYnVnX2ZlYXR1cmVzIiA9ICJ5ZXMiXSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117761</attachid>
            <date>2011-12-03 09:07:34 -0800</date>
            <delta_ts>2011-12-03 11:15:13 -0800</delta_ts>
            <desc>Proposed Patch2</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>19665</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi40Y2YyOThh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNWZiYzQ4Li5lNjk5YjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgYW55IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIgcGF0aC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgR3JhcGhp
Y3NMYXllckNsdXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOiBEZWZpbmUgUGxhdGZvcm1MYXllciB0eXBlLCB3aGljaCByZXByZXNlbnRzIENsdXR0ZXJB
Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJD
bHV0dGVyLmNwcDogQm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaDogQm9pbGVy
cGxhdGUgaW1wbGVtZW50YXRpb24uCisKIDIwMTEtMTItMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGlu
Z0B3ZWJraXQub3JnPgogCiAgICAgICAgIFNocmluayBDU1NWYWx1ZUxpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDc1ODkzNGMuLjlkMDUyY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
NTc1LDYgKzU3NSwxMSBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAKIGVuZGlmICAjIEVORCBVU0VURVhU
VVJFX01BUFBFUl9HTAogCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9jcHBmbGFncyArPSBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlcgorZW5k
aWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCkBA
IC04MDEsNiArODA2LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoQ0FJUk9fQ0ZM
QUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChF
TkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xVRV9DRkxBR1MpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDlmMTgzOWU3Li5hNTk5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTUwNjksNiArNTA2OSwxMyBAQCBlbmRpZiAgIyBFTkQgRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FCiAjIENvbXBpbGUgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBzdXBwb3J0CiAjIC0tLQogaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCitpZiBVU0Vf
Q0xVVFRFUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCitlbmRp
ZiAgIyBFTkQgVVNFX0NMVVRURVIKKworaWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKQEAgLTUw
NzYsNyArNTA4Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oCi1pZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVndGtfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1h
cHBlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2ZjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC03NCw2ICs3
NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsK
IH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1
dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVyQWN0b3IgUGxh
dGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRjM2MuLmNkMDg2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIv
R3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2x1dHRlci5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKQEAgLTQxLDEyICs0MiwxOSBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiBHcmFw
aGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCiB7CisgICAgLy8gQ2x1dHRl
clJlY3RhbmdsZSB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgZGVidWcgYm9yZGVyLgorICAgIG1f
bGF5ZXIgPSBjbHV0dGVyX3JlY3RhbmdsZV9uZXcoKTsKIH0KIAogR3JhcGhpY3NMYXllckNsdXR0
ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0NsdXR0ZXJBY3RvciogR3JhcGhp
Y3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpzZXROZWVkc0Rpc3BsYXkoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgKaW5k
ZXggZGIyOWIxZi4uOTdlM2Y4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaApAQCAt
MzAsNiArMzAsNyBAQAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw4ICszOSwxMSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJDbHV0dGVyKCk7CiAKKyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1M
YXllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworcHJp
dmF0ZToKKyAgICBDbHV0dGVyQWN0b3IqIG1fbGF5ZXI7IC8vIFRoZSBtYWluIGxheWVyCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYWMyMTBmYi4uMWUz
ODY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTAzICBKb29u
ZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRp
YWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTkK
KworICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBhZGQgYSBHdGtDbHV0dGVyRW1iZWQgdG8g
ZW1iZWQgQ2x1dHRlciBBY3RvcnMgaW4gV2ViS2l0V2ViVmlldyBhbmQgc2V0IHRoZSByb290IEdy
YXBoaWNzTGF5ZXIgdG8gV2ViS2l0V2ViVmlldyB3aGVuIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5n
IG5lZWRzIHRvIGJlIGVuYWJsZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogU2V0IHRoZSByb290IEdyYXBoaWNzTGF5ZXIgdG8gV2Vi
S2l0V2ViVmlldy4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9z
aXRpbmdUcmlnZ2Vycyk6IEFsbG93IHRvIHN1cHBvcnQgQ1NTIDNEIFRyYW5zZm9ybXMgb25seS4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IFNldCB0aGUgc2l6ZSBvZiBHdGtDbHV0dGVyRW1iZWQgd2hl
biB0aGUgdmlldyBpcyBjaGFuZ2VkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpCisg
ICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIpOiBBZGQgdGhlIEd0a0NsdXR0ZXJF
bWJlZCB0byB0aGUgV2ViS2l0V2ViVmlldyBhcyBhIGNoaWxkLgorICAgICAgICAod2ViVmlld0Rl
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogUmVtb3ZlIHRoZSBHdGtDbHV0dGVyRW1iZWQgZnJvbSB0
aGUgV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYlZpZXdTeW5jTGF5ZXJzKTogQ29tbWl0IGxh
eWVyIGNoYW5nZXMuCisgICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOiBTZXQgdG8gY2FsbCB3
ZWJWaWV3U3luY0xheWVycyB1c2luZyBnX3RpbWVvdXRfYWRkLgorICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBGdWxsc2NyZWVuIGNv
bnRyb2xsZXIgc3VwcG9ydCBmb3IgdGhlIG5ldyBXZWJLaXQgRnVsbHNjcmVlbiBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KaW5kZXggZTM0YjQ0Mi4uNjFhNTc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05V
bWFrZWZpbGUuYW0KQEAgLTY1LDYgKzY1LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUEYKIAkk
KEdMSUJfQ0ZMQUdTKSBcCiAJJChHU1RSRUFNRVJfQ0ZMQUdTKSBcCiAJJChHVEtfQ0ZMQUdTKSBc
CisJJChDTFVUVEVSX0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChISUxE
T05fQ0ZMQUdTKSBcCiAJJChMSUJGRlRXX0NGTEFHUykgXAogCSQoTElCU09VUF9DRkxBR1MpIFwK
QEAgLTg3LDYgKzg5LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0xJQkEKIAlsaWJqYXZhc2NyaXB0
Y29yZWd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5P
Ul9WRVJTSU9OQC5sYSBcCiAJJCh3ZWJjb3JlX2xkZmxhZ3MpIFwKIAkkKENBSVJPX0xJQlMpIFwK
KwkkKENMVVRURVJfTElCUykgXAorCSQoQ0xVVFRFUl9HVEtfTElCUykgXAogCSQoQ09WRVJBR0Vf
TERGTEFHUykgXAogCSQoRU5DSEFOVF9MSUJTKSBcCiAJJChGUkVFVFlQRV9MSUJTKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAppbmRleCBhZDhjZjlhLi4zN2UwZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTkxMiw3ICs5MTIsMTAgQEAg
dm9pZCBDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50KiBlbGVtZW50KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hy
b21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNz
TGF5ZXIqIHJvb3RMYXllcikKIHsKLSAgICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93
ZWJWaWV3LCByb290TGF5ZXIpOworICAgIGlmIChyb290TGF5ZXIpCisgICAgICAgIHdlYlZpZXdT
ZXRSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcsIHJvb3RMYXllcik7CisgICAgZWxzZQorICAg
ICAgICB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3KTsKIH0KIAogdm9p
ZCBDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpA
QCAtOTI3LDcgKzkzMCwxNCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyU3luYygpCiAKIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hy
b21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0CiB7CisgICAgIGlm
ICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBVU0Uo
Q0xVVFRFUikKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBDU1MgM0QgVHJhbnNm
b3JtCisgICAgcmV0dXJuIFRocmVlRFRyYW5zZm9ybVRyaWdnZXI7CisjZWxzZQogICAgIHJldHVy
biBBbGxUcmlnZ2VyczsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA5MWYyZGZhLi42ZTY0YWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC04NDYsNiArODQ2LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEd0a0FsbG9jYXRpb24qIGFsbG8KICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJf
dmlld19wYXJlbnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbik7CiAK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7CisK
ICAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KTsKICAgICBJbnRTaXplIG9sZFNpemU7CiAg
ICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkg
ewpAQCAtODU2LDYgKzg1NywxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9h
bGxvY2F0ZShHdGtXaWRnZXQqIHdpZGdldCwgR3RrQWxsb2NhdGlvbiogYWxsbwogICAgIFdlYktp
dDo6Q2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9t
ZUNsaWVudCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CiAgICAgY2hyb21lQ2xpZW50LT53
aWRnZXRTaXplQ2hhbmdlZChvbGRTaXplLCBJbnRTaXplKGFsbG9jYXRpb24tPndpZHRoLCBhbGxv
Y2F0aW9uLT5oZWlnaHQpKTsKICAgICBjaHJvbWVDbGllbnQtPmFkanVzdG1lbnRXYXRjaGVyKCkt
PnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnMoKTsKKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgaWYgKHdlYlZpZXctPnByaXYtPnJv
b3RMYXllckVtYmVkZGVyKSB7CisgICAgICAgIGFsbG9jYXRpb24tPnggPSAwOworICAgICAgICBh
bGxvY2F0aW9uLT55ID0gMDsKKyAgICAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19X
SURHRVQod2ViVmlldy0+cHJpdi0+cm9vdExheWVyRW1iZWRkZXIpLCBhbGxvY2F0aW9uKTsKKyAg
ICB9CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dyYWJfZm9jdXMo
R3RrV2lkZ2V0KiB3aWRnZXQpCkBAIC0zMzEwLDYgKzMzMTksMTEgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBndGtfZHJhZ19k
ZXN0X3NldF90YXJnZXRfbGlzdChHVEtfV0lER0VUKHdlYlZpZXcpLCBQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpOwogCiAgICAgcHJpdi0+
c2VsZlNjcm9sbGluZyA9IGZhbHNlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoQ0xVVFRFUikKKyAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7Cisg
ICAgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIgPSBOVUxMOworI2VuZGlmCiB9CiAKIEd0a1dpZGdl
dCogd2Via2l0X3dlYl92aWV3X25ldyh2b2lkKQpAQCAtNDg4NSwxMyArNDg5OSw3NiBAQCB2b2lk
IHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgd2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7
CisjaWYgVVNFKENMVVRURVIpCisKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZp
ZXctPnByaXY7CisKKyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR3RrQ2x1dHRlckVtYmVk
IHRvIGhvc3QgYWN0b3JzIGFzIHdlYiBsYXllcnMuCisgICAgaWYgKCFwcml2LT5yb290TGF5ZXJF
bWJlZGRlcikgeworICAgICAgICBwcml2LT5yb290TGF5ZXJFbWJlZGRlciA9IGd0a19jbHV0dGVy
X2VtYmVkX25ldygpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdl
YlZpZXcpLCBwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgICAgIGd0a193aWRnZXRfc2hv
dyhwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgfQorCisgICAgQ2x1dHRlckFjdG9yKiBz
dGFnZSA9IGd0a19jbHV0dGVyX2VtYmVkX2dldF9zdGFnZSAoR1RLX0NMVVRURVJfRU1CRUQgKHBy
aXYtPnJvb3RMYXllckVtYmVkZGVyKSk7CisKKyAgICAvLyBSZW1vdmUgdGhlIGV4aXN0aW5nIHJv
b3QgbGF5ZXIgZnJvbSB0aGUgc3RhZ2UKKyAgICBpZiAocHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIp
IHsKKyAgICAgICAgY2x1dHRlcl9jb250YWluZXJfcmVtb3ZlX2FjdG9yKENMVVRURVJfQ09OVEFJ
TkVSKHN0YWdlKSwgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwor
ICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7CisKKyAgICAgICAgRnJhbWUq
IGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7CisgICAgICAgIGZyYW1lLT52aWV3
KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CisgICAgfQorCisg
ICAgLy8gQWRkIGEgcm9vdCBsYXllciB0byB0aGUgc3RhZ2UKKyAgICBpZiAoZ3JhcGhpY3NMYXll
cikgeworICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IGdyYXBoaWNzTGF5ZXI7Cisg
ICAgICAgIC8vIHNldCB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIENsdXR0ZXJDb2xvciBzdGFn
ZV9jb2xvciA9IHsgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9OworICAgICAgICBjbHV0dGVyX3N0
YWdlX3NldF9jb2xvcihDTFVUVEVSX1NUQUdFIChzdGFnZSksICZzdGFnZV9jb2xvcik7CisgICAg
ICAgIGNsdXR0ZXJfY29udGFpbmVyX2FkZF9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSks
ICBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgY2x1
dHRlcl9hY3Rvcl9zaG93X2FsbChzdGFnZSk7CisgICAgfQorI2Vsc2UKICAgICBub3RJbXBsZW1l
bnRlZCgpOworI2VuZGlmCit9CisKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NM
YXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworI2lmIFVTRShDTFVUVEVSKQorICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKyAgICAvLyBEZXRhY2gg
dGhlIHJvb3QgbGF5ZXIgZnJvbSB0aGUgaG9zdGluZyB2aWV3Iik7CisgICAgZ3RrX2NvbnRhaW5l
cl9yZW1vdmUoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIp
OworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsKKyAgICBwcml2LT5yb290R3Jh
cGhpY3NMYXllciA9IE5VTEw7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYK
KyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHdlYlZpZXdTeW5jTGF5ZXJz
KGdwb2ludGVyIGRhdGEpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9X
RUJfVklFVyhkYXRhKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJh
bWUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiB2b2lkIHdlYlZpZXdNYXJrRm9y
U3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBzY2hlZHVsZVN5bmMpCiB7Cisj
aWYgVVNFKENMVVRURVIpCisgICAgZ190aW1lb3V0X2FkZCgwLCB3ZWJWaWV3U3luY0xheWVycywg
d2ViVmlldyk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKIH0KKwogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCA5MmMzNTVlLi45NzZmODIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaApAQCAtMzIsNiAr
MzIsMTEgQEAKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0d2Vidmlldy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoQ0xVVFRFUikKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0dGVyLWd0ay5oPgorI2lu
Y2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
V2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7CiBXZWJLaXRXZWJWaWV3KiBraXQo
V2ViQ29yZTo6UGFnZSopOwpAQCAtOTIsNiArOTcsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKICAg
ICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKICAgICBi
b29sIHNlbGZTY3JvbGxpbmc7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0xVVFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXll
cjsKKyAgICBHdGtXaWRnZXQqIHJvb3RMYXllckVtYmVkZGVyOworI2VuZGlmCiB9OwogCiB2b2lk
IHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyopOwpAQCAtMTE0LDYg
KzEyMyw3IEBAIHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCB3ZWJWaWV3U2V0
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcihXZWJLaXRXZWJWaWV3
Kik7CiB2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiwgZ2Jvb2xlYW4pOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZmY3Y2YzNS4uZGQxY2U0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTAzICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRpYWwgaW1w
bGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENsdXR0ZXIgYW5kIENsdXR0ZXItR3Rr
IHRvIGVuYWJsZSBBY2NlbGVyYXRlZCBDb21wb3NpdGluZworCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IEFkZCBXVEZfVVNFX0NMVVRURVJfR1RLIHRvIGdsb2JhbF9jcHBmbGFncy4KKyAgICAg
ICAgKiBHdGtMYXVuY2hlci9tYWluLmM6IAorICAgICAgICAobWFpbik6IENhbGwgZ3RrX2NsdXR0
ZXJfaW5pdCgpIGluc3RlYWQgb2YgZ3RrX2luaXQoKS4KKwogMjAxMS0xMi0wMyAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGpoYnVpbGQgaW5z
dGFsbGF0aW9uIGZvciBwZW9wbGUgd2hvIGhhdmUgdW51c3VhbCBNQUtFIGVudmlyb25tZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGJiMmIxYTguLjQxYzQwMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBAIC0xOCwxMiArMTgsMTQgQEAgUHJvZ3JhbXNfR3Rr
TGF1bmNoZXJfQ0ZMQUdTID0gXAogCS1hbnNpIFwKIAktZm5vLXN0cmljdC1hbGlhc2luZyBcCiAJ
JChnbG9iYWxfY2ZsYWdzKSBcCisJJChDTFVUVEVSX0dUS19DRkxBR1MpCiAJJChHVEtfQ0ZMQUdT
KSBcCiAJJChMSUJTT1VQX0NGTEFHUykKIAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfTERBREQgPSBc
CiAJbGlid2Via2l0Z3RrLUBXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtf
QVBJX01JTk9SX1ZFUlNJT05ALmxhIFwKIAlsaWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VCS0lUR1RL
X0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCisJ
JChDTFVUVEVSX0dUS19MSUJTKSAKIAkkKEdUS19MSUJTKSBcCiAJJChHTElCX0xJQlMpIFwKIAkk
KExJQlNPVVBfTElCUykgXApkaWZmIC0tZ2l0IGEvVG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jIGIv
VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCmluZGV4IDg3NmRhYjIuLjlmYTRmMmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYworKysgYi9Ub29scy9HdGtMYXVuY2hlci9tYWlu
LmMKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdC5oPgogCisjaWZkZWYgV1RGX1VTRV9DTFVUVEVSCisjaW5jbHVkZSA8Y2x1dHRl
ci1ndGsvY2x1dHRlci1ndGsuaD4KKyNlbmRpZgorCiBzdGF0aWMgZ2ludCB3aW5kb3dDb3VudCA9
IDA7CiAKIHN0YXRpYyBHdGtXaWRnZXQqIGNyZWF0ZVdpbmRvdyhXZWJLaXRXZWJWaWV3Kiogb3V0
V2ViVmlldyk7CkBAIC0zNzcsNyArMzgxLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgICAgIHsgMCwgMCwgMCwgMCwgMCwgMCwgMCB9CiAgICAgfTsKIAorI2lmZGVm
IFdURl9VU0VfQ0xVVFRFUgorICAgIGd0a19jbHV0dGVyX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNl
bHNlCiAgICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgogCiAgICAgR09wdGlvbkNv
bnRleHQgKmNvbnRleHQgPSBnX29wdGlvbl9jb250ZXh0X25ldygwKTsKICAgICBnX29wdGlvbl9j
b250ZXh0X2FkZF9tYWluX2VudHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRpb25zLCAwKTsK
ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2NGZmYzc5Li5k
NTM3ODVjIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0y
ODYsNiArMjg2LDggQEAgR1NUUkVBTUVSX1JFUVVJUkVEX1ZFUlNJT049MC4xMAogR1NUUkVBTUVS
X1BMVUdJTlNfQkFTRV9SRVFVSVJFRF9WRVJTSU9OPTAuMTAuMzAKIEVOQ0hBTlRfUkVRVUlSRURf
VkVSU0lPTj0wLjIyCiBMSUJGRlRXX1JFUVVJUkVEX1ZFUlNJT049My4yLjIKK0NMVVRURVJfUkVR
VUlSRURfVkVSU0lPTj0xLjguMworQ0xVVFRFUl9HVEtfUkVRVUlSRURfVkVSU0lPTj0xLjAuMgog
CiAjIEF2YWlsYWJsZSBtb2R1bGVzCiAjCkBAIC0zOTcsNyArMzk5LDcgQEAgQUNfTVNHX1JFU1VM
VChbJGVuYWJsZV93ZWJnbF0pCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nIHN1cHBvcnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9ydF0pCiBBQ19BUkdfV0lUSChhY2NlbGVyYXRl
ZF9jb21wb3NpdGluZywKLSAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmc9QDw6QG5vL29wZW5nbC9jYWlyb0A6PkBdLAorICAgICAgICAgICAg
QUNfSEVMUF9TVFJJTkcoWy0td2l0aC1hY2NlbGVyYXRlZC1jb21wb3NpdGluZz1APDpAbm8vb3Bl
bmdsL2NhaXJvL2NsdXR0ZXJAOj5AXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2Ug
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgKGV4cGVyaW1lbnRhbCkgW2RlZmF1bHQ9bm9dXSksCiAg
ICAgICAgICAgICBbXSwgW3dpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmc9Im5vIl0pCiBBQ19N
U0dfUkVTVUxUKFskd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ10pCkBAIC0xMDgyLDYgKzEw
ODQsMjAgQEAgaWYgdGVzdCAiJGVuYWJsZV93ZWJfYXVkaW8iID0gInllcyI7IHRoZW4KICAgICBB
Q19TVUJTVChbTElCRkZUV19MSUJTXSkKIGZpCiAKK2lmIHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIjsgdGhlbgorICAgUEtHX0NIRUNLX01PRFVMRVMoQ0FJ
Uk8sIGNhaXJvID49ICRDQUlST19SRVFVSVJFRF9WRVJTSU9OKQorICAgUEtHX0NIRUNLX01PRFVM
RVMoQ0xVVFRFUiwgY2x1dHRlci0xLjAgPj0gJENMVVRURVJfUkVRVUlSRURfVkVSU0lPTikKKyAg
IFBLR19DSEVDS19NT0RVTEVTKFtDTFVUVEVSX0dUS10sCisgICAgICAgICAgICAgICAgICAgICBb
Y2x1dHRlci1ndGstMS4wID49ICRDTFVUVEVSX0dUS19SRVFVSVJFRF9WRVJTSU9OXSkKKworICAg
QUNfU1VCU1QoQ0FJUk9fQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0FJUk9fTElCUykKKyAgIEFDX1NV
QlNUKENMVVRURVJfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9MSUJTKQorICAgQUNfU1VC
U1QoQ0xVVFRFUl9HVEtfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9HVEtfTElCUykKK2Zp
CisKICMgY2hlY2sgZm9yIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydAogaWYgdGVzdCAiJGVuYWJsZV9j
b3ZlcmFnZSIgPSAieWVzIjsgdGhlbgogICAgQ09WRVJBR0VfQ0ZMQUdTPSItTUQiCkBAIC0xMTU2
LDkgKzExNzIsMTAgQEAgQU1fQ09ORElUSU9OQUwoW1VTRV9QQU5HT10sIFt0ZXN0ICIkd2l0aF9m
b250X2JhY2tlbmQiID0gInBhbmdvIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX0dTVFJFQU1FUl0s
IFt0ZXN0ICIkaGF2ZV9nc3RyZWFtZXIiID0gInllcyJdKQogCiAjIEFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nIGNvbmRpdGlvbmFsCi1BTV9DT05ESVRJT05BTChbVVNFX0FDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjYWlybyIg
fHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gIm9wZW5nbCJdKQorQU1f
Q09ORElUSU9OQUwoW1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0ICIkd2l0aF9h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nIiA9ICJvcGVuZ2wiIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2Nv
bXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX1RFWFRVUkVfTUFQ
UEVSX0NBSVJPXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjYWly
byJdKQogQU1fQ09ORElUSU9OQUwoW1VTRV9URVhUVVJFX01BUFBFUl9HTF0sIFt0ZXN0ICIkd2l0
aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3BlbmdsIl0pCitBTV9DT05ESVRJT05BTChb
VVNFX0NMVVRURVJdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNs
dXR0ZXIiXSkKIAogIyBXZWJLaXQgZmVhdHVyZSBjb25kaXRpb25hbHMKIEFNX0NPTkRJVElPTkFM
KFtFTkFCTEVfREVCVUddLFt0ZXN0ICIkZW5hYmxlX2RlYnVnX2ZlYXR1cmVzIiA9ICJ5ZXMiXSkK
</data>
<flag name="commit-queue"
          id="117310"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117767</attachid>
            <date>2011-12-03 10:52:18 -0800</date>
            <delta_ts>2011-12-03 11:15:13 -0800</delta_ts>
            <desc>Proposed Patch3</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>19627</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi40Y2YyOThh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNWZiYzQ4Li5lNjk5YjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgYW55IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIgcGF0aC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgR3JhcGhp
Y3NMYXllckNsdXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOiBEZWZpbmUgUGxhdGZvcm1MYXllciB0eXBlLCB3aGljaCByZXByZXNlbnRzIENsdXR0ZXJB
Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJD
bHV0dGVyLmNwcDogQm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaDogQm9pbGVy
cGxhdGUgaW1wbGVtZW50YXRpb24uCisKIDIwMTEtMTItMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGlu
Z0B3ZWJraXQub3JnPgogCiAgICAgICAgIFNocmluayBDU1NWYWx1ZUxpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDc1ODkzNGMuLjlkMDUyY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
NTc1LDYgKzU3NSwxMSBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAKIGVuZGlmICAjIEVORCBVU0VURVhU
VVJFX01BUFBFUl9HTAogCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9jcHBmbGFncyArPSBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlcgorZW5k
aWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCkBA
IC04MDEsNiArODA2LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoQ0FJUk9fQ0ZM
QUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChF
TkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xVRV9DRkxBR1MpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDlmMTgzOWU3Li5hNTk5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTUwNjksNiArNTA2OSwxMyBAQCBlbmRpZiAgIyBFTkQgRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FCiAjIENvbXBpbGUgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBzdXBwb3J0CiAjIC0tLQogaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCitpZiBVU0Vf
Q0xVVFRFUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCitlbmRp
ZiAgIyBFTkQgVVNFX0NMVVRURVIKKworaWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKQEAgLTUw
NzYsNyArNTA4Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oCi1pZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVndGtfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1h
cHBlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2ZjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC03NCw2ICs3
NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsK
IH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1
dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVyQWN0b3IgUGxh
dGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRjM2MuLmNkMDg2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIv
R3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2x1dHRlci5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKQEAgLTQxLDEyICs0MiwxOSBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiBHcmFw
aGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCiB7CisgICAgLy8gQ2x1dHRl
clJlY3RhbmdsZSB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgZGVidWcgYm9yZGVyLgorICAgIG1f
bGF5ZXIgPSBjbHV0dGVyX3JlY3RhbmdsZV9uZXcoKTsKIH0KIAogR3JhcGhpY3NMYXllckNsdXR0
ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0NsdXR0ZXJBY3RvciogR3JhcGhp
Y3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpzZXROZWVkc0Rpc3BsYXkoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgKaW5k
ZXggZGIyOWIxZi4uOTdlM2Y4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaApAQCAt
MzAsNiArMzAsNyBAQAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw4ICszOSwxMSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJDbHV0dGVyKCk7CiAKKyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1M
YXllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworcHJp
dmF0ZToKKyAgICBDbHV0dGVyQWN0b3IqIG1fbGF5ZXI7IC8vIFRoZSBtYWluIGxheWVyCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYWMyMTBmYi4uMWUz
ODY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTAzICBKb29u
ZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRp
YWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTkK
KworICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBhZGQgYSBHdGtDbHV0dGVyRW1iZWQgdG8g
ZW1iZWQgQ2x1dHRlciBBY3RvcnMgaW4gV2ViS2l0V2ViVmlldyBhbmQgc2V0IHRoZSByb290IEdy
YXBoaWNzTGF5ZXIgdG8gV2ViS2l0V2ViVmlldyB3aGVuIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5n
IG5lZWRzIHRvIGJlIGVuYWJsZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogU2V0IHRoZSByb290IEdyYXBoaWNzTGF5ZXIgdG8gV2Vi
S2l0V2ViVmlldy4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9z
aXRpbmdUcmlnZ2Vycyk6IEFsbG93IHRvIHN1cHBvcnQgQ1NTIDNEIFRyYW5zZm9ybXMgb25seS4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IFNldCB0aGUgc2l6ZSBvZiBHdGtDbHV0dGVyRW1iZWQgd2hl
biB0aGUgdmlldyBpcyBjaGFuZ2VkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpCisg
ICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIpOiBBZGQgdGhlIEd0a0NsdXR0ZXJF
bWJlZCB0byB0aGUgV2ViS2l0V2ViVmlldyBhcyBhIGNoaWxkLgorICAgICAgICAod2ViVmlld0Rl
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogUmVtb3ZlIHRoZSBHdGtDbHV0dGVyRW1iZWQgZnJvbSB0
aGUgV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYlZpZXdTeW5jTGF5ZXJzKTogQ29tbWl0IGxh
eWVyIGNoYW5nZXMuCisgICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOiBTZXQgdG8gY2FsbCB3
ZWJWaWV3U3luY0xheWVycyB1c2luZyBnX3RpbWVvdXRfYWRkLgorICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBGdWxsc2NyZWVuIGNv
bnRyb2xsZXIgc3VwcG9ydCBmb3IgdGhlIG5ldyBXZWJLaXQgRnVsbHNjcmVlbiBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KaW5kZXggZTM0YjQ0Mi4uNjFhNTc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05V
bWFrZWZpbGUuYW0KQEAgLTY1LDYgKzY1LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUEYKIAkk
KEdMSUJfQ0ZMQUdTKSBcCiAJJChHU1RSRUFNRVJfQ0ZMQUdTKSBcCiAJJChHVEtfQ0ZMQUdTKSBc
CisJJChDTFVUVEVSX0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChISUxE
T05fQ0ZMQUdTKSBcCiAJJChMSUJGRlRXX0NGTEFHUykgXAogCSQoTElCU09VUF9DRkxBR1MpIFwK
QEAgLTg3LDYgKzg5LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0xJQkEKIAlsaWJqYXZhc2NyaXB0
Y29yZWd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5P
Ul9WRVJTSU9OQC5sYSBcCiAJJCh3ZWJjb3JlX2xkZmxhZ3MpIFwKIAkkKENBSVJPX0xJQlMpIFwK
KwkkKENMVVRURVJfTElCUykgXAorCSQoQ0xVVFRFUl9HVEtfTElCUykgXAogCSQoQ09WRVJBR0Vf
TERGTEFHUykgXAogCSQoRU5DSEFOVF9MSUJTKSBcCiAJJChGUkVFVFlQRV9MSUJTKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAppbmRleCBhZDhjZjlhLi4zN2UwZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTkxMiw3ICs5MTIsMTAgQEAg
dm9pZCBDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50KiBlbGVtZW50KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hy
b21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNz
TGF5ZXIqIHJvb3RMYXllcikKIHsKLSAgICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93
ZWJWaWV3LCByb290TGF5ZXIpOworICAgIGlmIChyb290TGF5ZXIpCisgICAgICAgIHdlYlZpZXdT
ZXRSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcsIHJvb3RMYXllcik7CisgICAgZWxzZQorICAg
ICAgICB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3KTsKIH0KIAogdm9p
ZCBDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpA
QCAtOTI3LDcgKzkzMCwxNCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyU3luYygpCiAKIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hy
b21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0CiB7CisgICAgIGlm
ICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBVU0Uo
Q0xVVFRFUikKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBDU1MgM0QgVHJhbnNm
b3JtCisgICAgcmV0dXJuIFRocmVlRFRyYW5zZm9ybVRyaWdnZXI7CisjZWxzZQogICAgIHJldHVy
biBBbGxUcmlnZ2VyczsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA5MWYyZGZhLi42ZTY0YWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC04NDYsNiArODQ2LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEd0a0FsbG9jYXRpb24qIGFsbG8KICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJf
dmlld19wYXJlbnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCwgYWxsb2NhdGlvbik7CiAK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7CisK
ICAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KTsKICAgICBJbnRTaXplIG9sZFNpemU7CiAg
ICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkg
ewpAQCAtODU2LDYgKzg1NywxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9h
bGxvY2F0ZShHdGtXaWRnZXQqIHdpZGdldCwgR3RrQWxsb2NhdGlvbiogYWxsbwogICAgIFdlYktp
dDo6Q2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9t
ZUNsaWVudCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CiAgICAgY2hyb21lQ2xpZW50LT53
aWRnZXRTaXplQ2hhbmdlZChvbGRTaXplLCBJbnRTaXplKGFsbG9jYXRpb24tPndpZHRoLCBhbGxv
Y2F0aW9uLT5oZWlnaHQpKTsKICAgICBjaHJvbWVDbGllbnQtPmFkanVzdG1lbnRXYXRjaGVyKCkt
PnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnMoKTsKKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgaWYgKHdlYlZpZXctPnByaXYtPnJv
b3RMYXllckVtYmVkZGVyKSB7CisgICAgICAgIGFsbG9jYXRpb24tPnggPSAwOworICAgICAgICBh
bGxvY2F0aW9uLT55ID0gMDsKKyAgICAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19X
SURHRVQod2ViVmlldy0+cHJpdi0+cm9vdExheWVyRW1iZWRkZXIpLCBhbGxvY2F0aW9uKTsKKyAg
ICB9CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dyYWJfZm9jdXMo
R3RrV2lkZ2V0KiB3aWRnZXQpCkBAIC0zMzEwLDYgKzMzMTksMTEgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBndGtfZHJhZ19k
ZXN0X3NldF90YXJnZXRfbGlzdChHVEtfV0lER0VUKHdlYlZpZXcpLCBQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpOwogCiAgICAgcHJpdi0+
c2VsZlNjcm9sbGluZyA9IGZhbHNlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoQ0xVVFRFUikKKyAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7Cisg
ICAgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIgPSBOVUxMOworI2VuZGlmCiB9CiAKIEd0a1dpZGdl
dCogd2Via2l0X3dlYl92aWV3X25ldyh2b2lkKQpAQCAtNDg4NSwxMyArNDg5OSw3NiBAQCB2b2lk
IHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgd2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7
CisjaWYgVVNFKENMVVRURVIpCisKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZp
ZXctPnByaXY7CisKKyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR3RrQ2x1dHRlckVtYmVk
IHRvIGhvc3QgYWN0b3JzIGFzIHdlYiBsYXllcnMuCisgICAgaWYgKCFwcml2LT5yb290TGF5ZXJF
bWJlZGRlcikgeworICAgICAgICBwcml2LT5yb290TGF5ZXJFbWJlZGRlciA9IGd0a19jbHV0dGVy
X2VtYmVkX25ldygpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdl
YlZpZXcpLCBwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgICAgIGd0a193aWRnZXRfc2hv
dyhwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgfQorCisgICAgQ2x1dHRlckFjdG9yKiBz
dGFnZSA9IGd0a19jbHV0dGVyX2VtYmVkX2dldF9zdGFnZSAoR1RLX0NMVVRURVJfRU1CRUQgKHBy
aXYtPnJvb3RMYXllckVtYmVkZGVyKSk7CisKKyAgICAvLyBSZW1vdmUgdGhlIGV4aXN0aW5nIHJv
b3QgbGF5ZXIgZnJvbSB0aGUgc3RhZ2UKKyAgICBpZiAocHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIp
IHsKKyAgICAgICAgY2x1dHRlcl9jb250YWluZXJfcmVtb3ZlX2FjdG9yKENMVVRURVJfQ09OVEFJ
TkVSKHN0YWdlKSwgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwor
ICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7CisKKyAgICAgICAgRnJhbWUq
IGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7CisgICAgICAgIGZyYW1lLT52aWV3
KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CisgICAgfQorCisg
ICAgLy8gQWRkIGEgcm9vdCBsYXllciB0byB0aGUgc3RhZ2UKKyAgICBpZiAoZ3JhcGhpY3NMYXll
cikgeworICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IGdyYXBoaWNzTGF5ZXI7Cisg
ICAgICAgIC8vIHNldCB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIENsdXR0ZXJDb2xvciBzdGFn
ZV9jb2xvciA9IHsgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9OworICAgICAgICBjbHV0dGVyX3N0
YWdlX3NldF9jb2xvcihDTFVUVEVSX1NUQUdFIChzdGFnZSksICZzdGFnZV9jb2xvcik7CisgICAg
ICAgIGNsdXR0ZXJfY29udGFpbmVyX2FkZF9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSks
ICBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgY2x1
dHRlcl9hY3Rvcl9zaG93X2FsbChzdGFnZSk7CisgICAgfQorI2Vsc2UKICAgICBub3RJbXBsZW1l
bnRlZCgpOworI2VuZGlmCit9CisKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NM
YXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworI2lmIFVTRShDTFVUVEVSKQorICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKyAgICAvLyBEZXRhY2gg
dGhlIHJvb3QgbGF5ZXIgZnJvbSB0aGUgaG9zdGluZyB2aWV3Iik7CisgICAgZ3RrX2NvbnRhaW5l
cl9yZW1vdmUoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIp
OworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsKKyAgICBwcml2LT5yb290R3Jh
cGhpY3NMYXllciA9IE5VTEw7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYK
KyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHdlYlZpZXdTeW5jTGF5ZXJz
KGdwb2ludGVyIGRhdGEpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9X
RUJfVklFVyhkYXRhKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJh
bWUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiB2b2lkIHdlYlZpZXdNYXJrRm9y
U3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBzY2hlZHVsZVN5bmMpCiB7Cisj
aWYgVVNFKENMVVRURVIpCisgICAgZ190aW1lb3V0X2FkZCgwLCB3ZWJWaWV3U3luY0xheWVycywg
d2ViVmlldyk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKIH0KKwogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCA5MmMzNTVlLi45NzZmODIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaApAQCAtMzIsNiAr
MzIsMTEgQEAKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0d2Vidmlldy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoQ0xVVFRFUikKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0dGVyLWd0ay5oPgorI2lu
Y2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
V2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7CiBXZWJLaXRXZWJWaWV3KiBraXQo
V2ViQ29yZTo6UGFnZSopOwpAQCAtOTIsNiArOTcsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKICAg
ICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKICAgICBi
b29sIHNlbGZTY3JvbGxpbmc7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0xVVFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXll
cjsKKyAgICBHdGtXaWRnZXQqIHJvb3RMYXllckVtYmVkZGVyOworI2VuZGlmCiB9OwogCiB2b2lk
IHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyopOwpAQCAtMTE0LDYg
KzEyMyw3IEBAIHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCB3ZWJWaWV3U2V0
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKK2dib29sZWFuIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcihXZWJLaXRXZWJWaWV3
Kik7CiB2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiwgZ2Jvb2xlYW4pOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZmY3Y2YzNS4uMmZjY2NhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTAzICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRpYWwgaW1w
bGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENsdXR0ZXIgYW5kIENsdXR0ZXItR3Rr
IHRvIGVuYWJsZSBBY2NlbGVyYXRlZCBDb21wb3NpdGluZworCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IEFkZCBXVEZfVVNFX0NMVVRURVIgdG8gZ2xvYmFsX2NwcGZsYWdzLgorICAgICAgICAq
IEd0a0xhdW5jaGVyL21haW4uYzogCisgICAgICAgIChtYWluKTogQ2FsbCBndGtfY2x1dHRlcl9p
bml0KCkgaW5zdGVhZCBvZiBndGtfaW5pdCgpLgorCiAyMDExLTEyLTAzICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggamhidWlsZCBpbnN0YWxs
YXRpb24gZm9yIHBlb3BsZSB3aG8gaGF2ZSB1bnVzdWFsIE1BS0UgZW52aXJvbm1lbnQKZGlmZiAt
LWdpdCBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtIGIvVG9vbHMvR05VbWFrZWZpbGUuYW0KaW5kZXgg
YmIyYjFhOC4uZWQ1OGJkNyAxMDA2NDQKLS0tIGEvVG9vbHMvR05VbWFrZWZpbGUuYW0KKysrIGIv
VG9vbHMvR05VbWFrZWZpbGUuYW0KQEAgLTMzLDYgKzMzLDEzIEBAIFByb2dyYW1zX0d0a0xhdW5j
aGVyX0xERkxBR1MgPSBcCiAJLW5vLWZhc3QtaW5zdGFsbCBcCiAJLW5vLWluc3RhbGwKIAoraWYg
VVNFX0NMVVRURVIKK1Byb2dyYW1zX0d0a0xhdW5jaGVyX0NGTEFHUyArPSBcCisJJChDTFVUVEVS
X0dUS19DRkxBR1MpCitQcm9ncmFtc19HdGtMYXVuY2hlcl9MREFERCArPSBcCisJJChDTFVUVEVS
X0dUS19MSUJTKQorZW5kaWYgI0VORCBVU0VfQ0xVVFRFUgorCiAjIGxpYldlYkNvcmVJbnRlcm5h
bHMKICMgV2UgbXVzdCBzcGxpdCBvZmYgdGhlIHdpbmRvdy5pbnRlcm5hbHMgaW1wbGVtZW50YXRp
b24gaW50byBhIHNlcGFyYXRlCiAjIGNvbnZlbmllbmNlIGxpYnJhcnkgYmVjYXVzZSBpdCByZXF1
aXJlcyBhIGRpZmZlcmVudCBpbmNsdWRlIHBhdGggb3JkZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0d0
a0xhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYwppbmRleCA4NzZkYWIy
Li45ZmE0ZjJmIDEwMDY0NAotLS0gYS9Ub29scy9HdGtMYXVuY2hlci9tYWluLmMKKysrIGIvVG9v
bHMvR3RrTGF1bmNoZXIvbWFpbi5jCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPHN0cmlu
Zy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAorI2lmZGVmIFdURl9VU0VfQ0xVVFRF
UgorI2luY2x1ZGUgPGNsdXR0ZXItZ3RrL2NsdXR0ZXItZ3RrLmg+CisjZW5kaWYKKwogc3RhdGlj
IGdpbnQgd2luZG93Q291bnQgPSAwOwogCiBzdGF0aWMgR3RrV2lkZ2V0KiBjcmVhdGVXaW5kb3co
V2ViS2l0V2ViVmlldyoqIG91dFdlYlZpZXcpOwpAQCAtMzc3LDcgKzM4MSwxMSBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICB7IDAsIDAsIDAsIDAsIDAsIDAsIDAg
fQogICAgIH07CiAKKyNpZmRlZiBXVEZfVVNFX0NMVVRURVIKKyAgICBndGtfY2x1dHRlcl9pbml0
KCZhcmdjLCAmYXJndik7CisjZWxzZQogICAgIGd0a19pbml0KCZhcmdjLCAmYXJndik7CisjZW5k
aWYKIAogICAgIEdPcHRpb25Db250ZXh0ICpjb250ZXh0ID0gZ19vcHRpb25fY29udGV4dF9uZXco
MCk7CiAgICAgZ19vcHRpb25fY29udGV4dF9hZGRfbWFpbl9lbnRyaWVzKGNvbnRleHQsIGNvbW1h
bmRMaW5lT3B0aW9ucywgMCk7CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUu
YWMKaW5kZXggNjRmZmM3OS4uZDUzNzg1YyAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBi
L2NvbmZpZ3VyZS5hYwpAQCAtMjg2LDYgKzI4Niw4IEBAIEdTVFJFQU1FUl9SRVFVSVJFRF9WRVJT
SU9OPTAuMTAKIEdTVFJFQU1FUl9QTFVHSU5TX0JBU0VfUkVRVUlSRURfVkVSU0lPTj0wLjEwLjMw
CiBFTkNIQU5UX1JFUVVJUkVEX1ZFUlNJT049MC4yMgogTElCRkZUV19SRVFVSVJFRF9WRVJTSU9O
PTMuMi4yCitDTFVUVEVSX1JFUVVJUkVEX1ZFUlNJT049MS44LjMKK0NMVVRURVJfR1RLX1JFUVVJ
UkVEX1ZFUlNJT049MS4wLjIKIAogIyBBdmFpbGFibGUgbW9kdWxlcwogIwpAQCAtMzk3LDcgKzM5
OSw3IEBAIEFDX01TR19SRVNVTFQoWyRlbmFibGVfd2ViZ2xdKQogIyBjaGVjayB3aGV0aGVyIHRv
IGVuYWJsZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBzdXBwb3J0CiBBQ19NU0dfQ0hFQ0tJTkco
W3doZXRoZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnRdKQogQUNf
QVJHX1dJVEgoYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcsCi0gICAgICAgICAgICBBQ19IRUxQX1NU
UklORyhbLS13aXRoLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nPUA8OkBuby9vcGVuZ2wvY2Fpcm9A
Oj5AXSwKKyAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYWNjZWxlcmF0ZWQtY29t
cG9zaXRpbmc9QDw6QG5vL29wZW5nbC9jYWlyby9jbHV0dGVyQDo+QF0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbdXNlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIChleHBlcmltZW50YWwp
IFtkZWZhdWx0PW5vXV0pLAogICAgICAgICAgICAgW10sIFt3aXRoX2FjY2VsZXJhdGVkX2NvbXBv
c2l0aW5nPSJubyJdKQogQUNfTVNHX1JFU1VMVChbJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRp
bmddKQpAQCAtMTA4Miw2ICsxMDg0LDIwIEBAIGlmIHRlc3QgIiRlbmFibGVfd2ViX2F1ZGlvIiA9
ICJ5ZXMiOyB0aGVuCiAgICAgQUNfU1VCU1QoW0xJQkZGVFdfTElCU10pCiBmaQogCitpZiB0ZXN0
ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciI7IHRoZW4KKyAgIFBL
R19DSEVDS19NT0RVTEVTKENBSVJPLCBjYWlybyA+PSAkQ0FJUk9fUkVRVUlSRURfVkVSU0lPTikK
KyAgIFBLR19DSEVDS19NT0RVTEVTKENMVVRURVIsIGNsdXR0ZXItMS4wID49ICRDTFVUVEVSX1JF
UVVJUkVEX1ZFUlNJT04pCisgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbQ0xVVFRFUl9HVEtdLAorICAg
ICAgICAgICAgICAgICAgICAgW2NsdXR0ZXItZ3RrLTEuMCA+PSAkQ0xVVFRFUl9HVEtfUkVRVUlS
RURfVkVSU0lPTl0pCisKKyAgIEFDX1NVQlNUKENBSVJPX0NGTEFHUykKKyAgIEFDX1NVQlNUKENB
SVJPX0xJQlMpCisgICBBQ19TVUJTVChDTFVUVEVSX0NGTEFHUykKKyAgIEFDX1NVQlNUKENMVVRU
RVJfTElCUykKKyAgIEFDX1NVQlNUKENMVVRURVJfR1RLX0NGTEFHUykKKyAgIEFDX1NVQlNUKENM
VVRURVJfR1RLX0xJQlMpCitmaQorCiAjIGNoZWNrIGZvciBjb2RlIGNvdmVyYWdlIHN1cHBvcnQK
IGlmIHRlc3QgIiRlbmFibGVfY292ZXJhZ2UiID0gInllcyI7IHRoZW4KICAgIENPVkVSQUdFX0NG
TEFHUz0iLU1EIgpAQCAtMTE1Niw5ICsxMTcyLDEwIEBAIEFNX0NPTkRJVElPTkFMKFtVU0VfUEFO
R09dLCBbdGVzdCAiJHdpdGhfZm9udF9iYWNrZW5kIiA9ICJwYW5nbyJdKQogQU1fQ09ORElUSU9O
QUwoW1VTRV9HU1RSRUFNRVJdLCBbdGVzdCAiJGhhdmVfZ3N0cmVhbWVyIiA9ICJ5ZXMiXSkKIAog
IyBBY2NlbGVyYXRlZCBjb21wb3NpdGluZyBjb25kaXRpb25hbAotQU1fQ09ORElUSU9OQUwoW1VT
RV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21w
b3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5n
IiA9ICJvcGVuZ2wiXSkKK0FNX0NPTkRJVElPTkFMKFtVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkddLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNhaXJvIiB8fCB0
ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3BlbmdsIiB8fCB0ZXN0ICIk
d2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciJdKQogQU1fQ09ORElUSU9O
QUwoW1VTRV9URVhUVVJFX01BUFBFUl9DQUlST10sIFt0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9j
b21wb3NpdGluZyIgPSAiY2Fpcm8iXSkKIEFNX0NPTkRJVElPTkFMKFtVU0VfVEVYVFVSRV9NQVBQ
RVJfR0xdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gIm9wZW5nbCJd
KQorQU1fQ09ORElUSU9OQUwoW1VTRV9DTFVUVEVSXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiAKICMgV2ViS2l0IGZlYXR1cmUgY29uZGl0aW9u
YWxzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RFQlVHXSxbdGVzdCAiJGVuYWJsZV9kZWJ1Z19m
ZWF0dXJlcyIgPSAieWVzIl0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117770</attachid>
            <date>2011-12-03 11:15:13 -0800</date>
            <delta_ts>2011-12-04 01:56:32 -0800</delta_ts>
            <desc>Proposed Patch4</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>19468</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi40Y2YyOThh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNWZiYzQ4Li5lNjk5YjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgYW55IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIgcGF0aC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgR3JhcGhp
Y3NMYXllckNsdXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOiBEZWZpbmUgUGxhdGZvcm1MYXllciB0eXBlLCB3aGljaCByZXByZXNlbnRzIENsdXR0ZXJB
Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJD
bHV0dGVyLmNwcDogQm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaDogQm9pbGVy
cGxhdGUgaW1wbGVtZW50YXRpb24uCisKIDIwMTEtMTItMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGlu
Z0B3ZWJraXQub3JnPgogCiAgICAgICAgIFNocmluayBDU1NWYWx1ZUxpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDc1ODkzNGMuLjlkMDUyY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
NTc1LDYgKzU3NSwxMSBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAKIGVuZGlmICAjIEVORCBVU0VURVhU
VVJFX01BUFBFUl9HTAogCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9jcHBmbGFncyArPSBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlcgorZW5k
aWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCkBA
IC04MDEsNiArODA2LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoQ0FJUk9fQ0ZM
QUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChF
TkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xVRV9DRkxBR1MpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDlmMTgzOWU3Li5hNTk5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTUwNjksNiArNTA2OSwxMyBAQCBlbmRpZiAgIyBFTkQgRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FCiAjIENvbXBpbGUgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBzdXBwb3J0CiAjIC0tLQogaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCitpZiBVU0Vf
Q0xVVFRFUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCitlbmRp
ZiAgIyBFTkQgVVNFX0NMVVRURVIKKworaWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKQEAgLTUw
NzYsNyArNTA4Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oCi1pZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVndGtfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1h
cHBlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2ZjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC03NCw2ICs3
NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsK
IH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1
dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVyQWN0b3IgUGxh
dGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRjM2MuLmNkMDg2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIv
R3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2x1dHRlci5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKQEAgLTQxLDEyICs0MiwxOSBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiBHcmFw
aGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCiB7CisgICAgLy8gQ2x1dHRl
clJlY3RhbmdsZSB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgZGVidWcgYm9yZGVyLgorICAgIG1f
bGF5ZXIgPSBjbHV0dGVyX3JlY3RhbmdsZV9uZXcoKTsKIH0KIAogR3JhcGhpY3NMYXllckNsdXR0
ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0NsdXR0ZXJBY3RvciogR3JhcGhp
Y3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpzZXROZWVkc0Rpc3BsYXkoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgKaW5k
ZXggZGIyOWIxZi4uOTdlM2Y4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaApAQCAt
MzAsNiArMzAsNyBAQAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw4ICszOSwxMSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NMYXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJDbHV0dGVyKCk7CiAKKyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1M
YXllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworcHJp
dmF0ZToKKyAgICBDbHV0dGVyQWN0b3IqIG1fbGF5ZXI7IC8vIFRoZSBtYWluIGxheWVyCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYWMyMTBmYi4uNDNm
NjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEyLTAzICBKb29u
ZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEluaXRp
YWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTkK
KworICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBhZGQgYSBHdGtDbHV0dGVyRW1iZWQgdG8g
ZW1iZWQgQ2x1dHRlciBBY3RvcnMgaW4gV2ViS2l0V2ViVmlldyBhbmQgCisgICAgICAgIHNldCB0
aGUgcm9vdCBHcmFwaGljc0xheWVyIHRvIFdlYktpdFdlYlZpZXcgd2hlbiBBY2NlbGVyYXRlZCBD
b21wb3NpdGluZyBuZWVkcyB0byBiZSBlbmFibGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IFNldCB0aGUgcm9vdCBHcmFwaGljc0xh
eWVyIHRvIFdlYktpdFdlYlZpZXcuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6YWxs
b3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMpOiBBbGxvdyB0byBzdXBwb3J0IENTUyAzRCBUcmFuc2Zv
cm1zIG9ubHkuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUpOiBTZXQgdGhlIHNpemUgb2YgR3RrQ2x1dHRl
ckVtYmVkIHdoZW4gdGhlIHZpZXcgaXMgY2hhbmdlZC4KKyAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19pbml0KQorICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKTogQWRkIHRoZSBH
dGtDbHV0dGVyRW1iZWQgdG8gdGhlIFdlYktpdFdlYlZpZXcgYXMgYSBjaGlsZC4KKyAgICAgICAg
KHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcik6IFJlbW92ZSB0aGUgR3RrQ2x1dHRlckVt
YmVkIGZyb20gdGhlIFdlYktpdFdlYlZpZXcuCisgICAgICAgICh3ZWJWaWV3U3luY0xheWVycyk6
IENvbW1pdCBsYXllciBjaGFuZ2VzLgorICAgICAgICAod2ViVmlld01hcmtGb3JTeW5jKTogU2V0
IHRvIGNhbGwgd2ViVmlld1N5bmNMYXllcnMgdXNpbmcgZ190aW1lb3V0X2FkZC4KKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoKKwogMjAxMS0xMi0wMiAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gRnVs
bHNjcmVlbiBjb250cm9sbGVyIHN1cHBvcnQgZm9yIHRoZSBuZXcgV2ViS2l0IEZ1bGxzY3JlZW4g
QVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IGUzNGI0NDIuLjYxYTU3OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC02NSw2ICs2NSw4IEBAIGxpYndlYmtpdGd0a19AV0VC
S0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9s
YV9DUFBGCiAJJChHTElCX0NGTEFHUykgXAogCSQoR1NUUkVBTUVSX0NGTEFHUykgXAogCSQoR1RL
X0NGTEFHUykgXAorCSQoQ0xVVFRFUl9DRkxBR1MpIFwKKwkkKENMVVRURVJfR1RLX0NGTEFHUykg
XAogCSQoSElMRE9OX0NGTEFHUykgXAogCSQoTElCRkZUV19DRkxBR1MpIFwKIAkkKExJQlNPVVBf
Q0ZMQUdTKSBcCkBAIC04Nyw2ICs4OSw4IEBAIGxpYndlYmtpdGd0a19AV0VCS0lUR1RLX0FQSV9N
QUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9MSUJBCiAJbGli
amF2YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdU
S19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAogCSQod2ViY29yZV9sZGZsYWdzKSBcCiAJJChDQUlS
T19MSUJTKSBcCisJJChDTFVUVEVSX0xJQlMpIFwKKwkkKENMVVRURVJfR1RLX0xJQlMpIFwKIAkk
KENPVkVSQUdFX0xERkxBR1MpIFwKIAkkKEVOQ0hBTlRfTElCUykgXAogCSQoRlJFRVRZUEVfTElC
UykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAKaW5kZXggYWQ4Y2Y5YS4uMzdlMGQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC05MTIsNyAr
OTEyLDEwIEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCogZWxlbWVudCkKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiB2b2lkIENocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1l
LCBHcmFwaGljc0xheWVyKiByb290TGF5ZXIpCiB7Ci0gICAgd2ViVmlld1NldFJvb3RHcmFwaGlj
c0xheWVyKG1fd2ViVmlldywgcm9vdExheWVyKTsKKyAgICBpZiAocm9vdExheWVyKQorICAgICAg
ICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3LCByb290TGF5ZXIpOworICAg
IGVsc2UKKyAgICAgICAgd2ViVmlld0RldGFjaFJvb3RHcmFwaGljc0xheWVyKG1fd2ViVmlldyk7
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkKQEAgLTkyNyw3ICs5MzAsMTQgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllclN5bmMoKQogCiBDaHJvbWVDbGllbnQ6OkNvbXBvc2l0aW5nVHJpZ2dl
ckZsYWdzIENocm9tZUNsaWVudDo6YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdAog
eworICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisjaWYgVVNFKENMVVRURVIpCisgICAgLy8gQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgQ1NT
IDNEIFRyYW5zZm9ybQorICAgIHJldHVybiBUaHJlZURUcmFuc2Zvcm1UcmlnZ2VyOworI2Vsc2UK
ICAgICByZXR1cm4gQWxsVHJpZ2dlcnM7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggOTFmMmRmYS4uZmY0ODU5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtODQ2LDYg
Kzg0Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlKEd0a1dp
ZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvCiAgICAgR1RLX1dJREdFVF9DTEFTUyh3
ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSh3aWRnZXQsIGFsbG9j
YXRpb24pOwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3
aWRnZXQpOworCiAgICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmlldyk7CiAgICAgSW50U2l6ZSBv
bGRTaXplOwogICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpIHsKQEAgLTg1Niw2ICs4NTcsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92
aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG8K
ICAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpDaHJvbWVDbGllbnQqPihwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwogICAgIGNocm9t
ZUNsaWVudC0+d2lkZ2V0U2l6ZUNoYW5nZWQob2xkU2l6ZSwgSW50U2l6ZShhbGxvY2F0aW9uLT53
aWR0aCwgYWxsb2NhdGlvbi0+aGVpZ2h0KSk7CiAgICAgY2hyb21lQ2xpZW50LT5hZGp1c3RtZW50
V2F0Y2hlcigpLT51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzKCk7CisKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQorICAgIGlmICh3ZWJWaWV3
LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlcikgeworICAgICAgICBhbGxvY2F0aW9uLT54ID0gMDsK
KyAgICAgICAgYWxsb2NhdGlvbi0+eSA9IDA7CisgICAgICAgIGd0a193aWRnZXRfc2l6ZV9hbGxv
Y2F0ZShHVEtfV0lER0VUKHdlYlZpZXctPnByaXYtPnJvb3RMYXllckVtYmVkZGVyKSwgYWxsb2Nh
dGlvbik7CisgICAgfQorI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19n
cmFiX2ZvY3VzKEd0a1dpZGdldCogd2lkZ2V0KQpAQCAtMzMxMCw2ICszMzE5LDExIEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
Z3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJWaWV3KSwgUGFzdGVi
b2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpKTsKIAog
ICAgIHByaXYtPnNlbGZTY3JvbGxpbmcgPSBmYWxzZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgcHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIg
PSBOVUxMOworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsKKyNlbmRpZgogfQog
CiBHdGtXaWRnZXQqIHdlYmtpdF93ZWJfdmlld19uZXcodm9pZCkKQEAgLTQ4ODUsMTMgKzQ4OTks
NzQgQEAgdm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldykK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIHdlYlZpZXdTZXRSb290R3Jh
cGhpY3NMYXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyKQogeworI2lmIFVTRShDTFVUVEVSKQorCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUq
IHByaXYgPSB3ZWJWaWV3LT5wcml2OworCisgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEd0
a0NsdXR0ZXJFbWJlZCB0byBob3N0IGFjdG9ycyBhcyB3ZWIgbGF5ZXJzLgorICAgIGlmICghcHJp
di0+cm9vdExheWVyRW1iZWRkZXIpIHsKKyAgICAgICAgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIg
PSBndGtfY2x1dHRlcl9lbWJlZF9uZXcoKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RL
X0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIpOworICAgICAgICBn
dGtfd2lkZ2V0X3Nob3cocHJpdi0+cm9vdExheWVyRW1iZWRkZXIpOworICAgIH0KKworICAgIENs
dXR0ZXJBY3Rvciogc3RhZ2UgPSBndGtfY2x1dHRlcl9lbWJlZF9nZXRfc3RhZ2UgKEdUS19DTFVU
VEVSX0VNQkVEIChwcml2LT5yb290TGF5ZXJFbWJlZGRlcikpOworCisgICAgLy8gUmVtb3ZlIHRo
ZSBleGlzdGluZyByb290IGxheWVyIGZyb20gdGhlIHN0YWdlCisgICAgaWYgKHByaXYtPnJvb3RH
cmFwaGljc0xheWVyKSB7CisgICAgICAgIGNsdXR0ZXJfY29udGFpbmVyX3JlbW92ZV9hY3RvcihD
TFVUVEVSX0NPTlRBSU5FUihzdGFnZSksICBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZv
cm1MYXllcigpKTsKKyAgICAgICAgcHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIgPSBOVUxMOworCisg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpOworICAgICAg
ICBmcmFtZS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygp
OworICAgIH0KKworICAgIC8vIEFkZCBhIHJvb3QgbGF5ZXIgdG8gdGhlIHN0YWdlCisgICAgaWYg
KGdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgcHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIgPSBncmFw
aGljc0xheWVyOworICAgICAgICAvLyBzZXQgd2hpdGUgYmFja2dyb3VuZAorICAgICAgICBDbHV0
dGVyQ29sb3Igc3RhZ2VfY29sb3IgPSB7IDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfTsKKyAgICAg
ICAgY2x1dHRlcl9zdGFnZV9zZXRfY29sb3IoQ0xVVFRFUl9TVEFHRSAoc3RhZ2UpLCAmc3RhZ2Vf
Y29sb3IpOworICAgICAgICBjbHV0dGVyX2NvbnRhaW5lcl9hZGRfYWN0b3IoQ0xVVFRFUl9DT05U
QUlORVIoc3RhZ2UpLCAgcHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7
CisgICAgICAgIGNsdXR0ZXJfYWN0b3Jfc2hvd19hbGwoc3RhZ2UpOworICAgIH0KKyNlbHNlCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCitnYm9vbGVhbiB3ZWJWaWV3RGV0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyNpZiBVU0UoQ0xV
VFRFUikKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Cisg
ICAgLy8gRGV0YWNoIHRoZSByb290IGxheWVyIGZyb20gdGhlIGhvc3RpbmcgdmlldyIpOworICAg
IGd0a19jb250YWluZXJfcmVtb3ZlKEdUS19DT05UQUlORVIod2ViVmlldyksIHByaXYtPnJvb3RM
YXllckVtYmVkZGVyKTsKKyAgICBwcml2LT5yb290TGF5ZXJFbWJlZGRlciA9IE5VTEw7CisgICAg
cHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXIgPSBOVUxMOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworI2VuZGlmCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJW
aWV3U3luY0xheWVycyhncG9pbnRlciBkYXRhKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcgPSBXRUJLSVRfV0VCX1ZJRVcoZGF0YSk7CisgICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJW
aWV3KS0+bWFpbkZyYW1lKCk7CisgICAgZnJhbWUtPnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKKworICAgIHJldHVybiBGQUxTRTsKIH0KIAogdm9pZCB3
ZWJWaWV3TWFya0ZvclN5bmMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gc2NoZWR1
bGVTeW5jKQogeworI2lmIFVTRShDTFVUVEVSKQorICAgIGdfdGltZW91dF9hZGQoMCwgd2ViVmll
d1N5bmNMYXllcnMsIHdlYlZpZXcpOworI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOworI2Vu
ZGlmCiB9CisKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKaW5kZXggOTJjMzU1ZS4uOTc2Zjgy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRl
LmgKQEAgLTMyLDYgKzMyLDExIEBACiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnZpZXcuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisjaW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRl
ci1ndGsuaD4KKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIFdlYkNvcmU6OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyopOwogV2ViS2l0
V2ViVmlldyoga2l0KFdlYkNvcmU6OlBhZ2UqKTsKQEAgLTkyLDYgKzk3LDEwIEBAIHN0cnVjdCBf
V2ViS2l0V2ViVmlld1ByaXZhdGUgewogICAgIFdlYkNvcmU6Okd0a0NsaWNrQ291bnRlciBjbGlj
a0NvdW50ZXI7CiAgICAgV2ViQ29yZTo6R3RrRHJhZ0FuZERyb3BIZWxwZXIgZHJhZ0FuZERyb3BI
ZWxwZXI7CiAgICAgYm9vbCBzZWxmU2Nyb2xsaW5nOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogcm9v
dEdyYXBoaWNzTGF5ZXI7CisgICAgR3RrV2lkZ2V0KiByb290TGF5ZXJFbWJlZGRlcjsKKyNlbmRp
ZgogfTsKIAogdm9pZCB3ZWJraXRfd2ViX3ZpZXdfbm90aWZ5X3JlYWR5KFdlYktpdFdlYlZpZXcq
KTsKQEAgLTExNCw2ICsxMjMsNyBAQCB2b2lkIHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgd2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKik7CitnYm9vbGVhbiB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
V2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJWaWV3TWFya0ZvclN5bmMoV2ViS2l0V2ViVmlldyos
IGdib29sZWFuKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZmN2NmMzUuLjJmY2NjYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0w
MyAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBbR1RL
XSBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDbHV0dGVyIGFu
ZCBDbHV0dGVyLUd0ayB0byBlbmFibGUgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcKKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgV1RGX1VTRV9DTFVUVEVSIHRvIGdsb2JhbF9jcHBmbGFn
cy4KKyAgICAgICAgKiBHdGtMYXVuY2hlci9tYWluLmM6IAorICAgICAgICAobWFpbik6IENhbGwg
Z3RrX2NsdXR0ZXJfaW5pdCgpIGluc3RlYWQgb2YgZ3RrX2luaXQoKS4KKwogMjAxMS0xMi0wMyAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGpo
YnVpbGQgaW5zdGFsbGF0aW9uIGZvciBwZW9wbGUgd2hvIGhhdmUgdW51c3VhbCBNQUtFIGVudmly
b25tZW50CmRpZmYgLS1naXQgYS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IGJiMmIxYTguLmVkNThiZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBAIC0zMyw2ICszMywxMyBAQCBQcm9n
cmFtc19HdGtMYXVuY2hlcl9MREZMQUdTID0gXAogCS1uby1mYXN0LWluc3RhbGwgXAogCS1uby1p
bnN0YWxsCiAKK2lmIFVTRV9DTFVUVEVSCitQcm9ncmFtc19HdGtMYXVuY2hlcl9DRkxBR1MgKz0g
XAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKQorUHJvZ3JhbXNfR3RrTGF1bmNoZXJfTERBREQgKz0g
XAorCSQoQ0xVVFRFUl9HVEtfTElCUykKK2VuZGlmICNFTkQgVVNFX0NMVVRURVIKKwogIyBsaWJX
ZWJDb3JlSW50ZXJuYWxzCiAjIFdlIG11c3Qgc3BsaXQgb2ZmIHRoZSB3aW5kb3cuaW50ZXJuYWxz
IGltcGxlbWVudGF0aW9uIGludG8gYSBzZXBhcmF0ZQogIyBjb252ZW5pZW5jZSBsaWJyYXJ5IGJl
Y2F1c2UgaXQgcmVxdWlyZXMgYSBkaWZmZXJlbnQgaW5jbHVkZSBwYXRoIG9yZGVyCmRpZmYgLS1n
aXQgYS9Ub29scy9HdGtMYXVuY2hlci9tYWluLmMgYi9Ub29scy9HdGtMYXVuY2hlci9tYWluLmMK
aW5kZXggODc2ZGFiMi4uOWZhNGYyZiAxMDA2NDQKLS0tIGEvVG9vbHMvR3RrTGF1bmNoZXIvbWFp
bi5jCisrKyBiL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYwpAQCAtMzEsNiArMzEsMTAgQEAKICNp
bmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAKKyNpZmRlZiBX
VEZfVVNFX0NMVVRURVIKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0dGVyLWd0ay5oPgorI2Vu
ZGlmCisKIHN0YXRpYyBnaW50IHdpbmRvd0NvdW50ID0gMDsKIAogc3RhdGljIEd0a1dpZGdldCog
Y3JlYXRlV2luZG93KFdlYktpdFdlYlZpZXcqKiBvdXRXZWJWaWV3KTsKQEAgLTM3Nyw3ICszODEs
MTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgeyAwLCAwLCAw
LCAwLCAwLCAwLCAwIH0KICAgICB9OwogCisjaWZkZWYgV1RGX1VTRV9DTFVUVEVSCisgICAgZ3Rr
X2NsdXR0ZXJfaW5pdCgmYXJnYywgJmFyZ3YpOworI2Vsc2UKICAgICBndGtfaW5pdCgmYXJnYywg
JmFyZ3YpOworI2VuZGlmCiAKICAgICBHT3B0aW9uQ29udGV4dCAqY29udGV4dCA9IGdfb3B0aW9u
X2NvbnRleHRfbmV3KDApOwogICAgIGdfb3B0aW9uX2NvbnRleHRfYWRkX21haW5fZW50cmllcyhj
b250ZXh0LCBjb21tYW5kTGluZU9wdGlvbnMsIDApOwpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFj
IGIvY29uZmlndXJlLmFjCmluZGV4IDY0ZmZjNzkuLmFkMjdlODIgMTAwNjQ0Ci0tLSBhL2NvbmZp
Z3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTI4Niw2ICsyODYsOCBAQCBHU1RSRUFNRVJf
UkVRVUlSRURfVkVSU0lPTj0wLjEwCiBHU1RSRUFNRVJfUExVR0lOU19CQVNFX1JFUVVJUkVEX1ZF
UlNJT049MC4xMC4zMAogRU5DSEFOVF9SRVFVSVJFRF9WRVJTSU9OPTAuMjIKIExJQkZGVFdfUkVR
VUlSRURfVkVSU0lPTj0zLjIuMgorQ0xVVFRFUl9SRVFVSVJFRF9WRVJTSU9OPTEuOC4zCitDTFVU
VEVSX0dUS19SRVFVSVJFRF9WRVJTSU9OPTEuMC4yCiAKICMgQXZhaWxhYmxlIG1vZHVsZXMKICMK
QEAgLTM5Nyw3ICszOTksNyBAQCBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3dlYmdsXSkKICMgY2hl
Y2sgd2hldGhlciB0byBlbmFibGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9ydAogQUNf
TVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBz
dXBwb3J0XSkKIEFDX0FSR19XSVRIKGFjY2VsZXJhdGVkX2NvbXBvc2l0aW5nLAotICAgICAgICAg
ICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1hY2NlbGVyYXRlZC1jb21wb3NpdGluZz1APDpAbm8v
b3BlbmdsL2NhaXJvQDo+QF0sCisgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWFj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nPUA8OkBuby9vcGVuZ2wvY2Fpcm8vY2x1dHRlckA6PkBdLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyAo
ZXhwZXJpbWVudGFsKSBbZGVmYXVsdD1ub11dKSwKICAgICAgICAgICAgIFtdLCBbd2l0aF9hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZz0ibm8iXSkKIEFDX01TR19SRVNVTFQoWyR3aXRoX2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nXSkKQEAgLTEwODIsNiArMTA4NCwxNyBAQCBpZiB0ZXN0ICIkZW5hYmxl
X3dlYl9hdWRpbyIgPSAieWVzIjsgdGhlbgogICAgIEFDX1NVQlNUKFtMSUJGRlRXX0xJQlNdKQog
ZmkKIAoraWYgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNsdXR0ZXIi
OyB0aGVuCisgICBQS0dfQ0hFQ0tfTU9EVUxFUyhDTFVUVEVSLCBjbHV0dGVyLTEuMCA+PSAkQ0xV
VFRFUl9SRVFVSVJFRF9WRVJTSU9OKQorICAgUEtHX0NIRUNLX01PRFVMRVMoW0NMVVRURVJfR1RL
XSwKKyAgICAgICAgICAgICAgICAgICAgIFtjbHV0dGVyLWd0ay0xLjAgPj0gJENMVVRURVJfR1RL
X1JFUVVJUkVEX1ZFUlNJT05dKQorCisgICBBQ19TVUJTVChDTFVUVEVSX0NGTEFHUykKKyAgIEFD
X1NVQlNUKENMVVRURVJfTElCUykKKyAgIEFDX1NVQlNUKENMVVRURVJfR1RLX0NGTEFHUykKKyAg
IEFDX1NVQlNUKENMVVRURVJfR1RLX0xJQlMpCitmaQorCiAjIGNoZWNrIGZvciBjb2RlIGNvdmVy
YWdlIHN1cHBvcnQKIGlmIHRlc3QgIiRlbmFibGVfY292ZXJhZ2UiID0gInllcyI7IHRoZW4KICAg
IENPVkVSQUdFX0NGTEFHUz0iLU1EIgpAQCAtMTE1Niw5ICsxMTY5LDEwIEBAIEFNX0NPTkRJVElP
TkFMKFtVU0VfUEFOR09dLCBbdGVzdCAiJHdpdGhfZm9udF9iYWNrZW5kIiA9ICJwYW5nbyJdKQog
QU1fQ09ORElUSU9OQUwoW1VTRV9HU1RSRUFNRVJdLCBbdGVzdCAiJGhhdmVfZ3N0cmVhbWVyIiA9
ICJ5ZXMiXSkKIAogIyBBY2NlbGVyYXRlZCBjb21wb3NpdGluZyBjb25kaXRpb25hbAotQU1fQ09O
RElUSU9OQUwoW1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0ICIkd2l0aF9hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nIiA9ICJvcGVuZ2wiXSkKK0FNX0NPTkRJVElPTkFMKFtVU0VfQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkddLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0g
ImNhaXJvIiB8fCB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3Blbmds
IiB8fCB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciJdKQog
QU1fQ09ORElUSU9OQUwoW1VTRV9URVhUVVJFX01BUFBFUl9DQUlST10sIFt0ZXN0ICIkd2l0aF9h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iXSkKIEFNX0NPTkRJVElPTkFMKFtVU0Vf
VEVYVFVSRV9NQVBQRVJfR0xdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmci
ID0gIm9wZW5nbCJdKQorQU1fQ09ORElUSU9OQUwoW1VTRV9DTFVUVEVSXSwgW3Rlc3QgIiR3aXRo
X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiAKICMgV2ViS2l0IGZlYXR1
cmUgY29uZGl0aW9uYWxzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RFQlVHXSxbdGVzdCAiJGVu
YWJsZV9kZWJ1Z19mZWF0dXJlcyIgPSAieWVzIl0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117786</attachid>
            <date>2011-12-04 01:56:32 -0800</date>
            <delta_ts>2011-12-04 10:19:09 -0800</delta_ts>
            <desc>Proposed Patch5</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>19019</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi40Y2YyOThh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MjIwOTZjLi4wODU3MzVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgYW55IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIgcGF0aC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgR3JhcGhp
Y3NMYXllckNsdXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOiBEZWZpbmUgUGxhdGZvcm1MYXllciB0eXBlLCB3aGljaCByZXByZXNlbnRzIENsdXR0ZXJB
Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJD
bHV0dGVyLmNwcDogQm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6R3JhcGhpY3NMYXllckNsdXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaDogQm9pbGVy
cGxhdGUgaW1wbGVtZW50YXRpb24uCisKIDIwMTEtMTItMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGlu
Z0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBDU1NQcmltaXRpdmVWYWx1ZUNhY2hlIHRv
IENTU1ZhbHVlUG9vbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzU4OTM0Yy4uOWQwNTJjYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC01NzUsNiArNTc1LDExIEBAIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcAogZW5kaWYgICMgRU5EIFVTRVRFWFRVUkVfTUFQUEVSX0dMCiAKK2lmIFVTRV9DTFVUVEVS
Cit3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jbHV0dGVyCitlbmRpZiAgIyBFTkQgVVNFX0NMVVRURVIKKwogIyAtLS0K
ICMgTUhUTUwgc3VwcG9ydAogIyAtLS0KQEAgLTgwMSw2ICs4MDYsNyBAQCBsaWJXZWJDb3JlX2xh
X0NQUEZMQUdTID0gXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpIFwKIAktZm5vLXN0cmlj
dC1hbGlhc2luZyBcCiAJJChDQUlST19DRkxBR1MpIFwKKwkkKENMVVRURVJfQ0ZMQUdTKSBcCiAJ
JChDT1ZFUkFHRV9DRkxBR1MpIFwKIAkkKEVOQ0hBTlRfQ0ZMQUdTKSBcCiAJJChHRU9DTFVFX0NG
TEFHUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTU5ZGNiOS4uYWMzMmE3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MDY5LDYgKzUwNjksMTMgQEAg
ZW5kaWYgICMgRU5EIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRQogIyBDb21waWxlIHdp
dGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9ydAogIyAtLS0KIGlmIFVTRV9BQ0NFTEVS
QVRFRF9DT01QT1NJVElORworaWYgVVNFX0NMVVRURVIKK3dlYmNvcmVfc291cmNlcyArPSBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1
dHRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3Jh
cGhpY3NMYXllckNsdXR0ZXIuaAorZW5kaWYgICMgRU5EIFVTRV9DTFVUVEVSCisKK2lmIFVTRV9U
RVhUVVJFX01BUFBFUl9DQUlSTwogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaCBcCkBAIC01MDc2LDcgKzUwODMsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAotaWYgVVNFX1RFWFRVUkVfTUFQUEVS
X0NBSVJPCiB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggN2I4MzQw
ZS4uNDViNmYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaApAQCAtNzQsNiArNzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI7CiB0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7CiB9OworI2VsaWYgVVNFKENMVVRURVIpCit0eXBlZGVm
IHN0cnVjdCBfQ2x1dHRlckFjdG9yIENsdXR0ZXJBY3RvcjsKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3R5cGVkZWYgQ2x1dHRlckFjdG9yIFBsYXRmb3JtTGF5ZXI7Cit9OwogI2VuZGlmCiAjZWxzZQog
dHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVy
LmNwcAppbmRleCBjZWVkYzNjLi5jZDA4NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0
dGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNsdXR0
ZXIuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCkBAIC00MSwxMiArNDIsMTkgQEAg
UGFzc093blB0cjxHcmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NM
YXllckNsaWVudCogY2xpZW50KQogR3JhcGhpY3NMYXllckNsdXR0ZXI6OkdyYXBoaWNzTGF5ZXJD
bHV0dGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIo
Y2xpZW50KQogeworICAgIC8vIENsdXR0ZXJSZWN0YW5nbGUgd2lsbCBiZSB1c2VkIHRvIHNob3cg
dGhlIGRlYnVnIGJvcmRlci4KKyAgICBtX2xheWVyID0gY2x1dHRlcl9yZWN0YW5nbGVfbmV3KCk7
CiB9CiAKIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjp+R3JhcGhpY3NMYXllckNsdXR0ZXIoKQogewog
fQogCitDbHV0dGVyQWN0b3IqIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXllcjsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ2x1
dHRlcjo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xh
eWVyQ2x1dHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9H
cmFwaGljc0xheWVyQ2x1dHRlci5oCmluZGV4IGRiMjliMWYuLmJiMjMxZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNs
dXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dy
YXBoaWNzTGF5ZXJDbHV0dGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSA8
Y2x1dHRlci9jbHV0dGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsOCArMzks
MTIgQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXJDbHV0dGVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ2x1dHRlcigpOwogCisgICAgdmlydHVh
bCBDbHV0dGVyQWN0b3IqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheUluUmVj
dChjb25zdCBGbG9hdFJlY3QmKTsKKworcHJpdmF0ZToKKyAgICBDbHV0dGVyQWN0b3IqIG1fbGF5
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMjFj
NzQxMi4uYWU3MDY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEy
LTAzICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtH
VEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNp
bmcgQ2x1dHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMzMTkKKworICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBhZGQgYSBHdGtDbHV0dGVy
RW1iZWQgdG8gZW1iZWQgQ2x1dHRlciBBY3RvcnMgaW4gV2ViS2l0V2ViVmlldyBhbmQgCisgICAg
ICAgIHNldCB0aGUgcm9vdCBHcmFwaGljc0xheWVyIHRvIFdlYktpdFdlYlZpZXcgd2hlbiBBY2Nl
bGVyYXRlZCBDb21wb3NpdGluZyBuZWVkcyB0byBiZSBlbmFibGVkLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IFNldCB0aGUgcm9vdCBH
cmFwaGljc0xheWVyIHRvIFdlYktpdFdlYlZpZXcuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMpOiBBbGxvdyB0byBzdXBwb3J0IENTUyAz
RCBUcmFuc2Zvcm1zIG9ubHkuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUpOiBTZXQgdGhlIHNpemUgb2Yg
R3RrQ2x1dHRlckVtYmVkIHdoZW4gdGhlIHZpZXcgaXMgY2hhbmdlZC4KKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19pbml0KQorICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKTog
QWRkIHRoZSBHdGtDbHV0dGVyRW1iZWQgdG8gdGhlIFdlYktpdFdlYlZpZXcgYXMgYSBjaGlsZC4K
KyAgICAgICAgKHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcik6IFJlbW92ZSB0aGUgR3Rr
Q2x1dHRlckVtYmVkIGZyb20gdGhlIFdlYktpdFdlYlZpZXcuCisgICAgICAgICh3ZWJWaWV3U3lu
Y0xheWVycyk6IENvbW1pdCBsYXllciBjaGFuZ2VzLgorICAgICAgICAod2ViVmlld01hcmtGb3JT
eW5jKTogU2V0IHRvIGNhbGwgd2ViVmlld1N5bmNMYXllcnMgdXNpbmcgZ190aW1lb3V0X2FkZC4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoKKwogMjAxMS0xMi0wMyAg
WGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50
IEhpc3RvcnkgQVBJIEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZp
bGUuYW0KaW5kZXggZTM0YjQ0Mi4uNjFhNTc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0K
QEAgLTY1LDYgKzY1LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUEYKIAkkKEdMSUJfQ0ZMQUdT
KSBcCiAJJChHU1RSRUFNRVJfQ0ZMQUdTKSBcCiAJJChHVEtfQ0ZMQUdTKSBcCisJJChDTFVUVEVS
X0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChISUxET05fQ0ZMQUdTKSBc
CiAJJChMSUJGRlRXX0NGTEFHUykgXAogCSQoTElCU09VUF9DRkxBR1MpIFwKQEAgLTg3LDYgKzg5
LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRH
VEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0xJQkEKIAlsaWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VC
S0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5s
YSBcCiAJJCh3ZWJjb3JlX2xkZmxhZ3MpIFwKIAkkKENBSVJPX0xJQlMpIFwKKwkkKENMVVRURVJf
TElCUykgXAorCSQoQ0xVVFRFUl9HVEtfTElCUykgXAogCSQoQ09WRVJBR0VfTERGTEFHUykgXAog
CSQoRU5DSEFOVF9MSUJTKSBcCiAJJChGUkVFVFlQRV9MSUJTKSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCBhZDhj
ZjlhLi4xMTY2NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTkxMiw3ICs5MTIsMTAgQEAgdm9pZCBDaHJvbWVD
bGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hyb21lQ2xpZW50Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIHJvb3RM
YXllcikKIHsKLSAgICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3LCByb290
TGF5ZXIpOworICAgIGlmIChyb290TGF5ZXIpCisgICAgICAgIHdlYlZpZXdTZXRSb290R3JhcGhp
Y3NMYXllcihtX3dlYlZpZXcsIHJvb3RMYXllcik7CisgICAgZWxzZQorICAgICAgICB3ZWJWaWV3
RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3KTsKIH0KIAogdm9pZCBDaHJvbWVDbGll
bnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpAQCAtOTI3LDcgKzkz
MCwxNCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygp
CiAKIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hyb21lQ2xpZW50Ojph
bGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0CiB7CisgICAgIGlmICghcGxhdGZvcm1Q
YWdlQ2xpZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBVU0UoQ0xVVFRFUikKKyAg
ICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBDU1MgM0QgVHJhbnNmb3Jtcy4KKyAgICBy
ZXR1cm4gVGhyZWVEVHJhbnNmb3JtVHJpZ2dlcjsKKyNlbHNlCiAgICAgcmV0dXJuIEFsbFRyaWdn
ZXJzOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCmluZGV4IDkxZjJkZmEuLjg2M2Y5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTg1Niw2ICs4NTYsMTQgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0Fs
bG9jYXRpb24qIGFsbG8KICAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2hyb21lQ2xpZW50ID0g
c3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnQqPihwYWdlLT5jaHJvbWUoKS0+Y2xpZW50
KCkpOwogICAgIGNocm9tZUNsaWVudC0+d2lkZ2V0U2l6ZUNoYW5nZWQob2xkU2l6ZSwgSW50U2l6
ZShhbGxvY2F0aW9uLT53aWR0aCwgYWxsb2NhdGlvbi0+aGVpZ2h0KSk7CiAgICAgY2hyb21lQ2xp
ZW50LT5hZGp1c3RtZW50V2F0Y2hlcigpLT51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJz
KCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQor
ICAgIGlmICh3ZWJWaWV3LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlcikgeworICAgICAgICBhbGxv
Y2F0aW9uLT54ID0gMDsKKyAgICAgICAgYWxsb2NhdGlvbi0+eSA9IDA7CisgICAgICAgIGd0a193
aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXctPnByaXYtPnJvb3RMYXllckVt
YmVkZGVyKSwgYWxsb2NhdGlvbik7CisgICAgfQorI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld19ncmFiX2ZvY3VzKEd0a1dpZGdldCogd2lkZ2V0KQpAQCAtMzMxMCw2ICsz
MzE4LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3
ZWJWaWV3KSwgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFy
Z2V0TGlzdCgpKTsKIAogICAgIHByaXYtPnNlbGZTY3JvbGxpbmcgPSBmYWxzZTsKKworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCisgICAgcHJpdi0+cm9v
dEdyYXBoaWNzTGF5ZXIgPSBOVUxMOworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVM
TDsKKyNlbmRpZgogfQogCiBHdGtXaWRnZXQqIHdlYmtpdF93ZWJfdmlld19uZXcodm9pZCkKQEAg
LTQ4ODUsMTMgKzQ4OTgsNzIgQEAgdm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIHdl
YlZpZXdTZXRSb290R3JhcGhpY3NMYXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHcmFwaGlj
c0xheWVyKiBncmFwaGljc0xheWVyKQogeworI2lmIFVTRShDTFVUVEVSKQorICAgIFdlYktpdFdl
YlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKworICAgIC8vIENyZWF0ZSBhbiBp
bnN0YW5jZSBvZiBHdGtDbHV0dGVyRW1iZWQgdG8gaG9zdCBhY3RvcnMgYXMgd2ViIGxheWVycy4K
KyAgICBpZiAoIXByaXYtPnJvb3RMYXllckVtYmVkZGVyKSB7CisgICAgICAgIHByaXYtPnJvb3RM
YXllckVtYmVkZGVyID0gZ3RrX2NsdXR0ZXJfZW1iZWRfbmV3KCk7CisgICAgICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIod2ViVmlldyksIHByaXYtPnJvb3RMYXllckVtYmVkZGVy
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KHByaXYtPnJvb3RMYXllckVtYmVkZGVyKTsKKyAg
ICB9CisKKyAgICBDbHV0dGVyQWN0b3IqIHN0YWdlID0gZ3RrX2NsdXR0ZXJfZW1iZWRfZ2V0X3N0
YWdlKEdUS19DTFVUVEVSX0VNQkVEKHByaXYtPnJvb3RMYXllckVtYmVkZGVyKSk7CisKKyAgICAv
LyBSZW1vdmUgdGhlIGV4aXN0aW5nIHJvb3QgbGF5ZXIgZnJvbSB0aGUgc3RhZ2UuCisgICAgaWYg
KHByaXYtPnJvb3RHcmFwaGljc0xheWVyKSB7CisgICAgICAgIGNsdXR0ZXJfY29udGFpbmVyX3Jl
bW92ZV9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSksIHByaXYtPnJvb3RHcmFwaGljc0xh
eWVyLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9
IE5VTEw7CisKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1l
KCk7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKCk7CisgICAgfQorCisgICAgLy8gQWRkIGEgcm9vdCBsYXllciB0byB0aGUgc3Rh
Z2UuCisgICAgaWYgKGdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgcHJpdi0+cm9vdEdyYXBoaWNz
TGF5ZXIgPSBncmFwaGljc0xheWVyOworICAgICAgICAvLyBzZXQgd2hpdGUgYmFja2dyb3VuZAor
ICAgICAgICBDbHV0dGVyQ29sb3Igc3RhZ2VfY29sb3IgPSB7IDB4RkYsIDB4RkYsIDB4RkYsIDB4
RkYgfTsKKyAgICAgICAgY2x1dHRlcl9zdGFnZV9zZXRfY29sb3IoQ0xVVFRFUl9TVEFHRSAoc3Rh
Z2UpLCAmc3RhZ2VfY29sb3IpOworICAgICAgICBjbHV0dGVyX2NvbnRhaW5lcl9hZGRfYWN0b3Io
Q0xVVFRFUl9DT05UQUlORVIoc3RhZ2UpLCBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZv
cm1MYXllcigpKTsKKyAgICAgICAgY2x1dHRlcl9hY3Rvcl9zaG93X2FsbChzdGFnZSk7CisgICAg
fQorI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKK3ZvaWQgd2ViVmll
d0RldGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisjaWYg
VVNFKENMVVRURVIpCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5w
cml2OworICAgIC8vIERldGFjaCB0aGUgcm9vdCBsYXllciBmcm9tIHRoZSBob3N0aW5nIHZpZXcu
CisgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+
cm9vdExheWVyRW1iZWRkZXIpOworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsK
KyAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IE5VTEw7CisjZWxzZQogICAgIG5vdEltcGxl
bWVudGVkKCk7CisjZW5kaWYKK30KKworc3RhdGljIGdib29sZWFuIHdlYlZpZXdTeW5jTGF5ZXJz
KGdwb2ludGVyIGRhdGEpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9X
RUJfVklFVyhkYXRhKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJh
bWUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiB2b2lkIHdlYlZpZXdNYXJrRm9y
U3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBzY2hlZHVsZVN5bmMpCiB7Cisj
aWYgVVNFKENMVVRURVIpCisgICAgZ190aW1lb3V0X2FkZCgwLCB3ZWJWaWV3U3luY0xheWVycywg
d2ViVmlldyk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKIH0KKwogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCA5MmMzNTVlLi5mNzY3MWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaApAQCAtMzIsNiAr
MzIsMTEgQEAKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0d2Vidmlldy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoQ0xVVFRFUikKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0dGVyLWd0ay5oPgorI2lu
Y2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
V2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7CiBXZWJLaXRXZWJWaWV3KiBraXQo
V2ViQ29yZTo6UGFnZSopOwpAQCAtOTIsNiArOTcsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKICAg
ICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKICAgICBi
b29sIHNlbGZTY3JvbGxpbmc7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0xVVFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXll
cjsKKyAgICBHdGtXaWRnZXQqIHJvb3RMYXllckVtYmVkZGVyOworI2VuZGlmCiB9OwogCiB2b2lk
IHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyopOwpAQCAtMTE0LDYg
KzEyMyw3IEBAIHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCB3ZWJWaWV3U2V0
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKK3ZvaWQgd2ViVmlld0RldGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqKTsK
IHZvaWQgd2ViVmlld01hcmtGb3JTeW5jKFdlYktpdFdlYlZpZXcqLCBnYm9vbGVhbik7CiAjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA4MTEyZjUxLi43NGMyMGY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTItMDMgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQ2x1dHRlciBhbmQgQ2x1dHRlci1HdGsgdG8g
ZW5hYmxlIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bTogQWRkIFdURl9VU0VfQ0xVVFRFUiB0byBnbG9iYWxfY3BwZmxhZ3MuCisgICAgICAgICogR3Rr
TGF1bmNoZXIvbWFpbi5jOiAKKyAgICAgICAgKG1haW4pOiBDYWxsIGd0a19jbHV0dGVyX2luaXQo
KSBpbnN0ZWFkIG9mIGd0a19pbml0KCkuCisKIDIwMTEtMTItMDMgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFub3RoZXIgR1RLIGJ1aWxkIGZpeCBh
ZnRlciByMTAxOTIyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9H
TlVtYWtlZmlsZS5hbQppbmRleCBiYjJiMWE4Li5lZDU4YmQ3IDEwMDY0NAotLS0gYS9Ub29scy9H
TlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9HTlVtYWtlZmlsZS5hbQpAQCAtMzMsNiArMzMsMTMg
QEAgUHJvZ3JhbXNfR3RrTGF1bmNoZXJfTERGTEFHUyA9IFwKIAktbm8tZmFzdC1pbnN0YWxsIFwK
IAktbm8taW5zdGFsbAogCitpZiBVU0VfQ0xVVFRFUgorUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ0ZM
QUdTICs9IFwKKwkkKENMVVRURVJfR1RLX0NGTEFHUykKK1Byb2dyYW1zX0d0a0xhdW5jaGVyX0xE
QUREICs9IFwKKwkkKENMVVRURVJfR1RLX0xJQlMpCitlbmRpZiAjRU5EIFVTRV9DTFVUVEVSCisK
ICMgbGliV2ViQ29yZUludGVybmFscwogIyBXZSBtdXN0IHNwbGl0IG9mZiB0aGUgd2luZG93Lmlu
dGVybmFscyBpbXBsZW1lbnRhdGlvbiBpbnRvIGEgc2VwYXJhdGUKICMgY29udmVuaWVuY2UgbGli
cmFyeSBiZWNhdXNlIGl0IHJlcXVpcmVzIGEgZGlmZmVyZW50IGluY2x1ZGUgcGF0aCBvcmRlcgpk
aWZmIC0tZ2l0IGEvVG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvR3RrTGF1bmNoZXIv
bWFpbi5jCmluZGV4IDg3NmRhYjIuLjlmYTRmMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0d0a0xhdW5j
aGVyL21haW4uYworKysgYi9Ub29scy9HdGtMYXVuY2hlci9tYWluLmMKQEAgLTMxLDYgKzMxLDEw
IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCisj
aWZkZWYgV1RGX1VTRV9DTFVUVEVSCisjaW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRlci1ndGsu
aD4KKyNlbmRpZgorCiBzdGF0aWMgZ2ludCB3aW5kb3dDb3VudCA9IDA7CiAKIHN0YXRpYyBHdGtX
aWRnZXQqIGNyZWF0ZVdpbmRvdyhXZWJLaXRXZWJWaWV3Kiogb3V0V2ViVmlldyk7CkBAIC0zNzcs
NyArMzgxLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIHsg
MCwgMCwgMCwgMCwgMCwgMCwgMCB9CiAgICAgfTsKIAorI2lmZGVmIFdURl9VU0VfQ0xVVFRFUgor
ICAgIGd0a19jbHV0dGVyX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbHNlCiAgICAgZ3RrX2luaXQo
JmFyZ2MsICZhcmd2KTsKKyNlbmRpZgogCiAgICAgR09wdGlvbkNvbnRleHQgKmNvbnRleHQgPSBn
X29wdGlvbl9jb250ZXh0X25ldygwKTsKICAgICBnX29wdGlvbl9jb250ZXh0X2FkZF9tYWluX2Vu
dHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRpb25zLCAwKTsKZGlmZiAtLWdpdCBhL2NvbmZp
Z3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2NGZmYzc5Li5hZDI3ZTgyIDEwMDY0NAotLS0g
YS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yODYsNiArMjg2LDggQEAgR1NU
UkVBTUVSX1JFUVVJUkVEX1ZFUlNJT049MC4xMAogR1NUUkVBTUVSX1BMVUdJTlNfQkFTRV9SRVFV
SVJFRF9WRVJTSU9OPTAuMTAuMzAKIEVOQ0hBTlRfUkVRVUlSRURfVkVSU0lPTj0wLjIyCiBMSUJG
RlRXX1JFUVVJUkVEX1ZFUlNJT049My4yLjIKK0NMVVRURVJfUkVRVUlSRURfVkVSU0lPTj0xLjgu
MworQ0xVVFRFUl9HVEtfUkVRVUlSRURfVkVSU0lPTj0xLjAuMgogCiAjIEF2YWlsYWJsZSBtb2R1
bGVzCiAjCkBAIC0zOTcsNyArMzk5LDcgQEAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV93ZWJnbF0p
CiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBv
cnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcgc3VwcG9ydF0pCiBBQ19BUkdfV0lUSChhY2NlbGVyYXRlZF9jb21wb3NpdGluZywKLSAg
ICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmc9
QDw6QG5vL29wZW5nbC9jYWlyb0A6PkBdLAorICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0t
d2l0aC1hY2NlbGVyYXRlZC1jb21wb3NpdGluZz1APDpAbm8vb3BlbmdsL2NhaXJvL2NsdXR0ZXJA
Oj5AXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2UgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcgKGV4cGVyaW1lbnRhbCkgW2RlZmF1bHQ9bm9dXSksCiAgICAgICAgICAgICBbXSwgW3dp
dGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmc9Im5vIl0pCiBBQ19NU0dfUkVTVUxUKFskd2l0aF9h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZ10pCkBAIC0xMDgyLDYgKzEwODQsMTcgQEAgaWYgdGVzdCAi
JGVuYWJsZV93ZWJfYXVkaW8iID0gInllcyI7IHRoZW4KICAgICBBQ19TVUJTVChbTElCRkZUV19M
SUJTXSkKIGZpCiAKK2lmIHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJj
bHV0dGVyIjsgdGhlbgorICAgUEtHX0NIRUNLX01PRFVMRVMoQ0xVVFRFUiwgY2x1dHRlci0xLjAg
Pj0gJENMVVRURVJfUkVRVUlSRURfVkVSU0lPTikKKyAgIFBLR19DSEVDS19NT0RVTEVTKFtDTFVU
VEVSX0dUS10sCisgICAgICAgICAgICAgICAgICAgICBbY2x1dHRlci1ndGstMS4wID49ICRDTFVU
VEVSX0dUS19SRVFVSVJFRF9WRVJTSU9OXSkKKworICAgQUNfU1VCU1QoQ0xVVFRFUl9DRkxBR1Mp
CisgICBBQ19TVUJTVChDTFVUVEVSX0xJQlMpCisgICBBQ19TVUJTVChDTFVUVEVSX0dUS19DRkxB
R1MpCisgICBBQ19TVUJTVChDTFVUVEVSX0dUS19MSUJTKQorZmkKKwogIyBjaGVjayBmb3IgY29k
ZSBjb3ZlcmFnZSBzdXBwb3J0CiBpZiB0ZXN0ICIkZW5hYmxlX2NvdmVyYWdlIiA9ICJ5ZXMiOyB0
aGVuCiAgICBDT1ZFUkFHRV9DRkxBR1M9Ii1NRCIKQEAgLTExNTYsOSArMTE2OSwxMCBAQCBBTV9D
T05ESVRJT05BTChbVVNFX1BBTkdPXSwgW3Rlc3QgIiR3aXRoX2ZvbnRfYmFja2VuZCIgPSAicGFu
Z28iXSkKIEFNX0NPTkRJVElPTkFMKFtVU0VfR1NUUkVBTUVSXSwgW3Rlc3QgIiRoYXZlX2dzdHJl
YW1lciIgPSAieWVzIl0pCiAKICMgQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgY29uZGl0aW9uYWwK
LUFNX0NPTkRJVElPTkFMKFtVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkddLCBbdGVzdCAiJHdp
dGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNhaXJvIiB8fCB0ZXN0ICIkd2l0aF9hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3BlbmdsIl0pCitBTV9DT05ESVRJT05BTChbVVNFX0FD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nIiA9ICJjYWlybyIgfHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0g
Im9wZW5nbCIgfHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNsdXR0
ZXIiXSkKIEFNX0NPTkRJVElPTkFMKFtVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk9dLCBbdGVzdCAi
JHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNhaXJvIl0pCiBBTV9DT05ESVRJT05B
TChbVVNFX1RFWFRVUkVfTUFQUEVSX0dMXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBv
c2l0aW5nIiA9ICJvcGVuZ2wiXSkKK0FNX0NPTkRJVElPTkFMKFtVU0VfQ0xVVFRFUl0sIFt0ZXN0
ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciJdKQogCiAjIFdlYktp
dCBmZWF0dXJlIGNvbmRpdGlvbmFscwogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ERUJVR10sW3Rl
c3QgIiRlbmFibGVfZGVidWdfZmVhdHVyZXMiID0gInllcyJdKQo=
</data>
<flag name="review"
          id="117339"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117796</attachid>
            <date>2011-12-04 10:19:09 -0800</date>
            <delta_ts>2011-12-05 09:49:21 -0800</delta_ts>
            <desc>Proposed Patch6</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>17237</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi5mNzNiNjZi
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDQgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MjIwOTZjLi43OWNhNzhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDQgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhZGRl
ZCBhcyB0aGlzIGZlYXR1cmUgd2lsbCBiZSBhYmxlIHRvIHJldXNlIHRoZSBleGlzdGluZyAKKyAg
ICAgICAgQ1NTMyB0cmFuc2Zvcm1zIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBJbmNsdWRlIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlciBwYXRoLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZCBHcmFwaGljc0xheWVyQ2x1dHRlci4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6IERlZmluZSBQbGF0
Zm9ybUxheWVyIHR5cGUsIHdoaWNoIHJlcHJlc2VudHMgQ2x1dHRlckFjdG9yLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwOiBCb2ls
ZXJwbGF0ZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
bHV0dGVyOjpHcmFwaGljc0xheWVyQ2x1dHRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ2x1dHRlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oOiBCb2lsZXJwbGF0ZSBpbXBsZW1lbnRh
dGlvbi4KKwogMjAxMS0xMi0wMyAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVuYW1lIENTU1ByaW1pdGl2ZVZhbHVlQ2FjaGUgdG8gQ1NTVmFsdWVQb29sLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3NTg5MzRjLi45ZDA1MmNiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTU3NSw2ICs1NzUsMTEgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwCiBlbmRpZiAgIyBF
TkQgVVNFVEVYVFVSRV9NQVBQRVJfR0wKIAoraWYgVVNFX0NMVVRURVIKK3dlYmNvcmVfY3BwZmxh
Z3MgKz0gXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Ns
dXR0ZXIKK2VuZGlmICAjIEVORCBVU0VfQ0xVVFRFUgorCiAjIC0tLQogIyBNSFRNTCBzdXBwb3J0
CiAjIC0tLQpAQCAtODAxLDYgKzgwNiw3IEBAIGxpYldlYkNvcmVfbGFfQ1BQRkxBR1MgPSBcCiAJ
JChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAogCS1mbm8tc3RyaWN0LWFsaWFzaW5nIFwKIAkk
KENBSVJPX0NGTEFHUykgXAorCSQoQ0xVVFRFUl9DRkxBR1MpIFwKIAkkKENPVkVSQUdFX0NGTEFH
UykgXAogCSQoRU5DSEFOVF9DRkxBR1MpIFwKIAkkKEdFT0NMVUVfQ0ZMQUdTKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlNTlkY2I5Li5hYzMyYTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUwNjksNiArNTA2OSwxMyBAQCBlbmRpZiAgIyBFTkQgRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FCiAjIENvbXBpbGUgd2l0aCBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBzdXBwb3J0CiAjIC0tLQogaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
CitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRl
ci5oCitlbmRpZiAgIyBFTkQgVVNFX0NMVVRURVIKKworaWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NB
SVJPCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
IFwKQEAgLTUwNzYsNyArNTA4Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2Rl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllci5oCi1pZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVn
dGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2ZjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC03NCw2ICs3NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZv
cm1MYXllcjsKIH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVy
QWN0b3IgQ2x1dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVy
QWN0b3IgUGxhdGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBs
YXRmb3JtTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRj
M2MuLjI4MWE2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCkBAIC00MSwx
MCArNDEsMTggQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVh
dGUoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogR3JhcGhpY3NMYXllckNsdXR0ZXI6Okdy
YXBoaWNzTGF5ZXJDbHV0dGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICA6IEdy
YXBoaWNzTGF5ZXIoY2xpZW50KQogeworICAgIC8vIENsdXR0ZXJSZWN0YW5nbGUgd2lsbCBiZSB1
c2VkIHRvIHNob3cgdGhlIGRlYnVnIGJvcmRlci4KKyAgICBtX2xheWVyID0gY2x1dHRlcl9yZWN0
YW5nbGVfbmV3KCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjp+R3JhcGhpY3NMYXllckNs
dXR0ZXIoKQogeworICAgIGdfb2JqZWN0X3VucmVmKG1fbGF5ZXIpOworfQorCitDbHV0dGVyQWN0
b3IqIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9sYXllcjsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ2x1dHRlcjo6c2V0TmVlZHNE
aXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Ns
dXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaAppbmRleCBkYjI5YjFmLi5iYjIz
MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXll
ci5oIgorI2luY2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM4LDggKzM5LDEyIEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyQ2x1dHRlcihH
cmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckNsdXR0ZXIo
KTsKIAorICAgIHZpcnR1YWwgQ2x1dHRlckFjdG9yKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisKK3ByaXZhdGU6CisgICAgQ2x1
dHRlckFjdG9yKiBtX2xheWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCmluZGV4IDIxYzc0MTIuLmVmYjgwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAxMS0xMi0wNCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51
az4KKworICAgICAgICBbR1RLXSBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJhdGVk
IENvbXBvc2l0aW5nIHVzaW5nIENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAgVGhpcyBwYXRjaCBhbGxvd3MgdG8g
YWRkIGEgR3RrQ2x1dHRlckVtYmVkIHRvIGVtYmVkIENsdXR0ZXIgQWN0b3JzIGluIFdlYktpdFdl
YlZpZXcgYW5kIAorICAgICAgICBzZXQgdGhlIHJvb3QgR3JhcGhpY3NMYXllciB0byBXZWJLaXRX
ZWJWaWV3IHdoZW4gQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgbmVlZHMgdG8gYmUgZW5hYmxlZC4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIp
OiBTZXQgdGhlIHJvb3QgR3JhcGhpY3NMYXllciB0byBXZWJLaXRXZWJWaWV3LgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKTogQWxsb3cg
dG8gc3VwcG9ydCBDU1MgM0QgVHJhbnNmb3JtcyBvbmx5LgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXRnbG9iYWxzLmNwcDoKKyAgICAgICAgKHdlYmtpdEluaXQpOiBDYWxsIGd0a19jbHV0dGVyX2lu
aXQoKS4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IFNldCB0aGUgc2l6ZSBvZiBHdGtDbHV0dGVyRW1i
ZWQgd2hlbiB0aGUgdmlldyBpcyBjaGFuZ2VkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lu
aXQpCisgICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIpOiBBZGQgdGhlIEd0a0Ns
dXR0ZXJFbWJlZCB0byB0aGUgV2ViS2l0V2ViVmlldyBhcyBhIGNoaWxkLgorICAgICAgICAod2Vi
Vmlld0RldGFjaFJvb3RHcmFwaGljc0xheWVyKTogUmVtb3ZlIHRoZSBHdGtDbHV0dGVyRW1iZWQg
ZnJvbSB0aGUgV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYlZpZXdTeW5jTGF5ZXJzKTogQ29t
bWl0IGxheWVyIGNoYW5nZXMuCisgICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOiBTZXQgdG8g
Y2FsbCB3ZWJWaWV3U3luY0xheWVycyB1c2luZyBnX3RpbWVvdXRfYWRkLgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDExLTEyLTAzICBYYW4gTG9wZXogIDx4
bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgSGlzdG9yeSBBUEkg
RnJhbWVMb2FkZXJDbGllbnQgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCBl
MzRiNDQyLi4zOGRkMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtNTgsNiArNTgs
OCBAQCBsaWJ3ZWJraXRndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdU
S19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQRgogCSQod2Via2l0Z3RrX2NwcGZsYWdzKSBcCiAJ
LWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoSElMRE9OX0NQUEZMQUdTKSBcCisJJChDTFVUVEVS
X0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChDT1ZFUkFHRV9DRkxBR1Mp
IFwKIAkkKEVOQ0hBTlRfQ0ZMQUdTKSBcCiAJJChHQUlMX0NGTEFHUykgXApAQCAtODcsNiArODks
OCBAQCBsaWJ3ZWJraXRndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdU
S19BUElfTUlOT1JfVkVSU0lPTkBfbGFfTElCQQogCWxpYmphdmFzY3JpcHRjb3JlZ3RrLUBXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05ALmxh
IFwKIAkkKHdlYmNvcmVfbGRmbGFncykgXAogCSQoQ0FJUk9fTElCUykgXAorCSQoQ0xVVFRFUl9M
SUJTKSBcCisJJChDTFVUVEVSX0dUS19MSUJTKSBcCiAJJChDT1ZFUkFHRV9MREZMQUdTKSBcCiAJ
JChFTkNIQU5UX0xJQlMpIFwKIAkkKEZSRUVUWVBFX0xJQlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IGFkOGNm
OWEuLjExNjY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtOTEyLDcgKzkxMiwxMCBAQCB2b2lkIENocm9tZUNs
aWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQp
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogcm9vdExh
eWVyKQogewotICAgIHdlYlZpZXdTZXRSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcsIHJvb3RM
YXllcik7CisgICAgaWYgKHJvb3RMYXllcikKKyAgICAgICAgd2ViVmlld1NldFJvb3RHcmFwaGlj
c0xheWVyKG1fd2ViVmlldywgcm9vdExheWVyKTsKKyAgICBlbHNlCisgICAgICAgIHdlYlZpZXdE
ZXRhY2hSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcpOwogfQogCiB2b2lkIENocm9tZUNsaWVu
dDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCkBAIC05MjcsNyArOTMw
LDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkK
IAogQ2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaHJvbWVDbGllbnQ6OmFs
bG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKIHsKKyAgICAgaWYgKCFwbGF0Zm9ybVBh
Z2VDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIFVTRShDTFVUVEVSKQorICAg
IC8vIEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IENTUyAzRCBUcmFuc2Zvcm1zLgorICAgIHJl
dHVybiBUaHJlZURUcmFuc2Zvcm1UcmlnZ2VyOworI2Vsc2UKICAgICByZXR1cm4gQWxsVHJpZ2dl
cnM7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
Z2xvYmFscy5jcHAKaW5kZXggM2M4MWI0NS4uZjkzZWQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRnbG9iYWxzLmNwcApAQCAtNTIsNiArNTIsMTAgQEAKICNpbmNsdWRlIDxz
dGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgVVNFKENMVVRURVIp
CisjaW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRlci1ndGsuaD4KKyNlbmRpZgorCiBzdGF0aWMg
V2ViS2l0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsID0gV0VCS0lUX0NBQ0hFX01PREVMX0RFRkFVTFQ7
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzQwLDUgKzM0NCw5IEBAIHZvaWQgd2Vi
a2l0SW5pdCgpCiAKICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmVfYnlfdHlwZShzZXNzaW9u
LCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSKTsKIAorI2lmIFVTRShDTFVUVEVSKQorICAgIGd0
a19jbHV0dGVyX2luaXQoMCwgMCk7CisjZW5kaWYKKwogICAgIGF0ZXhpdCh3ZWJraXRFeGl0KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA5MWYy
ZGZhLi40ODE1YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwCkBAIC04NTYsNiArODU2LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zaXpl
X2FsbG9jYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvCiAgICAgV2Vi
S2l0OjpDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6Q2hy
b21lQ2xpZW50Kj4ocGFnZS0+Y2hyb21lKCktPmNsaWVudCgpKTsKICAgICBjaHJvbWVDbGllbnQt
PndpZGdldFNpemVDaGFuZ2VkKG9sZFNpemUsIEludFNpemUoYWxsb2NhdGlvbi0+d2lkdGgsIGFs
bG9jYXRpb24tPmhlaWdodCkpOwogICAgIGNocm9tZUNsaWVudC0+YWRqdXN0bWVudFdhdGNoZXIo
KS0+dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFycygpOworCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0xVVFRFUikKKyAgICBpZiAod2ViVmlldy0+cHJpdi0+
cm9vdExheWVyRW1iZWRkZXIpIHsKKyAgICAgICAgYWxsb2NhdGlvbi0+eCA9IDA7CisgICAgICAg
IGFsbG9jYXRpb24tPnkgPSAwOworICAgICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RL
X1dJREdFVCh3ZWJWaWV3LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlciksIGFsbG9jYXRpb24pOwor
ICAgIH0KKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1
cyhHdGtXaWRnZXQqIHdpZGdldCkKQEAgLTQ4ODUsMTMgKzQ4OTMsNzAgQEAgdm9pZCB3ZWJWaWV3
RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiB2b2lkIHdlYlZpZXdTZXRSb290R3JhcGhpY3NMYXllcihXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogeworI2lmIFVT
RShDTFVUVEVSKQorICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJp
djsKKworICAgIC8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHdGtDbHV0dGVyRW1iZWQgdG8gaG9z
dCBhY3RvcnMgYXMgd2ViIGxheWVycy4KKyAgICBpZiAoIXByaXYtPnJvb3RMYXllckVtYmVkZGVy
KSB7CisgICAgICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gZ3RrX2NsdXR0ZXJfZW1iZWRf
bmV3KCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIod2ViVmlldyks
IHByaXYtPnJvb3RMYXllckVtYmVkZGVyKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KHByaXYt
PnJvb3RMYXllckVtYmVkZGVyKTsKKyAgICB9CisKKyAgICBDbHV0dGVyQWN0b3IqIHN0YWdlID0g
Z3RrX2NsdXR0ZXJfZW1iZWRfZ2V0X3N0YWdlKEdUS19DTFVUVEVSX0VNQkVEKHByaXYtPnJvb3RM
YXllckVtYmVkZGVyKSk7CisKKyAgICAvLyBSZW1vdmUgdGhlIGV4aXN0aW5nIHJvb3QgbGF5ZXIg
ZnJvbSB0aGUgc3RhZ2UuCisgICAgaWYgKHByaXYtPnJvb3RHcmFwaGljc0xheWVyKSB7CisgICAg
ICAgIGNsdXR0ZXJfY29udGFpbmVyX3JlbW92ZV9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFn
ZSksIHByaXYtPnJvb3RHcmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBw
cml2LT5yb290R3JhcGhpY3NMYXllciA9IDA7CisKKyAgICAgICAgY29yZSh3ZWJWaWV3KS0+bWFp
bkZyYW1lKCktPnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMo
KTsKKyAgICB9CisKKyAgICAvLyBBZGQgYSByb290IGxheWVyIHRvIHRoZSBzdGFnZS4KKyAgICBp
ZiAoZ3JhcGhpY3NMYXllcikgeworICAgICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IGdy
YXBoaWNzTGF5ZXI7CisgICAgICAgIC8vIHNldCB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIENs
dXR0ZXJDb2xvciBzdGFnZUNvbG9yID0geyAweEZGLCAweEZGLCAweEZGLCAweEZGIH07CisgICAg
ICAgIGNsdXR0ZXJfc3RhZ2Vfc2V0X2NvbG9yKENMVVRURVJfU1RBR0UgKHN0YWdlKSwgJnN0YWdl
Q29sb3IpOworICAgICAgICBjbHV0dGVyX2NvbnRhaW5lcl9hZGRfYWN0b3IoQ0xVVFRFUl9DT05U
QUlORVIoc3RhZ2UpLCBwcml2LT5yb290R3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpKTsK
KyAgICAgICAgY2x1dHRlcl9hY3Rvcl9zaG93X2FsbChzdGFnZSk7CisgICAgfQorI2Vsc2UKICAg
ICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKK3ZvaWQgd2ViVmlld0RldGFjaFJvb3RH
cmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisjaWYgVVNFKENMVVRURVIp
CisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OworICAgIC8v
IERldGFjaCB0aGUgcm9vdCBsYXllciBmcm9tIHRoZSBob3N0aW5nIHZpZXcuCisgICAgZ3RrX2Nv
bnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1i
ZWRkZXIpOworICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gTlVMTDsKKyAgICBwcml2LT5y
b290R3JhcGhpY3NMYXllciA9IE5VTEw7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7Cisj
ZW5kaWYKK30KKworc3RhdGljIGdib29sZWFuIHdlYlZpZXdTeW5jTGF5ZXJzKGdwb2ludGVyIGRh
dGEpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhkYXRh
KTsKKyAgICBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygpLT5zeW5jQ29tcG9zaXRp
bmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiB2
b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBz
Y2hlZHVsZVN5bmMpCiB7CisjaWYgVVNFKENMVVRURVIpCisgICAgZ190aW1lb3V0X2FkZCgwLCB3
ZWJWaWV3U3luY0xheWVycywgd2ViVmlldyk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7
CisjZW5kaWYKIH0KKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCA5MmMzNTVlLi5m
NzY3MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
d3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaApAQCAtMzIsNiArMzIsMTEgQEAKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUu
aCIKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vidmlldy5oPgogCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0xVVFRFUikKKyNpbmNsdWRlIDxjbHV0dGVyLWd0ay9j
bHV0dGVyLWd0ay5oPgorI2luY2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogV2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7CiBX
ZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSopOwpAQCAtOTIsNiArOTcsMTAgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVy
IGNsaWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5k
RHJvcEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0xVVFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiByb290R3JhcGhpY3NMYXllcjsKKyAgICBHdGtXaWRnZXQqIHJvb3RMYXllckVtYmVkZGVyOwor
I2VuZGlmCiB9OwogCiB2b2lkIHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2Vi
VmlldyopOwpAQCAtMTE0LDYgKzEyMyw3IEBAIHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogdm9pZCB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKTsKK3ZvaWQgd2ViVmlld0RldGFjaFJvb3RHcmFwaGljc0xheWVy
KFdlYktpdFdlYlZpZXcqKTsKIHZvaWQgd2ViVmlld01hcmtGb3JTeW5jKFdlYktpdFdlYlZpZXcq
LCBnYm9vbGVhbik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZp
Z3VyZS5hYwppbmRleCA2NGZmYzc5Li5hZDI3ZTgyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMK
KysrIGIvY29uZmlndXJlLmFjCkBAIC0yODYsNiArMjg2LDggQEAgR1NUUkVBTUVSX1JFUVVJUkVE
X1ZFUlNJT049MC4xMAogR1NUUkVBTUVSX1BMVUdJTlNfQkFTRV9SRVFVSVJFRF9WRVJTSU9OPTAu
MTAuMzAKIEVOQ0hBTlRfUkVRVUlSRURfVkVSU0lPTj0wLjIyCiBMSUJGRlRXX1JFUVVJUkVEX1ZF
UlNJT049My4yLjIKK0NMVVRURVJfUkVRVUlSRURfVkVSU0lPTj0xLjguMworQ0xVVFRFUl9HVEtf
UkVRVUlSRURfVkVSU0lPTj0xLjAuMgogCiAjIEF2YWlsYWJsZSBtb2R1bGVzCiAjCkBAIC0zOTcs
NyArMzk5LDcgQEAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV93ZWJnbF0pCiAjIGNoZWNrIHdoZXRo
ZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQKIEFDX01TR19DSEVD
S0lORyhbd2hldGhlciB0byBlbmFibGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9ydF0p
CiBBQ19BUkdfV0lUSChhY2NlbGVyYXRlZF9jb21wb3NpdGluZywKLSAgICAgICAgICAgIEFDX0hF
TFBfU1RSSU5HKFstLXdpdGgtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmc9QDw6QG5vL29wZW5nbC9j
YWlyb0A6PkBdLAorICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1hY2NlbGVyYXRl
ZC1jb21wb3NpdGluZz1APDpAbm8vb3BlbmdsL2NhaXJvL2NsdXR0ZXJAOj5AXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFt1c2UgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgKGV4cGVyaW1l
bnRhbCkgW2RlZmF1bHQ9bm9dXSksCiAgICAgICAgICAgICBbXSwgW3dpdGhfYWNjZWxlcmF0ZWRf
Y29tcG9zaXRpbmc9Im5vIl0pCiBBQ19NU0dfUkVTVUxUKFskd2l0aF9hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ10pCkBAIC0xMDgyLDYgKzEwODQsMTcgQEAgaWYgdGVzdCAiJGVuYWJsZV93ZWJfYXVk
aW8iID0gInllcyI7IHRoZW4KICAgICBBQ19TVUJTVChbTElCRkZUV19MSUJTXSkKIGZpCiAKK2lm
IHRlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIjsgdGhlbgor
ICAgUEtHX0NIRUNLX01PRFVMRVMoQ0xVVFRFUiwgY2x1dHRlci0xLjAgPj0gJENMVVRURVJfUkVR
VUlSRURfVkVSU0lPTikKKyAgIFBLR19DSEVDS19NT0RVTEVTKFtDTFVUVEVSX0dUS10sCisgICAg
ICAgICAgICAgICAgICAgICBbY2x1dHRlci1ndGstMS4wID49ICRDTFVUVEVSX0dUS19SRVFVSVJF
RF9WRVJTSU9OXSkKKworICAgQUNfU1VCU1QoQ0xVVFRFUl9DRkxBR1MpCisgICBBQ19TVUJTVChD
TFVUVEVSX0xJQlMpCisgICBBQ19TVUJTVChDTFVUVEVSX0dUS19DRkxBR1MpCisgICBBQ19TVUJT
VChDTFVUVEVSX0dUS19MSUJTKQorZmkKKwogIyBjaGVjayBmb3IgY29kZSBjb3ZlcmFnZSBzdXBw
b3J0CiBpZiB0ZXN0ICIkZW5hYmxlX2NvdmVyYWdlIiA9ICJ5ZXMiOyB0aGVuCiAgICBDT1ZFUkFH
RV9DRkxBR1M9Ii1NRCIKQEAgLTExNTYsOSArMTE2OSwxMCBAQCBBTV9DT05ESVRJT05BTChbVVNF
X1BBTkdPXSwgW3Rlc3QgIiR3aXRoX2ZvbnRfYmFja2VuZCIgPSAicGFuZ28iXSkKIEFNX0NPTkRJ
VElPTkFMKFtVU0VfR1NUUkVBTUVSXSwgW3Rlc3QgIiRoYXZlX2dzdHJlYW1lciIgPSAieWVzIl0p
CiAKICMgQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgY29uZGl0aW9uYWwKLUFNX0NPTkRJVElPTkFM
KFtVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkddLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRf
Y29tcG9zaXRpbmciID0gImNhaXJvIiB8fCB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3Np
dGluZyIgPSAib3BlbmdsIl0pCitBTV9DT05ESVRJT05BTChbVVNFX0FDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjYWlybyIg
fHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gIm9wZW5nbCIgfHwgdGVz
dCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gImNsdXR0ZXIiXSkKIEFNX0NPTkRJ
VElPTkFMKFtVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk9dLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0
ZWRfY29tcG9zaXRpbmciID0gImNhaXJvIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX1RFWFRVUkVf
TUFQUEVSX0dMXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJvcGVu
Z2wiXSkKK0FNX0NPTkRJVElPTkFMKFtVU0VfQ0xVVFRFUl0sIFt0ZXN0ICIkd2l0aF9hY2NlbGVy
YXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciJdKQogCiAjIFdlYktpdCBmZWF0dXJlIGNvbmRp
dGlvbmFscwogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ERUJVR10sW3Rlc3QgIiRlbmFibGVfZGVi
dWdfZmVhdHVyZXMiID0gInllcyJdKQo=
</data>
<flag name="commit-queue"
          id="117357"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117891</attachid>
            <date>2011-12-05 09:49:21 -0800</date>
            <delta_ts>2011-12-08 23:56:44 -0800</delta_ts>
            <desc>Proposed Patch7</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>20848</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5OTRjNzljLi5iMjg4ZDIx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDUgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEV4cG9ydCBuZXcgY29tcGlsYXRpb24gbWFjcm9z
LgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogQWRkIGNsdXR0ZXIgYmFja2VuZCBmb3IgQWNjZWxl
cmF0ZWQgQ29tcG9zaXRpbmcuCisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNvdXAgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBlYWJiNjNl
Li44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0gXAogCS1EV1RGX1VTRV9U
RVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NMVVRURVIKK2dsb2JhbF9j
cHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYKKwogIyAtLS0tCiAjIEdU
SysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YTA1YzJhLi43ZmQyY2Jk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTItMDUgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+LCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPiAKKworICAgICAgICBbR1RLXSBJbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIHVzaW5nIENsdXR0ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFk
ZGVkIGFzIHRoaXMgZmVhdHVyZSB3aWxsIGJlIGFibGUgdG8gcmV1c2UgdGhlIGV4aXN0aW5nIAor
ICAgICAgICBDU1MzIHRyYW5zZm9ybXMgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06IEluY2x1ZGUgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyIHBhdGgu
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIEdyYXBoaWNzTGF5ZXJDbHV0dGVy
LgorICAgICAgICAqIHBsYXRmb3JtL2NsdXR0ZXIvR1JlZlB0ckNsdXR0ZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdURjo6YWRvcHRHUmVmKToKKyAgICAgICAgKFdURjo6Q2x1dHRlckFjdG9yKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDogRGVmaW5lIFBsYXRmb3Jt
TGF5ZXIgdHlwZSwgd2hpY2ggcmVwcmVzZW50cyBDbHV0dGVyQWN0b3IuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5jcHA6IEJvaWxlcnBs
YXRlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsdXR0
ZXI6OkdyYXBoaWNzTGF5ZXJDbHV0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDbHV0dGVyOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
bHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmg6IEJvaWxlcnBsYXRlIGltcGxlbWVudGF0aW9u
LgorCiAyMDExLTEyLTA1ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgQXN5bmNocm9ub3VzIFNwZWxsQ2hlY2tlciBzaG91bGQgY29uc2lkZXIgbXVsdGlw
bGUgcmVxdWVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDc1ODkzNGMuLjYxYzAzOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC01NzUsNiArNTc1LDEyIEBAIHdlYmNvcmVfY3BwZmxhZ3Mg
Kz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cAogZW5kaWYgICMgRU5EIFVTRVRFWFRVUkVfTUFQUEVSX0dMCiAKK2lmIFVTRV9DTFVUVEVSCit3
ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jbHV0dGVyCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2x1dHRlcgorZW5kaWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMgLS0tCiAjIE1IVE1MIHN1cHBv
cnQKICMgLS0tCkBAIC04MDEsNiArODA3LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwK
IAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAog
CSQoQ0FJUk9fQ0ZMQUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAogCSQoQ09WRVJBR0VfQ0ZM
QUdTKSBcCiAJJChFTkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xVRV9DRkxBR1MpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU1OWRjYjkuLmU0NTBmYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTA2OSw2ICs1MDY5LDE1IEBAIGVuZGlmICAjIEVORCBF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUKICMgQ29tcGlsZSB3aXRoIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nIHN1cHBvcnQKICMgLS0tCiBpZiBVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcKK2lmIFVTRV9DTFVUVEVSCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NsdXR0ZXIvR1JlZlB0ckNsdXR0ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgK
K2VuZGlmICAjIEVORCBVU0VfQ0xVVFRFUgorCitpZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8K
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggXApA
QCAtNTA3Niw3ICs1MDg1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyLmgKLWlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwogd2ViY29yZWd0a19z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0
dXJlTWFwcGVyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2x1dHRlci9HUmVmUHRyQ2x1dHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yYTM0MTg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2x1dHRlci9HUmVmUHRyQ2x1dHRlci5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMTEgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdSZWZQdHJDbHV0dGVy
LmgiCisKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlIDw+IEdSZWZQdHI8Q2x1dHRlckFjdG9yPiBhZG9wdEdSZWYoQ2x1dHRlckFjdG9y
KiBwdHIpCit7CisgICAgaWYgKGdfb2JqZWN0X2lzX2Zsb2F0aW5nKHB0cikpCisgICAgICAgIGdf
b2JqZWN0X3JlZl9zaW5rKHB0cik7CisKKyAgICByZXR1cm4gR1JlZlB0cjxDbHV0dGVyQWN0b3I+
KHB0ciwgR1JlZlB0ckFkb3B0KTsKK30KKwordGVtcGxhdGUgPD4gQ2x1dHRlckFjdG9yKiByZWZH
UHRyPENsdXR0ZXJBY3Rvcj4oQ2x1dHRlckFjdG9yKiBwdHIpCit7CisgICAgaWYgKHB0cikgewor
ICAgICAgICBpZiAoZ19vYmplY3RfaXNfZmxvYXRpbmcocHRyKSkKKyAgICAgICAgICAgIGdfb2Jq
ZWN0X3JlZl9zaW5rKHB0cik7CisKKyAgICAgICAgZ19vYmplY3RfcmVmKHB0cik7CisgICAgfQor
CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHI8Q2x1dHRl
ckFjdG9yPihDbHV0dGVyQWN0b3IqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX29i
amVjdF91bnJlZihwdHIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
bHV0dGVyL0dSZWZQdHJDbHV0dGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDkxZDI3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Ns
dXR0ZXIvR1JlZlB0ckNsdXR0ZXIuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMjAxMSBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdSZWZQdHJDbHV0
dGVyX2gKKyNkZWZpbmUgR1JlZlB0ckNsdXR0ZXJfaAorCisjaW5jbHVkZSAiR1JlZlB0ci5oIgor
Cit0eXBlZGVmIHN0cnVjdCBfQ2x1dHRlckFjdG9yIENsdXR0ZXJBY3RvcjsKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gQ2x1dHRlckFjdG9yKiByZWZHUHRyPENsdXR0ZXJBY3Rvcj4o
Q2x1dHRlckFjdG9yKiBwdHIpOwordGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxDbHV0dGVyQWN0
b3I+KENsdXR0ZXJBY3RvciogcHRyKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3YjgzNDBlLi40NWI2
ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCkBAIC03NCw2ICs3NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllcjsKIHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXIgUGxhdGZvcm1MYXllcjsKIH07CisjZWxpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0
IF9DbHV0dGVyQWN0b3IgQ2x1dHRlckFjdG9yOworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRl
ZiBDbHV0dGVyQWN0b3IgUGxhdGZvcm1MYXllcjsKK307CiAjZW5kaWYKICNlbHNlCiB0eXBlZGVm
IHZvaWQqIFBsYXRmb3JtTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCmlu
ZGV4IGNlZWRjM2MuLjU2YWU2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuY3Bw
CkBAIC00MSwxMiArNDEsMTkgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBHcmFwaGljc0xh
eWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogR3JhcGhpY3NMYXllckNs
dXR0ZXI6OkdyYXBoaWNzTGF5ZXJDbHV0dGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkK
ICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogeworICAgIC8vIENsdXR0ZXJSZWN0YW5nbGUg
d2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIGRlYnVnIGJvcmRlci4KKyAgICBtX2xheWVyID0gYWRv
cHRHUmVmKGNsdXR0ZXJfcmVjdGFuZ2xlX25ldygpKTsKIH0KIAogR3JhcGhpY3NMYXllckNsdXR0
ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0NsdXR0ZXJBY3RvciogR3JhcGhp
Y3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyLmdldCgpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpzZXROZWVkc0Rpc3Bs
YXkoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVy
LmgKaW5kZXggZGIyOWIxZi4uNDJmNmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIu
aApAQCAtMjksOCArMjksMTEgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IAorI2luY2x1ZGUgIkdSZWZQdHJDbHV0dGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5o
IgogCisjaW5jbHVkZSA8Y2x1dHRlci9jbHV0dGVyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgR3JhcGhpY3NMYXllckNsdXR0ZXIgOiBwdWJsaWMgR3JhcGhpY3NMYXllciB7CkBA
IC0zOCw4ICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllckNsdXR0ZXIoR3JhcGhp
Y3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDbHV0dGVyKCk7CiAK
KyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNE
aXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworCitwcml2YXRlOgorICAgIEdSZWZQdHI8
Q2x1dHRlckFjdG9yPiBtX2xheWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGVmNjBiZmUuLjNjY2UzNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMS0xMi0wNSAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5j
by51az4KKworICAgICAgICBbR1RLXSBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJh
dGVkIENvbXBvc2l0aW5nIHVzaW5nIENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAgVGhpcyBwYXRjaCBhbGxvd3Mg
dG8gYWRkIGEgR3RrQ2x1dHRlckVtYmVkIHRvIGVtYmVkIENsdXR0ZXIgQWN0b3JzIGluIFdlYktp
dFdlYlZpZXcgYW5kIAorICAgICAgICBzZXQgdGhlIHJvb3QgR3JhcGhpY3NMYXllciB0byBXZWJL
aXRXZWJWaWV3IHdoZW4gQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgbmVlZHMgdG8gYmUgZW5hYmxl
ZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIpOiBTZXQgdGhlIHJvb3QgR3JhcGhpY3NMYXllciB0byBXZWJLaXRXZWJWaWV3LgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKTogQWxs
b3cgdG8gc3VwcG9ydCBDU1MgM0QgVHJhbnNmb3JtcyBvbmx5LgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRnbG9iYWxzLmNwcDoKKyAgICAgICAgKHdlYmtpdEluaXQpOiBDYWxsIGd0a19jbHV0dGVy
X2luaXQoKS4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IFNldCB0aGUgc2l6ZSBvZiBHdGtDbHV0dGVy
RW1iZWQgd2hlbiB0aGUgdmlldyBpcyBjaGFuZ2VkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2luaXQpCisgICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIpOiBBZGQgdGhlIEd0
a0NsdXR0ZXJFbWJlZCB0byB0aGUgV2ViS2l0V2ViVmlldyBhcyBhIGNoaWxkLgorICAgICAgICAo
d2ViVmlld0RldGFjaFJvb3RHcmFwaGljc0xheWVyKTogUmVtb3ZlIHRoZSBHdGtDbHV0dGVyRW1i
ZWQgZnJvbSB0aGUgV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYlZpZXdTeW5jTGF5ZXJzKTog
Q29tbWl0IGxheWVyIGNoYW5nZXMuCisgICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOiBTZXQg
dG8gY2FsbCB3ZWJWaWV3U3luY0xheWVycyB1c2luZyBnX3RpbWVvdXRfYWRkLgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDExLTEyLTA0ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR3RrXSBDaGVjayBm
b3IgdGhlIGxvYWQtY29tcGxldGUgZXZlbnQgb25seSBpbiB0aGUgdW5pdCB0ZXN0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KaW5kZXggZTM0YjQ0Mi4uMzhkZDI3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05V
bWFrZWZpbGUuYW0KQEAgLTU4LDYgKzU4LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUEYKIAkk
KHdlYmtpdGd0a19jcHBmbGFncykgXAogCS1mbm8tc3RyaWN0LWFsaWFzaW5nIFwKIAkkKEhJTERP
Tl9DUFBGTEFHUykgXAorCSQoQ0xVVFRFUl9DRkxBR1MpIFwKKwkkKENMVVRURVJfR1RLX0NGTEFH
UykgXAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChFTkNIQU5UX0NGTEFHUykgXAogCSQoR0FJ
TF9DRkxBR1MpIFwKQEAgLTg3LDYgKzg5LDggQEAgbGlid2Via2l0Z3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0xJQkEKIAls
aWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lU
R1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCiAJJCh3ZWJjb3JlX2xkZmxhZ3MpIFwKIAkkKENB
SVJPX0xJQlMpIFwKKwkkKENMVVRURVJfTElCUykgXAorCSQoQ0xVVFRFUl9HVEtfTElCUykgXAog
CSQoQ09WRVJBR0VfTERGTEFHUykgXAogCSQoRU5DSEFOVF9MSUJTKSBcCiAJJChGUkVFVFlQRV9M
SUJTKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAppbmRleCBhZDhjZjlhLi4xMTY2NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTkxMiw3
ICs5MTIsMTAgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChX
ZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIHZvaWQgQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcikKIHsKLSAgICB3ZWJWaWV3U2V0Um9vdEdyYXBo
aWNzTGF5ZXIobV93ZWJWaWV3LCByb290TGF5ZXIpOworICAgIGlmIChyb290TGF5ZXIpCisgICAg
ICAgIHdlYlZpZXdTZXRSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcsIHJvb3RMYXllcik7Cisg
ICAgZWxzZQorICAgICAgICB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3
KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKQpAQCAtOTI3LDcgKzkzMCwxNCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyU3luYygpCiAKIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmln
Z2VyRmxhZ3MgQ2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0
CiB7CisgICAgIGlmICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNpZiBVU0UoQ0xVVFRFUikKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBD
U1MgM0QgVHJhbnNmb3Jtcy4KKyAgICByZXR1cm4gVGhyZWVEVHJhbnNmb3JtVHJpZ2dlcjsKKyNl
bHNlCiAgICAgcmV0dXJuIEFsbFRyaWdnZXJzOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCmluZGV4IDNjODFiNDUuLmY5M2Vk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAKQEAgLTUy
LDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KIAorI2lmIFVTRShDTFVUVEVSKQorI2luY2x1ZGUgPGNsdXR0ZXItZ3RrL2NsdXR0ZXIt
Z3RrLmg+CisjZW5kaWYKKwogc3RhdGljIFdlYktpdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IFdF
QktJVF9DQUNIRV9NT0RFTF9ERUZBVUxUOwogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTM0MCw1ICszNDQsOSBAQCB2b2lkIHdlYmtpdEluaXQoKQogCiAgICAgc291cF9zZXNzaW9uX2Fk
ZF9mZWF0dXJlX2J5X3R5cGUoc2Vzc2lvbiwgU09VUF9UWVBFX0NPTlRFTlRfREVDT0RFUik7CiAK
KyNpZiBVU0UoQ0xVVFRFUikKKyAgICBndGtfY2x1dHRlcl9pbml0KDAsIDApOworI2VuZGlmCisK
ICAgICBhdGV4aXQod2Via2l0RXhpdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAKaW5kZXggOTFmMmRmYS4uMjhmNzgzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTg1Niw2ICs4NTYsMTQgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0
a0FsbG9jYXRpb24qIGFsbG8KICAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2hyb21lQ2xpZW50
ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnQqPihwYWdlLT5jaHJvbWUoKS0+Y2xp
ZW50KCkpOwogICAgIGNocm9tZUNsaWVudC0+d2lkZ2V0U2l6ZUNoYW5nZWQob2xkU2l6ZSwgSW50
U2l6ZShhbGxvY2F0aW9uLT53aWR0aCwgYWxsb2NhdGlvbi0+aGVpZ2h0KSk7CiAgICAgY2hyb21l
Q2xpZW50LT5hZGp1c3RtZW50V2F0Y2hlcigpLT51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxi
YXJzKCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVS
KQorICAgIGlmICh3ZWJWaWV3LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlcikgeworICAgICAgICBh
bGxvY2F0aW9uLT54ID0gMDsKKyAgICAgICAgYWxsb2NhdGlvbi0+eSA9IDA7CisgICAgICAgIGd0
a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXctPnByaXYtPnJvb3RMYXll
ckVtYmVkZGVyKSwgYWxsb2NhdGlvbik7CisgICAgfQorI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19ncmFiX2ZvY3VzKEd0a1dpZGdldCogd2lkZ2V0KQpAQCAtNDg4NSwx
MyArNDg5Myw3MCBAQCB2b2lkIHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgd2ViVmlld1Nl
dFJvb3RHcmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIpCiB7CisjaWYgVVNFKENMVVRURVIpCisgICAgV2ViS2l0V2ViVmlld1By
aXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OworCisgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNl
IG9mIEd0a0NsdXR0ZXJFbWJlZCB0byBob3N0IGFjdG9ycyBhcyB3ZWIgbGF5ZXJzLgorICAgIGlm
ICghcHJpdi0+cm9vdExheWVyRW1iZWRkZXIpIHsKKyAgICAgICAgcHJpdi0+cm9vdExheWVyRW1i
ZWRkZXIgPSBndGtfY2x1dHRlcl9lbWJlZF9uZXcoKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9h
ZGQoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgcHJpdi0+cm9vdExheWVyRW1iZWRkZXIpOworICAg
ICAgICBndGtfd2lkZ2V0X3Nob3cocHJpdi0+cm9vdExheWVyRW1iZWRkZXIpOworICAgIH0KKwor
ICAgIENsdXR0ZXJBY3Rvciogc3RhZ2UgPSBndGtfY2x1dHRlcl9lbWJlZF9nZXRfc3RhZ2UoR1RL
X0NMVVRURVJfRU1CRUQocHJpdi0+cm9vdExheWVyRW1iZWRkZXIpKTsKKworICAgIC8vIFJlbW92
ZSB0aGUgZXhpc3Rpbmcgcm9vdCBsYXllciBmcm9tIHRoZSBzdGFnZS4KKyAgICBpZiAocHJpdi0+
cm9vdEdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgY2x1dHRlcl9jb250YWluZXJfcmVtb3ZlX2Fj
dG9yKENMVVRURVJfQ09OVEFJTkVSKHN0YWdlKSwgcHJpdi0+cm9vdEdyYXBoaWNzTGF5ZXItPnBs
YXRmb3JtTGF5ZXIoKSk7CisgICAgICAgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyID0gMDsKKwor
ICAgICAgICBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygpLT5zeW5jQ29tcG9zaXRp
bmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOworICAgIH0KKworICAgIC8vIEFkZCBhIHJvb3Qg
bGF5ZXIgdG8gdGhlIHN0YWdlLgorICAgIGlmIChncmFwaGljc0xheWVyKSB7CisgICAgICAgIHBy
aXYtPnJvb3RHcmFwaGljc0xheWVyID0gZ3JhcGhpY3NMYXllcjsKKyAgICAgICAgLy8gc2V0IHdo
aXRlIGJhY2tncm91bmQKKyAgICAgICAgQ2x1dHRlckNvbG9yIHN0YWdlQ29sb3IgPSB7IDB4RkYs
IDB4RkYsIDB4RkYsIDB4RkYgfTsKKyAgICAgICAgY2x1dHRlcl9zdGFnZV9zZXRfY29sb3IoQ0xV
VFRFUl9TVEFHRSAoc3RhZ2UpLCAmc3RhZ2VDb2xvcik7CisgICAgICAgIGNsdXR0ZXJfY29udGFp
bmVyX2FkZF9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSksIHByaXYtPnJvb3RHcmFwaGlj
c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBjbHV0dGVyX2FjdG9yX3Nob3dfYWxs
KHN0YWdlKTsKKyAgICB9CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30K
Kwordm9pZCB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKK3sKKyNpZiBVU0UoQ0xVVFRFUikKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJp
diA9IHdlYlZpZXctPnByaXY7CisgICAgLy8gRGV0YWNoIHRoZSByb290IGxheWVyIGZyb20gdGhl
IGhvc3Rpbmcgdmlldy4KKyAgICBndGtfY29udGFpbmVyX3JlbW92ZShHVEtfQ09OVEFJTkVSKHdl
YlZpZXcpLCBwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgcHJpdi0+cm9vdExheWVyRW1i
ZWRkZXIgPSAwOworICAgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyID0gMDsKKyNlbHNlCisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld1N5
bmNMYXllcnMoZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0g
V0VCS0lUX1dFQl9WSUVXKGRhdGEpOworICAgIGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpLT52
aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CisKKyAgICBy
ZXR1cm4gRkFMU0U7CiB9CiAKIHZvaWQgd2ViVmlld01hcmtGb3JTeW5jKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIGdib29sZWFuIHNjaGVkdWxlU3luYykKIHsKKyNpZiBVU0UoQ0xVVFRFUikKKyAg
ICBnX3RpbWVvdXRfYWRkKDAsIHdlYlZpZXdTeW5jTGF5ZXJzLCB3ZWJWaWV3KTsKKyNlbHNlCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgogfQorCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
d3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oCmluZGV4IDkyYzM1NWUuLmY3NjcxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0zMiw2ICszMiwxMSBAQAogI2luY2x1ZGUg
IldpZGdldEJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg+
CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQorI2lu
Y2x1ZGUgPGNsdXR0ZXItZ3RrL2NsdXR0ZXItZ3RrLmg+CisjaW5jbHVkZSA8Y2x1dHRlci9jbHV0
dGVyLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJDb3JlOjpQYWdlKiBjb3Jl
KFdlYktpdFdlYlZpZXcqKTsKIFdlYktpdFdlYlZpZXcqIGtpdChXZWJDb3JlOjpQYWdlKik7CkBA
IC05Miw2ICs5NywxMCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAgICBXZWJD
b3JlOjpHdGtDbGlja0NvdW50ZXIgY2xpY2tDb3VudGVyOwogICAgIFdlYkNvcmU6Okd0a0RyYWdB
bmREcm9wSGVscGVyIGRyYWdBbmREcm9wSGVscGVyOwogICAgIGJvb2wgc2VsZlNjcm9sbGluZzsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQorICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RHcmFwaGljc0xheWVyOworICAgIEd0a1dpZGdldCog
cm9vdExheWVyRW1iZWRkZXI7CisjZW5kaWYKIH07CiAKIHZvaWQgd2Via2l0X3dlYl92aWV3X25v
dGlmeV9yZWFkeShXZWJLaXRXZWJWaWV3Kik7CkBAIC0xMTQsNiArMTIzLDcgQEAgdm9pZCB3ZWJW
aWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldyk7CiAKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIHdlYlZpZXdTZXRSb290R3JhcGhpY3NMYXllcihX
ZWJLaXRXZWJWaWV3KiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwordm9pZCB3ZWJWaWV3RGV0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJWaWV3TWFya0Zv
clN5bmMoV2ViS2l0V2ViVmlldyosIGdib29sZWFuKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv
Y29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDY0ZmZjNzkuLmFkMjdlODIgMTAwNjQ0
Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTI4Niw2ICsyODYsOCBA
QCBHU1RSRUFNRVJfUkVRVUlSRURfVkVSU0lPTj0wLjEwCiBHU1RSRUFNRVJfUExVR0lOU19CQVNF
X1JFUVVJUkVEX1ZFUlNJT049MC4xMC4zMAogRU5DSEFOVF9SRVFVSVJFRF9WRVJTSU9OPTAuMjIK
IExJQkZGVFdfUkVRVUlSRURfVkVSU0lPTj0zLjIuMgorQ0xVVFRFUl9SRVFVSVJFRF9WRVJTSU9O
PTEuOC4zCitDTFVUVEVSX0dUS19SRVFVSVJFRF9WRVJTSU9OPTEuMC4yCiAKICMgQXZhaWxhYmxl
IG1vZHVsZXMKICMKQEAgLTM5Nyw3ICszOTksNyBAQCBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3dl
YmdsXSkKICMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcg
c3VwcG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBzdXBwb3J0XSkKIEFDX0FSR19XSVRIKGFjY2VsZXJhdGVkX2NvbXBvc2l0aW5n
LAotICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1hY2NlbGVyYXRlZC1jb21wb3Np
dGluZz1APDpAbm8vb3BlbmdsL2NhaXJvQDo+QF0sCisgICAgICAgICAgICBBQ19IRUxQX1NUUklO
RyhbLS13aXRoLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nPUA8OkBuby9vcGVuZ2wvY2Fpcm8vY2x1
dHRlckA6PkBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZSBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyAoZXhwZXJpbWVudGFsKSBbZGVmYXVsdD1ub11dKSwKICAgICAgICAgICAgIFtd
LCBbd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZz0ibm8iXSkKIEFDX01TR19SRVNVTFQoWyR3
aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nXSkKQEAgLTEwODIsNiArMTA4NCwxNyBAQCBpZiB0
ZXN0ICIkZW5hYmxlX3dlYl9hdWRpbyIgPSAieWVzIjsgdGhlbgogICAgIEFDX1NVQlNUKFtMSUJG
RlRXX0xJQlNdKQogZmkKIAoraWYgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmci
ID0gImNsdXR0ZXIiOyB0aGVuCisgICBQS0dfQ0hFQ0tfTU9EVUxFUyhDTFVUVEVSLCBjbHV0dGVy
LTEuMCA+PSAkQ0xVVFRFUl9SRVFVSVJFRF9WRVJTSU9OKQorICAgUEtHX0NIRUNLX01PRFVMRVMo
W0NMVVRURVJfR1RLXSwKKyAgICAgICAgICAgICAgICAgICAgIFtjbHV0dGVyLWd0ay0xLjAgPj0g
JENMVVRURVJfR1RLX1JFUVVJUkVEX1ZFUlNJT05dKQorCisgICBBQ19TVUJTVChDTFVUVEVSX0NG
TEFHUykKKyAgIEFDX1NVQlNUKENMVVRURVJfTElCUykKKyAgIEFDX1NVQlNUKENMVVRURVJfR1RL
X0NGTEFHUykKKyAgIEFDX1NVQlNUKENMVVRURVJfR1RLX0xJQlMpCitmaQorCiAjIGNoZWNrIGZv
ciBjb2RlIGNvdmVyYWdlIHN1cHBvcnQKIGlmIHRlc3QgIiRlbmFibGVfY292ZXJhZ2UiID0gInll
cyI7IHRoZW4KICAgIENPVkVSQUdFX0NGTEFHUz0iLU1EIgpAQCAtMTE1Niw5ICsxMTY5LDEwIEBA
IEFNX0NPTkRJVElPTkFMKFtVU0VfUEFOR09dLCBbdGVzdCAiJHdpdGhfZm9udF9iYWNrZW5kIiA9
ICJwYW5nbyJdKQogQU1fQ09ORElUSU9OQUwoW1VTRV9HU1RSRUFNRVJdLCBbdGVzdCAiJGhhdmVf
Z3N0cmVhbWVyIiA9ICJ5ZXMiXSkKIAogIyBBY2NlbGVyYXRlZCBjb21wb3NpdGluZyBjb25kaXRp
b25hbAotQU1fQ09ORElUSU9OQUwoW1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0
ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRo
X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJvcGVuZ2wiXSkKK0FNX0NPTkRJVElPTkFMKFtV
U0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkddLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29t
cG9zaXRpbmciID0gImNhaXJvIiB8fCB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGlu
ZyIgPSAib3BlbmdsIiB8fCB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAi
Y2x1dHRlciJdKQogQU1fQ09ORElUSU9OQUwoW1VTRV9URVhUVVJFX01BUFBFUl9DQUlST10sIFt0
ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iXSkKIEFNX0NPTkRJ
VElPTkFMKFtVU0VfVEVYVFVSRV9NQVBQRVJfR0xdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRf
Y29tcG9zaXRpbmciID0gIm9wZW5nbCJdKQorQU1fQ09ORElUSU9OQUwoW1VTRV9DTFVUVEVSXSwg
W3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiAKICMg
V2ViS2l0IGZlYXR1cmUgY29uZGl0aW9uYWxzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RFQlVH
XSxbdGVzdCAiJGVuYWJsZV9kZWJ1Z19mZWF0dXJlcyIgPSAieWVzIl0pCg==
</data>
<flag name="review"
          id="117486"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118539</attachid>
            <date>2011-12-08 23:56:24 -0800</date>
            <delta_ts>2011-12-09 01:41:06 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>ac.patch</filename>
            <type>text/plain</type>
            <size>20643</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjN2ZjZWEyLi41MTJmNWZj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMTItMDkgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyB1c2luZyBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBT
aWx2YS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBFeHBvcnQgbmV3IGNvbXBpbGF0aW9u
IG1hY3Jvcy4KKyAgICAgICAgKiBjb25maWd1cmUuYWM6IEFkZCBjbHV0dGVyIGJhY2tlbmQgZm9y
IEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nLgorCiAyMDExLTEyLTA4ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTAyMzIzLgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5h
bQppbmRleCBlYWJiNjNlLi44MDNjZTgyIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9HTlVtYWtlZmlsZS5hbQpAQCAtMTgwLDYgKzE4MCwxMSBAQCBnbG9iYWxfY3BwZmxhZ3MgKz0g
XAogCS1EV1RGX1VTRV9URVhUVVJFX01BUFBFUl9PUEVOR0w9MQogZW5kaWYKIAoraWYgVVNFX0NM
VVRURVIKK2dsb2JhbF9jcHBmbGFncyArPSBcCisJLURXVEZfVVNFX0NMVVRURVI9MQorZW5kaWYK
KwogIyAtLS0tCiAjIEdUSysgMi54LzMueCBzdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAy
YWFkN2U2Li5iZWJlYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTItMDkg
IEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+LCBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPiAKKworICAgICAgICBbR1RL
XSBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIHVzaW5n
IENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBhZGRlZCBhcyB0aGlzIGZlYXR1cmUgd2lsbCBiZSBhYmxlIHRv
IHJldXNlIHRoZSBleGlzdGluZyAKKyAgICAgICAgQ1NTMyB0cmFuc2Zvcm1zIGxheW91dCB0ZXN0
cy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBJbmNsdWRlIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlciBwYXRoLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFk
ZCBHcmFwaGljc0xheWVyQ2x1dHRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9jbHV0dGVyL0dSZWZQ
dHJDbHV0dGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6CisgICAgICAg
IChXVEY6OkNsdXR0ZXJBY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vY2x1dHRlci9HUmVmUHRy
Q2x1dHRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmg6IERlZmluZSBQbGF0Zm9ybUxheWVyIHR5cGUsIHdoaWNoIHJlcHJlc2VudHMgQ2x1dHRl
ckFjdG9yLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXll
ckNsdXR0ZXIuY3BwOiBCb2lsZXJwbGF0ZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDbHV0dGVyOjpHcmFwaGljc0xheWVyQ2x1dHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2x1dHRlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oOiBCb2ls
ZXJwbGF0ZSBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMS0xMi0wOCAgVmlhdGNoZXNsYXYgT3N0YXBl
bmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFtX
SzJdIFdlYmtpdCBzaG91bGQgcmVsZWFzZSBUZXh0dXJlTWFwcGVyIEdMIG9iamVjdHMgaWYgcGFn
ZSBwYWludCBub2RlIGlzIGRlYWxsb2NhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3NTg5
MzRjLi44YzdiNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNTc1LDYgKzU3NSwxMiBAQCB3
ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAKIGVuZGlmICAjIEVORCBVU0VURVhUVVJFX01BUFBFUl9HTAogCitp
ZiBVU0VfQ0xVVFRFUgord2ViY29yZV9jcHBmbGFncyArPSBcCisJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2x1dHRlciBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlcgorZW5kaWYgICMgRU5EIFVTRV9DTFVUVEVSCisKICMg
LS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCkBAIC04MDEsNiArODA3LDcgQEAgbGliV2ViQ29y
ZV9sYV9DUFBGTEFHUyA9IFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCiAJLWZuby1z
dHJpY3QtYWxpYXNpbmcgXAogCSQoQ0FJUk9fQ0ZMQUdTKSBcCisJJChDTFVUVEVSX0NGTEFHUykg
XAogCSQoQ09WRVJBR0VfQ0ZMQUdTKSBcCiAJJChFTkNIQU5UX0NGTEFHUykgXAogCSQoR0VPQ0xV
RV9DRkxBR1MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGE0NGM5MDcuLmE0
ODY4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTA3NSw2ICs1MDc1LDE1
IEBAIGVuZGlmICAjIEVORCBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUKICMgQ29tcGls
ZSB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQKICMgLS0tCiBpZiBVU0VfQUND
RUxFUkFURURfQ09NUE9TSVRJTkcKK2lmIFVTRV9DTFVUVEVSCit3ZWJjb3JlX3NvdXJjZXMgKz0g
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NsdXR0ZXIvR1JlZlB0ckNsdXR0ZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBo
aWNzTGF5ZXJDbHV0dGVyLmgKK2VuZGlmICAjIEVORCBVU0VfQ0xVVFRFUgorCitpZiBVU0VfVEVY
VFVSRV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmggXApAQCAtNTA4Miw3ICs1MDkxLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgKLWlmIFVTRV9URVhUVVJFX01BUFBFUl9D
QUlSTwogd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2x1dHRlci9HUmVmUHRyQ2x1dHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTM0MTg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2x1dHRlci9HUmVmUHRyQ2x1dHRlci5jcHAKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29sbGFib3JhIEx0ZC4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdSZWZQdHJDbHV0dGVyLmgiCisKKyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IEdSZWZQdHI8Q2x1dHRlckFjdG9yPiBhZG9w
dEdSZWYoQ2x1dHRlckFjdG9yKiBwdHIpCit7CisgICAgaWYgKGdfb2JqZWN0X2lzX2Zsb2F0aW5n
KHB0cikpCisgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rKHB0cik7CisKKyAgICByZXR1cm4gR1Jl
ZlB0cjxDbHV0dGVyQWN0b3I+KHB0ciwgR1JlZlB0ckFkb3B0KTsKK30KKwordGVtcGxhdGUgPD4g
Q2x1dHRlckFjdG9yKiByZWZHUHRyPENsdXR0ZXJBY3Rvcj4oQ2x1dHRlckFjdG9yKiBwdHIpCit7
CisgICAgaWYgKHB0cikgeworICAgICAgICBpZiAoZ19vYmplY3RfaXNfZmxvYXRpbmcocHRyKSkK
KyAgICAgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rKHB0cik7CisKKyAgICAgICAgZ19vYmplY3Rf
cmVmKHB0cik7CisgICAgfQorCisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9p
ZCBkZXJlZkdQdHI8Q2x1dHRlckFjdG9yPihDbHV0dGVyQWN0b3IqIHB0cikKK3sKKyAgICBpZiAo
cHRyKQorICAgICAgICBnX29iamVjdF91bnJlZihwdHIpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jbHV0dGVyL0dSZWZQdHJDbHV0dGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMDkxZDI3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NsdXR0ZXIvR1JlZlB0ckNsdXR0ZXIuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogIENvcHlyaWdodCAoQykgMjAxMSBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWZuZGVmIEdSZWZQdHJDbHV0dGVyX2gKKyNkZWZpbmUgR1JlZlB0ckNsdXR0ZXJfaAorCisjaW5j
bHVkZSAiR1JlZlB0ci5oIgorCit0eXBlZGVmIHN0cnVjdCBfQ2x1dHRlckFjdG9yIENsdXR0ZXJB
Y3RvcjsKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gQ2x1dHRlckFjdG9yKiByZWZH
UHRyPENsdXR0ZXJBY3Rvcj4oQ2x1dHRlckFjdG9yKiBwdHIpOwordGVtcGxhdGU8PiB2b2lkIGRl
cmVmR1B0cjxDbHV0dGVyQWN0b3I+KENsdXR0ZXJBY3RvciogcHRyKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCAwYTE4MTg5Li42MDRmY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC03NCw2ICs3NCwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjsKIHR5cGVkZWYgVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsKIH07CisjZWxpZiBVU0UoQ0xVVFRF
UikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1dHRlckFjdG9yOworbmFtZXNwYWNl
IFdlYkNvcmUgewordHlwZWRlZiBDbHV0dGVyQWN0b3IgUGxhdGZvcm1MYXllcjsKK307CiAjZW5k
aWYKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NM
YXllckNsdXR0ZXIuY3BwCmluZGV4IGNlZWRjM2MuLjU2YWU2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhp
Y3NMYXllckNsdXR0ZXIuY3BwCkBAIC00MSwxMiArNDEsMTkgQEAgUGFzc093blB0cjxHcmFwaGlj
c0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50
KQogR3JhcGhpY3NMYXllckNsdXR0ZXI6OkdyYXBoaWNzTGF5ZXJDbHV0dGVyKEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogeworICAgIC8v
IENsdXR0ZXJSZWN0YW5nbGUgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIGRlYnVnIGJvcmRlci4K
KyAgICBtX2xheWVyID0gYWRvcHRHUmVmKGNsdXR0ZXJfcmVjdGFuZ2xlX25ldygpKTsKIH0KIAog
R3JhcGhpY3NMYXllckNsdXR0ZXI6On5HcmFwaGljc0xheWVyQ2x1dHRlcigpCiB7CiB9CiAKK0Ns
dXR0ZXJBY3RvciogR3JhcGhpY3NMYXllckNsdXR0ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX2xheWVyLmdldCgpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDbHV0
dGVyOjpzZXROZWVkc0Rpc3BsYXkoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5
ZXJDbHV0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dy
YXBoaWNzTGF5ZXJDbHV0dGVyLmgKaW5kZXggZGIyOWIxZi4uNDJmNmI3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1
dHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3Jh
cGhpY3NMYXllckNsdXR0ZXIuaApAQCAtMjksOCArMjksMTEgQEAKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIAorI2luY2x1ZGUgIkdSZWZQdHJDbHV0dGVyLmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllci5oIgogCisjaW5jbHVkZSA8Y2x1dHRlci9jbHV0dGVyLmg+CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NMYXllckNsdXR0ZXIgOiBwdWJsaWMg
R3JhcGhpY3NMYXllciB7CkBAIC0zOCw4ICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NM
YXllckNsdXR0ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNz
TGF5ZXJDbHV0dGVyKCk7CiAKKyAgICB2aXJ0dWFsIENsdXR0ZXJBY3RvciogcGxhdGZvcm1MYXll
cigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworCitwcml2
YXRlOgorICAgIEdSZWZQdHI8Q2x1dHRlckFjdG9yPiBtX2xheWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI0YWI3ZDguLmI1ZjBmMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0xMi0wOSAgSm9vbmUgSHVyICA8am9v
bmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBbR1RLXSBJbml0aWFsIGltcGxlbWVu
dGF0aW9uIG9mIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIHVzaW5nIENsdXR0ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5CisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbGxvd3MgdG8gYWRkIGEgR3RrQ2x1dHRlckVtYmVkIHRvIGVtYmVkIENsdXR0
ZXIgQWN0b3JzIGluIFdlYktpdFdlYlZpZXcgYW5kIAorICAgICAgICBzZXQgdGhlIHJvb3QgR3Jh
cGhpY3NMYXllciB0byBXZWJLaXRXZWJWaWV3IHdoZW4gQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcg
bmVlZHMgdG8gYmUgZW5hYmxlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogU2V0IHRoZSByb290IEdyYXBoaWNzTGF5ZXIg
dG8gV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2Vk
Q29tcG9zaXRpbmdUcmlnZ2Vycyk6IEFsbG93IHRvIHN1cHBvcnQgQ1NTIDNEIFRyYW5zZm9ybXMg
b25seS4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6CisgICAgICAgICh3ZWJr
aXRJbml0KTogQ2FsbCBndGtfY2x1dHRlcl9pbml0KCkuCisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUpOiBT
ZXQgdGhlIHNpemUgb2YgR3RrQ2x1dHRlckVtYmVkIHdoZW4gdGhlIHZpZXcgaXMgY2hhbmdlZC4K
KyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KQorICAgICAgICAod2ViVmlld1NldFJvb3RH
cmFwaGljc0xheWVyKTogQWRkIHRoZSBHdGtDbHV0dGVyRW1iZWQgdG8gdGhlIFdlYktpdFdlYlZp
ZXcgYXMgYSBjaGlsZC4KKyAgICAgICAgKHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcik6
IFJlbW92ZSB0aGUgR3RrQ2x1dHRlckVtYmVkIGZyb20gdGhlIFdlYktpdFdlYlZpZXcuCisgICAg
ICAgICh3ZWJWaWV3U3luY0xheWVycyk6IENvbW1pdCBsYXllciBjaGFuZ2VzLgorICAgICAgICAo
d2ViVmlld01hcmtGb3JTeW5jKTogU2V0IHRvIGNhbGwgd2ViVmlld1N5bmNMYXllcnMgdXNpbmcg
Z190aW1lb3V0X2FkZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoK
KwogMjAxMS0xMi0wNyAgTWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAg
ICAgICAgIENoYW5nZSBmdW5jdGlvbiBuYW1lIEluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSB0byBmb2xsb3cgY29kaW5nIHN0eWxlIGd1aWRlbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtl
ZmlsZS5hbQppbmRleCBlMzRiNDQyLi4zOGRkMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5h
bQpAQCAtNTgsNiArNTgsOCBAQCBsaWJ3ZWJraXRndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVS
U0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQRgogCSQod2Via2l0Z3Rr
X2NwcGZsYWdzKSBcCiAJLWZuby1zdHJpY3QtYWxpYXNpbmcgXAogCSQoSElMRE9OX0NQUEZMQUdT
KSBcCisJJChDTFVUVEVSX0NGTEFHUykgXAorCSQoQ0xVVFRFUl9HVEtfQ0ZMQUdTKSBcCiAJJChD
T1ZFUkFHRV9DRkxBR1MpIFwKIAkkKEVOQ0hBTlRfQ0ZMQUdTKSBcCiAJJChHQUlMX0NGTEFHUykg
XApAQCAtODcsNiArODksOCBAQCBsaWJ3ZWJraXRndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVS
U0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfTElCQQogCWxpYmphdmFzY3Jp
cHRjb3JlZ3RrLUBXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtfQVBJX01J
Tk9SX1ZFUlNJT05ALmxhIFwKIAkkKHdlYmNvcmVfbGRmbGFncykgXAogCSQoQ0FJUk9fTElCUykg
XAorCSQoQ0xVVFRFUl9MSUJTKSBcCisJJChDTFVUVEVSX0dUS19MSUJTKSBcCiAJJChDT1ZFUkFH
RV9MREZMQUdTKSBcCiAJJChFTkNIQU5UX0xJQlMpIFwKIAkkKEZSRUVUWVBFX0xJQlMpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwCmluZGV4IGFkOGNmOWEuLjExNjY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtOTEyLDcgKzkxMiwxMCBA
QCB2b2lkIENocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqIGVsZW1lbnQpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBD
aHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhp
Y3NMYXllciogcm9vdExheWVyKQogewotICAgIHdlYlZpZXdTZXRSb290R3JhcGhpY3NMYXllciht
X3dlYlZpZXcsIHJvb3RMYXllcik7CisgICAgaWYgKHJvb3RMYXllcikKKyAgICAgICAgd2ViVmll
d1NldFJvb3RHcmFwaGljc0xheWVyKG1fd2ViVmlldywgcm9vdExheWVyKTsKKyAgICBlbHNlCisg
ICAgICAgIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcihtX3dlYlZpZXcpOwogfQogCiB2
b2lkIENocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigp
CkBAIC05MjcsNyArOTMwLDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJTeW5jKCkKIAogQ2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBD
aHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKIHsKKyAgICAg
aWYgKCFwbGF0Zm9ybVBhZ2VDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIFVT
RShDTFVUVEVSKQorICAgIC8vIEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IENTUyAzRCBUcmFu
c2Zvcm1zLgorICAgIHJldHVybiBUaHJlZURUcmFuc2Zvcm1UcmlnZ2VyOworI2Vsc2UKICAgICBy
ZXR1cm4gQWxsVHJpZ2dlcnM7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAKaW5kZXggZTk2ZTE3OC4uNzE0MzNjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmNwcApAQCAtNTIsNiArNTIsMTAg
QEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCisj
aWYgVVNFKENMVVRURVIpCisjaW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRlci1ndGsuaD4KKyNl
bmRpZgorCiBzdGF0aWMgV2ViS2l0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsID0gV0VCS0lUX0NBQ0hF
X01PREVMX0RFRkFVTFQ7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzQwLDUgKzM0
NCw5IEBAIHZvaWQgd2Via2l0SW5pdCgpCiAKICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmVf
YnlfdHlwZShzZXNzaW9uLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSKTsKIAorI2lmIFVTRShD
TFVUVEVSKQorICAgIGd0a19jbHV0dGVyX2luaXQoMCwgMCk7CisjZW5kaWYKKwogICAgIGF0ZXhp
dCh3ZWJraXRFeGl0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcAppbmRleCA5MWYyZGZhLi40YzI4MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC04NTYsNiArODU2LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfdmlld19zaXplX2FsbG9jYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9u
KiBhbGxvCiAgICAgV2ViS2l0OjpDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudCA9IHN0YXRpY19j
YXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50Kj4ocGFnZS0+Y2hyb21lKCktPmNsaWVudCgpKTsKICAg
ICBjaHJvbWVDbGllbnQtPndpZGdldFNpemVDaGFuZ2VkKG9sZFNpemUsIEludFNpemUoYWxsb2Nh
dGlvbi0+d2lkdGgsIGFsbG9jYXRpb24tPmhlaWdodCkpOwogICAgIGNocm9tZUNsaWVudC0+YWRq
dXN0bWVudFdhdGNoZXIoKS0+dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFycygpOworCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0xVVFRFUikKKyAgICBpZiAo
d2ViVmlldy0+cHJpdi0+cm9vdExheWVyRW1iZWRkZXIpIHsKKyAgICAgICAgYWxsb2NhdGlvbi0+
eCA9IDA7CisgICAgICAgIGFsbG9jYXRpb24tPnkgPSAwOworICAgICAgICBndGtfd2lkZ2V0X3Np
emVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlciks
IGFsbG9jYXRpb24pOworICAgIH0KKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZ3JhYl9mb2N1cyhHdGtXaWRnZXQqIHdpZGdldCkKQEAgLTQ4ODUsMTMgKzQ4OTMsNjMg
QEAgdm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIHdlYlZpZXdTZXRSb290R3JhcGhp
Y3NMYXllcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKQogeworI2lmIFVTRShDTFVUVEVSKQorICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2
ID0gd2ViVmlldy0+cHJpdjsKKworICAgIC8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHdGtDbHV0
dGVyRW1iZWQgdG8gaG9zdCBhY3RvcnMgYXMgd2ViIGxheWVycy4KKyAgICBpZiAoIXByaXYtPnJv
b3RMYXllckVtYmVkZGVyKSB7CisgICAgICAgIHByaXYtPnJvb3RMYXllckVtYmVkZGVyID0gZ3Rr
X2NsdXR0ZXJfZW1iZWRfbmV3KCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05U
QUlORVIod2ViVmlldyksIHByaXYtPnJvb3RMYXllckVtYmVkZGVyKTsKKyAgICAgICAgZ3RrX3dp
ZGdldF9zaG93KHByaXYtPnJvb3RMYXllckVtYmVkZGVyKTsKKyAgICB9CisKKyAgICAvLyBBZGQg
YSByb290IGxheWVyIHRvIHRoZSBzdGFnZS4KKyAgICBpZiAoZ3JhcGhpY3NMYXllcikgeworICAg
ICAgICBwcml2LT5yb290R3JhcGhpY3NMYXllciA9IGdyYXBoaWNzTGF5ZXI7CisgICAgICAgIC8v
IHNldCB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIENsdXR0ZXJDb2xvciBzdGFnZUNvbG9yID0g
eyAweEZGLCAweEZGLCAweEZGLCAweEZGIH07CisgICAgICAgIENsdXR0ZXJBY3Rvciogc3RhZ2Ug
PSBndGtfY2x1dHRlcl9lbWJlZF9nZXRfc3RhZ2UoR1RLX0NMVVRURVJfRU1CRUQocHJpdi0+cm9v
dExheWVyRW1iZWRkZXIpKTsKKyAgICAgICAgY2x1dHRlcl9zdGFnZV9zZXRfY29sb3IoQ0xVVFRF
Ul9TVEFHRSAoc3RhZ2UpLCAmc3RhZ2VDb2xvcik7CisgICAgICAgIGNsdXR0ZXJfY29udGFpbmVy
X2FkZF9hY3RvcihDTFVUVEVSX0NPTlRBSU5FUihzdGFnZSksIHByaXYtPnJvb3RHcmFwaGljc0xh
eWVyLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBjbHV0dGVyX2FjdG9yX3Nob3dfYWxsKHN0
YWdlKTsKKyAgICB9CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwor
dm9pZCB3ZWJWaWV3RGV0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKK3sKKyNpZiBVU0UoQ0xVVFRFUikKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9
IHdlYlZpZXctPnByaXY7CisgICAgLy8gRGV0YWNoIHRoZSByb290IGxheWVyIGZyb20gdGhlIGhv
c3Rpbmcgdmlldy4KKyAgICBndGtfY29udGFpbmVyX3JlbW92ZShHVEtfQ09OVEFJTkVSKHdlYlZp
ZXcpLCBwcml2LT5yb290TGF5ZXJFbWJlZGRlcik7CisgICAgcHJpdi0+cm9vdExheWVyRW1iZWRk
ZXIgPSAwOworICAgIHByaXYtPnJvb3RHcmFwaGljc0xheWVyID0gMDsKKyNlbHNlCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgogfQogCisjaWYgVVNFKENMVVRURVIpCitzdGF0aWMgZ2Jv
b2xlYW4gd2ViVmlld1N5bmNMYXllcnMoZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGRhdGEpOworICAgIGNvcmUod2ViVmlldykt
Pm1haW5GcmFtZSgpLT52aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJh
bWVzKCk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisjZW5kaWYKKwogdm9pZCB3ZWJWaWV3TWFy
a0ZvclN5bmMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gc2NoZWR1bGVTeW5jKQog
eworI2lmIFVTRShDTFVUVEVSKQorICAgIGdfdGltZW91dF9hZGQoMCwgd2ViVmlld1N5bmNMYXll
cnMsIHdlYlZpZXcpOworI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCiB9CisK
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKaW5kZXggOTJjMzU1ZS4uZjc2NzFmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKQEAgLTMy
LDYgKzMyLDExIEBACiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdHdlYnZpZXcuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKENMVVRURVIpCisjaW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRlci1ndGsuaD4K
KyNpbmNsdWRlIDxjbHV0dGVyL2NsdXR0ZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIFdlYkNvcmU6OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyopOwogV2ViS2l0V2ViVmlldyog
a2l0KFdlYkNvcmU6OlBhZ2UqKTsKQEAgLTkyLDYgKzk3LDEwIEBAIHN0cnVjdCBfV2ViS2l0V2Vi
Vmlld1ByaXZhdGUgewogICAgIFdlYkNvcmU6Okd0a0NsaWNrQ291bnRlciBjbGlja0NvdW50ZXI7
CiAgICAgV2ViQ29yZTo6R3RrRHJhZ0FuZERyb3BIZWxwZXIgZHJhZ0FuZERyb3BIZWxwZXI7CiAg
ICAgYm9vbCBzZWxmU2Nyb2xsaW5nOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKENMVVRURVIpCisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogcm9vdEdyYXBoaWNz
TGF5ZXI7CisgICAgR3RrV2lkZ2V0KiByb290TGF5ZXJFbWJlZGRlcjsKKyNlbmRpZgogfTsKIAog
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfbm90aWZ5X3JlYWR5KFdlYktpdFdlYlZpZXcqKTsKQEAgLTEx
NCw2ICsxMjMsNyBAQCB2b2lkIHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgd2ViVmll
d1NldFJvb3RHcmFwaGljc0xheWVyKFdlYktpdFdlYlZpZXcqLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKik7Cit2b2lkIHdlYlZpZXdEZXRhY2hSb290R3JhcGhpY3NMYXllcihXZWJLaXRXZWJWaWV3
Kik7CiB2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiwgZ2Jvb2xlYW4pOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXgg
NjRmZmM3OS4uNTE4OTEwZiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3Vy
ZS5hYwpAQCAtMjg2LDYgKzI4Niw4IEBAIEdTVFJFQU1FUl9SRVFVSVJFRF9WRVJTSU9OPTAuMTAK
IEdTVFJFQU1FUl9QTFVHSU5TX0JBU0VfUkVRVUlSRURfVkVSU0lPTj0wLjEwLjMwCiBFTkNIQU5U
X1JFUVVJUkVEX1ZFUlNJT049MC4yMgogTElCRkZUV19SRVFVSVJFRF9WRVJTSU9OPTMuMi4yCitD
TFVUVEVSX1JFUVVJUkVEX1ZFUlNJT049MS44LjIKK0NMVVRURVJfR1RLX1JFUVVJUkVEX1ZFUlNJ
T049MS4wLjIKIAogIyBBdmFpbGFibGUgbW9kdWxlcwogIwpAQCAtMzk3LDcgKzM5OSw3IEBAIEFD
X01TR19SRVNVTFQoWyRlbmFibGVfd2ViZ2xdKQogIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZyBzdXBwb3J0CiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg
dG8gZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnRdKQogQUNfQVJHX1dJVEgo
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcsCi0gICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13
aXRoLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nPUA8OkBuby9vcGVuZ2wvY2Fpcm9AOj5AXSwKKyAg
ICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmc9
QDw6QG5vL29wZW5nbC9jYWlyby9jbHV0dGVyQDo+QF0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbdXNlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIChleHBlcmltZW50YWwpIFtkZWZhdWx0
PW5vXV0pLAogICAgICAgICAgICAgW10sIFt3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nPSJu
byJdKQogQUNfTVNHX1JFU1VMVChbJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmddKQpAQCAt
MTA4Miw2ICsxMDg0LDE3IEBAIGlmIHRlc3QgIiRlbmFibGVfd2ViX2F1ZGlvIiA9ICJ5ZXMiOyB0
aGVuCiAgICAgQUNfU1VCU1QoW0xJQkZGVFdfTElCU10pCiBmaQogCitpZiB0ZXN0ICIkd2l0aF9h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2x1dHRlciI7IHRoZW4KKyAgIFBLR19DSEVDS19N
T0RVTEVTKENMVVRURVIsIGNsdXR0ZXItMS4wID49ICRDTFVUVEVSX1JFUVVJUkVEX1ZFUlNJT04p
CisgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbQ0xVVFRFUl9HVEtdLAorICAgICAgICAgICAgICAgICAg
ICAgW2NsdXR0ZXItZ3RrLTEuMCA+PSAkQ0xVVFRFUl9HVEtfUkVRVUlSRURfVkVSU0lPTl0pCisK
KyAgIEFDX1NVQlNUKENMVVRURVJfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9MSUJTKQor
ICAgQUNfU1VCU1QoQ0xVVFRFUl9HVEtfQ0ZMQUdTKQorICAgQUNfU1VCU1QoQ0xVVFRFUl9HVEtf
TElCUykKK2ZpCisKICMgY2hlY2sgZm9yIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydAogaWYgdGVzdCAi
JGVuYWJsZV9jb3ZlcmFnZSIgPSAieWVzIjsgdGhlbgogICAgQ09WRVJBR0VfQ0ZMQUdTPSItTUQi
CkBAIC0xMTU2LDkgKzExNjksMTAgQEAgQU1fQ09ORElUSU9OQUwoW1VTRV9QQU5HT10sIFt0ZXN0
ICIkd2l0aF9mb250X2JhY2tlbmQiID0gInBhbmdvIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX0dT
VFJFQU1FUl0sIFt0ZXN0ICIkaGF2ZV9nc3RyZWFtZXIiID0gInllcyJdKQogCiAjIEFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIGNvbmRpdGlvbmFsCi1BTV9DT05ESVRJT05BTChbVVNFX0FDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9
ICJjYWlybyIgfHwgdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gIm9wZW5n
bCJdKQorQU1fQ09ORElUSU9OQUwoW1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElOR10sIFt0ZXN0
ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAiY2Fpcm8iIHx8IHRlc3QgIiR3aXRo
X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJvcGVuZ2wiIHx8IHRlc3QgIiR3aXRoX2FjY2Vs
ZXJhdGVkX2NvbXBvc2l0aW5nIiA9ICJjbHV0dGVyIl0pCiBBTV9DT05ESVRJT05BTChbVVNFX1RF
WFRVUkVfTUFQUEVSX0NBSVJPXSwgW3Rlc3QgIiR3aXRoX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5n
IiA9ICJjYWlybyJdKQogQU1fQ09ORElUSU9OQUwoW1VTRV9URVhUVVJFX01BUFBFUl9HTF0sIFt0
ZXN0ICIkd2l0aF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyIgPSAib3BlbmdsIl0pCitBTV9DT05E
SVRJT05BTChbVVNFX0NMVVRURVJdLCBbdGVzdCAiJHdpdGhfYWNjZWxlcmF0ZWRfY29tcG9zaXRp
bmciID0gImNsdXR0ZXIiXSkKIAogIyBXZWJLaXQgZmVhdHVyZSBjb25kaXRpb25hbHMKIEFNX0NP
TkRJVElPTkFMKFtFTkFCTEVfREVCVUddLFt0ZXN0ICIkZW5hYmxlX2RlYnVnX2ZlYXR1cmVzIiA9
ICJ5ZXMiXSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>