<?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>110835</bug_id>
          
          <creation_ts>2013-02-25 18:27:16 -0800</creation_ts>
          <short_desc>[Chromium] Implement target-densityDpi viewport property emulation</short_desc>
          <delta_ts>2013-04-03 02:17:50 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Bo Liu">boliu</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>joth</cc>
    
    <cc>mnaganov</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841505</commentid>
    <comment_count>0</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2013-02-25 18:27:16 -0800</bug_when>
    <thetext>Add Chrome::processUnrecognizedViewportArgument method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841506</commentid>
    <comment_count>1</comment_count>
      <attachid>190177</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2013-02-25 18:27:31 -0800</bug_when>
    <thetext>Created attachment 190177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841518</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 18:41:46 -0800</bug_when>
    <thetext>Looks reasonable.  Let me know when you&apos;d like an actual review.  (I&apos;ll probably ask you to add a test.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864718</commentid>
    <comment_count>3</comment_count>
      <attachid>195362</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-03-27 11:17:12 -0700</bug_when>
    <thetext>Created attachment 195362
A new approach suggested by aelias@

I can&apos;t make a navigation in the same WebView in order to test the resetting of the target-density-dpi scaling factor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864721</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-27 11:20:00 -0700</bug_when>
    <thetext>Attachment 195362 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/dom/ViewportArguments.cpp&apos;, u&apos;Source/WebCore/page/Chrome.cpp&apos;, u&apos;Source/WebCore/page/Chrome.h&apos;, u&apos;Source/WebCore/page/ChromeClient.h&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/src/ChromeClientImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/ChromeClientImpl.h&apos;, u&apos;Source/WebKit/chromium/tests/WebFrameTest.cpp&apos;, u&apos;Source/WebKit/chromium/tests/data/viewport-target-densitydpi-high.html&apos;]&quot; exit_code: 1
Source/WebKit/chromium/src/ChromeClientImpl.cpp:693:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebKit/chromium/src/ChromeClientImpl.h:262:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864735</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-03-27 11:35:09 -0700</bug_when>
    <thetext>Trying to keep code out of ViewportArguments.cpp makes it very complicated.  How about introducing a new WebCore setting &quot;supportsTargetDensityDpi&quot; and put all the code in ViewportArguments instead?  We&apos;ll need a setting in any case.  You could then avoid ChromeClientImpl changes entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864749</commentid>
    <comment_count>6</comment_count>
      <attachid>195362</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-27 11:50:26 -0700</bug_when>
    <thetext>Comment on attachment 195362
A new approach suggested by aelias@

Attachment 195362 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17253597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864852</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2013-03-27 14:18:34 -0700</bug_when>
    <thetext>Adam, could you comment if this is going the direction you intend? (e.g.  #5?)

From internal email thread (b/6634479)


&quot;&quot;&quot;
Bo: you suggested adding something like onUnknownMetaAttribute to WebFrameClient? Does that sound more reasonable?

Adam: That sounds fine.  It&apos;s also fine to tell the WebFrameClient about
target-densityDPI specifically.  The important thing is for the embedder to do the scaling instead of having WebKit know about another scale factor.
&quot;&quot;&quot;


(I don&apos;t have any opinion on this, just trying to head off needless iterations on it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864859</commentid>
    <comment_count>8</comment_count>
      <attachid>195362</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2013-03-27 14:27:43 -0700</bug_when>
    <thetext>Comment on attachment 195362
A new approach suggested by aelias@

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:675
&gt; +    if (equalIgnoringCase(keyString, &quot;target-densitydpi&quot;)) {

I believe Adam said this block of logic needs to live in android webview only code, ie don&apos;t re-introduce target-densitydpi on other platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864864</commentid>
    <comment_count>9</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-03-27 14:34:13 -0700</bug_when>
    <thetext>Adam is currently on vacation.  In my understanding, the main thing is to make sure the functionality is not actually enabled on other platforms to avoid open web developers starting to use it.  Whether the code lives inside WebKit/ or WebCore/ is secondary.  And the current attempt to avoid WebCore is clearly ugly.  Adding a WebCore setting will allow us to let the code only *run* in AWV mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864876</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2013-03-27 14:42:10 -0700</bug_when>
    <thetext>Based on &quot;There&apos;s a lot of confusion in the code base about how page and device scaling works&quot; and &quot;The important thing is for the embedder to do the scaling instead of having WebKit know about another scale factor&quot; I thought this was more about code maintainability than risk of feature pollution into other platform/configurations.

(I do agree the net effect of patch set 2 is confusing, but was hoping to get a reviewer opinion on it before we iterate back to effectively reverting https://bugs.webkit.org/show_bug.cgi?id=88047 but wrapping an extra setting around it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864879</commentid>
    <comment_count>11</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-03-27 14:48:00 -0700</bug_when>
    <thetext>We found that doing the scaling on the embedder isn&apos;t tractable, unfortunately.  As the patch stands, it still needs a setting in order to avoid adding support to mainline Chromium, and the mutable Document pointer definitely should be avoided somehow.

Anyway, Adam should be back next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865404</commentid>
    <comment_count>12</comment_count>
      <attachid>195362</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-28 05:57:37 -0700</bug_when>
    <thetext>Comment on attachment 195362
A new approach suggested by aelias@

Attachment 195362 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17342104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865413</commentid>
    <comment_count>13</comment_count>
      <attachid>195547</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-03-28 06:03:07 -0700</bug_when>
    <thetext>Created attachment 195547
Move parsing code to ViewportArguments

Alexandre, thanks for your suggestions!

This is a refined version. I have moved the parsing code into ViewportArguments. But parsing can&apos;t depend on a setting, because if the setting will be enabled after the document has been parsed, that&apos;s too late, and I don&apos;t want to trigger reparsing when the setting changes. So I have stuck with a Chromium-only setting that controls, whether we are actually using the provided value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865416</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 06:05:07 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866632</commentid>
    <comment_count>15</comment_count>
      <attachid>195547</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-30 11:06:24 -0700</bug_when>
    <thetext>Comment on attachment 195547
Move parsing code to ViewportArguments

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        This is needed for supporting existing WebView-based applications
&gt; +        that rely on this property.

When do we expect to be able to remove this code?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:668
&gt; +    if (m_webView-&gt;settingsImpl()-&gt;supportDeprecatedTargetDensityDpi()) {
&gt; +        float targetDensityDpiFactor = calculateTargetDensityDpiFactor(arguments, deviceScaleFactor);
&gt; +        computed.initialScale *= targetDensityDpiFactor;
&gt; +        computed.minimumScale *= targetDensityDpiFactor;
&gt; +        computed.maximumScale *= targetDensityDpiFactor;
&gt; +        computed.layoutSize.scale(1.0f / targetDensityDpiFactor);
&gt; +    }

This work should be done by the embedder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866634</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-30 11:08:42 -0700</bug_when>
    <thetext>&gt; We found that doing the scaling on the embedder isn&apos;t tractable, unfortunately.

Can you explain in more detail?

I would like to avoid having WebKit/WebCore know anything about target-densitydpi.  It&apos;s a concern of the Android WebView to support this legacy behavior, not of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866635</commentid>
    <comment_count>17</comment_count>
      <attachid>195547</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-30 11:09:02 -0700</bug_when>
    <thetext>Comment on attachment 195547
Move parsing code to ViewportArguments

r- pending more discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866743</commentid>
    <comment_count>18</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-03-30 21:58:56 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; We found that doing the scaling on the embedder isn&apos;t tractable, unfortunately.
&gt; 
&gt; Can you explain in more detail?
&gt; 
&gt; I would like to avoid having WebKit/WebCore know anything about target-densitydpi.  It&apos;s a concern of the Android WebView to support this legacy behavior, not of WebKit.

I was referring to an idea we had earlier to set a different size in WebView::resize() and deviceScaleFactor.  But that won&apos;t work because input events are scaled by deviceScaleFactor in the browser process, and Android (having no multi-monitor support) assumes a single global value of deviceScaleFactor.  So this patch&apos;s approach of simply scaling the fixedLayoutSize works better.

In any case, are you asking that we expose the ViewportArguments struct in the WebKit API and do the scaling in Chromium-side code?  If so, that would certainly work.  Although, I&apos;m concerned that if we go down that path, would end up adding an equal or greater amount of cruft in the form of otherwise-unnecessary API hooks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866745</commentid>
    <comment_count>19</comment_count>
      <attachid>195547</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-30 22:17:21 -0700</bug_when>
    <thetext>Comment on attachment 195547
Move parsing code to ViewportArguments

This approach is an appealingly small amount of code.  Maybe this approach is better than spilling a bunch of API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866774</commentid>
    <comment_count>20</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-03-31 05:40:05 -0700</bug_when>
    <thetext>I&apos;m now confused. Should we try another approach (from the comment 18)? Or are we OK with this one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866829</commentid>
    <comment_count>21</comment_count>
      <attachid>195547</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-31 16:02:55 -0700</bug_when>
    <thetext>Comment on attachment 195547
Move parsing code to ViewportArguments

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

Ok, I&apos;m convinced about this approach.  It&apos;s nice that it&apos;s not much code.  However, if the implementation starts spidering throughout the codebase like the old implementation, we might want to reconsider.

&gt; Source/WebCore/dom/ViewportArguments.h:96
&gt; +        , deprecatedTargetDensityDpi(ValueAuto)

Dpi -&gt; DPI

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:662
&gt; +    if (m_webView-&gt;settingsImpl()-&gt;supportDeprecatedTargetDensityDpi()) {

Dpi -&gt; DPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868543</commentid>
    <comment_count>22</comment_count>
      <attachid>196305</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-04-03 02:16:19 -0700</bug_when>
    <thetext>Created attachment 196305
Dpi -&gt; DPI

Thank you, Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868546</commentid>
    <comment_count>23</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-04-03 02:17:50 -0700</bug_when>
    <thetext>Committed r147529: &lt;http://trac.webkit.org/changeset/147529&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190177</attachid>
            <date>2013-02-25 18:27:31 -0800</date>
            <delta_ts>2013-03-27 11:17:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110835-20130225182347.patch</filename>
            <type>text/plain</type>
            <size>5523</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcAppbmRleCA0NzAzOTdhNzczOWY2NTcwMjU0OWZhZDJhZjc3MzZkZWUzODgxZjdk
Li4wZGMwMGY4YmQzNGMxMTBkY2UyYjkyOWEwMDE1M2QwMzI2MjJmNTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTM5OCwxMCArMzk4LDEzIEBAIHZvaWQg
c2V0Vmlld3BvcnRGZWF0dXJlKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcm
IHZhbHVlU3RyaW5nLCBEb2N1CiAgICAgICAgIGFyZ3VtZW50cy0+bWF4Wm9vbSA9IGZpbmRTY2Fs
ZVZhbHVlKGtleVN0cmluZywgdmFsdWVTdHJpbmcsIGRvY3VtZW50KTsKICAgICBlbHNlIGlmIChr
ZXlTdHJpbmcgPT0gInVzZXItc2NhbGFibGUiKQogICAgICAgICBhcmd1bWVudHMtPnVzZXJab29t
ID0gZmluZFVzZXJTY2FsYWJsZVZhbHVlKGtleVN0cmluZywgdmFsdWVTdHJpbmcsIGRvY3VtZW50
KTsKLSAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gInRhcmdldC1kZW5zaXR5ZHBpIikKKyAgICBl
bHNlIGlmIChrZXlTdHJpbmcgPT0gInRhcmdldC1kZW5zaXR5ZHBpIikgeworICAgICAgICBkb2N1
bWVudC0+cGFnZSgpLT5jaHJvbWUoKS0+cHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1l
bnQoa2V5U3RyaW5nLCB2YWx1ZVN0cmluZyk7CiAgICAgICAgIHJlcG9ydFZpZXdwb3J0V2Fybmlu
Zyhkb2N1bWVudCwgVGFyZ2V0RGVuc2l0eURwaVVuc3VwcG9ydGVkLCBTdHJpbmcoKSwgU3RyaW5n
KCkpOwotICAgIGVsc2UKKyAgICB9IGVsc2UgeworICAgICAgICBkb2N1bWVudC0+cGFnZSgpLT5j
aHJvbWUoKS0+cHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnQoa2V5U3RyaW5nLCB2
YWx1ZVN0cmluZyk7CiAgICAgICAgIHJlcG9ydFZpZXdwb3J0V2FybmluZyhkb2N1bWVudCwgVW5y
ZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudEtleUVycm9yLCBrZXlTdHJpbmcsIFN0cmluZygpKTsK
KyAgICB9CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB2aWV3cG9ydEVycm9yTWVzc2FnZVRlbXBs
YXRlKFZpZXdwb3J0RXJyb3JDb2RlIGVycm9yQ29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRl
eCA4NWE5NzU1MmFkZjUxZmZjNTdhZDRkYmI1MGMwMjExNmYxNGU0YzFkLi5kZjhmZjZmMzNjZTRl
NzZmMDUxNGY3ZmY1NjA0OWM5ZDczZDNmNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC01
MDAsNiArNTAwLDExIEBAIHZvaWQgQ2hyb21lOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0Rp
ZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lCiAgICAgbV9jbGllbnQtPmRp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGFyZ3VtZW50cyk7CiB9CiAKK3ZvaWQg
Q2hyb21lOjpwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBTdHJpbmcm
IGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3QKK3sKKyAgICBtX2Ns
aWVudC0+cHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnQoa2V5U3RyaW5nLCB2YWx1
ZVN0cmluZyk7Cit9CisKIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJz
b3IpCiB7CiAgICAgbV9jbGllbnQtPnNldEN1cnNvcihjdXJzb3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
aW5kZXggNTI5M2M0YTZiMWY0N2ZkMDMwZTZjODBkNzkyNzM2NWQ3NmMxNmI0Yi4uNjMzYWM5Y2M2
YTdiMjgzMjRhZDk4YmVlYWFlYTViOTliNzA2YTRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0x
NjEsNiArMTYxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7Cisg
ICAgdm9pZCBwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBTdHJpbmcm
IGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3Q7CiAKICAgICBib29s
IHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggNWY2Y2UzOWE1MTkwNGVhNDUzMGQ1YmI3M2U1NWEyMTgyZmM1NTU0
Ny4uOWY0YmUxYzcyNGFlZmQ0Y2ZhOGNhZDkzYTM1NzhiMmIxNjcwOGRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIC8vIEVu
ZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNv
bnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1
bWVudChjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykg
Y29uc3QgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSos
IGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dFVwZGF0
ZWQoRnJhbWUqKSBjb25zdCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXdDbGllbnQuaAppbmRleCAzOGM2NmRmZTg5ZjkzZmE4OGUxOGQ1MDY4MDg0NTYxNjZjMDI2
NzMzLi40NmYwMTdmMTIyODMyNzFlZTlmMDQzYmYyMjIwYjdlOTkwNzY2ZjJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0zNzMsNiArMzcz
LDExIEBAIHB1YmxpYzoKICAgICAvLyBhY3Rpb24gdGhhdCB3YXNuJ3QgaW5pdGlhdGVkIGJ5IHRo
ZSBjbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIHpvb21MZXZlbENoYW5nZWQoKSB7IH0KIAorICAg
IC8vIENhbGxlZCB3aGVuIGFuIHVua25vd24gbWV0YSB2aWV3cG9ydCBhdHRyaWJ1dGUgaXMgcGFy
c2VkLgorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVu
dCgKKyAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBrZXlTdHJpbmcsCisgICAgICAgIGNvbnN0IFdl
YlN0cmluZyYgdmFsdWVTdHJpbmcpIHsgfQorCiAgICAgLy8gUmVnaXN0ZXJzIGEgbmV3IFVSTCBo
YW5kbGVyIGZvciB0aGUgZ2l2ZW4gcHJvdG9jb2wuCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyKGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGJhc2VVcmwsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGIx
MTA4OTNkZDUzNzhlNjhlOTgxYzIxYzQ4NmNjOWUxMjc0YzA1YzIuLmE3MjgwNzhmNmM0MWE4ZjBj
NDE4ZTA1ZmZlMjFjOWQ3ZjNjN2ZkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02NTAsNiArNjUwLDE0IEBAIHZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmll
d3BvcnRBcmd1bWVuCiAjZW5kaWYKIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwcm9jZXNz
VW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29u
c3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklFV1BPUlQpCisg
ICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCkt
PnByb2Nlc3NVbnJlY29nbml6ZWRWaWV3cG9ydEFyZ3VtZW50KGtleVN0cmluZywgdmFsdWVTdHJp
bmcpOworI2VuZGlmCit9CisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cHJpbnQoRnJhbWUqIGZy
YW1lKQogewogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDNlMjhlNTM1YzcwMWJhMjNjZDBl
MWFjNzkwNDFhYWViMTQ2ZmZlOTguLjA0Y2QxN2ExNDMzZGI0YjYwNmRkMzE2YjRjMTA4NjY5YzYy
OGE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYkNvcmU6Okhp
dFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0LCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3Bl
cnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnQoY29u
c3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195362</attachid>
            <date>2013-03-27 11:17:12 -0700</date>
            <delta_ts>2013-03-28 06:03:07 -0700</delta_ts>
            <desc>A new approach suggested by aelias@</desc>
            <filename>wk-110835.patch</filename>
            <type>text/plain</type>
            <size>12135</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTU2YTFmLi45ZmMxMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMDMtMjcgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0YXJnZXItZGVuc2l0eURwaSB2aWV3cG9y
dCBwcm9wZXJ0eSBlbXVsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNldFZpZXdwb3J0RmVhdHVyZSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAg
ICAoQ2hyb21lKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50Ojpwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudCk6
CisKIDIwMTMtMDMtMjcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogRm9sbG93LXVwIHRvIHIxNDY4OTg6IHRlc3QgdGhhdCB1
aVNvdXJjZUNvZGVzIGFyZSBub3QgbGVha2luZyBpbiBicmVha3BvaW50IG1hbmFnZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCAzZDI0MmQ2Li5hYzg2NWJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTM5OCwxMCAr
Mzk4LDEzIEBAIHZvaWQgc2V0Vmlld3BvcnRGZWF0dXJlKGNvbnN0IFN0cmluZyYga2V5U3RyaW5n
LCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1CiAgICAgICAgIGFyZ3VtZW50cy0+bWF4
Wm9vbSA9IGZpbmRTY2FsZVZhbHVlKGtleVN0cmluZywgdmFsdWVTdHJpbmcsIGRvY3VtZW50KTsK
ICAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gInVzZXItc2NhbGFibGUiKQogICAgICAgICBhcmd1
bWVudHMtPnVzZXJab29tID0gZmluZFVzZXJTY2FsYWJsZVZhbHVlKGtleVN0cmluZywgdmFsdWVT
dHJpbmcsIGRvY3VtZW50KTsKLSAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gInRhcmdldC1kZW5z
aXR5ZHBpIikKKyAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gInRhcmdldC1kZW5zaXR5ZHBpIikg
eworICAgICAgICBkb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS0+cHJvY2Vzc1VucmVjb2duaXpl
ZFZpZXdwb3J0QXJndW1lbnQoa2V5U3RyaW5nLCB2YWx1ZVN0cmluZyk7CiAgICAgICAgIHJlcG9y
dFZpZXdwb3J0V2FybmluZyhkb2N1bWVudCwgVGFyZ2V0RGVuc2l0eURwaVVuc3VwcG9ydGVkLCBT
dHJpbmcoKSwgU3RyaW5nKCkpOwotICAgIGVsc2UKKyAgICB9IGVsc2UgeworICAgICAgICBkb2N1
bWVudC0+cGFnZSgpLT5jaHJvbWUoKS0+cHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1l
bnQoa2V5U3RyaW5nLCB2YWx1ZVN0cmluZyk7CiAgICAgICAgIHJlcG9ydFZpZXdwb3J0V2Fybmlu
Zyhkb2N1bWVudCwgVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudEtleUVycm9yLCBrZXlTdHJp
bmcsIFN0cmluZygpKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB2aWV3cG9ydEVy
cm9yTWVzc2FnZVRlbXBsYXRlKFZpZXdwb3J0RXJyb3JDb2RlIGVycm9yQ29kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAppbmRleCA4NWE5NzU1Li5kZjhmZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CkBAIC01MDAsNiArNTAwLDExIEBAIHZvaWQgQ2hyb21lOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lCiAgICAgbV9jbGll
bnQtPmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGFyZ3VtZW50cyk7CiB9CiAK
K3ZvaWQgQ2hyb21lOjpwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBT
dHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3QKK3sKKyAg
ICBtX2NsaWVudC0+cHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnQoa2V5U3RyaW5n
LCB2YWx1ZVN0cmluZyk7Cit9CisKIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29y
JiBjdXJzb3IpCiB7CiAgICAgbV9jbGllbnQtPnNldEN1cnNvcihjdXJzb3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKaW5kZXggNTI5M2M0YS4uNjMzYWM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNjEs
NiArMTYxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQ
cm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CisgICAg
dm9pZCBwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBTdHJpbmcmIGtl
eVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3Q7CiAKICAgICBib29sIHJl
cXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKaW5kZXggZjQ2YTI0My4uNWU0OGJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIC8vIEVuZCBtZXRob2RzIHVz
ZWQgYnkgSG9zdFdpbmRvdy4KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IHsgfQorICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudChjb25zdCBT
dHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZykgY29uc3QgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNp
emUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dFVwZGF0ZWQoRnJhbWUqKSBj
b25zdCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTBiMDZiYi4uZmY1Nzk1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMy0yNyAg
TWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJv
bWl1bV0gSW1wbGVtZW50IHRhcmdlci1kZW5zaXR5RHBpIHZpZXdwb3J0IHByb3BlcnR5IGVtdWxh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
ODM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudElt
cGw6OkNocm9tZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OnByb2Nlc3NVbnJlY29nbml6ZWRWaWV3cG9ydEFyZ3VtZW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hyb21lQ2xpZW50SW1wbCk6CisgICAgICAgICog
dGVzdHMvV2ViRnJhbWVUZXN0LmNwcDoKKwogMjAxMy0wMy0yNiAgSGF5YXRvIEl0byAgPGhheWF0
b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWxsb3cgU2hhZG93Q29udGVudHMgaW4gSGl0VGVz
dHMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKaW5kZXggZDQ1ZGYzZS4uYzIyM2FlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTE0Nyw2ICsxNDcsMTAgQEAg
Q2hyb21lQ2xpZW50SW1wbDo6Q2hyb21lQ2xpZW50SW1wbChXZWJWaWV3SW1wbCogd2ViVmlldykK
ICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKICAgICAsIG1fcGFnZVBvcHVwRHJpdmVyKHdlYlZpZXcp
CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklFV1BPUlQpCisgICAgLCBtX3RhcmdldERlbnNpdHlEcGlF
bXVsYXRpb25GYWN0b3IoMS4wZikKKyAgICAsIG1fdGFyZ2V0RGVuc2l0eURwaVNvdXJjZSgwKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTYyMiw5ICs2MjYsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHREaXJlY3Rpb24gZGly
KQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAogewogI2lmIEVO
QUJMRShWSUVXUE9SVCkKKyAgICBmcHJpbnRmKHN0ZGVyciwgImRpc3BhdGNoVmlld3BvcnRQcm9w
ZXJ0aWVzRGlkQ2hhbmdlIDFcbiIpOworCiAgICAgaWYgKCFtX3dlYlZpZXctPnNldHRpbmdzKCkt
PnZpZXdwb3J0RW5hYmxlZCgpIHx8ICFtX3dlYlZpZXctPmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxl
ZCgpIHx8ICFtX3dlYlZpZXctPmNsaWVudCgpIHx8ICFtX3dlYlZpZXctPnBhZ2UoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgZnByaW50ZihzdGRlcnIsICJkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZSAyXG4iKTsKKwogICAgIEludFNpemUgdmlld3BvcnRTaXplID0gbV93ZWJW
aWV3LT5kaXBTaXplKCk7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBtX3dlYlZpZXct
PmNsaWVudCgpLT5zY3JlZW5JbmZvKCkuZGV2aWNlU2NhbGVGYWN0b3I7CiAKQEAgLTY0NCw2ICs2
NTIsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGll
c0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW4KICAgICBpZiAoIW1fd2ViVmlldy0+c2V0
dGluZ3NJbXBsKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKICAgICAg
ICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IGRldmljZVNjYWxlRmFjdG9yOwogCisgICAgaWYg
KG1fdGFyZ2V0RGVuc2l0eURwaVNvdXJjZSAhPSBtX3dlYlZpZXctPnBhZ2UoKS0+bWFpbkZyYW1l
KCktPmRvY3VtZW50KCkpCisgICAgICAgIG1fdGFyZ2V0RGVuc2l0eURwaUVtdWxhdGlvbkZhY3Rv
ciA9IDEuMGY7CisgICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IG1fdGFyZ2V0RGVuc2l0eURw
aUVtdWxhdGlvbkZhY3RvcjsKKyAgICBjb21wdXRlZC5taW5pbXVtU2NhbGUgKj0gbV90YXJnZXRE
ZW5zaXR5RHBpRW11bGF0aW9uRmFjdG9yOworICAgIGNvbXB1dGVkLm1heGltdW1TY2FsZSAqPSBt
X3RhcmdldERlbnNpdHlEcGlFbXVsYXRpb25GYWN0b3I7CisgICAgY29tcHV0ZWQubGF5b3V0U2l6
ZS5zY2FsZSgxLjBmIC8gbV90YXJnZXREZW5zaXR5RHBpRW11bGF0aW9uRmFjdG9yKTsKKwogICAg
IG1fd2ViVmlldy0+c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcihjb21wdXRlZC5pbml0aWFsU2Nh
bGUpOwogICAgIG1fd2ViVmlldy0+c2V0Rml4ZWRMYXlvdXRTaXplKGZsb29yZWRJbnRTaXplKGNv
bXB1dGVkLmxheW91dFNpemUpKTsKICAgICBtX3dlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9y
KGRldmljZVNjYWxlRmFjdG9yKTsKQEAgLTY1MSw2ICs2NjYsMzggQEAgdm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9y
dEFyZ3VtZW4KICNlbmRpZgogfQogCit2b2lkIENocm9tZUNsaWVudEltcGw6OnByb2Nlc3NVbnJl
Y29nbml6ZWRWaWV3cG9ydEFyZ3VtZW50KGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBT
dHJpbmcmIHZhbHVlU3RyaW5nKSBjb25zdAoreworI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAgICBp
ZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShrZXlTdHJpbmcsICJ0YXJnZXQtZGVuc2l0eWRwaSIpKSB7CisgICAgICAg
IG1fdGFyZ2V0RGVuc2l0eURwaVNvdXJjZSA9IG1fd2ViVmlldy0+cGFnZSgpLT5tYWluRnJhbWUo
KS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgZmxvYXQgdGFyZ2V0RHBpID0gLTEuMGY7CisgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZVN0cmluZywgImxvdy1kcGkiKSkKKyAgICAgICAg
ICAgIHRhcmdldERwaSA9IDEyMC4wZjsKKyAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UodmFsdWVTdHJpbmcsICJtZWRpdW0tZHBpIikpCisgICAgICAgICAgICB0YXJnZXREcGkgPSAx
NjAuMGY7CisgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlU3RyaW5nLCAi
aGlnaC1kcGkiKSkKKyAgICAgICAgICAgIHRhcmdldERwaSA9IDI0MC4wZjsKKyAgICAgICAgZWxz
ZSBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKHZhbHVlU3RyaW5nLCAiZGV2aWNlLWRwaSIpKSB7Cisg
ICAgICAgICAgICBzaXplX3QgcGFyc2VkTGVuZ3RoOworICAgICAgICAgICAgZmxvYXQgdmFsdWU7
CisgICAgICAgICAgICBpZiAodmFsdWVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgICAgICAgICAg
dmFsdWUgPSBjaGFyYWN0ZXJzVG9GbG9hdCh2YWx1ZVN0cmluZy5jaGFyYWN0ZXJzOCgpLCB2YWx1
ZVN0cmluZy5sZW5ndGgoKSwgcGFyc2VkTGVuZ3RoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0Zsb2F0KHZhbHVlU3RyaW5nLmNoYXJhY3Rl
cnMxNigpLCB2YWx1ZVN0cmluZy5sZW5ndGgoKSwgcGFyc2VkTGVuZ3RoKTsKKyAgICAgICAgICAg
IGlmIChwYXJzZWRMZW5ndGggJiYgNzAuMGYgPD0gdmFsdWUgJiYgdmFsdWUgPD0gNDAwLjBmKSB7
CisgICAgICAgICAgICAgICAgdGFyZ2V0RHBpID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBtX3dlYlZpZXctPmNsaWVu
dCgpLT5zY3JlZW5JbmZvKCkuZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgICAgIG1fdGFyZ2V0RGVu
c2l0eURwaUVtdWxhdGlvbkZhY3RvciA9IHRhcmdldERwaSA+IDAgPyAoZGV2aWNlU2NhbGVGYWN0
b3IgKiAxMjAuMGYpIC8gdGFyZ2V0RHBpIDogMS4wZjsKKyAgICB9CisjZW5kaWYKK30KKwogdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpwcmludChGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKG1fd2Vi
Vmlldy0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKaW5kZXggZGJjY2Q0Yi4uYmYyZjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3MgQ29sb3JDaG9vc2Vy
OwogY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50OworY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKQEAg
LTEzNSw2ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0LCBXZWJDb3JlOjpUZXh0
RGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNE
aWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgcHJvY2Vzc1VucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnQoY29uc3QgU3Ry
aW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogI2lmIEVOQUJMRShTUUxfREFUQUJB
U0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSgKQEAgLTI1NCw2ICsy
NTYsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKICAgICBXZWJDb3JlOjpQ
YWdlUG9wdXBEcml2ZXIqIG1fcGFnZVBvcHVwRHJpdmVyOwogI2VuZGlmCisKKyNpZiBFTkFCTEUo
VklFV1BPUlQpCisgICAgbXV0YWJsZSBmbG9hdCBtX3RhcmdldERlbnNpdHlEcGlFbXVsYXRpb25G
YWN0b3I7CisgICAgbXV0YWJsZSBXZWJDb3JlOjpEb2N1bWVudCogbV90YXJnZXREZW5zaXR5RHBp
U291cmNlOyAgLy8gb25seSB1c2VkIGluIGNvbXBhcmlzb25zCisjZW5kaWYKIH07CiAKICNpZiBF
TkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggZjA4NDkzMi4uY2I0ZjFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtNTk3LDYgKzU5
NywzNyBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBwYWdlU2NhbGVGYWN0b3JEb2VzTm90QXBwbHlD
c3NUcmFuc2Zvcm0pCiAgICAgRVhQRUNUX0VRKDk4MCwgd2ViVmlld0ltcGwtPnBhZ2UoKS0+bWFp
bkZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpLT51bnNjYWxlZERvY3VtZW50UmVjdCgpLndpZHRo
KCkpOwogICAgIEVYUEVDVF9FUSg5ODAsIHdlYlZpZXdJbXBsLT5tYWluRnJhbWVJbXBsKCktPmZy
YW1lVmlldygpLT5jb250ZW50c1NpemUoKS53aWR0aCgpKTsKIH0KKworVEVTVF9GKFdlYkZyYW1l
VGVzdCwgdGFyZ2V0RGVuc2l0eURwaUhpZ2gpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJM
TG9hZCgidmlld3BvcnQtdGFyZ2V0LWRlbnNpdHlkcGktaGlnaC5odG1sIik7CisKKyAgICBGaXhl
ZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBjbGllbnQubV9zY3JlZW5JbmZv
LmRldmljZVNjYWxlRmFjdG9yID0gNC4wZiAvIDMuMGY7CisgICAgaW50IHZpZXdwb3J0V2lkdGgg
PSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworCisgICAgbV93ZWJWaWV3ID0g
RnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgInZpZXdw
b3J0LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2guaHRtbCIsIHRydWUsIDAsICZjbGllbnQpOworICAg
IG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5UGFnZVNjYWxl
RmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIG1fd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlv
dXRNb2RlKHRydWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0Vmlld3BvcnRFbmFi
bGVkKHRydWUpOworICAgIG1fd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwg
dmlld3BvcnRIZWlnaHQpKTsKKworICAgIC8vIGhpZ2gtZHBpID0gMjQwLCBkZXZpY2UtZHBpID0g
MTYwCisgICAgRVhQRUNUX0VRKHZpZXdwb3J0V2lkdGggKiAoMjQwLjBmIC8gMTYwLjBmKSwgbV93
ZWJWaWV3LT5maXhlZExheW91dFNpemUoKS53aWR0aCk7CisgICAgRVhQRUNUX0VRKHZpZXdwb3J0
SGVpZ2h0ICogKDI0MC4wZiAvIDE2MC4wZiksIG1fd2ViVmlldy0+Zml4ZWRMYXlvdXRTaXplKCku
aGVpZ2h0KTsKKyAgICBFWFBFQ1RfRVEoMTYwLjBmIC8gMjQwLjBmLCBtX3dlYlZpZXctPnBhZ2VT
Y2FsZUZhY3RvcigpKTsKKworICAgIC8vID8/PyBUaGlzIGRvZXNuJ3Qgd29yay0taG93IHRvIG5h
dmlnYXRlIHRvIGEgbmV3IHVybCBwcm9wZXJseT8gPz8/CisgICAgLy8gcmVnaXN0ZXJNb2NrZWRI
dHRwVVJMTG9hZCgiZml4ZWRfbGF5b3V0Lmh0bWwiKTsKKyAgICAvLyBGcmFtZVRlc3RIZWxwZXJz
Ojpsb2FkRnJhbWUobV93ZWJWaWV3LT5tYWluRnJhbWUoKSwgbV9iYXNlVVJMICsgImZpeGVkX2xh
eW91dC5odG1sIik7CisgICAgLy8gUGxhdGZvcm06OmN1cnJlbnQoKS0+dW5pdFRlc3RTdXBwb3J0
KCktPnNlcnZlQXN5bmNocm9ub3VzTW9ja2VkUmVxdWVzdHMoKTsKKyAgICAvLyBtX3dlYlZpZXct
PnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisgICAgLy8g
RVhQRUNUX0VRKHZpZXdwb3J0V2lkdGgsIG1fd2ViVmlldy0+Zml4ZWRMYXlvdXRTaXplKCkud2lk
dGgpOworICAgIC8vIEVYUEVDVF9FUSh2aWV3cG9ydEhlaWdodCwgbV93ZWJWaWV3LT5maXhlZExh
eW91dFNpemUoKS5oZWlnaHQpOworICAgIC8vIEVYUEVDVF9FUSgxLCBtX3dlYlZpZXctPnBhZ2VT
Y2FsZUZhY3RvcigpKTsKK30KICNlbmRpZgogCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBwYWdlU2Nh
bGVGYWN0b3JTY2FsZXNQYWludENsaXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL2RhdGEvdmlld3BvcnQtdGFyZ2V0LWRlbnNpdHlkcGktaGlnaC5odG1sIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3ZpZXdwb3J0LXRhcmdldC1kZW5zaXR5ZHBp
LWhpZ2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTljNTZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3ZpZXdw
b3J0LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2guaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNl
LXdpZHRoLHRhcmdldC1kZW5zaXR5RHBpPWhpZ2gtZHBpJyAvPgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIEEgcGFnZSB3aXRoIGEgdmlld3BvcnQuCisgIDwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="217237"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195547</attachid>
            <date>2013-03-28 06:03:07 -0700</date>
            <delta_ts>2013-04-03 02:16:19 -0700</delta_ts>
            <desc>Move parsing code to ViewportArguments</desc>
            <filename>wk-110835.patch</filename>
            <type>text/plain</type>
            <size>13372</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTU2YTFmLi4wZjVkOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDMtMjggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0YXJnZXItZGVuc2l0eURwaSB2aWV3cG9y
dCBwcm9wZXJ0eSBlbXVsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgzNQorCisgICAgICAgIFRoZSB2YWx1ZSBpcyBvbmx5IHVzZWQgaW4g
dGhlIENocm9taXVtIHBvcnQsIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgc2V0dGlu
ZyBpcyBlbmFibGVkLgorCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBzdXBwb3J0aW5nIGV4
aXN0aW5nIFdlYlZpZXctYmFzZWQgYXBwbGljYXRpb25zCisgICAgICAgIHRoYXQgcmVseSBvbiB0
aGlzIHByb3BlcnR5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZp
bmRUYXJnZXREZW5zaXR5RFBJVmFsdWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRWaWV3cG9ydEZlYXR1cmUpOgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3Vt
ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0QXJn
dW1lbnRzKToKKyAgICAgICAgKFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzOjpvcGVyYXRvcj09KToKKwogMjAxMy0wMy0yNyAgVnNldm9sb2Qg
Vmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
b2xsb3ctdXAgdG8gcjE0Njg5ODogdGVzdCB0aGF0IHVpU291cmNlQ29kZXMgYXJlIG5vdCBsZWFr
aW5nIGluIGJyZWFrcG9pbnQgbWFuYWdlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwCmluZGV4IDNkMjQyZDYuLjM1Y2YwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtMzgyLDYgKzM4MiwyNSBAQCBzdGF0aWMgZmxvYXQgZmlu
ZFVzZXJTY2FsYWJsZVZhbHVlKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcm
IHZhbHVlUwogICAgIHJldHVybiAxOwogfQogCitzdGF0aWMgZmxvYXQgZmluZFRhcmdldERlbnNp
dHlEUElWYWx1ZShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0
cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2
YWx1ZVN0cmluZywgImRldmljZS1kcGkiKSkKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJndW1l
bnRzOjpWYWx1ZURldmljZURQSTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWVTdHJp
bmcsICJsb3ctZHBpIikpCisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVM
b3dEUEk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlU3RyaW5nLCAibWVkaXVtLWRw
aSIpKQorICAgICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlTWVkaXVtRFBJOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZVN0cmluZywgImhpZ2gtZHBpIikpCisgICAg
ICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVIaWdoRFBJOworCisgICAgYm9vbCBv
azsKKyAgICBmbG9hdCB2YWx1ZSA9IG51bWVyaWNQcmVmaXgoa2V5U3RyaW5nLCB2YWx1ZVN0cmlu
ZywgZG9jdW1lbnQsICZvayk7CisgICAgaWYgKCFvayB8fCB2YWx1ZSA8IDcwIHx8IHZhbHVlID4g
NDAwKQorICAgICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKKworICAg
IHJldHVybiB2YWx1ZTsKK30KKwogdm9pZCBzZXRWaWV3cG9ydEZlYXR1cmUoY29uc3QgU3RyaW5n
JiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVu
dCwgdm9pZCogZGF0YSkKIHsKICAgICBWaWV3cG9ydEFyZ3VtZW50cyogYXJndW1lbnRzID0gc3Rh
dGljX2Nhc3Q8Vmlld3BvcnRBcmd1bWVudHMqPihkYXRhKTsKQEAgLTM5OCw5ICs0MTcsMTAgQEAg
dm9pZCBzZXRWaWV3cG9ydEZlYXR1cmUoY29uc3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0
cmluZyYgdmFsdWVTdHJpbmcsIERvY3UKICAgICAgICAgYXJndW1lbnRzLT5tYXhab29tID0gZmlu
ZFNjYWxlVmFsdWUoa2V5U3RyaW5nLCB2YWx1ZVN0cmluZywgZG9jdW1lbnQpOwogICAgIGVsc2Ug
aWYgKGtleVN0cmluZyA9PSAidXNlci1zY2FsYWJsZSIpCiAgICAgICAgIGFyZ3VtZW50cy0+dXNl
clpvb20gPSBmaW5kVXNlclNjYWxhYmxlVmFsdWUoa2V5U3RyaW5nLCB2YWx1ZVN0cmluZywgZG9j
dW1lbnQpOwotICAgIGVsc2UgaWYgKGtleVN0cmluZyA9PSAidGFyZ2V0LWRlbnNpdHlkcGkiKQor
ICAgIGVsc2UgaWYgKGtleVN0cmluZyA9PSAidGFyZ2V0LWRlbnNpdHlkcGkiKSB7CisgICAgICAg
IGFyZ3VtZW50cy0+ZGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkgPSBmaW5kVGFyZ2V0RGVuc2l0
eURQSVZhbHVlKGtleVN0cmluZywgdmFsdWVTdHJpbmcsIGRvY3VtZW50KTsKICAgICAgICAgcmVw
b3J0Vmlld3BvcnRXYXJuaW5nKGRvY3VtZW50LCBUYXJnZXREZW5zaXR5RHBpVW5zdXBwb3J0ZWQs
IFN0cmluZygpLCBTdHJpbmcoKSk7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICByZXBv
cnRWaWV3cG9ydFdhcm5pbmcoZG9jdW1lbnQsIFVucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnRL
ZXlFcnJvciwga2V5U3RyaW5nLCBTdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdw
b3J0QXJndW1lbnRzLmgKaW5kZXggNTRjZTcwYS4uZjNiODEzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTczLDcgKzczLDExIEBAIHN0cnVjdCBWaWV3cG9ydEFy
Z3VtZW50cyB7CiAgICAgICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMiwKICAgICAgICAgVmFsdWVE
ZXZpY2VIZWlnaHQgPSAtMywKICAgICAgICAgVmFsdWVQb3J0cmFpdCA9IC00LAotICAgICAgICBW
YWx1ZUxhbmRzY2FwZSA9IC01CisgICAgICAgIFZhbHVlTGFuZHNjYXBlID0gLTUsCisgICAgICAg
IFZhbHVlRGV2aWNlRFBJID0gLTYsCisgICAgICAgIFZhbHVlTG93RFBJID0gLTcsCisgICAgICAg
IFZhbHVlTWVkaXVtRFBJID0gLTgsCisgICAgICAgIFZhbHVlSGlnaERQSSA9IC05CiAgICAgfTsK
IAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9IEltcGxpY2l0KQpAQCAtODksNiAr
OTMsNyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICAsIG1heFpvb20oVmFs
dWVBdXRvKQogICAgICAgICAsIHVzZXJab29tKFZhbHVlQXV0bykKICAgICAgICAgLCBvcmllbnRh
dGlvbihWYWx1ZUF1dG8pCisgICAgICAgICwgZGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkoVmFs
dWVBdXRvKQogICAgIHsKICAgICB9CiAKQEAgLTEwNiw2ICsxMTEsNyBAQCBzdHJ1Y3QgVmlld3Bv
cnRBcmd1bWVudHMgewogICAgIGZsb2F0IG1heFpvb207CiAgICAgZmxvYXQgdXNlclpvb207CiAg
ICAgZmxvYXQgb3JpZW50YXRpb247CisgICAgZmxvYXQgZGVwcmVjYXRlZFRhcmdldERlbnNpdHlE
cGk7IC8vIE9ubHkgdXNlZCBmb3IgQW5kcm9pZCBXZWJWaWV3CiAKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIG90aGVyKSBjb25zdAogICAgIHsKQEAgLTEyMSw3
ICsxMjcsOCBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICAgICAgJiYgbWlu
Wm9vbSA9PSBvdGhlci5taW5ab29tCiAgICAgICAgICAgICAmJiBtYXhab29tID09IG90aGVyLm1h
eFpvb20KICAgICAgICAgICAgICYmIHVzZXJab29tID09IG90aGVyLnVzZXJab29tCi0gICAgICAg
ICAgICAmJiBvcmllbnRhdGlvbiA9PSBvdGhlci5vcmllbnRhdGlvbjsKKyAgICAgICAgICAgICYm
IG9yaWVudGF0aW9uID09IG90aGVyLm9yaWVudGF0aW9uCisgICAgICAgICAgICAmJiBkZXByZWNh
dGVkVGFyZ2V0RGVuc2l0eURwaSA9PSBvdGhlci5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaTsK
ICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIG90
aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1MGIwNmJiLi4zNzJhYTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAzLTI4
ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0No
cm9taXVtXSBJbXBsZW1lbnQgdGFyZ2VyLWRlbnNpdHlEcGkgdmlld3BvcnQgcHJvcGVydHkgZW11
bGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTA4MzUKKworICAgICAgICBUaGUgdmFsdWUgaXMgb25seSB1c2VkIGluIHRoZSBDaHJvbWl1bSBw
b3J0LCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgIHNldHRpbmcgaXMgZW5hYmxlZC4K
KworICAgICAgICBUaGlzIGlzIG5lZWRlZCBmb3Igc3VwcG9ydGluZyBleGlzdGluZyBXZWJWaWV3
LWJhc2VkIGFwcGxpY2F0aW9ucworICAgICAgICB0aGF0IHJlbHkgb24gdGhpcyBwcm9wZXJ0eS4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViU2V0dGluZ3MpOgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OmNhbGN1bGF0ZVRhcmdldERlbnNpdHlEcGlGYWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSk6CisgICAg
ICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRp
bmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJ
bXBsOjpzZXRTdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0
aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnN1cHBvcnREZXBy
ZWNhdGVkVGFyZ2V0RGVuc2l0eURwaSk6CisgICAgICAgICogdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cDoKKyAgICAgICAgKiB0ZXN0cy9kYXRhL3ZpZXdwb3J0LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2gu
aHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMjYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFsbG93IFNoYWRvd0NvbnRlbnRzIGluIEhpdFRlc3RzIGJ5IGRlZmF1
bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCBj
ZmI3YzZmLi42ZGZiMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBV
U0NSSVBUX0NPTU1PTikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0RGVwcmVjYXRl
ZFRhcmdldERlbnNpdHlEcGkoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0
c011bHRpcGxlV2luZG93cyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJ
bkRvY3VtZW50c0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0QXJl
YXNBcmVSZXNpemFibGUoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBkNDVkZjNlLi5lN2Y3Mzc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNjE5LDYg
KzYxOSwyMSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiB0b29sdGlwVGV4dCwgVGV4dERpcmVjdGlvbiBkaXIpCiAgICAgICAgIHRvb2x0aXBUZXh0LCB0
ZXh0RGlyZWN0aW9uKTsKIH0KIAorCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRlVGFyZ2V0RGVuc2l0
eURwaUZhY3Rvcihjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzLCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcikKK3sKKyAgICBmbG9hdCB0YXJnZXREcGkgPSAtMS4wZjsKKyAgICBpZiAo
YXJndW1lbnRzLmRlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RHBpID09IFZpZXdwb3J0QXJndW1lbnRz
OjpWYWx1ZUxvd0RQSSkKKyAgICAgICAgdGFyZ2V0RHBpID0gMTIwLjBmOworICAgIGVsc2UgaWYg
KGFyZ3VtZW50cy5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaSA9PSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVNZWRpdW1EUEkpCisgICAgICAgIHRhcmdldERwaSA9IDE2MC4wZjsKKyAgICBlbHNl
IGlmIChhcmd1bWVudHMuZGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkgPT0gVmlld3BvcnRBcmd1
bWVudHM6OlZhbHVlSGlnaERQSSkKKyAgICAgICAgdGFyZ2V0RHBpID0gMjQwLjBmOworICAgIGVs
c2UgaWYgKGFyZ3VtZW50cy5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaSAhPSBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvICYmIGFyZ3VtZW50cy5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURw
aSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VEUEkpCisgICAgICAgIHRhcmdldERw
aSA9IGFyZ3VtZW50cy5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaTsKKyAgICByZXR1cm4gdGFy
Z2V0RHBpID4gMCA/IChkZXZpY2VTY2FsZUZhY3RvciAqIDEyMC4wZikgLyB0YXJnZXREcGkgOiAx
LjBmOworfQorCiB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpIGNvbnN0CiB7
CiAjaWYgRU5BQkxFKFZJRVdQT1JUKQpAQCAtNjQ0LDYgKzY1OSwxNCBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbgogICAgIGlmICghbV93ZWJWaWV3LT5zZXR0aW5nc0ltcGwoKS0+YXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQogICAgICAgICBjb21wdXRlZC5pbml0aWFsU2Nh
bGUgKj0gZGV2aWNlU2NhbGVGYWN0b3I7CiAKKyAgICBpZiAobV93ZWJWaWV3LT5zZXR0aW5nc0lt
cGwoKS0+c3VwcG9ydERlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RHBpKCkpIHsKKyAgICAgICAgZmxv
YXQgdGFyZ2V0RGVuc2l0eURwaUZhY3RvciA9IGNhbGN1bGF0ZVRhcmdldERlbnNpdHlEcGlGYWN0
b3IoYXJndW1lbnRzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGNvbXB1dGVkLmluaXRp
YWxTY2FsZSAqPSB0YXJnZXREZW5zaXR5RHBpRmFjdG9yOworICAgICAgICBjb21wdXRlZC5taW5p
bXVtU2NhbGUgKj0gdGFyZ2V0RGVuc2l0eURwaUZhY3RvcjsKKyAgICAgICAgY29tcHV0ZWQubWF4
aW11bVNjYWxlICo9IHRhcmdldERlbnNpdHlEcGlGYWN0b3I7CisgICAgICAgIGNvbXB1dGVkLmxh
eW91dFNpemUuc2NhbGUoMS4wZiAvIHRhcmdldERlbnNpdHlEcGlGYWN0b3IpOworICAgIH0KKwog
ICAgIG1fd2ViVmlldy0+c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcihjb21wdXRlZC5pbml0aWFs
U2NhbGUpOwogICAgIG1fd2ViVmlldy0+c2V0Rml4ZWRMYXlvdXRTaXplKGZsb29yZWRJbnRTaXpl
KGNvbXB1dGVkLmxheW91dFNpemUpKTsKICAgICBtX3dlYlZpZXctPnNldERldmljZVNjYWxlRmFj
dG9yKGRldmljZVNjYWxlRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGJlZDBjMzMuLjdjMjE3NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTcsNiArNTcsNyBA
QCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAg
ICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShmYWxzZSkKICAgICAsIG1f
ZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZG91YmxlVGFwVG9a
b29tRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fc3VwcG9ydERlcHJlY2F0ZWRUYXJnZXREZW5zaXR5
RHBpKGZhbHNlKQogewogICAgIEFTU0VSVChzZXR0aW5ncyk7CiB9CkBAIC0xOTQsNiArMTk1LDEx
IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wgY2FuT3BlbldpbmRvCiAgICAgbV9zZXR0aW5ncy0+c2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjYW5PcGVuV2luZG93cyk7CiB9CiAKK3ZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkoYm9v
bCBzdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkpCit7CisgICAgbV9zdXBwb3J0RGVw
cmVjYXRlZFRhcmdldERlbnNpdHlEcGkgPSBzdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlE
cGk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93
cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKQogewogICAgIG1fc2V0dGluZ3MtPnNldFN1
cHBvcnRzTXVsdGlwbGVXaW5kb3dzKHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNzNkYmQ0YS4uMWFi
MjIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
QEAgLTE0OSw2ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NT
dGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250
RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEcGkoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoYm9vbCk7CkBAIC0xODAsNiAr
MTgxLDcgQEAgcHVibGljOgogICAgIGJvb2wgZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2dlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkOyB9CiAgICAgYm9vbCBk
b3VibGVUYXBUb1pvb21FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3VibGVUYXBUb1pvb21F
bmFibGVkOyB9CiAgICAgYm9vbCBwZXJUaWxlUGFpbnRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOyB9CisgICAgYm9vbCBzdXBwb3J0RGVwcmVjYXRl
ZFRhcmdldERlbnNpdHlEcGkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnREZXByZWNhdGVkVGFy
Z2V0RGVuc2l0eURwaTsgfQogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBtX3Nl
dHRpbmdzOwpAQCAtMTkzLDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlZmVycmVk
SW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RvdWJsZVRhcFRvWm9vbUVuYWJsZWQ7
CiAgICAgYm9vbCBtX3BlclRpbGVQYWludGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3N1cHBvcnRE
ZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCmluZGV4IGYw
ODQ5MzIuLjZmYzI4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKQEAgLTU5Nyw2ICs1OTcsMjkgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgcGFn
ZVNjYWxlRmFjdG9yRG9lc05vdEFwcGx5Q3NzVHJhbnNmb3JtKQogICAgIEVYUEVDVF9FUSg5ODAs
IHdlYlZpZXdJbXBsLT5wYWdlKCktPm1haW5GcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKS0+dW5z
Y2FsZWREb2N1bWVudFJlY3QoKS53aWR0aCgpKTsKICAgICBFWFBFQ1RfRVEoOTgwLCB3ZWJWaWV3
SW1wbC0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+Y29udGVudHNTaXplKCkud2lkdGgo
KSk7CiB9CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIHRhcmdldERlbnNpdHlEcGlIaWdoKQorewor
ICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpZXdwb3J0LXRhcmdldC1kZW5zaXR5ZHBp
LWhpZ2guaHRtbCIpOworCisgICAgRml4ZWRMYXlvdXRUZXN0V2ViVmlld0NsaWVudCBjbGllbnQ7
CisgICAgY2xpZW50Lm1fc2NyZWVuSW5mby5kZXZpY2VTY2FsZUZhY3RvciA9IDQuMGYgLyAzLjBm
OworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9
IDQ4MDsKKworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdB
bmRMb2FkKG1fYmFzZVVSTCArICJ2aWV3cG9ydC10YXJnZXQtZGVuc2l0eWRwaS1oaWdoLmh0bWwi
LCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0
aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBt
X3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNl
dHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRp
bmdzKCktPnNldFN1cHBvcnREZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURwaSh0cnVlKTsKKyAgICBt
X3dlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7
CisKKyAgICAvLyBoaWdoLWRwaSA9IDI0MCwgZGV2aWNlLWRwaSA9IDE2MAorICAgIEVYUEVDVF9F
USh2aWV3cG9ydFdpZHRoICogKDI0MC4wZiAvIDE2MC4wZiksIG1fd2ViVmlldy0+Zml4ZWRMYXlv
dXRTaXplKCkud2lkdGgpOworICAgIEVYUEVDVF9FUSh2aWV3cG9ydEhlaWdodCAqICgyNDAuMGYg
LyAxNjAuMGYpLCBtX3dlYlZpZXctPmZpeGVkTGF5b3V0U2l6ZSgpLmhlaWdodCk7CisgICAgRVhQ
RUNUX0VRKDE2MC4wZiAvIDI0MC4wZiwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9
CiAjZW5kaWYKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgcGFnZVNjYWxlRmFjdG9yU2NhbGVzUGFp
bnRDbGlwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Zp
ZXdwb3J0LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2guaHRtbCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvZGF0YS92aWV3cG9ydC10YXJnZXQtZGVuc2l0eWRwaS1oaWdoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5YzU2YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS92aWV3cG9ydC10YXJnZXQtZGVuc2l0
eWRwaS1oaWdoLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1l
dGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCx0YXJnZXQtZGVu
c2l0eURwaT1oaWdoLWRwaScgLz4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBBIHBhZ2Ugd2l0
aCBhIHZpZXdwb3J0LgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="217450"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="217875"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196305</attachid>
            <date>2013-04-03 02:16:19 -0700</date>
            <delta_ts>2013-04-03 02:16:19 -0700</delta_ts>
            <desc>Dpi -&gt; DPI</desc>
            <filename>wk-110835.patch</filename>
            <type>text/plain</type>
            <size>13390</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MTUxZmRmLi5kZWM3YWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDQtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0YXJnZXQtZGVuc2l0eURwaSB2aWV3cG9y
dCBwcm9wZXJ0eSBlbXVsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgzNQorCisgICAgICAgIFRoZSB2YWx1ZSBpcyBvbmx5IHVzZWQgaW4g
dGhlIENocm9taXVtIHBvcnQsIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgc2V0dGlu
ZyBpcyBlbmFibGVkLgorCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBzdXBwb3J0aW5nIGV4
aXN0aW5nIFdlYlZpZXctYmFzZWQgYXBwbGljYXRpb25zCisgICAgICAgIHRoYXQgcmVseSBvbiB0
aGlzIHByb3BlcnR5LgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFRh
cmdldERlbnNpdHlEUElWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFZpZXdwb3J0RmVhdHVyZSk6CisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRBcmd1bWVu
dHMpOgorICAgICAgICAoVmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHM6Om9wZXJhdG9yPT0pOgorCiAyMDEzLTA0LTAzICBNaWtlIFdlc3QgIDxt
a3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXh0cmFjdCBVUkwgdGhhdCBkb2Vzbid0IGlu
aGVyaXQgYSBwYXJlbnQncyBTZWN1cml0eU9yaWdpbiBvdXQgaW50byBhIGNvbnN0YW50LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggM2QyNDJkNi4uYzk0YWZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC0zODIsNiAr
MzgyLDI1IEBAIHN0YXRpYyBmbG9hdCBmaW5kVXNlclNjYWxhYmxlVmFsdWUoY29uc3QgU3RyaW5n
JiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTCiAgICAgcmV0dXJuIDE7CiB9CiAKK3N0
YXRpYyBmbG9hdCBmaW5kVGFyZ2V0RGVuc2l0eURQSVZhbHVlKGNvbnN0IFN0cmluZyYga2V5U3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlU3RyaW5nLCAiZGV2aWNlLWRwaSIpKQorICAg
ICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlRFBJOworICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZSh2YWx1ZVN0cmluZywgImxvdy1kcGkiKSkKKyAgICAgICAgcmV0dXJu
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUxvd0RQSTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UodmFsdWVTdHJpbmcsICJtZWRpdW0tZHBpIikpCisgICAgICAgIHJldHVybiBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVNZWRpdW1EUEk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVl
U3RyaW5nLCAiaGlnaC1kcGkiKSkKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpW
YWx1ZUhpZ2hEUEk7CisKKyAgICBib29sIG9rOworICAgIGZsb2F0IHZhbHVlID0gbnVtZXJpY1By
ZWZpeChrZXlTdHJpbmcsIHZhbHVlU3RyaW5nLCBkb2N1bWVudCwgJm9rKTsKKyAgICBpZiAoIW9r
IHx8IHZhbHVlIDwgNzAgfHwgdmFsdWUgPiA0MDApCisgICAgICAgIHJldHVybiBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCiB2b2lkIHNldFZp
ZXdwb3J0RmVhdHVyZShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1
ZVN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50LCB2b2lkKiBkYXRhKQogewogICAgIFZpZXdwb3J0
QXJndW1lbnRzKiBhcmd1bWVudHMgPSBzdGF0aWNfY2FzdDxWaWV3cG9ydEFyZ3VtZW50cyo+KGRh
dGEpOwpAQCAtMzk4LDkgKzQxNywxMCBAQCB2b2lkIHNldFZpZXdwb3J0RmVhdHVyZShjb25zdCBT
dHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZywgRG9jdQogICAgICAg
ICBhcmd1bWVudHMtPm1heFpvb20gPSBmaW5kU2NhbGVWYWx1ZShrZXlTdHJpbmcsIHZhbHVlU3Ry
aW5nLCBkb2N1bWVudCk7CiAgICAgZWxzZSBpZiAoa2V5U3RyaW5nID09ICJ1c2VyLXNjYWxhYmxl
IikKICAgICAgICAgYXJndW1lbnRzLT51c2VyWm9vbSA9IGZpbmRVc2VyU2NhbGFibGVWYWx1ZShr
ZXlTdHJpbmcsIHZhbHVlU3RyaW5nLCBkb2N1bWVudCk7Ci0gICAgZWxzZSBpZiAoa2V5U3RyaW5n
ID09ICJ0YXJnZXQtZGVuc2l0eWRwaSIpCisgICAgZWxzZSBpZiAoa2V5U3RyaW5nID09ICJ0YXJn
ZXQtZGVuc2l0eWRwaSIpIHsKKyAgICAgICAgYXJndW1lbnRzLT5kZXByZWNhdGVkVGFyZ2V0RGVu
c2l0eURQSSA9IGZpbmRUYXJnZXREZW5zaXR5RFBJVmFsdWUoa2V5U3RyaW5nLCB2YWx1ZVN0cmlu
ZywgZG9jdW1lbnQpOwogICAgICAgICByZXBvcnRWaWV3cG9ydFdhcm5pbmcoZG9jdW1lbnQsIFRh
cmdldERlbnNpdHlEcGlVbnN1cHBvcnRlZCwgU3RyaW5nKCksIFN0cmluZygpKTsKLSAgICBlbHNl
CisgICAgfSBlbHNlCiAgICAgICAgIHJlcG9ydFZpZXdwb3J0V2FybmluZyhkb2N1bWVudCwgVW5y
ZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudEtleUVycm9yLCBrZXlTdHJpbmcsIFN0cmluZygpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCA1NGNlNzBhLi4x
N2FmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaApAQCAtNzMsNyAr
NzMsMTEgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzIHsKICAgICAgICAgVmFsdWVEZXZpY2VX
aWR0aCA9IC0yLAogICAgICAgICBWYWx1ZURldmljZUhlaWdodCA9IC0zLAogICAgICAgICBWYWx1
ZVBvcnRyYWl0ID0gLTQsCi0gICAgICAgIFZhbHVlTGFuZHNjYXBlID0gLTUKKyAgICAgICAgVmFs
dWVMYW5kc2NhcGUgPSAtNSwKKyAgICAgICAgVmFsdWVEZXZpY2VEUEkgPSAtNiwKKyAgICAgICAg
VmFsdWVMb3dEUEkgPSAtNywKKyAgICAgICAgVmFsdWVNZWRpdW1EUEkgPSAtOCwKKyAgICAgICAg
VmFsdWVIaWdoRFBJID0gLTkKICAgICB9OwogCiAgICAgVmlld3BvcnRBcmd1bWVudHMoVHlwZSB0
eXBlID0gSW1wbGljaXQpCkBAIC04OSw2ICs5Myw3IEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50
cyB7CiAgICAgICAgICwgbWF4Wm9vbShWYWx1ZUF1dG8pCiAgICAgICAgICwgdXNlclpvb20oVmFs
dWVBdXRvKQogICAgICAgICAsIG9yaWVudGF0aW9uKFZhbHVlQXV0bykKKyAgICAgICAgLCBkZXBy
ZWNhdGVkVGFyZ2V0RGVuc2l0eURQSShWYWx1ZUF1dG8pCiAgICAgewogICAgIH0KIApAQCAtMTA2
LDYgKzExMSw3IEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgZmxvYXQgbWF4Wm9v
bTsKICAgICBmbG9hdCB1c2VyWm9vbTsKICAgICBmbG9hdCBvcmllbnRhdGlvbjsKKyAgICBmbG9h
dCBkZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURQSTsgLy8gT25seSB1c2VkIGZvciBBbmRyb2lkIFdl
YlZpZXcKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgb3Ro
ZXIpIGNvbnN0CiAgICAgewpAQCAtMTIxLDcgKzEyNyw4IEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3Vt
ZW50cyB7CiAgICAgICAgICAgICAmJiBtaW5ab29tID09IG90aGVyLm1pblpvb20KICAgICAgICAg
ICAgICYmIG1heFpvb20gPT0gb3RoZXIubWF4Wm9vbQogICAgICAgICAgICAgJiYgdXNlclpvb20g
PT0gb3RoZXIudXNlclpvb20KLSAgICAgICAgICAgICYmIG9yaWVudGF0aW9uID09IG90aGVyLm9y
aWVudGF0aW9uOworICAgICAgICAgICAgJiYgb3JpZW50YXRpb24gPT0gb3RoZXIub3JpZW50YXRp
b24KKyAgICAgICAgICAgICYmIGRlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJID09IG90aGVyLmRl
cHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGIxZThkODIuLmJkZGY3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTMtMDQtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0YXJnZXQtZGVuc2l0
eURwaSB2aWV3cG9ydCBwcm9wZXJ0eSBlbXVsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDgzNQorCisgICAgICAgIFRoZSB2YWx1ZSBpcyBv
bmx5IHVzZWQgaW4gdGhlIENocm9taXVtIHBvcnQsIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAg
ICAgICAgc2V0dGluZyBpcyBlbmFibGVkLgorCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBz
dXBwb3J0aW5nIGV4aXN0aW5nIFdlYlZpZXctYmFzZWQgYXBwbGljYXRpb25zCisgICAgICAgIHRo
YXQgcmVseSBvbiB0aGlzIHByb3BlcnR5LgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYlNldHRp
bmdzKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpjYWxjdWxhdGVUYXJnZXREZW5zaXR5RFBJRmFjdG9yKToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3Bl
cnRpZXNEaWRDaGFuZ2UpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0U3VwcG9ydERlcHJlY2F0ZWRUYXJnZXREZW5z
aXR5RFBJKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1w
bC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0
dGluZ3NJbXBsOjpzdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEUEkpOgorICAgICAgICAq
IHRlc3RzL1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS92aWV3cG9ydC10
YXJnZXQtZGVuc2l0eWRwaS1oaWdoLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA0LTAyICBKYW1lcyBD
cmFpZyAgPGphbWVzQGNvb2tpZWNyb29rLmNvbT4KIAogICAgICAgICBBWFJvbGVEZXNjcmlwdG9u
IGZvciBETCBpcyAibGlzdCI7IHNob3VsZCBiZSAiZGVzY3JpcHRpb24gbGlzdCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGNmYjdjNmYuLmUxNDZh
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAt
MTUzLDYgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hyaW5rc1N0YW5k
YWxvbmVJbWFnZXNUb0ZpdChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YW5kYXJk
Rm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9O
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnREZXByZWNhdGVkVGFyZ2V0RGVuc2l0
eURQSShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRzTXVsdGlwbGVXaW5k
b3dzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6YWJs
ZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCmluZGV4IGVhOTJmOWQuLmUyZWM4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02MjQsNiArNjI0LDIxIEBAIHZv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2x0aXBUZXh0
LCBUZXh0RGlyZWN0aW9uIGRpcikKICAgICAgICAgdG9vbHRpcFRleHQsIHRleHREaXJlY3Rpb24p
OwogfQogCisKK3N0YXRpYyBmbG9hdCBjYWxjdWxhdGVUYXJnZXREZW5zaXR5RFBJRmFjdG9yKGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KQoreworICAgIGZsb2F0IHRhcmdldERQSSA9IC0xLjBmOworICAgIGlmIChhcmd1bWVudHMuZGVw
cmVjYXRlZFRhcmdldERlbnNpdHlEUEkgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlTG93RFBJ
KQorICAgICAgICB0YXJnZXREUEkgPSAxMjAuMGY7CisgICAgZWxzZSBpZiAoYXJndW1lbnRzLmRl
cHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZU1lZGl1
bURQSSkKKyAgICAgICAgdGFyZ2V0RFBJID0gMTYwLjBmOworICAgIGVsc2UgaWYgKGFyZ3VtZW50
cy5kZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURQSSA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVI
aWdoRFBJKQorICAgICAgICB0YXJnZXREUEkgPSAyNDAuMGY7CisgICAgZWxzZSBpZiAoYXJndW1l
bnRzLmRlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1
ZUF1dG8gJiYgYXJndW1lbnRzLmRlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJICE9IFZpZXdwb3J0
QXJndW1lbnRzOjpWYWx1ZURldmljZURQSSkKKyAgICAgICAgdGFyZ2V0RFBJID0gYXJndW1lbnRz
LmRlcHJlY2F0ZWRUYXJnZXREZW5zaXR5RFBJOworICAgIHJldHVybiB0YXJnZXREUEkgPiAwID8g
KGRldmljZVNjYWxlRmFjdG9yICogMTIwLjBmKSAvIHRhcmdldERQSSA6IDEuMGY7Cit9CisKIHZv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3QKIHsKICNpZiBFTkFCTEUo
VklFV1BPUlQpCkBAIC02NDcsNiArNjYyLDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVuCiAg
ICAgaWYgKGFyZ3VtZW50cy56b29tID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gJiYg
IW1fd2ViVmlldy0+c2V0dGluZ3NJbXBsKCktPmluaXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUo
KSkKICAgICAgICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlID0gMS4wZjsKIAorICAgIGlmIChtX3dl
YlZpZXctPnNldHRpbmdzSW1wbCgpLT5zdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEUEko
KSkgeworICAgICAgICBmbG9hdCB0YXJnZXREZW5zaXR5RFBJRmFjdG9yID0gY2FsY3VsYXRlVGFy
Z2V0RGVuc2l0eURQSUZhY3Rvcihhcmd1bWVudHMsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAg
ICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IHRhcmdldERlbnNpdHlEUElGYWN0b3I7CisgICAg
ICAgIGNvbXB1dGVkLm1pbmltdW1TY2FsZSAqPSB0YXJnZXREZW5zaXR5RFBJRmFjdG9yOworICAg
ICAgICBjb21wdXRlZC5tYXhpbXVtU2NhbGUgKj0gdGFyZ2V0RGVuc2l0eURQSUZhY3RvcjsKKyAg
ICAgICAgY29tcHV0ZWQubGF5b3V0U2l6ZS5zY2FsZSgxLjBmIC8gdGFyZ2V0RGVuc2l0eURQSUZh
Y3Rvcik7CisgICAgfQorCiAgICAgbV93ZWJWaWV3LT5zZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9y
KGNvbXB1dGVkLmluaXRpYWxTY2FsZSk7CiAgICAgbV93ZWJWaWV3LT5zZXRGaXhlZExheW91dFNp
emUoZmxvb3JlZEludFNpemUoY29tcHV0ZWQubGF5b3V0U2l6ZSkpOwogICAgIG1fd2ViVmlldy0+
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggYmVkMGMzMy4uOGRiOTZk
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cApAQCAtNTcsNiArNTcsNyBAQCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0
aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2Fs
ZShmYWxzZSkKICAgICAsIG1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAg
ICAsIG1fZG91YmxlVGFwVG9ab29tRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fc3VwcG9ydERlcHJl
Y2F0ZWRUYXJnZXREZW5zaXR5RFBJKGZhbHNlKQogewogICAgIEFTU0VSVChzZXR0aW5ncyk7CiB9
CkBAIC0xOTQsNiArMTk1LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wgY2FuT3BlbldpbmRvCiAgICAgbV9zZXR0
aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjYW5PcGVuV2lu
ZG93cyk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0RGVwcmVjYXRlZFRh
cmdldERlbnNpdHlEUEkoYm9vbCBzdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEUEkpCit7
CisgICAgbV9zdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEUEkgPSBzdXBwb3J0RGVwcmVj
YXRlZFRhcmdldERlbnNpdHlEUEk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBw
b3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKQogewogICAg
IG1fc2V0dGluZ3MtPnNldFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKHN1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
aW5kZXggNzNkYmQ0YS4uNjZkNjZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTE0OSw2ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0g
VVNDUklQVF9DT01NT04pOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0RGVwcmVjYXRlZFRh
cmdldERlbnNpdHlEUEkoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRzTXVsdGlw
bGVXaW5kb3dzKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTeW5jWEhSSW5Eb2N1bWVudHNF
bmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUo
Ym9vbCk7CkBAIC0xODAsNiArMTgxLDcgQEAgcHVibGljOgogICAgIGJvb2wgZ2VzdHVyZVRhcEhp
Z2hsaWdodEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVUYXBIaWdobGlnaHRFbmFi
bGVkOyB9CiAgICAgYm9vbCBkb3VibGVUYXBUb1pvb21FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9kb3VibGVUYXBUb1pvb21FbmFibGVkOyB9CiAgICAgYm9vbCBwZXJUaWxlUGFpbnRpbmdFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOyB9CisgICAgYm9v
bCBzdXBwb3J0RGVwcmVjYXRlZFRhcmdldERlbnNpdHlEUEkoKSBjb25zdCB7IHJldHVybiBtX3N1
cHBvcnREZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURQSTsgfQogCiBwcml2YXRlOgogICAgIFdlYkNv
cmU6OlNldHRpbmdzKiBtX3NldHRpbmdzOwpAQCAtMTkzLDYgKzE5NSw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RvdWJs
ZVRhcFRvWm9vbUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BlclRpbGVQYWludGluZ0VuYWJsZWQ7Cisg
ICAgYm9vbCBtX3N1cHBvcnREZXByZWNhdGVkVGFyZ2V0RGVuc2l0eURQSTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwCmluZGV4IDAwNTgwMWMuLjMxYzI2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKQEAgLTU3Myw2ICs1NzMsMjkgQEAgVEVTVF9G
KFdlYkZyYW1lVGVzdCwgcGFnZVNjYWxlRmFjdG9yRG9lc05vdEFwcGx5Q3NzVHJhbnNmb3JtKQog
ICAgIEVYUEVDVF9FUSg5ODAsIHdlYlZpZXdJbXBsLT5wYWdlKCktPm1haW5GcmFtZSgpLT5jb250
ZW50UmVuZGVyZXIoKS0+dW5zY2FsZWREb2N1bWVudFJlY3QoKS53aWR0aCgpKTsKICAgICBFWFBF
Q1RfRVEoOTgwLCB3ZWJWaWV3SW1wbC0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+Y29u
dGVudHNTaXplKCkud2lkdGgoKSk7CiB9CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIHRhcmdldERl
bnNpdHlEcGlIaWdoKQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpZXdwb3J0
LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2guaHRtbCIpOworCisgICAgRml4ZWRMYXlvdXRUZXN0V2Vi
Vmlld0NsaWVudCBjbGllbnQ7CisgICAgY2xpZW50Lm1fc2NyZWVuSW5mby5kZXZpY2VTY2FsZUZh
Y3RvciA9IDQuMGYgLyAzLjBmOworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGlu
dCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBl
cnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1fYmFzZVVSTCArICJ2aWV3cG9ydC10YXJnZXQtZGVu
c2l0eWRwaS1oaWdoLmh0bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNl
dHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7Cisg
ICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsK
KyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAg
ICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFN1cHBvcnREZXByZWNhdGVkVGFyZ2V0RGVuc2l0
eURQSSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgs
IHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICAvLyBoaWdoLWRwaSA9IDI0MCwgZGV2aWNlLWRwaSA9
IDE2MAorICAgIEVYUEVDVF9FUSh2aWV3cG9ydFdpZHRoICogKDI0MC4wZiAvIDE2MC4wZiksIG1f
d2ViVmlldy0+Zml4ZWRMYXlvdXRTaXplKCkud2lkdGgpOworICAgIEVYUEVDVF9FUSh2aWV3cG9y
dEhlaWdodCAqICgyNDAuMGYgLyAxNjAuMGYpLCBtX3dlYlZpZXctPmZpeGVkTGF5b3V0U2l6ZSgp
LmhlaWdodCk7CisgICAgRVhQRUNUX0VRKDE2MC4wZiAvIDI0MC4wZiwgbV93ZWJWaWV3LT5wYWdl
U2NhbGVGYWN0b3IoKSk7Cit9CiAjZW5kaWYKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgcGFnZVNj
YWxlRmFjdG9yU2NhbGVzUGFpbnRDbGlwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9kYXRhL3ZpZXdwb3J0LXRhcmdldC1kZW5zaXR5ZHBpLWhpZ2guaHRtbCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS92aWV3cG9ydC10YXJnZXQtZGVuc2l0eWRw
aS1oaWdoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5YzU2YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS92aWV3
cG9ydC10YXJnZXQtZGVuc2l0eWRwaS1oaWdoLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmlj
ZS13aWR0aCx0YXJnZXQtZGVuc2l0eURwaT1oaWdoLWRwaScgLz4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICBBIHBhZ2Ugd2l0aCBhIHZpZXdwb3J0LgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>