<?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>72329</bug_id>
          
          <creation_ts>2011-11-14 16:50:07 -0800</creation_ts>
          <short_desc>[Qt] Uploading images to Google+ using QtWebKit does not work</short_desc>
          <delta_ts>2012-10-15 03:51:57 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>98749</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dawit A.">adawit</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>adjam7</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>jturcotte</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502467</commentid>
    <comment_count>0</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2011-11-14 16:50:07 -0800</bug_when>
    <thetext>As the summary states, you won&apos;t be able to upload images to your Google+ account using QtTestBrowser from QtWebKit 2.2 branch. The reason seems to be the QIODevice parameter that points to the POST data in QNetworkAccesssManager::createRequest, is simply invalid and accessing it causes a crash if you do not first check for the &quot;QNetworkRequest::Content-Length&quot; attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509150</commentid>
    <comment_count>1</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2011-11-25 06:49:28 -0800</bug_when>
    <thetext>The cause of this bug turns out to be the lack of support for BlobData in QtNetworkReplyHandler. Actually, the fact that QtNetworkReplyHandler does not even check for BlobData when form upload data type is actually a bug since it would be attempting to access a non-existent iodevice. In any case, I am not sure how to implement support for this functionality, but the lack of such support means, no image upload support in Google+ and worst yet a crash if you attempt to read from the POST iodevice in QNetworkAccessManager::createRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509732</commentid>
    <comment_count>2</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-11-28 04:26:07 -0800</bug_when>
    <thetext>*** Bug 68581 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736599</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-08 02:48:17 -0700</bug_when>
    <thetext>We have enabled BLOBs but are not handling them at all in network request. What is worse is that we treat the formdata types as if they were a binary choice of either Data or File.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736694</commentid>
    <comment_count>4</comment_count>
      <attachid>167541</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-08 08:21:13 -0700</bug_when>
    <thetext>Created attachment 167541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736714</commentid>
    <comment_count>5</comment_count>
      <attachid>167544</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-08 09:07:07 -0700</bug_when>
    <thetext>Created attachment 167544
Patch

Handle expected modification time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736798</commentid>
    <comment_count>6</comment_count>
      <attachid>167544</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-08 10:51:49 -0700</bug_when>
    <thetext>Comment on attachment 167544
Patch

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

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:81
&gt; +            qint64 fileEnd = fi.size();
&gt; +#if ENABLE(BLOB)
&gt; +            if (element.m_fileLength != BlobDataItem::toEndOfFile)
&gt; +                fileEnd = qMin&lt;qint64&gt;(fi.size(), element.m_fileStart + element.m_fileLength);
&gt; +            m_fileSize += qMax&lt;qint64&gt;(0, fileEnd - element.m_fileStart);
&gt; +#else
&gt; +            m_fileSize += fileEnd;
&gt; +#endif

I think this would be slightly easier to follow if you keep the fileEnd declaration inside the #if ENABLE(BLOB) and keep using fi.size() directly outside.

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:110
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

This could be worth a comment stating that you expect encodedBlob types to have been converted already.

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:169
&gt; +            else if (element.m_fileLength != BlobDataItem::toEndOfFile &amp;&amp; m_currentDelta == element.m_fileLength)
&gt; +                moveToNextElement();

If I&apos;m following all this, m_fileLength is provided by JS and might be larger than the actual file, in that case is there any protection to prevent looping forever or cutting the end of the last elements?

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:647
&gt; +#if ENABLE(BLOB)
&gt; +    // Check if there is a blob in the form data.
&gt; +    bool hasBlob = false;
&gt; +

It would be nice to put all the blob logic added to getIODevice in a function named something like convertBlobFormData instead.

&gt; LayoutTests/platform/qt/TestExpectations:587
&gt;  http/tests/local/blob/send-hybrid-blob.html

Are any of those other skipped blob tests easy to cover?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736858</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-08 11:42:27 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:169
&gt; &gt; +            else if (element.m_fileLength != BlobDataItem::toEndOfFile &amp;&amp; m_currentDelta == element.m_fileLength)
&gt; &gt; +                moveToNextElement();
&gt; 
&gt; If I&apos;m following all this, m_fileLength is provided by JS and might be larger than the actual file, in that case is there any protection to prevent looping forever or cutting the end of the last elements?
&gt; 
The condition just prior to this one checks for endOfFile, this is only to terminate if we are before end-of-file but at the end of the file-length specifier.

&gt; &gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:647
&gt; &gt; +#if ENABLE(BLOB)
&gt; &gt; +    // Check if there is a blob in the form data.
&gt; &gt; +    bool hasBlob = false;
&gt; &gt; +
&gt; 
&gt; It would be nice to put all the blob logic added to getIODevice in a function named something like convertBlobFormData instead.
&gt; 
Right.

&gt; &gt; LayoutTests/platform/qt/TestExpectations:587
&gt; &gt;  http/tests/local/blob/send-hybrid-blob.html
&gt; 
&gt; Are any of those other skipped blob tests easy to cover?

The rest of the blobdata tests all depend on either DragAndDrop logic which we don&apos;t support in layout tests, or the FILE_SYSTEM api, which don&apos;t have enabled (and which would require additional support in QNetworkRequestHandler).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737599</commentid>
    <comment_count>8</comment_count>
      <attachid>167719</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-09 02:52:36 -0700</bug_when>
    <thetext>Created attachment 167719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737608</commentid>
    <comment_count>9</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-09 03:21:43 -0700</bug_when>
    <thetext>Landed in r130746, but webkit-path land crashed before closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737644</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-09 04:16:31 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Landed in r130746, but webkit-path land crashed before closing bug.

Reopen, because it made 45 tests crash - http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r130746%20%2843587%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737699</commentid>
    <comment_count>11</comment_count>
      <attachid>167742</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-09 05:36:54 -0700</bug_when>
    <thetext>Created attachment 167742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737722</commentid>
    <comment_count>12</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-09 06:02:27 -0700</bug_when>
    <thetext>Committed r130753: &lt;http://trac.webkit.org/changeset/130753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167541</attachid>
            <date>2012-10-08 08:21:13 -0700</date>
            <delta_ts>2012-10-08 09:07:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72329-20121008172000.patch</filename>
            <type>text/plain</type>
            <size>11566</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0MTAxOWFjOTRiMjAy
ZTZjOGUyZGM1Y2U4MjMyYzBhMWQ5ZTAwNy4uNGNjYjQxMWJiMWUwNjhmYzU3MjJlNDQ3NzQyZmQz
YmJlZWE1Y2NjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTA4ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gVXBsb2FkaW5nIGltYWdlcyB0byBHb29nbGUrIHVzaW5nIFF0V2ViS2l0IGRvZXMgbm90IHdv
cmsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBoYW5kbGluZyBvZiBtb3N0IG9mIHRoZSBCbG9iIEZvcm1EYXRhLCBpbmNsdWRpbmcgaXRz
IGV4dGVuc2lvbiB0byB0aGUgRmlsZSBBUEkuCisgICAgICAgIENoZWNraW5nIGZvciBtb2RpZmlj
YXRpb24gZGF0ZSBpcyBub3QgZnVuY3Rpb25hbCB5ZXQsIGhvd2V2ZXIuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6OkZvcm1EYXRhSU9EZXZpY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybURhdGFJT0RldmljZTo6Y29tcHV0ZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9ybURhdGFJT0RldmljZTo6bW92ZVRvTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9ybURhdGFJT0RldmljZTo6cHJlcGFyZUN1cnJlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZvcm1EYXRhSU9EZXZpY2U6Om9wZW5GaWxlRm9yQ3VycmVudEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6cmVhZERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmdldElPRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaDoKKyAgICAgICAgKEZvcm1E
YXRhSU9EZXZpY2UpOgorCiAyMDEyLTEwLTA4ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtRdF0gcjEyMjcyMCBjYXVzZXMgcGVyZm9ybWFuY2UgcmVncmVz
c2lvbiB3aXRoIERpcmVjdEZCIG9uIEFSTXY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IGQ2
MzJjMjM0M2EyNzk2ZTU1MzRlYzMzZTM3M2Q0ZDY2OTQzMmM2YzMuLjcxN2EzNmU4NjRhNjZkOWM5
ZGYxOGFjZTIwYmZlNjM5ZjAwOTZkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgICAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIERp
Z2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgICAgQ29weXJpZ2h0IChDKSAy
MDA3IFN0YWlrb3MgQ29tcHV0aW5nIFNlcnZpY2VzIEluYy4gIDxpbmZvQHN0YWlrb3MubmV0Pgog
ICAgIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogCkBAIC0y
MSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBs
eUhhbmRsZXIuaCIKIAorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKICNpbmNsdWRlICJI
VFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZS5oIgpAQCAtMzcsMTEgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEZWJ1
Zz4KLQotLy8gSW4gUXQgNC44LCB0aGUgYXR0cmlidXRlIGZvciBzZW5kaW5nIGEgcmVxdWVzdCBz
eW5jaHJvbm91c2x5IHdpbGwgYmUgbWFkZSBwdWJsaWMsCi0vLyBmb3Igbm93LCB1c2UgdGhpcyBo
YWNraXNoIHNvbHV0aW9uIGZvciBzZXR0aW5nIHRoZSBpbnRlcm5hbCBhdHRyaWJ1dGUuCi1jb25z
dCBRTmV0d29ya1JlcXVlc3Q6OkF0dHJpYnV0ZSBnU3luY2hyb25vdXNOZXR3b3JrUmVxdWVzdEF0
dHJpYnV0ZSA9IHN0YXRpY19jYXN0PFFOZXR3b3JrUmVxdWVzdDo6QXR0cmlidXRlPihRTmV0d29y
a1JlcXVlc3Q6Okh0dHBQaXBlbGluaW5nV2FzVXNlZEF0dHJpYnV0ZSArIDcpOwogCiBzdGF0aWMg
Y29uc3QgaW50IGdNYXhSZWRpcmVjdGlvbnMgPSAxMDsKIApAQCAtNTcsOCArNTMsNyBAQCBGb3Jt
RGF0YUlPRGV2aWNlOjpGb3JtRGF0YUlPRGV2aWNlKEZvcm1EYXRhKiBkYXRhKQogewogICAgIHNl
dE9wZW5Nb2RlKEZvcm1EYXRhSU9EZXZpY2U6OlJlYWRPbmx5KTsKIAotICAgIGlmICghbV9mb3Jt
RWxlbWVudHMuaXNFbXB0eSgpICYmIG1fZm9ybUVsZW1lbnRzWzBdLm1fdHlwZSA9PSBGb3JtRGF0
YUVsZW1lbnQ6OmVuY29kZWRGaWxlKQotICAgICAgICBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50
KCk7CisgICAgcHJlcGFyZUN1cnJlbnRFbGVtZW50KCk7CiAgICAgY29tcHV0ZVNpemUoKTsKIH0K
IApAQCAtNzUsNyArNzAsMTQgQEAgcWludDY0IEZvcm1EYXRhSU9EZXZpY2U6OmNvbXB1dGVTaXpl
KCkKICAgICAgICAgICAgIG1fZGF0YVNpemUgKz0gZWxlbWVudC5tX2RhdGEuc2l6ZSgpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIFFGaWxlSW5mbyBmaShlbGVtZW50Lm1fZmlsZW5hbWUp
OwotICAgICAgICAgICAgbV9maWxlU2l6ZSArPSBmaS5zaXplKCk7CisgICAgICAgICAgICBxaW50
NjQgZmlsZUVuZCA9IGZpLnNpemUoKTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIGlm
IChlbGVtZW50Lm1fZmlsZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlKQorICAg
ICAgICAgICAgICAgIGZpbGVFbmQgPSBxTWluPHFpbnQ2ND4oZmkuc2l6ZSgpLCBlbGVtZW50Lm1f
ZmlsZVN0YXJ0ICsgZWxlbWVudC5tX2ZpbGVMZW5ndGgpOworICAgICAgICAgICAgbV9maWxlU2l6
ZSArPSBxTWF4PHFpbnQ2ND4oMCwgZmlsZUVuZCAtIGVsZW1lbnQubV9maWxlU3RhcnQpOworI2Vs
c2UKKyAgICAgICAgICAgIG1fZmlsZVNpemUgKz0gZmlsZUVuZDsKKyNlbmRpZgogICAgICAgICB9
CiAgICAgfQogICAgIHJldHVybiBtX2RhdGFTaXplICsgbV9maWxlU2l6ZTsKQEAgLTg5LDEwICs5
MSwyMyBAQCB2b2lkIEZvcm1EYXRhSU9EZXZpY2U6Om1vdmVUb05leHRFbGVtZW50KCkKIAogICAg
IG1fZm9ybUVsZW1lbnRzLnJlbW92ZSgwKTsKIAotICAgIGlmIChtX2Zvcm1FbGVtZW50cy5pc0Vt
cHR5KCkgfHwgbV9mb3JtRWxlbWVudHNbMF0ubV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZGF0
YSkKKyAgICBwcmVwYXJlQ3VycmVudEVsZW1lbnQoKTsKK30KKwordm9pZCBGb3JtRGF0YUlPRGV2
aWNlOjpwcmVwYXJlQ3VycmVudEVsZW1lbnQoKQoreworICAgIGlmIChtX2Zvcm1FbGVtZW50cy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG9wZW5GaWxlRm9yQ3VycmVudEVsZW1l
bnQoKTsKKyAgICBzd2l0Y2ggKG1fZm9ybUVsZW1lbnRzWzBdLm1fdHlwZSkgeworICAgIGNhc2Ug
Rm9ybURhdGFFbGVtZW50OjpkYXRhOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBGb3JtRGF0
YUVsZW1lbnQ6OmVuY29kZWRGaWxlOgorICAgICAgICBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50
KCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KIH0KIAogdm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpvcGVuRmlsZUZvckN1
cnJlbnRFbGVtZW50KCkKQEAgLTEwMCw4ICsxMTUsMTQgQEAgdm9pZCBGb3JtRGF0YUlPRGV2aWNl
OjpvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCkKICAgICBpZiAoIW1fY3VycmVudEZpbGUpCiAg
ICAgICAgIG1fY3VycmVudEZpbGUgPSBuZXcgUUZpbGU7CiAKKyAgICAvLyBGSVhNRTogSWYgQkxP
QiBpcyBlbmFibGVkIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kaWZpY2F0aW9uIGRhdGUgaXMg
YXMgZXhwZWN0ZWQuCisKICAgICBtX2N1cnJlbnRGaWxlLT5zZXRGaWxlTmFtZShtX2Zvcm1FbGVt
ZW50c1swXS5tX2ZpbGVuYW1lKTsKICAgICBtX2N1cnJlbnRGaWxlLT5vcGVuKFFGaWxlOjpSZWFk
T25seSk7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgaWYgKG1fZm9ybUVsZW1lbnRzWzBdLm1fZmls
ZVN0YXJ0KQorICAgICAgICBtX2N1cnJlbnRGaWxlLT5zZWVrKG1fZm9ybUVsZW1lbnRzWzBdLm1f
ZmlsZVN0YXJ0KTsKKyNlbmRpZgogfQogCiAvLyBtX2Zvcm1FbGVtZW50c1swXSBpcyB0aGUgY3Vy
cmVudCBpdGVtLiBJZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIGlzCkBAIC0xMjQsMTMgKzE0NSwy
MyBAQCBxaW50NjQgRm9ybURhdGFJT0RldmljZTo6cmVhZERhdGEoY2hhciogZGVzdGluYXRpb24s
IHFpbnQ2NCBzaXplKQogCiAgICAgICAgICAgICBpZiAobV9jdXJyZW50RGVsdGEgPT0gZWxlbWVu
dC5tX2RhdGEuc2l6ZSgpKQogICAgICAgICAgICAgICAgIG1vdmVUb05leHRFbGVtZW50KCk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb25zdCBRQnl0ZUFycmF5IGRhdGEgPSBtX2N1
cnJlbnRGaWxlLT5yZWFkKGF2YWlsYWJsZSk7CisgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5t
X3R5cGUgPT0gRm9ybURhdGFFbGVtZW50OjplbmNvZGVkRmlsZSkgeworICAgICAgICAgICAgcXVp
bnQ2NCB0b0NvcHkgPSBhdmFpbGFibGU7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgICAgICAgICBp
ZiAoZWxlbWVudC5tX2ZpbGVMZW5ndGggIT0gQmxvYkRhdGFJdGVtOjp0b0VuZE9mRmlsZSkKKyAg
ICAgICAgICAgICAgICB0b0NvcHkgPSBxTWluPHFpbnQ2ND4odG9Db3B5LCBlbGVtZW50Lm1fZmls
ZUxlbmd0aCAtIG1fY3VycmVudERlbHRhKTsKKyNlbmRpZgorICAgICAgICAgICAgY29uc3QgUUJ5
dGVBcnJheSBkYXRhID0gbV9jdXJyZW50RmlsZS0+cmVhZCh0b0NvcHkpOwogICAgICAgICAgICAg
bWVtY3B5KGRlc3RpbmF0aW9uK2NvcGllZCwgZGF0YS5jb25zdERhdGEoKSwgZGF0YS5zaXplKCkp
OworICAgICAgICAgICAgbV9jdXJyZW50RGVsdGEgKz0gZGF0YS5zaXplKCk7CiAgICAgICAgICAg
ICBjb3BpZWQgKz0gZGF0YS5zaXplKCk7CiAKICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRGaWxl
LT5hdEVuZCgpIHx8ICFtX2N1cnJlbnRGaWxlLT5pc09wZW4oKSkKICAgICAgICAgICAgICAgICBt
b3ZlVG9OZXh0RWxlbWVudCgpOworI2lmIEVOQUJMRShCTE9CKQorICAgICAgICAgICAgZWxzZSBp
ZiAoZWxlbWVudC5tX2ZpbGVMZW5ndGggIT0gQmxvYkRhdGFJdGVtOjp0b0VuZE9mRmlsZSAmJiBt
X2N1cnJlbnREZWx0YSA9PSBlbGVtZW50Lm1fZmlsZUxlbmd0aCkKKyAgICAgICAgICAgICAgICBt
b3ZlVG9OZXh0RWxlbWVudCgpOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAKQEAgLTYwMiw3
ICs2MzMsNTQgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6Y2xlYXJDb250ZW50SGVhZGVy
cygpCiAKIEZvcm1EYXRhSU9EZXZpY2UqIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpnZXRJT0Rldmlj
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgRm9ybURhdGFJT0Rldmlj
ZSogZGV2aWNlID0gbmV3IEZvcm1EYXRhSU9EZXZpY2UocmVxdWVzdC5odHRwQm9keSgpKTsKKyAg
ICBSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhID0gcmVxdWVzdC5odHRwQm9keSgpOworCisjaWYg
RU5BQkxFKEJMT0IpCisgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYSBibG9iIGluIHRoZSBmb3Jt
IGRhdGEuCisgICAgYm9vbCBoYXNCbG9iID0gZmFsc2U7CisKKyAgICBWZWN0b3I8Rm9ybURhdGFF
bGVtZW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmb3JtRGF0YS0+ZWxlbWVudHMoKS5iZWdpbigp
OworICAgIGNvbnN0IFZlY3RvcjxGb3JtRGF0YUVsZW1lbnQ+Ojpjb25zdF9pdGVyYXRvciBpdGVu
ZCA9IGZvcm1EYXRhLT5lbGVtZW50cygpLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBpdGVuZDsg
KytpdCkgeworICAgICAgICBpZiAoaXQtPm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29k
ZWRCbG9iKSB7CisgICAgICAgICAgICBoYXNCbG9iID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSWYgeWVzLCB3ZSBoYXZlIHRvIHJlc29sdmUg
YWxsIHRoZSBibG9iIHJlZmVyZW5jZXMgYW5kIHJlZ2VuZXJhdGUgdGhlIGZvcm0gZGF0YSB3aXRo
IG9ubHkgZGF0YSBhbmQgZmlsZSB0eXBlcy4KKyAgICBpZiAoaGFzQmxvYikgeworICAgICAgICBS
ZWZQdHI8Rm9ybURhdGE+IG5ld0Zvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgpOworICAgICAg
ICBuZXdGb3JtRGF0YS0+c2V0QWx3YXlzU3RyZWFtKGZvcm1EYXRhLT5hbHdheXNTdHJlYW0oKSk7
CisgICAgICAgIG5ld0Zvcm1EYXRhLT5zZXRJZGVudGlmaWVyKGZvcm1EYXRhLT5pZGVudGlmaWVy
KCkpOworICAgICAgICBpdCA9IGZvcm1EYXRhLT5lbGVtZW50cygpLmJlZ2luKCk7CisgICAgICAg
IGZvciAoOyBpdCAhPSBpdGVuZDsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgRm9ybURhdGFF
bGVtZW50JiBlbGVtZW50ID0gKml0OworICAgICAgICAgICAgaWYgKGVsZW1lbnQubV90eXBlID09
IEZvcm1EYXRhRWxlbWVudDo6ZGF0YSkKKyAgICAgICAgICAgICAgICBuZXdGb3JtRGF0YS0+YXBw
ZW5kRGF0YShlbGVtZW50Lm1fZGF0YS5kYXRhKCksIGVsZW1lbnQubV9kYXRhLnNpemUoKSk7Cisg
ICAgICAgICAgICBlbHNlIGlmIChlbGVtZW50Lm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVu
Y29kZWRGaWxlKQorICAgICAgICAgICAgICAgIG5ld0Zvcm1EYXRhLT5hcHBlbmRGaWxlKGVsZW1l
bnQubV9maWxlbmFtZSwgZWxlbWVudC5tX3Nob3VsZEdlbmVyYXRlRmlsZSk7CisgICAgICAgICAg
ICBlbHNlIGlmIChlbGVtZW50Lm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRCbG9i
KSB7CisgICAgICAgICAgICAgICAgUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEgPSBz
dGF0aWNfY2FzdDxCbG9iUmVnaXN0cnlJbXBsJj4oYmxvYlJlZ2lzdHJ5KCkpLmdldEJsb2JEYXRh
RnJvbVVSTChLVVJMKFBhcnNlZFVSTFN0cmluZywgZWxlbWVudC5tX3VybCkpOworICAgICAgICAg
ICAgICAgIGlmIChibG9iRGF0YSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBq
ID0gMDsgaiA8IGJsb2JEYXRhLT5pdGVtcygpLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBCbG9iRGF0YUl0ZW0mIGJsb2JJdGVtID0gYmxvYkRhdGEtPml0ZW1z
KClbal07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvYkl0ZW0udHlwZSA9PSBCbG9i
RGF0YUl0ZW06OkRhdGEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9ybURhdGEt
PmFwcGVuZERhdGEoYmxvYkl0ZW0uZGF0YS0+ZGF0YSgpICsgc3RhdGljX2Nhc3Q8aW50PihibG9i
SXRlbS5vZmZzZXQpLCBzdGF0aWNfY2FzdDxpbnQ+KGJsb2JJdGVtLmxlbmd0aCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvYkl0ZW0udHlwZSA9PSBCbG9iRGF0YUl0ZW06
OkZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9ybURhdGEtPmFwcGVuZEZp
bGVSYW5nZShibG9iSXRlbS5wYXRoLCBibG9iSXRlbS5vZmZzZXQsIGJsb2JJdGVtLmxlbmd0aCwg
YmxvYkl0ZW0uZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9
CisgICAgICAgIGZvcm1EYXRhID0gbmV3Rm9ybURhdGE7CisgICAgfQorI2VuZGlmCisKKyAgICBG
b3JtRGF0YUlPRGV2aWNlKiBkZXZpY2UgPSBuZXcgRm9ybURhdGFJT0RldmljZShmb3JtRGF0YS5n
ZXQoKSk7CiAgICAgLy8gV2UgbWF5IGJlIHVwbG9hZGluZyBmaWxlcyBzbyBwcmV2ZW50IFFOUiBm
cm9tIGJ1ZmZlcmluZyBkYXRhLgogICAgIG1fcmVxdWVzdC5zZXRIZWFkZXIoUU5ldHdvcmtSZXF1
ZXN0OjpDb250ZW50TGVuZ3RoSGVhZGVyLCBkZXZpY2UtPmdldEZvcm1EYXRhU2l6ZSgpKTsKICAg
ICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6RG9Ob3RCdWZmZXJVcGxv
YWREYXRhQXR0cmlidXRlLCBRVmFyaWFudCh0cnVlKSk7CkBAIC02MTIsNyArNjkwLDcgQEAgRm9y
bURhdGFJT0RldmljZSogUU5ldHdvcmtSZXBseUhhbmRsZXI6OmdldElPRGV2aWNlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWUKIFFOZXR3b3JrUmVwbHkqIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzZW5kTmV0d29ya1JlcXVlc3QoUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKG1fbG9hZFR5cGUgPT0gU3lu
Y2hyb25vdXNMb2FkKQotICAgICAgICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKGdTeW5jaHJvbm91
c05ldHdvcmtSZXF1ZXN0QXR0cmlidXRlLCB0cnVlKTsKKyAgICAgICAgbV9yZXF1ZXN0LnNldEF0
dHJpYnV0ZShRTmV0d29ya1JlcXVlc3Q6OlN5bmNocm9ub3VzUmVxdWVzdEF0dHJpYnV0ZSwgdHJ1
ZSk7CiAKICAgICBpZiAoIW1hbmFnZXIpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxl
ci5oCmluZGV4IDQ3NzFlODhhNmQ0ZjI3NmM1YTVhYWVjMWEwZjBlMTZiZjU5Y2QwYmUuLmI1ZjQz
NmY2MDkxOTFlZjNkOTY5NThmNTdmMDdhYzk2YTc2YWIxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgK
QEAgLTE4Miw2ICsxODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbW92ZVRvTmV4dEVsZW1lbnQo
KTsKICAgICBxaW50NjQgY29tcHV0ZVNpemUoKTsKICAgICB2b2lkIG9wZW5GaWxlRm9yQ3VycmVu
dEVsZW1lbnQoKTsKKyAgICB2b2lkIHByZXBhcmVDdXJyZW50RWxlbWVudCgpOwogCiBwcml2YXRl
OgogICAgIFZlY3RvcjxGb3JtRGF0YUVsZW1lbnQ+IG1fZm9ybUVsZW1lbnRzOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcx
YTgxM2I4MTdhN2ZkYmMxM2ZiZDgwYzcyYTExMWY3OTNkNDRlNGEuLmFiMmJjOTQ3ZGVmODIyMjRj
MDJiOTkwNGQ1ZTUzYTlkMDM5ZTRjZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0w
OCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAg
ICAgICBbUXRdIFVwbG9hZGluZyBpbWFnZXMgdG8gR29vZ2xlKyB1c2luZyBRdFdlYktpdCBkb2Vz
IG5vdCB3b3JrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzIzMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVbnNraXAgQkxPQiB0ZXN0cyB0aGF0IG5vdyBwYXNzZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTA4ICBSYXBoYWVsIEt1Ym8gZGEgQ29z
dGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVu
c2tpcCBzdmcvZG9tL2FsdEdseXBoLWRvbS54aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjEzZGZhYmEyNDVhYmIzNzE2ZTA4NDYxZjQzNWQ0ZDQ4MDgz
YTA5Ny4uOGZiY2ZhZmZiZGVhMTAxMTRmYzEyNmM5NmU4MDVlZTQ1Mjk0ODc3ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC01ODUsNyArNTg1LDYgQEAgZmFz
dC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUtcmVuZGVyLmh0bWwKIGZhc3QvZm9ybXMvZmlsZS9p
bnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKIGZhc3QvZm9ybXMvZmlsZS9zZWxlY3RlZC1maWxl
cy1mcm9tLWhpc3Rvcnktc3RhdGUuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtaHli
cmlkLWJsb2IuaHRtbAotaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtc2xpY2VkLWRhdGEtYmxv
Yi5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Ns
aXBib2FyZC9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuaHRtbAogCkBAIC03MTksOSArNzE4LDYgQEAg
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3QtZ29iYWNrLmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvNDAxLWxvZ291dC80MDEtbG9nb3V0LnBocAogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQuaHRtbAogCi0jIEJsb2RCdWlsZGVyIGlzIG5v
dCBlbmFibGVkCi1odHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1kYXRhLWJsb2IuaHRtbAotCiAj
IG5ldyB0ZXN0IGludHJvZHVjZWQgaW4gcjk0ODI4LCBidXQgZmFpbHMgb24gUXQuCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4OAogaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctd2l0aC0xNmJpdC11bmljb2RlNC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167544</attachid>
            <date>2012-10-08 09:07:07 -0700</date>
            <delta_ts>2012-10-09 02:52:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72329-20121008180554.patch</filename>
            <type>text/plain</type>
            <size>11852</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0MTAxOWFjOTRiMjAy
ZTZjOGUyZGM1Y2U4MjMyYzBhMWQ5ZTAwNy4uYzAwYWQxN2Y0MGQzZjA4MWI0OTRkNTZmZWYwNWJi
M2I2NmNkNjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTA4ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gVXBsb2FkaW5nIGltYWdlcyB0byBHb29nbGUrIHVzaW5nIFF0V2ViS2l0IGRvZXMgbm90IHdv
cmsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBoYW5kbGluZyBvZiBCbG9iIEZvcm1EYXRhLCBpbmNsdWRpbmcgaXRzIGV4dGVuc2lvbnMg
dG8gdGhlIEZpbGUgRm9ybURhdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZp
Y2U6OkZvcm1EYXRhSU9EZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0Rldmlj
ZTo6Y29tcHV0ZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6bW92
ZVRvTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6cHJl
cGFyZUN1cnJlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6
Om9wZW5GaWxlRm9yQ3VycmVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJ
T0RldmljZTo6cmVhZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OmdldElPRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzZW5kTmV0d29ya1JlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuaDoKKyAgICAgICAgKEZvcm1EYXRhSU9EZXZpY2UpOgorCiAyMDEy
LTEwLTA4ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtR
dF0gcjEyMjcyMCBjYXVzZXMgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiB3aXRoIERpcmVjdEZCIG9u
IEFSTXY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IGQ2MzJjMjM0M2EyNzk2ZTU1MzRlYzMz
ZTM3M2Q0ZDY2OTQzMmM2YzMuLjYzZDQ0ZjUzMTNkMGY3ZjBjOWM3YzU4MGM0ZGM0ZTZiZjkxZTY1
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC0xLDcgKzEsOCBAQAogLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgICAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA3IFN0YWlrb3MgQ29tcHV0aW5n
IFNlcnZpY2VzIEluYy4gIDxpbmZvQHN0YWlrb3MubmV0PgogICAgIENvcHlyaWdodCAoQykgMjAw
OCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICAgIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSw2
ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhh
bmRsZXIuaCIKIAorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKICNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZS5oIgpAQCAtMzcsMTEgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEZWJ1Zz4K
LQotLy8gSW4gUXQgNC44LCB0aGUgYXR0cmlidXRlIGZvciBzZW5kaW5nIGEgcmVxdWVzdCBzeW5j
aHJvbm91c2x5IHdpbGwgYmUgbWFkZSBwdWJsaWMsCi0vLyBmb3Igbm93LCB1c2UgdGhpcyBoYWNr
aXNoIHNvbHV0aW9uIGZvciBzZXR0aW5nIHRoZSBpbnRlcm5hbCBhdHRyaWJ1dGUuCi1jb25zdCBR
TmV0d29ya1JlcXVlc3Q6OkF0dHJpYnV0ZSBnU3luY2hyb25vdXNOZXR3b3JrUmVxdWVzdEF0dHJp
YnV0ZSA9IHN0YXRpY19jYXN0PFFOZXR3b3JrUmVxdWVzdDo6QXR0cmlidXRlPihRTmV0d29ya1Jl
cXVlc3Q6Okh0dHBQaXBlbGluaW5nV2FzVXNlZEF0dHJpYnV0ZSArIDcpOwogCiBzdGF0aWMgY29u
c3QgaW50IGdNYXhSZWRpcmVjdGlvbnMgPSAxMDsKIApAQCAtNTcsOCArNTQsNyBAQCBGb3JtRGF0
YUlPRGV2aWNlOjpGb3JtRGF0YUlPRGV2aWNlKEZvcm1EYXRhKiBkYXRhKQogewogICAgIHNldE9w
ZW5Nb2RlKEZvcm1EYXRhSU9EZXZpY2U6OlJlYWRPbmx5KTsKIAotICAgIGlmICghbV9mb3JtRWxl
bWVudHMuaXNFbXB0eSgpICYmIG1fZm9ybUVsZW1lbnRzWzBdLm1fdHlwZSA9PSBGb3JtRGF0YUVs
ZW1lbnQ6OmVuY29kZWRGaWxlKQotICAgICAgICBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCk7
CisgICAgcHJlcGFyZUN1cnJlbnRFbGVtZW50KCk7CiAgICAgY29tcHV0ZVNpemUoKTsKIH0KIApA
QCAtNzUsNyArNzEsMTQgQEAgcWludDY0IEZvcm1EYXRhSU9EZXZpY2U6OmNvbXB1dGVTaXplKCkK
ICAgICAgICAgICAgIG1fZGF0YVNpemUgKz0gZWxlbWVudC5tX2RhdGEuc2l6ZSgpOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIFFGaWxlSW5mbyBmaShlbGVtZW50Lm1fZmlsZW5hbWUpOwot
ICAgICAgICAgICAgbV9maWxlU2l6ZSArPSBmaS5zaXplKCk7CisgICAgICAgICAgICBxaW50NjQg
ZmlsZUVuZCA9IGZpLnNpemUoKTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIGlmIChl
bGVtZW50Lm1fZmlsZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlKQorICAgICAg
ICAgICAgICAgIGZpbGVFbmQgPSBxTWluPHFpbnQ2ND4oZmkuc2l6ZSgpLCBlbGVtZW50Lm1fZmls
ZVN0YXJ0ICsgZWxlbWVudC5tX2ZpbGVMZW5ndGgpOworICAgICAgICAgICAgbV9maWxlU2l6ZSAr
PSBxTWF4PHFpbnQ2ND4oMCwgZmlsZUVuZCAtIGVsZW1lbnQubV9maWxlU3RhcnQpOworI2Vsc2UK
KyAgICAgICAgICAgIG1fZmlsZVNpemUgKz0gZmlsZUVuZDsKKyNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogICAgIHJldHVybiBtX2RhdGFTaXplICsgbV9maWxlU2l6ZTsKQEAgLTg5LDEwICs5Miwy
MyBAQCB2b2lkIEZvcm1EYXRhSU9EZXZpY2U6Om1vdmVUb05leHRFbGVtZW50KCkKIAogICAgIG1f
Zm9ybUVsZW1lbnRzLnJlbW92ZSgwKTsKIAotICAgIGlmIChtX2Zvcm1FbGVtZW50cy5pc0VtcHR5
KCkgfHwgbV9mb3JtRWxlbWVudHNbMF0ubV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZGF0YSkK
KyAgICBwcmVwYXJlQ3VycmVudEVsZW1lbnQoKTsKK30KKwordm9pZCBGb3JtRGF0YUlPRGV2aWNl
OjpwcmVwYXJlQ3VycmVudEVsZW1lbnQoKQoreworICAgIGlmIChtX2Zvcm1FbGVtZW50cy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG9wZW5GaWxlRm9yQ3VycmVudEVsZW1lbnQo
KTsKKyAgICBzd2l0Y2ggKG1fZm9ybUVsZW1lbnRzWzBdLm1fdHlwZSkgeworICAgIGNhc2UgRm9y
bURhdGFFbGVtZW50OjpkYXRhOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBGb3JtRGF0YUVs
ZW1lbnQ6OmVuY29kZWRGaWxlOgorICAgICAgICBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCk7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KIH0KIAogdm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpvcGVuRmlsZUZvckN1cnJl
bnRFbGVtZW50KCkKQEAgLTEwMiw2ICsxMTgsMTcgQEAgdm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpv
cGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCkKIAogICAgIG1fY3VycmVudEZpbGUtPnNldEZpbGVO
YW1lKG1fZm9ybUVsZW1lbnRzWzBdLm1fZmlsZW5hbWUpOwogICAgIG1fY3VycmVudEZpbGUtPm9w
ZW4oUUZpbGU6OlJlYWRPbmx5KTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICBpZiAoaXNWYWxpZEZp
bGVUaW1lKG1fZm9ybUVsZW1lbnRzWzBdLm1fZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSkp
IHsKKyAgICAgICAgUUZpbGVJbmZvIGluZm8oKm1fY3VycmVudEZpbGUpOworICAgICAgICBpZiAo
IWluZm8uZXhpc3RzKCkgfHwgc3RhdGljX2Nhc3Q8dGltZV90PihtX2Zvcm1FbGVtZW50c1swXS5t
X2V4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUpIDwgaW5mby5sYXN0TW9kaWZpZWQoKS50b1Rp
bWVfdCgpKSB7CisgICAgICAgICAgICBtb3ZlVG9OZXh0RWxlbWVudCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGlmIChtX2Zvcm1FbGVtZW50c1swXS5tX2Zp
bGVTdGFydCkKKyAgICAgICAgbV9jdXJyZW50RmlsZS0+c2VlayhtX2Zvcm1FbGVtZW50c1swXS5t
X2ZpbGVTdGFydCk7CisjZW5kaWYKIH0KIAogLy8gbV9mb3JtRWxlbWVudHNbMF0gaXMgdGhlIGN1
cnJlbnQgaXRlbS4gSWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcwpAQCAtMTI0LDEzICsxNTEs
MjMgQEAgcWludDY0IEZvcm1EYXRhSU9EZXZpY2U6OnJlYWREYXRhKGNoYXIqIGRlc3RpbmF0aW9u
LCBxaW50NjQgc2l6ZSkKIAogICAgICAgICAgICAgaWYgKG1fY3VycmVudERlbHRhID09IGVsZW1l
bnQubV9kYXRhLnNpemUoKSkKICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0RWxlbWVudCgpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc3QgUUJ5dGVBcnJheSBkYXRhID0gbV9j
dXJyZW50RmlsZS0+cmVhZChhdmFpbGFibGUpOworICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQu
bV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZW5jb2RlZEZpbGUpIHsKKyAgICAgICAgICAgIHF1
aW50NjQgdG9Db3B5ID0gYXZhaWxhYmxlOworI2lmIEVOQUJMRShCTE9CKQorICAgICAgICAgICAg
aWYgKGVsZW1lbnQubV9maWxlTGVuZ3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpCisg
ICAgICAgICAgICAgICAgdG9Db3B5ID0gcU1pbjxxaW50NjQ+KHRvQ29weSwgZWxlbWVudC5tX2Zp
bGVMZW5ndGggLSBtX2N1cnJlbnREZWx0YSk7CisjZW5kaWYKKyAgICAgICAgICAgIGNvbnN0IFFC
eXRlQXJyYXkgZGF0YSA9IG1fY3VycmVudEZpbGUtPnJlYWQodG9Db3B5KTsKICAgICAgICAgICAg
IG1lbWNweShkZXN0aW5hdGlvbitjb3BpZWQsIGRhdGEuY29uc3REYXRhKCksIGRhdGEuc2l6ZSgp
KTsKKyAgICAgICAgICAgIG1fY3VycmVudERlbHRhICs9IGRhdGEuc2l6ZSgpOwogICAgICAgICAg
ICAgY29waWVkICs9IGRhdGEuc2l6ZSgpOwogCiAgICAgICAgICAgICBpZiAobV9jdXJyZW50Rmls
ZS0+YXRFbmQoKSB8fCAhbV9jdXJyZW50RmlsZS0+aXNPcGVuKCkpCiAgICAgICAgICAgICAgICAg
bW92ZVRvTmV4dEVsZW1lbnQoKTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIGVsc2Ug
aWYgKGVsZW1lbnQubV9maWxlTGVuZ3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUgJiYg
bV9jdXJyZW50RGVsdGEgPT0gZWxlbWVudC5tX2ZpbGVMZW5ndGgpCisgICAgICAgICAgICAgICAg
bW92ZVRvTmV4dEVsZW1lbnQoKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogCkBAIC02MDIs
NyArNjM5LDU0IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OmNsZWFyQ29udGVudEhlYWRl
cnMoKQogCiBGb3JtRGF0YUlPRGV2aWNlKiBRTmV0d29ya1JlcGx5SGFuZGxlcjo6Z2V0SU9EZXZp
Y2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIEZvcm1EYXRhSU9EZXZp
Y2UqIGRldmljZSA9IG5ldyBGb3JtRGF0YUlPRGV2aWNlKHJlcXVlc3QuaHR0cEJvZHkoKSk7Cisg
ICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YSA9IHJlcXVlc3QuaHR0cEJvZHkoKTsKKworI2lm
IEVOQUJMRShCTE9CKQorICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGEgYmxvYiBpbiB0aGUgZm9y
bSBkYXRhLgorICAgIGJvb2wgaGFzQmxvYiA9IGZhbHNlOworCisgICAgVmVjdG9yPEZvcm1EYXRh
RWxlbWVudD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZm9ybURhdGEtPmVsZW1lbnRzKCkuYmVnaW4o
KTsKKyAgICBjb25zdCBWZWN0b3I8Rm9ybURhdGFFbGVtZW50Pjo6Y29uc3RfaXRlcmF0b3IgaXRl
bmQgPSBmb3JtRGF0YS0+ZWxlbWVudHMoKS5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gaXRlbmQ7
ICsraXQpIHsKKyAgICAgICAgaWYgKGl0LT5tX3R5cGUgPT0gRm9ybURhdGFFbGVtZW50OjplbmNv
ZGVkQmxvYikgeworICAgICAgICAgICAgaGFzQmxvYiA9IHRydWU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHllcywgd2UgaGF2ZSB0byByZXNvbHZl
IGFsbCB0aGUgYmxvYiByZWZlcmVuY2VzIGFuZCByZWdlbmVyYXRlIHRoZSBmb3JtIGRhdGEgd2l0
aCBvbmx5IGRhdGEgYW5kIGZpbGUgdHlwZXMuCisgICAgaWYgKGhhc0Jsb2IpIHsKKyAgICAgICAg
UmVmUHRyPEZvcm1EYXRhPiBuZXdGb3JtRGF0YSA9IEZvcm1EYXRhOjpjcmVhdGUoKTsKKyAgICAg
ICAgbmV3Rm9ybURhdGEtPnNldEFsd2F5c1N0cmVhbShmb3JtRGF0YS0+YWx3YXlzU3RyZWFtKCkp
OworICAgICAgICBuZXdGb3JtRGF0YS0+c2V0SWRlbnRpZmllcihmb3JtRGF0YS0+aWRlbnRpZmll
cigpKTsKKyAgICAgICAgaXQgPSBmb3JtRGF0YS0+ZWxlbWVudHMoKS5iZWdpbigpOworICAgICAg
ICBmb3IgKDsgaXQgIT0gaXRlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIGNvbnN0IEZvcm1EYXRh
RWxlbWVudCYgZWxlbWVudCA9ICppdDsKKyAgICAgICAgICAgIGlmIChlbGVtZW50Lm1fdHlwZSA9
PSBGb3JtRGF0YUVsZW1lbnQ6OmRhdGEpCisgICAgICAgICAgICAgICAgbmV3Rm9ybURhdGEtPmFw
cGVuZERhdGEoZWxlbWVudC5tX2RhdGEuZGF0YSgpLCBlbGVtZW50Lm1fZGF0YS5zaXplKCkpOwor
ICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5tX3R5cGUgPT0gRm9ybURhdGFFbGVtZW50Ojpl
bmNvZGVkRmlsZSkKKyAgICAgICAgICAgICAgICBuZXdGb3JtRGF0YS0+YXBwZW5kRmlsZShlbGVt
ZW50Lm1fZmlsZW5hbWUsIGVsZW1lbnQubV9zaG91bGRHZW5lcmF0ZUZpbGUpOworICAgICAgICAg
ICAgZWxzZSBpZiAoZWxlbWVudC5tX3R5cGUgPT0gRm9ybURhdGFFbGVtZW50OjplbmNvZGVkQmxv
YikgeworICAgICAgICAgICAgICAgIFJlZlB0cjxCbG9iU3RvcmFnZURhdGE+IGJsb2JEYXRhID0g
c3RhdGljX2Nhc3Q8QmxvYlJlZ2lzdHJ5SW1wbCY+KGJsb2JSZWdpc3RyeSgpKS5nZXRCbG9iRGF0
YUZyb21VUkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsIGVsZW1lbnQubV91cmwpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoYmxvYkRhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3Qg
aiA9IDA7IGogPCBibG9iRGF0YS0+aXRlbXMoKS5zaXplKCk7ICsraikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgQmxvYkRhdGFJdGVtJiBibG9iSXRlbSA9IGJsb2JEYXRhLT5pdGVt
cygpW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2JJdGVtLnR5cGUgPT0gQmxv
YkRhdGFJdGVtOjpEYXRhKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1EYXRh
LT5hcHBlbmREYXRhKGJsb2JJdGVtLmRhdGEtPmRhdGEoKSArIHN0YXRpY19jYXN0PGludD4oYmxv
Ykl0ZW0ub2Zmc2V0KSwgc3RhdGljX2Nhc3Q8aW50PihibG9iSXRlbS5sZW5ndGgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2JJdGVtLnR5cGUgPT0gQmxvYkRhdGFJdGVt
OjpGaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1EYXRhLT5hcHBlbmRG
aWxlUmFuZ2UoYmxvYkl0ZW0ucGF0aCwgYmxvYkl0ZW0ub2Zmc2V0LCBibG9iSXRlbS5sZW5ndGgs
IGJsb2JJdGVtLmV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBmb3JtRGF0YSA9IG5ld0Zvcm1EYXRhOworICAgIH0KKyNlbmRpZgorCisgICAg
Rm9ybURhdGFJT0RldmljZSogZGV2aWNlID0gbmV3IEZvcm1EYXRhSU9EZXZpY2UoZm9ybURhdGEu
Z2V0KCkpOwogICAgIC8vIFdlIG1heSBiZSB1cGxvYWRpbmcgZmlsZXMgc28gcHJldmVudCBRTlIg
ZnJvbSBidWZmZXJpbmcgZGF0YS4KICAgICBtX3JlcXVlc3Quc2V0SGVhZGVyKFFOZXR3b3JrUmVx
dWVzdDo6Q29udGVudExlbmd0aEhlYWRlciwgZGV2aWNlLT5nZXRGb3JtRGF0YVNpemUoKSk7CiAg
ICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShRTmV0d29ya1JlcXVlc3Q6OkRvTm90QnVmZmVyVXBs
b2FkRGF0YUF0dHJpYnV0ZSwgUVZhcmlhbnQodHJ1ZSkpOwpAQCAtNjEyLDcgKzY5Niw3IEBAIEZv
cm1EYXRhSU9EZXZpY2UqIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpnZXRJT0RldmljZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiBRTmV0d29ya1JlcGx5KiBRTmV0d29ya1JlcGx5SGFuZGxl
cjo6c2VuZE5ldHdvcmtSZXF1ZXN0KFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChtX2xvYWRUeXBlID09IFN5
bmNocm9ub3VzTG9hZCkKLSAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShnU3luY2hyb25v
dXNOZXR3b3JrUmVxdWVzdEF0dHJpYnV0ZSwgdHJ1ZSk7CisgICAgICAgIG1fcmVxdWVzdC5zZXRB
dHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpTeW5jaHJvbm91c1JlcXVlc3RBdHRyaWJ1dGUsIHRy
dWUpOwogCiAgICAgaWYgKCFtYW5hZ2VyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuaAppbmRleCA0NzcxZTg4YTZkNGYyNzZjNWE1YWFlYzFhMGYwZTE2YmY1OWNkMGJlLi5iNWY0
MzZmNjA5MTkxZWYzZDk2OTU4ZjU3ZjA3YWM5NmE3NmFiMTY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5o
CkBAIC0xODIsNiArMTgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1vdmVUb05leHRFbGVtZW50
KCk7CiAgICAgcWludDY0IGNvbXB1dGVTaXplKCk7CiAgICAgdm9pZCBvcGVuRmlsZUZvckN1cnJl
bnRFbGVtZW50KCk7CisgICAgdm9pZCBwcmVwYXJlQ3VycmVudEVsZW1lbnQoKTsKIAogcHJpdmF0
ZToKICAgICBWZWN0b3I8Rm9ybURhdGFFbGVtZW50PiBtX2Zvcm1FbGVtZW50czsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
MWE4MTNiODE3YTdmZGJjMTNmYmQ4MGM3MmExMTFmNzkzZDQ0ZTRhLi5hYjJiYzk0N2RlZjgyMjI0
YzAyYjk5MDRkNWU1M2E5ZDAzOWU0Y2RlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MDggIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CisKKyAg
ICAgICAgW1F0XSBVcGxvYWRpbmcgaW1hZ2VzIHRvIEdvb2dsZSsgdXNpbmcgUXRXZWJLaXQgZG9l
cyBub3Qgd29yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyMzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5za2lwIEJMT0IgdGVzdHMgdGhhdCBub3cgcGFzc2VzLgorCisgICAgICAgICogcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0xMC0wOCAgUmFwaGFlbCBLdWJvIGRhIENv
c3RhICA8cmFwaGFlbC5rdWJvLmRhLmNvc3RhQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBV
bnNraXAgc3ZnL2RvbS9hbHRHbHlwaC1kb20ueGh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDIxM2RmYWJhMjQ1YWJiMzcxNmUwODQ2MWY0MzVkNGQ0ODA4
M2EwOTcuLjhmYmNmYWZmYmRlYTEwMTE0ZmMxMjZjOTZlODA1ZWU0NTI5NDg3N2YgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTg1LDcgKzU4NSw2IEBAIGZh
c3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUv
aW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvc2VsZWN0ZWQtZmls
ZXMtZnJvbS1oaXN0b3J5LXN0YXRlLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLWh5
YnJpZC1ibG9iLmh0bWwKLWh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLXNsaWNlZC1kYXRhLWJs
b2IuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YQogaHR0cC90ZXN0cy9zZWN1cml0eS9j
bGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIApAQCAtNzE5LDkgKzcxOCw2IEBA
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi90aW1lcnJlZGlyZWN0LWdvYmFjay5odG1sCiBodHRwL3Rl
c3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC5waHAKIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVtZW1iZXItYmFkLXBhc3N3b3JkLmh0bWwKIAotIyBCbG9kQnVpbGRlciBpcyBu
b3QgZW5hYmxlZAotaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtZGF0YS1ibG9iLmh0bWwKLQog
IyBuZXcgdGVzdCBpbnRyb2R1Y2VkIGluIHI5NDgyOCwgYnV0IGZhaWxzIG9uIFF0LgogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1ODgKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXdpdGgtMTZiaXQtdW5pY29kZTQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167719</attachid>
            <date>2012-10-09 02:52:36 -0700</date>
            <delta_ts>2012-10-09 05:36:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72329-20121009115122.patch</filename>
            <type>text/plain</type>
            <size>12872</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyNWI1NDU2OTI0Yzdj
Y2FmOTFiZjZmZjcwOWY0OTI3MzI4MWUyMi4uNmJiODQ5YjhiZTEwYjg4ZDBkODBiZjc0MmRmOGEz
YTY2MThhOGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTEwLTA5ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gVXBsb2FkaW5nIGltYWdlcyB0byBHb29nbGUrIHVzaW5nIFF0V2ViS2l0IGRvZXMgbm90IHdv
cmsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBoYW5kbGluZyBvZiBCbG9iIEZvcm1EYXRhLCBpbmNsdWRpbmcgaXRzIGV4dGVuc2lvbnMg
dG8gdGhlIEZpbGUgRm9ybURhdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZp
Y2U6OkZvcm1EYXRhSU9EZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0Rldmlj
ZTo6Y29tcHV0ZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6bW92
ZVRvTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6cHJl
cGFyZUN1cnJlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6
Om9wZW5GaWxlRm9yQ3VycmVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJ
T0RldmljZTo6cmVhZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OmdldElPRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpoYW5kbGVCbG9iRGF0YUlmQW55KToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
cXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaDoKKyAgICAgICAgKFFOZXR3b3JrUmVwbHlIYW5kbGVy
KToKKyAgICAgICAgKEZvcm1EYXRhSU9EZXZpY2UpOgorCiAyMDEyLTEwLTA5ICBLZWlzaGkgSGF0
dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBhZ2UgcG9wdXAgc2hvdWxkIGJl
IHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCBkNjMy
YzIzNDNhMjc5NmU1NTM0ZWMzM2UzNzNkNGQ2Njk0MzJjNmMzLi4zZTZiN2RlNDRkZTk4OTkyMzQy
Y2Y4OTNjMTU4YmI2YWZlNDMxY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMSw3ICsx
LDggQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBEaWdp
YSBQbGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICAgIENvcHlyaWdodCAoQykgMjAw
NyBTdGFpa29zIENvbXB1dGluZyBTZXJ2aWNlcyBJbmMuICA8aW5mb0BzdGFpa29zLm5ldD4KICAg
ICBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjEsNiArMjIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlFOZXR3b3JrUmVwbHlIYW5kbGVyLmgiCiAKKyNpbmNsdWRlICJCbG9iUmVnaXN0cnlJbXBs
LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTM3LDExICszOSw2IEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4K
LSNpbmNsdWRlIDxRRGVidWc+Ci0KLS8vIEluIFF0IDQuOCwgdGhlIGF0dHJpYnV0ZSBmb3Igc2Vu
ZGluZyBhIHJlcXVlc3Qgc3luY2hyb25vdXNseSB3aWxsIGJlIG1hZGUgcHVibGljLAotLy8gZm9y
IG5vdywgdXNlIHRoaXMgaGFja2lzaCBzb2x1dGlvbiBmb3Igc2V0dGluZyB0aGUgaW50ZXJuYWwg
YXR0cmlidXRlLgotY29uc3QgUU5ldHdvcmtSZXF1ZXN0OjpBdHRyaWJ1dGUgZ1N5bmNocm9ub3Vz
TmV0d29ya1JlcXVlc3RBdHRyaWJ1dGUgPSBzdGF0aWNfY2FzdDxRTmV0d29ya1JlcXVlc3Q6OkF0
dHJpYnV0ZT4oUU5ldHdvcmtSZXF1ZXN0OjpIdHRwUGlwZWxpbmluZ1dhc1VzZWRBdHRyaWJ1dGUg
KyA3KTsKIAogc3RhdGljIGNvbnN0IGludCBnTWF4UmVkaXJlY3Rpb25zID0gMTA7CiAKQEAgLTU3
LDggKzU0LDcgQEAgRm9ybURhdGFJT0RldmljZTo6Rm9ybURhdGFJT0RldmljZShGb3JtRGF0YSog
ZGF0YSkKIHsKICAgICBzZXRPcGVuTW9kZShGb3JtRGF0YUlPRGV2aWNlOjpSZWFkT25seSk7CiAK
LSAgICBpZiAoIW1fZm9ybUVsZW1lbnRzLmlzRW1wdHkoKSAmJiBtX2Zvcm1FbGVtZW50c1swXS5t
X3R5cGUgPT0gRm9ybURhdGFFbGVtZW50OjplbmNvZGVkRmlsZSkKLSAgICAgICAgb3BlbkZpbGVG
b3JDdXJyZW50RWxlbWVudCgpOworICAgIHByZXBhcmVDdXJyZW50RWxlbWVudCgpOwogICAgIGNv
bXB1dGVTaXplKCk7CiB9CiAKQEAgLTc1LDcgKzcxLDE0IEBAIHFpbnQ2NCBGb3JtRGF0YUlPRGV2
aWNlOjpjb21wdXRlU2l6ZSgpCiAgICAgICAgICAgICBtX2RhdGFTaXplICs9IGVsZW1lbnQubV9k
YXRhLnNpemUoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBRRmlsZUluZm8gZmkoZWxl
bWVudC5tX2ZpbGVuYW1lKTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIHFpbnQ2NCBm
aWxlRW5kID0gZmkuc2l6ZSgpOworICAgICAgICAgICAgaWYgKGVsZW1lbnQubV9maWxlTGVuZ3Ro
ICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpCisgICAgICAgICAgICAgICAgZmlsZUVuZCA9
IHFNaW48cWludDY0PihmaS5zaXplKCksIGVsZW1lbnQubV9maWxlU3RhcnQgKyBlbGVtZW50Lm1f
ZmlsZUxlbmd0aCk7CisgICAgICAgICAgICBtX2ZpbGVTaXplICs9IHFNYXg8cWludDY0PigwLCBm
aWxlRW5kIC0gZWxlbWVudC5tX2ZpbGVTdGFydCk7CisjZWxzZQogICAgICAgICAgICAgbV9maWxl
U2l6ZSArPSBmaS5zaXplKCk7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4g
bV9kYXRhU2l6ZSArIG1fZmlsZVNpemU7CkBAIC04OSwxMCArOTIsMjQgQEAgdm9pZCBGb3JtRGF0
YUlPRGV2aWNlOjptb3ZlVG9OZXh0RWxlbWVudCgpCiAKICAgICBtX2Zvcm1FbGVtZW50cy5yZW1v
dmUoMCk7CiAKLSAgICBpZiAobV9mb3JtRWxlbWVudHMuaXNFbXB0eSgpIHx8IG1fZm9ybUVsZW1l
bnRzWzBdLm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmRhdGEpCisgICAgcHJlcGFyZUN1cnJl
bnRFbGVtZW50KCk7Cit9CisKK3ZvaWQgRm9ybURhdGFJT0RldmljZTo6cHJlcGFyZUN1cnJlbnRF
bGVtZW50KCkKK3sKKyAgICBpZiAobV9mb3JtRWxlbWVudHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCk7CisgICAgc3dpdGNoICht
X2Zvcm1FbGVtZW50c1swXS5tX3R5cGUpIHsKKyAgICBjYXNlIEZvcm1EYXRhRWxlbWVudDo6ZGF0
YToKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRm9ybURhdGFFbGVtZW50OjplbmNvZGVkRmls
ZToKKyAgICAgICAgb3BlbkZpbGVGb3JDdXJyZW50RWxlbWVudCgpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGVuY29kZWRCbG9iIHNob3Vs
ZCBhbHJlYWR5IGhhdmUgYmVlbiBoYW5kbGVkLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CiB9CiAKIHZvaWQgRm9ybURhdGFJT0RldmljZTo6b3BlbkZpbGVGb3JDdXJyZW50
RWxlbWVudCgpCkBAIC0xMDIsNiArMTE5LDE3IEBAIHZvaWQgRm9ybURhdGFJT0RldmljZTo6b3Bl
bkZpbGVGb3JDdXJyZW50RWxlbWVudCgpCiAKICAgICBtX2N1cnJlbnRGaWxlLT5zZXRGaWxlTmFt
ZShtX2Zvcm1FbGVtZW50c1swXS5tX2ZpbGVuYW1lKTsKICAgICBtX2N1cnJlbnRGaWxlLT5vcGVu
KFFGaWxlOjpSZWFkT25seSk7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgaWYgKGlzVmFsaWRGaWxl
VGltZShtX2Zvcm1FbGVtZW50c1swXS5tX2V4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUpKSB7
CisgICAgICAgIFFGaWxlSW5mbyBpbmZvKCptX2N1cnJlbnRGaWxlKTsKKyAgICAgICAgaWYgKCFp
bmZvLmV4aXN0cygpIHx8IHN0YXRpY19jYXN0PHRpbWVfdD4obV9mb3JtRWxlbWVudHNbMF0ubV9l
eHBlY3RlZEZpbGVNb2RpZmljYXRpb25UaW1lKSA8IGluZm8ubGFzdE1vZGlmaWVkKCkudG9UaW1l
X3QoKSkgeworICAgICAgICAgICAgbW92ZVRvTmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAobV9mb3JtRWxlbWVudHNbMF0ubV9maWxl
U3RhcnQpCisgICAgICAgIG1fY3VycmVudEZpbGUtPnNlZWsobV9mb3JtRWxlbWVudHNbMF0ubV9m
aWxlU3RhcnQpOworI2VuZGlmCiB9CiAKIC8vIG1fZm9ybUVsZW1lbnRzWzBdIGlzIHRoZSBjdXJy
ZW50IGl0ZW0uIElmIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgaXMKQEAgLTEyNCwxMyArMTUyLDIz
IEBAIHFpbnQ2NCBGb3JtRGF0YUlPRGV2aWNlOjpyZWFkRGF0YShjaGFyKiBkZXN0aW5hdGlvbiwg
cWludDY0IHNpemUpCiAKICAgICAgICAgICAgIGlmIChtX2N1cnJlbnREZWx0YSA9PSBlbGVtZW50
Lm1fZGF0YS5zaXplKCkpCiAgICAgICAgICAgICAgICAgbW92ZVRvTmV4dEVsZW1lbnQoKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNvbnN0IFFCeXRlQXJyYXkgZGF0YSA9IG1fY3Vy
cmVudEZpbGUtPnJlYWQoYXZhaWxhYmxlKTsKKyAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50Lm1f
dHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRGaWxlKSB7CisgICAgICAgICAgICBxdWlu
dDY0IHRvQ29weSA9IGF2YWlsYWJsZTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIGlm
IChlbGVtZW50Lm1fZmlsZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlKQorICAg
ICAgICAgICAgICAgIHRvQ29weSA9IHFNaW48cWludDY0Pih0b0NvcHksIGVsZW1lbnQubV9maWxl
TGVuZ3RoIC0gbV9jdXJyZW50RGVsdGEpOworI2VuZGlmCisgICAgICAgICAgICBjb25zdCBRQnl0
ZUFycmF5IGRhdGEgPSBtX2N1cnJlbnRGaWxlLT5yZWFkKHRvQ29weSk7CiAgICAgICAgICAgICBt
ZW1jcHkoZGVzdGluYXRpb24rY29waWVkLCBkYXRhLmNvbnN0RGF0YSgpLCBkYXRhLnNpemUoKSk7
CisgICAgICAgICAgICBtX2N1cnJlbnREZWx0YSArPSBkYXRhLnNpemUoKTsKICAgICAgICAgICAg
IGNvcGllZCArPSBkYXRhLnNpemUoKTsKIAogICAgICAgICAgICAgaWYgKG1fY3VycmVudEZpbGUt
PmF0RW5kKCkgfHwgIW1fY3VycmVudEZpbGUtPmlzT3BlbigpKQogICAgICAgICAgICAgICAgIG1v
dmVUb05leHRFbGVtZW50KCk7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgICAgICAgICBlbHNlIGlm
IChlbGVtZW50Lm1fZmlsZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlICYmIG1f
Y3VycmVudERlbHRhID09IGVsZW1lbnQubV9maWxlTGVuZ3RoKQorICAgICAgICAgICAgICAgIG1v
dmVUb05leHRFbGVtZW50KCk7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KIApAQCAtNjAyLDE3
ICs2NDAsNzEgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6Y2xlYXJDb250ZW50SGVhZGVy
cygpCiAKIEZvcm1EYXRhSU9EZXZpY2UqIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpnZXRJT0Rldmlj
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgRm9ybURhdGFJT0Rldmlj
ZSogZGV2aWNlID0gbmV3IEZvcm1EYXRhSU9EZXZpY2UocmVxdWVzdC5odHRwQm9keSgpKTsKKyAg
ICBSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhID0gaGFuZGxlQmxvYkRhdGFJZkFueShyZXF1ZXN0
Lmh0dHBCb2R5KCkpOworICAgIEZvcm1EYXRhSU9EZXZpY2UqIGRldmljZSA9IG5ldyBGb3JtRGF0
YUlPRGV2aWNlKGZvcm1EYXRhLmdldCgpKTsKICAgICAvLyBXZSBtYXkgYmUgdXBsb2FkaW5nIGZp
bGVzIHNvIHByZXZlbnQgUU5SIGZyb20gYnVmZmVyaW5nIGRhdGEuCiAgICAgbV9yZXF1ZXN0LnNl
dEhlYWRlcihRTmV0d29ya1JlcXVlc3Q6OkNvbnRlbnRMZW5ndGhIZWFkZXIsIGRldmljZS0+Z2V0
Rm9ybURhdGFTaXplKCkpOwogICAgIG1fcmVxdWVzdC5zZXRBdHRyaWJ1dGUoUU5ldHdvcmtSZXF1
ZXN0OjpEb05vdEJ1ZmZlclVwbG9hZERhdGFBdHRyaWJ1dGUsIFFWYXJpYW50KHRydWUpKTsKICAg
ICByZXR1cm4gZGV2aWNlOwogfQogCitQYXNzUmVmUHRyPEZvcm1EYXRhPiBRTmV0d29ya1JlcGx5
SGFuZGxlcjo6aGFuZGxlQmxvYkRhdGFJZkFueShGb3JtRGF0YSogZm9ybURhdGFQdHIpCit7Cisg
ICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YShmb3JtRGF0YVB0cik7CisKKyAgICAvLyBGSVhN
RTogVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIGFkb3B0ZWQgZnJvbSBGb3JtRGF0YVN0cmVh
bUNGTmV0LmNwcCwgYW5kIGl0IG1heSBiZQorICAgIC8vIGEgZ29vZCBpZGVhIHRvIG1vdmUgaXQg
dG8gYSBjb21tb24gZnVuY3Rpb24gdG8gYmUgc2hhcmVkIGF0IHNvbWUgcG9pbnQuCisjaWYgRU5B
QkxFKEJMT0IpCisgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYSBibG9iIGluIHRoZSBmb3JtIGRh
dGEuCisgICAgYm9vbCBoYXNCbG9iID0gZmFsc2U7CisKKyAgICBWZWN0b3I8Rm9ybURhdGFFbGVt
ZW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmb3JtRGF0YS0+ZWxlbWVudHMoKS5iZWdpbigpOwor
ICAgIGNvbnN0IFZlY3RvcjxGb3JtRGF0YUVsZW1lbnQ+Ojpjb25zdF9pdGVyYXRvciBpdGVuZCA9
IGZvcm1EYXRhLT5lbGVtZW50cygpLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBpdGVuZDsgKytp
dCkgeworICAgICAgICBpZiAoaXQtPm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRC
bG9iKSB7CisgICAgICAgICAgICBoYXNCbG9iID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gSWYgeWVzLCB3ZSBoYXZlIHRvIHJlc29sdmUgYWxs
IHRoZSBibG9iIHJlZmVyZW5jZXMgYW5kIHJlZ2VuZXJhdGUgdGhlIGZvcm0gZGF0YSB3aXRoIG9u
bHkgZGF0YSBhbmQgZmlsZSB0eXBlcy4KKyAgICBpZiAoaGFzQmxvYikgeworICAgICAgICBSZWZQ
dHI8Rm9ybURhdGE+IG5ld0Zvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgpOworICAgICAgICBu
ZXdGb3JtRGF0YS0+c2V0QWx3YXlzU3RyZWFtKGZvcm1EYXRhLT5hbHdheXNTdHJlYW0oKSk7Cisg
ICAgICAgIG5ld0Zvcm1EYXRhLT5zZXRJZGVudGlmaWVyKGZvcm1EYXRhLT5pZGVudGlmaWVyKCkp
OworICAgICAgICBpdCA9IGZvcm1EYXRhLT5lbGVtZW50cygpLmJlZ2luKCk7CisgICAgICAgIGZv
ciAoOyBpdCAhPSBpdGVuZDsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgRm9ybURhdGFFbGVt
ZW50JiBlbGVtZW50ID0gKml0OworICAgICAgICAgICAgaWYgKGVsZW1lbnQubV90eXBlID09IEZv
cm1EYXRhRWxlbWVudDo6ZGF0YSkKKyAgICAgICAgICAgICAgICBuZXdGb3JtRGF0YS0+YXBwZW5k
RGF0YShlbGVtZW50Lm1fZGF0YS5kYXRhKCksIGVsZW1lbnQubV9kYXRhLnNpemUoKSk7CisgICAg
ICAgICAgICBlbHNlIGlmIChlbGVtZW50Lm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29k
ZWRGaWxlKQorICAgICAgICAgICAgICAgIG5ld0Zvcm1EYXRhLT5hcHBlbmRGaWxlKGVsZW1lbnQu
bV9maWxlbmFtZSwgZWxlbWVudC5tX3Nob3VsZEdlbmVyYXRlRmlsZSk7CisgICAgICAgICAgICBl
bHNlIGlmIChlbGVtZW50Lm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRCbG9iKSB7
CisgICAgICAgICAgICAgICAgUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEgPSBzdGF0
aWNfY2FzdDxCbG9iUmVnaXN0cnlJbXBsJj4oYmxvYlJlZ2lzdHJ5KCkpLmdldEJsb2JEYXRhRnJv
bVVSTChLVVJMKFBhcnNlZFVSTFN0cmluZywgZWxlbWVudC5tX3VybCkpOworICAgICAgICAgICAg
ICAgIGlmIChibG9iRGF0YSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaiA8IGJsb2JEYXRhLT5pdGVtcygpLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBCbG9iRGF0YUl0ZW0mIGJsb2JJdGVtID0gYmxvYkRhdGEtPml0ZW1zKClb
al07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvYkl0ZW0udHlwZSA9PSBCbG9iRGF0
YUl0ZW06OkRhdGEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9ybURhdGEtPmFw
cGVuZERhdGEoYmxvYkl0ZW0uZGF0YS0+ZGF0YSgpICsgc3RhdGljX2Nhc3Q8aW50PihibG9iSXRl
bS5vZmZzZXQpLCBzdGF0aWNfY2FzdDxpbnQ+KGJsb2JJdGVtLmxlbmd0aCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvYkl0ZW0udHlwZSA9PSBCbG9iRGF0YUl0ZW06OkZp
bGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9ybURhdGEtPmFwcGVuZEZpbGVS
YW5nZShibG9iSXRlbS5wYXRoLCBibG9iSXRlbS5vZmZzZXQsIGJsb2JJdGVtLmxlbmd0aCwgYmxv
Ykl0ZW0uZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9Cisg
ICAgICAgIGZvcm1EYXRhID0gbmV3Rm9ybURhdGE7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJu
IGZvcm1EYXRhLnJlbGVhc2UoKTsKK30KKwogUU5ldHdvcmtSZXBseSogUU5ldHdvcmtSZXBseUhh
bmRsZXI6OnNlbmROZXR3b3JrUmVxdWVzdChRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV9sb2FkVHlwZSA9
PSBTeW5jaHJvbm91c0xvYWQpCi0gICAgICAgIG1fcmVxdWVzdC5zZXRBdHRyaWJ1dGUoZ1N5bmNo
cm9ub3VzTmV0d29ya1JlcXVlc3RBdHRyaWJ1dGUsIHRydWUpOworICAgICAgICBtX3JlcXVlc3Qu
c2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6U3luY2hyb25vdXNSZXF1ZXN0QXR0cmlidXRl
LCB0cnVlKTsKIAogICAgIGlmICghbWFuYWdlcikKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlI
YW5kbGVyLmgKaW5kZXggNDc3MWU4OGE2ZDRmMjc2YzVhNWFhZWMxYTBmMGUxNmJmNTljZDBiZS4u
ZTY5NmU5YzRmNjU2OTcwMDE2ZThkM2Q3YmY0YjI4Y2FmZDUzNGFhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRl
ICJRdE1JTUVUeXBlU25pZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIFFU
X0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUUZpbGU7CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHdhc0Fib3J0ZWQoKSBjb25zdCB7IHJldHVybiAhbV9yZXNvdXJjZUhhbmRs
ZTsgfQogICAgIFFOZXR3b3JrUmVwbHkqIHNlbmROZXR3b3JrUmVxdWVzdChRTmV0d29ya0FjY2Vz
c01hbmFnZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBGb3JtRGF0YUlPRGV2aWNl
KiBnZXRJT0RldmljZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBQYXNzUmVmUHRyPEZv
cm1EYXRhPiBoYW5kbGVCbG9iRGF0YUlmQW55KEZvcm1EYXRhKik7CiAgICAgdm9pZCBjbGVhckNv
bnRlbnRIZWFkZXJzKCk7CiAKICAgICBPd25QdHI8UU5ldHdvcmtSZXBseVdyYXBwZXI+IG1fcmVw
bHlXcmFwcGVyOwpAQCAtMTgyLDYgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb3ZlVG9O
ZXh0RWxlbWVudCgpOwogICAgIHFpbnQ2NCBjb21wdXRlU2l6ZSgpOwogICAgIHZvaWQgb3BlbkZp
bGVGb3JDdXJyZW50RWxlbWVudCgpOworICAgIHZvaWQgcHJlcGFyZUN1cnJlbnRFbGVtZW50KCk7
CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPEZvcm1EYXRhRWxlbWVudD4gbV9mb3JtRWxlbWVudHM7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTY3NTc5YjRhZDBhNjVjYjAyNTJiYmZiMDU0MWYzYjY5OTVmMDQyZi4uZjQ0M2Vh
MmQwNzU3MGFlZjEyN2Y3ZWFkNTI5ODhkNDlmNzMzOTdiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEyLTEwLTA5ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEu
Y29tPgorCisgICAgICAgIFtRdF0gVXBsb2FkaW5nIGltYWdlcyB0byBHb29nbGUrIHVzaW5nIFF0
V2ViS2l0IGRvZXMgbm90IHdvcmsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MjMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuc2tpcCB0aGUgdHdvIEJMT0IgdGVzdHMgdGhhdCBub3cgcGFzc2VzLiBU
aGUgcmVzdCBvZiB0aGUgQkxPQiB0ZXN0cyB1bmZvcnR1bmF0ZWx5IGRlcGVuZAorICAgICAgICBv
biBmZWF0dXJlcyB3ZSBkbyBub3QgaGF2ZS4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMDkgIFR1bGxpbyBMdWNlbmEgIDx0dWxsaW8ubHVjZW5h
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBlZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1h
dC1iaWRpLWJvdW5kYXJ5Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDUzY2I5ZTI1MWVhMWQzYmU5ZGJlZTAxZGZkZTk3Y2I1N2MyZDllYmUu
LjYxZTc5NWY1ODMzZGMxZmE4ZGE1MTIzNjhiZDU4ZWNkNzBkNDlmMDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTg4LDcgKzU4OCw2IEBAIGZhc3QvZm9y
bXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQt
ZmlsZS13cml0ZS1maWxlcy5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvc2VsZWN0ZWQtZmlsZXMtZnJv
bS1oaXN0b3J5LXN0YXRlLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLWh5YnJpZC1i
bG9iLmh0bWwKLWh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLXNsaWNlZC1kYXRhLWJsb2IuaHRt
bAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YQogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9h
cmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIApAQCAtNzIyLDkgKzcyMSw2IEBAIGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi90aW1lcnJlZGlyZWN0LWdvYmFjay5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC5waHAKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVtZW1iZXItYmFkLXBhc3N3b3JkLmh0bWwKIAotIyBCbG9kQnVpbGRlciBpcyBub3QgZW5h
YmxlZAotaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtZGF0YS1ibG9iLmh0bWwKLQogIyBuZXcg
dGVzdCBpbnRyb2R1Y2VkIGluIHI5NDgyOCwgYnV0IGZhaWxzIG9uIFF0LgogIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1ODgKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9zY3JpcHQtdGFnLXdpdGgtMTZiaXQtdW5pY29kZTQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167742</attachid>
            <date>2012-10-09 05:36:54 -0700</date>
            <delta_ts>2012-10-15 03:51:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72329-20121009143539.patch</filename>
            <type>text/plain</type>
            <size>12206</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyNWI1NDU2OTI0Yzdj
Y2FmOTFiZjZmZjcwOWY0OTI3MzI4MWUyMi4uMzE5NWY4ZjRlMjI5YzNiNjc2NzNiNDZkOGRmOGYx
ZjE4MWIwYWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTA5ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gVXBsb2FkaW5nIGltYWdlcyB0byBHb29nbGUrIHVzaW5nIFF0V2ViS2l0IGRvZXMgbm90IHdv
cmsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2VseW4gVHVyY290dGUuCisKKyAgICAgICAgSW1w
bGVtZW50IGhhbmRsaW5nIG9mIEJsb2IgRm9ybURhdGEsIGluY2x1ZGluZyBpdHMgZXh0ZW5zaW9u
cyB0byB0aGUgRmlsZSBGb3JtRGF0YS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0Rl
dmljZTo6Rm9ybURhdGFJT0RldmljZSk6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRCbG9iUmVz
b2x2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFJT0RldmljZTo6c2V0Rm9ybUVsZW1l
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6OmNvbXB1dGVTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6Om1vdmVUb05leHRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6OnByZXBhcmVDdXJyZW50RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YUlPRGV2aWNlOjpvcGVuRmlsZUZvckN1cnJl
bnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhSU9EZXZpY2U6OnJlYWREYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1Jl
cXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuaDoKKyAgICAgICAgKEZvcm1EYXRhSU9EZXZpY2UpOgorCiAyMDEyLTEwLTA5ICBLZWlzaGkg
SGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBhZ2UgcG9wdXAgc2hvdWxk
IGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCBk
NjMyYzIzNDNhMjc5NmU1NTM0ZWMzM2UzNzNkNGQ2Njk0MzJjNmMzLi45Y2ZkNjM4ODViYTY5ZDI2
NTVhNTE5YmRmNDU2Y2JiMzU3NzkyNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBE
aWdpYSBQbGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICAgIENvcHlyaWdodCAoQykg
MjAwNyBTdGFpa29zIENvbXB1dGluZyBTZXJ2aWNlcyBJbmMuICA8aW5mb0BzdGFpa29zLm5ldD4K
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKIApAQCAt
MjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlFOZXR3b3JrUmVw
bHlIYW5kbGVyLmgiCiAKKyNpbmNsdWRlICJCbG9iUmVnaXN0cnlJbXBsLmgiCiAjaW5jbHVkZSAi
SFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKQEAgLTM3LDI4ICszOCwyMSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+Ci0jaW5jbHVkZSA8UURl
YnVnPgotCi0vLyBJbiBRdCA0LjgsIHRoZSBhdHRyaWJ1dGUgZm9yIHNlbmRpbmcgYSByZXF1ZXN0
IHN5bmNocm9ub3VzbHkgd2lsbCBiZSBtYWRlIHB1YmxpYywKLS8vIGZvciBub3csIHVzZSB0aGlz
IGhhY2tpc2ggc29sdXRpb24gZm9yIHNldHRpbmcgdGhlIGludGVybmFsIGF0dHJpYnV0ZS4KLWNv
bnN0IFFOZXR3b3JrUmVxdWVzdDo6QXR0cmlidXRlIGdTeW5jaHJvbm91c05ldHdvcmtSZXF1ZXN0
QXR0cmlidXRlID0gc3RhdGljX2Nhc3Q8UU5ldHdvcmtSZXF1ZXN0OjpBdHRyaWJ1dGU+KFFOZXR3
b3JrUmVxdWVzdDo6SHR0cFBpcGVsaW5pbmdXYXNVc2VkQXR0cmlidXRlICsgNyk7CiAKIHN0YXRp
YyBjb25zdCBpbnQgZ01heFJlZGlyZWN0aW9ucyA9IDEwOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLS8vIFRha2UgYSBkZWVwIGNvcHkgb2YgdGhlIEZvcm1EYXRhRWxlbWVudAogRm9ybURhdGFJ
T0RldmljZTo6Rm9ybURhdGFJT0RldmljZShGb3JtRGF0YSogZGF0YSkKLSAgICA6IG1fZm9ybUVs
ZW1lbnRzKGRhdGEgPyBkYXRhLT5lbGVtZW50cygpIDogVmVjdG9yPEZvcm1EYXRhRWxlbWVudD4o
KSkKLSAgICAsIG1fY3VycmVudEZpbGUoMCkKKyAgICA6IG1fY3VycmVudEZpbGUoMCkKICAgICAs
IG1fY3VycmVudERlbHRhKDApCiAgICAgLCBtX2ZpbGVTaXplKDApCiAgICAgLCBtX2RhdGFTaXpl
KDApCiB7CiAgICAgc2V0T3Blbk1vZGUoRm9ybURhdGFJT0RldmljZTo6UmVhZE9ubHkpOwogCi0g
ICAgaWYgKCFtX2Zvcm1FbGVtZW50cy5pc0VtcHR5KCkgJiYgbV9mb3JtRWxlbWVudHNbMF0ubV90
eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZW5jb2RlZEZpbGUpCi0gICAgICAgIG9wZW5GaWxlRm9y
Q3VycmVudEVsZW1lbnQoKTsKKyAgICBzZXRGb3JtRWxlbWVudHMoZGF0YSk7CisgICAgcHJlcGFy
ZUN1cnJlbnRFbGVtZW50KCk7CiAgICAgY29tcHV0ZVNpemUoKTsKIH0KIApAQCAtNjcsNiArNjEs
NzEgQEAgRm9ybURhdGFJT0RldmljZTo6fkZvcm1EYXRhSU9EZXZpY2UoKQogICAgIGRlbGV0ZSBt
X2N1cnJlbnRGaWxlOwogfQogCisjaWYgRU5BQkxFKEJMT0IpCitzdGF0aWMgdm9pZCBhcHBlbmRC
bG9iUmVzb2x2ZWQoRm9ybURhdGEqIGZvcm1EYXRhLCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAg
UmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEgPSBzdGF0aWNfY2FzdDxCbG9iUmVnaXN0
cnlJbXBsJj4oYmxvYlJlZ2lzdHJ5KCkpLmdldEJsb2JEYXRhRnJvbVVSTChLVVJMKFBhcnNlZFVS
TFN0cmluZywgdXJsKSk7CisgICAgaWYgKGJsb2JEYXRhKSB7CisgICAgICAgIEJsb2JEYXRhSXRl
bUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYmxvYkRhdGEtPml0ZW1zKCkuYmVnaW4oKTsKKyAg
ICAgICAgY29uc3QgQmxvYkRhdGFJdGVtTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlbmQgPSBibG9i
RGF0YS0+aXRlbXMoKS5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ICE9IGl0ZW5kOyArK2l0KSB7
CisgICAgICAgICAgICBjb25zdCBCbG9iRGF0YUl0ZW0mIGJsb2JJdGVtID0gKml0OworICAgICAg
ICAgICAgaWYgKGJsb2JJdGVtLnR5cGUgPT0gQmxvYkRhdGFJdGVtOjpEYXRhKQorICAgICAgICAg
ICAgICAgIGZvcm1EYXRhLT5hcHBlbmREYXRhKGJsb2JJdGVtLmRhdGEtPmRhdGEoKSArIHN0YXRp
Y19jYXN0PGludD4oYmxvYkl0ZW0ub2Zmc2V0KSwgc3RhdGljX2Nhc3Q8aW50PihibG9iSXRlbS5s
ZW5ndGgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGJsb2JJdGVtLnR5cGUgPT0gQmxvYkRhdGFJ
dGVtOjpGaWxlKQorICAgICAgICAgICAgICAgIGZvcm1EYXRhLT5hcHBlbmRGaWxlUmFuZ2UoYmxv
Ykl0ZW0ucGF0aCwgYmxvYkl0ZW0ub2Zmc2V0LCBibG9iSXRlbS5sZW5ndGgsIGJsb2JJdGVtLmV4
cGVjdGVkTW9kaWZpY2F0aW9uVGltZSk7CisgICAgICAgICAgICBlbHNlIGlmIChibG9iSXRlbS50
eXBlID09IEJsb2JEYXRhSXRlbTo6QmxvYikKKyAgICAgICAgICAgICAgICBhcHBlbmRCbG9iUmVz
b2x2ZWQoZm9ybURhdGEsIGJsb2JJdGVtLnVybCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5k
aWYKKwordm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpzZXRGb3JtRWxlbWVudHMoRm9ybURhdGEqIGZv
cm1EYXRhKQoreworICAgIGlmICghZm9ybURhdGEpCisgICAgICAgIHJldHVybjsKKworI2lmIEVO
QUJMRShCTE9CKQorICAgIGJvb2wgaGFzQmxvYiA9IGZhbHNlOworICAgIFZlY3RvcjxGb3JtRGF0
YUVsZW1lbnQ+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZvcm1EYXRhLT5lbGVtZW50cygpLmJlZ2lu
KCk7CisgICAgY29uc3QgVmVjdG9yPEZvcm1EYXRhRWxlbWVudD46OmNvbnN0X2l0ZXJhdG9yIGl0
ZW5kID0gZm9ybURhdGEtPmVsZW1lbnRzKCkuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGl0ZW5k
OyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+bV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZW5j
b2RlZEJsb2IpIHsKKyAgICAgICAgICAgIGhhc0Jsb2IgPSB0cnVlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBSZXNvbHZlIGFsbCBibG9icyBzbyB3ZSBv
bmx5IGhhdmUgZmlsZSBhbmQgZGF0YS4KKyAgICBpZiAoaGFzQmxvYikgeworICAgICAgICBSZWZQ
dHI8Rm9ybURhdGE+IG5ld0Zvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgpOworICAgICAgICBu
ZXdGb3JtRGF0YS0+c2V0QWx3YXlzU3RyZWFtKGZvcm1EYXRhLT5hbHdheXNTdHJlYW0oKSk7Cisg
ICAgICAgIG5ld0Zvcm1EYXRhLT5zZXRJZGVudGlmaWVyKGZvcm1EYXRhLT5pZGVudGlmaWVyKCkp
OworICAgICAgICBpdCA9IGZvcm1EYXRhLT5lbGVtZW50cygpLmJlZ2luKCk7CisgICAgICAgIGZv
ciAoOyBpdCAhPSBpdGVuZDsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgRm9ybURhdGFFbGVt
ZW50JiBlbGVtZW50ID0gKml0OworICAgICAgICAgICAgaWYgKGVsZW1lbnQubV90eXBlID09IEZv
cm1EYXRhRWxlbWVudDo6ZGF0YSkKKyAgICAgICAgICAgICAgICBuZXdGb3JtRGF0YS0+YXBwZW5k
RGF0YShlbGVtZW50Lm1fZGF0YS5kYXRhKCksIGVsZW1lbnQubV9kYXRhLnNpemUoKSk7CisgICAg
ICAgICAgICBlbHNlIGlmIChlbGVtZW50Lm1fdHlwZSA9PSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29k
ZWRGaWxlKQorICAgICAgICAgICAgICAgIG5ld0Zvcm1EYXRhLT5hcHBlbmRGaWxlUmFuZ2UoZWxl
bWVudC5tX2ZpbGVuYW1lLCBlbGVtZW50Lm1fZmlsZVN0YXJ0LCBlbGVtZW50Lm1fZmlsZUxlbmd0
aCwgZWxlbWVudC5tX2V4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUsIGVsZW1lbnQubV9zaG91
bGRHZW5lcmF0ZUZpbGUpOworICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5tX3R5cGUgPT0g
Rm9ybURhdGFFbGVtZW50OjplbmNvZGVkQmxvYikKKyAgICAgICAgICAgICAgICBhcHBlbmRCbG9i
UmVzb2x2ZWQobmV3Rm9ybURhdGEuZ2V0KCksIGVsZW1lbnQubV91cmwpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9Cisg
ICAgICAgIG1fZm9ybUVsZW1lbnRzID0gbmV3Rm9ybURhdGEtPmVsZW1lbnRzKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIC8vIFRha2UgYSBkZWVwIGNvcHkgb2YgdGhl
IEZvcm1EYXRhRWxlbWVudHMKKyAgICBtX2Zvcm1FbGVtZW50cyA9IGZvcm1EYXRhLT5lbGVtZW50
cygpOworfQorCisKIHFpbnQ2NCBGb3JtRGF0YUlPRGV2aWNlOjpjb21wdXRlU2l6ZSgpIAogewog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9mb3JtRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKQEAg
LTc1LDcgKzEzNCwxNCBAQCBxaW50NjQgRm9ybURhdGFJT0RldmljZTo6Y29tcHV0ZVNpemUoKQog
ICAgICAgICAgICAgbV9kYXRhU2l6ZSArPSBlbGVtZW50Lm1fZGF0YS5zaXplKCk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgUUZpbGVJbmZvIGZpKGVsZW1lbnQubV9maWxlbmFtZSk7Cisj
aWYgRU5BQkxFKEJMT0IpCisgICAgICAgICAgICBxaW50NjQgZmlsZUVuZCA9IGZpLnNpemUoKTsK
KyAgICAgICAgICAgIGlmIChlbGVtZW50Lm1fZmlsZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRv
RW5kT2ZGaWxlKQorICAgICAgICAgICAgICAgIGZpbGVFbmQgPSBxTWluPHFpbnQ2ND4oZmkuc2l6
ZSgpLCBlbGVtZW50Lm1fZmlsZVN0YXJ0ICsgZWxlbWVudC5tX2ZpbGVMZW5ndGgpOworICAgICAg
ICAgICAgbV9maWxlU2l6ZSArPSBxTWF4PHFpbnQ2ND4oMCwgZmlsZUVuZCAtIGVsZW1lbnQubV9m
aWxlU3RhcnQpOworI2Vsc2UKICAgICAgICAgICAgIG1fZmlsZVNpemUgKz0gZmkuc2l6ZSgpOwor
I2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fZGF0YVNpemUgKyBtX2ZpbGVT
aXplOwpAQCAtODksMTAgKzE1NSwyNCBAQCB2b2lkIEZvcm1EYXRhSU9EZXZpY2U6Om1vdmVUb05l
eHRFbGVtZW50KCkKIAogICAgIG1fZm9ybUVsZW1lbnRzLnJlbW92ZSgwKTsKIAotICAgIGlmICht
X2Zvcm1FbGVtZW50cy5pc0VtcHR5KCkgfHwgbV9mb3JtRWxlbWVudHNbMF0ubV90eXBlID09IEZv
cm1EYXRhRWxlbWVudDo6ZGF0YSkKKyAgICBwcmVwYXJlQ3VycmVudEVsZW1lbnQoKTsKK30KKwor
dm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpwcmVwYXJlQ3VycmVudEVsZW1lbnQoKQoreworICAgIGlm
IChtX2Zvcm1FbGVtZW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG9wZW5G
aWxlRm9yQ3VycmVudEVsZW1lbnQoKTsKKyAgICBzd2l0Y2ggKG1fZm9ybUVsZW1lbnRzWzBdLm1f
dHlwZSkgeworICAgIGNhc2UgRm9ybURhdGFFbGVtZW50OjpkYXRhOgorICAgICAgICByZXR1cm47
CisgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRGaWxlOgorICAgICAgICBvcGVuRmls
ZUZvckN1cnJlbnRFbGVtZW50KCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIC8vIEF0IHRoaXMgcG9pbnQgZW5jb2RlZEJsb2Igc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVu
IGhhbmRsZWQuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIH0KIAogdm9p
ZCBGb3JtRGF0YUlPRGV2aWNlOjpvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCkKQEAgLTEwMiw2
ICsxODIsMTcgQEAgdm9pZCBGb3JtRGF0YUlPRGV2aWNlOjpvcGVuRmlsZUZvckN1cnJlbnRFbGVt
ZW50KCkKIAogICAgIG1fY3VycmVudEZpbGUtPnNldEZpbGVOYW1lKG1fZm9ybUVsZW1lbnRzWzBd
Lm1fZmlsZW5hbWUpOwogICAgIG1fY3VycmVudEZpbGUtPm9wZW4oUUZpbGU6OlJlYWRPbmx5KTsK
KyNpZiBFTkFCTEUoQkxPQikKKyAgICBpZiAoaXNWYWxpZEZpbGVUaW1lKG1fZm9ybUVsZW1lbnRz
WzBdLm1fZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSkpIHsKKyAgICAgICAgUUZpbGVJbmZv
IGluZm8oKm1fY3VycmVudEZpbGUpOworICAgICAgICBpZiAoIWluZm8uZXhpc3RzKCkgfHwgc3Rh
dGljX2Nhc3Q8dGltZV90PihtX2Zvcm1FbGVtZW50c1swXS5tX2V4cGVjdGVkRmlsZU1vZGlmaWNh
dGlvblRpbWUpIDwgaW5mby5sYXN0TW9kaWZpZWQoKS50b1RpbWVfdCgpKSB7CisgICAgICAgICAg
ICBtb3ZlVG9OZXh0RWxlbWVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorICAgIGlmIChtX2Zvcm1FbGVtZW50c1swXS5tX2ZpbGVTdGFydCkKKyAgICAgICAgbV9j
dXJyZW50RmlsZS0+c2VlayhtX2Zvcm1FbGVtZW50c1swXS5tX2ZpbGVTdGFydCk7CisjZW5kaWYK
IH0KIAogLy8gbV9mb3JtRWxlbWVudHNbMF0gaXMgdGhlIGN1cnJlbnQgaXRlbS4gSWYgdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciBpcwpAQCAtMTI0LDEzICsyMTUsMjMgQEAgcWludDY0IEZvcm1EYXRh
SU9EZXZpY2U6OnJlYWREYXRhKGNoYXIqIGRlc3RpbmF0aW9uLCBxaW50NjQgc2l6ZSkKIAogICAg
ICAgICAgICAgaWYgKG1fY3VycmVudERlbHRhID09IGVsZW1lbnQubV9kYXRhLnNpemUoKSkKICAg
ICAgICAgICAgICAgICBtb3ZlVG9OZXh0RWxlbWVudCgpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgY29uc3QgUUJ5dGVBcnJheSBkYXRhID0gbV9jdXJyZW50RmlsZS0+cmVhZChhdmFp
bGFibGUpOworICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubV90eXBlID09IEZvcm1EYXRhRWxl
bWVudDo6ZW5jb2RlZEZpbGUpIHsKKyAgICAgICAgICAgIHF1aW50NjQgdG9Db3B5ID0gYXZhaWxh
YmxlOworI2lmIEVOQUJMRShCTE9CKQorICAgICAgICAgICAgaWYgKGVsZW1lbnQubV9maWxlTGVu
Z3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpCisgICAgICAgICAgICAgICAgdG9Db3B5
ID0gcU1pbjxxaW50NjQ+KHRvQ29weSwgZWxlbWVudC5tX2ZpbGVMZW5ndGggLSBtX2N1cnJlbnRE
ZWx0YSk7CisjZW5kaWYKKyAgICAgICAgICAgIGNvbnN0IFFCeXRlQXJyYXkgZGF0YSA9IG1fY3Vy
cmVudEZpbGUtPnJlYWQodG9Db3B5KTsKICAgICAgICAgICAgIG1lbWNweShkZXN0aW5hdGlvbitj
b3BpZWQsIGRhdGEuY29uc3REYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fY3Vy
cmVudERlbHRhICs9IGRhdGEuc2l6ZSgpOwogICAgICAgICAgICAgY29waWVkICs9IGRhdGEuc2l6
ZSgpOwogCiAgICAgICAgICAgICBpZiAobV9jdXJyZW50RmlsZS0+YXRFbmQoKSB8fCAhbV9jdXJy
ZW50RmlsZS0+aXNPcGVuKCkpCiAgICAgICAgICAgICAgICAgbW92ZVRvTmV4dEVsZW1lbnQoKTsK
KyNpZiBFTkFCTEUoQkxPQikKKyAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQubV9maWxlTGVu
Z3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUgJiYgbV9jdXJyZW50RGVsdGEgPT0gZWxl
bWVudC5tX2ZpbGVMZW5ndGgpCisgICAgICAgICAgICAgICAgbW92ZVRvTmV4dEVsZW1lbnQoKTsK
KyNlbmRpZgogICAgICAgICB9CiAgICAgfQogCkBAIC02MTIsNyArNzEzLDcgQEAgRm9ybURhdGFJ
T0RldmljZSogUU5ldHdvcmtSZXBseUhhbmRsZXI6OmdldElPRGV2aWNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKIFFOZXR3b3JrUmVwbHkqIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5k
TmV0d29ya1JlcXVlc3QoUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKG1fbG9hZFR5cGUgPT0gU3luY2hyb25v
dXNMb2FkKQotICAgICAgICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKGdTeW5jaHJvbm91c05ldHdv
cmtSZXF1ZXN0QXR0cmlidXRlLCB0cnVlKTsKKyAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0
ZShRTmV0d29ya1JlcXVlc3Q6OlN5bmNocm9ub3VzUmVxdWVzdEF0dHJpYnV0ZSwgdHJ1ZSk7CiAK
ICAgICBpZiAoIW1hbmFnZXIpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCmlu
ZGV4IDQ3NzFlODhhNmQ0ZjI3NmM1YTVhYWVjMWEwZjBlMTZiZjU5Y2QwYmUuLjMzODNjYTZiMjdi
NzQ1MDJhZDhlODE2MWUyYzY1NWFmZDEzOGZhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKQEAgLTE3
OSw5ICsxNzksMTEgQEAgcHJvdGVjdGVkOgogICAgIHFpbnQ2NCB3cml0ZURhdGEoY29uc3QgY2hh
ciosIHFpbnQ2NCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCBzZXRGb3JtRWxlbWVudHMoRm9ybURh
dGEqKTsKICAgICB2b2lkIG1vdmVUb05leHRFbGVtZW50KCk7CiAgICAgcWludDY0IGNvbXB1dGVT
aXplKCk7CiAgICAgdm9pZCBvcGVuRmlsZUZvckN1cnJlbnRFbGVtZW50KCk7CisgICAgdm9pZCBw
cmVwYXJlQ3VycmVudEVsZW1lbnQoKTsKIAogcHJpdmF0ZToKICAgICBWZWN0b3I8Rm9ybURhdGFF
bGVtZW50PiBtX2Zvcm1FbGVtZW50czsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOWJjYTNmYTA3MjRjNGYyNjc4NzAwYTIz
MTk5ZDYzMjg3Y2NmZGE0Li41ODgyMmE4NjFiZDg3MzljYjRmODMyZGY5MTE4NDBmMmUxY2E0ODNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDkgIEFsbGFuIFNhbmRmZWxkIEplbnNl
biAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0XSBVcGxvYWRpbmcgaW1h
Z2VzIHRvIEdvb2dsZSsgdXNpbmcgUXRXZWJLaXQgZG9lcyBub3Qgd29yay4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSm9jZWx5biBUdXJjb3R0ZS4KKworICAgICAgICBVbnNraXAgdGhlIHR3byBCTE9C
IHRlc3RzIHRoYXQgbm93IHBhc3Nlcy4gVGhlIHJlc3Qgb2YgdGhlIEJMT0IgdGVzdHMgdW5mb3J0
dW5hdGVseSBkZXBlbmQKKyAgICAgICAgb24gZmVhdHVyZXMgd2UgZG8gbm90IGhhdmUuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTA5ICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwuY29tPgogCiAg
ICAgICAgIFtFRkxdIFNraXAgYSBmZXcgdGVzdHMgYWZ0ZXIgcjEzMDY5OS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMzMTJlNDlkNjVkMzFjYWVhOGY5NGRm
Mjc3MjhkYTU1NjVmZmIzMDYuLmZjZDcxYjZjMGM4Nzk0ZWFjNWI1YzhmNjlmYzJhNzUyMDlkZDcz
YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTg4LDcg
KzU4OCw2IEBAIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBmYXN0
L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUv
c2VsZWN0ZWQtZmlsZXMtZnJvbS1oaXN0b3J5LXN0YXRlLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwv
YmxvYi9zZW5kLWh5YnJpZC1ibG9iLmh0bWwKLWh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLXNs
aWNlZC1kYXRhLWJsb2IuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YQogaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIApAQCAtNzIy
LDkgKzcyMSw2IEBAIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi90aW1lcnJlZGlyZWN0LWdvYmFjay5o
dG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC5waHAKIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVtZW1iZXItYmFkLXBhc3N3b3JkLmh0bWwKIAotIyBCbG9k
QnVpbGRlciBpcyBub3QgZW5hYmxlZAotaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtZGF0YS1i
bG9iLmh0bWwKLQogIyBuZXcgdGVzdCBpbnRyb2R1Y2VkIGluIHI5NDgyOCwgYnV0IGZhaWxzIG9u
IFF0LgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1ODgKIGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXdpdGgtMTZiaXQtdW5pY29k
ZTQuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>