<?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>111334</bug_id>
          
          <creation_ts>2013-03-04 08:25:45 -0800</creation_ts>
          <short_desc>Web Inspector: Plumbing CSS warnings</short_desc>
          <delta_ts>2013-03-20 12:19:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://crbug.com/140608</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Ryazanov">serya</reporter>
          <assigned_to name="Sergey Ryazanov">serya</assigned_to>
          <cc>apavlov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst+watchlist</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>846516</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-04 08:25:45 -0800</bug_when>
    <thetext>Adding a framework for delivering CSS parsing messages to Inspector console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846521</commentid>
    <comment_count>1</comment_count>
      <attachid>191253</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-04 08:31:33 -0800</bug_when>
    <thetext>Created attachment 191253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847520</commentid>
    <comment_count>2</comment_count>
      <attachid>191253</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-05 03:32:23 -0800</bug_when>
    <thetext>Comment on attachment 191253
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:61
&gt; +#include &quot;DOMWindow.h&quot;

I don&apos;t think CSSParser should depend on DOMWindow.

&gt; Source/WebCore/css/CSSParser.cpp:11126
&gt; +            builder.appendLiteral(&quot;\\n&quot;);

I still think CSSParser should not bother with formatting. It should pass as much info as possible into console.

&gt; Source/WebCore/css/CSSParser.cpp:11717
&gt; +CSSParser::Location CSSParser::currentLocation()

This seems to be unused.

&gt; Source/WebCore/css/CSSParser.h:382
&gt; +    Console* m_console;

You should not store console pointer in parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847692</commentid>
    <comment_count>3</comment_count>
      <attachid>191498</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-05 08:06:26 -0800</bug_when>
    <thetext>Created attachment 191498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847698</commentid>
    <comment_count>4</comment_count>
      <attachid>191253</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-05 08:20:27 -0800</bug_when>
    <thetext>Comment on attachment 191253
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:61
&gt;&gt; +#include &quot;DOMWindow.h&quot;
&gt; 
&gt; I don&apos;t think CSSParser should depend on DOMWindow.

DOMWindow owns the console don the dependency is inevitable. Initially I added a helper method to Document hiding that dependency but you suggested to use console directly (https://bugs.webkit.org/attachment.cgi?id=190686&amp;action=review).

Document doesn&apos;t provide over way to plumb a message. addMessage is private, addMessageToConsole doesn&apos;t allow to pass location information.

So I only can leave it as is or return logCSSWarningToConsole. I&apos;d prefer second approach. It looks similar to that Document alreasy has (I mean logExceptionToConsole).

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11126
&gt;&gt; +            builder.appendLiteral(&quot;\\n&quot;);
&gt; 
&gt; I still think CSSParser should not bother with formatting. It should pass as much info as possible into console.

Removed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11717
&gt;&gt; +CSSParser::Location CSSParser::currentLocation()
&gt; 
&gt; This seems to be unused.

Removed for now.

&gt;&gt; Source/WebCore/css/CSSParser.h:382
&gt;&gt; +    Console* m_console;
&gt; 
&gt; You should not store console pointer in parser.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847699</commentid>
    <comment_count>5</comment_count>
      <attachid>191253</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-05 08:20:28 -0800</bug_when>
    <thetext>Comment on attachment 191253
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:61
&gt;&gt; +#include &quot;DOMWindow.h&quot;
&gt; 
&gt; I don&apos;t think CSSParser should depend on DOMWindow.

DOMWindow owns the console don the dependency is inevitable. Initially I added a helper method to Document hiding that dependency but you suggested to use console directly (https://bugs.webkit.org/attachment.cgi?id=190686&amp;action=review).

Document doesn&apos;t provide over way to plumb a message. addMessage is private, addMessageToConsole doesn&apos;t allow to pass location information.

So I only can leave it as is or return logCSSWarningToConsole. I&apos;d prefer second approach. It looks similar to that Document alreasy has (I mean logExceptionToConsole).

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11126
&gt;&gt; +            builder.appendLiteral(&quot;\\n&quot;);
&gt; 
&gt; I still think CSSParser should not bother with formatting. It should pass as much info as possible into console.

Removed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11717
&gt;&gt; +CSSParser::Location CSSParser::currentLocation()
&gt; 
&gt; This seems to be unused.

Removed for now.

&gt;&gt; Source/WebCore/css/CSSParser.h:382
&gt;&gt; +    Console* m_console;
&gt; 
&gt; You should not store console pointer in parser.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847700</commentid>
    <comment_count>6</comment_count>
      <attachid>191253</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-05 08:20:30 -0800</bug_when>
    <thetext>Comment on attachment 191253
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:61
&gt;&gt; +#include &quot;DOMWindow.h&quot;
&gt; 
&gt; I don&apos;t think CSSParser should depend on DOMWindow.

DOMWindow owns the console don the dependency is inevitable. Initially I added a helper method to Document hiding that dependency but you suggested to use console directly (https://bugs.webkit.org/attachment.cgi?id=190686&amp;action=review).

Document doesn&apos;t provide over way to plumb a message. addMessage is private, addMessageToConsole doesn&apos;t allow to pass location information.

So I only can leave it as is or return logCSSWarningToConsole. I&apos;d prefer second approach. It looks similar to that Document alreasy has (I mean logExceptionToConsole).

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11126
&gt;&gt; +            builder.appendLiteral(&quot;\\n&quot;);
&gt; 
&gt; I still think CSSParser should not bother with formatting. It should pass as much info as possible into console.

Removed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11717
&gt;&gt; +CSSParser::Location CSSParser::currentLocation()
&gt; 
&gt; This seems to be unused.

Removed for now.

&gt;&gt; Source/WebCore/css/CSSParser.h:382
&gt;&gt; +    Console* m_console;
&gt; 
&gt; You should not store console pointer in parser.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848760</commentid>
    <comment_count>7</comment_count>
      <attachid>191730</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-06 05:41:53 -0800</bug_when>
    <thetext>Created attachment 191730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848763</commentid>
    <comment_count>8</comment_count>
      <attachid>191730</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-06 05:45:11 -0800</bug_when>
    <thetext>Comment on attachment 191730
Patch

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

&gt; Source/WebCore/dom/Document.cpp:4780
&gt; +void Document::addConsoleMessage(MessageSource source, MessageLevel level, const String&amp; message, const KURL&amp; sourceURL, int lineNumber)

As I mentioned, I don&apos;t think piping console messages through DOMWindow is the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857043</commentid>
    <comment_count>9</comment_count>
      <attachid>193544</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-18 06:11:43 -0700</bug_when>
    <thetext>Created attachment 193544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858347</commentid>
    <comment_count>10</comment_count>
      <attachid>193544</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-19 09:30:26 -0700</bug_when>
    <thetext>Comment on attachment 193544
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:10553
&gt; +    m_tokenStartLineNumber = m_lineNumber;

This field seems to be unused.

&gt; Source/WebCore/css/CSSParser.cpp:11239
&gt; +    m_styleSheet-&gt;singleOwnerDocument()-&gt;page()-&gt;console()-&gt;addMessage(CSSMessageSource, WarningMessageLevel, message, m_styleSheet-&gt;baseURL().string(), lineNumber + 1);

Intermediate variable would not hurt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858502</commentid>
    <comment_count>11</comment_count>
      <attachid>193871</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 11:13:11 -0700</bug_when>
    <thetext>Created attachment 193871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858539</commentid>
    <comment_count>12</comment_count>
      <attachid>193871</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-03-19 11:42:19 -0700</bug_when>
    <thetext>Comment on attachment 193871
Patch

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

&gt; Source/WebCore/page/PageConsole.cpp:173
&gt; +    if (source == CSSMessageSource)
&gt; +        return;

Why not allow CSS messages to print to stdout too? I use this to ease development of the Web Inspector, so I don&apos;t always need to inspect the Inspector to see messages. Please remove this unless there is a compelling reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859126</commentid>
    <comment_count>13</comment_count>
      <attachid>193871</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-20 00:40:31 -0700</bug_when>
    <thetext>Comment on attachment 193871
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:11219
&gt; +    if (!isLoggingErrors())

Check for m_logErrors to speed things up.

&gt;&gt; Source/WebCore/page/PageConsole.cpp:173
&gt;&gt; +        return;
&gt; 
&gt; Why not allow CSS messages to print to stdout too? I use this to ease development of the Web Inspector, so I don&apos;t always need to inspect the Inspector to see messages. Please remove this unless there is a compelling reason.

It would need a ton of rebaselines. We&apos;ll do that when the dust settles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859445</commentid>
    <comment_count>14</comment_count>
      <attachid>193871</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-20 08:26:31 -0700</bug_when>
    <thetext>Comment on attachment 193871
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11219
&gt;&gt; +    if (!isLoggingErrors())
&gt; 
&gt; Check for m_logErrors to speed things up.

Check for m_logErrors to speed things up.

&gt;&gt;&gt; Source/WebCore/page/PageConsole.cpp:173
&gt;&gt;&gt; +        return;
&gt;&gt; 
&gt;&gt; Why not allow CSS messages to print to stdout too? I use this to ease development of the Web Inspector, so I don&apos;t always need to inspect the Inspector to see messages. Please remove this unless there is a compelling reason.
&gt; 
&gt; It would need a ton of rebaselines. We&apos;ll do that when the dust settles.

It would need a ton of rebaselines. We&apos;ll do that when the dust settles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859450</commentid>
    <comment_count>15</comment_count>
      <attachid>193871</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 08:35:18 -0700</bug_when>
    <thetext>Comment on attachment 193871
Patch

Rejecting attachment 193871 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 193871, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 13971 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
55&gt;At revision 13971.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://webkit-commit-queue.appspot.com/results/17200476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859456</commentid>
    <comment_count>16</comment_count>
      <attachid>194068</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-20 08:44:08 -0700</bug_when>
    <thetext>Created attachment 194068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859473</commentid>
    <comment_count>17</comment_count>
      <attachid>194068</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 09:09:48 -0700</bug_when>
    <thetext>Comment on attachment 194068
Patch

Clearing flags on attachment: 194068

Committed r146353: &lt;http://trac.webkit.org/changeset/146353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859474</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 09:09:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859489</commentid>
    <comment_count>19</comment_count>
      <attachid>194068</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2013-03-20 09:27:49 -0700</bug_when>
    <thetext>Comment on attachment 194068
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:474
&gt; +    m_logErrors = false;

why is m_logErrors set twice?

&gt; Source/WebCore/css/CSSParser.cpp:11226
&gt; +        builder.append(location.token.characters16(), location.token.length());

why not just use builder.append(location.token)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859601</commentid>
    <comment_count>20</comment_count>
      <attachid>194068</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-20 12:19:26 -0700</bug_when>
    <thetext>Comment on attachment 194068
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:474
&gt;&gt; +    m_logErrors = false;
&gt; 
&gt; why is m_logErrors set twice?

It&apos;s used inside cssyyparse call. Almost each member abound follows the same pattern.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:11226
&gt;&gt; +        builder.append(location.token.characters16(), location.token.length());
&gt; 
&gt; why not just use builder.append(location.token)?

In order to avoid implicit conversion to WTF::String (CSSParserString::operator String() const would be applied).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191253</attachid>
            <date>2013-03-04 08:31:33 -0800</date>
            <delta_ts>2013-03-05 08:20:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130304202740.patch</filename>
            <type>text/plain</type>
            <size>17619</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJhMzQ0MmFlYzA1YmJi
Y2M5Y2YzN2RkYzYyZmM1ODBjNTM4MTE4ZC4uNTZhYmMyOTQwYmQxYjFmYTI0ZWE0ZjQ1ODZmODY4
YWIxZWQ3N2EwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAzLTA0ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisKKyAgICAgICAgQWRkaW5nIGEgZnJhbWV3b3JrIGZv
ciBwbHVtYmluZyBDU1Mgd2FybmluZ3MgZnJvbSBDU1NQYXJzZXIvZ3JhbW1hciB0byB0aGUgSW5z
cGVjdG9yIGNvbnNvbGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpyZWFsTGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3ludGF4RXJy
b3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Omlz
TG9nZ2luZ0Vycm9ycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxvZ0Vycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmV3cml0ZVNwZWNpZmllcnMpOgorICAgICAg
ICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ1NTUGFy
c2VyKToKKyAgICAgICAgKENTU1BhcnNlcjo6TG9jYXRpb24pOgorICAgICAgICAqIGNzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRz
OjpwYXJzZUF1dGhvclN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENv
bnRlbnRzOjpwYXJzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVu
dHM6OnBhcnNlU3RyaW5nQXRMaW5lKToKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRz
Lmg6CisgICAgICAgIChTdHlsZVNoZWV0Q29udGVudHMpOgorICAgICAgICAqIGRvbS9TdHlsZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVFbGVtZW50OjpjcmVhdGVTaGVldCk6
CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om1lc3NhZ2VTb3VyY2VWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25z
b2xlOjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGVUeXBlcy5oOgorCiAyMDEz
LTAzLTA0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA4NDNmZjgxYmUyYWE4Zjg1MmYzZjAxM2Q4MjQ4NTlhZmY3MDBj
Y2E0Li5jZDM2MDA0YTYzY2EyYWZlYzU5NjM3NDM0MDQzNzU2YmU3MDhjZmMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDMtMDQgIFNlcmdleSBSeWF6YW5vdiAgPHNl
cnlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQbHVtYmluZyBDU1Mg
d2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoc3RyaW5nRm9y
TWVzc2FnZVNvdXJjZSk6CisgICAgICAgICogV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5o
OgorCiAyMDEzLTAzLTA0ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgQWRkIGJ1aWxkIGZsYWcgZm9yIEZvbnRMb2FkZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKaW5kZXggZTAwMmUxMDJlYTAzMDc3MTA3YzQ5YzIyOTkwMTJmNzA1ZDJjODBh
Ni4uZjJmOGUxOWYzYWQyY2I0ZjU0MTIxMTJhZjczOWNjM2YyNTJhZjhjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKQEAgLTU2LDcgKzU2LDkgQEAKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxF
UykKICNpbmNsdWRlICJDU1NWYXJpYWJsZVZhbHVlLmgiCiAjZW5kaWYKKyNpbmNsdWRlICJDb25z
b2xlLmgiCiAjaW5jbHVkZSAiQ291bnRlci5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVk
ZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgpAQCAtMzE1LDYgKzMxNyw3IEBAIENTU1BhcnNlcjo6Q1NT
UGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX2ltcGxpY2l0
U2hvcnRoYW5kKGZhbHNlKQogICAgICwgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMoZmFsc2UpCiAg
ICAgLCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1bGUoZmFsc2UpCisgICAgLCBtX2NvbnNv
bGUoMCkKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgLCBtX2luRmlsdGVyUnVsZShmYWxz
ZSkKICNlbmRpZgpAQCAtMzI5LDYgKzMzMiw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0
IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX2xlbmd0aCgwKQogICAgICwgbV90
b2tlbigwKQogICAgICwgbV9saW5lTnVtYmVyKDApCisgICAgLCBtX3Rva2VuU3RhcnRMaW5lTnVt
YmVyKDApCiAgICAgLCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXIoMCkKICAgICAsIG1fYWxsb3dJ
bXBvcnRSdWxlcyh0cnVlKQogICAgICwgbV9hbGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyh0cnVl
KQpAQCAtNDUwLDcgKzQ1NCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBj
aGFyKiBwcmVmaXgsIHVuc2lnbmVkIHByZWZpeExlbmd0aCwgY29uc3QgU3RyCiAgICAgbV9sZXhG
dW5jID0gJkNTU1BhcnNlcjo6cmVhbExleDxVQ2hhcj47CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpw
YXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBSdWxlU291cmNlRGF0YUxpc3QqIHJ1bGVTb3VyY2VEYXRh
UmVzdWx0KQordm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBz
aGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFJ1bGVTb3Vy
Y2VEYXRhTGlzdCogcnVsZVNvdXJjZURhdGFSZXN1bHQsIGJvb2wgbG9nRXJyb3JzKQogewogICAg
IHNldFN0eWxlU2hlZXQoc2hlZXQpOwogICAgIG1fZGVmYXVsdE5hbWVzcGFjZSA9IHN0YXJBdG9t
OyAvLyBSZXNldCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuCkBAIC00NTgsNiArNDYyLDggQEAgdm9p
ZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIGludAogICAgICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrID0gYWRv
cHRQdHIobmV3IFJ1bGVTb3VyY2VEYXRhTGlzdCgpKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVz
dWx0ID0gcnVsZVNvdXJjZURhdGFSZXN1bHQ7CiAKKyAgICBpZiAobG9nRXJyb3JzICYmIHNoZWV0
LT5zaW5nbGVPd25lckRvY3VtZW50KCkgJiYgIXNoZWV0LT5iYXNlVVJMKCkuaXNFbXB0eSgpICYm
IHNoZWV0LT5zaW5nbGVPd25lckRvY3VtZW50KCktPmRvbVdpbmRvdygpKQorICAgICAgICBtX2Nv
bnNvbGUgPSBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29s
ZSgpOwogICAgIG1fbGluZU51bWJlciA9IHN0YXJ0TGluZU51bWJlcjsKICAgICBzZXR1cFBhcnNl
cigiIiwgc3RyaW5nLCAiIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTQ2NSw2ICs0NzEs
NyBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0
LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50CiAgICAgbV9jdXJyZW50UnVsZURhdGFTdGFjay5j
bGVhcigpOwogICAgIG1fcnVsZVNvdXJjZURhdGFSZXN1bHQgPSAwOwogICAgIG1fcnVsZSA9IDA7
CisgICAgbV9jb25zb2xlID0gMDsKIH0KIAogUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiBDU1NQ
YXJzZXI6OnBhcnNlUnVsZShTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0LCBjb25zdCBTdHJpbmcm
IHN0cmluZykKQEAgLTEwNDQxLDYgKzEwNDQ4LDcgQEAgaW50IENTU1BhcnNlcjo6cmVhbExleCh2
b2lkKiB5eWx2YWxXaXRob3V0VHlwZSkKIHJlc3RhcnRBZnRlckNvbW1lbnQ6CiAgICAgcmVzdWx0
ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogICAgIHNldFRva2VuU3Rh
cnQocmVzdWx0KTsKKyAgICBtX3Rva2VuU3RhcnRMaW5lTnVtYmVyID0gbV9saW5lTnVtYmVyOwog
ICAgIG1fdG9rZW4gPSAqY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogICAg
ICsrY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogCkBAIC0xMTEwNiw2ICsx
MTExNCwzMiBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1
bGVEYXRhKCkKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgQ1NTUGFyc2Vy
OjpzeW50YXhFcnJvcihMb2NhdGlvbiBsb2NhdGlvbikKK3sKKyAgICBpZiAoIWlzTG9nZ2luZ0Vy
cm9ycygpKQorICAgICAgICByZXR1cm47CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVW5leHBlY3RlZCBDU1MgdG9rZW46ICIpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBsb2NhdGlvbi50b2tlbi5sZW5ndGgoKTsgaSsrKSB7Cisg
ICAgICAgIFVDaGFyIGMgPSBsb2NhdGlvbi50b2tlbltpXTsKKyAgICAgICAgaWYgKGMgPT0gJ1xu
JykKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXFxuIik7CisgICAgICAgIGVs
c2UgaWYgKGMgPj0gMzIpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKKyAgICB9Cisg
ICAgbG9nRXJyb3IoYnVpbGRlci50b1N0cmluZygpLCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKK30K
KworYm9vbCBDU1NQYXJzZXI6OmlzTG9nZ2luZ0Vycm9ycygpCit7CisgICAgcmV0dXJuIG1fY29u
c29sZTsKK30KKwordm9pZCBDU1NQYXJzZXI6OmxvZ0Vycm9yKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIpCit7CisgICAgbV9jb25zb2xlLT5hZGRNZXNzYWdlKENTU01lc3Nh
Z2VTb3VyY2UsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIG1fc3R5bGVTaGVldC0+YmFz
ZVVSTCgpLnN0cmluZygpLCBsaW5lTnVtYmVyICsgMSk7Cit9CisKIFN0eWxlUnVsZUtleWZyYW1l
cyogQ1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZXNSdWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c093blB0cjxWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4gPiBwb3BLZXlmcmFtZXMpCiB7
CiAgICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IGtleWZyYW1lcyA9
IHBvcEtleWZyYW1lczsKQEAgLTExNjgwLDYgKzExNzE0LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZpZXdwb3J0U2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlE
IGZpcnN0CiB9CiAjZW5kaWYKIAorQ1NTUGFyc2VyOjpMb2NhdGlvbiBDU1NQYXJzZXI6OmN1cnJl
bnRMb2NhdGlvbigpCit7CisgICAgTG9jYXRpb24gbG9jYXRpb247CisgICAgbG9jYXRpb24ubGlu
ZU51bWJlciA9IG1fdG9rZW5TdGFydExpbmVOdW1iZXI7CisgICAgaWYgKGlzOEJpdFNvdXJjZSgp
KQorICAgICAgICBsb2NhdGlvbi50b2tlbi5pbml0KHRva2VuU3RhcnQ8TENoYXI+KCksIGN1cnJl
bnRDaGFyYWN0ZXI8TENoYXI+KCkgLSB0b2tlblN0YXJ0PExDaGFyPigpKTsKKyAgICBlbHNlCisg
ICAgICAgIGxvY2F0aW9uLnRva2VuLmluaXQodG9rZW5TdGFydDxVQ2hhcj4oKSwgY3VycmVudENo
YXJhY3RlcjxVQ2hhcj4oKSAtIHRva2VuU3RhcnQ8VUNoYXI+KCkpOworICAgIHJldHVybiBsb2Nh
dGlvbjsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgQ1NT
UHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFt
ZSwgdW5zaWduZWQgbGVuZ3RoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGRjYmEwMzM3
NzMyZTI1NjY0M2I0MTM5NTQ2OWYxNjlhYTEwMzRkZTIuLjc0ODFlYzRmNWI4NDU2MjlhYjdjODg0
OTY5YTgxYTljOTdhMDIxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTQ2LDYgKzQ2LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5pbWF0aW9uUGFyc2VDb250ZXh0Owor
Y2xhc3MgQ29uc29sZTsKIGNsYXNzIENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZTsKIGNsYXNzIENT
U1ByaW1pdGl2ZVZhbHVlOwogY2xhc3MgQ1NTU2VsZWN0b3JMaXN0OwpAQCAtNzUsMTEgKzc2LDEz
IEBAIGNsYXNzIENTU1BhcnNlciB7CiAgICAgZnJpZW5kIGlubGluZSBpbnQgY3NzeXlsZXgodm9p
ZCosIENTU1BhcnNlciopOwogCiBwdWJsaWM6CisgICAgc3RydWN0IExvY2F0aW9uOworCiAgICAg
Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKIAogICAgIH5DU1NQYXJzZXIoKTsK
IAotICAgIHZvaWQgcGFyc2VTaGVldChTdHlsZVNoZWV0Q29udGVudHMqLCBjb25zdCBTdHJpbmcm
LCBpbnQgc3RhcnRMaW5lTnVtYmVyID0gMCwgUnVsZVNvdXJjZURhdGFMaXN0KiA9IDApOworICAg
IHZvaWQgcGFyc2VTaGVldChTdHlsZVNoZWV0Q29udGVudHMqLCBjb25zdCBTdHJpbmcmLCBpbnQg
c3RhcnRMaW5lTnVtYmVyID0gMCwgUnVsZVNvdXJjZURhdGFMaXN0KiA9IDAsIGJvb2wgPSBmYWxz
ZSk7CiAgICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiBwYXJzZVJ1bGUoU3R5bGVTaGVldENv
bnRlbnRzKiwgY29uc3QgU3RyaW5nJik7CiAgICAgUGFzc1JlZlB0cjxTdHlsZUtleWZyYW1lPiBw
YXJzZUtleWZyYW1lUnVsZShTdHlsZVNoZWV0Q29udGVudHMqLCBjb25zdCBTdHJpbmcmKTsKICNp
ZiBFTkFCTEUoQ1NTM19DT05ESVRJT05BTF9SVUxFUykKQEAgLTM3Niw2ICszNzksNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIG1faGFzRm9udEZhY2VPbmx5VmFsdWVzOwogICAgIGJvb2wgbV9oYWRT
eW50YWN0aWNhbGx5VmFsaWRDU1NSdWxlOworICAgIENvbnNvbGUqIG1fY29uc29sZTsKIAogI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKICAgICBib29sIG1faW5GaWx0ZXJSdWxlOwpAQCAtNDA1LDYg
KzQwOSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBwb3BS
dWxlRGF0YSgpOwogICAgIHZvaWQgcmVzZXRQcm9wZXJ0eVJhbmdlKCkgeyBtX3Byb3BlcnR5UmFu
Z2Uuc3RhcnQgPSBtX3Byb3BlcnR5UmFuZ2UuZW5kID0gVUlOVF9NQVg7IH0KICAgICBib29sIGlz
RXh0cmFjdGluZ1NvdXJjZURhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fY3VycmVudFJ1bGVEYXRh
U3RhY2s7IH0KKyAgICB2b2lkIHN5bnRheEVycm9yKExvY2F0aW9uKTsKIAogICAgIGlubGluZSBp
bnQgbGV4KHZvaWQqIHl5bHZhbCkgeyByZXR1cm4gKHRoaXMtPiptX2xleEZ1bmMpKHl5bHZhbCk7
IH0KIApAQCAtNDI0LDYgKzQyOSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBLVVJMIGNvbXBs
ZXRlVVJMKGNvbnN0IENTU1BhcnNlckNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKKyAg
ICBMb2NhdGlvbiBjdXJyZW50TG9jYXRpb24oKTsKKwogcHJpdmF0ZToKICAgICBib29sIGlzOEJp
dFNvdXJjZSgpIHsgcmV0dXJuIG1faXM4Qml0U291cmNlOyB9CiAKQEAgLTU2Miw2ICs1NjksNyBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGludCBtX3Rva2VuOwogICAg
IGludCBtX2xpbmVOdW1iZXI7CisgICAgaW50IG1fdG9rZW5TdGFydExpbmVOdW1iZXI7CiAgICAg
aW50IG1fbGFzdFNlbGVjdG9yTGluZU51bWJlcjsKIAogICAgIGJvb2wgbV9hbGxvd0ltcG9ydFJ1
bGVzOwpAQCAtNjI5LDYgKzYzNyw5IEBAIHByaXZhdGU6CiAgICAgICAgIERvTm90UmVsZWFzZVBh
cnNlZENhbGNWYWx1ZQogICAgIH07CiAKKyAgICBib29sIGlzTG9nZ2luZ0Vycm9ycygpOworICAg
IHZvaWQgbG9nRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlcik7CisK
ICAgICBib29sIHZhbGlkQ2FsY3VsYXRpb25Vbml0KENTU1BhcnNlclZhbHVlKiwgVW5pdHMsIFJl
bGVhc2VQYXJzZWRDYWxjVmFsdWVDb25kaXRpb24gcmVsZWFzZUNhbGMgPSBEb05vdFJlbGVhc2VQ
YXJzZWRDYWxjVmFsdWUpOwogCiAgICAgYm9vbCBzaG91bGRBY2NlcHRVbml0TGVzc1ZhbHVlcyhD
U1NQYXJzZXJWYWx1ZSosIFVuaXRzLCBDU1NQYXJzZXJNb2RlKTsKQEAgLTY3Miw2ICs2ODMsMTEg
QEAgcHJpdmF0ZToKICAgICBDU1NQYXJzZXIqIG1fcGFyc2VyOwogfTsKIAorc3RydWN0IENTU1Bh
cnNlcjo6TG9jYXRpb24geworICAgIGludCBsaW5lTnVtYmVyOworICAgIENTU1BhcnNlclN0cmlu
ZyB0b2tlbjsKK307CisKIFN0cmluZyBxdW90ZUNTU1N0cmluZyhjb25zdCBTdHJpbmcmKTsKIFN0
cmluZyBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKGNvbnN0IFN0cmluZyYpOwogU3RyaW5nIHF1b3Rl
Q1NTVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwCmluZGV4IDBhZGZhMDQ4NWE0M2QwYWM2ODMxODcyNTM3OThlNWJlN2I5
ZDgxNGYuLjJhYTM2Y2E1ZjJhNWViM2E2YTEwNDk4ZjM2OGEwMmNmZjE0MWVmZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAg
dm9pZCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNo
ZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWQKICAgICBTdHJpbmcgc2hlZXRUZXh0ID0gY2FjaGVkU3R5
bGVTaGVldC0+c2hlZXRUZXh0KGVuZm9yY2VNSU1FVHlwZSwgJmhhc1ZhbGlkTUlNRVR5cGUpOwog
CiAgICAgQ1NTUGFyc2VyIHAocGFyc2VyQ29udGV4dCgpKTsKLSAgICBwLnBhcnNlU2hlZXQodGhp
cywgc2hlZXRUZXh0LCAwKTsKKyAgICBwLnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0LCAwLCAw
LCB0cnVlKTsKIAogICAgIC8vIElmIHdlJ3JlIGxvYWRpbmcgYSBzdHlsZXNoZWV0IGNyb3NzLW9y
aWdpbiwgYW5kIHRoZSBNSU1FIHR5cGUgaXMgbm90IHN0YW5kYXJkLCByZXF1aXJlIHRoZSBDU1MK
ICAgICAvLyB0byBhdCBsZWFzdCBzdGFydCB3aXRoIGEgc3ludGFjdGljYWxseSB2YWxpZCBDU1Mg
cnVsZS4KQEAgLTMxMCwxMyArMzEwLDEzIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAKIGJv
b2wgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHNoZWV0VGV4
dCkKIHsKLSAgICByZXR1cm4gcGFyc2VTdHJpbmdBdExpbmUoc2hlZXRUZXh0LCAwKTsKKyAgICBy
ZXR1cm4gcGFyc2VTdHJpbmdBdExpbmUoc2hlZXRUZXh0LCAwLCBmYWxzZSk7CiB9CiAKLWJvb2wg
U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZVN0cmluZ0F0TGluZShjb25zdCBTdHJpbmcmIHNoZWV0
VGV4dCwgaW50IHN0YXJ0TGluZU51bWJlcikKK2Jvb2wgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZVN0cmluZ0F0TGluZShjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCwgaW50IHN0YXJ0TGluZU51bWJl
ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7CiAgICAgQ1NTUGFyc2VyIHAocGFyc2VyQ29udGV4
dCgpKTsKLSAgICBwLnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0LCBzdGFydExpbmVOdW1iZXIp
OworICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIHN0YXJ0TGluZU51bWJlciwgMCwg
Y3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5oCmluZGV4IDFmMjk2OGI3MTdlNmMxMjhmZTc0ZTMxOTA3NGNk
NmZmNzRlNzViNmUuLjQwZTJkZjNhOTM3Y2Y3ZmNhNDVhZmViMTEwYWU3NjliYjhhNDM4ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBwYXJzZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NT
U3R5bGVTaGVldCosIGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAgICAgYm9vbCBwYXJzZVN0cmlu
Zyhjb25zdCBTdHJpbmcmKTsKLSAgICBib29sIHBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmlu
ZyYsIGludCBzdGFydExpbmVOdW1iZXIpOworICAgIGJvb2wgcGFyc2VTdHJpbmdBdExpbmUoY29u
c3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciwgYm9vbCk7CiAKICAgICBib29sIGlzQ2Fj
aGVhYmxlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKaW5kZXggZmYy
MmZlOWRiODhhYjlhMjI2ZTAyMDJjZjJiNDQ3NmNmZTAwNWYwZS4uNDg0MGY2YTdhZmI4Mzg5N2Ez
MWYzYzJlOWFhM2Y5OWY5NTc4YjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAK
QEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFN0eWxlRWxlbWVudDo6Y3JlYXRlU2hlZXQoRWxlbWVu
dCogZSwgV1RGOjpPcmRpbmFsTnVtYmVyIHN0YXJ0TGluZU51bWJlciwgYwogICAgICAgICAgICAg
bV9zaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZShlLCBLVVJMKCksIGRvY3VtZW50
LT5pbnB1dEVuY29kaW5nKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0TWVkaWFRdWVyaWVz
KG1lZGlhUXVlcmllcy5yZWxlYXNlKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUo
ZS0+dGl0bGUoKSk7Ci0gICAgICAgICAgICBtX3NoZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmlu
Z0F0TGluZSh0ZXh0LCBzdGFydExpbmVOdW1iZXIuemVyb0Jhc2VkSW50KCkpOworICAgICAgICAg
ICAgbV9zaGVldC0+Y29udGVudHMoKS0+cGFyc2VTdHJpbmdBdExpbmUodGV4dCwgc3RhcnRMaW5l
TnVtYmVyLnplcm9CYXNlZEludCgpLCBtX2NyZWF0ZWRCeVBhcnNlcik7CiAKICAgICAgICAgICAg
IG1fbG9hZGluZyA9IGZhbHNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA1NGVkMzE2MDY4MGZmOWYyZjk2ZThmNjVjMTUxY2Iy
MDJmN2YwZDZiLi4zNmQ3MmQ3YTMzZGM2YmJlYjBhODcxMzMyODM3ODJhMTljOTUxM2JkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTE0Miw2ICsx
NDIsNyBAQCBzdGF0aWMgVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3Vy
Y2U6OkVudW0gbWVzc2FnZVNvdXJjZVZhbHVlKE1lcwogICAgIGNhc2UgSlNNZXNzYWdlU291cmNl
OiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6Okph
dmFzY3JpcHQ7CiAgICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZTogcmV0dXJuIFR5cGVCdWls
ZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6U291cmNlOjpOZXR3b3JrOwogICAgIGNhc2Ug
Q29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29u
c29sZU1lc3NhZ2U6OlNvdXJjZTo6Q29uc29sZV9hcGk7CisgICAgY2FzZSBDU1NNZXNzYWdlU291
cmNlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6
OkNzczsKICAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpD
b25zb2xlOjpDb25zb2xlTWVzc2FnZTo6U291cmNlOjpPdGhlcjsKICAgICB9CiAgICAgcmV0dXJu
IFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6U291cmNlOjpPdGhlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAzMzdmOWVlYTM3YzBjZDQ3
ZGZkODAyMzFiY2U1ZmVhMzdjMTc1YWQ0Li4zMWEzNmM3MzI4MDFhOWEyNGYxZjc5MmZiMjE0MzU5
MDU3NmE0NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC03
NjgsNyArNzY4LDcgQEAKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UuIiwKICAgICAgICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3Vy
Y2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiaHRtbCIsICJ3bWwiLCAieG1sIiwgImph
dmFzY3JpcHQiLCAibmV0d29yayIsICJjb25zb2xlLWFwaSIsICJvdGhlciJdLCAiZGVzY3JpcHRp
b24iOiAiTWVzc2FnZSBzb3VyY2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJodG1sIiwgIndtbCIsICJ4bWwi
LCAiamF2YXNjcmlwdCIsICJuZXR3b3JrIiwgImNvbnNvbGUtYXBpIiwgImNzcyIsICJvdGhlciJd
LCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSBzb3VyY2UuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImxldmVsIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbInRpcCIsICJs
b2ciLCAid2FybmluZyIsICJlcnJvciIsICJkZWJ1ZyJdLCAiZGVzY3JpcHRpb24iOiAiTWVzc2Fn
ZSBzZXZlcml0eS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHRleHQuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiB0cnVlLCAiZW51bSI6IFsibG9nIiwgImRpciIsICJkaXJ4bWwiLCAidGFibGUiLCAidHJh
Y2UiLCAiY2xlYXIiLCAic3RhcnRHcm91cCIsICJzdGFydEdyb3VwQ29sbGFwc2VkIiwgImVuZEdy
b3VwIiwgImFzc2VydCIsICJ0aW1pbmciLCAicHJvZmlsZSIsICJwcm9maWxlRW5kIl0sICJkZXNj
cmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cAppbmRleCBmMzk4YzI1MmNkNWY2MTJjN2MzNzQ0ZWYwZjhmNjg1ZWJmN2Y5MmU0Li5kOTk5ODJj
YjAyOWRlYTUxOTU4ZjkxMjE3NTY5NmJhNDQ0NjQyOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5j
cHAKQEAgLTE2OCw2ICsxNjgsOSBAQCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJgogICAgIGVsc2UK
ICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBh
Z2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1i
ZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAKKyAgICBpZiAoc291cmNlID09IENTU01l
c3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghbV9mcmFtZS0+c2V0dGlu
Z3MoKSB8fCBtX2ZyYW1lLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmgKaW5kZXggODEwZGEx
ZmI2MGY5YzExOTRiYmE1YjBlNWVlNTkzZGFhMGU4NzE4Yi4uZTdkZGU2OGUwYTMwZDc4NGU0OTVk
ZDc1YThjYTk2YTUxZWQ3MTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25z
b2xlVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGVUeXBlcy5oCkBAIC0z
NCw2ICszNCw3IEBAIGVudW0gTWVzc2FnZVNvdXJjZSB7CiAgICAgSlNNZXNzYWdlU291cmNlLAog
ICAgIE5ldHdvcmtNZXNzYWdlU291cmNlLAogICAgIENvbnNvbGVBUElNZXNzYWdlU291cmNlLAor
ICAgIENTU01lc3NhZ2VTb3VyY2UsCiAgICAgT3RoZXJNZXNzYWdlU291cmNlLAogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CmluZGV4IGEzMDk1ZTYxYzFhMzYzOTAxMDZkNmY4ZTk0YmQ0M2I3ZjE1YjRiNzEuLmQ4YzllNDcx
NzllZTJiNDRhZGVjMGVjZGM1MjQ4NmY5YWM4MTkzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk1LDYgKzk1LDcg
QEAgTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlWE1MTWVzc2FnZVNvdXJjZSA9IEAiWE1MTWVz
c2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VKU01lc3NhZ2VTb3VyY2Ug
PSBAIkpTTWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VOZXR3b3Jr
TWVzc2FnZVNvdXJjZSA9IEAiTmV0d29ya01lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNv
bnNvbGVNZXNzYWdlQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UgPSBAIkNvbnNvbGVBUElNZXNzYWdl
U291cmNlIjsKK05TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUNTU01lc3NhZ2VTb3VyY2UgPSBA
IkNTU01lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNz
YWdlU291cmNlID0gQCJPdGhlck1lc3NhZ2VTb3VyY2UiOwogCiBOU1N0cmluZyAqV2ViQ29uc29s
ZU1lc3NhZ2VEZWJ1Z01lc3NhZ2VMZXZlbCA9IEAiRGVidWdNZXNzYWdlTGV2ZWwiOwpAQCAtMzM5
LDYgKzM0MCw4IEBAIGlubGluZSBzdGF0aWMgTlNTdHJpbmcgKnN0cmluZ0Zvck1lc3NhZ2VTb3Vy
Y2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UpCiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2Fn
ZU5ldHdvcmtNZXNzYWdlU291cmNlOwogICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6
CiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZUNvbnNvbGVBUElNZXNzYWdlU291cmNl
OworICAgIGNhc2UgQ1NTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVN
ZXNzYWdlQ1NTTWVzc2FnZVNvdXJjZTsKICAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKICAg
ICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCBjYzAzNDYzNThhMTEwMGE0ZWRhZDYyODMyOWY3ZmUxM2Y0ODIwZTI2Li45ZWE4YzgwNWFl
MTA3OTAxM2ZlYjdmMzgwNjllNzFlZmMxNGI1MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDksNiArMTA5LDcgQEAgZXh0
ZXJuIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZVhNTE1lc3NhZ2VTb3VyY2U7CiBleHRlcm4g
TlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlSlNNZXNzYWdlU291cmNlOwogZXh0ZXJuIE5TU3Ry
aW5nICpXZWJDb25zb2xlTWVzc2FnZU5ldHdvcmtNZXNzYWdlU291cmNlOwogZXh0ZXJuIE5TU3Ry
aW5nICpXZWJDb25zb2xlTWVzc2FnZUNvbnNvbGVBUElNZXNzYWdlU291cmNlOworZXh0ZXJuIE5T
U3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUNTU01lc3NhZ2VTb3VyY2U7CiBleHRlcm4gTlNTdHJp
bmcgKldlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlOwogCiAvLyBNZXNzYWdlIExl
dmVscy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191498</attachid>
            <date>2013-03-05 08:06:26 -0800</date>
            <delta_ts>2013-03-06 05:41:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130305200231.patch</filename>
            <type>text/plain</type>
            <size>16757</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI0MzNiNTc5OGVjM2Y3
MTE4MzU4YjYxOWE5NjZiZmVkYTM1ZDA3YS4uYTY1NWUwZWFhZWEzYzBlOTZlODQ5YmNiODRiMDNl
NTliODdmZWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAzLTA1ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisKKyAgICAgICAgQWRkaW5nIGEgZnJhbWV3b3JrIGZv
ciBwbHVtYmluZyBDU1Mgd2FybmluZ3MgZnJvbSBDU1NQYXJzZXIvZ3JhbW1hciB0byB0aGUgSW5z
cGVjdG9yIGNvbnNvbGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpyZWFsTGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3ludGF4RXJy
b3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Omlz
TG9nZ2luZ0Vycm9ycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxvZ0Vycm9yKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KENTU1BhcnNlcik6CisgICAgICAgIChDU1NQYXJzZXI6OkxvY2F0aW9uKToKKyAgICAgICAgKiBj
c3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
U2hlZXRDb250ZW50czo6cGFyc2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVl
dENvbnRlbnRzOjpwYXJzZVN0cmluZ0F0TGluZSk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5oOgorICAgICAgICAoU3R5bGVTaGVldENvbnRlbnRzKToKKyAgICAgICAgKiBkb20v
U3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRWxlbWVudDo6Y3JlYXRl
U2hlZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptZXNzYWdlU291cmNlVmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6YWRkTWVzc2FnZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlVHlwZXMuaDoK
KwogMjAxMy0wMy0wNSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBQb3BvdmVyQ29udGVudEhlbHBlciBmcm9tIFRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgdG8gUG9wb3Zlci5qcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCA5NTdlNGQ4MTNjZWNlYTU1YWQzYjMyNWI4ZGNhZDliYWU3ZTI4NDE1Li4zNzU2OWU1YjU5
ODYyMjhjOTFiYjUwNzcyMTExMjk5ODNkNDAyM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTMtMDMtMDUgIFNlcmdleSBSeWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQbHVtYmluZyBDU1Mgd2FybmluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMzNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoc3RyaW5nRm9yTWVzc2FnZVNvdXJjZSk6
CisgICAgICAgICogV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oOgorCiAyMDEzLTAzLTA0
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQlVJTEQgRklY
IChyMTQ0NjYyKTogSW1wb3J0IEpTQmFzZS5oIGluIFdlYkZyYW1lTG9hZERlbGVnYXRlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggN2M3MDViZjE0ODFjMjIzNDM1M2Y3MjdkYTliZTUw
ZmE2NzBkMjM3Ny4uZTBhOTNkN2NkYWIxYzRjMGI4MDY4MjU1ZGRjODU2ZjMzMGFiY2Y2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTU2LDcgKzU2LDkgQEAKICNpZiBFTkFCTEUoQ1NT
X1ZBUklBQkxFUykKICNpbmNsdWRlICJDU1NWYXJpYWJsZVZhbHVlLmgiCiAjZW5kaWYKKyNpbmNs
dWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiQ291bnRlci5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgpAQCAtMzE1LDYgKzMxNyw3IEBAIENTU1Bh
cnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBt
X2ltcGxpY2l0U2hvcnRoYW5kKGZhbHNlKQogICAgICwgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMo
ZmFsc2UpCiAgICAgLCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1bGUoZmFsc2UpCisgICAg
LCBtX2xvZ0Vycm9ycyhmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgLCBtX2lu
RmlsdGVyUnVsZShmYWxzZSkKICNlbmRpZgpAQCAtMzI5LDYgKzMzMiw3IEBAIENTU1BhcnNlcjo6
Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX2xlbmd0
aCgwKQogICAgICwgbV90b2tlbigwKQogICAgICwgbV9saW5lTnVtYmVyKDApCisgICAgLCBtX3Rv
a2VuU3RhcnRMaW5lTnVtYmVyKDApCiAgICAgLCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXIoMCkK
ICAgICAsIG1fYWxsb3dJbXBvcnRSdWxlcyh0cnVlKQogICAgICwgbV9hbGxvd05hbWVzcGFjZURl
Y2xhcmF0aW9ucyh0cnVlKQpAQCAtNDUwLDcgKzQ1NCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1
cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIHVuc2lnbmVkIHByZWZpeExlbmd0aCwgY29uc3Qg
U3RyCiAgICAgbV9sZXhGdW5jID0gJkNTU1BhcnNlcjo6cmVhbExleDxVQ2hhcj47CiB9CiAKLXZv
aWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBSdWxlU291cmNlRGF0YUxpc3Qq
IHJ1bGVTb3VyY2VEYXRhUmVzdWx0KQordm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVT
aGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVO
dW1iZXIsIFJ1bGVTb3VyY2VEYXRhTGlzdCogcnVsZVNvdXJjZURhdGFSZXN1bHQsIGJvb2wgbG9n
RXJyb3JzKQogewogICAgIHNldFN0eWxlU2hlZXQoc2hlZXQpOwogICAgIG1fZGVmYXVsdE5hbWVz
cGFjZSA9IHN0YXJBdG9tOyAvLyBSZXNldCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuCkBAIC00NTgs
NiArNDYyLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRz
KiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludAogICAgICAgICBtX2N1cnJlbnRSdWxl
RGF0YVN0YWNrID0gYWRvcHRQdHIobmV3IFJ1bGVTb3VyY2VEYXRhTGlzdCgpKTsKICAgICBtX3J1
bGVTb3VyY2VEYXRhUmVzdWx0ID0gcnVsZVNvdXJjZURhdGFSZXN1bHQ7CiAKKyAgICBtX2xvZ0Vy
cm9ycyA9IGxvZ0Vycm9ycyAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpICYmICFzaGVl
dC0+YmFzZVVSTCgpLmlzRW1wdHkoKSAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpLT5k
b21XaW5kb3coKTsKICAgICBtX2xpbmVOdW1iZXIgPSBzdGFydExpbmVOdW1iZXI7CiAgICAgc2V0
dXBQYXJzZXIoIiIsIHN0cmluZywgIiIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CkBAIC00NjUs
NiArNDcwLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRz
KiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludAogICAgIG1fY3VycmVudFJ1bGVEYXRh
U3RhY2suY2xlYXIoKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVzdWx0ID0gMDsKICAgICBtX3J1
bGUgPSAwOworICAgIG1fbG9nRXJyb3JzID0gZmFsc2U7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVS
dWxlQmFzZT4gQ1NTUGFyc2VyOjpwYXJzZVJ1bGUoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0xMDQ2Miw2ICsxMDQ2OCw3IEBAIGludCBDU1NQYXJz
ZXI6OnJlYWxMZXgodm9pZCogeXlsdmFsV2l0aG91dFR5cGUpCiByZXN0YXJ0QWZ0ZXJDb21tZW50
OgogICAgIHJlc3VsdCA9IGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKICAg
ICBzZXRUb2tlblN0YXJ0KHJlc3VsdCk7CisgICAgbV90b2tlblN0YXJ0TGluZU51bWJlciA9IG1f
bGluZU51bWJlcjsKICAgICBtX3Rva2VuID0gKmN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVy
VHlwZT4oKTsKICAgICArK2N1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKIApA
QCAtMTExMjcsNiArMTExMzQsMjkgQEAgUGFzc1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gQ1NT
UGFyc2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwogfQogCit2
b2lkIENTU1BhcnNlcjo6c3ludGF4RXJyb3IoTG9jYXRpb24gbG9jYXRpb24pCit7CisgICAgaWYg
KCFpc0xvZ2dpbmdFcnJvcnMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuZXhwZWN0ZWQgQ1NTIHRva2Vu
OiAiKTsKKyAgICBpZiAobG9jYXRpb24udG9rZW4uaXM4Qml0KCkpCisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGxvY2F0aW9uLnRva2VuLmNoYXJhY3RlcnM4KCksIGxvY2F0aW9uLnRva2VuLmxlbmd0
aCgpKTsKKyAgICBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvY2F0aW9uLnRva2VuLmNo
YXJhY3RlcnMxNigpLCBsb2NhdGlvbi50b2tlbi5sZW5ndGgoKSk7CisgICAgbG9nRXJyb3IoYnVp
bGRlci50b1N0cmluZygpLCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKK30KKworYm9vbCBDU1NQYXJz
ZXI6OmlzTG9nZ2luZ0Vycm9ycygpCit7CisgICAgcmV0dXJuIG1fbG9nRXJyb3JzOworfQorCit2
b2lkIENTU1BhcnNlcjo6bG9nRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51
bWJlcikKK3sKKyAgICBtX3N0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShDU1NNZXNzYWdlU291cmNlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlLCBtX3N0eWxlU2hlZXQtPmJhc2VVUkwoKS5zdHJpbmcoKSwgbGlu
ZU51bWJlciArIDEpOworfQorCiBTdHlsZVJ1bGVLZXlmcmFtZXMqIENTU1BhcnNlcjo6Y3JlYXRl
S2V5ZnJhbWVzUnVsZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8VmVjdG9yPFJlZlB0
cjxTdHlsZUtleWZyYW1lPiA+ID4gcG9wS2V5ZnJhbWVzKQogewogICAgIE93blB0cjxWZWN0b3I8
UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4gPiBrZXlmcmFtZXMgPSBwb3BLZXlmcmFtZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgKaW5kZXggYTk5ZDI4NWI1NmM3MTU1YjRjMDFlMjMzMjllMTAxZTkzYjNl
OGNkNC4uYjE3NmU5ZDM2YjhhMzQwMGNkOTRlY2UyOGRjMGQ1YTA1MmYzOWQ2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaApAQCAtNDYsNiArNDYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBBbmltYXRpb25QYXJzZUNvbnRleHQ7CitjbGFzcyBDb25zb2xlOwogY2xhc3MgQ1NTQm9y
ZGVySW1hZ2VTbGljZVZhbHVlOwogY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBDU1NT
ZWxlY3Rvckxpc3Q7CkBAIC03NSwxMSArNzYsMTMgQEAgY2xhc3MgQ1NTUGFyc2VyIHsKICAgICBm
cmllbmQgaW5saW5lIGludCBjc3N5eWxleCh2b2lkKiwgQ1NTUGFyc2VyKik7CiAKIHB1YmxpYzoK
KyAgICBzdHJ1Y3QgTG9jYXRpb247CisKICAgICBDU1NQYXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCYpOwogCiAgICAgfkNTU1BhcnNlcigpOwogCi0gICAgdm9pZCBwYXJzZVNoZWV0KFN0eWxl
U2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBS
dWxlU291cmNlRGF0YUxpc3QqID0gMCk7CisgICAgdm9pZCBwYXJzZVNoZWV0KFN0eWxlU2hlZXRD
b250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBSdWxlU291
cmNlRGF0YUxpc3QqID0gMCwgYm9vbCA9IGZhbHNlKTsKICAgICBQYXNzUmVmUHRyPFN0eWxlUnVs
ZUJhc2U+IHBhcnNlUnVsZShTdHlsZVNoZWV0Q29udGVudHMqLCBjb25zdCBTdHJpbmcmKTsKICAg
ICBQYXNzUmVmUHRyPFN0eWxlS2V5ZnJhbWU+IHBhcnNlS2V5ZnJhbWVSdWxlKFN0eWxlU2hlZXRD
b250ZW50cyosIGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShDU1MzX0NPTkRJVElPTkFMX1JV
TEVTKQpAQCAtMzc4LDYgKzM4MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9oYXNGb250RmFj
ZU9ubHlWYWx1ZXM7CiAgICAgYm9vbCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1bGU7Cisg
ICAgYm9vbCBtX2xvZ0Vycm9yczsKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICBib29s
IG1faW5GaWx0ZXJSdWxlOwpAQCAtNDA3LDYgKzQxMSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVm
UHRyPENTU1J1bGVTb3VyY2VEYXRhPiBwb3BSdWxlRGF0YSgpOwogICAgIHZvaWQgcmVzZXRQcm9w
ZXJ0eVJhbmdlKCkgeyBtX3Byb3BlcnR5UmFuZ2Uuc3RhcnQgPSBtX3Byb3BlcnR5UmFuZ2UuZW5k
ID0gVUlOVF9NQVg7IH0KICAgICBib29sIGlzRXh0cmFjdGluZ1NvdXJjZURhdGEoKSBjb25zdCB7
IHJldHVybiAhIW1fY3VycmVudFJ1bGVEYXRhU3RhY2s7IH0KKyAgICB2b2lkIHN5bnRheEVycm9y
KExvY2F0aW9uKTsKIAogICAgIGlubGluZSBpbnQgbGV4KHZvaWQqIHl5bHZhbCkgeyByZXR1cm4g
KHRoaXMtPiptX2xleEZ1bmMpKHl5bHZhbCk7IH0KIApAQCAtNTY0LDYgKzU2OSw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgaW50IG1fdG9rZW47CiAgICAgaW50IG1f
bGluZU51bWJlcjsKKyAgICBpbnQgbV90b2tlblN0YXJ0TGluZU51bWJlcjsKICAgICBpbnQgbV9s
YXN0U2VsZWN0b3JMaW5lTnVtYmVyOwogCiAgICAgYm9vbCBtX2FsbG93SW1wb3J0UnVsZXM7CkBA
IC02MzEsNiArNjM3LDkgQEAgcHJpdmF0ZToKICAgICAgICAgRG9Ob3RSZWxlYXNlUGFyc2VkQ2Fs
Y1ZhbHVlCiAgICAgfTsKIAorICAgIGJvb2wgaXNMb2dnaW5nRXJyb3JzKCk7CisgICAgdm9pZCBs
b2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyKTsKKwogICAgIGJv
b2wgdmFsaWRDYWxjdWxhdGlvblVuaXQoQ1NTUGFyc2VyVmFsdWUqLCBVbml0cywgUmVsZWFzZVBh
cnNlZENhbGNWYWx1ZUNvbmRpdGlvbiByZWxlYXNlQ2FsYyA9IERvTm90UmVsZWFzZVBhcnNlZENh
bGNWYWx1ZSk7CiAKICAgICBib29sIHNob3VsZEFjY2VwdFVuaXRMZXNzVmFsdWVzKENTU1BhcnNl
clZhbHVlKiwgVW5pdHMsIENTU1BhcnNlck1vZGUpOwpAQCAtNjc0LDYgKzY4MywxMSBAQCBwcml2
YXRlOgogICAgIENTU1BhcnNlciogbV9wYXJzZXI7CiB9OwogCitzdHJ1Y3QgQ1NTUGFyc2VyOjpM
b2NhdGlvbiB7CisgICAgaW50IGxpbmVOdW1iZXI7CisgICAgQ1NTUGFyc2VyU3RyaW5nIHRva2Vu
OworfTsKKwogU3RyaW5nIHF1b3RlQ1NTU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogU3RyaW5nIHF1
b3RlQ1NTU3RyaW5nSWZOZWVkZWQoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgcXVvdGVDU1NVUkxJ
Zk5lZWRlZChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250
ZW50cy5jcHAKaW5kZXggMGFkZmEwNDg1YTQzZDBhYzY4MzE4NzI1Mzc5OGU1YmU3YjlkODE0Zi4u
MmFhMzZjYTVmMmE1ZWIzYTZhMTA0OThmMzY4YTAyY2ZmMTQxZWZmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFN0
eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0
eWxlU2hlZXQqIGNhY2hlZAogICAgIFN0cmluZyBzaGVldFRleHQgPSBjYWNoZWRTdHlsZVNoZWV0
LT5zaGVldFRleHQoZW5mb3JjZU1JTUVUeXBlLCAmaGFzVmFsaWRNSU1FVHlwZSk7CiAKICAgICBD
U1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkpOwotICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVl
dFRleHQsIDApOworICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIDAsIDAsIHRydWUp
OwogCiAgICAgLy8gSWYgd2UncmUgbG9hZGluZyBhIHN0eWxlc2hlZXQgY3Jvc3Mtb3JpZ2luLCBh
bmQgdGhlIE1JTUUgdHlwZSBpcyBub3Qgc3RhbmRhcmQsIHJlcXVpcmUgdGhlIENTUwogICAgIC8v
IHRvIGF0IGxlYXN0IHN0YXJ0IHdpdGggYSBzeW50YWN0aWNhbGx5IHZhbGlkIENTUyBydWxlLgpA
QCAtMzEwLDEzICszMTAsMTMgQEAgdm9pZCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlQXV0aG9y
U3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWQKIAogYm9vbCBTdHls
ZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0KQogewot
ICAgIHJldHVybiBwYXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDApOworICAgIHJldHVybiBw
YXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDAsIGZhbHNlKTsKIH0KIAotYm9vbCBTdHlsZVNo
ZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBp
bnQgc3RhcnRMaW5lTnVtYmVyKQorYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5n
QXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBDU1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkpOwot
ICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIHN0YXJ0TGluZU51bWJlcik7CisgICAg
cC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0VGV4dCwgc3RhcnRMaW5lTnVtYmVyLCAwLCBjcmVhdGVk
QnlQYXJzZXIpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmgKaW5kZXggMWYyOTY4YjcxN2U2YzEyOGZlNzRlMzE5MDc0Y2Q2ZmY3NGU3
NWI2ZS4uNDBlMmRmM2E5MzdjZjdmY2E0NWFmZWIxMTBhZTc2OWJiOGE0MzhkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHlsZVNo
ZWV0KiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKICAgICBib29sIHBhcnNlU3RyaW5nKGNvbnN0
IFN0cmluZyYpOwotICAgIGJvb2wgcGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5nJiwgaW50
IHN0YXJ0TGluZU51bWJlcik7CisgICAgYm9vbCBwYXJzZVN0cmluZ0F0TGluZShjb25zdCBTdHJp
bmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBib29sKTsKIAogICAgIGJvb2wgaXNDYWNoZWFibGUo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAppbmRleCBmZjIyZmU5ZGI4
OGFiOWEyMjZlMDIwMmNmMmI0NDc2Y2ZlMDA1ZjBlLi40ODQwZjZhN2FmYjgzODk3YTMxZjNjMmU5
YWEzZjk5Zjk1NzhiODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcApAQCAtMTc1
LDcgKzE3NSw3IEBAIHZvaWQgU3R5bGVFbGVtZW50OjpjcmVhdGVTaGVldChFbGVtZW50KiBlLCBX
VEY6Ok9yZGluYWxOdW1iZXIgc3RhcnRMaW5lTnVtYmVyLCBjCiAgICAgICAgICAgICBtX3NoZWV0
ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5lKGUsIEtVUkwoKSwgZG9jdW1lbnQtPmlucHV0
RW5jb2RpbmcoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRNZWRpYVF1ZXJpZXMobWVkaWFR
dWVyaWVzLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRUaXRsZShlLT50aXRs
ZSgpKTsKLSAgICAgICAgICAgIG1fc2hlZXQtPmNvbnRlbnRzKCktPnBhcnNlU3RyaW5nQXRMaW5l
KHRleHQsIHN0YXJ0TGluZU51bWJlci56ZXJvQmFzZWRJbnQoKSk7CisgICAgICAgICAgICBtX3No
ZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmluZ0F0TGluZSh0ZXh0LCBzdGFydExpbmVOdW1iZXIu
emVyb0Jhc2VkSW50KCksIG1fY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgICAgICAgICAgbV9sb2Fk
aW5nID0gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwCmluZGV4IDU0ZWQzMTYwNjgwZmY5ZjJmOTZlOGY2NWMxNTFjYjIwMmY3ZjBk
NmIuLjM2ZDcyZDdhMzNkYzZiYmViMGE4NzEzMzI4Mzc4MmExOWM5NTEzYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMTQyLDYgKzE0Miw3IEBA
IHN0YXRpYyBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlNvdXJjZTo6RW51
bSBtZXNzYWdlU291cmNlVmFsdWUoTWVzCiAgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6IHJldHVy
biBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlNvdXJjZTo6SmF2YXNjcmlw
dDsKICAgICBjYXNlIE5ldHdvcmtNZXNzYWdlU291cmNlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNv
bnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6Ok5ldHdvcms7CiAgICAgY2FzZSBDb25zb2xl
QVBJTWVzc2FnZVNvdXJjZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVz
c2FnZTo6U291cmNlOjpDb25zb2xlX2FwaTsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6IHJl
dHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlNvdXJjZTo6Q3NzOwog
ICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6
OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6Ok90aGVyOwogICAgIH0KICAgICByZXR1cm4gVHlwZUJ1
aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6Ok90aGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGZiZTMwYjI3NDZlM2FhZDhjZjMyM2U5
NDg2ZDg4MGMzOTc0NTc2NTMuLjRlMTJhNjBhMmQ5YTU3NDg5NDRmOWMzNjFkNjUwNDQ1ZjgwNTNh
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTc2OCw3ICs3
NjgsNyBAQAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkNvbnNvbGUgbWVzc2FnZS4iLAogICAgICAgICAgICAgICAgICJw
cm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIsICJ0
eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJodG1sIiwgIndtbCIsICJ4bWwiLCAiamF2YXNjcmlw
dCIsICJuZXR3b3JrIiwgImNvbnNvbGUtYXBpIiwgIm90aGVyIl0sICJkZXNjcmlwdGlvbiI6ICJN
ZXNzYWdlIHNvdXJjZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNl
IiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImh0bWwiLCAid21sIiwgInhtbCIsICJqYXZh
c2NyaXB0IiwgIm5ldHdvcmsiLCAiY29uc29sZS1hcGkiLCAiY3NzIiwgIm90aGVyIl0sICJkZXNj
cmlwdGlvbiI6ICJNZXNzYWdlIHNvdXJjZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibGV2ZWwiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsidGlwIiwgImxvZyIsICJ3
YXJuaW5nIiwgImVycm9yIiwgImRlYnVnIl0sICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHNldmVy
aXR5LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgdGV4dC4iIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRy
dWUsICJlbnVtIjogWyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIsICJ0cmFjZSIsICJj
bGVhciIsICJzdGFydEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5kR3JvdXAiLCAi
YXNzZXJ0IiwgInRpbWluZyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiXSwgImRlc2NyaXB0aW9u
IjogIkNvbnNvbGUgbWVzc2FnZSB0eXBlLiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4
IGYzOThjMjUyY2Q1ZjYxMmM3YzM3NDRlZjBmOGY2ODVlYmY3ZjkyZTQuLmQ5OTk4MmNiMDI5ZGVh
NTE5NThmOTEyMTc1Njk2YmE0NDQ2NDI5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAt
MTY4LDYgKzE2OCw5IEBAIHZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmCiAgICAgZWxzZQogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3Rh
dGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIAorICAgIGlmIChzb3VyY2UgPT0gQ1NTTWVzc2FnZVNv
dXJjZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpIHx8
IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGVUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlVHlwZXMuaAppbmRleCA4MTBkYTFmYjYwZjlj
MTE5NGJiYTViMGU1ZWU1OTNkYWEwZTg3MThiLi5lN2RkZTY4ZTBhMzBkNzg0ZTQ5NWRkNzVhOGNh
OTZhNTFlZDcxNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGVUeXBl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmgKQEAgLTM0LDYgKzM0
LDcgQEAgZW51bSBNZXNzYWdlU291cmNlIHsKICAgICBKU01lc3NhZ2VTb3VyY2UsCiAgICAgTmV0
d29ya01lc3NhZ2VTb3VyY2UsCiAgICAgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsCisgICAgQ1NT
TWVzc2FnZVNvdXJjZSwKICAgICBPdGhlck1lc3NhZ2VTb3VyY2UsCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXgg
YTMwOTVlNjFjMWEzNjM5MDEwNmQ2ZjhlOTRiZDQzYjdmMTViNGI3MS4uZDhjOWU0NzE3OWVlMmI0
NGFkZWMwZWNkYzUyNDg2ZjlhYzgxOTNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTUsNiArOTUsNyBAQCBOU1N0
cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VYTUxNZXNzYWdlU291cmNlID0gQCJYTUxNZXNzYWdlU291
cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUpTTWVzc2FnZVNvdXJjZSA9IEAiSlNN
ZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU5ldHdvcmtNZXNzYWdl
U291cmNlID0gQCJOZXR3b3JrTWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1l
c3NhZ2VDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSA9IEAiQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2Ui
OworTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlQ1NTTWVzc2FnZVNvdXJjZSA9IEAiQ1NTTWVz
c2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VPdGhlck1lc3NhZ2VTb3Vy
Y2UgPSBAIk90aGVyTWVzc2FnZVNvdXJjZSI7CiAKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2Fn
ZURlYnVnTWVzc2FnZUxldmVsID0gQCJEZWJ1Z01lc3NhZ2VMZXZlbCI7CkBAIC0zMzksNiArMzQw
LDggQEAgaW5saW5lIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nRm9yTWVzc2FnZVNvdXJjZShNZXNz
YWdlU291cmNlIHNvdXJjZSkKICAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlTmV0d29y
a01lc3NhZ2VTb3VyY2U7CiAgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKICAgICAg
ICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U7CisgICAg
Y2FzZSBDU1NNZXNzYWdlU291cmNlOgorICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VD
U1NNZXNzYWdlU291cmNlOwogICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgogICAgICAgICBy
ZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VPdGhlck1lc3NhZ2VTb3VyY2U7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGNj
MDM0NjM1OGExMTAwYTRlZGFkNjI4MzI5ZjdmZTEzZjQ4MjBlMjYuLjllYThjODA1YWUxMDc5MDEz
ZmViN2YzODA2OWU3MWVmYzE0YjUyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBleHRlcm4gTlNT
dHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlWE1MTWVzc2FnZVNvdXJjZTsKIGV4dGVybiBOU1N0cmlu
ZyAqV2ViQ29uc29sZU1lc3NhZ2VKU01lc3NhZ2VTb3VyY2U7CiBleHRlcm4gTlNTdHJpbmcgKldl
YkNvbnNvbGVNZXNzYWdlTmV0d29ya01lc3NhZ2VTb3VyY2U7CiBleHRlcm4gTlNTdHJpbmcgKldl
YkNvbnNvbGVNZXNzYWdlQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U7CitleHRlcm4gTlNTdHJpbmcg
KldlYkNvbnNvbGVNZXNzYWdlQ1NTTWVzc2FnZVNvdXJjZTsKIGV4dGVybiBOU1N0cmluZyAqV2Vi
Q29uc29sZU1lc3NhZ2VPdGhlck1lc3NhZ2VTb3VyY2U7CiAKIC8vIE1lc3NhZ2UgTGV2ZWxzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191730</attachid>
            <date>2013-03-06 05:41:53 -0800</date>
            <delta_ts>2013-03-18 06:11:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130306173758.patch</filename>
            <type>text/plain</type>
            <size>18009</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkxM2JlNzBjNGQ4ZGM0
NTMyOGQxOTdjZjY0N2FhM2VmYzg0NmE3Ny4uOTAyODA3ZjZiZmY5NzY4NTNiYTRiZjkyNjBiYTE3
NjE3M2MyZWJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAzLTA2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisKKyAgICAgICAgQWRkaW5nIGEgZnJhbWV3b3JrIGZv
ciBwbHVtYmluZyBDU1Mgd2FybmluZ3MgZnJvbSBDU1NQYXJzZXIvZ3JhbW1hciB0byB0aGUgSW5z
cGVjdG9yIGNvbnNvbGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpyZWFsTGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3ludGF4RXJy
b3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Omlz
TG9nZ2luZ0Vycm9ycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxvZ0Vycm9yKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChDU1NQYXJzZXIpOgorICAgICAg
ICAoQ1NTUGFyc2VyOjpMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBj
c3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
U2hlZXRDb250ZW50czo6cGFyc2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVl
dENvbnRlbnRzOjpwYXJzZVN0cmluZ0F0TGluZSk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5oOgorICAgICAgICAoU3R5bGVTaGVldENvbnRlbnRzKToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9TdHlsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVFbGVtZW50OjpjcmVhdGVTaGVldCk6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VTb3VyY2VW
YWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIHBh
Z2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjphZGRNZXNzYWdlKToK
KyAgICAgICAgKiBwYWdlL0NvbnNvbGVUeXBlcy5oOgorCiAyMDEzLTAzLTA2ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3Jhc2ggZHVyaW5nIG1pZGRsZSBtb3Vz
ZSBjbGljayB3aGVuIHBhZ2UgaXMgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQzZWI1ODg0
OWE5NGVlMTg0YWNiODNjYWUzY2M1ODU3MzgwOGMyZWMuLjgwMmQyMTVmODJhYWUzODZkNjU1Njg2
YjZjYzUzYTlhMGQ1ZTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
My0wMy0wNiAgU2VyZ2V5IFJ5YXphbm92ICA8c2VyeWFAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFBsdW1iaW5nIENTUyB3YXJuaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMzM0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW06CisgICAgICAgIChzdHJpbmdGb3JNZXNzYWdlU291cmNlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmg6CisKIDIwMTMtMDMtMDUgIEphbWVzIFJvYmlu
c29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250YWluZXJOb2RlOjpzZXRB
Y3RpdmUgc2hvdWxkIG5vdCBzbGVlcCBmb3IgMTAwbXMgb24gcGxhdGZvcm1zIHRoYXQgZG8gbm90
IGltcGxlbWVudCBzeW5jaHJvbm91cyByZXBhaW50KHRydWUpIHNlbWFudGljcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCA2YWVkOGE4M2RmYjNkM2Y1NGQ2NjhjNmYzNTRmYzZlOGM5ZmQz
ZGIxLi4xM2I0NGNkNjRjYzJiYTFmYjE2ZTNjM2U0MTQwOTE2NzdmYzA1ZTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtMzE1LDYgKzMxNSw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2Vy
KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX2ltcGxpY2l0U2hvcnRo
YW5kKGZhbHNlKQogICAgICwgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMoZmFsc2UpCiAgICAgLCBt
X2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1bGUoZmFsc2UpCisgICAgLCBtX2xvZ0Vycm9ycyhm
YWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgLCBtX2luRmlsdGVyUnVsZShmYWxz
ZSkKICNlbmRpZgpAQCAtMzI5LDYgKzMzMCw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0
IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX2xlbmd0aCgwKQogICAgICwgbV90
b2tlbigwKQogICAgICwgbV9saW5lTnVtYmVyKDApCisgICAgLCBtX3Rva2VuU3RhcnRMaW5lTnVt
YmVyKDApCiAgICAgLCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXIoMCkKICAgICAsIG1fYWxsb3dJ
bXBvcnRSdWxlcyh0cnVlKQogICAgICwgbV9hbGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyh0cnVl
KQpAQCAtNDUwLDcgKzQ1Miw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBj
aGFyKiBwcmVmaXgsIHVuc2lnbmVkIHByZWZpeExlbmd0aCwgY29uc3QgU3RyCiAgICAgbV9sZXhG
dW5jID0gJkNTU1BhcnNlcjo6cmVhbExleDxVQ2hhcj47CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpw
YXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBSdWxlU291cmNlRGF0YUxpc3QqIHJ1bGVTb3VyY2VEYXRh
UmVzdWx0KQordm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBz
aGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFJ1bGVTb3Vy
Y2VEYXRhTGlzdCogcnVsZVNvdXJjZURhdGFSZXN1bHQsIGJvb2wgbG9nRXJyb3JzKQogewogICAg
IHNldFN0eWxlU2hlZXQoc2hlZXQpOwogICAgIG1fZGVmYXVsdE5hbWVzcGFjZSA9IHN0YXJBdG9t
OyAvLyBSZXNldCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuCkBAIC00NTgsNiArNDYwLDcgQEAgdm9p
ZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIGludAogICAgICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrID0gYWRv
cHRQdHIobmV3IFJ1bGVTb3VyY2VEYXRhTGlzdCgpKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVz
dWx0ID0gcnVsZVNvdXJjZURhdGFSZXN1bHQ7CiAKKyAgICBtX2xvZ0Vycm9ycyA9IGxvZ0Vycm9y
cyAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpICYmICFzaGVldC0+YmFzZVVSTCgpLmlz
RW1wdHkoKTsKICAgICBtX2xpbmVOdW1iZXIgPSBzdGFydExpbmVOdW1iZXI7CiAgICAgc2V0dXBQ
YXJzZXIoIiIsIHN0cmluZywgIiIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CkBAIC00NjUsNiAr
NDY4LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBz
aGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludAogICAgIG1fY3VycmVudFJ1bGVEYXRhU3Rh
Y2suY2xlYXIoKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVzdWx0ID0gMDsKICAgICBtX3J1bGUg
PSAwOworICAgIG1fbG9nRXJyb3JzID0gZmFsc2U7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVSdWxl
QmFzZT4gQ1NTUGFyc2VyOjpwYXJzZVJ1bGUoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0xMDQ2NCw2ICsxMDQ2OCw3IEBAIGludCBDU1NQYXJzZXI6
OnJlYWxMZXgodm9pZCogeXlsdmFsV2l0aG91dFR5cGUpCiByZXN0YXJ0QWZ0ZXJDb21tZW50Ogog
ICAgIHJlc3VsdCA9IGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKICAgICBz
ZXRUb2tlblN0YXJ0KHJlc3VsdCk7CisgICAgbV90b2tlblN0YXJ0TGluZU51bWJlciA9IG1fbGlu
ZU51bWJlcjsKICAgICBtX3Rva2VuID0gKmN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlw
ZT4oKTsKICAgICArK2N1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKIApAQCAt
MTExMjksNiArMTExMzQsMjkgQEAgUGFzc1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gQ1NTUGFy
c2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwogfQogCit2b2lk
IENTU1BhcnNlcjo6c3ludGF4RXJyb3IoTG9jYXRpb24gbG9jYXRpb24pCit7CisgICAgaWYgKCFp
c0xvZ2dpbmdFcnJvcnMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuZXhwZWN0ZWQgQ1NTIHRva2VuOiAi
KTsKKyAgICBpZiAobG9jYXRpb24udG9rZW4uaXM4Qml0KCkpCisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGxvY2F0aW9uLnRva2VuLmNoYXJhY3RlcnM4KCksIGxvY2F0aW9uLnRva2VuLmxlbmd0aCgp
KTsKKyAgICBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvY2F0aW9uLnRva2VuLmNoYXJh
Y3RlcnMxNigpLCBsb2NhdGlvbi50b2tlbi5sZW5ndGgoKSk7CisgICAgbG9nRXJyb3IoYnVpbGRl
ci50b1N0cmluZygpLCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKK30KKworYm9vbCBDU1NQYXJzZXI6
OmlzTG9nZ2luZ0Vycm9ycygpCit7CisgICAgcmV0dXJuIG1fbG9nRXJyb3JzOworfQorCit2b2lk
IENTU1BhcnNlcjo6bG9nRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJl
cikKK3sKKyAgICBtX3N0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1lbnQoKS0+YWRkQ29uc29s
ZU1lc3NhZ2UoQ1NTTWVzc2FnZVNvdXJjZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
bV9zdHlsZVNoZWV0LT5iYXNlVVJMKCksIGxpbmVOdW1iZXIgKyAxKTsKK30KKwogU3R5bGVSdWxl
S2V5ZnJhbWVzKiBDU1NQYXJzZXI6OmNyZWF0ZUtleWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBQYXNzT3duUHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IHBvcEtleWZy
YW1lcykKIHsKICAgICBPd25QdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPiA+ID4ga2V5
ZnJhbWVzID0gcG9wS2V5ZnJhbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGE5OWQyODVi
NTZjNzE1NWI0YzAxZTIzMzI5ZTEwMWU5M2IzZThjZDQuLjU4OWVhOWI2MGQ0ZjliODU3MmY5Y2E3
OTRiNjAxODAyODIxMjFmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTc1LDExICs3NSwx
MyBAQCBjbGFzcyBDU1NQYXJzZXIgewogICAgIGZyaWVuZCBpbmxpbmUgaW50IGNzc3l5bGV4KHZv
aWQqLCBDU1NQYXJzZXIqKTsKIAogcHVibGljOgorICAgIHN0cnVjdCBMb2NhdGlvbjsKKwogICAg
IENTU1BhcnNlcihjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CiAKICAgICB+Q1NTUGFyc2VyKCk7
CiAKLSAgICB2b2lkIHBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5n
JiwgaW50IHN0YXJ0TGluZU51bWJlciA9IDAsIFJ1bGVTb3VyY2VEYXRhTGlzdCogPSAwKTsKKyAg
ICB2b2lkIHBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJiwgaW50
IHN0YXJ0TGluZU51bWJlciA9IDAsIFJ1bGVTb3VyY2VEYXRhTGlzdCogPSAwLCBib29sID0gZmFs
c2UpOwogICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcGFyc2VSdWxlKFN0eWxlU2hlZXRD
b250ZW50cyosIGNvbnN0IFN0cmluZyYpOwogICAgIFBhc3NSZWZQdHI8U3R5bGVLZXlmcmFtZT4g
cGFyc2VLZXlmcmFtZVJ1bGUoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJik7CiAj
aWYgRU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCkBAIC0zNzgsNiArMzgwLDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBtX2hhc0ZvbnRGYWNlT25seVZhbHVlczsKICAgICBib29sIG1faGFk
U3ludGFjdGljYWxseVZhbGlkQ1NTUnVsZTsKKyAgICBib29sIG1fbG9nRXJyb3JzOwogCiAjaWYg
RU5BQkxFKENTU19TSEFERVJTKQogICAgIGJvb2wgbV9pbkZpbHRlclJ1bGU7CkBAIC00MDcsNiAr
NDEwLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHBvcFJ1
bGVEYXRhKCk7CiAgICAgdm9pZCByZXNldFByb3BlcnR5UmFuZ2UoKSB7IG1fcHJvcGVydHlSYW5n
ZS5zdGFydCA9IG1fcHJvcGVydHlSYW5nZS5lbmQgPSBVSU5UX01BWDsgfQogICAgIGJvb2wgaXNF
eHRyYWN0aW5nU291cmNlRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9jdXJyZW50UnVsZURhdGFT
dGFjazsgfQorICAgIHZvaWQgc3ludGF4RXJyb3IoTG9jYXRpb24pOwogCiAgICAgaW5saW5lIGlu
dCBsZXgodm9pZCogeXlsdmFsKSB7IHJldHVybiAodGhpcy0+Km1fbGV4RnVuYykoeXlsdmFsKTsg
fQogCkBAIC01NjQsNiArNTY4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsK
ICAgICBpbnQgbV90b2tlbjsKICAgICBpbnQgbV9saW5lTnVtYmVyOworICAgIGludCBtX3Rva2Vu
U3RhcnRMaW5lTnVtYmVyOwogICAgIGludCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXI7CiAKICAg
ICBib29sIG1fYWxsb3dJbXBvcnRSdWxlczsKQEAgLTYzMSw2ICs2MzYsOSBAQCBwcml2YXRlOgog
ICAgICAgICBEb05vdFJlbGVhc2VQYXJzZWRDYWxjVmFsdWUKICAgICB9OwogCisgICAgYm9vbCBp
c0xvZ2dpbmdFcnJvcnMoKTsKKyAgICB2b2lkIGxvZ0Vycm9yKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIpOworCiAgICAgYm9vbCB2YWxpZENhbGN1bGF0aW9uVW5pdChDU1NQ
YXJzZXJWYWx1ZSosIFVuaXRzLCBSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlQ29uZGl0aW9uIHJlbGVh
c2VDYWxjID0gRG9Ob3RSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlKTsKIAogICAgIGJvb2wgc2hvdWxk
QWNjZXB0VW5pdExlc3NWYWx1ZXMoQ1NTUGFyc2VyVmFsdWUqLCBVbml0cywgQ1NTUGFyc2VyTW9k
ZSk7CkBAIC02NzQsNiArNjgyLDExIEBAIHByaXZhdGU6CiAgICAgQ1NTUGFyc2VyKiBtX3BhcnNl
cjsKIH07CiAKK3N0cnVjdCBDU1NQYXJzZXI6OkxvY2F0aW9uIHsKKyAgICBpbnQgbGluZU51bWJl
cjsKKyAgICBDU1NQYXJzZXJTdHJpbmcgdG9rZW47Cit9OworCiBTdHJpbmcgcXVvdGVDU1NTdHJp
bmcoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgcXVvdGVDU1NTdHJpbmdJZk5lZWRlZChjb25zdCBT
dHJpbmcmKTsKIFN0cmluZyBxdW90ZUNTU1VSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCAwYWRmYTA0ODVhNDNk
MGFjNjgzMTg3MjUzNzk4ZTViZTdiOWQ4MTRmLi4yYWEzNmNhNWYyYTVlYjNhNmExMDQ5OGYzNjhh
MDJjZmYxNDFlZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNw
cApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZUF1dGhv
clN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAgICAgU3RyaW5n
IHNoZWV0VGV4dCA9IGNhY2hlZFN0eWxlU2hlZXQtPnNoZWV0VGV4dChlbmZvcmNlTUlNRVR5cGUs
ICZoYXNWYWxpZE1JTUVUeXBlKTsKIAogICAgIENTU1BhcnNlciBwKHBhcnNlckNvbnRleHQoKSk7
Ci0gICAgcC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0VGV4dCwgMCk7CisgICAgcC5wYXJzZVNoZWV0
KHRoaXMsIHNoZWV0VGV4dCwgMCwgMCwgdHJ1ZSk7CiAKICAgICAvLyBJZiB3ZSdyZSBsb2FkaW5n
IGEgc3R5bGVzaGVldCBjcm9zcy1vcmlnaW4sIGFuZCB0aGUgTUlNRSB0eXBlIGlzIG5vdCBzdGFu
ZGFyZCwgcmVxdWlyZSB0aGUgQ1NTCiAgICAgLy8gdG8gYXQgbGVhc3Qgc3RhcnQgd2l0aCBhIHN5
bnRhY3RpY2FsbHkgdmFsaWQgQ1NTIHJ1bGUuCkBAIC0zMTAsMTMgKzMxMCwxMyBAQCB2b2lkIFN0
eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0
eWxlU2hlZXQqIGNhY2hlZAogCiBib29sIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VTdHJpbmco
Y29uc3QgU3RyaW5nJiBzaGVldFRleHQpCiB7Ci0gICAgcmV0dXJuIHBhcnNlU3RyaW5nQXRMaW5l
KHNoZWV0VGV4dCwgMCk7CisgICAgcmV0dXJuIHBhcnNlU3RyaW5nQXRMaW5lKHNoZWV0VGV4dCwg
MCwgZmFsc2UpOwogfQogCi1ib29sIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VTdHJpbmdBdExp
bmUoY29uc3QgU3RyaW5nJiBzaGVldFRleHQsIGludCBzdGFydExpbmVOdW1iZXIpCitib29sIFN0
eWxlU2hlZXRDb250ZW50czo6cGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5nJiBzaGVldFRl
eHQsIGludCBzdGFydExpbmVOdW1iZXIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIENT
U1BhcnNlciBwKHBhcnNlckNvbnRleHQoKSk7Ci0gICAgcC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0
VGV4dCwgc3RhcnRMaW5lTnVtYmVyKTsKKyAgICBwLnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0
LCBzdGFydExpbmVOdW1iZXIsIDAsIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAppbmRleCAxZjI5Njhi
NzE3ZTZjMTI4ZmU3NGUzMTkwNzRjZDZmZjc0ZTc1YjZlLi40MGUyZGYzYTkzN2NmN2ZjYTQ1YWZl
YjExMGFlNzY5YmI4YTQzOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFyc2VBdXRob3JTdHls
ZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqLCBjb25zdCBTZWN1cml0eU9yaWdpbiop
OwogICAgIGJvb2wgcGFyc2VTdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCBwYXJzZVN0
cmluZ0F0TGluZShjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyKTsKKyAgICBib29s
IHBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIsIGJv
b2wpOwogCiAgICAgYm9vbCBpc0NhY2hlYWJsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA5YThiNzhlMWE5ODE0NDg4MWQ2OWYwOTNmYjk1MDU2ZmY5NDMwM2Y3Li41YTFm
N2YxYmZhYzdmMTcyMTUzNWVmYmY1YzgxZTJlYWYyMjA1ZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTQ3NzcsNiArNDc3NywxNCBAQCB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdAogICAg
IH0KIH0KIAordm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBL
VVJMJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKQoreworICAgIGlmIChET01XaW5kb3cqIHdp
bmRvdyA9IGRvbVdpbmRvdygpKSB7CisgICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2lu
ZG93LT5jb25zb2xlKCkpCisgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTC5zdHJpbmcoKSwgbGluZU51bWJlcik7CisgICAgfQor
fQorCiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
YWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllcikKIHsKICAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDFhZDYxNTEzNTNiNmFlNDI4ODdjYWU4YTUzMjU3ODM5OWU2NGU2ZjMuLjc4NWU2NWVm
NmY5YTA2YWI5YWVmOGM5MDZjMmU2MDQ2ODUzODBmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMTg5LDYgKzExODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZv
aWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IEtVUkwmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIpOwog
CiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZF
UlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKaW5kZXggZmYyMmZlOWRiODhh
YjlhMjI2ZTAyMDJjZjJiNDQ3NmNmZTAwNWYwZS4uNDg0MGY2YTdhZmI4Mzg5N2EzMWYzYzJlOWFh
M2Y5OWY5NTc4YjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKQEAgLTE3NSw3
ICsxNzUsNyBAQCB2b2lkIFN0eWxlRWxlbWVudDo6Y3JlYXRlU2hlZXQoRWxlbWVudCogZSwgV1RG
OjpPcmRpbmFsTnVtYmVyIHN0YXJ0TGluZU51bWJlciwgYwogICAgICAgICAgICAgbV9zaGVldCA9
IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZShlLCBLVVJMKCksIGRvY3VtZW50LT5pbnB1dEVu
Y29kaW5nKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0TWVkaWFRdWVyaWVzKG1lZGlhUXVl
cmllcy5yZWxlYXNlKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUoZS0+dGl0bGUo
KSk7Ci0gICAgICAgICAgICBtX3NoZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmluZ0F0TGluZSh0
ZXh0LCBzdGFydExpbmVOdW1iZXIuemVyb0Jhc2VkSW50KCkpOworICAgICAgICAgICAgbV9zaGVl
dC0+Y29udGVudHMoKS0+cGFyc2VTdHJpbmdBdExpbmUodGV4dCwgc3RhcnRMaW5lTnVtYmVyLnpl
cm9CYXNlZEludCgpLCBtX2NyZWF0ZWRCeVBhcnNlcik7CiAKICAgICAgICAgICAgIG1fbG9hZGlu
ZyA9IGZhbHNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcAppbmRleCA1NGVkMzE2MDY4MGZmOWYyZjk2ZThmNjVjMTUxY2IyMDJmN2YwZDZi
Li4zNmQ3MmQ3YTMzZGM2YmJlYjBhODcxMzMyODM3ODJhMTljOTUxM2JkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTE0Miw2ICsxNDIsNyBAQCBz
dGF0aWMgVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6OkVudW0g
bWVzc2FnZVNvdXJjZVZhbHVlKE1lcwogICAgIGNhc2UgSlNNZXNzYWdlU291cmNlOiByZXR1cm4g
VHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6OkphdmFzY3JpcHQ7
CiAgICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25z
b2xlOjpDb25zb2xlTWVzc2FnZTo6U291cmNlOjpOZXR3b3JrOwogICAgIGNhc2UgQ29uc29sZUFQ
SU1lc3NhZ2VTb3VyY2U6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3Nh
Z2U6OlNvdXJjZTo6Q29uc29sZV9hcGk7CisgICAgY2FzZSBDU1NNZXNzYWdlU291cmNlOiByZXR1
cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpTb3VyY2U6OkNzczsKICAg
ICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpD
b25zb2xlTWVzc2FnZTo6U291cmNlOjpPdGhlcjsKICAgICB9CiAgICAgcmV0dXJuIFR5cGVCdWls
ZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6U291cmNlOjpPdGhlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBlODdkZjM2MmZhMTYwZjU5MTM2ZWVjY2Vi
NWNhNTY1YTkxMTYyMGY5Li42MGY5MjFhN2QxMTgwYmRmOTgxMmNmZWU1MjdjMTE3NDliNDFhMTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC03NjgsNyArNzY4
LDcgQEAKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UuIiwKICAgICAgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiaHRtbCIsICJ3bWwiLCAieG1sIiwgImphdmFzY3JpcHQi
LCAibmV0d29yayIsICJjb25zb2xlLWFwaSIsICJvdGhlciJdLCAiZGVzY3JpcHRpb24iOiAiTWVz
c2FnZSBzb3VyY2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIs
ICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJodG1sIiwgIndtbCIsICJ4bWwiLCAiamF2YXNj
cmlwdCIsICJuZXR3b3JrIiwgImNvbnNvbGUtYXBpIiwgImNzcyIsICJvdGhlciJdLCAiZGVzY3Jp
cHRpb24iOiAiTWVzc2FnZSBzb3VyY2UuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImxldmVsIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbInRpcCIsICJsb2ciLCAid2Fy
bmluZyIsICJlcnJvciIsICJkZWJ1ZyJdLCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSBzZXZlcml0
eS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHRleHQuIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZW51bSI6IFsibG9nIiwgImRpciIsICJkaXJ4bWwiLCAidGFibGUiLCAidHJhY2UiLCAiY2xl
YXIiLCAic3RhcnRHcm91cCIsICJzdGFydEdyb3VwQ29sbGFwc2VkIiwgImVuZEdyb3VwIiwgImFz
c2VydCIsICJ0aW1pbmciLCAicHJvZmlsZSIsICJwcm9maWxlRW5kIl0sICJkZXNjcmlwdGlvbiI6
ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBm
Mzk4YzI1MmNkNWY2MTJjN2MzNzQ0ZWYwZjhmNjg1ZWJmN2Y5MmU0Li5kOTk5ODJjYjAyOWRlYTUx
OTU4ZjkxMjE3NTY5NmJhNDQ0NjQyOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTE2
OCw2ICsxNjgsOSBAQCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJgogICAgIGVsc2UKICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRl
LCByZXF1ZXN0SWRlbnRpZmllcik7CiAKKyAgICBpZiAoc291cmNlID09IENTU01lc3NhZ2VTb3Vy
Y2UpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghbV9mcmFtZS0+c2V0dGluZ3MoKSB8fCBt
X2ZyYW1lLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmgKaW5kZXggODEwZGExZmI2MGY5YzEx
OTRiYmE1YjBlNWVlNTkzZGFhMGU4NzE4Yi4uZTdkZGU2OGUwYTMwZDc4NGU0OTVkZDc1YThjYTk2
YTUxZWQ3MTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGVUeXBlcy5oCkBAIC0zNCw2ICszNCw3
IEBAIGVudW0gTWVzc2FnZVNvdXJjZSB7CiAgICAgSlNNZXNzYWdlU291cmNlLAogICAgIE5ldHdv
cmtNZXNzYWdlU291cmNlLAogICAgIENvbnNvbGVBUElNZXNzYWdlU291cmNlLAorICAgIENTU01l
c3NhZ2VTb3VyY2UsCiAgICAgT3RoZXJNZXNzYWdlU291cmNlLAogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDAz
ZjRjMWY0ZDg2YWNiYjA2YjgyN2IzMDgwZTQzYzdhMDNlMzZiZDkuLjU4NjEzOGJjZmExYWQzZjRk
NTM5ZWI3YjdhZDdlZGQwOGYzZDUwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk1LDYgKzk1LDcgQEAgTlNTdHJp
bmcgKldlYkNvbnNvbGVNZXNzYWdlWE1MTWVzc2FnZVNvdXJjZSA9IEAiWE1MTWVzc2FnZVNvdXJj
ZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VKU01lc3NhZ2VTb3VyY2UgPSBAIkpTTWVz
c2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VOZXR3b3JrTWVzc2FnZVNv
dXJjZSA9IEAiTmV0d29ya01lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNz
YWdlQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UgPSBAIkNvbnNvbGVBUElNZXNzYWdlU291cmNlIjsK
K05TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUNTU01lc3NhZ2VTb3VyY2UgPSBAIkNTU01lc3Nh
Z2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNl
ID0gQCJPdGhlck1lc3NhZ2VTb3VyY2UiOwogCiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VE
ZWJ1Z01lc3NhZ2VMZXZlbCA9IEAiRGVidWdNZXNzYWdlTGV2ZWwiOwpAQCAtMzM5LDYgKzM0MCw4
IEBAIGlubGluZSBzdGF0aWMgTlNTdHJpbmcgKnN0cmluZ0Zvck1lc3NhZ2VTb3VyY2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UpCiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZU5ldHdvcmtN
ZXNzYWdlU291cmNlOwogICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6CiAgICAgICAg
IHJldHVybiBXZWJDb25zb2xlTWVzc2FnZUNvbnNvbGVBUElNZXNzYWdlU291cmNlOworICAgIGNh
c2UgQ1NTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlQ1NT
TWVzc2FnZVNvdXJjZTsKICAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKICAgICAgICAgcmV0
dXJuIFdlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBjYzAz
NDYzNThhMTEwMGE0ZWRhZDYyODMyOWY3ZmUxM2Y0ODIwZTI2Li45ZWE4YzgwNWFlMTA3OTAxM2Zl
YjdmMzgwNjllNzFlZmMxNGI1MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDksNiArMTA5LDcgQEAgZXh0ZXJuIE5TU3Ry
aW5nICpXZWJDb25zb2xlTWVzc2FnZVhNTE1lc3NhZ2VTb3VyY2U7CiBleHRlcm4gTlNTdHJpbmcg
KldlYkNvbnNvbGVNZXNzYWdlSlNNZXNzYWdlU291cmNlOwogZXh0ZXJuIE5TU3RyaW5nICpXZWJD
b25zb2xlTWVzc2FnZU5ldHdvcmtNZXNzYWdlU291cmNlOwogZXh0ZXJuIE5TU3RyaW5nICpXZWJD
b25zb2xlTWVzc2FnZUNvbnNvbGVBUElNZXNzYWdlU291cmNlOworZXh0ZXJuIE5TU3RyaW5nICpX
ZWJDb25zb2xlTWVzc2FnZUNTU01lc3NhZ2VTb3VyY2U7CiBleHRlcm4gTlNTdHJpbmcgKldlYkNv
bnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlOwogCiAvLyBNZXNzYWdlIExldmVscy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193544</attachid>
            <date>2013-03-18 06:11:43 -0700</date>
            <delta_ts>2013-03-19 11:13:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130318170734.patch</filename>
            <type>text/plain</type>
            <size>11057</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc0NWM2ZTA3NGQwMGYy
YzgyMTkxMDI1YjQ4NWMwZTZiOWQxMDhlZC4uMDJiYTNiMTU5Y2I5NmIwNTg0MDI2OWM1YmY0MDc3
YzdmMTE1ZDA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAzLTE4ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTEzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRpbmcgYSBmcmFtZXdvcmsgZm9yIHBsdW1iaW5nIENTUyB3YXJu
aW5ncyBmcm9tIENTU1BhcnNlci9ncmFtbWFyIHRvIHRoZSBJbnNwZWN0b3IgY29uc29sZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cmVhbExleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN5bnRheEVycm9y
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0xv
Z2dpbmdFcnJvcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpsb2dFcnJvcik6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAoQ1NTUGFyc2VyKToKKyAgICAgICAg
KENTU1BhcnNlcjo6TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29u
dGVudHM6OnBhcnNlQXV0aG9yU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNo
ZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VTdHJpbmdBdExpbmUpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29u
dGVudHMuaDoKKyAgICAgICAgKFN0eWxlU2hlZXRDb250ZW50cyk6CisgICAgICAgICogZG9tL1N0
eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUVsZW1lbnQ6OmNyZWF0ZVNo
ZWV0KToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKwogMjAxMy0wMy0xNiAgU2VyZ2V5IFJ5YXphbm92
ICA8c2VyeWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IENv
bnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3VuZCBvYmplY3QgYW5kIHBh
Z2UgY29uc29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggM2Q4ODE2YWU1MzJlMTIx
NDY0NmRhZjIyMzVmMzM0NDIzY2Y3ZjFjOS4uZWNiYzA2MGNkNDA2NzFhN2YyM2FjZGI5MGZmZTdh
OGUwNGY5M2JjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTY3LDYgKzY3LDcgQEAK
ICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFpci5o
IgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtMzE4LDYg
KzMxOSw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNv
bnRleHQpCiAgICAgLCBtX2ltcGxpY2l0U2hvcnRoYW5kKGZhbHNlKQogICAgICwgbV9oYXNGb250
RmFjZU9ubHlWYWx1ZXMoZmFsc2UpCiAgICAgLCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1
bGUoZmFsc2UpCisgICAgLCBtX2xvZ0Vycm9ycyhmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NIQURF
UlMpCiAgICAgLCBtX2luRmlsdGVyUnVsZShmYWxzZSkKICNlbmRpZgpAQCAtMzMyLDYgKzMzNCw3
IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQp
CiAgICAgLCBtX2xlbmd0aCgwKQogICAgICwgbV90b2tlbigwKQogICAgICwgbV9saW5lTnVtYmVy
KDApCisgICAgLCBtX3Rva2VuU3RhcnRMaW5lTnVtYmVyKDApCiAgICAgLCBtX2xhc3RTZWxlY3Rv
ckxpbmVOdW1iZXIoMCkKICAgICAsIG1fYWxsb3dJbXBvcnRSdWxlcyh0cnVlKQogICAgICwgbV9h
bGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyh0cnVlKQpAQCAtNDUzLDcgKzQ1Niw3IEBAIHZvaWQg
Q1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIHVuc2lnbmVkIHByZWZp
eExlbmd0aCwgY29uc3QgU3RyCiAgICAgbV9sZXhGdW5jID0gJkNTU1BhcnNlcjo6cmVhbExleDxV
Q2hhcj47CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50
cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBSdWxl
U291cmNlRGF0YUxpc3QqIHJ1bGVTb3VyY2VEYXRhUmVzdWx0KQordm9pZCBDU1NQYXJzZXI6OnBh
cnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGludCBzdGFydExpbmVOdW1iZXIsIFJ1bGVTb3VyY2VEYXRhTGlzdCogcnVsZVNvdXJjZURhdGFS
ZXN1bHQsIGJvb2wgbG9nRXJyb3JzKQogewogICAgIHNldFN0eWxlU2hlZXQoc2hlZXQpOwogICAg
IG1fZGVmYXVsdE5hbWVzcGFjZSA9IHN0YXJBdG9tOyAvLyBSZXNldCB0aGUgZGVmYXVsdCBuYW1l
c3BhY2UuCkBAIC00NjEsNiArNDY0LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5
bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludAogICAgICAg
ICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrID0gYWRvcHRQdHIobmV3IFJ1bGVTb3VyY2VEYXRhTGlz
dCgpKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVzdWx0ID0gcnVsZVNvdXJjZURhdGFSZXN1bHQ7
CiAKKyAgICBtX2xvZ0Vycm9ycyA9IGxvZ0Vycm9ycyAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1
bWVudCgpICYmICFzaGVldC0+YmFzZVVSTCgpLmlzRW1wdHkoKSAmJiBzaGVldC0+c2luZ2xlT3du
ZXJEb2N1bWVudCgpLT5wYWdlKCk7CiAgICAgbV9saW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVy
OwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBhcnNlKHRoaXMp
OwpAQCAtNDY4LDYgKzQ3Miw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KFN0eWxlU2hl
ZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQKICAgICBtX2N1cnJl
bnRSdWxlRGF0YVN0YWNrLmNsZWFyKCk7CiAgICAgbV9ydWxlU291cmNlRGF0YVJlc3VsdCA9IDA7
CiAgICAgbV9ydWxlID0gMDsKKyAgICBtX2xvZ0Vycm9ycyA9IGZhbHNlOwogfQogCiBQYXNzUmVm
UHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6cGFyc2VSdWxlKFN0eWxlU2hlZXRDb250ZW50
cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMTA1NDUsNiArMTA1NTAsNyBAQCBp
bnQgQ1NTUGFyc2VyOjpyZWFsTGV4KHZvaWQqIHl5bHZhbFdpdGhvdXRUeXBlKQogcmVzdGFydEFm
dGVyQ29tbWVudDoKICAgICByZXN1bHQgPSBjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5
cGU+KCk7CiAgICAgc2V0VG9rZW5TdGFydChyZXN1bHQpOworICAgIG1fdG9rZW5TdGFydExpbmVO
dW1iZXIgPSBtX2xpbmVOdW1iZXI7CiAgICAgbV90b2tlbiA9ICpjdXJyZW50Q2hhcmFjdGVyPFNy
Y0NoYXJhY3RlclR5cGU+KCk7CiAgICAgKytjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5
cGU+KCk7CiAKQEAgLTExMjEwLDYgKzExMjE2LDI5IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJj
ZURhdGE+IENTU1BhcnNlcjo6cG9wUnVsZURhdGEoKQogICAgIHJldHVybiBkYXRhLnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBDU1NQYXJzZXI6OnN5bnRheEVycm9yKExvY2F0aW9uIGxvY2F0aW9uKQor
eworICAgIGlmICghaXNMb2dnaW5nRXJyb3JzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVbmV4cGVjdGVk
IENTUyB0b2tlbjogIik7CisgICAgaWYgKGxvY2F0aW9uLnRva2VuLmlzOEJpdCgpKQorICAgICAg
ICBidWlsZGVyLmFwcGVuZChsb2NhdGlvbi50b2tlbi5jaGFyYWN0ZXJzOCgpLCBsb2NhdGlvbi50
b2tlbi5sZW5ndGgoKSk7CisgICAgZWxzZQorICAgICAgICBidWlsZGVyLmFwcGVuZChsb2NhdGlv
bi50b2tlbi5jaGFyYWN0ZXJzMTYoKSwgbG9jYXRpb24udG9rZW4ubGVuZ3RoKCkpOworICAgIGxv
Z0Vycm9yKGJ1aWxkZXIudG9TdHJpbmcoKSwgbG9jYXRpb24ubGluZU51bWJlcik7Cit9CisKK2Jv
b2wgQ1NTUGFyc2VyOjppc0xvZ2dpbmdFcnJvcnMoKQoreworICAgIHJldHVybiBtX2xvZ0Vycm9y
czsKK30KKwordm9pZCBDU1NQYXJzZXI6OmxvZ0Vycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIpCit7CisgICAgbV9zdHlsZVNoZWV0LT5zaW5nbGVPd25lckRvY3VtZW50
KCktPnBhZ2UoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKENTU01lc3NhZ2VTb3VyY2UsIFdhcm5p
bmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIG1fc3R5bGVTaGVldC0+YmFzZVVSTCgpLnN0cmluZygp
LCBsaW5lTnVtYmVyICsgMSk7Cit9CisKIFN0eWxlUnVsZUtleWZyYW1lcyogQ1NTUGFyc2VyOjpj
cmVhdGVLZXlmcmFtZXNSdWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxWZWN0b3I8
UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4gPiBwb3BLZXlmcmFtZXMpCiB7CiAgICAgT3duUHRyPFZl
Y3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IGtleWZyYW1lcyA9IHBvcEtleWZyYW1lczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA4NDMwMzgxMGI5OWIwOWU0OWQwOTExMTc4MDZiYTk3
MjU5YjlhOThmLi5kODAyZDQxYWFkZDBmNDdjZGQ3MzZhMjQxYWY3ZDMyM2ZjNWVkNThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCkBAIC03NSwxMSArNzUsMTMgQEAgY2xhc3MgQ1NTUGFyc2VyIHsK
ICAgICBmcmllbmQgaW5saW5lIGludCBjc3N5eWxleCh2b2lkKiwgQ1NTUGFyc2VyKik7CiAKIHB1
YmxpYzoKKyAgICBzdHJ1Y3QgTG9jYXRpb247CisKICAgICBDU1NQYXJzZXIoY29uc3QgQ1NTUGFy
c2VyQ29udGV4dCYpOwogCiAgICAgfkNTU1BhcnNlcigpOwogCi0gICAgdm9pZCBwYXJzZVNoZWV0
KFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIg
PSAwLCBSdWxlU291cmNlRGF0YUxpc3QqID0gMCk7CisgICAgdm9pZCBwYXJzZVNoZWV0KFN0eWxl
U2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBS
dWxlU291cmNlRGF0YUxpc3QqID0gMCwgYm9vbCA9IGZhbHNlKTsKICAgICBQYXNzUmVmUHRyPFN0
eWxlUnVsZUJhc2U+IHBhcnNlUnVsZShTdHlsZVNoZWV0Q29udGVudHMqLCBjb25zdCBTdHJpbmcm
KTsKICAgICBQYXNzUmVmUHRyPFN0eWxlS2V5ZnJhbWU+IHBhcnNlS2V5ZnJhbWVSdWxlKFN0eWxl
U2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShDU1MzX0NPTkRJVElP
TkFMX1JVTEVTKQpAQCAtMzg2LDYgKzM4OCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9oYXNG
b250RmFjZU9ubHlWYWx1ZXM7CiAgICAgYm9vbCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1
bGU7CisgICAgYm9vbCBtX2xvZ0Vycm9yczsKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAg
ICBib29sIG1faW5GaWx0ZXJSdWxlOwpAQCAtNDE1LDYgKzQxOCw3IEBAIHB1YmxpYzoKICAgICBQ
YXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBwb3BSdWxlRGF0YSgpOwogICAgIHZvaWQgcmVz
ZXRQcm9wZXJ0eVJhbmdlKCkgeyBtX3Byb3BlcnR5UmFuZ2Uuc3RhcnQgPSBtX3Byb3BlcnR5UmFu
Z2UuZW5kID0gVUlOVF9NQVg7IH0KICAgICBib29sIGlzRXh0cmFjdGluZ1NvdXJjZURhdGEoKSBj
b25zdCB7IHJldHVybiAhIW1fY3VycmVudFJ1bGVEYXRhU3RhY2s7IH0KKyAgICB2b2lkIHN5bnRh
eEVycm9yKExvY2F0aW9uKTsKIAogICAgIGlubGluZSBpbnQgbGV4KHZvaWQqIHl5bHZhbCkgeyBy
ZXR1cm4gKHRoaXMtPiptX2xleEZ1bmMpKHl5bHZhbCk7IH0KIApAQCAtNTcyLDYgKzU3Niw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgaW50IG1fdG9rZW47CiAgICAg
aW50IG1fbGluZU51bWJlcjsKKyAgICBpbnQgbV90b2tlblN0YXJ0TGluZU51bWJlcjsKICAgICBp
bnQgbV9sYXN0U2VsZWN0b3JMaW5lTnVtYmVyOwogCiAgICAgYm9vbCBtX2FsbG93SW1wb3J0UnVs
ZXM7CkBAIC02MzksNiArNjQ0LDkgQEAgcHJpdmF0ZToKICAgICAgICAgRG9Ob3RSZWxlYXNlUGFy
c2VkQ2FsY1ZhbHVlCiAgICAgfTsKIAorICAgIGJvb2wgaXNMb2dnaW5nRXJyb3JzKCk7CisgICAg
dm9pZCBsb2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyKTsKKwog
ICAgIGJvb2wgdmFsaWRDYWxjdWxhdGlvblVuaXQoQ1NTUGFyc2VyVmFsdWUqLCBVbml0cywgUmVs
ZWFzZVBhcnNlZENhbGNWYWx1ZUNvbmRpdGlvbiByZWxlYXNlQ2FsYyA9IERvTm90UmVsZWFzZVBh
cnNlZENhbGNWYWx1ZSk7CiAKICAgICBib29sIHNob3VsZEFjY2VwdFVuaXRMZXNzVmFsdWVzKENT
U1BhcnNlclZhbHVlKiwgVW5pdHMsIENTU1BhcnNlck1vZGUpOwpAQCAtNjgyLDYgKzY5MCwxMSBA
QCBwcml2YXRlOgogICAgIENTU1BhcnNlciogbV9wYXJzZXI7CiB9OwogCitzdHJ1Y3QgQ1NTUGFy
c2VyOjpMb2NhdGlvbiB7CisgICAgaW50IGxpbmVOdW1iZXI7CisgICAgQ1NTUGFyc2VyU3RyaW5n
IHRva2VuOworfTsKKwogU3RyaW5nIHF1b3RlQ1NTU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogU3Ry
aW5nIHF1b3RlQ1NTU3RyaW5nSWZOZWVkZWQoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgcXVvdGVD
U1NVUkxJZk5lZWRlZChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXRDb250ZW50cy5jcHAKaW5kZXggMGFkZmEwNDg1YTQzZDBhYzY4MzE4NzI1Mzc5OGU1YmU3Yjlk
ODE0Zi4uMmFhMzZjYTVmMmE1ZWIzYTZhMTA0OThmMzY4YTAyY2ZmMTQxZWZmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCB2
b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hl
ZENTU1N0eWxlU2hlZXQqIGNhY2hlZAogICAgIFN0cmluZyBzaGVldFRleHQgPSBjYWNoZWRTdHls
ZVNoZWV0LT5zaGVldFRleHQoZW5mb3JjZU1JTUVUeXBlLCAmaGFzVmFsaWRNSU1FVHlwZSk7CiAK
ICAgICBDU1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkpOwotICAgIHAucGFyc2VTaGVldCh0aGlz
LCBzaGVldFRleHQsIDApOworICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIDAsIDAs
IHRydWUpOwogCiAgICAgLy8gSWYgd2UncmUgbG9hZGluZyBhIHN0eWxlc2hlZXQgY3Jvc3Mtb3Jp
Z2luLCBhbmQgdGhlIE1JTUUgdHlwZSBpcyBub3Qgc3RhbmRhcmQsIHJlcXVpcmUgdGhlIENTUwog
ICAgIC8vIHRvIGF0IGxlYXN0IHN0YXJ0IHdpdGggYSBzeW50YWN0aWNhbGx5IHZhbGlkIENTUyBy
dWxlLgpAQCAtMzEwLDEzICszMTAsMTMgQEAgdm9pZCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNl
QXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWQKIAogYm9v
bCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0
KQogewotICAgIHJldHVybiBwYXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDApOworICAgIHJl
dHVybiBwYXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDAsIGZhbHNlKTsKIH0KIAotYm9vbCBT
dHlsZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRU
ZXh0LCBpbnQgc3RhcnRMaW5lTnVtYmVyKQorYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNl
U3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBpbnQgc3RhcnRMaW5lTnVtYmVy
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBDU1NQYXJzZXIgcChwYXJzZXJDb250ZXh0
KCkpOwotICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIHN0YXJ0TGluZU51bWJlcik7
CisgICAgcC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0VGV4dCwgc3RhcnRMaW5lTnVtYmVyLCAwLCBj
cmVhdGVkQnlQYXJzZXIpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVTaGVldENvbnRlbnRzLmgKaW5kZXggMWYyOTY4YjcxN2U2YzEyOGZlNzRlMzE5MDc0Y2Q2
ZmY3NGU3NWI2ZS4uNDBlMmRmM2E5MzdjZjdmY2E0NWFmZWIxMTBhZTc2OWJiOGE0MzhkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtNjIsNyArNjIsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NT
dHlsZVNoZWV0KiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKICAgICBib29sIHBhcnNlU3RyaW5n
KGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5n
JiwgaW50IHN0YXJ0TGluZU51bWJlcik7CisgICAgYm9vbCBwYXJzZVN0cmluZ0F0TGluZShjb25z
dCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBib29sKTsKIAogICAgIGJvb2wgaXNDYWNo
ZWFibGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAppbmRleCBmZjIy
ZmU5ZGI4OGFiOWEyMjZlMDIwMmNmMmI0NDc2Y2ZlMDA1ZjBlLi40ODQwZjZhN2FmYjgzODk3YTMx
ZjNjMmU5YWEzZjk5Zjk1NzhiODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5
bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcApA
QCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgU3R5bGVFbGVtZW50OjpjcmVhdGVTaGVldChFbGVtZW50
KiBlLCBXVEY6Ok9yZGluYWxOdW1iZXIgc3RhcnRMaW5lTnVtYmVyLCBjCiAgICAgICAgICAgICBt
X3NoZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5lKGUsIEtVUkwoKSwgZG9jdW1lbnQt
PmlucHV0RW5jb2RpbmcoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRNZWRpYVF1ZXJpZXMo
bWVkaWFRdWVyaWVzLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRUaXRsZShl
LT50aXRsZSgpKTsKLSAgICAgICAgICAgIG1fc2hlZXQtPmNvbnRlbnRzKCktPnBhcnNlU3RyaW5n
QXRMaW5lKHRleHQsIHN0YXJ0TGluZU51bWJlci56ZXJvQmFzZWRJbnQoKSk7CisgICAgICAgICAg
ICBtX3NoZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmluZ0F0TGluZSh0ZXh0LCBzdGFydExpbmVO
dW1iZXIuemVyb0Jhc2VkSW50KCksIG1fY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgICAgICAgICAg
bV9sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5j
cHAKaW5kZXggMzkwZWFhMWM5YTIzNGM0MDE2MWI0ZjI0M2U5ZjgzMjkzYTZlZWQ1YS4uN2VhNDYx
NDI5ZTFjOWYwZDg1NmUwNTk4N2EwYjFmMjVlNjZlZDdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZS5jcHAKQEAgLTE2OSw2ICsxNjksOSBAQCB2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cgog
ICAgIGVsc2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9D
b25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmws
IGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAKKyAgICBpZiAoc291cmNl
ID09IENTU01lc3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChwYWdlLT5z
ZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193871</attachid>
            <date>2013-03-19 11:13:11 -0700</date>
            <delta_ts>2013-03-20 08:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130319220901.patch</filename>
            <type>text/plain</type>
            <size>10305</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4ZTUwMzRlMjBmNGEx
OGVkMzNjZDFiYjFiMWVmYTAxNTI0MWMyMS4uOTg3N2E1NmYzNzY5MThiMTNmYTQ1OGE5ZDljOTky
ZTA0YjZlY2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAzLTE4ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTEzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRpbmcgYSBmcmFtZXdvcmsgZm9yIHBsdW1iaW5nIENTUyB3YXJu
aW5ncyBmcm9tIENTU1BhcnNlci9ncmFtbWFyIHRvIHRoZSBJbnNwZWN0b3IgY29uc29sZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cmVhbExleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN5bnRheEVycm9y
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0xv
Z2dpbmdFcnJvcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpsb2dFcnJvcik6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAoQ1NTUGFyc2VyKToKKyAgICAgICAg
KENTU1BhcnNlcjo6TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29u
dGVudHM6OnBhcnNlQXV0aG9yU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNo
ZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VTdHJpbmdBdExpbmUpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29u
dGVudHMuaDoKKyAgICAgICAgKFN0eWxlU2hlZXRDb250ZW50cyk6CisgICAgICAgICogZG9tL1N0
eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUVsZW1lbnQ6OmNyZWF0ZVNo
ZWV0KToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKwogMjAxMy0wMy0xNiAgU2VyZ2V5IFJ5YXphbm92
ICA8c2VyeWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IENv
bnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3VuZCBvYmplY3QgYW5kIHBh
Z2UgY29uc29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTAyMzUzOTAzMmZkNjEx
NjE0NjZiMDliNzExNTI1MjFiYjhlMGQ4Ni4uYmZkZDY2ZDVhNmU2ZDViZGI1N2NjMWI4ZTE2ZDJh
N2VmOTA0MWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTY3LDYgKzY3LDcgQEAK
ICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFpci5o
IgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtMzE4LDYg
KzMxOSw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNv
bnRleHQpCiAgICAgLCBtX2ltcGxpY2l0U2hvcnRoYW5kKGZhbHNlKQogICAgICwgbV9oYXNGb250
RmFjZU9ubHlWYWx1ZXMoZmFsc2UpCiAgICAgLCBtX2hhZFN5bnRhY3RpY2FsbHlWYWxpZENTU1J1
bGUoZmFsc2UpCisgICAgLCBtX2xvZ0Vycm9ycyhmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NIQURF
UlMpCiAgICAgLCBtX2luRmlsdGVyUnVsZShmYWxzZSkKICNlbmRpZgpAQCAtNDUzLDcgKzQ1NSw3
IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIHVuc2ln
bmVkIHByZWZpeExlbmd0aCwgY29uc3QgU3RyCiAgICAgbV9sZXhGdW5jID0gJkNTU1BhcnNlcjo6
cmVhbExleDxVQ2hhcj47CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KFN0eWxlU2hl
ZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVt
YmVyLCBSdWxlU291cmNlRGF0YUxpc3QqIHJ1bGVTb3VyY2VEYXRhUmVzdWx0KQordm9pZCBDU1NQ
YXJzZXI6OnBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFJ1bGVTb3VyY2VEYXRhTGlzdCogcnVsZVNv
dXJjZURhdGFSZXN1bHQsIGJvb2wgbG9nRXJyb3JzKQogewogICAgIHNldFN0eWxlU2hlZXQoc2hl
ZXQpOwogICAgIG1fZGVmYXVsdE5hbWVzcGFjZSA9IHN0YXJBdG9tOyAvLyBSZXNldCB0aGUgZGVm
YXVsdCBuYW1lc3BhY2UuCkBAIC00NjEsNiArNDYzLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNl
U2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGlu
dAogICAgICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrID0gYWRvcHRQdHIobmV3IFJ1bGVTb3Vy
Y2VEYXRhTGlzdCgpKTsKICAgICBtX3J1bGVTb3VyY2VEYXRhUmVzdWx0ID0gcnVsZVNvdXJjZURh
dGFSZXN1bHQ7CiAKKyAgICBtX2xvZ0Vycm9ycyA9IGxvZ0Vycm9ycyAmJiBzaGVldC0+c2luZ2xl
T3duZXJEb2N1bWVudCgpICYmICFzaGVldC0+YmFzZVVSTCgpLmlzRW1wdHkoKSAmJiBzaGVldC0+
c2luZ2xlT3duZXJEb2N1bWVudCgpLT5wYWdlKCk7CiAgICAgbV9saW5lTnVtYmVyID0gc3RhcnRM
aW5lTnVtYmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBh
cnNlKHRoaXMpOwpAQCAtNDY4LDYgKzQ3MSw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0
KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQKICAg
ICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLmNsZWFyKCk7CiAgICAgbV9ydWxlU291cmNlRGF0YVJl
c3VsdCA9IDA7CiAgICAgbV9ydWxlID0gMDsKKyAgICBtX2xvZ0Vycm9ycyA9IGZhbHNlOwogfQog
CiBQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6cGFyc2VSdWxlKFN0eWxlU2hl
ZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMTEyMTAsNiArMTEy
MTQsMzAgQEAgUGFzc1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gQ1NTUGFyc2VyOjpwb3BSdWxl
RGF0YSgpCiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwogfQogCit2b2lkIENTU1BhcnNlcjo6
c3ludGF4RXJyb3IoTG9jYXRpb24gbG9jYXRpb24pCit7CisgICAgaWYgKCFpc0xvZ2dpbmdFcnJv
cnMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuZXhwZWN0ZWQgQ1NTIHRva2VuOiAiKTsKKyAgICBpZiAo
bG9jYXRpb24udG9rZW4uaXM4Qml0KCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvY2F0aW9u
LnRva2VuLmNoYXJhY3RlcnM4KCksIGxvY2F0aW9uLnRva2VuLmxlbmd0aCgpKTsKKyAgICBlbHNl
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvY2F0aW9uLnRva2VuLmNoYXJhY3RlcnMxNigpLCBs
b2NhdGlvbi50b2tlbi5sZW5ndGgoKSk7CisgICAgbG9nRXJyb3IoYnVpbGRlci50b1N0cmluZygp
LCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKK30KKworYm9vbCBDU1NQYXJzZXI6OmlzTG9nZ2luZ0Vy
cm9ycygpCit7CisgICAgcmV0dXJuIG1fbG9nRXJyb3JzOworfQorCit2b2lkIENTU1BhcnNlcjo6
bG9nRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlcikKK3sKKyAgICBQ
YWdlQ29uc29sZSogY29uc29sZSA9IG1fc3R5bGVTaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgp
LT5wYWdlKCktPmNvbnNvbGUoKTsKKyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKENTU01lc3NhZ2VT
b3VyY2UsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIG1fc3R5bGVTaGVldC0+YmFzZVVS
TCgpLnN0cmluZygpLCBsaW5lTnVtYmVyICsgMSk7Cit9CisKIFN0eWxlUnVsZUtleWZyYW1lcyog
Q1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZXNSdWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093
blB0cjxWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4gPiBwb3BLZXlmcmFtZXMpCiB7CiAg
ICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IGtleWZyYW1lcyA9IHBv
cEtleWZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA4NDMwMzgxMGI5OWIwOWU0OWQw
OTExMTc4MDZiYTk3MjU5YjlhOThmLi4zM2M4NjRiNzI5NDhlZjkxNDQyZjdkNDZhZTYxYzhiMjQ5
ZGRkZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC03NSwxMSArNzUsMTMgQEAgY2xhc3Mg
Q1NTUGFyc2VyIHsKICAgICBmcmllbmQgaW5saW5lIGludCBjc3N5eWxleCh2b2lkKiwgQ1NTUGFy
c2VyKik7CiAKIHB1YmxpYzoKKyAgICBzdHJ1Y3QgTG9jYXRpb247CisKICAgICBDU1NQYXJzZXIo
Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwogCiAgICAgfkNTU1BhcnNlcigpOwogCi0gICAgdm9p
ZCBwYXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFy
dExpbmVOdW1iZXIgPSAwLCBSdWxlU291cmNlRGF0YUxpc3QqID0gMCk7CisgICAgdm9pZCBwYXJz
ZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVO
dW1iZXIgPSAwLCBSdWxlU291cmNlRGF0YUxpc3QqID0gMCwgYm9vbCA9IGZhbHNlKTsKICAgICBQ
YXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHBhcnNlUnVsZShTdHlsZVNoZWV0Q29udGVudHMqLCBj
b25zdCBTdHJpbmcmKTsKICAgICBQYXNzUmVmUHRyPFN0eWxlS2V5ZnJhbWU+IHBhcnNlS2V5ZnJh
bWVSdWxlKFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShD
U1MzX0NPTkRJVElPTkFMX1JVTEVTKQpAQCAtMzg2LDYgKzM4OCw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXM7CiAgICAgYm9vbCBtX2hhZFN5bnRhY3RpY2Fs
bHlWYWxpZENTU1J1bGU7CisgICAgYm9vbCBtX2xvZ0Vycm9yczsKIAogI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKICAgICBib29sIG1faW5GaWx0ZXJSdWxlOwpAQCAtNDE1LDYgKzQxOCw3IEBAIHB1
YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBwb3BSdWxlRGF0YSgpOwog
ICAgIHZvaWQgcmVzZXRQcm9wZXJ0eVJhbmdlKCkgeyBtX3Byb3BlcnR5UmFuZ2Uuc3RhcnQgPSBt
X3Byb3BlcnR5UmFuZ2UuZW5kID0gVUlOVF9NQVg7IH0KICAgICBib29sIGlzRXh0cmFjdGluZ1Nv
dXJjZURhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fY3VycmVudFJ1bGVEYXRhU3RhY2s7IH0KKyAg
ICB2b2lkIHN5bnRheEVycm9yKExvY2F0aW9uKTsKIAogICAgIGlubGluZSBpbnQgbGV4KHZvaWQq
IHl5bHZhbCkgeyByZXR1cm4gKHRoaXMtPiptX2xleEZ1bmMpKHl5bHZhbCk7IH0KIApAQCAtNjM5
LDYgKzY0Myw5IEBAIHByaXZhdGU6CiAgICAgICAgIERvTm90UmVsZWFzZVBhcnNlZENhbGNWYWx1
ZQogICAgIH07CiAKKyAgICBib29sIGlzTG9nZ2luZ0Vycm9ycygpOworICAgIHZvaWQgbG9nRXJy
b3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlcik7CisKICAgICBib29sIHZh
bGlkQ2FsY3VsYXRpb25Vbml0KENTU1BhcnNlclZhbHVlKiwgVW5pdHMsIFJlbGVhc2VQYXJzZWRD
YWxjVmFsdWVDb25kaXRpb24gcmVsZWFzZUNhbGMgPSBEb05vdFJlbGVhc2VQYXJzZWRDYWxjVmFs
dWUpOwogCiAgICAgYm9vbCBzaG91bGRBY2NlcHRVbml0TGVzc1ZhbHVlcyhDU1NQYXJzZXJWYWx1
ZSosIFVuaXRzLCBDU1NQYXJzZXJNb2RlKTsKQEAgLTY4Miw2ICs2ODksMTEgQEAgcHJpdmF0ZToK
ICAgICBDU1NQYXJzZXIqIG1fcGFyc2VyOwogfTsKIAorc3RydWN0IENTU1BhcnNlcjo6TG9jYXRp
b24geworICAgIGludCBsaW5lTnVtYmVyOworICAgIENTU1BhcnNlclN0cmluZyB0b2tlbjsKK307
CisKIFN0cmluZyBxdW90ZUNTU1N0cmluZyhjb25zdCBTdHJpbmcmKTsKIFN0cmluZyBxdW90ZUNT
U1N0cmluZ0lmTmVlZGVkKGNvbnN0IFN0cmluZyYpOwogU3RyaW5nIHF1b3RlQ1NTVVJMSWZOZWVk
ZWQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMu
Y3BwCmluZGV4IDBhZGZhMDQ4NWE0M2QwYWM2ODMxODcyNTM3OThlNWJlN2I5ZDgxNGYuLjJhYTM2
Y2E1ZjJhNWViM2E2YTEwNDk4ZjM2OGEwMmNmZjE0MWVmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBTdHlsZVNo
ZWV0Q29udGVudHM6OnBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHlsZVNo
ZWV0KiBjYWNoZWQKICAgICBTdHJpbmcgc2hlZXRUZXh0ID0gY2FjaGVkU3R5bGVTaGVldC0+c2hl
ZXRUZXh0KGVuZm9yY2VNSU1FVHlwZSwgJmhhc1ZhbGlkTUlNRVR5cGUpOwogCiAgICAgQ1NTUGFy
c2VyIHAocGFyc2VyQ29udGV4dCgpKTsKLSAgICBwLnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0
LCAwKTsKKyAgICBwLnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0LCAwLCAwLCB0cnVlKTsKIAog
ICAgIC8vIElmIHdlJ3JlIGxvYWRpbmcgYSBzdHlsZXNoZWV0IGNyb3NzLW9yaWdpbiwgYW5kIHRo
ZSBNSU1FIHR5cGUgaXMgbm90IHN0YW5kYXJkLCByZXF1aXJlIHRoZSBDU1MKICAgICAvLyB0byBh
dCBsZWFzdCBzdGFydCB3aXRoIGEgc3ludGFjdGljYWxseSB2YWxpZCBDU1MgcnVsZS4KQEAgLTMx
MCwxMyArMzEwLDEzIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZUF1dGhvclN0eWxl
U2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAKIGJvb2wgU3R5bGVTaGVl
dENvbnRlbnRzOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCkKIHsKLSAgICBy
ZXR1cm4gcGFyc2VTdHJpbmdBdExpbmUoc2hlZXRUZXh0LCAwKTsKKyAgICByZXR1cm4gcGFyc2VT
dHJpbmdBdExpbmUoc2hlZXRUZXh0LCAwLCBmYWxzZSk7CiB9CiAKLWJvb2wgU3R5bGVTaGVldENv
bnRlbnRzOjpwYXJzZVN0cmluZ0F0TGluZShjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCwgaW50IHN0
YXJ0TGluZU51bWJlcikKK2Jvb2wgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZVN0cmluZ0F0TGlu
ZShjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCwgaW50IHN0YXJ0TGluZU51bWJlciwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCiB7CiAgICAgQ1NTUGFyc2VyIHAocGFyc2VyQ29udGV4dCgpKTsKLSAgICBw
LnBhcnNlU2hlZXQodGhpcywgc2hlZXRUZXh0LCBzdGFydExpbmVOdW1iZXIpOworICAgIHAucGFy
c2VTaGVldCh0aGlzLCBzaGVldFRleHQsIHN0YXJ0TGluZU51bWJlciwgMCwgY3JlYXRlZEJ5UGFy
c2VyKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5oCmluZGV4IDFmMjk2OGI3MTdlNmMxMjhmZTc0ZTMxOTA3NGNkNmZmNzRlNzViNmUu
LjQwZTJkZjNhOTM3Y2Y3ZmNhNDVhZmViMTEwYWU3NjliYjhhNDM4ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwYXJzZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCos
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAgICAgYm9vbCBwYXJzZVN0cmluZyhjb25zdCBTdHJp
bmcmKTsKLSAgICBib29sIHBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYsIGludCBzdGFy
dExpbmVOdW1iZXIpOworICAgIGJvb2wgcGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5nJiwg
aW50IHN0YXJ0TGluZU51bWJlciwgYm9vbCk7CiAKICAgICBib29sIGlzQ2FjaGVhYmxlKCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKaW5kZXggZmYyMmZlOWRiODhhYjlh
MjI2ZTAyMDJjZjJiNDQ3NmNmZTAwNWYwZS4uNDg0MGY2YTdhZmI4Mzg5N2EzMWYzYzJlOWFhM2Y5
OWY5NTc4YjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKQEAgLTE3NSw3ICsx
NzUsNyBAQCB2b2lkIFN0eWxlRWxlbWVudDo6Y3JlYXRlU2hlZXQoRWxlbWVudCogZSwgV1RGOjpP
cmRpbmFsTnVtYmVyIHN0YXJ0TGluZU51bWJlciwgYwogICAgICAgICAgICAgbV9zaGVldCA9IENT
U1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZShlLCBLVVJMKCksIGRvY3VtZW50LT5pbnB1dEVuY29k
aW5nKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0TWVkaWFRdWVyaWVzKG1lZGlhUXVlcmll
cy5yZWxlYXNlKCkpOwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUoZS0+dGl0bGUoKSk7
Ci0gICAgICAgICAgICBtX3NoZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmluZ0F0TGluZSh0ZXh0
LCBzdGFydExpbmVOdW1iZXIuemVyb0Jhc2VkSW50KCkpOworICAgICAgICAgICAgbV9zaGVldC0+
Y29udGVudHMoKS0+cGFyc2VTdHJpbmdBdExpbmUodGV4dCwgc3RhcnRMaW5lTnVtYmVyLnplcm9C
YXNlZEludCgpLCBtX2NyZWF0ZWRCeVBhcnNlcik7CiAKICAgICAgICAgICAgIG1fbG9hZGluZyA9
IGZhbHNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwCmluZGV4IDM5
MGVhYTFjOWEyMzRjNDAxNjFiNGYyNDNlOWY4MzI5M2E2ZWVkNWEuLjdlYTQ2MTQyOWUxYzlmMGQ4
NTZlMDU5ODdhMGIxZjI1ZTY2ZWQ3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3Bw
CkBAIC0xNjksNiArMTY5LDkgQEAgdm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHIKICAgICBlbHNlCiAg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdl
LCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVy
LCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogCisgICAgaWYgKHNvdXJjZSA9PSBDU1NNZXNz
YWdlU291cmNlKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAocGFnZS0+c2V0dGluZ3MoKS0+
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194068</attachid>
            <date>2013-03-20 08:44:08 -0700</date>
            <delta_ts>2013-03-20 12:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111334-20130320193957.patch</filename>
            <type>text/plain</type>
            <size>10199</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJmMTk5OGM4MDI2NWU1
MzdhNmU0MDY0ZTExODQ4MGM2ODk3MDcyMC4uYmYzM2U0MDMwYzhlMjhkMDBmNjdhNDQ2ZWJiNzY2
ZDJkYjVmYTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTIwICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUGx1bWJpbmcgQ1NTIHdhcm5pbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTEzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRpbmcgYSBmcmFtZXdvcmsgZm9yIHBsdW1iaW5nIENTUyB3YXJu
aW5ncyBmcm9tIENTU1BhcnNlci9ncmFtbWFyIHRvIHRoZSBJbnNwZWN0b3IgY29uc29sZS4KKwor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNoZWV0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3ludGF4RXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmlzTG9nZ2luZ0Vycm9ycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmg6CisgICAgICAgIChDU1NQYXJzZXIpOgorICAgICAgICAoQ1NTUGFyc2VyOjpMb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRo
b3JTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6cGFy
c2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZVN0
cmluZ0F0TGluZSk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oOgorICAgICAg
ICAoU3R5bGVTaGVldENvbnRlbnRzKToKKyAgICAgICAgKiBkb20vU3R5bGVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRWxlbWVudDo6Y3JlYXRlU2hlZXQpOgorICAgICAgICAq
IHBhZ2UvUGFnZUNvbnNvbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmFk
ZE1lc3NhZ2UpOgorCiAyMDEzLTAzLTIwICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggU291cmNlRnJhbWUuanMg
Y29tcGlsYXRpb24gd2FybmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwYWFkMjU1
MDA5MzA3YWMyODc5MmExZTAzOTVmNWQwM2YyNTAxNzM0Li4zNjk3NjMyZDMzYmUwNjk3MmJkNDA2
MDJlZjE3YTQ4ZTkxZjBhYTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjcsNiAr
NjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWlyLmgiCiAjaW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBA
IC0zMTgsNiArMzE5LDcgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCYgY29udGV4dCkKICAgICAsIG1faW1wbGljaXRTaG9ydGhhbmQoZmFsc2UpCiAgICAgLCBt
X2hhc0ZvbnRGYWNlT25seVZhbHVlcyhmYWxzZSkKICAgICAsIG1faGFkU3ludGFjdGljYWxseVZh
bGlkQ1NTUnVsZShmYWxzZSkKKyAgICAsIG1fbG9nRXJyb3JzKGZhbHNlKQogI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKICAgICAsIG1faW5GaWx0ZXJSdWxlKGZhbHNlKQogI2VuZGlmCkBAIC00NTMs
NyArNDU1LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnNldHVwUGFyc2VyKGNvbnN0IGNoYXIqIHByZWZp
eCwgdW5zaWduZWQgcHJlZml4TGVuZ3RoLCBjb25zdCBTdHIKICAgICBtX2xleEZ1bmMgPSAmQ1NT
UGFyc2VyOjpyZWFsTGV4PFVDaGFyPjsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQo
U3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFy
dExpbmVOdW1iZXIsIFJ1bGVTb3VyY2VEYXRhTGlzdCogcnVsZVNvdXJjZURhdGFSZXN1bHQpCit2
b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0LCBjb25z
dCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgUnVsZVNvdXJjZURhdGFMaXN0
KiBydWxlU291cmNlRGF0YVJlc3VsdCwgYm9vbCBsb2dFcnJvcnMpCiB7CiAgICAgc2V0U3R5bGVT
aGVldChzaGVldCk7CiAgICAgbV9kZWZhdWx0TmFtZXNwYWNlID0gc3RhckF0b207IC8vIFJlc2V0
IHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4KQEAgLTQ2MSw2ICs0NjMsNyBAQCB2b2lkIENTU1BhcnNl
cjo6cGFyc2VTaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0LCBjb25zdCBTdHJpbmcmIHN0
cmluZywgaW50CiAgICAgICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2sgPSBhZG9wdFB0cihuZXcg
UnVsZVNvdXJjZURhdGFMaXN0KCkpOwogICAgIG1fcnVsZVNvdXJjZURhdGFSZXN1bHQgPSBydWxl
U291cmNlRGF0YVJlc3VsdDsKIAorICAgIG1fbG9nRXJyb3JzID0gbG9nRXJyb3JzICYmIHNoZWV0
LT5zaW5nbGVPd25lckRvY3VtZW50KCkgJiYgIXNoZWV0LT5iYXNlVVJMKCkuaXNFbXB0eSgpICYm
IHNoZWV0LT5zaW5nbGVPd25lckRvY3VtZW50KCktPnBhZ2UoKTsKICAgICBtX2xpbmVOdW1iZXIg
PSBzdGFydExpbmVOdW1iZXI7CiAgICAgc2V0dXBQYXJzZXIoIiIsIHN0cmluZywgIiIpOwogICAg
IGNzc3l5cGFyc2UodGhpcyk7CkBAIC00NjgsNiArNDcxLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBh
cnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGludAogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2suY2xlYXIoKTsKICAgICBtX3J1bGVTb3Vy
Y2VEYXRhUmVzdWx0ID0gMDsKICAgICBtX3J1bGUgPSAwOworICAgIG1fbG9nRXJyb3JzID0gZmFs
c2U7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFyc2VyOjpwYXJzZVJ1bGUo
U3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0xMTIx
MCw2ICsxMTIxNCwzMCBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBDU1NQYXJzZXI6
OnBvcFJ1bGVEYXRhKCkKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgQ1NT
UGFyc2VyOjpzeW50YXhFcnJvcihMb2NhdGlvbiBsb2NhdGlvbikKK3sKKyAgICBpZiAoIWlzTG9n
Z2luZ0Vycm9ycygpKQorICAgICAgICByZXR1cm47CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVW5leHBlY3RlZCBDU1MgdG9rZW46ICIpOwor
ICAgIGlmIChsb2NhdGlvbi50b2tlbi5pczhCaXQoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
bG9jYXRpb24udG9rZW4uY2hhcmFjdGVyczgoKSwgbG9jYXRpb24udG9rZW4ubGVuZ3RoKCkpOwor
ICAgIGVsc2UKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobG9jYXRpb24udG9rZW4uY2hhcmFjdGVy
czE2KCksIGxvY2F0aW9uLnRva2VuLmxlbmd0aCgpKTsKKyAgICBsb2dFcnJvcihidWlsZGVyLnRv
U3RyaW5nKCksIGxvY2F0aW9uLmxpbmVOdW1iZXIpOworfQorCitib29sIENTU1BhcnNlcjo6aXNM
b2dnaW5nRXJyb3JzKCkKK3sKKyAgICByZXR1cm4gbV9sb2dFcnJvcnM7Cit9CisKK3ZvaWQgQ1NT
UGFyc2VyOjpsb2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyKQor
eworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gbV9zdHlsZVNoZWV0LT5zaW5nbGVPd25lckRv
Y3VtZW50KCktPnBhZ2UoKS0+Y29uc29sZSgpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoQ1NT
TWVzc2FnZVNvdXJjZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbV9zdHlsZVNoZWV0
LT5iYXNlVVJMKCkuc3RyaW5nKCksIGxpbmVOdW1iZXIgKyAxKTsKK30KKwogU3R5bGVSdWxlS2V5
ZnJhbWVzKiBDU1NQYXJzZXI6OmNyZWF0ZUtleWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzT3duUHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IHBvcEtleWZyYW1l
cykKIHsKICAgICBPd25QdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPiA+ID4ga2V5ZnJh
bWVzID0gcG9wS2V5ZnJhbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGMzOGU3ZjkzZjY1
M2E2OGViM2Q0ZTY4MWI4ZWU2NDdhYzA3YWU1YTEuLjJiOTgwMGZhN2QyYTEzNjI2OGEwNDE0MjJi
NGEwMjY1YmM4MTk1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTc1LDExICs3NSwxMyBA
QCBjbGFzcyBDU1NQYXJzZXIgewogICAgIGZyaWVuZCBpbmxpbmUgaW50IGNzc3l5bGV4KHZvaWQq
LCBDU1NQYXJzZXIqKTsKIAogcHVibGljOgorICAgIHN0cnVjdCBMb2NhdGlvbjsKKwogICAgIENT
U1BhcnNlcihjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CiAKICAgICB+Q1NTUGFyc2VyKCk7CiAK
LSAgICB2b2lkIHBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJiwg
aW50IHN0YXJ0TGluZU51bWJlciA9IDAsIFJ1bGVTb3VyY2VEYXRhTGlzdCogPSAwKTsKKyAgICB2
b2lkIHBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJiwgaW50IHN0
YXJ0TGluZU51bWJlciA9IDAsIFJ1bGVTb3VyY2VEYXRhTGlzdCogPSAwLCBib29sID0gZmFsc2Up
OwogICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcGFyc2VSdWxlKFN0eWxlU2hlZXRDb250
ZW50cyosIGNvbnN0IFN0cmluZyYpOwogICAgIFBhc3NSZWZQdHI8U3R5bGVLZXlmcmFtZT4gcGFy
c2VLZXlmcmFtZVJ1bGUoU3R5bGVTaGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJik7CiAjaWYg
RU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCkBAIC0zODUsNiArMzg3LDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBtX2hhc0ZvbnRGYWNlT25seVZhbHVlczsKICAgICBib29sIG1faGFkU3lu
dGFjdGljYWxseVZhbGlkQ1NTUnVsZTsKKyAgICBib29sIG1fbG9nRXJyb3JzOwogCiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogICAgIGJvb2wgbV9pbkZpbHRlclJ1bGU7CkBAIC00MTQsNiArNDE3
LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHBvcFJ1bGVE
YXRhKCk7CiAgICAgdm9pZCByZXNldFByb3BlcnR5UmFuZ2UoKSB7IG1fcHJvcGVydHlSYW5nZS5z
dGFydCA9IG1fcHJvcGVydHlSYW5nZS5lbmQgPSBVSU5UX01BWDsgfQogICAgIGJvb2wgaXNFeHRy
YWN0aW5nU291cmNlRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9jdXJyZW50UnVsZURhdGFTdGFj
azsgfQorICAgIHZvaWQgc3ludGF4RXJyb3IoTG9jYXRpb24pOwogCiAgICAgaW5saW5lIGludCBs
ZXgodm9pZCogeXlsdmFsKSB7IHJldHVybiAodGhpcy0+Km1fbGV4RnVuYykoeXlsdmFsKTsgfQog
CkBAIC02MzgsNiArNjQyLDkgQEAgcHJpdmF0ZToKICAgICAgICAgRG9Ob3RSZWxlYXNlUGFyc2Vk
Q2FsY1ZhbHVlCiAgICAgfTsKIAorICAgIGJvb2wgaXNMb2dnaW5nRXJyb3JzKCk7CisgICAgdm9p
ZCBsb2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyKTsKKwogICAg
IGJvb2wgdmFsaWRDYWxjdWxhdGlvblVuaXQoQ1NTUGFyc2VyVmFsdWUqLCBVbml0cywgUmVsZWFz
ZVBhcnNlZENhbGNWYWx1ZUNvbmRpdGlvbiByZWxlYXNlQ2FsYyA9IERvTm90UmVsZWFzZVBhcnNl
ZENhbGNWYWx1ZSk7CiAKICAgICBib29sIHNob3VsZEFjY2VwdFVuaXRMZXNzVmFsdWVzKENTU1Bh
cnNlclZhbHVlKiwgVW5pdHMsIENTU1BhcnNlck1vZGUpOwpAQCAtNjgxLDYgKzY4OCwxMSBAQCBw
cml2YXRlOgogICAgIENTU1BhcnNlciogbV9wYXJzZXI7CiB9OwogCitzdHJ1Y3QgQ1NTUGFyc2Vy
OjpMb2NhdGlvbiB7CisgICAgaW50IGxpbmVOdW1iZXI7CisgICAgQ1NTUGFyc2VyU3RyaW5nIHRv
a2VuOworfTsKKwogU3RyaW5nIHF1b3RlQ1NTU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogU3RyaW5n
IHF1b3RlQ1NTU3RyaW5nSWZOZWVkZWQoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgcXVvdGVDU1NV
UkxJZk5lZWRlZChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAKaW5kZXggMGFkZmEwNDg1YTQzZDBhYzY4MzE4NzI1Mzc5OGU1YmU3YjlkODE0
Zi4uMmFhMzZjYTVmMmE1ZWIzYTZhMTA0OThmMzY4YTAyY2ZmMTQxZWZmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lk
IFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENT
U1N0eWxlU2hlZXQqIGNhY2hlZAogICAgIFN0cmluZyBzaGVldFRleHQgPSBjYWNoZWRTdHlsZVNo
ZWV0LT5zaGVldFRleHQoZW5mb3JjZU1JTUVUeXBlLCAmaGFzVmFsaWRNSU1FVHlwZSk7CiAKICAg
ICBDU1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkpOwotICAgIHAucGFyc2VTaGVldCh0aGlzLCBz
aGVldFRleHQsIDApOworICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIDAsIDAsIHRy
dWUpOwogCiAgICAgLy8gSWYgd2UncmUgbG9hZGluZyBhIHN0eWxlc2hlZXQgY3Jvc3Mtb3JpZ2lu
LCBhbmQgdGhlIE1JTUUgdHlwZSBpcyBub3Qgc3RhbmRhcmQsIHJlcXVpcmUgdGhlIENTUwogICAg
IC8vIHRvIGF0IGxlYXN0IHN0YXJ0IHdpdGggYSBzeW50YWN0aWNhbGx5IHZhbGlkIENTUyBydWxl
LgpAQCAtMzEwLDEzICszMTAsMTMgQEAgdm9pZCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlQXV0
aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWQKIAogYm9vbCBT
dHlsZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0KQog
ewotICAgIHJldHVybiBwYXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDApOworICAgIHJldHVy
biBwYXJzZVN0cmluZ0F0TGluZShzaGVldFRleHQsIDAsIGZhbHNlKTsKIH0KIAotYm9vbCBTdHls
ZVNoZWV0Q29udGVudHM6OnBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0
LCBpbnQgc3RhcnRMaW5lTnVtYmVyKQorYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlU3Ry
aW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBDU1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkp
OwotICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIHN0YXJ0TGluZU51bWJlcik7Cisg
ICAgcC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0VGV4dCwgc3RhcnRMaW5lTnVtYmVyLCAwLCBjcmVh
dGVkQnlQYXJzZXIpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldENvbnRlbnRzLmgKaW5kZXggMWYyOTY4YjcxN2U2YzEyOGZlNzRlMzE5MDc0Y2Q2ZmY3
NGU3NWI2ZS4uNDBlMmRmM2E5MzdjZjdmY2E0NWFmZWIxMTBhZTc2OWJiOGE0MzhkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBDYWNoZWRDU1NTdHls
ZVNoZWV0KiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKICAgICBib29sIHBhcnNlU3RyaW5nKGNv
bnN0IFN0cmluZyYpOwotICAgIGJvb2wgcGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5nJiwg
aW50IHN0YXJ0TGluZU51bWJlcik7CisgICAgYm9vbCBwYXJzZVN0cmluZ0F0TGluZShjb25zdCBT
dHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBib29sKTsKIAogICAgIGJvb2wgaXNDYWNoZWFi
bGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAppbmRleCBmZjIyZmU5
ZGI4OGFiOWEyMjZlMDIwMmNmMmI0NDc2Y2ZlMDA1ZjBlLi40ODQwZjZhN2FmYjgzODk3YTMxZjNj
MmU5YWEzZjk5Zjk1NzhiODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcApAQCAt
MTc1LDcgKzE3NSw3IEBAIHZvaWQgU3R5bGVFbGVtZW50OjpjcmVhdGVTaGVldChFbGVtZW50KiBl
LCBXVEY6Ok9yZGluYWxOdW1iZXIgc3RhcnRMaW5lTnVtYmVyLCBjCiAgICAgICAgICAgICBtX3No
ZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5lKGUsIEtVUkwoKSwgZG9jdW1lbnQtPmlu
cHV0RW5jb2RpbmcoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRNZWRpYVF1ZXJpZXMobWVk
aWFRdWVyaWVzLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICBtX3NoZWV0LT5zZXRUaXRsZShlLT50
aXRsZSgpKTsKLSAgICAgICAgICAgIG1fc2hlZXQtPmNvbnRlbnRzKCktPnBhcnNlU3RyaW5nQXRM
aW5lKHRleHQsIHN0YXJ0TGluZU51bWJlci56ZXJvQmFzZWRJbnQoKSk7CisgICAgICAgICAgICBt
X3NoZWV0LT5jb250ZW50cygpLT5wYXJzZVN0cmluZ0F0TGluZSh0ZXh0LCBzdGFydExpbmVOdW1i
ZXIuemVyb0Jhc2VkSW50KCksIG1fY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgICAgICAgICAgbV9s
b2FkaW5nID0gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAK
aW5kZXggMzkwZWFhMWM5YTIzNGM0MDE2MWI0ZjI0M2U5ZjgzMjkzYTZlZWQ1YS4uN2VhNDYxNDI5
ZTFjOWYwZDg1NmUwNTk4N2EwYjFmMjVlNjZlZDdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZS5jcHAKQEAgLTE2OSw2ICsxNjksOSBAQCB2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cgogICAg
IGVsc2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25z
b2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxp
bmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAKKyAgICBpZiAoc291cmNlID09
IENTU01lc3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChwYWdlLT5zZXR0
aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>