<?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>80027</bug_id>
          
          <creation_ts>2012-03-01 07:30:50 -0800</creation_ts>
          <short_desc>[chromium] Increase size of Combo Box Options for touch and high DPI devices</short_desc>
          <delta_ts>2012-03-21 07:20:10 -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>WebCore Misc.</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>
          <dependson>80799</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tim Dresser">tdresser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fishd</cc>
    
    <cc>fsamuel</cc>
    
    <cc>rjkroege</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>568652</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-01 07:30:50 -0800</bug_when>
    <thetext>Combo box popups are currently unscaled by the DefaultDeviceScaleFactor, making them too small on high DPI devices.
The &lt;option&gt; elements also need additional padding when touch is enabled, to ensure the hitboxes are large enough to touch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568681</commentid>
    <comment_count>1</comment_count>
      <attachid>129710</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-01 08:31:08 -0800</bug_when>
    <thetext>Created attachment 129710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572160</commentid>
    <comment_count>2</comment_count>
      <attachid>129710</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-06 14:40:45 -0800</bug_when>
    <thetext>Comment on attachment 129710
Patch

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

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:49
&gt; +#include &quot;Settings.h&quot;

do you really need this include?

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:357
&gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;

why make this a reference?  it seems like making a copy of the int should be sufficient unless you really need the indirection.

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:397
&gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;

ditto

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:401
&gt; +        // Height and y will both be evenly divisible by scale.

should you perhaps assert this?  it seems like rounding errors if possible would be annoying.

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:632
&gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;

ditto

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:634
&gt; +    if (WebCore::RuntimeEnabledFeatures::touchEnabled())

you should not need the &quot;WebCore::&quot; prefix

&gt; Source/WebCore/rendering/RenderMenuList.cpp:312
&gt; +    const int&amp; scale = document()-&gt;page()-&gt;settings()-&gt;defaultDeviceScaleFactor();

no reference

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:637
&gt; +        // That tap triggered a select popup which is the same as the one that

so we will see a flickering of the select popup?  is there some way to mitigate / avoid that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572847</commentid>
    <comment_count>3</comment_count>
      <attachid>130614</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-07 06:37:50 -0800</bug_when>
    <thetext>Created attachment 130614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572848</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-07 06:39:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 129710 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129710&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:49
&gt; &gt; +#include &quot;Settings.h&quot;
&gt; 
&gt; do you really need this include?
&gt; 

Nope, removed.

&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:357
&gt; &gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;
&gt; 
&gt; why make this a reference?  it seems like making a copy of the int should be sufficient unless you really need the indirection.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:397
&gt; &gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:401
&gt; &gt; +        // Height and y will both be evenly divisible by scale.
&gt; 
&gt; should you perhaps assert this?  it seems like rounding errors if possible would be annoying.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:632
&gt; &gt; +    const int&amp; scale = m_settings.defaultDeviceScaleFactor;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupListBox.cpp:634
&gt; &gt; +    if (WebCore::RuntimeEnabledFeatures::touchEnabled())
&gt; 
&gt; you should not need the &quot;WebCore::&quot; prefix
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/RenderMenuList.cpp:312
&gt; &gt; +    const int&amp; scale = document()-&gt;page()-&gt;settings()-&gt;defaultDeviceScaleFactor();
&gt; 
&gt; no reference
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:637
&gt; &gt; +        // That tap triggered a select popup which is the same as the one that
&gt; 
&gt; so we will see a flickering of the select popup?  is there some way to mitigate / avoid that?

This code is parallel to Source/WebCore/rendering/RenderMenuList.cpp:516. The popup is never shown, as it is hidden before a render occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575038</commentid>
    <comment_count>5</comment_count>
      <attachid>130614</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-09 11:49:09 -0800</bug_when>
    <thetext>Comment on attachment 130614
Patch

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

Switch the &apos;const int scale&apos; to just &apos;int scale&apos;, and then R=me

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:356
&gt; +    const int scale = m_settings.defaultDeviceScaleFactor;

nit: no need for &apos;const&apos; in front of int here.  it is unnecessary verbosity.
we usually only write &apos;const int&apos; when giving a name to an int literal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575174</commentid>
    <comment_count>6</comment_count>
      <attachid>131093</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-09 13:46:16 -0800</bug_when>
    <thetext>Created attachment 131093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575200</commentid>
    <comment_count>7</comment_count>
      <attachid>131103</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-09 14:04:42 -0800</bug_when>
    <thetext>Created attachment 131103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575208</commentid>
    <comment_count>8</comment_count>
      <attachid>131104</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-09 14:11:45 -0800</bug_when>
    <thetext>Created attachment 131104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575400</commentid>
    <comment_count>9</comment_count>
      <attachid>131104</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 18:40:41 -0800</bug_when>
    <thetext>Comment on attachment 131104
Patch

Clearing flags on attachment: 131104

Committed r110359: &lt;http://trac.webkit.org/changeset/110359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578556</commentid>
    <comment_count>10</comment_count>
      <attachid>131882</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-14 10:54:08 -0700</bug_when>
    <thetext>Created attachment 131882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578557</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-14 10:57:03 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=131882) [details]
&gt; Patch

The most recent patch ensures that RuntimeEnabledFeatures::touch_enabled() is false for the duration of SelectPopupMenuTest. This fixes the unit test failure in SelectPopupMenuTest.ClickItem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583402</commentid>
    <comment_count>12</comment_count>
      <attachid>131882</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 13:24:49 -0700</bug_when>
    <thetext>Comment on attachment 131882
Patch

Rejecting attachment 131882 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
g file Source/WebCore/rendering/RenderMenuList.cpp
patching file Source/WebKit/chromium/src/WebViewImpl.cpp
Hunk #1 FAILED at 602.
Hunk #2 succeeded at 2753 (offset 62 lines).
1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/chromium/src/WebViewImpl.cpp.rej
patching file Source/WebKit/chromium/tests/PopupMenuTest.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Darin Fish...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12000453</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584079</commentid>
    <comment_count>13</comment_count>
      <attachid>133034</attachid>
    <who name="Tim Dresser">tdresser</who>
    <bug_when>2012-03-21 06:34:31 -0700</bug_when>
    <thetext>Created attachment 133034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584109</commentid>
    <comment_count>14</comment_count>
      <attachid>133034</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 07:20:05 -0700</bug_when>
    <thetext>Comment on attachment 133034
Patch

Clearing flags on attachment: 133034

Committed r111539: &lt;http://trac.webkit.org/changeset/111539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584110</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 07:20:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129710</attachid>
            <date>2012-03-01 08:31:08 -0800</date>
            <delta_ts>2012-03-07 06:37:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120301113107.patch</filename>
            <type>text/plain</type>
            <size>12525</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjMWIzZmZmMjZjZTY2
ZjM1YTA0YzgyNThiZThlMzZjMWQyYWM3OS4uM2Y0ZDdiOWIxN2ZlMzE5Zjk4YjczMDJlODczZWU5
N2QyMmI0MTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTAxICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNj
YWxlIENvbWJvIGJveCBwb3B1cHMgYnkgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yLCBhbmQgYWRk
IHBhZGRpbmcgdG8KKyAgICAgICAgPG9wdGlvbj4gZWxlbWVudHMgd2hlbiB0b3VjaCBpcyBlbmFi
bGVkLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIC0tZGVmYXVsdC1kZXZpY2Utc2Nh
bGUtZmFjdG9yPTEsMiBhbmQgdW5zZXQuCisgICAgICAgIEVhY2ggb2YgdGhlc2Ugd2VyZSB0ZXN0
ZWQgd2l0aCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQKKyAgICAgICAgc2V0
IHRvIHRydWUgYW5kIGZhbHNlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBM
aXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpwYWludFJvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cExpc3RCb3g6OmdldFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBMaXN0Qm94Lmg6CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06Om9wdGlvblBhZGRpbmdGb3JUb3VjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2V0T3B0aW9uUGFkZGluZ0ZvclRv
dWNoKToKKyAgICAgICAgKFBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCk6CisKIDIwMTItMDItMjkgIEphc29uIExpdSAgPGphc29uLmxpdUB0b3JjaG1vYmls
ZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldTWFrZSBhYm91dDpjYWNoZSBmZWF0dXJl
IGF2YWlsYWJsZSBpbiByZWxlYXNlIHZlcnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDg5ZDlmZDMyMjg4MDU1NWIxN2M2OTE3NjBjYjY2NjNjNzEyMzVlY2YuLmIxNjc1MmE4MGU0
OTdkMTg4ZTIwYWIxMzcwMGEwOTY5M2YzMmVkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMDEgIFRpbSBEcmVzc2VyICA8dGRyZXNzZXJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gSW5jcmVhc2Ugc2l6ZSBvZiBDb21ibyBC
b3ggT3B0aW9ucyBmb3IgdG91Y2ggYW5kIGhpZ2ggRFBJIGRldmljZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisKIDIwMTItMDIt
MjkgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gRml4IG5hdmlnYXRpb24gc3RhcnQgdGltZSBvbiBjcm9zcy1yZW5kZXJlciBuYXZp
Z2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1
cExpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0
Qm94LmNwcAppbmRleCBjOTgwYWQ2MjNhMWYzNDVkOTE0MDI3NTRmNDM0YTY0NTdhNGZlMjU3Li4z
NWIzYmEyZTgwNDk0MTI5MTc0Y2MyNDMwM2IxYmMyYjExOWQyYWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKQEAgLTQ0LDcgKzQ0
LDkgQEAKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlBvcHVwTWVu
dUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbmNsdWRlICJUZXh0
UnVuLmgiCiAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTM1Miw2ICszNTQsNyBAQCB2b2lkIFBvcHVw
TGlzdEJveDo6dHlwZUFoZWFkRmluZChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGV2ZW50
KQogCiB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3Qg
SW50UmVjdCYgcmVjdCkKIHsKKyAgICBjb25zdCBpbnQmIHNjYWxlID0gbV9zZXR0aW5ncy5kZWZh
dWx0RGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgLy8gYWRqdXN0IGNvb3JkcyBmb3Igc2Nyb2xsZWQg
ZnJhbWUKICAgICBJbnRSZWN0IHIgPSBpbnRlcnNlY3Rpb24ocmVjdCwgZnJhbWVSZWN0KCkpOwog
ICAgIGludCB0eCA9IHgoKSAtIHNjcm9sbFgoKTsKQEAgLTM2Niw2ICszNjksOCBAQCB2b2lkIFBv
cHVwTGlzdEJveDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgSW50UmVjdCYgcmVj
dCkKIAogICAgIC8vIEZJWE1FOiBDYW4gd2Ugb3B0aW1pemUgc2Nyb2xsaW5nIHRvIG5vdCByZXF1
aXJlIHJlcGFpbnRpbmcgdGhlIGVudGlyZQogICAgIC8vIHdpbmRvdz8gU2hvdWxkIHdlPworICAg
IGlmIChzY2FsZSAhPSAxKQorICAgICAgICBnYy0+c2NhbGUoRmxvYXRTaXplKHNjYWxlLCBzY2Fs
ZSkpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtSXRlbXMoKTsgKytpKQogICAgICAgICBw
YWludFJvdyhnYywgciwgaSk7CiAKQEAgLTM4OSw2ICszOTQsMTcgQEAgdm9pZCBQb3B1cExpc3RC
b3g6OnBhaW50Um93KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIHJlY3QsIGlu
dCByb3dJbmQKICAgICBpZiAoIXJvd1JlY3QuaW50ZXJzZWN0cyhyZWN0KSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgY29uc3QgaW50JiBzY2FsZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNj
YWxlRmFjdG9yOworICAgIC8vIFJvd1JlY3QgaGFzIGFscmVhZHkgYmVlbiBzY2FsZWQgYnkgdGhl
IGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvci4KKyAgICAvLyBUbyBhdm9pZCBzY2FsaW5nIGl0IHR3
aWNlLCB3ZSBoYXZlIHRvIHVuc2NhbGUgaXQgYmVmb3JlIGRyYXdpbmcuCisgICAgaWYgKHNjYWxl
ICE9IDEpIHsKKyAgICAgICAgLy8gSGVpZ2h0IGFuZCB5IHdpbGwgYm90aCBiZSBldmVubHkgZGl2
aXNpYmxlIGJ5IHNjYWxlLgorICAgICAgICAvLyByb3dSZWN0LnggaXMgYWx3YXlzIDAuCisgICAg
ICAgIHJvd1JlY3Quc2V0WShyb3dSZWN0LnkoKSAvIHNjYWxlKTsKKyAgICAgICAgcm93UmVjdC5z
ZXRIZWlnaHQocm93UmVjdC5oZWlnaHQoKSAvIHNjYWxlKTsKKyAgICAgICAgcm93UmVjdC5zZXRX
aWR0aChjZWlsZihzdGF0aWNfY2FzdDxmbG9hdD4ocm93UmVjdC53aWR0aCgpKSAvIHNjYWxlKSk7
CisgICAgfQorCiAgICAgUG9wdXBNZW51U3R5bGUgc3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVt
U3R5bGUocm93SW5kZXgpOwogCiAgICAgLy8gUGFpbnQgYmFja2dyb3VuZApAQCAtNjEzLDE1ICs2
MjksMTYgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnNldE9yaWdpbmFsSW5kZXgoaW50IGluZGV4KQog
CiBpbnQgUG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4KQogewotICAgIGlmIChp
bmRleCA8IDApCi0gICAgICAgIHJldHVybiBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hl
aWdodCgpOwotCi0gICAgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShpbmRleCkuaXNEaXNw
bGF5Tm9uZSgpKQotICAgICAgICByZXR1cm4gUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dI
ZWlnaHQoKTsKKyAgICBjb25zdCBpbnQmIHNjYWxlID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3I7CisgICAgaW50IHBhZGRpbmdGb3JUb3VjaCA9IDA7CisgICAgaWYgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxlZCgpKQorICAgICAgICBwYWRk
aW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7
CisgICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlz
RGlzcGxheU5vbmUoKSkKKyAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVt
Um93SGVpZ2h0KCkgKiBzY2FsZTsKIAogICAgIC8vIFNlcGFyYXRvciByb3cgaGVpZ2h0IGlzIHRo
ZSBzYW1lIHNpemUgYXMgaXRzZWxmLgogICAgIGlmIChtX3BvcHVwQ2xpZW50LT5pdGVtSXNTZXBh
cmF0b3IoaW5kZXgpKQotICAgICAgICByZXR1cm4gbWF4KHNlcGFyYXRvckhlaWdodCwgUG9wdXBN
ZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBtYXgoc2Vw
YXJhdG9ySGVpZ2h0LCAoUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSkpICog
c2NhbGU7CiAKICAgICBTdHJpbmcgaWNvbiA9IG1fcG9wdXBDbGllbnQtPml0ZW1JY29uKGluZGV4
KTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShp
Y29uLnV0ZjgoKS5kYXRhKCkpKTsKQEAgLTYzMSw3ICs2NDgsNyBAQCBpbnQgUG9wdXBMaXN0Qm94
OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4KQogCiAgICAgaW50IGxpbmVQYWRkaW5nSGVpZ2h0ID0g
bV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkubWVudVR5cGUoKSA9PSBQb3B1cE1lbnVTdHlsZTo6
QXV0b2ZpbGxQb3B1cCA/IGtMaW5lUGFkZGluZ0hlaWdodCA6IDA7CiAgICAgaW50IGNhbGN1bGF0
ZWRSb3dIZWlnaHQgPSBtYXgoZm9udEhlaWdodCwgaWNvbkhlaWdodCkgKyBsaW5lUGFkZGluZ0hl
aWdodCAqIDI7Ci0gICAgcmV0dXJuIG1heChjYWxjdWxhdGVkUm93SGVpZ2h0LCBQb3B1cE1lbnVD
aHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpKTsKKyAgICByZXR1cm4gKG1heChjYWxjdWxhdGVk
Um93SGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpKSArIHBhZGRp
bmdGb3JUb3VjaCkgKiBzY2FsZTsKIH0KIAogSW50UmVjdCBQb3B1cExpc3RCb3g6OmdldFJvd0Jv
dW5kcyhpbnQgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oCmluZGV4IGRkMmU1OGRlZGRkOGYzOGQyNDYzZTYyM2FmNzkwMzhjYzUyM2Y4
NzkuLmI2ODUzMTNjYzQzMTliMTE0NjQyZjc1ZTA3OTc1MjlkNjg1YmMxYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCkBAIC03OSw2ICs3
OSw4IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHsKICAgICAvLyBXaGV0aGVyIHdl
IHNob3VsZCByZXN0cmljdCB0aGUgd2lkdGggb2YgdGhlIFBvcHVwTGlzdEJveCBvciBub3QuCiAg
ICAgLy8gQXV0b2NvbXBsZXRlIHBvcHVwcyBhcmUgcmVzdHJpY3RlZCwgY29tYm8tYm94ZXMgKHNl
bGVjdCB0YWdzKSBhcmVuJ3QuCiAgICAgYm9vbCByZXN0cmljdFdpZHRoT2ZMaXN0Qm94OworCisg
ICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKIH07CiAKIC8vIEEgY29udGFpbmVyIGZv
ciB0aGUgZGF0YSBmb3IgZWFjaCBtZW51IGl0ZW0gKGUuZy4gcmVwcmVzZW50ZWQgYnkgPG9wdGlv
bj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmNwcAppbmRleCAzYjJmMmFlOWZlMzQzMjhhYmNlZGIzZDk1YTE5ZjE4ZTUxMjk0
YzIwLi42MmUxMDA4ZmI5NmEwMGNlNWM0Mjg3MWY0ZDhjNDAxNWQ2NmE3MGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCkBAIC0zMSwxMSArMzEsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlBvcHVwTWVudUNocm9taXVtLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5o
IgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW50IFBv
cHVwTWVudUNocm9taXVtOjpzX21pbmltdW1Sb3dIZWlnaHQgPSAwOworaW50IFBvcHVwTWVudUNo
cm9taXVtOjpzX29wdGlvblBhZGRpbmdGb3JUb3VjaCA9IDMwOwogCiAvLyBUaGUgc2V0dGluZ3Mg
dXNlZCBmb3IgdGhlIGRyb3AgZG93biBtZW51LgogLy8gVGhpcyBpcyB0aGUgZGVsZWdhdGUgdXNl
ZCBpZiBub25lIGlzIHByb3ZpZGVkLgpAQCAtNjIsOCArNjgsMTQgQEAgUG9wdXBNZW51Q2hyb21p
dW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiAKIHZvaWQgUG9wdXBNZW51Q2hyb21pdW06OnNob3co
Y29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7Ci0gICAgaWYgKCFw
LnBvcHVwKQotICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQo
KSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwgZHJvcERvd25TZXR0aW5ncyk7CisgICAgaWYgKCFw
LnBvcHVwKSB7CisgICAgICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9
IGRyb3BEb3duU2V0dGluZ3M7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNj
YWxlRmFjdG9yID0KKyAgICAgICAgICAgIHYtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+
ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5k
ZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCisgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1
bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5l
cjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdz
KTsKKyAgICB9CiAgICAgcC5wb3B1cC0+c2hvd0luUmVjdChyLCB2LCBpbmRleCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5oCmluZGV4IDIwYmU2ZTE1M2NiZWQ3Y2FjYjM1MTZlMTkwMTQ5NzI3MTU1ZTRmMDEuLjZlOWFh
ODhiZTVlMzg1ZTBjOGU4NDgwNDJhMDRkNDg4ZWIxZDc4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaApAQCAtNTcsNiAr
NTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBtaW5pbXVtUm93SGVpZ2h0KCkgeyByZXR1
cm4gc19taW5pbXVtUm93SGVpZ2h0OyB9CiAgICAgc3RhdGljIHZvaWQgc2V0TWluaW11bVJvd0hl
aWdodChpbnQgbWluaW11bVJvd0hlaWdodCkgeyBzX21pbmltdW1Sb3dIZWlnaHQgPSBtaW5pbXVt
Um93SGVpZ2h0OyB9CiAKKyAgICBzdGF0aWMgaW50IG9wdGlvblBhZGRpbmdGb3JUb3VjaCgpIHsg
cmV0dXJuIHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoOyB9CisgICAgc3RhdGljIHZvaWQgc2V0T3B0
aW9uUGFkZGluZ0ZvclRvdWNoKGludCBvcHRpb25QYWRkaW5nRm9yVG91Y2gpIHsgc19vcHRpb25Q
YWRkaW5nRm9yVG91Y2ggPSBvcHRpb25QYWRkaW5nRm9yVG91Y2g7IH0KKwogcHJpdmF0ZToKICAg
ICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7
IH0KIApAQCAtNjQsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIFBvcHVwTWVudVByaXZhdGUgcDsK
IAogICAgIHN0YXRpYyBpbnQgc19taW5pbXVtUm93SGVpZ2h0OworICAgIHN0YXRpYyBpbnQgc19v
cHRpb25QYWRkaW5nRm9yVG91Y2g7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAzZjdhYzMwODE2
ZmY2ZGE3NjQzZjdjMjcyYmU5MGM1N2Y5MGVlMmM2Li5lOTU1M2IxMDhhYjc5MDNhZjAxNGFjMDdi
NDhhNTgwZTgzNjJiN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJCUi5oIgogI2luY2x1
ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgog
CkBAIC0zMDgsNiArMzA5LDkgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAg
ICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgog
ICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCks
IGZhbHNlLCB0cnVlKTsKICAgICBMYXlvdXRSZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRp
bmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7CisgICAgY29uc3QgaW50JiBzY2FsZSA9IGRv
Y3VtZW50KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7
CisgICAgaWYgKHNjYWxlICYmIHNjYWxlICE9IDEpCisgICAgICAgIGFic0JvdW5kcy5zY2FsZShz
Y2FsZSk7CiAgICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRMYXlvdXRQb2ludChhYnNU
b3BMZWZ0KSk7CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvSFRNTFNlbGVjdEVs
ZW1lbnQobm9kZSgpKTsKICAgICBtX3BvcHVwLT5zaG93KGFic0JvdW5kcywgZG9jdW1lbnQoKS0+
dmlldygpLCBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVjdC0+c2VsZWN0ZWRJbmRleCgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYzZi
MmQ5OTAzNzBjMzJkMjZkYTBkZDM1MGI1NDE4NTliY2FlZTg0My4uNjgzODA1Zjg5MjgzNGU1ZTY4
OWQzYzY1NzNkOTI4NTVlODcwODk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcApAQCAtNjIzLDggKzYyMywyNSBAQCBib29sIFdlYlZpZXdJbXBsOjptb3Vz
ZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYgZXZlbnQpCiAjaWYgRU5BQkxFKEdFU1RV
UkVfRVZFTlRTKQogYm9vbCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1
cmVFdmVudCYgZXZlbnQpCiB7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyPiBz
ZWxlY3RQb3B1cDsKICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZvcm1FdmVu
dChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAgcmV0dXJuIG1haW5G
cmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChw
bGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlVGFwKSB7CisgICAgICAgIHNlbGVjdFBvcHVwID0gbV9zZWxlY3RQb3B1cDsKKyAgICAgICAg
aGlkZVNlbGVjdFBvcHVwKCk7CisgICAgICAgIEFTU0VSVCghbV9zZWxlY3RQb3B1cCk7CisgICAg
fQorCisgICAgYm9vbCBnZXN0dXJlSGFuZGxlZCA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKKworICAg
IGlmIChtX3NlbGVjdFBvcHVwICYmIG1fc2VsZWN0UG9wdXAgPT0gc2VsZWN0UG9wdXApIHsKKyAg
ICAgICAgLy8gVGhhdCB0YXAgdHJpZ2dlcmVkIGEgc2VsZWN0IHBvcHVwIHdoaWNoIGlzIHRoZSBz
YW1lIGFzIHRoZSBvbmUgdGhhdAorICAgICAgICAvLyB3YXMgc2hvd2luZyBiZWZvcmUgdGhlIHRh
cC4gSXQgbWVhbnMgdGhlIHVzZXIgdGFwcGVkIHRoZSBzZWxlY3QKKyAgICAgICAgLy8gd2hpbGUg
dGhlIHBvcHVwIHdhcyBzaG93aW5nLCBhbmQgYXMgYSByZXN1bHQgd2UgZmlyc3QgY2xvc2VkIHRo
ZW4KKyAgICAgICAgLy8gaW1tZWRpYXRlbHkgcmVvcGVuZWQgdGhlIHNlbGVjdCBwb3B1cC4gSXQg
bmVlZHMgdG8gYmUgY2xvc2VkLgorICAgICAgICBoaWRlU2VsZWN0UG9wdXAoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gZ2VzdHVyZUhhbmRsZWQ7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0
UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGwsIGJvb2wgdXNlQW5jaG9y
LCBmbG9hdCBuZXdTY2FsZSwgZG91YmxlIGR1cmF0aW9uU2VjKQpAQCAtMjcwNyw5ICsyNzI0LDE0
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucygKICAgICAgICAg
aW5wdXRFbGVtLCBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJbmRl
eCk7CiAKICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkgeworICAgICAgICBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmlsbFBvcHVwU2V0dGluZ3M7CisgICAgICAg
IHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0KKyAgICAgICAgICAgIG1f
cGFnZS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGlm
ICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCisgICAgICAgICAgICBw
b3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CiAgICAgICAgIG1fYXV0
b2ZpbGxQb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUobV9hdXRvZmlsbFBvcHVwQ2xpZW50
LmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBvcHVwQ29udGFpbmVyOjpTdWdnZXN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG9maWxsUG9wdXBTZXR0aW5ncyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBTZXR0aW5ncyk7CiAg
ICAgfQogCiAgICAgaWYgKG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130614</attachid>
            <date>2012-03-07 06:37:50 -0800</date>
            <delta_ts>2012-03-09 13:46:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120307093749.patch</filename>
            <type>text/plain</type>
            <size>12530</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc1Y2MzY2IxMDVmMzcx
YzAwMjgzZDlmNDI3NGVlOWIxNWYwOWM2YS4uMzE3MWQwNjQzYzAyNmIzZTU2Y2RiM2MwYWUxNWJk
OTI2OWViODg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTA3ICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNj
YWxlIENvbWJvIGJveCBwb3B1cHMgYnkgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yLCBhbmQgYWRk
IHBhZGRpbmcgdG8KKyAgICAgICAgPG9wdGlvbj4gZWxlbWVudHMgd2hlbiB0b3VjaCBpcyBlbmFi
bGVkLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIC0tZGVmYXVsdC1kZXZpY2Utc2Nh
bGUtZmFjdG9yPTEsMiBhbmQgdW5zZXQuCisgICAgICAgIEVhY2ggb2YgdGhlc2Ugd2VyZSB0ZXN0
ZWQgd2l0aCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQKKyAgICAgICAgc2V0
IHRvIHRydWUgYW5kIGZhbHNlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBM
aXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpwYWludFJvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cExpc3RCb3g6OmdldFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBMaXN0Qm94Lmg6CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06Om9wdGlvblBhZGRpbmdGb3JUb3VjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2V0T3B0aW9uUGFkZGluZ0ZvclRv
dWNoKToKKyAgICAgICAgKFBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCk6CisKIDIwMTItMDMtMDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW1F0XSBBZGQgcW1ha2UgY29uZmlnIHRlc3RzIGZvciBKUEVHIGFuZCBQ
TkcgbGlicmFyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2MzJmZGY5ZWEyZDcxY2E5
OTY1MDViODA3MzMwYjY1ZjExZDJjMWQ2Li5mZjNlODUwMDQ1NzBmYzJhY2M2OWY3M2Y1YzNmZjlj
MjgwZGNjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTAzLTA3ICBUaW0gRHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIEluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNo
IGFuZCBoaWdoIERQSSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjph
cHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOgorCiAyMDEyLTAzLTA2ICBEYW5hIEphbnNlbnMgIDxk
YW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIGNsaXBwaW5nIHRv
IHNjaXNzb3IgcmVjdCB0byBDQ09jY2x1c2lvblRyYWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCmluZGV4IGM5ODBhZDYyM2ExZjM0
NWQ5MTQwMjc1NGY0MzRhNjQ1N2E0ZmUyNTcuLmJiYjdjMDRlZjMzNGQxNjFhMzI5M2I3Njg2MDlk
ZTA0NmJjMzM3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudUNo
cm9taXVtLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbmNsdWRl
ICJUZXh0UnVuLmgiCkBAIC0zNTIsNiArMzUzLDcgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnR5cGVB
aGVhZEZpbmQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBldmVudCkKIAogdm9pZCBQb3B1
cExpc3RCb3g6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7CisgICAgY29uc3QgaW50IHNjYWxlID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3I7CiAgICAgLy8gYWRqdXN0IGNvb3JkcyBmb3Igc2Nyb2xsZWQgZnJhbWUKICAgICBJbnRS
ZWN0IHIgPSBpbnRlcnNlY3Rpb24ocmVjdCwgZnJhbWVSZWN0KCkpOwogICAgIGludCB0eCA9IHgo
KSAtIHNjcm9sbFgoKTsKQEAgLTM2Niw2ICszNjgsOCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIC8vIEZJ
WE1FOiBDYW4gd2Ugb3B0aW1pemUgc2Nyb2xsaW5nIHRvIG5vdCByZXF1aXJlIHJlcGFpbnRpbmcg
dGhlIGVudGlyZQogICAgIC8vIHdpbmRvdz8gU2hvdWxkIHdlPworICAgIGlmIChzY2FsZSAhPSAx
KQorICAgICAgICBnYy0+c2NhbGUoRmxvYXRTaXplKHNjYWxlLCBzY2FsZSkpOwogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbnVtSXRlbXMoKTsgKytpKQogICAgICAgICBwYWludFJvdyhnYywgciwg
aSk7CiAKQEAgLTM4OSw2ICszOTMsMTkgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnBhaW50Um93KEdy
YXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIHJlY3QsIGludCByb3dJbmQKICAgICBp
ZiAoIXJvd1JlY3QuaW50ZXJzZWN0cyhyZWN0KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgY29u
c3QgaW50IHNjYWxlID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CisgICAg
Ly8gUm93UmVjdCBoYXMgYWxyZWFkeSBiZWVuIHNjYWxlZCBieSB0aGUgZGVmYXVsdERldmljZVNj
YWxlRmFjdG9yLgorICAgIC8vIFRvIGF2b2lkIHNjYWxpbmcgaXQgdHdpY2UsIHdlIGhhdmUgdG8g
dW5zY2FsZSBpdCBiZWZvcmUgZHJhd2luZy4KKyAgICBpZiAoc2NhbGUgIT0gMSkgeworICAgICAg
ICAvLyBIZWlnaHQgYW5kIHkgc2hvdWxkIGJvdGggYmUgZXZlbmx5IGRpdmlzaWJsZSBieSBzY2Fs
ZS4KKyAgICAgICAgQVNTRVJUKCEocm93UmVjdC55KCkgJSBzY2FsZSkpOworICAgICAgICByb3dS
ZWN0LnNldFkocm93UmVjdC55KCkgLyBzY2FsZSk7CisgICAgICAgIEFTU0VSVCghKHJvd1JlY3Qu
aGVpZ2h0KCkgJSBzY2FsZSkpOworICAgICAgICByb3dSZWN0LnNldEhlaWdodChyb3dSZWN0Lmhl
aWdodCgpIC8gc2NhbGUpOworICAgICAgICByb3dSZWN0LnNldFdpZHRoKGNlaWxmKHN0YXRpY19j
YXN0PGZsb2F0Pihyb3dSZWN0LndpZHRoKCkpIC8gc2NhbGUpKTsKKyAgICAgICAgLy8gcm93UmVj
dC54IGlzIGFsd2F5cyAwLgorICAgIH0KKwogICAgIFBvcHVwTWVudVN0eWxlIHN0eWxlID0gbV9w
b3B1cENsaWVudC0+aXRlbVN0eWxlKHJvd0luZGV4KTsKIAogICAgIC8vIFBhaW50IGJhY2tncm91
bmQKQEAgLTYxMywxNSArNjMwLDE2IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpzZXRPcmlnaW5hbElu
ZGV4KGludCBpbmRleCkKIAogaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRl
eCkKIHsKLSAgICBpZiAoaW5kZXggPCAwKQotICAgICAgICByZXR1cm4gUG9wdXBNZW51Q2hyb21p
dW06Om1pbmltdW1Sb3dIZWlnaHQoKTsKLQotICAgIGlmIChtX3BvcHVwQ2xpZW50LT5pdGVtU3R5
bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUoKSkKLSAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9t
aXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7CisgICAgY29uc3QgaW50IHNjYWxlID0gbV9zZXR0aW5n
cy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CisgICAgaW50IHBhZGRpbmdGb3JUb3VjaCA9IDA7
CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxlZCgpKQorICAgICAg
ICBwYWRkaW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRv
dWNoKCk7CisgICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5k
ZXgpLmlzRGlzcGxheU5vbmUoKSkKKyAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjpt
aW5pbXVtUm93SGVpZ2h0KCkgKiBzY2FsZTsKIAogICAgIC8vIFNlcGFyYXRvciByb3cgaGVpZ2h0
IGlzIHRoZSBzYW1lIHNpemUgYXMgaXRzZWxmLgogICAgIGlmIChtX3BvcHVwQ2xpZW50LT5pdGVt
SXNTZXBhcmF0b3IoaW5kZXgpKQotICAgICAgICByZXR1cm4gbWF4KHNlcGFyYXRvckhlaWdodCwg
UG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBt
YXgoc2VwYXJhdG9ySGVpZ2h0LCAoUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQo
KSkpICogc2NhbGU7CiAKICAgICBTdHJpbmcgaWNvbiA9IG1fcG9wdXBDbGllbnQtPml0ZW1JY29u
KGluZGV4KTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNv
dXJjZShpY29uLnV0ZjgoKS5kYXRhKCkpKTsKQEAgLTYzMSw3ICs2NDksNyBAQCBpbnQgUG9wdXBM
aXN0Qm94OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4KQogCiAgICAgaW50IGxpbmVQYWRkaW5nSGVp
Z2h0ID0gbV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkubWVudVR5cGUoKSA9PSBQb3B1cE1lbnVT
dHlsZTo6QXV0b2ZpbGxQb3B1cCA/IGtMaW5lUGFkZGluZ0hlaWdodCA6IDA7CiAgICAgaW50IGNh
bGN1bGF0ZWRSb3dIZWlnaHQgPSBtYXgoZm9udEhlaWdodCwgaWNvbkhlaWdodCkgKyBsaW5lUGFk
ZGluZ0hlaWdodCAqIDI7Ci0gICAgcmV0dXJuIG1heChjYWxjdWxhdGVkUm93SGVpZ2h0LCBQb3B1
cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpKTsKKyAgICByZXR1cm4gKG1heChjYWxj
dWxhdGVkUm93SGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpKSAr
IHBhZGRpbmdGb3JUb3VjaCkgKiBzY2FsZTsKIH0KIAogSW50UmVjdCBQb3B1cExpc3RCb3g6Omdl
dFJvd0JvdW5kcyhpbnQgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5oCmluZGV4IGRkMmU1OGRlZGRkOGYzOGQyNDYzZTYyM2FmNzkwMzhj
YzUyM2Y4NzkuLmI2ODUzMTNjYzQzMTliMTE0NjQyZjc1ZTA3OTc1MjlkNjg1YmMxYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCkBAIC03
OSw2ICs3OSw4IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHsKICAgICAvLyBXaGV0
aGVyIHdlIHNob3VsZCByZXN0cmljdCB0aGUgd2lkdGggb2YgdGhlIFBvcHVwTGlzdEJveCBvciBu
b3QuCiAgICAgLy8gQXV0b2NvbXBsZXRlIHBvcHVwcyBhcmUgcmVzdHJpY3RlZCwgY29tYm8tYm94
ZXMgKHNlbGVjdCB0YWdzKSBhcmVuJ3QuCiAgICAgYm9vbCByZXN0cmljdFdpZHRoT2ZMaXN0Qm94
OworCisgICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKIH07CiAKIC8vIEEgY29udGFp
bmVyIGZvciB0aGUgZGF0YSBmb3IgZWFjaCBtZW51IGl0ZW0gKGUuZy4gcmVwcmVzZW50ZWQgYnkg
PG9wdGlvbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcAppbmRleCAzYjJmMmFlOWZlMzQzMjhhYmNlZGIzZDk1YTE5ZjE4
ZTUxMjk0YzIwLi42MmUxMDA4ZmI5NmEwMGNlNWM0Mjg3MWY0ZDhjNDAxNWQ2NmE3MGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwCkBAIC0zMSwxMSArMzEsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3B1cENvbnRh
aW5lci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
aW50IFBvcHVwTWVudUNocm9taXVtOjpzX21pbmltdW1Sb3dIZWlnaHQgPSAwOworaW50IFBvcHVw
TWVudUNocm9taXVtOjpzX29wdGlvblBhZGRpbmdGb3JUb3VjaCA9IDMwOwogCiAvLyBUaGUgc2V0
dGluZ3MgdXNlZCBmb3IgdGhlIGRyb3AgZG93biBtZW51LgogLy8gVGhpcyBpcyB0aGUgZGVsZWdh
dGUgdXNlZCBpZiBub25lIGlzIHByb3ZpZGVkLgpAQCAtNjIsOCArNjgsMTQgQEAgUG9wdXBNZW51
Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiAKIHZvaWQgUG9wdXBNZW51Q2hyb21pdW06
OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7Ci0gICAg
aWYgKCFwLnBvcHVwKQotICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShj
bGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwgZHJvcERvd25TZXR0aW5ncyk7CisgICAg
aWYgKCFwLnBvcHVwKSB7CisgICAgICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0
aW5ncyA9IGRyb3BEb3duU2V0dGluZ3M7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERl
dmljZVNjYWxlRmFjdG9yID0KKyAgICAgICAgICAgIHYtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGlu
Z3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGlmICghcG9wdXBTZXR0
aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCisgICAgICAgICAgICBwb3B1cFNldHRpbmdz
LmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHAucG9wdXAgPSBQb3B1cENv
bnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNl
dHRpbmdzKTsKKyAgICB9CiAgICAgcC5wb3B1cC0+c2hvd0luUmVjdChyLCB2LCBpbmRleCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5oCmluZGV4IDIwYmU2ZTE1M2NiZWQ3Y2FjYjM1MTZlMTkwMTQ5NzI3MTU1ZTRmMDEu
LjZlOWFhODhiZTVlMzg1ZTBjOGU4NDgwNDJhMDRkNDg4ZWIxZDc4MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaApAQCAt
NTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBtaW5pbXVtUm93SGVpZ2h0KCkg
eyByZXR1cm4gc19taW5pbXVtUm93SGVpZ2h0OyB9CiAgICAgc3RhdGljIHZvaWQgc2V0TWluaW11
bVJvd0hlaWdodChpbnQgbWluaW11bVJvd0hlaWdodCkgeyBzX21pbmltdW1Sb3dIZWlnaHQgPSBt
aW5pbXVtUm93SGVpZ2h0OyB9CiAKKyAgICBzdGF0aWMgaW50IG9wdGlvblBhZGRpbmdGb3JUb3Vj
aCgpIHsgcmV0dXJuIHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoOyB9CisgICAgc3RhdGljIHZvaWQg
c2V0T3B0aW9uUGFkZGluZ0ZvclRvdWNoKGludCBvcHRpb25QYWRkaW5nRm9yVG91Y2gpIHsgc19v
cHRpb25QYWRkaW5nRm9yVG91Y2ggPSBvcHRpb25QYWRkaW5nRm9yVG91Y2g7IH0KKwogcHJpdmF0
ZToKICAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBD
bGllbnQ7IH0KIApAQCAtNjQsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIFBvcHVwTWVudVByaXZh
dGUgcDsKIAogICAgIHN0YXRpYyBpbnQgc19taW5pbXVtUm93SGVpZ2h0OworICAgIHN0YXRpYyBp
bnQgc19vcHRpb25QYWRkaW5nRm9yVG91Y2g7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBhNDdh
ZWJiYWU0NDAxY2U0YmM1NzYzMmUwZDRmZWU0OTE4ZjZmOGY1Li5jMjZmNGIzNmZmZDBiN2Y3NmQz
ZjU2NDMzMThhOTk4ZDg4NDdkNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJCUi5oIgog
I2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSA8bWF0
aC5oPgogCkBAIC0zMDgsNiArMzA5LDkgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVw
KCkKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRvIHNpemUgdGhlIHBv
cHVwLgogICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBv
aW50KCksIGZhbHNlLCB0cnVlKTsKICAgICBMYXlvdXRSZWN0IGFic0JvdW5kcyA9IGFic29sdXRl
Qm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7CisgICAgY29uc3QgaW50IHNjYWxl
ID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3IoKTsKKyAgICBpZiAoc2NhbGUgJiYgc2NhbGUgIT0gMSkKKyAgICAgICAgYWJzQm91bmRzLnNj
YWxlKHNjYWxlKTsKICAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZExheW91dFBvaW50
KGFic1RvcExlZnQpKTsKICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9IVE1MU2Vs
ZWN0RWxlbWVudChub2RlKCkpOwogICAgIG1fcG9wdXAtPnNob3coYWJzQm91bmRzLCBkb2N1bWVu
dCgpLT52aWV3KCksIHNlbGVjdC0+b3B0aW9uVG9MaXN0SW5kZXgoc2VsZWN0LT5zZWxlY3RlZElu
ZGV4KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRl
eCAwZTMwYzk1OTA1OGQ3ZTU2NDQxNGExMzg1ZjY0OGVmMGJmOWZlNjNlLi5hMjRkODUwMDU2YjZl
ZGEyYWNhNDViMzkzY2Y5OGY2YzcwNGFhMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC02MjQsOCArNjI0LDI1IEBAIGJvb2wgV2ViVmlld0ltcGw6
Om1vdXNlV2hlZWwoY29uc3QgV2ViTW91c2VXaGVlbEV2ZW50JiBldmVudCkKICNpZiBFTkFCTEUo
R0VTVFVSRV9FVkVOVFMpCiBib29sIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnQoY29uc3QgV2Vi
R2VzdHVyZUV2ZW50JiBldmVudCkKIHsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250YWlu
ZXI+IHNlbGVjdFBvcHVwOwogICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9y
bUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKLSAgICByZXR1cm4g
bWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2
ZW50KHBsYXRmb3JtRXZlbnQpOworICAgIGlmIChldmVudC50eXBlID09IFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUYXApIHsKKyAgICAgICAgc2VsZWN0UG9wdXAgPSBtX3NlbGVjdFBvcHVwOworICAg
ICAgICBoaWRlU2VsZWN0UG9wdXAoKTsKKyAgICAgICAgQVNTRVJUKCFtX3NlbGVjdFBvcHVwKTsK
KyAgICB9CisKKyAgICBib29sIGdlc3R1cmVIYW5kbGVkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFt
ZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOwor
CisgICAgaWYgKG1fc2VsZWN0UG9wdXAgJiYgbV9zZWxlY3RQb3B1cCA9PSBzZWxlY3RQb3B1cCkg
eworICAgICAgICAvLyBUaGF0IHRhcCB0cmlnZ2VyZWQgYSBzZWxlY3QgcG9wdXAgd2hpY2ggaXMg
dGhlIHNhbWUgYXMgdGhlIG9uZSB0aGF0CisgICAgICAgIC8vIHdhcyBzaG93aW5nIGJlZm9yZSB0
aGUgdGFwLiBJdCBtZWFucyB0aGUgdXNlciB0YXBwZWQgdGhlIHNlbGVjdAorICAgICAgICAvLyB3
aGlsZSB0aGUgcG9wdXAgd2FzIHNob3dpbmcsIGFuZCBhcyBhIHJlc3VsdCB3ZSBmaXJzdCBjbG9z
ZWQgdGhlbgorICAgICAgICAvLyBpbW1lZGlhdGVseSByZW9wZW5lZCB0aGUgc2VsZWN0IHBvcHVw
LiBJdCBuZWVkcyB0byBiZSBjbG9zZWQuCisgICAgICAgIGhpZGVTZWxlY3RQb3B1cCgpOworICAg
IH0KKworICAgIHJldHVybiBnZXN0dXJlSGFuZGxlZDsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6
c3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbCwgYm9vbCB1c2VB
bmNob3IsIGZsb2F0IG5ld1NjYWxlLCBkb3VibGUgZHVyYXRpb25TZWMpCkBAIC0yNzEzLDkgKzI3
MzAsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKAogICAg
ICAgICBpbnB1dEVsZW0sIG5hbWVzLCBsYWJlbHMsIGljb25zLCB1bmlxdWVJRHMsIHNlcGFyYXRv
ckluZGV4KTsKIAogICAgIGlmICghbV9hdXRvZmlsbFBvcHVwKSB7CisgICAgICAgIFBvcHVwQ29u
dGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGF1dG9maWxsUG9wdXBTZXR0aW5nczsKKyAg
ICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQorICAgICAgICAg
ICAgbV9wYWdlLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAg
ICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAg
ICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0gMTsKICAgICAgICAg
bV9hdXRvZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShtX2F1dG9maWxsUG9wdXBD
bGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZpbGxQb3B1cFNldHRpbmdzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1cFNldHRpbmdz
KTsKICAgICB9CiAKICAgICBpZiAobV9hdXRvZmlsbFBvcHVwU2hvd2luZykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131093</attachid>
            <date>2012-03-09 13:46:16 -0800</date>
            <delta_ts>2012-03-14 10:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120309164613.patch</filename>
            <type>text/plain</type>
            <size>12491</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc0YWM2NjA5MzFhMzVl
MGU2YTAyMGExZGNmZTIzMWJiYjUwZTE0MC4uNDc1Yjk5MzcxMGE2ZWU0YWRjMzM5NGZjZjc0ZDMw
NWEyMTg4NDk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTA5ICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNj
YWxlIENvbWJvIGJveCBwb3B1cHMgYnkgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yLCBhbmQgYWRk
IHBhZGRpbmcgdG8KKyAgICAgICAgPG9wdGlvbj4gZWxlbWVudHMgd2hlbiB0b3VjaCBpcyBlbmFi
bGVkLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIC0tZGVmYXVsdC1kZXZpY2Utc2Nh
bGUtZmFjdG9yPTEsMiBhbmQgdW5zZXQuCisgICAgICAgIEVhY2ggb2YgdGhlc2Ugd2VyZSB0ZXN0
ZWQgd2l0aCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQKKyAgICAgICAgc2V0
IHRvIHRydWUgYW5kIGZhbHNlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBM
aXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpwYWludFJvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cExpc3RCb3g6OmdldFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBMaXN0Qm94Lmg6CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06Om9wdGlvblBhZGRpbmdGb3JUb3VjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2V0T3B0aW9uUGFkZGluZ0ZvclRv
dWNoKToKKyAgICAgICAgKFBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCk6CisKIDIwMTItMDMtMDkgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGZvciAhRU5BQkxFKEZJTFRFUlMpIGFmdGVyIHIx
MTAyODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkxNTU5OTNhNTE2ZmVlODI2NWJj
MmIyYWQwZTBhMDc5MmQxYWZmMzQuLmZjZjI1MjNjZGEyZGJjMGQ5NzNhODRhZDExYzkxOWNjYzY1
NWRlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDMtMDkgIFRpbSBEcmVzc2VyICA8dGRyZXNzZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtj
aHJvbWl1bV0gSW5jcmVhc2Ugc2l6ZSBvZiBDb21ibyBCb3ggT3B0aW9ucyBmb3IgdG91Y2ggYW5k
IGhpZ2ggRFBJIGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwMDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Z2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5
QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisKIDIwMTItMDMtMDkgIERhbmEgSmFuc2VucyAgPGRhbmFr
akBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVc2Ugb3BhcXVlIHBhaW50cyBp
biBDQ09jY2x1c2lvblRyYWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwCmluZGV4IGM5ODBhZDYyM2ExZjM0NWQ5MTQwMjc1NGY0MzRh
NjQ1N2E0ZmUyNTcuLjZkNjdlMDU1MzQwNTBiYzI2NTBlMWRmNzA3NjYyMDc3NzliOGMyM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNw
cApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5j
bHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUu
aCIKICNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCkBA
IC0zNTIsNiArMzUzLDcgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnR5cGVBaGVhZEZpbmQoY29uc3Qg
UGxhdGZvcm1LZXlib2FyZEV2ZW50JiBldmVudCkKIAogdm9pZCBQb3B1cExpc3RCb3g6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisgICAgaW50IHNj
YWxlID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgLy8gYWRqdXN0
IGNvb3JkcyBmb3Igc2Nyb2xsZWQgZnJhbWUKICAgICBJbnRSZWN0IHIgPSBpbnRlcnNlY3Rpb24o
cmVjdCwgZnJhbWVSZWN0KCkpOwogICAgIGludCB0eCA9IHgoKSAtIHNjcm9sbFgoKTsKQEAgLTM2
Niw2ICszNjgsOCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBn
YywgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIC8vIEZJWE1FOiBDYW4gd2Ugb3B0aW1pemUg
c2Nyb2xsaW5nIHRvIG5vdCByZXF1aXJlIHJlcGFpbnRpbmcgdGhlIGVudGlyZQogICAgIC8vIHdp
bmRvdz8gU2hvdWxkIHdlPworICAgIGlmIChzY2FsZSAhPSAxKQorICAgICAgICBnYy0+c2NhbGUo
RmxvYXRTaXplKHNjYWxlLCBzY2FsZSkpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtSXRl
bXMoKTsgKytpKQogICAgICAgICBwYWludFJvdyhnYywgciwgaSk7CiAKQEAgLTM4OSw2ICszOTMs
MTkgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnBhaW50Um93KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNv
bnN0IEludFJlY3QmIHJlY3QsIGludCByb3dJbmQKICAgICBpZiAoIXJvd1JlY3QuaW50ZXJzZWN0
cyhyZWN0KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaW50IHNjYWxlID0gbV9zZXR0aW5ncy5k
ZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CisgICAgLy8gUm93UmVjdCBoYXMgYWxyZWFkeSBiZWVu
IHNjYWxlZCBieSB0aGUgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yLgorICAgIC8vIFRvIGF2b2lk
IHNjYWxpbmcgaXQgdHdpY2UsIHdlIGhhdmUgdG8gdW5zY2FsZSBpdCBiZWZvcmUgZHJhd2luZy4K
KyAgICBpZiAoc2NhbGUgIT0gMSkgeworICAgICAgICAvLyBIZWlnaHQgYW5kIHkgc2hvdWxkIGJv
dGggYmUgZXZlbmx5IGRpdmlzaWJsZSBieSBzY2FsZS4KKyAgICAgICAgQVNTRVJUKCEocm93UmVj
dC55KCkgJSBzY2FsZSkpOworICAgICAgICByb3dSZWN0LnNldFkocm93UmVjdC55KCkgLyBzY2Fs
ZSk7CisgICAgICAgIEFTU0VSVCghKHJvd1JlY3QuaGVpZ2h0KCkgJSBzY2FsZSkpOworICAgICAg
ICByb3dSZWN0LnNldEhlaWdodChyb3dSZWN0LmhlaWdodCgpIC8gc2NhbGUpOworICAgICAgICBy
b3dSZWN0LnNldFdpZHRoKGNlaWxmKHN0YXRpY19jYXN0PGZsb2F0Pihyb3dSZWN0LndpZHRoKCkp
IC8gc2NhbGUpKTsKKyAgICAgICAgLy8gcm93UmVjdC54IGlzIGFsd2F5cyAwLgorICAgIH0KKwog
ICAgIFBvcHVwTWVudVN0eWxlIHN0eWxlID0gbV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKHJvd0lu
ZGV4KTsKIAogICAgIC8vIFBhaW50IGJhY2tncm91bmQKQEAgLTYxMywxNSArNjMwLDE2IEBAIHZv
aWQgUG9wdXBMaXN0Qm94OjpzZXRPcmlnaW5hbEluZGV4KGludCBpbmRleCkKIAogaW50IFBvcHVw
TGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleCkKIHsKLSAgICBpZiAoaW5kZXggPCAwKQot
ICAgICAgICByZXR1cm4gUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKTsKLQot
ICAgIGlmIChtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUoKSkK
LSAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7Cisg
ICAgaW50IHNjYWxlID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CisgICAg
aW50IHBhZGRpbmdGb3JUb3VjaCA9IDA7CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnRvdWNoRW5hYmxlZCgpKQorICAgICAgICBwYWRkaW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJv
bWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7CisgICAgaWYgKGluZGV4IDwgMCB8fCBtX3Bv
cHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUoKSkKKyAgICAgICAgcmV0
dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkgKiBzY2FsZTsKIAogICAg
IC8vIFNlcGFyYXRvciByb3cgaGVpZ2h0IGlzIHRoZSBzYW1lIHNpemUgYXMgaXRzZWxmLgogICAg
IGlmIChtX3BvcHVwQ2xpZW50LT5pdGVtSXNTZXBhcmF0b3IoaW5kZXgpKQotICAgICAgICByZXR1
cm4gbWF4KHNlcGFyYXRvckhlaWdodCwgUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWln
aHQoKSk7CisgICAgICAgIHJldHVybiBtYXgoc2VwYXJhdG9ySGVpZ2h0LCAoUG9wdXBNZW51Q2hy
b21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSkpICogc2NhbGU7CiAKICAgICBTdHJpbmcgaWNvbiA9
IG1fcG9wdXBDbGllbnQtPml0ZW1JY29uKGluZGV4KTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdl
KEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShpY29uLnV0ZjgoKS5kYXRhKCkpKTsKQEAgLTYz
MSw3ICs2NDksNyBAQCBpbnQgUG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4KQog
CiAgICAgaW50IGxpbmVQYWRkaW5nSGVpZ2h0ID0gbV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCku
bWVudVR5cGUoKSA9PSBQb3B1cE1lbnVTdHlsZTo6QXV0b2ZpbGxQb3B1cCA/IGtMaW5lUGFkZGlu
Z0hlaWdodCA6IDA7CiAgICAgaW50IGNhbGN1bGF0ZWRSb3dIZWlnaHQgPSBtYXgoZm9udEhlaWdo
dCwgaWNvbkhlaWdodCkgKyBsaW5lUGFkZGluZ0hlaWdodCAqIDI7Ci0gICAgcmV0dXJuIG1heChj
YWxjdWxhdGVkUm93SGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgp
KTsKKyAgICByZXR1cm4gKG1heChjYWxjdWxhdGVkUm93SGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1
bTo6bWluaW11bVJvd0hlaWdodCgpKSArIHBhZGRpbmdGb3JUb3VjaCkgKiBzY2FsZTsKIH0KIAog
SW50UmVjdCBQb3B1cExpc3RCb3g6OmdldFJvd0JvdW5kcyhpbnQgaW5kZXgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCmluZGV4IGRkMmU1OGRl
ZGRkOGYzOGQyNDYzZTYyM2FmNzkwMzhjYzUyM2Y4NzkuLmI2ODUzMTNjYzQzMTliMTE0NjQyZjc1
ZTA3OTc1MjlkNjg1YmMxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5oCkBAIC03OSw2ICs3OSw4IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHsKICAgICAvLyBXaGV0aGVyIHdlIHNob3VsZCByZXN0cmljdCB0aGUgd2lkdGgg
b2YgdGhlIFBvcHVwTGlzdEJveCBvciBub3QuCiAgICAgLy8gQXV0b2NvbXBsZXRlIHBvcHVwcyBh
cmUgcmVzdHJpY3RlZCwgY29tYm8tYm94ZXMgKHNlbGVjdCB0YWdzKSBhcmVuJ3QuCiAgICAgYm9v
bCByZXN0cmljdFdpZHRoT2ZMaXN0Qm94OworCisgICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZh
Y3RvcjsKIH07CiAKIC8vIEEgY29udGFpbmVyIGZvciB0aGUgZGF0YSBmb3IgZWFjaCBtZW51IGl0
ZW0gKGUuZy4gcmVwcmVzZW50ZWQgYnkgPG9wdGlvbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAzYjJmMmFl
OWZlMzQzMjhhYmNlZGIzZDk1YTE5ZjE4ZTUxMjk0YzIwLi42MmUxMDA4ZmI5NmEwMGNlNWM0Mjg3
MWY0ZDhjNDAxNWQ2NmE3MGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0zMSwxMSArMzEsMTcgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCisKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW50IFBvcHVwTWVudUNocm9taXVtOjpzX21pbmltdW1S
b3dIZWlnaHQgPSAwOworaW50IFBvcHVwTWVudUNocm9taXVtOjpzX29wdGlvblBhZGRpbmdGb3JU
b3VjaCA9IDMwOwogCiAvLyBUaGUgc2V0dGluZ3MgdXNlZCBmb3IgdGhlIGRyb3AgZG93biBtZW51
LgogLy8gVGhpcyBpcyB0aGUgZGVsZWdhdGUgdXNlZCBpZiBub25lIGlzIHByb3ZpZGVkLgpAQCAt
NjIsOCArNjgsMTQgQEAgUG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiAK
IHZvaWQgUG9wdXBNZW51Q2hyb21pdW06OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3
KiB2LCBpbnQgaW5kZXgpCiB7Ci0gICAgaWYgKCFwLnBvcHVwKQotICAgICAgICBwLnBvcHVwID0g
UG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwg
ZHJvcERvd25TZXR0aW5ncyk7CisgICAgaWYgKCFwLnBvcHVwKSB7CisgICAgICAgIFBvcHVwQ29u
dGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGRyb3BEb3duU2V0dGluZ3M7CisgICAgICAg
IHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0KKyAgICAgICAgICAgIHYt
PmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7
CisgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCisg
ICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7Cisg
ICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENv
bnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdzKTsKKyAgICB9CiAgICAgcC5wb3B1cC0+c2hv
d0luUmVjdChyLCB2LCBpbmRleCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCmluZGV4IDIwYmU2ZTE1M2NiZWQ3Y2Fj
YjM1MTZlMTkwMTQ5NzI3MTU1ZTRmMDEuLjZlOWFhODhiZTVlMzg1ZTBjOGU4NDgwNDJhMDRkNDg4
ZWIxZDc4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGludCBtaW5pbXVtUm93SGVpZ2h0KCkgeyByZXR1cm4gc19taW5pbXVtUm93SGVpZ2h0OyB9CiAg
ICAgc3RhdGljIHZvaWQgc2V0TWluaW11bVJvd0hlaWdodChpbnQgbWluaW11bVJvd0hlaWdodCkg
eyBzX21pbmltdW1Sb3dIZWlnaHQgPSBtaW5pbXVtUm93SGVpZ2h0OyB9CiAKKyAgICBzdGF0aWMg
aW50IG9wdGlvblBhZGRpbmdGb3JUb3VjaCgpIHsgcmV0dXJuIHNfb3B0aW9uUGFkZGluZ0ZvclRv
dWNoOyB9CisgICAgc3RhdGljIHZvaWQgc2V0T3B0aW9uUGFkZGluZ0ZvclRvdWNoKGludCBvcHRp
b25QYWRkaW5nRm9yVG91Y2gpIHsgc19vcHRpb25QYWRkaW5nRm9yVG91Y2ggPSBvcHRpb25QYWRk
aW5nRm9yVG91Y2g7IH0KKwogcHJpdmF0ZToKICAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KIApAQCAtNjQsNiArNjcsNyBAQCBwcml2
YXRlOgogICAgIFBvcHVwTWVudVByaXZhdGUgcDsKIAogICAgIHN0YXRpYyBpbnQgc19taW5pbXVt
Um93SGVpZ2h0OworICAgIHN0YXRpYyBpbnQgc19vcHRpb25QYWRkaW5nRm9yVG91Y2g7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcAppbmRleCBhNDdhZWJiYWU0NDAxY2U0YmM1NzYzMmUwZDRmZWU0OTE4ZjZm
OGY1Li5lOTgyZWVhNjA3MmM1YzA1N2JmMGJmNWIyZmRlN2E1OWMyNzViMTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJCUi5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJU
ZXh0UnVuLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogCkBAIC0zMDgsNiArMzA5LDkgQEAgdm9pZCBS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRo
ZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgogICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9
IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKICAgICBMYXlvdXRS
ZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1z
KCk7CisgICAgaW50IHNjYWxlID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZh
dWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAoc2NhbGUgJiYgc2NhbGUgIT0gMSkKKyAg
ICAgICAgYWJzQm91bmRzLnNjYWxlKHNjYWxlKTsKICAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24o
cm91bmRlZExheW91dFBvaW50KGFic1RvcExlZnQpKTsKICAgICBIVE1MU2VsZWN0RWxlbWVudCog
c2VsZWN0ID0gdG9IVE1MU2VsZWN0RWxlbWVudChub2RlKCkpOwogICAgIG1fcG9wdXAtPnNob3co
YWJzQm91bmRzLCBkb2N1bWVudCgpLT52aWV3KCksIHNlbGVjdC0+b3B0aW9uVG9MaXN0SW5kZXgo
c2VsZWN0LT5zZWxlY3RlZEluZGV4KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCBlYzk0MDNjYmNkNjk5YmY1MTg4N2Y0MzgwNDZkZGU0YTc0MDYw
NmFmLi40ZDUwM2M3MDVhNDY3MzZiN2NiNjRiYTAxOGEwYTI0ODIwYmVkNzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC02MDEsOCArNjAxLDI1IEBA
IGJvb2wgV2ViVmlld0ltcGw6Om1vdXNlV2hlZWwoY29uc3QgV2ViTW91c2VXaGVlbEV2ZW50JiBl
dmVudCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiBib29sIFdlYlZpZXdJbXBsOjpnZXN0
dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIHsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBDb250YWluZXI+IHNlbGVjdFBvcHVwOwogICAgIFBsYXRmb3JtR2VzdHVyZUV2
ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2
ZW50KTsKLSAgICByZXR1cm4gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOworICAgIGlmIChldmVudC50eXBl
ID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXApIHsKKyAgICAgICAgc2VsZWN0UG9wdXAgPSBt
X3NlbGVjdFBvcHVwOworICAgICAgICBoaWRlU2VsZWN0UG9wdXAoKTsKKyAgICAgICAgQVNTRVJU
KCFtX3NlbGVjdFBvcHVwKTsKKyAgICB9CisKKyAgICBib29sIGdlc3R1cmVIYW5kbGVkID0gbWFp
bkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50
KHBsYXRmb3JtRXZlbnQpOworCisgICAgaWYgKG1fc2VsZWN0UG9wdXAgJiYgbV9zZWxlY3RQb3B1
cCA9PSBzZWxlY3RQb3B1cCkgeworICAgICAgICAvLyBUaGF0IHRhcCB0cmlnZ2VyZWQgYSBzZWxl
Y3QgcG9wdXAgd2hpY2ggaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSB0aGF0CisgICAgICAgIC8vIHdh
cyBzaG93aW5nIGJlZm9yZSB0aGUgdGFwLiBJdCBtZWFucyB0aGUgdXNlciB0YXBwZWQgdGhlIHNl
bGVjdAorICAgICAgICAvLyB3aGlsZSB0aGUgcG9wdXAgd2FzIHNob3dpbmcsIGFuZCBhcyBhIHJl
c3VsdCB3ZSBmaXJzdCBjbG9zZWQgdGhlbgorICAgICAgICAvLyBpbW1lZGlhdGVseSByZW9wZW5l
ZCB0aGUgc2VsZWN0IHBvcHVwLiBJdCBuZWVkcyB0byBiZSBjbG9zZWQuCisgICAgICAgIGhpZGVT
ZWxlY3RQb3B1cCgpOworICAgIH0KKworICAgIHJldHVybiBnZXN0dXJlSGFuZGxlZDsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgSW50UG9pbnQm
IHNjcm9sbCwgYm9vbCB1c2VBbmNob3IsIGZsb2F0IG5ld1NjYWxlLCBkb3VibGUgZHVyYXRpb25T
ZWMpCkBAIC0yNjkwLDkgKzI3MDcsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmls
bFN1Z2dlc3Rpb25zKAogICAgICAgICBpbnB1dEVsZW0sIG5hbWVzLCBsYWJlbHMsIGljb25zLCB1
bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKIAogICAgIGlmICghbV9hdXRvZmlsbFBvcHVwKSB7
CisgICAgICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGF1dG9maWxs
UG9wdXBTZXR0aW5nczsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3IgPQorICAgICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2Nh
bGVGYWN0b3IoKTsKKyAgICAgICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2Fs
ZUZhY3RvcikKKyAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFj
dG9yID0gMTsKICAgICAgICAgbV9hdXRvZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0
ZShtX2F1dG9maWxsUG9wdXBDbGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZpbGxQb3B1
cFNldHRpbmdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3B1cFNldHRpbmdzKTsKICAgICB9CiAKICAgICBpZiAobV9hdXRvZmlsbFBvcHVwU2hv
d2luZykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131103</attachid>
            <date>2012-03-09 14:04:42 -0800</date>
            <delta_ts>2012-03-09 14:11:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120309170441.patch</filename>
            <type>text/plain</type>
            <size>12489</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc0YWM2NjA5MzFhMzVl
MGU2YTAyMGExZGNmZTIzMWJiYjUwZTE0MC4uNTIxMzVjMmRkNDVjMjU1MGY4ZjkwZjE0YzRhM2Mz
NjRiOTAzZjZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTA5ICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBTY2Fs
ZSBDb21ibyBib3ggcG9wdXBzIGJ5IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciwgYW5kIGFkZCBw
YWRkaW5nIHRvCisgICAgICAgIDxvcHRpb24+IGVsZW1lbnRzIHdoZW4gdG91Y2ggaXMgZW5hYmxl
ZC4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQgd2l0aCAtLWRlZmF1bHQtZGV2aWNlLXNjYWxl
LWZhY3Rvcj0xLDIgYW5kIHVuc2V0LgorICAgICAgICBFYWNoIG9mIHRoZXNlIHdlcmUgdGVzdGVk
IHdpdGggUnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkCisgICAgICAgIHNldCB0
byB0cnVlIGFuZCBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlz
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnRSb3cpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5oOgorICAgICAgICAoUG9wdXBDb250YWluZXJTZXR0aW5ncyk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpvcHRpb25QYWRkaW5nRm9yVG91Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OnNldE9wdGlvblBhZGRpbmdGb3JUb3Vj
aCk6CisgICAgICAgIChQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93
UG9wdXApOgorCiAyMDEyLTAzLTA5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgIUVOQUJMRShGSUxURVJTKSBhZnRlciByMTEw
Mjg1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5MTU1OTkzYTUxNmZlZTgyNjViYzJi
MmFkMGUwYTA3OTJkMWFmZjM0Li5mY2YyNTIzY2RhMmRiYzBkOTczYTg0YWQxMWM5MTljY2M2NTVk
ZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAz
LTA5ICBUaW0gRHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIEluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBo
aWdoIERQSSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6Omdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1
dG9maWxsU3VnZ2VzdGlvbnMpOgorCiAyMDEyLTAzLTA5ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIG9wYXF1ZSBwYWludHMgaW4g
Q0NPY2NsdXNpb25UcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBMaXN0Qm94LmNwcAppbmRleCBjOTgwYWQ2MjNhMWYzNDVkOTE0MDI3NTRmNDM0YTY0
NTdhNGZlMjU3Li42ZDY3ZTA1NTM0MDUwYmMyNjUwZTFkZjcwNzY2MjA3Nzc5YjhjMjNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgi
CiAjaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgpAQCAt
MzUyLDYgKzM1Myw3IEBAIHZvaWQgUG9wdXBMaXN0Qm94Ojp0eXBlQWhlYWRGaW5kKGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIGludCBzY2Fs
ZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIC8vIGFkanVzdCBj
b29yZHMgZm9yIHNjcm9sbGVkIGZyYW1lCiAgICAgSW50UmVjdCByID0gaW50ZXJzZWN0aW9uKHJl
Y3QsIGZyYW1lUmVjdCgpKTsKICAgICBpbnQgdHggPSB4KCkgLSBzY3JvbGxYKCk7CkBAIC0zNjYs
NiArMzY4LDggQEAgdm9pZCBQb3B1cExpc3RCb3g6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogZ2Ms
IGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICAvLyBGSVhNRTogQ2FuIHdlIG9wdGltaXplIHNj
cm9sbGluZyB0byBub3QgcmVxdWlyZSByZXBhaW50aW5nIHRoZSBlbnRpcmUKICAgICAvLyB3aW5k
b3c/IFNob3VsZCB3ZT8KKyAgICBpZiAoc2NhbGUgIT0gMSkKKyAgICAgICAgZ2MtPnNjYWxlKEZs
b2F0U2l6ZShzY2FsZSwgc2NhbGUpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUl0ZW1z
KCk7ICsraSkKICAgICAgICAgcGFpbnRSb3coZ2MsIHIsIGkpOwogCkBAIC0zODksNiArMzkzLDE5
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludFJvdyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25z
dCBJbnRSZWN0JiByZWN0LCBpbnQgcm93SW5kCiAgICAgaWYgKCFyb3dSZWN0LmludGVyc2VjdHMo
cmVjdCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGludCBzY2FsZSA9IG1fc2V0dGluZ3MuZGVm
YXVsdERldmljZVNjYWxlRmFjdG9yOworICAgIC8vIFJvd1JlY3QgaGFzIGFscmVhZHkgYmVlbiBz
Y2FsZWQgYnkgdGhlIGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvci4KKyAgICAvLyBUbyBhdm9pZCBz
Y2FsaW5nIGl0IHR3aWNlLCB3ZSBoYXZlIHRvIHVuc2NhbGUgaXQgYmVmb3JlIGRyYXdpbmcuCisg
ICAgaWYgKHNjYWxlICE9IDEpIHsKKyAgICAgICAgLy8gSGVpZ2h0IGFuZCB5IHNob3VsZCBib3Ro
IGJlIGV2ZW5seSBkaXZpc2libGUgYnkgc2NhbGUuCisgICAgICAgIEFTU0VSVCghKHJvd1JlY3Qu
eSgpICUgc2NhbGUpKTsKKyAgICAgICAgcm93UmVjdC5zZXRZKHJvd1JlY3QueSgpIC8gc2NhbGUp
OworICAgICAgICBBU1NFUlQoIShyb3dSZWN0LmhlaWdodCgpICUgc2NhbGUpKTsKKyAgICAgICAg
cm93UmVjdC5zZXRIZWlnaHQocm93UmVjdC5oZWlnaHQoKSAvIHNjYWxlKTsKKyAgICAgICAgcm93
UmVjdC5zZXRXaWR0aChjZWlsZihzdGF0aWNfY2FzdDxmbG9hdD4ocm93UmVjdC53aWR0aCgpKSAv
IHNjYWxlKSk7CisgICAgICAgIC8vIHJvd1JlY3QueCBpcyBhbHdheXMgMC4KKyAgICB9CisKICAg
ICBQb3B1cE1lbnVTdHlsZSBzdHlsZSA9IG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShyb3dJbmRl
eCk7CiAKICAgICAvLyBQYWludCBiYWNrZ3JvdW5kCkBAIC02MTMsMTUgKzYzMCwxNiBAQCB2b2lk
IFBvcHVwTGlzdEJveDo6c2V0T3JpZ2luYWxJbmRleChpbnQgaW5kZXgpCiAKIGludCBQb3B1cExp
c3RCb3g6OmdldFJvd0hlaWdodChpbnQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgMCkKLSAg
ICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7Ci0KLSAg
ICBpZiAobV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCi0g
ICAgICAgIHJldHVybiBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpOworICAg
IGludCBzY2FsZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOworICAgIGlu
dCBwYWRkaW5nRm9yVG91Y2ggPSAwOworICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0
b3VjaEVuYWJsZWQoKSkKKyAgICAgICAgcGFkZGluZ0ZvclRvdWNoID0gUG9wdXBNZW51Q2hyb21p
dW06Om9wdGlvblBhZGRpbmdGb3JUb3VjaCgpOworICAgIGlmIChpbmRleCA8IDAgfHwgbV9wb3B1
cENsaWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCisgICAgICAgIHJldHVy
biBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpICogc2NhbGU7CiAKICAgICAv
LyBTZXBhcmF0b3Igcm93IGhlaWdodCBpcyB0aGUgc2FtZSBzaXplIGFzIGl0c2VsZi4KICAgICBp
ZiAobV9wb3B1cENsaWVudC0+aXRlbUlzU2VwYXJhdG9yKGluZGV4KSkKLSAgICAgICAgcmV0dXJu
IG1heChzZXBhcmF0b3JIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0
KCkpOworICAgICAgICByZXR1cm4gbWF4KHNlcGFyYXRvckhlaWdodCwgKFBvcHVwTWVudUNocm9t
aXVtOjptaW5pbXVtUm93SGVpZ2h0KCkpKSAqIHNjYWxlOwogCiAgICAgU3RyaW5nIGljb24gPSBt
X3BvcHVwQ2xpZW50LT5pdGVtSWNvbihpbmRleCk7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZShJ
bWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoaWNvbi51dGY4KCkuZGF0YSgpKSk7CkBAIC02MzEs
NyArNjQ5LDcgQEAgaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleCkKIAog
ICAgIGludCBsaW5lUGFkZGluZ0hlaWdodCA9IG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLm1l
bnVUeXBlKCkgPT0gUG9wdXBNZW51U3R5bGU6OkF1dG9maWxsUG9wdXAgPyBrTGluZVBhZGRpbmdI
ZWlnaHQgOiAwOwogICAgIGludCBjYWxjdWxhdGVkUm93SGVpZ2h0ID0gbWF4KGZvbnRIZWlnaHQs
IGljb25IZWlnaHQpICsgbGluZVBhZGRpbmdIZWlnaHQgKiAyOwotICAgIHJldHVybiBtYXgoY2Fs
Y3VsYXRlZFJvd0hlaWdodCwgUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSk7
CisgICAgcmV0dXJuIChtYXgoY2FsY3VsYXRlZFJvd0hlaWdodCwgUG9wdXBNZW51Q2hyb21pdW06
Om1pbmltdW1Sb3dIZWlnaHQoKSkgKyBwYWRkaW5nRm9yVG91Y2gpICogc2NhbGU7CiB9CiAKIElu
dFJlY3QgUG9wdXBMaXN0Qm94OjpnZXRSb3dCb3VuZHMoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAppbmRleCBkZDJlNThkZWRk
ZDhmMzhkMjQ2M2U2MjNhZjc5MDM4Y2M1MjNmODc5Li5iNjg1MzEzY2M0MzE5YjExNDY0MmY3NWUw
Nzk3NTI5ZDY4NWJjMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cExpc3RCb3guaApAQCAtNzksNiArNzksOCBAQCBzdHJ1Y3QgUG9wdXBDb250YWluZXJT
ZXR0aW5ncyB7CiAgICAgLy8gV2hldGhlciB3ZSBzaG91bGQgcmVzdHJpY3QgdGhlIHdpZHRoIG9m
IHRoZSBQb3B1cExpc3RCb3ggb3Igbm90LgogICAgIC8vIEF1dG9jb21wbGV0ZSBwb3B1cHMgYXJl
IHJlc3RyaWN0ZWQsIGNvbWJvLWJveGVzIChzZWxlY3QgdGFncykgYXJlbid0LgogICAgIGJvb2wg
cmVzdHJpY3RXaWR0aE9mTGlzdEJveDsKKworICAgIGludCBkZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3I7CiB9OwogCiAvLyBBIGNvbnRhaW5lciBmb3IgdGhlIGRhdGEgZm9yIGVhY2ggbWVudSBpdGVt
IChlLmcuIHJlcHJlc2VudGVkIGJ5IDxvcHRpb24+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKaW5kZXggM2IyZjJhZTlm
ZTM0MzI4YWJjZWRiM2Q5NWExOWYxOGU1MTI5NGMyMC4uNjJlMTAwOGZiOTZhMDBjZTVjNDI4NzFm
NGQ4YzQwMTVkNjZhNzBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMzEsMTEgKzMxLDE3IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGludCBQb3B1cE1lbnVDaHJvbWl1bTo6c19taW5pbXVtUm93
SGVpZ2h0ID0gMDsKK2ludCBQb3B1cE1lbnVDaHJvbWl1bTo6c19vcHRpb25QYWRkaW5nRm9yVG91
Y2ggPSAzMDsKIAogLy8gVGhlIHNldHRpbmdzIHVzZWQgZm9yIHRoZSBkcm9wIGRvd24gbWVudS4K
IC8vIFRoaXMgaXMgdGhlIGRlbGVnYXRlIHVzZWQgaWYgbm9uZSBpcyBwcm92aWRlZC4KQEAgLTYy
LDggKzY4LDE0IEBAIFBvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21pdW0oKQogCiB2
b2lkIFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyog
diwgaW50IGluZGV4KQogewotICAgIGlmICghcC5wb3B1cCkKLSAgICAgICAgcC5wb3B1cCA9IFBv
cHVwQ29udGFpbmVyOjpjcmVhdGUoY2xpZW50KCksIFBvcHVwQ29udGFpbmVyOjpTZWxlY3QsIGRy
b3BEb3duU2V0dGluZ3MpOworICAgIGlmICghcC5wb3B1cCkgeworICAgICAgICBQb3B1cENvbnRh
aW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBkcm9wRG93blNldHRpbmdzOworICAgICAgICBw
b3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9CisgICAgICAgICAgICB2LT5m
cmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpOwor
ICAgICAgICBpZiAoIXBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKQorICAg
ICAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAg
ICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9wdXBDb250
YWluZXI6OlNlbGVjdCwgcG9wdXBTZXR0aW5ncyk7CisgICAgfQogICAgIHAucG9wdXAtPnNob3dJ
blJlY3QociwgdiwgaW5kZXgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAppbmRleCAyMGJlNmUxNTNjYmVkN2NhY2Iz
NTE2ZTE5MDE0OTcyNzE1NWU0ZjAxLi42ZTlhYTg4YmU1ZTM4NWUwYzhlODQ4MDQyYTA0ZDQ4OGVi
MWQ3ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1
cE1lbnVDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmgKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBp
bnQgbWluaW11bVJvd0hlaWdodCgpIHsgcmV0dXJuIHNfbWluaW11bVJvd0hlaWdodDsgfQogICAg
IHN0YXRpYyB2b2lkIHNldE1pbmltdW1Sb3dIZWlnaHQoaW50IG1pbmltdW1Sb3dIZWlnaHQpIHsg
c19taW5pbXVtUm93SGVpZ2h0ID0gbWluaW11bVJvd0hlaWdodDsgfQogCisgICAgc3RhdGljIGlu
dCBvcHRpb25QYWRkaW5nRm9yVG91Y2goKSB7IHJldHVybiBzX29wdGlvblBhZGRpbmdGb3JUb3Vj
aDsgfQorICAgIHN0YXRpYyB2b2lkIHNldE9wdGlvblBhZGRpbmdGb3JUb3VjaChpbnQgb3B0aW9u
UGFkZGluZ0ZvclRvdWNoKSB7IHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoID0gb3B0aW9uUGFkZGlu
Z0ZvclRvdWNoOyB9CisKIHByaXZhdGU6CiAgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CiAKQEAgLTY0LDYgKzY3LDcgQEAgcHJpdmF0
ZToKICAgICBQb3B1cE1lbnVQcml2YXRlIHA7CiAKICAgICBzdGF0aWMgaW50IHNfbWluaW11bVJv
d0hlaWdodDsKKyAgICBzdGF0aWMgaW50IHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAKaW5kZXggYTQ3YWViYmFlNDQwMWNlNGJjNTc2MzJlMGQ0ZmVlNDkxOGY2Zjhm
NS4uZTk4MmVlYTYwNzJjNWMwNTdiZjBiZjViMmZkZTdhNTljMjc1YjExZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyQlIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4
dFJ1bi5oIgogI2luY2x1ZGUgPG1hdGguaD4KIApAQCAtMzA4LDYgKzMwOSw5IEBAIHZvaWQgUmVu
ZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBvZiB0aGUg
ZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KICAgICBGbG9hdFBvaW50IGFic1RvcExlZnQgPSBs
b2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgTGF5b3V0UmVj
dCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3Jtcygp
OworICAgIGludCBzY2FsZSA9IGRvY3VtZW50KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+ZGVmYXVs
dERldmljZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKHNjYWxlICYmIHNjYWxlICE9IDEpCisgICAg
ICAgIGFic0JvdW5kcy5zY2FsZShzY2FsZSk7CiAgICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJv
dW5kZWRMYXlvdXRQb2ludChhYnNUb3BMZWZ0KSk7CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNl
bGVjdCA9IHRvSFRNTFNlbGVjdEVsZW1lbnQobm9kZSgpKTsKICAgICBtX3BvcHVwLT5zaG93KGFi
c0JvdW5kcywgZG9jdW1lbnQoKS0+dmlldygpLCBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNl
bGVjdC0+c2VsZWN0ZWRJbmRleCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKaW5kZXggZWM5NDAzY2JjZDY5OWJmNTE4ODdmNDM4MDQ2ZGRlNGE3NDA2MDZh
Zi4uNGQ1MDNjNzA1YTQ2NzM2YjdjYjY0YmEwMThhMGEyNDgyMGJlZDc2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNjAxLDggKzYwMSwyNSBAQCBi
b29sIFdlYlZpZXdJbXBsOjptb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYgZXZl
bnQpCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogYm9vbCBXZWJWaWV3SW1wbDo6Z2VzdHVy
ZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiB7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlBvcHVwQ29udGFpbmVyPiBzZWxlY3RQb3B1cDsKICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVu
dEJ1aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVu
dCk7Ci0gICAgcmV0dXJuIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PmhhbmRsZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAoZXZlbnQudHlwZSA9
PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwKSB7CisgICAgICAgIHNlbGVjdFBvcHVwID0gbV9z
ZWxlY3RQb3B1cDsKKyAgICAgICAgaGlkZVNlbGVjdFBvcHVwKCk7CisgICAgICAgIEFTU0VSVCgh
bV9zZWxlY3RQb3B1cCk7CisgICAgfQorCisgICAgYm9vbCBnZXN0dXJlSGFuZGxlZCA9IG1haW5G
cmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChw
bGF0Zm9ybUV2ZW50KTsKKworICAgIGlmIChtX3NlbGVjdFBvcHVwICYmIG1fc2VsZWN0UG9wdXAg
PT0gc2VsZWN0UG9wdXApIHsKKyAgICAgICAgLy8gVGhhdCB0YXAgdHJpZ2dlcmVkIGEgc2VsZWN0
IHBvcHVwIHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgdGhhdAorICAgICAgICAvLyB3YXMg
c2hvd2luZyBiZWZvcmUgdGhlIHRhcC4gSXQgbWVhbnMgdGhlIHVzZXIgdGFwcGVkIHRoZSBzZWxl
Y3QKKyAgICAgICAgLy8gd2hpbGUgdGhlIHBvcHVwIHdhcyBzaG93aW5nLCBhbmQgYXMgYSByZXN1
bHQgd2UgZmlyc3QgY2xvc2VkIHRoZW4KKyAgICAgICAgLy8gaW1tZWRpYXRlbHkgcmVvcGVuZWQg
dGhlIHNlbGVjdCBwb3B1cC4gSXQgbmVlZHMgdG8gYmUgY2xvc2VkLgorICAgICAgICBoaWRlU2Vs
ZWN0UG9wdXAoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ2VzdHVyZUhhbmRsZWQ7CiB9CiAKIHZv
aWQgV2ViVmlld0ltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiBz
Y3JvbGwsIGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBuZXdTY2FsZSwgZG91YmxlIGR1cmF0aW9uU2Vj
KQpAQCAtMjY5MCw5ICsyNzA3LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxT
dWdnZXN0aW9ucygKICAgICAgICAgaW5wdXRFbGVtLCBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5p
cXVlSURzLCBzZXBhcmF0b3JJbmRleCk7CiAKICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkgewor
ICAgICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmlsbFBv
cHVwU2V0dGluZ3M7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFj
dG9yID0KKyAgICAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxl
RmFjdG9yKCk7CisgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3IpCisgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
ciA9IDE7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUo
bV9hdXRvZmlsbFBvcHVwQ2xpZW50LmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyOjpTdWdnZXN0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9maWxsUG9wdXBT
ZXR0aW5ncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9wdXBTZXR0aW5ncyk7CiAgICAgfQogCiAgICAgaWYgKG1fYXV0b2ZpbGxQb3B1cFNob3dp
bmcpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131104</attachid>
            <date>2012-03-09 14:11:45 -0800</date>
            <delta_ts>2012-03-14 10:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120309171143.patch</filename>
            <type>text/plain</type>
            <size>12487</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc0YWM2NjA5MzFhMzVl
MGU2YTAyMGExZGNmZTIzMWJiYjUwZTE0MC4uNTIxMzVjMmRkNDVjMjU1MGY4ZjkwZjE0YzRhM2Mz
NjRiOTAzZjZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTA5ICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBTY2Fs
ZSBDb21ibyBib3ggcG9wdXBzIGJ5IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciwgYW5kIGFkZCBw
YWRkaW5nIHRvCisgICAgICAgIDxvcHRpb24+IGVsZW1lbnRzIHdoZW4gdG91Y2ggaXMgZW5hYmxl
ZC4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQgd2l0aCAtLWRlZmF1bHQtZGV2aWNlLXNjYWxl
LWZhY3Rvcj0xLDIgYW5kIHVuc2V0LgorICAgICAgICBFYWNoIG9mIHRoZXNlIHdlcmUgdGVzdGVk
IHdpdGggUnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkCisgICAgICAgIHNldCB0
byB0cnVlIGFuZCBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlz
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnRSb3cpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5oOgorICAgICAgICAoUG9wdXBDb250YWluZXJTZXR0aW5ncyk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpvcHRpb25QYWRkaW5nRm9yVG91Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OnNldE9wdGlvblBhZGRpbmdGb3JUb3Vj
aCk6CisgICAgICAgIChQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93
UG9wdXApOgorCiAyMDEyLTAzLTA5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgIUVOQUJMRShGSUxURVJTKSBhZnRlciByMTEw
Mjg1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5MTU1OTkzYTUxNmZlZTgyNjViYzJi
MmFkMGUwYTA3OTJkMWFmZjM0Li44OTIxZmZiNGI4OTkzZGMwOWExNzMwYjM3NDc0OWZjZjYyNjUy
NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAz
LTA5ICBUaW0gRHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIEluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBo
aWdoIERQSSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRv
ZmlsbFN1Z2dlc3Rpb25zKToKKwogMjAxMi0wMy0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSBvcGFxdWUgcGFpbnRzIGluIEND
T2NjbHVzaW9uVHJhY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5jcHAKaW5kZXggYzk4MGFkNjIzYTFmMzQ1ZDkxNDAyNzU0ZjQzNGE2NDU3
YTRmZTI1Ny4uNmQ2N2UwNTUzNDA1MGJjMjY1MGUxZGY3MDc2NjIwNzc3OWI4YzIzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKICNpbmNsdWRl
ICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgog
I2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKQEAgLTM1
Miw2ICszNTMsNyBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dHlwZUFoZWFkRmluZChjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmIGV2ZW50KQogCiB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiBnYywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyAgICBpbnQgc2NhbGUg
PSBtX3NldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKICAgICAvLyBhZGp1c3QgY29v
cmRzIGZvciBzY3JvbGxlZCBmcmFtZQogICAgIEludFJlY3QgciA9IGludGVyc2VjdGlvbihyZWN0
LCBmcmFtZVJlY3QoKSk7CiAgICAgaW50IHR4ID0geCgpIC0gc2Nyb2xsWCgpOwpAQCAtMzY2LDYg
KzM2OCw4IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludChHcmFwaGljc0NvbnRleHQqIGdjLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgLy8gRklYTUU6IENhbiB3ZSBvcHRpbWl6ZSBzY3Jv
bGxpbmcgdG8gbm90IHJlcXVpcmUgcmVwYWludGluZyB0aGUgZW50aXJlCiAgICAgLy8gd2luZG93
PyBTaG91bGQgd2U/CisgICAgaWYgKHNjYWxlICE9IDEpCisgICAgICAgIGdjLT5zY2FsZShGbG9h
dFNpemUoc2NhbGUsIHNjYWxlKSk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVtcygp
OyArK2kpCiAgICAgICAgIHBhaW50Um93KGdjLCByLCBpKTsKIApAQCAtMzg5LDYgKzM5MywxOSBA
QCB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnRSb3coR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3Qg
SW50UmVjdCYgcmVjdCwgaW50IHJvd0luZAogICAgIGlmICghcm93UmVjdC5pbnRlcnNlY3RzKHJl
Y3QpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnQgc2NhbGUgPSBtX3NldHRpbmdzLmRlZmF1
bHREZXZpY2VTY2FsZUZhY3RvcjsKKyAgICAvLyBSb3dSZWN0IGhhcyBhbHJlYWR5IGJlZW4gc2Nh
bGVkIGJ5IHRoZSBkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IuCisgICAgLy8gVG8gYXZvaWQgc2Nh
bGluZyBpdCB0d2ljZSwgd2UgaGF2ZSB0byB1bnNjYWxlIGl0IGJlZm9yZSBkcmF3aW5nLgorICAg
IGlmIChzY2FsZSAhPSAxKSB7CisgICAgICAgIC8vIEhlaWdodCBhbmQgeSBzaG91bGQgYm90aCBi
ZSBldmVubHkgZGl2aXNpYmxlIGJ5IHNjYWxlLgorICAgICAgICBBU1NFUlQoIShyb3dSZWN0Lnko
KSAlIHNjYWxlKSk7CisgICAgICAgIHJvd1JlY3Quc2V0WShyb3dSZWN0LnkoKSAvIHNjYWxlKTsK
KyAgICAgICAgQVNTRVJUKCEocm93UmVjdC5oZWlnaHQoKSAlIHNjYWxlKSk7CisgICAgICAgIHJv
d1JlY3Quc2V0SGVpZ2h0KHJvd1JlY3QuaGVpZ2h0KCkgLyBzY2FsZSk7CisgICAgICAgIHJvd1Jl
Y3Quc2V0V2lkdGgoY2VpbGYoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJvd1JlY3Qud2lkdGgoKSkgLyBz
Y2FsZSkpOworICAgICAgICAvLyByb3dSZWN0LnggaXMgYWx3YXlzIDAuCisgICAgfQorCiAgICAg
UG9wdXBNZW51U3R5bGUgc3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUocm93SW5kZXgp
OwogCiAgICAgLy8gUGFpbnQgYmFja2dyb3VuZApAQCAtNjEzLDE1ICs2MzAsMTYgQEAgdm9pZCBQ
b3B1cExpc3RCb3g6OnNldE9yaWdpbmFsSW5kZXgoaW50IGluZGV4KQogCiBpbnQgUG9wdXBMaXN0
Qm94OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4KQogewotICAgIGlmIChpbmRleCA8IDApCi0gICAg
ICAgIHJldHVybiBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpOwotCi0gICAg
aWYgKG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShpbmRleCkuaXNEaXNwbGF5Tm9uZSgpKQotICAg
ICAgICByZXR1cm4gUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKTsKKyAgICBp
bnQgc2NhbGUgPSBtX3NldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBpbnQg
cGFkZGluZ0ZvclRvdWNoID0gMDsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91
Y2hFbmFibGVkKCkpCisgICAgICAgIHBhZGRpbmdGb3JUb3VjaCA9IFBvcHVwTWVudUNocm9taXVt
OjpvcHRpb25QYWRkaW5nRm9yVG91Y2goKTsKKyAgICBpZiAoaW5kZXggPCAwIHx8IG1fcG9wdXBD
bGllbnQtPml0ZW1TdHlsZShpbmRleCkuaXNEaXNwbGF5Tm9uZSgpKQorICAgICAgICByZXR1cm4g
UG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSAqIHNjYWxlOwogCiAgICAgLy8g
U2VwYXJhdG9yIHJvdyBoZWlnaHQgaXMgdGhlIHNhbWUgc2l6ZSBhcyBpdHNlbGYuCiAgICAgaWYg
KG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlcGFyYXRvcihpbmRleCkpCi0gICAgICAgIHJldHVybiBt
YXgoc2VwYXJhdG9ySGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgp
KTsKKyAgICAgICAgcmV0dXJuIG1heChzZXBhcmF0b3JIZWlnaHQsIChQb3B1cE1lbnVDaHJvbWl1
bTo6bWluaW11bVJvd0hlaWdodCgpKSkgKiBzY2FsZTsKIAogICAgIFN0cmluZyBpY29uID0gbV9w
b3B1cENsaWVudC0+aXRlbUljb24oaW5kZXgpOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGljb24udXRmOCgpLmRhdGEoKSkpOwpAQCAtNjMxLDcg
KzY0OSw3IEBAIGludCBQb3B1cExpc3RCb3g6OmdldFJvd0hlaWdodChpbnQgaW5kZXgpCiAKICAg
ICBpbnQgbGluZVBhZGRpbmdIZWlnaHQgPSBtX3BvcHVwQ2xpZW50LT5tZW51U3R5bGUoKS5tZW51
VHlwZSgpID09IFBvcHVwTWVudVN0eWxlOjpBdXRvZmlsbFBvcHVwID8ga0xpbmVQYWRkaW5nSGVp
Z2h0IDogMDsKICAgICBpbnQgY2FsY3VsYXRlZFJvd0hlaWdodCA9IG1heChmb250SGVpZ2h0LCBp
Y29uSGVpZ2h0KSArIGxpbmVQYWRkaW5nSGVpZ2h0ICogMjsKLSAgICByZXR1cm4gbWF4KGNhbGN1
bGF0ZWRSb3dIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkpOwor
ICAgIHJldHVybiAobWF4KGNhbGN1bGF0ZWRSb3dIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjpt
aW5pbXVtUm93SGVpZ2h0KCkpICsgcGFkZGluZ0ZvclRvdWNoKSAqIHNjYWxlOwogfQogCiBJbnRS
ZWN0IFBvcHVwTGlzdEJveDo6Z2V0Um93Qm91bmRzKGludCBpbmRleCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgKaW5kZXggZGQyZTU4ZGVkZGQ4
ZjM4ZDI0NjNlNjIzYWY3OTAzOGNjNTIzZjg3OS4uYjY4NTMxM2NjNDMxOWIxMTQ2NDJmNzVlMDc5
NzUyOWQ2ODViYzFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmgKQEAgLTc5LDYgKzc5LDggQEAgc3RydWN0IFBvcHVwQ29udGFpbmVyU2V0
dGluZ3MgewogICAgIC8vIFdoZXRoZXIgd2Ugc2hvdWxkIHJlc3RyaWN0IHRoZSB3aWR0aCBvZiB0
aGUgUG9wdXBMaXN0Qm94IG9yIG5vdC4KICAgICAvLyBBdXRvY29tcGxldGUgcG9wdXBzIGFyZSBy
ZXN0cmljdGVkLCBjb21iby1ib3hlcyAoc2VsZWN0IHRhZ3MpIGFyZW4ndC4KICAgICBib29sIHJl
c3RyaWN0V2lkdGhPZkxpc3RCb3g7CisKKyAgICBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9y
OwogfTsKIAogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAo
ZS5nLiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDNiMmYyYWU5ZmUz
NDMyOGFiY2VkYjNkOTVhMTlmMThlNTEyOTRjMjAuLjYyZTEwMDhmYjk2YTAwY2U1YzQyODcxZjRk
OGM0MDE1ZDY2YTcwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTMxLDExICszMSwxNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKKworI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBvcHVwQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBpbnQgUG9wdXBNZW51Q2hyb21pdW06OnNfbWluaW11bVJvd0hl
aWdodCA9IDA7CitpbnQgUG9wdXBNZW51Q2hyb21pdW06OnNfb3B0aW9uUGFkZGluZ0ZvclRvdWNo
ID0gMzA7CiAKIC8vIFRoZSBzZXR0aW5ncyB1c2VkIGZvciB0aGUgZHJvcCBkb3duIG1lbnUuCiAv
LyBUaGlzIGlzIHRoZSBkZWxlZ2F0ZSB1c2VkIGlmIG5vbmUgaXMgcHJvdmlkZWQuCkBAIC02Miw4
ICs2OCwxNCBAQCBQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKCkKIAogdm9p
ZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYs
IGludCBpbmRleCkKIHsKLSAgICBpZiAoIXAucG9wdXApCi0gICAgICAgIHAucG9wdXAgPSBQb3B1
cENvbnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBkcm9w
RG93blNldHRpbmdzKTsKKyAgICBpZiAoIXAucG9wdXApIHsKKyAgICAgICAgUG9wdXBDb250YWlu
ZXJTZXR0aW5ncyBwb3B1cFNldHRpbmdzID0gZHJvcERvd25TZXR0aW5nczsKKyAgICAgICAgcG9w
dXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQorICAgICAgICAgICAgdi0+ZnJh
bWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAg
ICAgICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcikKKyAgICAg
ICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICAg
ICAgcC5wb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoY2xpZW50KCksIFBvcHVwQ29udGFp
bmVyOjpTZWxlY3QsIHBvcHVwU2V0dGluZ3MpOworICAgIH0KICAgICBwLnBvcHVwLT5zaG93SW5S
ZWN0KHIsIHYsIGluZGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKaW5kZXggMjBiZTZlMTUzY2JlZDdjYWNiMzUx
NmUxOTAxNDk3MjcxNTVlNGYwMS4uNmU5YWE4OGJlNWUzODVlMGM4ZTg0ODA0MmEwNGQ0ODhlYjFk
NzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1
cE1lbnVDaHJvbWl1bS5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50
IG1pbmltdW1Sb3dIZWlnaHQoKSB7IHJldHVybiBzX21pbmltdW1Sb3dIZWlnaHQ7IH0KICAgICBz
dGF0aWMgdm9pZCBzZXRNaW5pbXVtUm93SGVpZ2h0KGludCBtaW5pbXVtUm93SGVpZ2h0KSB7IHNf
bWluaW11bVJvd0hlaWdodCA9IG1pbmltdW1Sb3dIZWlnaHQ7IH0KIAorICAgIHN0YXRpYyBpbnQg
b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCkgeyByZXR1cm4gc19vcHRpb25QYWRkaW5nRm9yVG91Y2g7
IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRPcHRpb25QYWRkaW5nRm9yVG91Y2goaW50IG9wdGlvblBh
ZGRpbmdGb3JUb3VjaCkgeyBzX29wdGlvblBhZGRpbmdGb3JUb3VjaCA9IG9wdGlvblBhZGRpbmdG
b3JUb3VjaDsgfQorCiBwcml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQogCkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgUG9wdXBNZW51UHJpdmF0ZSBwOwogCiAgICAgc3RhdGljIGludCBzX21pbmltdW1Sb3dI
ZWlnaHQ7CisgICAgc3RhdGljIGludCBzX29wdGlvblBhZGRpbmdGb3JUb3VjaDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCmluZGV4IGE0N2FlYmJhZTQ0MDFjZTRiYzU3NjMyZTBkNGZlZTQ5MThmNmY4ZjUu
LmU5ODJlZWE2MDcyYzVjMDU3YmYwYmY1YjJmZGU3YTU5YzI3NWIxMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlckJSLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRS
dW4uaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAKQEAgLTMwOCw2ICszMDksOSBAQCB2b2lkIFJlbmRl
ck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVs
ZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCiAgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwogICAgIExheW91dFJlY3Qg
YWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsK
KyAgICBpbnQgc2NhbGUgPSBkb2N1bWVudCgpLT5wYWdlKCktPnNldHRpbmdzKCktPmRlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgIGlmIChzY2FsZSAmJiBzY2FsZSAhPSAxKQorICAgICAg
ICBhYnNCb3VuZHMuc2NhbGUoc2NhbGUpOwogICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3Vu
ZGVkTGF5b3V0UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxl
Y3QgPSB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSk7CiAgICAgbV9wb3B1cC0+c2hvdyhhYnNC
b3VuZHMsIGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxl
Y3QtPnNlbGVjdGVkSW5kZXgoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IGVjOTQwM2NiY2Q2OTliZjUxODg3ZjQzODA0NmRkZTRhNzQwNjA2YWYu
LjRkNTAzYzcwNWE0NjczNmI3Y2I2NGJhMDE4YTBhMjQ4MjBiZWQ3NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTYwMSw4ICs2MDEsMjUgQEAgYm9v
bCBXZWJWaWV3SW1wbDo6bW91c2VXaGVlbChjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQmIGV2ZW50
KQogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKIGJvb2wgV2ViVmlld0ltcGw6Omdlc3R1cmVF
dmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogeworICAgIFJlZlB0cjxXZWJDb3Jl
OjpQb3B1cENvbnRhaW5lcj4gc2VsZWN0UG9wdXA7CiAgICAgUGxhdGZvcm1HZXN0dXJlRXZlbnRC
dWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQp
OwotICAgIHJldHVybiBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5o
YW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LnR5cGUgPT0g
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcCkgeworICAgICAgICBzZWxlY3RQb3B1cCA9IG1fc2Vs
ZWN0UG9wdXA7CisgICAgICAgIGhpZGVTZWxlY3RQb3B1cCgpOworICAgICAgICBBU1NFUlQoIW1f
c2VsZWN0UG9wdXApOworICAgIH0KKworICAgIGJvb2wgZ2VzdHVyZUhhbmRsZWQgPSBtYWluRnJh
bWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxh
dGZvcm1FdmVudCk7CisKKyAgICBpZiAobV9zZWxlY3RQb3B1cCAmJiBtX3NlbGVjdFBvcHVwID09
IHNlbGVjdFBvcHVwKSB7CisgICAgICAgIC8vIFRoYXQgdGFwIHRyaWdnZXJlZCBhIHNlbGVjdCBw
b3B1cCB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIHRoYXQKKyAgICAgICAgLy8gd2FzIHNo
b3dpbmcgYmVmb3JlIHRoZSB0YXAuIEl0IG1lYW5zIHRoZSB1c2VyIHRhcHBlZCB0aGUgc2VsZWN0
CisgICAgICAgIC8vIHdoaWxlIHRoZSBwb3B1cCB3YXMgc2hvd2luZywgYW5kIGFzIGEgcmVzdWx0
IHdlIGZpcnN0IGNsb3NlZCB0aGVuCisgICAgICAgIC8vIGltbWVkaWF0ZWx5IHJlb3BlbmVkIHRo
ZSBzZWxlY3QgcG9wdXAuIEl0IG5lZWRzIHRvIGJlIGNsb3NlZC4KKyAgICAgICAgaGlkZVNlbGVj
dFBvcHVwKCk7CisgICAgfQorCisgICAgcmV0dXJuIGdlc3R1cmVIYW5kbGVkOwogfQogCiB2b2lk
IFdlYlZpZXdJbXBsOjpzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihjb25zdCBJbnRQb2ludCYgc2Ny
b2xsLCBib29sIHVzZUFuY2hvciwgZmxvYXQgbmV3U2NhbGUsIGRvdWJsZSBkdXJhdGlvblNlYykK
QEAgLTI2OTAsOSArMjcwNywxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3Vn
Z2VzdGlvbnMoCiAgICAgICAgIGlucHV0RWxlbSwgbmFtZXMsIGxhYmVscywgaWNvbnMsIHVuaXF1
ZUlEcywgc2VwYXJhdG9ySW5kZXgpOwogCiAgICAgaWYgKCFtX2F1dG9maWxsUG9wdXApIHsKKyAg
ICAgICAgUG9wdXBDb250YWluZXJTZXR0aW5ncyBwb3B1cFNldHRpbmdzID0gYXV0b2ZpbGxQb3B1
cFNldHRpbmdzOworICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
ciA9CisgICAgICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VTY2FsZUZh
Y3RvcigpOworICAgICAgICBpZiAoIXBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFj
dG9yKQorICAgICAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3Ig
PSAxOwogICAgICAgICBtX2F1dG9maWxsUG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKG1f
YXV0b2ZpbGxQb3B1cENsaWVudC5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6U3VnZ2VzdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvZmlsbFBvcHVwU2V0
dGluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcHVwU2V0dGluZ3MpOwogICAgIH0KIAogICAgIGlmIChtX2F1dG9maWxsUG9wdXBTaG93aW5n
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131882</attachid>
            <date>2012-03-14 10:54:08 -0700</date>
            <delta_ts>2012-03-21 06:34:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120314135406.patch</filename>
            <type>text/plain</type>
            <size>14709</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM1MmY3ZmM5YzU2YWMw
YjU5NjYyMWQyMzhjNDVlNzlkMzIyMWE0ZC4uMzQ4MGQ5ODIyODdjYWI0Y2ZlZTdlOGUzYWE0ODQx
YzI0YTc4YWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTE0ICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNj
YWxlIENvbWJvIGJveCBwb3B1cHMgYnkgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yLCBhbmQgYWRk
IHBhZGRpbmcgdG8KKyAgICAgICAgPG9wdGlvbj4gZWxlbWVudHMgd2hlbiB0b3VjaCBpcyBlbmFi
bGVkLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIC0tZGVmYXVsdC1kZXZpY2Utc2Nh
bGUtZmFjdG9yPTEsMiBhbmQgdW5zZXQuCisgICAgICAgIEVhY2ggb2YgdGhlc2Ugd2VyZSB0ZXN0
ZWQgd2l0aCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQKKyAgICAgICAgc2V0
IHRvIHRydWUgYW5kIGZhbHNlLiBBbHNvIHRlc3RlZCBieSBTZWxlY3RQb3B1cE1lbnVUZXN0LioK
KworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TGlzdEJveDo6cGFpbnRSb3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpnZXRS
b3dIZWlnaHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oOgor
ICAgICAgICAoUG9wdXBDb250YWluZXJTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUNocm9taXVtOjpvcHRpb25QYWRkaW5nRm9yVG91Y2gpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51Q2hyb21pdW06OnNldE9wdGlvblBhZGRpbmdGb3JUb3VjaCk6CisgICAgICAgIChQb3B1
cE1lbnVDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorCiAyMDEyLTAz
LTE0ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZ2lv
biBjYW4gYWNxdWlyZSBhbiBlbXB0eSBzcGFuIGJ5IHN1YnRyYWN0aW5nIGFuIGVtcHR5IFJlZ2lv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhZmY1MGI3NWI4OWZhYjAyMWE1YjExZmEz
MTUxNTE1NzEyMTI3MGYzLi4wYmNjYmY5OTNkMWJiY2UxMzJlYzYxMDM1NWRiNWRjNDYyM2QxZTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTE0
ICBUaW0gRHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIEluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdo
IERQSSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
Omdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9m
aWxsU3VnZ2VzdGlvbnMpOgorICAgICAgICAqIHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXN0V2ViVmlld0NsaWVudDo6c2NyZWVuSW5mbyk6CisgICAgICAgIChX
ZWJLaXQ6OlNlbGVjdFBvcHVwTWVudVRlc3Q6OlNldFVwKToKKyAgICAgICAgKFdlYktpdDo6U2Vs
ZWN0UG9wdXBNZW51VGVzdDo6VGVhckRvd24pOgorICAgICAgICAoU2VsZWN0UG9wdXBNZW51VGVz
dCk6CisKIDIwMTItMDMtMTQgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmVnaW9uIGNhbiBhY3F1aXJlIGFuIGVtcHR5IHNwYW4gYnkgc3VidHJhY3Rpbmcg
YW4gZW1wdHkgUmVnaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmNwcAppbmRleCBjOTgwYWQ2MjNhMWYzNDVkOTE0MDI3NTRmNDM0YTY0NTdh
NGZlMjU3Li42ZDY3ZTA1NTM0MDUwYmMyNjUwZTFkZjcwNzY2MjA3Nzc5YjhjMjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1ZGUg
IlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAj
aW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgpAQCAtMzUy
LDYgKzM1Myw3IEBAIHZvaWQgUG9wdXBMaXN0Qm94Ojp0eXBlQWhlYWRGaW5kKGNvbnN0IFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludChHcmFw
aGljc0NvbnRleHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIGludCBzY2FsZSA9
IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIC8vIGFkanVzdCBjb29y
ZHMgZm9yIHNjcm9sbGVkIGZyYW1lCiAgICAgSW50UmVjdCByID0gaW50ZXJzZWN0aW9uKHJlY3Qs
IGZyYW1lUmVjdCgpKTsKICAgICBpbnQgdHggPSB4KCkgLSBzY3JvbGxYKCk7CkBAIC0zNjYsNiAr
MzY4LDggQEAgdm9pZCBQb3B1cExpc3RCb3g6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNv
bnN0IEludFJlY3QmIHJlY3QpCiAKICAgICAvLyBGSVhNRTogQ2FuIHdlIG9wdGltaXplIHNjcm9s
bGluZyB0byBub3QgcmVxdWlyZSByZXBhaW50aW5nIHRoZSBlbnRpcmUKICAgICAvLyB3aW5kb3c/
IFNob3VsZCB3ZT8KKyAgICBpZiAoc2NhbGUgIT0gMSkKKyAgICAgICAgZ2MtPnNjYWxlKEZsb2F0
U2l6ZShzY2FsZSwgc2NhbGUpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUl0ZW1zKCk7
ICsraSkKICAgICAgICAgcGFpbnRSb3coZ2MsIHIsIGkpOwogCkBAIC0zODksNiArMzkzLDE5IEBA
IHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludFJvdyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBJ
bnRSZWN0JiByZWN0LCBpbnQgcm93SW5kCiAgICAgaWYgKCFyb3dSZWN0LmludGVyc2VjdHMocmVj
dCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGludCBzY2FsZSA9IG1fc2V0dGluZ3MuZGVmYXVs
dERldmljZVNjYWxlRmFjdG9yOworICAgIC8vIFJvd1JlY3QgaGFzIGFscmVhZHkgYmVlbiBzY2Fs
ZWQgYnkgdGhlIGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvci4KKyAgICAvLyBUbyBhdm9pZCBzY2Fs
aW5nIGl0IHR3aWNlLCB3ZSBoYXZlIHRvIHVuc2NhbGUgaXQgYmVmb3JlIGRyYXdpbmcuCisgICAg
aWYgKHNjYWxlICE9IDEpIHsKKyAgICAgICAgLy8gSGVpZ2h0IGFuZCB5IHNob3VsZCBib3RoIGJl
IGV2ZW5seSBkaXZpc2libGUgYnkgc2NhbGUuCisgICAgICAgIEFTU0VSVCghKHJvd1JlY3QueSgp
ICUgc2NhbGUpKTsKKyAgICAgICAgcm93UmVjdC5zZXRZKHJvd1JlY3QueSgpIC8gc2NhbGUpOwor
ICAgICAgICBBU1NFUlQoIShyb3dSZWN0LmhlaWdodCgpICUgc2NhbGUpKTsKKyAgICAgICAgcm93
UmVjdC5zZXRIZWlnaHQocm93UmVjdC5oZWlnaHQoKSAvIHNjYWxlKTsKKyAgICAgICAgcm93UmVj
dC5zZXRXaWR0aChjZWlsZihzdGF0aWNfY2FzdDxmbG9hdD4ocm93UmVjdC53aWR0aCgpKSAvIHNj
YWxlKSk7CisgICAgICAgIC8vIHJvd1JlY3QueCBpcyBhbHdheXMgMC4KKyAgICB9CisKICAgICBQ
b3B1cE1lbnVTdHlsZSBzdHlsZSA9IG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShyb3dJbmRleCk7
CiAKICAgICAvLyBQYWludCBiYWNrZ3JvdW5kCkBAIC02MTMsMTUgKzYzMCwxNiBAQCB2b2lkIFBv
cHVwTGlzdEJveDo6c2V0T3JpZ2luYWxJbmRleChpbnQgaW5kZXgpCiAKIGludCBQb3B1cExpc3RC
b3g6OmdldFJvd0hlaWdodChpbnQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgMCkKLSAgICAg
ICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7Ci0KLSAgICBp
ZiAobV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCi0gICAg
ICAgIHJldHVybiBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpOworICAgIGlu
dCBzY2FsZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOworICAgIGludCBw
YWRkaW5nRm9yVG91Y2ggPSAwOworICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3Vj
aEVuYWJsZWQoKSkKKyAgICAgICAgcGFkZGluZ0ZvclRvdWNoID0gUG9wdXBNZW51Q2hyb21pdW06
Om9wdGlvblBhZGRpbmdGb3JUb3VjaCgpOworICAgIGlmIChpbmRleCA8IDAgfHwgbV9wb3B1cENs
aWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCisgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpICogc2NhbGU7CiAKICAgICAvLyBT
ZXBhcmF0b3Igcm93IGhlaWdodCBpcyB0aGUgc2FtZSBzaXplIGFzIGl0c2VsZi4KICAgICBpZiAo
bV9wb3B1cENsaWVudC0+aXRlbUlzU2VwYXJhdG9yKGluZGV4KSkKLSAgICAgICAgcmV0dXJuIG1h
eChzZXBhcmF0b3JIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkp
OworICAgICAgICByZXR1cm4gbWF4KHNlcGFyYXRvckhlaWdodCwgKFBvcHVwTWVudUNocm9taXVt
OjptaW5pbXVtUm93SGVpZ2h0KCkpKSAqIHNjYWxlOwogCiAgICAgU3RyaW5nIGljb24gPSBtX3Bv
cHVwQ2xpZW50LT5pdGVtSWNvbihpbmRleCk7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZShJbWFn
ZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoaWNvbi51dGY4KCkuZGF0YSgpKSk7CkBAIC02MzEsNyAr
NjQ5LDcgQEAgaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleCkKIAogICAg
IGludCBsaW5lUGFkZGluZ0hlaWdodCA9IG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLm1lbnVU
eXBlKCkgPT0gUG9wdXBNZW51U3R5bGU6OkF1dG9maWxsUG9wdXAgPyBrTGluZVBhZGRpbmdIZWln
aHQgOiAwOwogICAgIGludCBjYWxjdWxhdGVkUm93SGVpZ2h0ID0gbWF4KGZvbnRIZWlnaHQsIGlj
b25IZWlnaHQpICsgbGluZVBhZGRpbmdIZWlnaHQgKiAyOwotICAgIHJldHVybiBtYXgoY2FsY3Vs
YXRlZFJvd0hlaWdodCwgUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSk7Cisg
ICAgcmV0dXJuIChtYXgoY2FsY3VsYXRlZFJvd0hlaWdodCwgUG9wdXBNZW51Q2hyb21pdW06Om1p
bmltdW1Sb3dIZWlnaHQoKSkgKyBwYWRkaW5nRm9yVG91Y2gpICogc2NhbGU7CiB9CiAKIEludFJl
Y3QgUG9wdXBMaXN0Qm94OjpnZXRSb3dCb3VuZHMoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAppbmRleCBkZDJlNThkZWRkZDhm
MzhkMjQ2M2U2MjNhZjc5MDM4Y2M1MjNmODc5Li5iNjg1MzEzY2M0MzE5YjExNDY0MmY3NWUwNzk3
NTI5ZDY4NWJjMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cExpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guaApAQCAtNzksNiArNzksOCBAQCBzdHJ1Y3QgUG9wdXBDb250YWluZXJTZXR0
aW5ncyB7CiAgICAgLy8gV2hldGhlciB3ZSBzaG91bGQgcmVzdHJpY3QgdGhlIHdpZHRoIG9mIHRo
ZSBQb3B1cExpc3RCb3ggb3Igbm90LgogICAgIC8vIEF1dG9jb21wbGV0ZSBwb3B1cHMgYXJlIHJl
c3RyaWN0ZWQsIGNvbWJvLWJveGVzIChzZWxlY3QgdGFncykgYXJlbid0LgogICAgIGJvb2wgcmVz
dHJpY3RXaWR0aE9mTGlzdEJveDsKKworICAgIGludCBkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7
CiB9OwogCiAvLyBBIGNvbnRhaW5lciBmb3IgdGhlIGRhdGEgZm9yIGVhY2ggbWVudSBpdGVtIChl
LmcuIHJlcHJlc2VudGVkIGJ5IDxvcHRpb24+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKaW5kZXggM2IyZjJhZTlmZTM0
MzI4YWJjZWRiM2Q5NWExOWYxOGU1MTI5NGMyMC4uNjJlMTAwOGZiOTZhMDBjZTVjNDI4NzFmNGQ4
YzQwMTVkNjZhNzBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMzEsMTEgKzMxLDE3IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGludCBQb3B1cE1lbnVDaHJvbWl1bTo6c19taW5pbXVtUm93SGVp
Z2h0ID0gMDsKK2ludCBQb3B1cE1lbnVDaHJvbWl1bTo6c19vcHRpb25QYWRkaW5nRm9yVG91Y2gg
PSAzMDsKIAogLy8gVGhlIHNldHRpbmdzIHVzZWQgZm9yIHRoZSBkcm9wIGRvd24gbWVudS4KIC8v
IFRoaXMgaXMgdGhlIGRlbGVnYXRlIHVzZWQgaWYgbm9uZSBpcyBwcm92aWRlZC4KQEAgLTYyLDgg
KzY4LDE0IEBAIFBvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21pdW0oKQogCiB2b2lk
IFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwg
aW50IGluZGV4KQogewotICAgIGlmICghcC5wb3B1cCkKLSAgICAgICAgcC5wb3B1cCA9IFBvcHVw
Q29udGFpbmVyOjpjcmVhdGUoY2xpZW50KCksIFBvcHVwQ29udGFpbmVyOjpTZWxlY3QsIGRyb3BE
b3duU2V0dGluZ3MpOworICAgIGlmICghcC5wb3B1cCkgeworICAgICAgICBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBkcm9wRG93blNldHRpbmdzOworICAgICAgICBwb3B1
cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9CisgICAgICAgICAgICB2LT5mcmFt
ZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpOworICAg
ICAgICBpZiAoIXBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKQorICAgICAg
ICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgICAg
ICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9wdXBDb250YWlu
ZXI6OlNlbGVjdCwgcG9wdXBTZXR0aW5ncyk7CisgICAgfQogICAgIHAucG9wdXAtPnNob3dJblJl
Y3QociwgdiwgaW5kZXgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAppbmRleCAyMGJlNmUxNTNjYmVkN2NhY2IzNTE2
ZTE5MDE0OTcyNzE1NWU0ZjAxLi42ZTlhYTg4YmU1ZTM4NWUwYzhlODQ4MDQyYTA0ZDQ4OGViMWQ3
ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TWVudUNocm9taXVtLmgKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQg
bWluaW11bVJvd0hlaWdodCgpIHsgcmV0dXJuIHNfbWluaW11bVJvd0hlaWdodDsgfQogICAgIHN0
YXRpYyB2b2lkIHNldE1pbmltdW1Sb3dIZWlnaHQoaW50IG1pbmltdW1Sb3dIZWlnaHQpIHsgc19t
aW5pbXVtUm93SGVpZ2h0ID0gbWluaW11bVJvd0hlaWdodDsgfQogCisgICAgc3RhdGljIGludCBv
cHRpb25QYWRkaW5nRm9yVG91Y2goKSB7IHJldHVybiBzX29wdGlvblBhZGRpbmdGb3JUb3VjaDsg
fQorICAgIHN0YXRpYyB2b2lkIHNldE9wdGlvblBhZGRpbmdGb3JUb3VjaChpbnQgb3B0aW9uUGFk
ZGluZ0ZvclRvdWNoKSB7IHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoID0gb3B0aW9uUGFkZGluZ0Zv
clRvdWNoOyB9CisKIHByaXZhdGU6CiAgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CiAKQEAgLTY0LDYgKzY3LDcgQEAgcHJpdmF0ZToK
ICAgICBQb3B1cE1lbnVQcml2YXRlIHA7CiAKICAgICBzdGF0aWMgaW50IHNfbWluaW11bVJvd0hl
aWdodDsKKyAgICBzdGF0aWMgaW50IHNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKaW5kZXggYTQ3YWViYmFlNDQwMWNlNGJjNTc2MzJlMGQ0ZmVlNDkxOGY2ZjhmNS4u
ZTk4MmVlYTYwNzJjNWMwNTdiZjBiZjViMmZkZTdhNTljMjc1YjExZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5j
bHVkZSAiUmVuZGVyQlIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1
bi5oIgogI2luY2x1ZGUgPG1hdGguaD4KIApAQCAtMzA4LDYgKzMwOSw5IEBAIHZvaWQgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBvZiB0aGUgZWxl
bWVudCB0byBzaXplIHRoZSBwb3B1cC4KICAgICBGbG9hdFBvaW50IGFic1RvcExlZnQgPSBsb2Nh
bFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgTGF5b3V0UmVjdCBh
YnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwor
ICAgIGludCBzY2FsZSA9IGRvY3VtZW50KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERl
dmljZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKHNjYWxlICYmIHNjYWxlICE9IDEpCisgICAgICAg
IGFic0JvdW5kcy5zY2FsZShzY2FsZSk7CiAgICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5k
ZWRMYXlvdXRQb2ludChhYnNUb3BMZWZ0KSk7CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVj
dCA9IHRvSFRNTFNlbGVjdEVsZW1lbnQobm9kZSgpKTsKICAgICBtX3BvcHVwLT5zaG93KGFic0Jv
dW5kcywgZG9jdW1lbnQoKS0+dmlldygpLCBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVj
dC0+c2VsZWN0ZWRJbmRleCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKaW5kZXggMjBlMmU0ZWYzMTNjZjczMjVmMjUyYjg0NjUxZjg2MDY4NDlhYmFhMy4u
YzkyNmU3OWNkOTU1NmY3MDk5ODNjY2M1OTY3ZjMwYjljOWFhMDQyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNjAyLDggKzYwMiwyNSBAQCBib29s
IFdlYlZpZXdJbXBsOjptb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYgZXZlbnQp
CiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogYm9vbCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2
ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiB7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlBvcHVwQ29udGFpbmVyPiBzZWxlY3RQb3B1cDsKICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1
aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7
Ci0gICAgcmV0dXJuIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhh
bmRsZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAoZXZlbnQudHlwZSA9PSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwKSB7CisgICAgICAgIHNlbGVjdFBvcHVwID0gbV9zZWxl
Y3RQb3B1cDsKKyAgICAgICAgaGlkZVNlbGVjdFBvcHVwKCk7CisgICAgICAgIEFTU0VSVCghbV9z
ZWxlY3RQb3B1cCk7CisgICAgfQorCisgICAgYm9vbCBnZXN0dXJlSGFuZGxlZCA9IG1haW5GcmFt
ZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwbGF0
Zm9ybUV2ZW50KTsKKworICAgIGlmIChtX3NlbGVjdFBvcHVwICYmIG1fc2VsZWN0UG9wdXAgPT0g
c2VsZWN0UG9wdXApIHsKKyAgICAgICAgLy8gVGhhdCB0YXAgdHJpZ2dlcmVkIGEgc2VsZWN0IHBv
cHVwIHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgdGhhdAorICAgICAgICAvLyB3YXMgc2hv
d2luZyBiZWZvcmUgdGhlIHRhcC4gSXQgbWVhbnMgdGhlIHVzZXIgdGFwcGVkIHRoZSBzZWxlY3QK
KyAgICAgICAgLy8gd2hpbGUgdGhlIHBvcHVwIHdhcyBzaG93aW5nLCBhbmQgYXMgYSByZXN1bHQg
d2UgZmlyc3QgY2xvc2VkIHRoZW4KKyAgICAgICAgLy8gaW1tZWRpYXRlbHkgcmVvcGVuZWQgdGhl
IHNlbGVjdCBwb3B1cC4gSXQgbmVlZHMgdG8gYmUgY2xvc2VkLgorICAgICAgICBoaWRlU2VsZWN0
UG9wdXAoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ2VzdHVyZUhhbmRsZWQ7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiBzY3Jv
bGwsIGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBuZXdTY2FsZSwgZG91YmxlIGR1cmF0aW9uU2VjKQpA
QCAtMjY5MSw5ICsyNzA4LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdn
ZXN0aW9ucygKICAgICAgICAgaW5wdXRFbGVtLCBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVl
SURzLCBzZXBhcmF0b3JJbmRleCk7CiAKICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkgeworICAg
ICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmlsbFBvcHVw
U2V0dGluZ3M7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9y
ID0KKyAgICAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFj
dG9yKCk7CisgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3IpCisgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9
IDE7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUobV9h
dXRvZmlsbFBvcHVwQ2xpZW50LmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyOjpTdWdnZXN0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9maWxsUG9wdXBTZXR0
aW5ncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cG9wdXBTZXR0aW5ncyk7CiAgICAgfQogCiAgICAgaWYgKG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCmlu
ZGV4IGYwNTNjYTQxMGVlNzQyYWRkOTU3MzQ5NWRiZDg5ZTc2YzNlOTVmNTEuLjFkYjY1ZWM2ZWYy
NzA2NjgwYmM2ZTNkYjMxMWE4ODllYTJhYmZlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlBv
cHVwTWVudUNocm9taXVtLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgog
I2luY2x1ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCkBAIC0xNTQsNyArMTU1LDcgQEAgcHVibGljOgogICAgIC8vIFdlIG5l
ZWQgdG8gb3ZlcnJpZGUgdGhpcyBzbyB0aGF0IHRoZSBwb3B1cCBtZW51IHNpemUgaXMgbm90IDAK
ICAgICAvLyAodGhlIGxheW91dCBjb2RlIGNoZWNrcyB0byBzZWUgaWYgdGhlIHBvcHVwIGZpdHMg
b24gdGhlIHNjcmVlbikuCiAgICAgdmlydHVhbCBXZWJTY3JlZW5JbmZvIHNjcmVlbkluZm8oKQot
ICAgIHsgCisgICAgewogICAgICAgICBXZWJTY3JlZW5JbmZvIHNjcmVlbkluZm87CiAgICAgICAg
IHNjcmVlbkluZm8uYXZhaWxhYmxlUmVjdC5oZWlnaHQgPSAyMDAwOwogICAgICAgICBzY3JlZW5J
bmZvLmF2YWlsYWJsZVJlY3Qud2lkdGggPSAyMDAwOwpAQCAtMTgxLDYgKzE4MiwxMCBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKICAgICB7CisgICAgICAg
IC8vIFdoZW4gdG91Y2ggaXMgZW5hYmxlZCwgcGFkZGluZyBpcyBhZGRlZCB0byBvcHRpb24gZWxl
bWVudHMKKyAgICAgICAgLy8gSW4gdGhlc2UgdGVzdHMsIHdlJ2xsIGFzc3VtZSB0b3VjaCBpcyBk
aXNhYmxlZC4KKyAgICAgICAgbV90b3VjaFdhc0VuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjp0b3VjaEVuYWJsZWQoKTsKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0
VG91Y2hFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV93ZWJWaWV3ID0gc3RhdGljX2Nhc3Q8V2Vi
Vmlld0ltcGwqPihXZWJWaWV3OjpjcmVhdGUoJm1fd2Vidmlld0NsaWVudCkpOwogICAgICAgICBt
X3dlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJm1fd2ViRnJhbWVDbGllbnQpOwogICAgICAg
ICBtX3BvcHVwTWVudSA9IGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVDaHJvbWl1bSgmbV9wb3B1cE1l
bnVDbGllbnQpKTsKQEAgLTE5MSw2ICsxOTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fcG9w
dXBNZW51ID0gMDsKICAgICAgICAgbV93ZWJWaWV3LT5jbG9zZSgpOwogICAgICAgICB3ZWJraXRf
c3VwcG9ydDo6VW5yZWdpc3RlckFsbE1vY2tlZFVSTHMoKTsKKyAgICAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0VG91Y2hFbmFibGVkKG1fdG91Y2hXYXNFbmFibGVkKTsKICAgICB9CiAK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgY3VycmVudGx5IGlzIGEgc2VsZWN0IHBvcHVw
IGluIHRoZSBXZWJWaWV3LgpAQCAtMjc4LDYgKzI4NCw3IEBAIHByb3RlY3RlZDoKICAgICBUZXN0
V2ViRnJhbWVDbGllbnQgbV93ZWJGcmFtZUNsaWVudDsKICAgICBUZXN0UG9wdXBNZW51Q2xpZW50
IG1fcG9wdXBNZW51Q2xpZW50OwogICAgIFJlZlB0cjxQb3B1cE1lbnU+IG1fcG9wdXBNZW51Owor
ICAgIGJvb2wgbV90b3VjaFdhc0VuYWJsZWQ7CiAgICAgc3RkOjpzdHJpbmcgYmFzZVVSTDsKIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133034</attachid>
            <date>2012-03-21 06:34:31 -0700</date>
            <delta_ts>2012-03-21 07:20:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80027-20120321093430.patch</filename>
            <type>text/plain</type>
            <size>14725</size>
            <attacher name="Tim Dresser">tdresser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRlNDU3MmE4N2U1ZDY4
NzlkNTM2ZWJhNDc5NWM4NjU1YWNmOTFlYi4uNDExNDVlZWVlYzllZjljOWI2YWQ3ZTA5YWE3YjJi
MDI4OWMyYjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTIxICBUaW0g
RHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRvdWNoIGFuZCBoaWdoIERQSSBk
ZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBTY2Fs
ZSBDb21ibyBib3ggcG9wdXBzIGJ5IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciwgYW5kIGFkZCBw
YWRkaW5nIHRvCisgICAgICAgIDxvcHRpb24+IGVsZW1lbnRzIHdoZW4gdG91Y2ggaXMgZW5hYmxl
ZC4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQgd2l0aCAtLWRlZmF1bHQtZGV2aWNlLXNjYWxl
LWZhY3Rvcj0xLDIgYW5kIHVuc2V0LgorICAgICAgICBFYWNoIG9mIHRoZXNlIHdlcmUgdGVzdGVk
IHdpdGggUnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkCisgICAgICAgIHNldCB0
byB0cnVlIGFuZCBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlz
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6cGFpbnRSb3cpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5oOgorICAgICAgICAoUG9wdXBDb250YWluZXJTZXR0aW5ncyk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpvcHRpb25QYWRkaW5nRm9yVG91Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OnNldE9wdGlvblBhZGRpbmdGb3JUb3Vj
aCk6CisgICAgICAgIChQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93
UG9wdXApOgorCiAyMDEyLTAzLTIwICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRhYmJlZCBwYW5lIGRyb3AgZG93biBzaG91
bGQgYmUgc29ydGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiMjUzMWM3MjcxZmM5
MjM1ZmI5MWVjZjNlOTdkMjllMjE3MjZkYjc2Li4yZjc3MmU4ZDNiMTc5Y2Q3MzkyYTllN2ZiODZk
Mzc4YmU2NGNiNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTAzLTIxICBUaW0gRHJlc3NlciAgPHRkcmVzc2VyQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbY2hyb21pdW1dIEluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgZm9yIHRv
dWNoIGFuZCBoaWdoIERQSSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MDAyNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hl
ci4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdlYlZpZXdDbGllbnQ6OnNjcmVlbkluZm8pOgor
ICAgICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1cE1lbnVUZXN0OjpTZXRVcCk6CisgICAgICAgIChX
ZWJLaXQ6OlNlbGVjdFBvcHVwTWVudVRlc3Q6OlRlYXJEb3duKToKKyAgICAgICAgKFNlbGVjdFBv
cHVwTWVudVRlc3QpOgorCiAyMDEyLTAzLTIwICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIG9wYXF1ZSBjb250ZW50cyBmb3IgcGFp
bnQgY3VsbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TGlzdEJveC5jcHAKaW5kZXggYzk4MGFkNjIzYTFmMzQ1ZDkxNDAyNzU0ZjQzNGE2NDU3YTRmZTI1
Ny4uNmQ2N2UwNTUzNDA1MGJjMjY1MGUxZGY3MDc2NjIwNzc3OWI4YzIzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCkBAIC00NCw2
ICs0NCw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKICNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1
ZGUgIlN0cmluZ1RydW5jYXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKQEAgLTM1Miw2ICsz
NTMsNyBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dHlwZUFoZWFkRmluZChjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIGV2ZW50KQogCiB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBnYywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyAgICBpbnQgc2NhbGUgPSBtX3Nl
dHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKICAgICAvLyBhZGp1c3QgY29vcmRzIGZv
ciBzY3JvbGxlZCBmcmFtZQogICAgIEludFJlY3QgciA9IGludGVyc2VjdGlvbihyZWN0LCBmcmFt
ZVJlY3QoKSk7CiAgICAgaW50IHR4ID0geCgpIC0gc2Nyb2xsWCgpOwpAQCAtMzY2LDYgKzM2OCw4
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludChHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogCiAgICAgLy8gRklYTUU6IENhbiB3ZSBvcHRpbWl6ZSBzY3JvbGxpbmcg
dG8gbm90IHJlcXVpcmUgcmVwYWludGluZyB0aGUgZW50aXJlCiAgICAgLy8gd2luZG93PyBTaG91
bGQgd2U/CisgICAgaWYgKHNjYWxlICE9IDEpCisgICAgICAgIGdjLT5zY2FsZShGbG9hdFNpemUo
c2NhbGUsIHNjYWxlKSk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVtcygpOyArK2kp
CiAgICAgICAgIHBhaW50Um93KGdjLCByLCBpKTsKIApAQCAtMzg5LDYgKzM5MywxOSBAQCB2b2lk
IFBvcHVwTGlzdEJveDo6cGFpbnRSb3coR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgSW50UmVj
dCYgcmVjdCwgaW50IHJvd0luZAogICAgIGlmICghcm93UmVjdC5pbnRlcnNlY3RzKHJlY3QpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBpbnQgc2NhbGUgPSBtX3NldHRpbmdzLmRlZmF1bHREZXZp
Y2VTY2FsZUZhY3RvcjsKKyAgICAvLyBSb3dSZWN0IGhhcyBhbHJlYWR5IGJlZW4gc2NhbGVkIGJ5
IHRoZSBkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IuCisgICAgLy8gVG8gYXZvaWQgc2NhbGluZyBp
dCB0d2ljZSwgd2UgaGF2ZSB0byB1bnNjYWxlIGl0IGJlZm9yZSBkcmF3aW5nLgorICAgIGlmIChz
Y2FsZSAhPSAxKSB7CisgICAgICAgIC8vIEhlaWdodCBhbmQgeSBzaG91bGQgYm90aCBiZSBldmVu
bHkgZGl2aXNpYmxlIGJ5IHNjYWxlLgorICAgICAgICBBU1NFUlQoIShyb3dSZWN0LnkoKSAlIHNj
YWxlKSk7CisgICAgICAgIHJvd1JlY3Quc2V0WShyb3dSZWN0LnkoKSAvIHNjYWxlKTsKKyAgICAg
ICAgQVNTRVJUKCEocm93UmVjdC5oZWlnaHQoKSAlIHNjYWxlKSk7CisgICAgICAgIHJvd1JlY3Qu
c2V0SGVpZ2h0KHJvd1JlY3QuaGVpZ2h0KCkgLyBzY2FsZSk7CisgICAgICAgIHJvd1JlY3Quc2V0
V2lkdGgoY2VpbGYoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJvd1JlY3Qud2lkdGgoKSkgLyBzY2FsZSkp
OworICAgICAgICAvLyByb3dSZWN0LnggaXMgYWx3YXlzIDAuCisgICAgfQorCiAgICAgUG9wdXBN
ZW51U3R5bGUgc3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUocm93SW5kZXgpOwogCiAg
ICAgLy8gUGFpbnQgYmFja2dyb3VuZApAQCAtNjEzLDE1ICs2MzAsMTYgQEAgdm9pZCBQb3B1cExp
c3RCb3g6OnNldE9yaWdpbmFsSW5kZXgoaW50IGluZGV4KQogCiBpbnQgUG9wdXBMaXN0Qm94Ojpn
ZXRSb3dIZWlnaHQoaW50IGluZGV4KQogewotICAgIGlmIChpbmRleCA8IDApCi0gICAgICAgIHJl
dHVybiBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpOwotCi0gICAgaWYgKG1f
cG9wdXBDbGllbnQtPml0ZW1TdHlsZShpbmRleCkuaXNEaXNwbGF5Tm9uZSgpKQotICAgICAgICBy
ZXR1cm4gUG9wdXBNZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKTsKKyAgICBpbnQgc2Nh
bGUgPSBtX3NldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBpbnQgcGFkZGlu
Z0ZvclRvdWNoID0gMDsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFi
bGVkKCkpCisgICAgICAgIHBhZGRpbmdGb3JUb3VjaCA9IFBvcHVwTWVudUNocm9taXVtOjpvcHRp
b25QYWRkaW5nRm9yVG91Y2goKTsKKyAgICBpZiAoaW5kZXggPCAwIHx8IG1fcG9wdXBDbGllbnQt
Pml0ZW1TdHlsZShpbmRleCkuaXNEaXNwbGF5Tm9uZSgpKQorICAgICAgICByZXR1cm4gUG9wdXBN
ZW51Q2hyb21pdW06Om1pbmltdW1Sb3dIZWlnaHQoKSAqIHNjYWxlOwogCiAgICAgLy8gU2VwYXJh
dG9yIHJvdyBoZWlnaHQgaXMgdGhlIHNhbWUgc2l6ZSBhcyBpdHNlbGYuCiAgICAgaWYgKG1fcG9w
dXBDbGllbnQtPml0ZW1Jc1NlcGFyYXRvcihpbmRleCkpCi0gICAgICAgIHJldHVybiBtYXgoc2Vw
YXJhdG9ySGVpZ2h0LCBQb3B1cE1lbnVDaHJvbWl1bTo6bWluaW11bVJvd0hlaWdodCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1heChzZXBhcmF0b3JIZWlnaHQsIChQb3B1cE1lbnVDaHJvbWl1bTo6bWlu
aW11bVJvd0hlaWdodCgpKSkgKiBzY2FsZTsKIAogICAgIFN0cmluZyBpY29uID0gbV9wb3B1cENs
aWVudC0+aXRlbUljb24oaW5kZXgpOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoSW1hZ2U6Omxv
YWRQbGF0Zm9ybVJlc291cmNlKGljb24udXRmOCgpLmRhdGEoKSkpOwpAQCAtNjMxLDcgKzY0OSw3
IEBAIGludCBQb3B1cExpc3RCb3g6OmdldFJvd0hlaWdodChpbnQgaW5kZXgpCiAKICAgICBpbnQg
bGluZVBhZGRpbmdIZWlnaHQgPSBtX3BvcHVwQ2xpZW50LT5tZW51U3R5bGUoKS5tZW51VHlwZSgp
ID09IFBvcHVwTWVudVN0eWxlOjpBdXRvZmlsbFBvcHVwID8ga0xpbmVQYWRkaW5nSGVpZ2h0IDog
MDsKICAgICBpbnQgY2FsY3VsYXRlZFJvd0hlaWdodCA9IG1heChmb250SGVpZ2h0LCBpY29uSGVp
Z2h0KSArIGxpbmVQYWRkaW5nSGVpZ2h0ICogMjsKLSAgICByZXR1cm4gbWF4KGNhbGN1bGF0ZWRS
b3dIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkpOworICAgIHJl
dHVybiAobWF4KGNhbGN1bGF0ZWRSb3dIZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVt
Um93SGVpZ2h0KCkpICsgcGFkZGluZ0ZvclRvdWNoKSAqIHNjYWxlOwogfQogCiBJbnRSZWN0IFBv
cHVwTGlzdEJveDo6Z2V0Um93Qm91bmRzKGludCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgKaW5kZXggZGQyZTU4ZGVkZGQ4ZjM4ZDI0
NjNlNjIzYWY3OTAzOGNjNTIzZjg3OS4uYjY4NTMxM2NjNDMxOWIxMTQ2NDJmNzVlMDc5NzUyOWQ2
ODViYzFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBM
aXN0Qm94LmgKQEAgLTc5LDYgKzc5LDggQEAgc3RydWN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3Mg
ewogICAgIC8vIFdoZXRoZXIgd2Ugc2hvdWxkIHJlc3RyaWN0IHRoZSB3aWR0aCBvZiB0aGUgUG9w
dXBMaXN0Qm94IG9yIG5vdC4KICAgICAvLyBBdXRvY29tcGxldGUgcG9wdXBzIGFyZSByZXN0cmlj
dGVkLCBjb21iby1ib3hlcyAoc2VsZWN0IHRhZ3MpIGFyZW4ndC4KICAgICBib29sIHJlc3RyaWN0
V2lkdGhPZkxpc3RCb3g7CisKKyAgICBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogfTsK
IAogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAoZS5nLiBy
ZXByZXNlbnRlZCBieSA8b3B0aW9uPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDNiMmYyYWU5ZmUzNDMyOGFi
Y2VkYjNkOTVhMTlmMThlNTEyOTRjMjAuLjYyZTEwMDhmYjk2YTAwY2U1YzQyODcxZjRkOGM0MDE1
ZDY2YTcwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTMxLDExICszMSwxNyBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBvcHVwQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBpbnQgUG9wdXBNZW51Q2hyb21pdW06OnNfbWluaW11bVJvd0hlaWdodCA9
IDA7CitpbnQgUG9wdXBNZW51Q2hyb21pdW06OnNfb3B0aW9uUGFkZGluZ0ZvclRvdWNoID0gMzA7
CiAKIC8vIFRoZSBzZXR0aW5ncyB1c2VkIGZvciB0aGUgZHJvcCBkb3duIG1lbnUuCiAvLyBUaGlz
IGlzIHRoZSBkZWxlZ2F0ZSB1c2VkIGlmIG5vbmUgaXMgcHJvdmlkZWQuCkBAIC02Miw4ICs2OCwx
NCBAQCBQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKCkKIAogdm9pZCBQb3B1
cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBp
bmRleCkKIHsKLSAgICBpZiAoIXAucG9wdXApCi0gICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRh
aW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBkcm9wRG93blNl
dHRpbmdzKTsKKyAgICBpZiAoIXAucG9wdXApIHsKKyAgICAgICAgUG9wdXBDb250YWluZXJTZXR0
aW5ncyBwb3B1cFNldHRpbmdzID0gZHJvcERvd25TZXR0aW5nczsKKyAgICAgICAgcG9wdXBTZXR0
aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQorICAgICAgICAgICAgdi0+ZnJhbWUoKS0+
cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAg
aWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgICAg
IHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICAgICAgcC5w
b3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoY2xpZW50KCksIFBvcHVwQ29udGFpbmVyOjpT
ZWxlY3QsIHBvcHVwU2V0dGluZ3MpOworICAgIH0KICAgICBwLnBvcHVwLT5zaG93SW5SZWN0KHIs
IHYsIGluZGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmgKaW5kZXggMjBiZTZlMTUzY2JlZDdjYWNiMzUxNmUxOTAx
NDk3MjcxNTVlNGYwMS4uNmU5YWE4OGJlNWUzODVlMGM4ZTg0ODA0MmEwNGQ0ODhlYjFkNzgyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50IG1pbmlt
dW1Sb3dIZWlnaHQoKSB7IHJldHVybiBzX21pbmltdW1Sb3dIZWlnaHQ7IH0KICAgICBzdGF0aWMg
dm9pZCBzZXRNaW5pbXVtUm93SGVpZ2h0KGludCBtaW5pbXVtUm93SGVpZ2h0KSB7IHNfbWluaW11
bVJvd0hlaWdodCA9IG1pbmltdW1Sb3dIZWlnaHQ7IH0KIAorICAgIHN0YXRpYyBpbnQgb3B0aW9u
UGFkZGluZ0ZvclRvdWNoKCkgeyByZXR1cm4gc19vcHRpb25QYWRkaW5nRm9yVG91Y2g7IH0KKyAg
ICBzdGF0aWMgdm9pZCBzZXRPcHRpb25QYWRkaW5nRm9yVG91Y2goaW50IG9wdGlvblBhZGRpbmdG
b3JUb3VjaCkgeyBzX29wdGlvblBhZGRpbmdGb3JUb3VjaCA9IG9wdGlvblBhZGRpbmdGb3JUb3Vj
aDsgfQorCiBwcml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3B1cENsaWVudDsgfQogCkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAg
UG9wdXBNZW51UHJpdmF0ZSBwOwogCiAgICAgc3RhdGljIGludCBzX21pbmltdW1Sb3dIZWlnaHQ7
CisgICAgc3RhdGljIGludCBzX29wdGlvblBhZGRpbmdGb3JUb3VjaDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCmluZGV4IDcwNjU5MzgyZDRjYTJiYmNkZDM1ZDk2OWE3ZmZiM2FiOWJjZjdiZGMuLjE3ZGVi
ZjgxODEyYzg0Y2NlOTlhZjA2ZTQwOTNlZmZjNDgwMzEwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUg
IlJlbmRlckJSLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIK
ICNpbmNsdWRlIDxtYXRoLmg+CiAKQEAgLTMwOCw2ICszMDksOSBAQCB2b2lkIFJlbmRlck1lbnVM
aXN0OjpzaG93UG9wdXAoKQogICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQg
dG8gc2l6ZSB0aGUgcG9wdXAuCiAgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fi
c29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwogICAgIExheW91dFJlY3QgYWJzQm91
bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKKyAgICBp
bnQgc2NhbGUgPSBkb2N1bWVudCgpLT5wYWdlKCktPnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VT
Y2FsZUZhY3RvcigpOworICAgIGlmIChzY2FsZSAmJiBzY2FsZSAhPSAxKQorICAgICAgICBhYnNC
b3VuZHMuc2NhbGUoc2NhbGUpOwogICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVkTGF5
b3V0UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0
b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSk7CiAgICAgbV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMs
IGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNl
bGVjdGVkSW5kZXgoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IDExYWVlYmE3NTE5ZDdhMWI5YTg2ZTgyN2NhN2I2Y2FjM2FlNTZmODcuLmE4MTI2
NmZkZWJhYzY0YTRiN2RjZWQ4N2NiNWZmMDdkOTBiMTcwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTY0NCwxMCArNjQ0LDI1IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6Omdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcDogeworICAgICAgICBQbGF0Zm9ybUdl
c3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpLCBldmVudCk7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4gc2Vs
ZWN0UG9wdXA7CisgICAgICAgIHNlbGVjdFBvcHVwID0gbV9zZWxlY3RQb3B1cDsKKyAgICAgICAg
aGlkZVNlbGVjdFBvcHVwKCk7CisgICAgICAgIEFTU0VSVCghbV9zZWxlY3RQb3B1cCk7CisgICAg
ICAgIGJvb2wgZ2VzdHVyZUhhbmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CisgICAgICAgIGlm
IChtX3NlbGVjdFBvcHVwICYmIG1fc2VsZWN0UG9wdXAgPT0gc2VsZWN0UG9wdXApIHsKKyAgICAg
ICAgICAgIC8vIFRoYXQgdGFwIHRyaWdnZXJlZCBhIHNlbGVjdCBwb3B1cCB3aGljaCBpcyB0aGUg
c2FtZSBhcyB0aGUgb25lIHRoYXQKKyAgICAgICAgICAgIC8vIHdhcyBzaG93aW5nIGJlZm9yZSB0
aGUgdGFwLiBJdCBtZWFucyB0aGUgdXNlciB0YXBwZWQgdGhlIHNlbGVjdAorICAgICAgICAgICAg
Ly8gd2hpbGUgdGhlIHBvcHVwIHdhcyBzaG93aW5nLCBhbmQgYXMgYSByZXN1bHQgd2UgZmlyc3Qg
Y2xvc2VkIHRoZW4KKyAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHJlb3BlbmVkIHRoZSBzZWxl
Y3QgcG9wdXAuIEl0IG5lZWRzIHRvIGJlIGNsb3NlZC4KKyAgICAgICAgICAgIGhpZGVTZWxlY3RQ
b3B1cCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXN0dXJlSGFuZGxlZDsKKyAgICB9
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW46CiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
R2VzdHVyZVNjcm9sbFVwZGF0ZToKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA6
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlUGluY2hCZWdpbjoKQEAgLTI3NTMsOSArMjc2OCwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjph
cHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgICAgIGlucHV0RWxlbSwgbmFtZXMsIGxhYmVs
cywgaWNvbnMsIHVuaXF1ZUlEcywgc2VwYXJhdG9ySW5kZXgpOwogCiAgICAgaWYgKCFtX2F1dG9m
aWxsUG9wdXApIHsKKyAgICAgICAgUG9wdXBDb250YWluZXJTZXR0aW5ncyBwb3B1cFNldHRpbmdz
ID0gYXV0b2ZpbGxQb3B1cFNldHRpbmdzOworICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvciA9CisgICAgICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPmRlZmF1
bHREZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICBpZiAoIXBvcHVwU2V0dGluZ3MuZGVmYXVs
dERldmljZVNjYWxlRmFjdG9yKQorICAgICAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2
aWNlU2NhbGVGYWN0b3IgPSAxOwogICAgICAgICBtX2F1dG9maWxsUG9wdXAgPSBQb3B1cENvbnRh
aW5lcjo6Y3JlYXRlKG1fYXV0b2ZpbGxQb3B1cENsaWVudC5nZXQoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6U3VnZ2Vz
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvZmlsbFBvcHVwU2V0dGluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MpOwogICAgIH0KIAogICAgIGlmIChtX2F1dG9m
aWxsUG9wdXBTaG93aW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1BvcHVwTWVudVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1
cE1lbnVUZXN0LmNwcAppbmRleCBmMDUzY2E0MTBlZTc0MmFkZDk1NzM0OTVkYmQ4OWU3NmMzZTk1
ZjUxLi4xZGI2NWVjNmVmMjcwNjY4MGJjNmUzZGIzMTFhODg5ZWEyYWJmZWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtMTU0LDcgKzE1NSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBXZSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgc28gdGhhdCB0aGUgcG9wdXAgbWVu
dSBzaXplIGlzIG5vdCAwCiAgICAgLy8gKHRoZSBsYXlvdXQgY29kZSBjaGVja3MgdG8gc2VlIGlm
IHRoZSBwb3B1cCBmaXRzIG9uIHRoZSBzY3JlZW4pLgogICAgIHZpcnR1YWwgV2ViU2NyZWVuSW5m
byBzY3JlZW5JbmZvKCkKLSAgICB7IAorICAgIHsKICAgICAgICAgV2ViU2NyZWVuSW5mbyBzY3Jl
ZW5JbmZvOwogICAgICAgICBzY3JlZW5JbmZvLmF2YWlsYWJsZVJlY3QuaGVpZ2h0ID0gMjAwMDsK
ICAgICAgICAgc2NyZWVuSW5mby5hdmFpbGFibGVSZWN0LndpZHRoID0gMjAwMDsKQEAgLTE4MSw2
ICsxODIsMTAgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgp
CiAgICAgeworICAgICAgICAvLyBXaGVuIHRvdWNoIGlzIGVuYWJsZWQsIHBhZGRpbmcgaXMgYWRk
ZWQgdG8gb3B0aW9uIGVsZW1lbnRzCisgICAgICAgIC8vIEluIHRoZXNlIHRlc3RzLCB3ZSdsbCBh
c3N1bWUgdG91Y2ggaXMgZGlzYWJsZWQuCisgICAgICAgIG1fdG91Y2hXYXNFbmFibGVkID0gUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkKCk7CisgICAgICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNldFRvdWNoRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fd2ViVmlldyA9
IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX3dlYnZpZXdDbGll
bnQpKTsKICAgICAgICAgbV93ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1l
Q2xpZW50KTsKICAgICAgICAgbV9wb3B1cE1lbnUgPSBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hy
b21pdW0oJm1fcG9wdXBNZW51Q2xpZW50KSk7CkBAIC0xOTEsNiArMTk2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBtX3BvcHVwTWVudSA9IDA7CiAgICAgICAgIG1fd2ViVmlldy0+Y2xvc2UoKTsK
ICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlVucmVnaXN0ZXJBbGxNb2NrZWRVUkxzKCk7CisgICAg
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFRvdWNoRW5hYmxlZChtX3RvdWNoV2FzRW5h
YmxlZCk7CiAgICAgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIGN1cnJlbnRseSBp
cyBhIHNlbGVjdCBwb3B1cCBpbiB0aGUgV2ViVmlldy4KQEAgLTI3OCw2ICsyODQsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgVGVzdFdlYkZyYW1lQ2xpZW50IG1fd2ViRnJhbWVDbGllbnQ7CiAgICAgVGVz
dFBvcHVwTWVudUNsaWVudCBtX3BvcHVwTWVudUNsaWVudDsKICAgICBSZWZQdHI8UG9wdXBNZW51
PiBtX3BvcHVwTWVudTsKKyAgICBib29sIG1fdG91Y2hXYXNFbmFibGVkOwogICAgIHN0ZDo6c3Ry
aW5nIGJhc2VVUkw7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>