<?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>103896</bug_id>
          
          <creation_ts>2012-12-03 08:17:15 -0800</creation_ts>
          <short_desc>[skia] Improve performance of GraphicsContext::createCompatibleBuffer by using SkDevice:createCompatibleDevice</short_desc>
          <delta_ts>2012-12-05 13:41:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Novosad">junov</reporter>
          <assigned_to name="Justin Novosad">junov</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>philn</cc>
    
    <cc>reed</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781476</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 08:17:15 -0800</bug_when>
    <thetext>[skia] Improve performance of GraphicsContext::createCompatibleBuffer by using SkDevice:createCompatibleDevice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781488</commentid>
    <comment_count>1</comment_count>
      <attachid>177261</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 08:39:51 -0800</bug_when>
    <thetext>Created attachment 177261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781492</commentid>
    <comment_count>2</comment_count>
      <attachid>177261</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 08:45:57 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15097576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781493</commentid>
    <comment_count>3</comment_count>
      <attachid>177261</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 08:47:30 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15086967</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781495</commentid>
    <comment_count>4</comment_count>
      <attachid>177261</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 08:49:03 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15119388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781496</commentid>
    <comment_count>5</comment_count>
      <attachid>177261</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-03 08:49:55 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15106505</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781499</commentid>
    <comment_count>6</comment_count>
      <attachid>177261</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 08:56:53 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15104550</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781527</commentid>
    <comment_count>7</comment_count>
      <attachid>177261</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 09:23:17 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

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

New failing tests:
fast/backgrounds/gradient-background-leakage.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781528</commentid>
    <comment_count>8</comment_count>
      <attachid>177261</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-03 09:23:57 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.h:437
&gt; +        PassOwnPtr&lt;ImageBuffer&gt; createCompatibleBuffer(const IntSize&amp;, bool hasAlpha = true) const;

Prefer a flags enum to a bool here, to make the callsites self-documenting.  See WebKit coding style.

&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:79
&gt; +ImageBuffer::ImageBuffer(const IntSize&amp;, float resolutionScale, ColorSpace colorSpace, const GraphicsContext* compatibleContext, bool hasAlpha, bool&amp; success)
&gt; +    : ImageBuffer(IntSize&amp;, resolutionScale, colorSpace, compatibleContext-&gt;isAccelerated() ? Accelerated : Unaccelerated, NonDeferred, success)
&gt; +{ }

Hmm, yeah, that&apos;s not going to work.

You could use an init() function, but I wonder if it would be possible to simply add the GraphicsContext* to the existing constructor.  If you pass NULL, it does the regular construction, otherwise it does the compatible construction.  You&apos;d also have to put back the accelerated flag.

&gt; Source/WebCore/platform/graphics/ImageBuffer.h:96
&gt; +        // Creates a buffer compativble with &apos;context&apos;. Will return a null pointer on allocation failure.

Typo:  compativble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781531</commentid>
    <comment_count>9</comment_count>
      <attachid>177261</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-12-03 09:25:29 -0800</bug_when>
    <thetext>Comment on attachment 177261
Patch

Attachment 177261 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15104559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781726</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 11:47:19 -0800</bug_when>
    <thetext>
&gt; Prefer a flags enum to a bool here, to make the callsites self-documenting.  See WebKit coding style.
&gt; 

Style guide, rule 10: &quot;Prefer enums to bools on function parameters if callers are likely to be passing constants&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781727</commentid>
    <comment_count>11</comment_count>
      <attachid>177297</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 11:48:05 -0800</bug_when>
    <thetext>Created attachment 177297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781732</commentid>
    <comment_count>12</comment_count>
      <attachid>177297</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 11:54:10 -0800</bug_when>
    <thetext>Comment on attachment 177297
Patch

Attachment 177297 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15121359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781733</commentid>
    <comment_count>13</comment_count>
      <attachid>177297</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 11:54:15 -0800</bug_when>
    <thetext>Comment on attachment 177297
Patch

Attachment 177297 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15101620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781737</commentid>
    <comment_count>14</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-03 11:57:52 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Prefer a flags enum to a bool here, to make the callsites self-documenting.  See WebKit coding style.
&gt; &gt; 
&gt; 
&gt; Style guide, rule 10: &quot;Prefer enums to bools on function parameters if callers are likely to be passing constants&quot;.

Good point.  Justin pointed out to me offline that the callsites are all passing foo-&gt;hasAlpha(), which is self-documenting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781753</commentid>
    <comment_count>15</comment_count>
      <attachid>177305</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 12:12:34 -0800</bug_when>
    <thetext>Created attachment 177305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781759</commentid>
    <comment_count>16</comment_count>
      <attachid>177305</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-12-03 12:22:51 -0800</bug_when>
    <thetext>Comment on attachment 177305
Patch

Attachment 177305 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15126232</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781762</commentid>
    <comment_count>17</comment_count>
      <attachid>177305</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 12:25:14 -0800</bug_when>
    <thetext>Comment on attachment 177305
Patch

Attachment 177305 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15117498</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781767</commentid>
    <comment_count>18</comment_count>
      <attachid>177305</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 12:30:41 -0800</bug_when>
    <thetext>Comment on attachment 177305
Patch

Attachment 177305 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15098671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781770</commentid>
    <comment_count>19</comment_count>
      <attachid>177305</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-03 12:31:07 -0800</bug_when>
    <thetext>Comment on attachment 177305
Patch

Attachment 177305 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15105626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781779</commentid>
    <comment_count>20</comment_count>
      <attachid>177311</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-12-03 12:41:52 -0800</bug_when>
    <thetext>Created attachment 177311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782863</commentid>
    <comment_count>21</comment_count>
      <attachid>177311</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-04 13:35:17 -0800</bug_when>
    <thetext>Comment on attachment 177311
Patch

OK.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784073</commentid>
    <comment_count>22</comment_count>
      <attachid>177311</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 13:41:21 -0800</bug_when>
    <thetext>Comment on attachment 177311
Patch

Clearing flags on attachment: 177311

Committed r136755: &lt;http://trac.webkit.org/changeset/136755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784075</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 13:41:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177261</attachid>
            <date>2012-12-03 08:39:51 -0800</date>
            <delta_ts>2012-12-03 11:48:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103896-20121203113718.patch</filename>
            <type>text/plain</type>
            <size>12815</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEyLTAzICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW3NraWFdIEltcHJvdmUgcGVy
Zm9ybWFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyIGJ5IHVz
aW5nIFNrRGV2aWNlOmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgR3JhcGhpY3NDb250ZXh0Ojpj
cmVhdGVDb21wYXRpYmxlQnVmZmVyIChwbGF0Zm9ybSBjb21tb24KKyAgICAgICAgY29kZSkgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBieSBJbWFnZUJ1
ZmZlci4KKyAgICAgICAgVGhlcmUgaXMgbm8gY2hhbmdlIGluIGJlaGF2aW9yIGZvciBub24tc2tp
YSBwb3J0cy4gVGhlIHNraWEKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdXNlcyBza2lhJ2Egb3du
IGNyZWF0ZUNvbXBhdGlibGVEZXZpY2UgaW1wbGVtZW50YXRpb24sCisgICAgICAgIHdoaWNoIG9m
ZmVycyBzZXZlcmFsIHBlcmZvcm1hbmNlIGJlbmVmaXRzOgorICAgICAgICAxLiBGb3IgYWNjZWxl
cmF0ZWQgY29udGV4dHMsIHRoZSBiYWNraW5nIHN0b3JlIG1heSBiZSBhbGxvY2F0ZWQgZnJvbQor
ICAgICAgICB0aGUgc2NyYXRjaCB0ZXh0dXJlIHBvb2wsIHdoaWNoIG1pbmltaXplcyB0ZXh0dXJl
IGFsbG9jYXRpb24gYW5kCisgICAgICAgIGRlYWxsb2NhdGlvbiBvdmVyaGVhZC4KKyAgICAgICAg
Mi4gVGhlIGJhY2tpbmcgc3RvcmUgd2lsbCBub3QgYmUgaW5pdGlhbGx5IGNsZWFyZWQgaWYgaXQg
aXMga25vd24KKyAgICAgICAgaW4gYWR2YW5jZSB0aGF0IGZ1bGx5IG9wYXF1ZSBjb250ZW50cyB3
aWxsIGJlIGRyYXduIGludG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgMy4gRm9yIG5vbi1hY2NlbGVy
YXRlZCBjb250ZXh0cywgaWYgdGhlIGJhY2tpbmcgc3RvcmUgaXMgZmxhZ2dlZCBhcworICAgICAg
ICBvcGFxdWUsIGZhc3RlciBibGl0dGVyIGxvb3AgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgdXNl
ZCBmb3IgZHJhd2luZworICAgICAgICB0aGUgYnVmZmVyIGNvbnRlbnRzIGludG8gb3RoZXIgYnVm
ZmVycy4gKGUuZy4gZ2VuZXJhdGVkIG9wYXF1ZSBncmFkaWVudAorICAgICAgICBmaWxscykKKwor
ICAgICAgICBObyBuZXcgdGVzdHM6IENvZGUgYWRlcXVhdGVseSBjb3ZlcmVkIGJ5IGV4aXN0aW5n
IGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5o
OgorICAgICAgICAoR2VuZXJhdG9yKToKKyAgICAgICAgYWRkZWQgaGFzQWxwaGEgbWV0aG9kIHNv
IHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAg
ICBwYXNzaW5nIG1fZ2VuZXJhdG9yLT5oYXNBbHBoYSgpIHRvIGNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIgaW4gb3JkZXIgdG8KKyAgICAgICAgdGFrZSBhZHZhbnRhZ2Ugb2Ygb3B0aW1pemF0aW9ucyB0
aGF0IGFwcGx5IHRvIG9wYXF1ZSBidWZmZXJzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50Lmg6CisgICAgICAgIChHcmFkaWVudCk6CisgICAgICAgIE1hZGUgaGFzQWxwaGEg
dmlydHVhbCBzbyB0aGF0IGl0IG5vdyBvdmVycmlkZXMgR2VuZXJhdG9yOjpoYXNBbHBoYQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAgICAg
ICBSZWZhY3RvcmVkIHRvIHVzZSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgIENyb3NzLXBsYXRmb3JtIGltcGxlbWVu
dGF0aW9uIG9mIGZvciBub24tc2tpYSBwb3J0cy4gTmV3IGNvbnN0cnVjdG9yCisgICAgICAgIHVz
ZWQgYnkgSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAg
ICAgICBOZXcgc3RhdGljIGZhY3RvcnkgbWV0aG9kIHVzZWQgYnkKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgU2tpYS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBuZXcgY29uc3RydWN0b3IgdXNlZCBieQorICAgICAgICBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29t
cGF0aWJsZUJ1ZmZlcgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1D
b250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpj
cmVhdGVDb21wYXRpYmxlRGV2aWNlKToKKyAgICAgICAgV3JhcHBlciBmb3IgU2tDYW52YXM6OmNy
ZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWEpOgorCiAy
MDEyLTEyLTAzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIEVOQUJMRShJTUFH
RV9ERUNPREVSX0RPV05fU0FNUExJTkcpOiBTaG91bGQgdXNlIFRVUkJPX0pQRUdfUkdCX1NXSVpa
TEUgZmFzdCBwYXRoIGZvciBub24tc2NhbGVkIGltYWdlcwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgJKHJldmlzaW9uIDEzNjI1NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmlsbChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoSW50U2l6ZSYgLyogc2l6ZSAqLywgRmxvYXRSZWN0
JiAvKiBzcmNSZWN0ICovKSB7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGhhc2goKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGhhc0FscGhhKCkgY29uc3QgPSAwOwogfTsKIAogfSAvL25h
bWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAkocmV2aXNpb24gMTM2MjU3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXIKICAgICB1bnNpZ25lZCBnZW5lcmF0b3JIYXNoID0gbV9n
ZW5lcmF0b3ItPmhhc2goKTsKIAogICAgIGlmICghbV9jYWNoZWRJbWFnZUJ1ZmZlciB8fCBtX2Nh
Y2hlZEdlbmVyYXRvckhhc2ggIT0gZ2VuZXJhdG9ySGFzaCB8fCBtX2NhY2hlZEFkanVzdGVkU2l6
ZSAhPSBhZGp1c3RlZFNpemUgfHwgIWRlc3RDb250ZXh0LT5pc0NvbXBhdGlibGVXaXRoQnVmZmVy
KG1fY2FjaGVkSW1hZ2VCdWZmZXIuZ2V0KCkpKSB7Ci0gICAgICAgIG1fY2FjaGVkSW1hZ2VCdWZm
ZXIgPSBkZXN0Q29udGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihhZGp1c3RlZFNpemUpOwor
ICAgICAgICBtX2NhY2hlZEltYWdlQnVmZmVyID0gZGVzdENvbnRleHQtPmNyZWF0ZUNvbXBhdGli
bGVCdWZmZXIoYWRqdXN0ZWRTaXplLCBtX2dlbmVyYXRvci0+aGFzQWxwaGEoKSk7CiAgICAgICAg
IGlmICghbV9jYWNoZWRJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIHJldHVybjsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCShyZXZpc2lvbiAx
MzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBhZGRDb2xvclN0b3AoZmxvYXQsIGNvbnN0IENvbG9yJik7CiAKICAgICAgICAgdm9p
ZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQqIHIsIGZsb2F0KiBnLCBmbG9hdCogYiwgZmxv
YXQqIGEpIGNvbnN0OwotICAgICAgICBib29sIGhhc0FscGhhKCkgY29uc3Q7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgICAgIGJvb2wgaXNS
YWRpYWwoKSBjb25zdCB7IHJldHVybiBtX3JhZGlhbDsgfQogICAgICAgICBib29sIGlzWmVyb1Np
emUoKSBjb25zdCB7IHJldHVybiBtX3AwLngoKSA9PSBtX3AxLngoKSAmJiBtX3AwLnkoKSA9PSBt
X3AxLnkoKSAmJiAoIW1fcmFkaWFsIHx8IG1fcjAgPT0gbV9yMSk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAko
cmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcxLDcgKzc3MSw3IEBAIHN0YXRp
YyBib29sIHNjYWxlc01hdGNoKEFmZmluZVRyYW5zZm9ybQogICAgIHJldHVybiBhLnhTY2FsZSgp
ID09IGIueFNjYWxlKCkgJiYgYS55U2NhbGUoKSA9PSBiLnlTY2FsZSgpOwogfQogCi1QYXNzT3du
UHRyPEltYWdlQnVmZmVyPiBHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK1Bhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IEdyYXBo
aWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBi
b29sIGhhc0FscGhhKSBjb25zdAogewogICAgIC8vIE1ha2UgdGhlIGJ1ZmZlciBsYXJnZXIgaWYg
dGhlIGNvbnRleHQncyB0cmFuc2Zvcm0gaXMgc2NhbGluZyBpdCBzbyB3ZSBuZWVkIGEgaGlnaGVy
CiAgICAgLy8gcmVzb2x1dGlvbiB0aGFuIG9uZSBwaXhlbCBwZXIgdW5pdC4gQWxzbyBzZXQgdXAg
YSBjb3JyZXNwb25kaW5nIHNjYWxlIGZhY3RvciBvbiB0aGUKQEAgLTc4MCw3ICs3ODAsNyBAQCBQ
YXNzT3duUHRyPEltYWdlQnVmZmVyPiBHcmFwaGljc0NvbnRleHQ6CiAgICAgQWZmaW5lVHJhbnNm
b3JtIHRyYW5zZm9ybSA9IGdldENUTShEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlKTsKICAg
ICBJbnRTaXplIHNjYWxlZFNpemUoc3RhdGljX2Nhc3Q8aW50PihjZWlsKHNpemUud2lkdGgoKSAq
IHRyYW5zZm9ybS54U2NhbGUoKSkpLCBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoc2l6ZS5oZWlnaHQo
KSAqIHRyYW5zZm9ybS55U2NhbGUoKSkpKTsKIAotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzY2FsZWRTaXplLCAxLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBpc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVk
KTsKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKHNjYWxlZFNpemUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHRoaXMs
IGhhc0FscGhhKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDM0LDcgKzQzNCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICAvLyBDcmVhdGUgYW4gaW1h
Z2UgYnVmZmVyIGNvbXBhdGlibGUgd2l0aCB0aGlzIGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVz
b2x1dGlvbgogICAgICAgICAvLyBmb3IgZHJhd2luZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4g
aW50byB0aGlzIGNvbnRleHQuCi0gICAgICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0
ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgICAgICBQYXNzT3du
UHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmLCBi
b29sIGhhc0FscGhhID0gdHJ1ZSkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNDb21wYXRpYmxlV2l0
aEJ1ZmZlcihJbWFnZUJ1ZmZlciopIGNvbnN0OwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24g
YXBwbGllcyB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvciB0byB0aGUgY29udGV4dCwgbWFraW5nIHRo
ZSBjb250ZXh0IGNhcGFibGUgb2YKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzMsNiArNzMsMTIgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZShD
bwogfQogI2VuZGlmIC8vIFVTRShDRykKIAorI2lmICFVU0UoU0tJQSkKK0ltYWdlQnVmZmVyOjpJ
bWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogY29tcGF0aWJsZUNvbnRleHQs
IGJvb2wgaGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpCisgICAgOiBJbWFnZUJ1ZmZlcihJbnRTaXpl
JiwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb21wYXRpYmxlQ29udGV4dC0+aXNBY2Nl
bGVyYXRlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkLCBOb25EZWZlcnJlZCwgc3Vj
Y2VzcykKK3sgfQorI2VuZGlmCisKIGlubGluZSB2b2lkIEltYWdlQnVmZmVyOjpnZW5lcmljQ29u
dmVydFRvTHVtaW5hbmNlTWFzaygpCiB7CiAgICAgSW50UmVjdCBsdW1pbmFuY2VSZWN0KEludFBv
aW50KCksIGludGVybmFsU2l6ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
OTMsNiArOTMsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0dXJuIGJ1
Zi5yZWxlYXNlKCk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBDcmVhdGVzIGEgYnVmZmVyIGNv
bXBhdGl2YmxlIHdpdGggJ2NvbnRleHQnLiBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBh
bGxvY2F0aW9uIGZhaWx1cmUuCisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVy
PiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGJvb2wgaGFzQWxwaGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJvb2wgc3Vj
Y2VzcyA9IGZhbHNlOworICAgICAgICAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWYgPSBhZG9w
dFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBj
b250ZXh0LCBoYXNBbHBoYSwgc3VjY2VzcykpOworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQor
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi5y
ZWxlYXNlKCk7CisgICAgICAgIH0KKwogICAgICAgICB+SW1hZ2VCdWZmZXIoKTsKIAogICAgICAg
ICAvLyBUaGUgYWN0dWFsIHJlc29sdXRpb24gb2YgdGhlIGJhY2tpbmcgc3RvcmUKQEAgLTE1Niw2
ICsxNjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0
b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBvdXQtdmFyaWFibGUKICAg
ICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCByZXR1cm4gZmFp
bHVyZS4KICAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBz
dWNjZXNzKTsKKyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBoYXNB
bHBoYSwgYm9vbCYgc3VjY2Vzcyk7CiAgICAgfTsKIAogI2lmIFVTRShDRykgfHwgVVNFKFNLSUEp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVy
U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwOCw2ICsxMDgsMzMgQEAgc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVOb25QbGF0
Zm9ybUNhbnZhcwogICAgIHJldHVybiBwaXhlbFJlZiA/IG5ldyBTa0NhbnZhcyhkZXZpY2UpIDog
MDsKIH0KIAorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiBj
b21wYXRpYmxlQ29udGV4dCwgYm9vbCBoYXNBbHBoYSwgYm9vbCYgc3VjY2VzcykKKyAgICA6IG1f
ZGF0YShzaXplKQorICAgICwgbV9zaXplKHNpemUpCisgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUp
CisgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGUpCit7CisgICAgaWYgKCFj
b21wYXRpYmxlQ29udGV4dCkgeworICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBTa0F1dG9UVW5yZWY8U2tEZXZpY2U+IGRldmljZShjb21wYXRp
YmxlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNyZWF0ZUNvbXBhdGlibGVEZXZpY2Uoc2l6
ZSwgaGFzQWxwaGEpKTsKKyAgICBTa1BpeGVsUmVmKiBwaXhlbFJlZiA9IGRldmljZS0+YWNjZXNz
Qml0bWFwKGZhbHNlKS5waXhlbFJlZigpOworICAgIGlmICghcGl4ZWxSZWYpIHsKKyAgICAgICAg
c3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kYXRhLm1f
Y2FudmFzID0gYWRvcHRQdHIobmV3IFNrQ2FudmFzKGRldmljZSkpOworICAgIG1fZGF0YS5tX3Bs
YXRmb3JtQ29udGV4dC5zZXRDYW52YXMobV9kYXRhLm1fY2FudmFzLmdldCgpKTsKKyAgICBtX2Nv
bnRleHQgPSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNv
bnRleHQpKTsKKyAgICBtX2NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9J
bWFnZUJ1ZmZlcih0cnVlKTsKKyAgICBtX2NvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShtX3Jlc29s
dXRpb25TY2FsZSwgbV9yZXNvbHV0aW9uU2NhbGUpKTsKKworICAgIHN1Y2Nlc3MgPSB0cnVlOwor
fQorCiBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEo
c2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3Bw
CShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNiArMjE0
LDExIEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0RHJhd2luZ1RvSW0KICAgICBtX2Ry
YXdpbmdUb0ltYWdlQnVmZmVyID0gdmFsdWU7CiB9CiAKK1NrRGV2aWNlKiBQbGF0Zm9ybUNvbnRl
eHRTa2lhOjpjcmVhdGVDb21wYXRpYmxlRGV2aWNlKGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wg
aGFzQWxwaGEpCit7CisgICAgcmV0dXJuIG1fY2FudmFzLT5jcmVhdGVDb21wYXRpYmxlRGV2aWNl
KGJpdG1hcCgpLT5jb25maWcoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCAhaGFzQWxw
aGEpOworfQorCiBib29sIFBsYXRmb3JtQ29udGV4dFNraWE6OmlzRHJhd2luZ1RvSW1hZ2VCdWZm
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2RyYXdpbmdUb0ltYWdlQnVmZmVyOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Q
bGF0Zm9ybUNvbnRleHRTa2lhLmgJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCSh3b3JraW5nIGNv
cHkpCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICAvLyB0byB0aGUgY29uc3RydWN0b3Iu
CiAgICAgdm9pZCBzZXRDYW52YXMoU2tDYW52YXMqKTsKIAorICAgIFNrRGV2aWNlKiBjcmVhdGVD
b21wYXRpYmxlRGV2aWNlKGNvbnN0IEludFNpemUmLCBib29sIGhhc0FscGhhKTsKKwogICAgIC8v
IElmIGZhbHNlIHdlJ3JlIHJlbmRlcmluZyB0byBhIEdyYXBoaWNzQ29udGV4dCBmb3IgYSB3ZWIg
cGFnZSwgaWYgZmFsc2UKICAgICAvLyB3ZSdyZSBub3QgKGFzIGlzIHRoZSBjYXNlIHdoZW4gcmVu
ZGVyaW5nIHRvIGEgY2FudmFzIG9iamVjdCkuCiAgICAgLy8gSWYgdGhpcyBpcyB0cnVlIHRoZSBj
b250ZW50cyBoYXZlIG5vdCBiZWVuIG1hcmtlZCB1cCB3aXRoIHRoZSBtYWdpYwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177297</attachid>
            <date>2012-12-03 11:48:05 -0800</date>
            <delta_ts>2012-12-03 12:12:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103896-20121203144531.patch</filename>
            <type>text/plain</type>
            <size>12738</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEyLTAzICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW3NraWFdIEltcHJvdmUgcGVy
Zm9ybWFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyIGJ5IHVz
aW5nIFNrRGV2aWNlOmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgR3JhcGhpY3NDb250ZXh0Ojpj
cmVhdGVDb21wYXRpYmxlQnVmZmVyIChwbGF0Zm9ybSBjb21tb24KKyAgICAgICAgY29kZSkgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBieSBJbWFnZUJ1
ZmZlci4KKyAgICAgICAgVGhlcmUgaXMgbm8gY2hhbmdlIGluIGJlaGF2aW9yIGZvciBub24tc2tp
YSBwb3J0cy4gVGhlIHNraWEKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdXNlcyBza2lhJ2Egb3du
IGNyZWF0ZUNvbXBhdGlibGVEZXZpY2UgaW1wbGVtZW50YXRpb24sCisgICAgICAgIHdoaWNoIG9m
ZmVycyBzZXZlcmFsIHBlcmZvcm1hbmNlIGJlbmVmaXRzOgorICAgICAgICAxLiBGb3IgYWNjZWxl
cmF0ZWQgY29udGV4dHMsIHRoZSBiYWNraW5nIHN0b3JlIG1heSBiZSBhbGxvY2F0ZWQgZnJvbQor
ICAgICAgICB0aGUgc2NyYXRjaCB0ZXh0dXJlIHBvb2wsIHdoaWNoIG1pbmltaXplcyB0ZXh0dXJl
IGFsbG9jYXRpb24gYW5kCisgICAgICAgIGRlYWxsb2NhdGlvbiBvdmVyaGVhZC4KKyAgICAgICAg
Mi4gVGhlIGJhY2tpbmcgc3RvcmUgd2lsbCBub3QgYmUgaW5pdGlhbGx5IGNsZWFyZWQgaWYgaXQg
aXMga25vd24KKyAgICAgICAgaW4gYWR2YW5jZSB0aGF0IGZ1bGx5IG9wYXF1ZSBjb250ZW50cyB3
aWxsIGJlIGRyYXduIGludG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgMy4gRm9yIG5vbi1hY2NlbGVy
YXRlZCBjb250ZXh0cywgaWYgdGhlIGJhY2tpbmcgc3RvcmUgaXMgZmxhZ2dlZCBhcworICAgICAg
ICBvcGFxdWUsIGZhc3RlciBibGl0dGVyIGxvb3AgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgdXNl
ZCBmb3IgZHJhd2luZworICAgICAgICB0aGUgYnVmZmVyIGNvbnRlbnRzIGludG8gb3RoZXIgYnVm
ZmVycy4gKGUuZy4gZ2VuZXJhdGVkIG9wYXF1ZSBncmFkaWVudAorICAgICAgICBmaWxscykKKwor
ICAgICAgICBObyBuZXcgdGVzdHM6IENvZGUgYWRlcXVhdGVseSBjb3ZlcmVkIGJ5IGV4aXN0aW5n
IGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5o
OgorICAgICAgICAoR2VuZXJhdG9yKToKKyAgICAgICAgYWRkZWQgaGFzQWxwaGEgbWV0aG9kIHNv
IHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAg
ICBwYXNzaW5nIG1fZ2VuZXJhdG9yLT5oYXNBbHBoYSgpIHRvIGNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIgaW4gb3JkZXIgdG8KKyAgICAgICAgdGFrZSBhZHZhbnRhZ2Ugb2Ygb3B0aW1pemF0aW9ucyB0
aGF0IGFwcGx5IHRvIG9wYXF1ZSBidWZmZXJzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50Lmg6CisgICAgICAgIChHcmFkaWVudCk6CisgICAgICAgIE1hZGUgaGFzQWxwaGEg
dmlydHVhbCBzbyB0aGF0IGl0IG5vdyBvdmVycmlkZXMgR2VuZXJhdG9yOjpoYXNBbHBoYQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAgICAg
ICBSZWZhY3RvcmVkIHRvIHVzZSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgIENyb3NzLXBsYXRmb3JtIGltcGxlbWVu
dGF0aW9uIG9mIGZvciBub24tc2tpYSBwb3J0cy4gTmV3IGNvbnN0cnVjdG9yCisgICAgICAgIHVz
ZWQgYnkgSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAg
ICAgICBOZXcgc3RhdGljIGZhY3RvcnkgbWV0aG9kIHVzZWQgYnkKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgU2tpYS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBuZXcgY29uc3RydWN0b3IgdXNlZCBieQorICAgICAgICBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29t
cGF0aWJsZUJ1ZmZlcgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1D
b250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpj
cmVhdGVDb21wYXRpYmxlRGV2aWNlKToKKyAgICAgICAgV3JhcHBlciBmb3IgU2tDYW52YXM6OmNy
ZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWEpOgorCiAy
MDEyLTEyLTAzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIEVOQUJMRShJTUFH
RV9ERUNPREVSX0RPV05fU0FNUExJTkcpOiBTaG91bGQgdXNlIFRVUkJPX0pQRUdfUkdCX1NXSVpa
TEUgZmFzdCBwYXRoIGZvciBub24tc2NhbGVkIGltYWdlcwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgJKHJldmlzaW9uIDEzNjI1NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmlsbChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoSW50U2l6ZSYgLyogc2l6ZSAqLywgRmxvYXRSZWN0
JiAvKiBzcmNSZWN0ICovKSB7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGhhc2goKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGhhc0FscGhhKCkgY29uc3QgPSAwOwogfTsKIAogfSAvL25h
bWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAkocmV2aXNpb24gMTM2MjU3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXIKICAgICB1bnNpZ25lZCBnZW5lcmF0b3JIYXNoID0gbV9n
ZW5lcmF0b3ItPmhhc2goKTsKIAogICAgIGlmICghbV9jYWNoZWRJbWFnZUJ1ZmZlciB8fCBtX2Nh
Y2hlZEdlbmVyYXRvckhhc2ggIT0gZ2VuZXJhdG9ySGFzaCB8fCBtX2NhY2hlZEFkanVzdGVkU2l6
ZSAhPSBhZGp1c3RlZFNpemUgfHwgIWRlc3RDb250ZXh0LT5pc0NvbXBhdGlibGVXaXRoQnVmZmVy
KG1fY2FjaGVkSW1hZ2VCdWZmZXIuZ2V0KCkpKSB7Ci0gICAgICAgIG1fY2FjaGVkSW1hZ2VCdWZm
ZXIgPSBkZXN0Q29udGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihhZGp1c3RlZFNpemUpOwor
ICAgICAgICBtX2NhY2hlZEltYWdlQnVmZmVyID0gZGVzdENvbnRleHQtPmNyZWF0ZUNvbXBhdGli
bGVCdWZmZXIoYWRqdXN0ZWRTaXplLCBtX2dlbmVyYXRvci0+aGFzQWxwaGEoKSk7CiAgICAgICAg
IGlmICghbV9jYWNoZWRJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIHJldHVybjsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCShyZXZpc2lvbiAx
MzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBhZGRDb2xvclN0b3AoZmxvYXQsIGNvbnN0IENvbG9yJik7CiAKICAgICAgICAgdm9p
ZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQqIHIsIGZsb2F0KiBnLCBmbG9hdCogYiwgZmxv
YXQqIGEpIGNvbnN0OwotICAgICAgICBib29sIGhhc0FscGhhKCkgY29uc3Q7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBoYXNBbHBoYSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgICAgIGJvb2wgaXNS
YWRpYWwoKSBjb25zdCB7IHJldHVybiBtX3JhZGlhbDsgfQogICAgICAgICBib29sIGlzWmVyb1Np
emUoKSBjb25zdCB7IHJldHVybiBtX3AwLngoKSA9PSBtX3AxLngoKSAmJiBtX3AwLnkoKSA9PSBt
X3AxLnkoKSAmJiAoIW1fcmFkaWFsIHx8IG1fcjAgPT0gbV9yMSk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAko
cmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcxLDcgKzc3MSw3IEBAIHN0YXRp
YyBib29sIHNjYWxlc01hdGNoKEFmZmluZVRyYW5zZm9ybQogICAgIHJldHVybiBhLnhTY2FsZSgp
ID09IGIueFNjYWxlKCkgJiYgYS55U2NhbGUoKSA9PSBiLnlTY2FsZSgpOwogfQogCi1QYXNzT3du
UHRyPEltYWdlQnVmZmVyPiBHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK1Bhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IEdyYXBo
aWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBi
b29sIGhhc0FscGhhKSBjb25zdAogewogICAgIC8vIE1ha2UgdGhlIGJ1ZmZlciBsYXJnZXIgaWYg
dGhlIGNvbnRleHQncyB0cmFuc2Zvcm0gaXMgc2NhbGluZyBpdCBzbyB3ZSBuZWVkIGEgaGlnaGVy
CiAgICAgLy8gcmVzb2x1dGlvbiB0aGFuIG9uZSBwaXhlbCBwZXIgdW5pdC4gQWxzbyBzZXQgdXAg
YSBjb3JyZXNwb25kaW5nIHNjYWxlIGZhY3RvciBvbiB0aGUKQEAgLTc4MCw3ICs3ODAsNyBAQCBQ
YXNzT3duUHRyPEltYWdlQnVmZmVyPiBHcmFwaGljc0NvbnRleHQ6CiAgICAgQWZmaW5lVHJhbnNm
b3JtIHRyYW5zZm9ybSA9IGdldENUTShEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlKTsKICAg
ICBJbnRTaXplIHNjYWxlZFNpemUoc3RhdGljX2Nhc3Q8aW50PihjZWlsKHNpemUud2lkdGgoKSAq
IHRyYW5zZm9ybS54U2NhbGUoKSkpLCBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoc2l6ZS5oZWlnaHQo
KSAqIHRyYW5zZm9ybS55U2NhbGUoKSkpKTsKIAotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzY2FsZWRTaXplLCAxLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBpc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVk
KTsKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKHNjYWxlZFNpemUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHRoaXMs
IGhhc0FscGhhKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDM0LDcgKzQzNCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICAvLyBDcmVhdGUgYW4gaW1h
Z2UgYnVmZmVyIGNvbXBhdGlibGUgd2l0aCB0aGlzIGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVz
b2x1dGlvbgogICAgICAgICAvLyBmb3IgZHJhd2luZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4g
aW50byB0aGlzIGNvbnRleHQuCi0gICAgICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0
ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgICAgICBQYXNzT3du
UHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmLCBi
b29sIGhhc0FscGhhID0gdHJ1ZSkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNDb21wYXRpYmxlV2l0
aEJ1ZmZlcihJbWFnZUJ1ZmZlciopIGNvbnN0OwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24g
YXBwbGllcyB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvciB0byB0aGUgY29udGV4dCwgbWFraW5nIHRo
ZSBjb250ZXh0IGNhcGFibGUgb2YKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTExLDYgKzExMSwxMSBAQCBib29sIEltYWdlQnVmZmVyOjpjb3B5VG9QbGF0Zm9ybVRleHR1
cmUoCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBj
cmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGJvb2wpCit7CisgICAgcmV0dXJuIGNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSA/IEFjY2VsZXJhdGVkIDogVW5h
Y2NlbGVyYXRlZCk7Cit9CiAjZW5kaWYKIAogdm9pZCBJbWFnZUJ1ZmZlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkocmV2aXNp
b24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICByZXR1cm4gYnVmLnJlbGVhc2UoKTsKICAgICAgICAgfQogCisgICAgICAg
IHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNv
bnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dCosIGJvb2wgaGFzQWxwaGEpOworCiAgICAgICAgIH5JbWFnZUJ1ZmZlcigp
OwogCiAgICAgICAgIC8vIFRoZSBhY3R1YWwgcmVzb2x1dGlvbiBvZiB0aGUgYmFja2luZyBzdG9y
ZQpAQCAtMTU2LDYgKzE1OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhp
cyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12
YXJpYWJsZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxk
IHJldHVybiBmYWlsdXJlLgogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1v
ZGUsIGJvb2wmIHN1Y2Nlc3MpOworI2lmIFVTRShTS0lBKQorICAgICAgICBJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBH
cmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKKyNlbmRpZgog
ICAgIH07CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNw
cAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDQy
IEBAIHN0YXRpYyBTa0NhbnZhcyogY3JlYXRlTm9uUGxhdGZvcm1DYW52YXMKICAgICByZXR1cm4g
cGl4ZWxSZWYgPyBuZXcgU2tDYW52YXMoZGV2aWNlKSA6IDA7CiB9CiAKK1Bhc3NPd25QdHI8SW1h
Z2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBj
b25zdCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGJvb2wgaGFzQWxwaGEpCit7CisgICAgYm9v
bCBzdWNjZXNzID0gZmFsc2U7CisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0
cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb250
ZXh0LCBoYXNBbHBoYSwgc3VjY2VzcykpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7Cit9CisKK0ltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogY29tcGF0aWJsZUNvbnRleHQsIGJv
b2wgaGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpCisgICAgOiBtX2RhdGEoc2l6ZSkKKyAgICAsIG1f
c2l6ZShzaXplKQorICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQorICAgICwgbV9yZXNvbHV0aW9u
U2NhbGUocmVzb2x1dGlvblNjYWxlKQoreworICAgIGlmICghY29tcGF0aWJsZUNvbnRleHQpIHsK
KyAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
U2tBdXRvVFVucmVmPFNrRGV2aWNlPiBkZXZpY2UoY29tcGF0aWJsZUNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpLT5jcmVhdGVDb21wYXRpYmxlRGV2aWNlKHNpemUsIGhhc0FscGhhKSk7CisgICAg
U2tQaXhlbFJlZiogcGl4ZWxSZWYgPSBkZXZpY2UtPmFjY2Vzc0JpdG1hcChmYWxzZSkucGl4ZWxS
ZWYoKTsKKyAgICBpZiAoIXBpeGVsUmVmKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGF0YS5tX2NhbnZhcyA9IGFkb3B0UHRyKG5l
dyBTa0NhbnZhcyhkZXZpY2UpKTsKKyAgICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2Fu
dmFzKG1fZGF0YS5tX2NhbnZhcy5nZXQoKSk7CisgICAgbV9jb250ZXh0ID0gYWRvcHRQdHIobmV3
IEdyYXBoaWNzQ29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0KSk7CisgICAgbV9jb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7Cisg
ICAgbV9jb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1
dGlvblNjYWxlKSk7CisKKyAgICBzdWNjZXNzID0gdHJ1ZTsKK30KKwogSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJy
YWxNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUo
c2l6ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZv
cm1Db250ZXh0U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAkocmV2aXNpb24gMTM2MjU3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRT
a2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDYgKzIxNCwxMSBAQCB2b2lkIFBsYXRmb3Jt
Q29udGV4dFNraWE6OnNldERyYXdpbmdUb0ltCiAgICAgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlciA9
IHZhbHVlOwogfQogCitTa0RldmljZSogUGxhdGZvcm1Db250ZXh0U2tpYTo6Y3JlYXRlQ29tcGF0
aWJsZURldmljZShjb25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQoreworICAgIHJl
dHVybiBtX2NhbnZhcy0+Y3JlYXRlQ29tcGF0aWJsZURldmljZShiaXRtYXAoKS0+Y29uZmlnKCks
IHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgIWhhc0FscGhhKTsKK30KKwogYm9vbCBQbGF0
Zm9ybUNvbnRleHRTa2lhOjppc0RyYXdpbmdUb0ltYWdlQnVmZmVyKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5o
CShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBA
QCBwdWJsaWM6CiAgICAgLy8gdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgIHZvaWQgc2V0Q2FudmFz
KFNrQ2FudmFzKik7CiAKKyAgICBTa0RldmljZSogY3JlYXRlQ29tcGF0aWJsZURldmljZShjb25z
dCBJbnRTaXplJiwgYm9vbCBoYXNBbHBoYSk7CisKICAgICAvLyBJZiBmYWxzZSB3ZSdyZSByZW5k
ZXJpbmcgdG8gYSBHcmFwaGljc0NvbnRleHQgZm9yIGEgd2ViIHBhZ2UsIGlmIGZhbHNlCiAgICAg
Ly8gd2UncmUgbm90IChhcyBpcyB0aGUgY2FzZSB3aGVuIHJlbmRlcmluZyB0byBhIGNhbnZhcyBv
YmplY3QpLgogICAgIC8vIElmIHRoaXMgaXMgdHJ1ZSB0aGUgY29udGVudHMgaGF2ZSBub3QgYmVl
biBtYXJrZWQgdXAgd2l0aCB0aGUgbWFnaWMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177305</attachid>
            <date>2012-12-03 12:12:34 -0800</date>
            <delta_ts>2012-12-03 12:41:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103896-20121203151000.patch</filename>
            <type>text/plain</type>
            <size>13893</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTAzICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW3NraWFdIEltcHJvdmUgcGVy
Zm9ybWFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyIGJ5IHVz
aW5nIFNrRGV2aWNlOmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgR3JhcGhpY3NDb250ZXh0Ojpj
cmVhdGVDb21wYXRpYmxlQnVmZmVyIChwbGF0Zm9ybSBjb21tb24KKyAgICAgICAgY29kZSkgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBieSBJbWFnZUJ1
ZmZlci4KKyAgICAgICAgVGhlcmUgaXMgbm8gY2hhbmdlIGluIGJlaGF2aW9yIGZvciBub24tc2tp
YSBwb3J0cy4gVGhlIHNraWEKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdXNlcyBza2lhJ2Egb3du
IGNyZWF0ZUNvbXBhdGlibGVEZXZpY2UgaW1wbGVtZW50YXRpb24sCisgICAgICAgIHdoaWNoIG9m
ZmVycyBzZXZlcmFsIHBlcmZvcm1hbmNlIGJlbmVmaXRzOgorICAgICAgICAxLiBGb3IgYWNjZWxl
cmF0ZWQgY29udGV4dHMsIHRoZSBiYWNraW5nIHN0b3JlIG1heSBiZSBhbGxvY2F0ZWQgZnJvbQor
ICAgICAgICB0aGUgc2NyYXRjaCB0ZXh0dXJlIHBvb2wsIHdoaWNoIG1pbmltaXplcyB0ZXh0dXJl
IGFsbG9jYXRpb24gYW5kCisgICAgICAgIGRlYWxsb2NhdGlvbiBvdmVyaGVhZC4KKyAgICAgICAg
Mi4gVGhlIGJhY2tpbmcgc3RvcmUgd2lsbCBub3QgYmUgaW5pdGlhbGx5IGNsZWFyZWQgaWYgaXQg
aXMga25vd24KKyAgICAgICAgaW4gYWR2YW5jZSB0aGF0IGZ1bGx5IG9wYXF1ZSBjb250ZW50cyB3
aWxsIGJlIGRyYXduIGludG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgMy4gRm9yIG5vbi1hY2NlbGVy
YXRlZCBjb250ZXh0cywgaWYgdGhlIGJhY2tpbmcgc3RvcmUgaXMgZmxhZ2dlZCBhcworICAgICAg
ICBvcGFxdWUsIGZhc3RlciBibGl0dGVyIGxvb3AgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgdXNl
ZCBmb3IgZHJhd2luZworICAgICAgICB0aGUgYnVmZmVyIGNvbnRlbnRzIGludG8gb3RoZXIgYnVm
ZmVycy4gKGUuZy4gZ2VuZXJhdGVkIG9wYXF1ZSBncmFkaWVudAorICAgICAgICBmaWxscykKKwor
ICAgICAgICBObyBuZXcgdGVzdHM6IGNvdmVyZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmg6CisgICAgICAgIChHZW5l
cmF0b3IpOgorICAgICAgICBBZGRlZCBoYXNBbHBoYSBtZXRob2Qgc28gdGhhdCBpdCBjYW4gYmUg
dXNlZCBieSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVy
YXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIFBhc3NpbmcgbV9nZW5l
cmF0b3ItPmhhc0FscGhhKCkgdG8gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlciBpbiBvcmRlciB0bwor
ICAgICAgICB0YWtlIGFkdmFudGFnZSBvZiBvcHRpbWl6YXRpb25zIHRoYXQgYXBwbHkgdG8gb3Bh
cXVlIGJ1ZmZlcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoKKyAg
ICAgICAgKEdyYWRpZW50KToKKyAgICAgICAgTWFkZSBoYXNBbHBoYSB2aXJ0dWFsIHNvIHRoYXQg
aXQgbm93IG92ZXJyaWRlcyBHZW5lcmF0b3I6Omhhc0FscGhhCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcik6CisgICAgICAgIFJlZmFjdG9yZWQgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cik6CisgICAgICAgIE5vbi1za2lhIGltcGxlbWVudGF0aW9uLiBNaW1pY3Mgb2xkCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIE5ldyBza2lhLXNwZWNpZmljIGNvbnN0cnVjdG9yCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6Y3JlYXRlQ29tcGF0aWJsZURldmljZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAg
ICAgKFBsYXRmb3JtQ29udGV4dFNraWEpOgorCiAyMDEyLTEyLTAzICBQaGlsaXAgUm9nZXJzICA8
cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW52YWxpZGF0ZSBTVkcgd2lkdGggb24gd2lkdGgg
YXR0cmlidXRlIGNoYW5nZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0b3IuaAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaWxsKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UGFyYW1ldGVyc0ZvclRp
bGVkRHJhd2luZyhJbnRTaXplJiAvKiBzaXplICovLCBGbG9hdFJlY3QmIC8qIHNyY1JlY3QgKi8p
IHsgfQogICAgIHZpcnR1YWwgdW5zaWduZWQgaGFzaCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzQWxwaGEoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vbmFtZXNwYWNlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcgogICAgIHVuc2lnbmVkIGdlbmVyYXRvckhhc2ggPSBtX2dlbmVyYXRvci0+aGFzaCgp
OwogCiAgICAgaWYgKCFtX2NhY2hlZEltYWdlQnVmZmVyIHx8IG1fY2FjaGVkR2VuZXJhdG9ySGFz
aCAhPSBnZW5lcmF0b3JIYXNoIHx8IG1fY2FjaGVkQWRqdXN0ZWRTaXplICE9IGFkanVzdGVkU2l6
ZSB8fCAhZGVzdENvbnRleHQtPmlzQ29tcGF0aWJsZVdpdGhCdWZmZXIobV9jYWNoZWRJbWFnZUJ1
ZmZlci5nZXQoKSkpIHsKLSAgICAgICAgbV9jYWNoZWRJbWFnZUJ1ZmZlciA9IGRlc3RDb250ZXh0
LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGFkanVzdGVkU2l6ZSk7CisgICAgICAgIG1fY2FjaGVk
SW1hZ2VCdWZmZXIgPSBkZXN0Q29udGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihhZGp1c3Rl
ZFNpemUsIG1fZ2VuZXJhdG9yLT5oYXNBbHBoYSgpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZElt
YWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTgyLDcgKzgyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFkZENvbG9y
U3RvcChmbG9hdCwgY29uc3QgQ29sb3ImKTsKIAogICAgICAgICB2b2lkIGdldENvbG9yKGZsb2F0
IHZhbHVlLCBmbG9hdCogciwgZmxvYXQqIGcsIGZsb2F0KiBiLCBmbG9hdCogYSkgY29uc3Q7Ci0g
ICAgICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIGhhc0Fs
cGhhKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAgICAgYm9vbCBpc1JhZGlhbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFkaWFsOyB9CiAgICAgICAgIGJvb2wgaXNaZXJvU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcDAueCgpID09IG1fcDEueCgpICYmIG1fcDAueSgpID09IG1fcDEueSgpICYmICghbV9y
YWRpYWwgfHwgbV9yMCA9PSBtX3IxKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCShyZXZpc2lvbiAxMzYyNTcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NzEsNyArNzcxLDcgQEAgc3RhdGljIGJvb2wgc2NhbGVzTWF0
Y2goQWZmaW5lVHJhbnNmb3JtCiAgICAgcmV0dXJuIGEueFNjYWxlKCkgPT0gYi54U2NhbGUoKSAm
JiBhLnlTY2FsZSgpID09IGIueVNjYWxlKCk7CiB9CiAKLVBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+
IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAorUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gR3JhcGhpY3NDb250ZXh0OjpjcmVh
dGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgaGFzQWxwaGEpIGNv
bnN0CiB7CiAgICAgLy8gTWFrZSB0aGUgYnVmZmVyIGxhcmdlciBpZiB0aGUgY29udGV4dCdzIHRy
YW5zZm9ybSBpcyBzY2FsaW5nIGl0IHNvIHdlIG5lZWQgYSBoaWdoZXIKICAgICAvLyByZXNvbHV0
aW9uIHRoYW4gb25lIHBpeGVsIHBlciB1bml0LiBBbHNvIHNldCB1cCBhIGNvcnJlc3BvbmRpbmcg
c2NhbGUgZmFjdG9yIG9uIHRoZQpAQCAtNzgwLDcgKzc4MCw3IEBAIFBhc3NPd25QdHI8SW1hZ2VC
dWZmZXI+IEdyYXBoaWNzQ29udGV4dDoKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Z2V0Q1RNKERlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOwogICAgIEludFNpemUgc2NhbGVk
U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoc2l6ZS53aWR0aCgpICogdHJhbnNmb3JtLnhTY2Fs
ZSgpKSksIHN0YXRpY19jYXN0PGludD4oY2VpbChzaXplLmhlaWdodCgpICogdHJhbnNmb3JtLnlT
Y2FsZSgpKSkpOwogCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKHNjYWxlZFNpemUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGlzQWNjZWxlcmF0
ZWRDb250ZXh0KCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAgIE93blB0cjxJ
bWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIo
c2NhbGVkU2l6ZSwgMSwgQ29sb3JTcGFjZURldmljZVJHQiwgdGhpcywgaGFzQWxwaGEpOwogICAg
IGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlz
aW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzQsNyArNDM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2VuZGlmCiAgICAgICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0
aWJsZSB3aXRoIHRoaXMgY29udGV4dCwgd2l0aCBzdWl0YWJsZSByZXNvbHV0aW9uCiAgICAgICAg
IC8vIGZvciBkcmF3aW5nIGludG8gdGhlIGJ1ZmZlciBhbmQgdGhlbiBpbnRvIHRoaXMgY29udGV4
dC4KLSAgICAgICAgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cihjb25zdCBJbnRTaXplJikgY29uc3Q7CisgICAgICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+
IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGJvb2wgaGFzQWxwaGEgPSB0
cnVlKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0NvbXBhdGlibGVXaXRoQnVmZmVyKEltYWdlQnVm
ZmVyKikgY29uc3Q7CiAKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIHRoZSBkZXZp
Y2Ugc2NhbGUgZmFjdG9yIHRvIHRoZSBjb250ZXh0LCBtYWtpbmcgdGhlIGNvbnRleHQgY2FwYWJs
ZSBvZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmNwcAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDEx
IEBAIGJvb2wgSW1hZ2VCdWZmZXI6OmNvcHlUb1BsYXRmb3JtVGV4dHVyZSgKIHsKICAgICByZXR1
cm4gZmFsc2U7CiB9CisKK1Bhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgYm9vbCkKK3sK
KyAgICByZXR1cm4gY3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29u
dGV4dC0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRl
ZCk7Cit9CiAjZW5kaWYKIAogdm9pZCBJbWFnZUJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkocmV2aXNpb24gMTM2MjU3
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICByZXR1cm4gYnVmLnJlbGVhc2UoKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNp
emUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCosIGJvb2wgaGFzQWxwaGEpOworCiAgICAgICAgIH5JbWFnZUJ1ZmZlcigpOwogCiAgICAg
ICAgIC8vIFRoZSBhY3R1YWwgcmVzb2x1dGlvbiBvZiB0aGUgYmFja2luZyBzdG9yZQpAQCAtMTU2
LDYgKzE1OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhpcyBjb25zdHJ1
Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQog
ICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVybiBm
YWlsdXJlLgogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wm
IHN1Y2Nlc3MpOworI2lmIFVTRShTS0lBKQorICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKKyNlbmRpZgogICAgIH07CiAK
ICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAkocmV2aXNp
b24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFn
ZUJ1ZmZlclNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDQyIEBAIHN0YXRp
YyBTa0NhbnZhcyogY3JlYXRlTm9uUGxhdGZvcm1DYW52YXMKICAgICByZXR1cm4gcGl4ZWxSZWYg
PyBuZXcgU2tDYW52YXMoZGV2aWNlKSA6IDA7CiB9CiAKK1Bhc3NPd25QdHI8SW1hZ2VCdWZmZXI+
IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGJvb2wgaGFzQWxwaGEpCit7CisgICAgYm9vbCBzdWNjZXNz
ID0gZmFsc2U7CisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1h
Z2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb250ZXh0LCBoYXNB
bHBoYSwgc3VjY2VzcykpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7Cit9CisKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogY29tcGF0aWJsZUNvbnRleHQsIGJvb2wgaGFzQWxw
aGEsIGJvb2wmIHN1Y2Nlc3MpCisgICAgOiBtX2RhdGEoc2l6ZSkKKyAgICAsIG1fc2l6ZShzaXpl
KQorICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQorICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVz
b2x1dGlvblNjYWxlKQoreworICAgIGlmICghY29tcGF0aWJsZUNvbnRleHQpIHsKKyAgICAgICAg
c3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU2tBdXRvVFVu
cmVmPFNrRGV2aWNlPiBkZXZpY2UoY29tcGF0aWJsZUNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LT5jcmVhdGVDb21wYXRpYmxlRGV2aWNlKHNpemUsIGhhc0FscGhhKSk7CisgICAgU2tQaXhlbFJl
ZiogcGl4ZWxSZWYgPSBkZXZpY2UtPmFjY2Vzc0JpdG1hcChmYWxzZSkucGl4ZWxSZWYoKTsKKyAg
ICBpZiAoIXBpeGVsUmVmKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fZGF0YS5tX2NhbnZhcyA9IGFkb3B0UHRyKG5ldyBTa0NhbnZh
cyhkZXZpY2UpKTsKKyAgICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKG1fZGF0
YS5tX2NhbnZhcy5nZXQoKSk7CisgICAgbV9jb250ZXh0ID0gYWRvcHRQdHIobmV3IEdyYXBoaWNz
Q29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0KSk7CisgICAgbV9jb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKS0+c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7CisgICAgbV9jb250
ZXh0LT5zY2FsZShGbG9hdFNpemUobV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1dGlvblNjYWxl
KSk7CisKKyAgICBzdWNjZXNzID0gdHJ1ZTsKK30KKwogSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBi
b29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0
U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjE0LDYgKzIxNCwxMSBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNr
aWE6OnNldERyYXdpbmdUb0ltCiAgICAgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlciA9IHZhbHVlOwog
fQogCitTa0RldmljZSogUGxhdGZvcm1Db250ZXh0U2tpYTo6Y3JlYXRlQ29tcGF0aWJsZURldmlj
ZShjb25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQoreworICAgIHJldHVybiBtX2Nh
bnZhcy0+Y3JlYXRlQ29tcGF0aWJsZURldmljZShiaXRtYXAoKS0+Y29uZmlnKCksIHNpemUud2lk
dGgoKSwgc2l6ZS5oZWlnaHQoKSwgIWhhc0FscGhhKTsKK30KKwogYm9vbCBQbGF0Zm9ybUNvbnRl
eHRTa2lhOjppc0RyYXdpbmdUb0ltYWdlQnVmZmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9k
cmF3aW5nVG9JbWFnZUJ1ZmZlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCShyZXZpc2lv
biAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6
CiAgICAgLy8gdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgIHZvaWQgc2V0Q2FudmFzKFNrQ2FudmFz
Kik7CiAKKyAgICBTa0RldmljZSogY3JlYXRlQ29tcGF0aWJsZURldmljZShjb25zdCBJbnRTaXpl
JiwgYm9vbCBoYXNBbHBoYSk7CisKICAgICAvLyBJZiBmYWxzZSB3ZSdyZSByZW5kZXJpbmcgdG8g
YSBHcmFwaGljc0NvbnRleHQgZm9yIGEgd2ViIHBhZ2UsIGlmIGZhbHNlCiAgICAgLy8gd2UncmUg
bm90IChhcyBpcyB0aGUgY2FzZSB3aGVuIHJlbmRlcmluZyB0byBhIGNhbnZhcyBvYmplY3QpLgog
ICAgIC8vIElmIHRoaXMgaXMgdHJ1ZSB0aGUgY29udGVudHMgaGF2ZSBub3QgYmVlbiBtYXJrZWQg
dXAgd2l0aCB0aGUgbWFnaWMKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQyNikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEyLTAz
ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW3NraWFdIElt
cHJvdmUgcGVyZm9ybWFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVm
ZmVyIGJ5IHVzaW5nIFNrRGV2aWNlOmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGltYWdlIGZhaWx1cmUg
ZXhwZWN0YXRpb24gZm9yIHRlc3QgbmVlZGluZyBuZXcgYmFzZWxpbmVzCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEyLTAzICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
IFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzYyNTcpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjMyLDYgKzIyMzIsOSBAQCBjcmJ1Zy5jb20vMTYyMjQ3ICBzdmcvdHJhbnNmb3Jtcy90ZXh0LXdp
CiAKIGNyYnVnLmNvbS80Mzg5MCBbIFdpbiBdIGh0dHAvdGVzdHMvbG9hZGluZy9iYXNpYy5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KIAorIyBUZXN0IHJlcXVpcmVzIG5lIGJhc2VsaW5lIGFmdGVyIGZp
eGluZyB3ZWJraXQub3JnL2IvMTAzODk2Cit3ZWJraXQub3JnL2IvMTAzODk2IGZhc3QvYmFja2dy
b3VuZHMvZ3JhZGllbnQtYmFja2dyb3VuZC1sZWFrYWdlLmh0bWwgWyBQYXNzIEltYWdlT25seUZh
aWx1cmUgXQorCiAjIFRoZSBmb2xsb3dpbmcgdGVzdHMgZmFpbCBvbiBhbGwgcGxhdGZvcm1zIGFu
ZCBuZWVkIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4KICMgTWFueSBvZiB0aGVzZSBhcmUgc2tpcHBl
ZCBvbiB0aGUgTWFjIHBsYXRmb3JtCiB3ZWJraXQub3JnL2IvNDU5OTEgY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177311</attachid>
            <date>2012-12-03 12:41:52 -0800</date>
            <delta_ts>2012-12-05 13:41:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103896-20121203153918.patch</filename>
            <type>text/plain</type>
            <size>13906</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTAzICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW3NraWFdIEltcHJvdmUgcGVy
Zm9ybWFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyIGJ5IHVz
aW5nIFNrRGV2aWNlOmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgR3JhcGhpY3NDb250ZXh0Ojpj
cmVhdGVDb21wYXRpYmxlQnVmZmVyIChwbGF0Zm9ybSBjb21tb24KKyAgICAgICAgY29kZSkgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBieSBJbWFnZUJ1
ZmZlci4KKyAgICAgICAgVGhlcmUgaXMgbm8gY2hhbmdlIGluIGJlaGF2aW9yIGZvciBub24tc2tp
YSBwb3J0cy4gVGhlIHNraWEKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdXNlcyBza2lhJ2Egb3du
IGNyZWF0ZUNvbXBhdGlibGVEZXZpY2UgaW1wbGVtZW50YXRpb24sCisgICAgICAgIHdoaWNoIG9m
ZmVycyBzZXZlcmFsIHBlcmZvcm1hbmNlIGJlbmVmaXRzOgorICAgICAgICAxLiBGb3IgYWNjZWxl
cmF0ZWQgY29udGV4dHMsIHRoZSBiYWNraW5nIHN0b3JlIG1heSBiZSBhbGxvY2F0ZWQgZnJvbQor
ICAgICAgICB0aGUgc2NyYXRjaCB0ZXh0dXJlIHBvb2wsIHdoaWNoIG1pbmltaXplcyB0ZXh0dXJl
IGFsbG9jYXRpb24gYW5kCisgICAgICAgIGRlYWxsb2NhdGlvbiBvdmVyaGVhZC4KKyAgICAgICAg
Mi4gVGhlIGJhY2tpbmcgc3RvcmUgd2lsbCBub3QgYmUgaW5pdGlhbGx5IGNsZWFyZWQgaWYgaXQg
aXMga25vd24KKyAgICAgICAgaW4gYWR2YW5jZSB0aGF0IGZ1bGx5IG9wYXF1ZSBjb250ZW50cyB3
aWxsIGJlIGRyYXduIGludG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgMy4gRm9yIG5vbi1hY2NlbGVy
YXRlZCBjb250ZXh0cywgaWYgdGhlIGJhY2tpbmcgc3RvcmUgaXMgZmxhZ2dlZCBhcworICAgICAg
ICBvcGFxdWUsIGZhc3RlciBibGl0dGVyIGxvb3AgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgdXNl
ZCBmb3IgZHJhd2luZworICAgICAgICB0aGUgYnVmZmVyIGNvbnRlbnRzIGludG8gb3RoZXIgYnVm
ZmVycy4gKGUuZy4gZ2VuZXJhdGVkIG9wYXF1ZSBncmFkaWVudAorICAgICAgICBmaWxscykKKwor
ICAgICAgICBObyBuZXcgdGVzdHM6IGNvdmVyZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmg6CisgICAgICAgIChHZW5l
cmF0b3IpOgorICAgICAgICBBZGRlZCBoYXNBbHBoYSBtZXRob2Qgc28gdGhhdCBpdCBjYW4gYmUg
dXNlZCBieSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVy
YXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIFBhc3NpbmcgbV9nZW5l
cmF0b3ItPmhhc0FscGhhKCkgdG8gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlciBpbiBvcmRlciB0bwor
ICAgICAgICB0YWtlIGFkdmFudGFnZSBvZiBvcHRpbWl6YXRpb25zIHRoYXQgYXBwbHkgdG8gb3Bh
cXVlIGJ1ZmZlcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoKKyAg
ICAgICAgKEdyYWRpZW50KToKKyAgICAgICAgTWFkZSBoYXNBbHBoYSB2aXJ0dWFsIHNvIHRoYXQg
aXQgbm93IG92ZXJyaWRlcyBHZW5lcmF0b3I6Omhhc0FscGhhCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcik6CisgICAgICAgIFJlZmFjdG9yZWQgdG8g
dXNlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cik6CisgICAgICAgIE5vbi1za2lhIGltcGxlbWVudGF0aW9uLiBNaW1pY3Mgb2xkCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIE5ldyBza2lhLXNwZWNpZmljIGNvbnN0cnVjdG9yCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6Y3JlYXRlQ29tcGF0aWJsZURldmljZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAg
ICAgKFBsYXRmb3JtQ29udGV4dFNraWEpOgorCiAyMDEyLTEyLTAzICBQaGlsaXAgUm9nZXJzICA8
cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW52YWxpZGF0ZSBTVkcgd2lkdGggb24gd2lkdGgg
YXR0cmlidXRlIGNoYW5nZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0b3IuaAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaWxsKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UGFyYW1ldGVyc0ZvclRp
bGVkRHJhd2luZyhJbnRTaXplJiAvKiBzaXplICovLCBGbG9hdFJlY3QmIC8qIHNyY1JlY3QgKi8p
IHsgfQogICAgIHZpcnR1YWwgdW5zaWduZWQgaGFzaCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzQWxwaGEoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vbmFtZXNwYWNlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcgogICAgIHVuc2lnbmVkIGdlbmVyYXRvckhhc2ggPSBtX2dlbmVyYXRvci0+aGFzaCgp
OwogCiAgICAgaWYgKCFtX2NhY2hlZEltYWdlQnVmZmVyIHx8IG1fY2FjaGVkR2VuZXJhdG9ySGFz
aCAhPSBnZW5lcmF0b3JIYXNoIHx8IG1fY2FjaGVkQWRqdXN0ZWRTaXplICE9IGFkanVzdGVkU2l6
ZSB8fCAhZGVzdENvbnRleHQtPmlzQ29tcGF0aWJsZVdpdGhCdWZmZXIobV9jYWNoZWRJbWFnZUJ1
ZmZlci5nZXQoKSkpIHsKLSAgICAgICAgbV9jYWNoZWRJbWFnZUJ1ZmZlciA9IGRlc3RDb250ZXh0
LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGFkanVzdGVkU2l6ZSk7CisgICAgICAgIG1fY2FjaGVk
SW1hZ2VCdWZmZXIgPSBkZXN0Q29udGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihhZGp1c3Rl
ZFNpemUsIG1fZ2VuZXJhdG9yLT5oYXNBbHBoYSgpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZElt
YWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTgyLDcgKzgyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFkZENvbG9y
U3RvcChmbG9hdCwgY29uc3QgQ29sb3ImKTsKIAogICAgICAgICB2b2lkIGdldENvbG9yKGZsb2F0
IHZhbHVlLCBmbG9hdCogciwgZmxvYXQqIGcsIGZsb2F0KiBiLCBmbG9hdCogYSkgY29uc3Q7Ci0g
ICAgICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIGhhc0Fs
cGhhKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAgICAgYm9vbCBpc1JhZGlhbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFkaWFsOyB9CiAgICAgICAgIGJvb2wgaXNaZXJvU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcDAueCgpID09IG1fcDEueCgpICYmIG1fcDAueSgpID09IG1fcDEueSgpICYmICghbV9y
YWRpYWwgfHwgbV9yMCA9PSBtX3IxKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCShyZXZpc2lvbiAxMzYyNTcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NzEsNyArNzcxLDcgQEAgc3RhdGljIGJvb2wgc2NhbGVzTWF0
Y2goQWZmaW5lVHJhbnNmb3JtCiAgICAgcmV0dXJuIGEueFNjYWxlKCkgPT0gYi54U2NhbGUoKSAm
JiBhLnlTY2FsZSgpID09IGIueVNjYWxlKCk7CiB9CiAKLVBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+
IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAorUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gR3JhcGhpY3NDb250ZXh0OjpjcmVh
dGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgaGFzQWxwaGEpIGNv
bnN0CiB7CiAgICAgLy8gTWFrZSB0aGUgYnVmZmVyIGxhcmdlciBpZiB0aGUgY29udGV4dCdzIHRy
YW5zZm9ybSBpcyBzY2FsaW5nIGl0IHNvIHdlIG5lZWQgYSBoaWdoZXIKICAgICAvLyByZXNvbHV0
aW9uIHRoYW4gb25lIHBpeGVsIHBlciB1bml0LiBBbHNvIHNldCB1cCBhIGNvcnJlc3BvbmRpbmcg
c2NhbGUgZmFjdG9yIG9uIHRoZQpAQCAtNzgwLDcgKzc4MCw3IEBAIFBhc3NPd25QdHI8SW1hZ2VC
dWZmZXI+IEdyYXBoaWNzQ29udGV4dDoKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Z2V0Q1RNKERlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOwogICAgIEludFNpemUgc2NhbGVk
U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoc2l6ZS53aWR0aCgpICogdHJhbnNmb3JtLnhTY2Fs
ZSgpKSksIHN0YXRpY19jYXN0PGludD4oY2VpbChzaXplLmhlaWdodCgpICogdHJhbnNmb3JtLnlT
Y2FsZSgpKSkpOwogCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKHNjYWxlZFNpemUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGlzQWNjZWxlcmF0
ZWRDb250ZXh0KCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAgIE93blB0cjxJ
bWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIo
c2NhbGVkU2l6ZSwgMSwgQ29sb3JTcGFjZURldmljZVJHQiwgdGhpcywgaGFzQWxwaGEpOwogICAg
IGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlz
aW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzQsNyArNDM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2VuZGlmCiAgICAgICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0
aWJsZSB3aXRoIHRoaXMgY29udGV4dCwgd2l0aCBzdWl0YWJsZSByZXNvbHV0aW9uCiAgICAgICAg
IC8vIGZvciBkcmF3aW5nIGludG8gdGhlIGJ1ZmZlciBhbmQgdGhlbiBpbnRvIHRoaXMgY29udGV4
dC4KLSAgICAgICAgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cihjb25zdCBJbnRTaXplJikgY29uc3Q7CisgICAgICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+
IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGJvb2wgaGFzQWxwaGEgPSB0
cnVlKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0NvbXBhdGlibGVXaXRoQnVmZmVyKEltYWdlQnVm
ZmVyKikgY29uc3Q7CiAKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIHRoZSBkZXZp
Y2Ugc2NhbGUgZmFjdG9yIHRvIHRoZSBjb250ZXh0LCBtYWtpbmcgdGhlIGNvbnRleHQgY2FwYWJs
ZSBvZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmNwcAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDEx
IEBAIGJvb2wgSW1hZ2VCdWZmZXI6OmNvcHlUb1BsYXRmb3JtVGV4dHVyZSgKIHsKICAgICByZXR1
cm4gZmFsc2U7CiB9CisKK1Bhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVh
dGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGJvb2wpCit7CisgICAgcmV0dXJuIGNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgPyBBY2NlbGVyYXRlZCA6
IFVuYWNjZWxlcmF0ZWQpOworfQogI2VuZGlmCiAKIHZvaWQgSW1hZ2VCdWZmZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHJl
dmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7CiAgICAgICAgIH0KIAorICAg
ICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZl
cihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25z
dCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhKTsKKwogICAgICAgICB+SW1hZ2VCdWZm
ZXIoKTsKIAogICAgICAgICAvLyBUaGUgYWN0dWFsIHJlc29sdXRpb24gb2YgdGhlIGJhY2tpbmcg
c3RvcmUKQEAgLTE1Niw2ICsxNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IFRoaXMgY29uc3RydWN0b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBv
dXQtdmFyaWFibGUKICAgICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNo
b3VsZCByZXR1cm4gZmFpbHVyZS4KICAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJy
YWxNb2RlLCBib29sJiBzdWNjZXNzKTsKKyNpZiBVU0UoU0tJQSkKKyAgICAgICAgSW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29u
c3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBoYXNBbHBoYSwgYm9vbCYgc3VjY2Vzcyk7CisjZW5k
aWYKICAgICB9OwogCiAjaWYgVVNFKENHKSB8fCBVU0UoU0tJQSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tp
YS5jcHAJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDYgKzEw
OCw0MiBAQCBzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZU5vblBsYXRmb3JtQ2FudmFzCiAgICAgcmV0
dXJuIHBpeGVsUmVmID8gbmV3IFNrQ2FudmFzKGRldmljZSkgOiAwOwogfQogCitQYXNzT3duUHRy
PEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBib29sIGhhc0FscGhhKQoreworICAg
IGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRv
cHRQdHIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
Y29udGV4dCwgaGFzQWxwaGEsIHN1Y2Nlc3MpKTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBidWYucmVsZWFzZSgpOworfQorCitJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqIGNvbXBhdGlibGVDb250ZXh0
LCBib29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKQorICAgIDogbV9kYXRhKHNpemUpCisgICAg
LCBtX3NpemUoc2l6ZSkKKyAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKKyAgICAsIG1fcmVzb2x1
dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZSkKK3sKKyAgICBpZiAoIWNvbXBhdGlibGVDb250ZXh0
KSB7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIFNrQXV0b1RVbnJlZjxTa0RldmljZT4gZGV2aWNlKGNvbXBhdGlibGVDb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKS0+Y3JlYXRlQ29tcGF0aWJsZURldmljZShzaXplLCBoYXNBbHBoYSkpOwor
ICAgIFNrUGl4ZWxSZWYqIHBpeGVsUmVmID0gZGV2aWNlLT5hY2Nlc3NCaXRtYXAoZmFsc2UpLnBp
eGVsUmVmKCk7CisgICAgaWYgKCFwaXhlbFJlZikgeworICAgICAgICBzdWNjZXNzID0gZmFsc2U7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2RhdGEubV9jYW52YXMgPSBhZG9wdFB0
cihuZXcgU2tDYW52YXMoZGV2aWNlKSk7CisgICAgbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0LnNl
dENhbnZhcyhtX2RhdGEubV9jYW52YXMuZ2V0KCkpOworICAgIG1fY29udGV4dCA9IGFkb3B0UHRy
KG5ldyBHcmFwaGljc0NvbnRleHQoJm1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dCkpOworICAgIG1f
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUp
OworICAgIG1fY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKG1fcmVzb2x1dGlvblNjYWxlLCBtX3Jl
c29sdXRpb25TY2FsZSkpOworCisgICAgc3VjY2VzcyA9IHRydWU7Cit9CisKIEltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9z
aXplKHNpemUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJKHJldmlzaW9uIDEzNjI1
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250
ZXh0U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNCw2ICsyMTQsMTEgQEAgdm9pZCBQbGF0
Zm9ybUNvbnRleHRTa2lhOjpzZXREcmF3aW5nVG9JbQogICAgIG1fZHJhd2luZ1RvSW1hZ2VCdWZm
ZXIgPSB2YWx1ZTsKIH0KIAorU2tEZXZpY2UqIFBsYXRmb3JtQ29udGV4dFNraWE6OmNyZWF0ZUNv
bXBhdGlibGVEZXZpY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNBbHBoYSkKK3sKKyAg
ICByZXR1cm4gbV9jYW52YXMtPmNyZWF0ZUNvbXBhdGlibGVEZXZpY2UoYml0bWFwKCktPmNvbmZp
ZygpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksICFoYXNBbHBoYSk7Cit9CisKIGJvb2wg
UGxhdGZvcm1Db250ZXh0U2tpYTo6aXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuaAkocmV2aXNpb24gMTM2MjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgy
LDggQEAgcHVibGljOgogICAgIC8vIHRvIHRoZSBjb25zdHJ1Y3Rvci4KICAgICB2b2lkIHNldENh
bnZhcyhTa0NhbnZhcyopOwogCisgICAgU2tEZXZpY2UqIGNyZWF0ZUNvbXBhdGlibGVEZXZpY2Uo
Y29uc3QgSW50U2l6ZSYsIGJvb2wgaGFzQWxwaGEpOworCiAgICAgLy8gSWYgZmFsc2Ugd2UncmUg
cmVuZGVyaW5nIHRvIGEgR3JhcGhpY3NDb250ZXh0IGZvciBhIHdlYiBwYWdlLCBpZiBmYWxzZQog
ICAgIC8vIHdlJ3JlIG5vdCAoYXMgaXMgdGhlIGNhc2Ugd2hlbiByZW5kZXJpbmcgdG8gYSBjYW52
YXMgb2JqZWN0KS4KICAgICAvLyBJZiB0aGlzIGlzIHRydWUgdGhlIGNvbnRlbnRzIGhhdmUgbm90
IGJlZW4gbWFya2VkIHVwIHdpdGggdGhlIG1hZ2ljCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzY0MjYp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0xMi0wMyAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAg
ICAgIFtza2lhXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mIEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRl
Q29tcGF0aWJsZUJ1ZmZlciBieSB1c2luZyBTa0RldmljZTpjcmVhdGVDb21wYXRpYmxlRGV2aWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM4OTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBp
bWFnZSBmYWlsdXJlIGV4cGVjdGF0aW9uIGZvciB0ZXN0IG5lZWRpbmcgbmV3IGJhc2VsaW5lcwor
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0x
Mi0wMyAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dICBVbnJldmlld2VkIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM2MjU3KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtMjIzMiw2ICsyMjMyLDkgQEAgY3JidWcuY29tLzE2MjI0NyAgc3ZnL3RyYW5z
Zm9ybXMvdGV4dC13aQogCiBjcmJ1Zy5jb20vNDM4OTAgWyBXaW4gXSBodHRwL3Rlc3RzL2xvYWRp
bmcvYmFzaWMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKKyMgVGVzdCByZXF1aXJlcyBuZSBiYXNl
bGluZSBhZnRlciBmaXhpbmcgd2Via2l0Lm9yZy9iLzEwMzg5Ngord2Via2l0Lm9yZy9iLzEwMzg5
NiBmYXN0L2JhY2tncm91bmRzL2dyYWRpZW50LWJhY2tncm91bmQtbGVha2FnZS5odG1sIFsgUGFz
cyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogIyBUaGUgZm9sbG93aW5nIHRlc3RzIGZhaWwgb24gYWxs
IHBsYXRmb3JtcyBhbmQgbmVlZCBmdXJ0aGVyIGludmVzdGlnYXRpb24uCiAjIE1hbnkgb2YgdGhl
c2UgYXJlIHNraXBwZWQgb24gdGhlIE1hYyBwbGF0Zm9ybQogd2Via2l0Lm9yZy9iLzQ1OTkxIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>