<?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>106951</bug_id>
          
          <creation_ts>2013-01-15 15:44:02 -0800</creation_ts>
          <short_desc>[chromium] Make new-style page scale work with fixed layout</short_desc>
          <delta_ts>2013-01-17 12:27:55 -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="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>cjhopman</cc>
    
    <cc>danakj</cc>
    
    <cc>jamesr</cc>
    
    <cc>trchen</cc>
    
    <cc>wangxianzhu</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807763</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-15 15:44:02 -0800</bug_when>
    <thetext>[chromium] Make new-style page scale work with fixed layout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807784</commentid>
    <comment_count>1</comment_count>
      <attachid>182864</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-15 15:54:08 -0800</bug_when>
    <thetext>Created attachment 182864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807785</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-15 15:55:36 -0800</bug_when>
    <thetext>Chromium side of this change at: https://codereview.chromium.org/11958004/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808587</commentid>
    <comment_count>3</comment_count>
      <attachid>183016</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-16 11:58:43 -0800</bug_when>
    <thetext>Created attachment 183016
Patch

Change updateLayerTreeViewport layoutViewportSize to include desktop-style scrollbars</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809062</commentid>
    <comment_count>4</comment_count>
      <attachid>183117</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-16 21:33:18 -0800</bug_when>
    <thetext>Created attachment 183117
Patch

Bring back relayout in didChangeContentsSize, still needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809065</commentid>
    <comment_count>5</comment_count>
      <attachid>183117</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 21:42:51 -0800</bug_when>
    <thetext>Comment on attachment 183117
Patch

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

I&apos;m not able to verify every detail of this patch, but this definitely looks like an improvement.

&gt; Source/WebKit/chromium/ChangeLog:13
&gt; +        - dispatchViewportPropertiesDidChange() now works entirely with DIP
&gt; +        pixels instead of physical pixels, and is made compatible with
&gt; +        separating deviceScaleFactor from pageScaleFactor.

Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809620</commentid>
    <comment_count>6</comment_count>
      <attachid>183117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 12:27:51 -0800</bug_when>
    <thetext>Comment on attachment 183117
Patch

Clearing flags on attachment: 183117

Committed r140025: &lt;http://trac.webkit.org/changeset/140025&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809621</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 12:27:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182864</attachid>
            <date>2013-01-15 15:54:08 -0800</date>
            <delta_ts>2013-01-16 11:58:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106951-20130115155110.patch</filename>
            <type>text/plain</type>
            <size>17562</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDhlNDJhZTUxOTEwOTNjNWY5NWRiYzA4NDkzNzFhYmRlNWE2NzhkMWUuLmEwNzk0NWVkZjYwYWMx
YTc5NDI0NDY0YTlhYWFhNTM1MGZhNWQ2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTMtMDEtMTUgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIG5ldy1zdHlsZSBwYWdlIHNjYWxl
IHdvcmsgd2l0aCBmaXhlZCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNjk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMgbm9uLUNTUy10cmFuc2Zvcm0gcGFnZSBzY2FsaW5n
IHdvcmsgd2l0aCBmaXhlZC1sYXlvdXQgbW9kZSwKKyAgICAgICAgaW5jbHVkaW5nIHZpZXdwb3J0
IHRhZyBzdXBwb3J0LgorCisgICAgICAgIC0gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRD
aGFuZ2UoKSBub3cgd29ya3MgZW50aXJlbHkgd2l0aCBESVAKKyAgICAgICAgcGl4ZWxzIGluc3Rl
YWQgb2YgcGh5c2ljYWwgcGl4ZWxzLCBhbmQgaXMgbWFkZSBjb21wYXRpYmxlIHdpdGgKKyAgICAg
ICAgc2VwYXJhdGluZyBkZXZpY2VTY2FsZUZhY3RvciBmcm9tIHBhZ2VTY2FsZUZhY3Rvci4KKwor
ICAgICAgICAtIEluIHRoaXMgbW9kZSwgdGhlICJsYXlvdXQgdmlld3BvcnQiIHNpemUgaW4gdGhl
IHBpbmNoLXpvb20gbW9kZWwgaXMKKyAgICAgICAgbWFkZSBhIGZpcnN0LWNsYXNzIGNvbmNlcHQg
c2VwYXJhdGUgZnJvbSB0aGUgZGV2aWNlIHNpemUuICBUaGlzCisgICAgICAgIGlzIGEgdmlld3Bv
cnQgd2l0aCB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIGRldmljZSBidXQgd2l0aCB0aGUK
KyAgICAgICAgbGF5b3V0IHdpZHRoIG9mIHRoZSBwYWdlLiAgVGhpcyB2aWV3cG9ydCBpcyB1c2Vk
OgorICAgICAgICAgIC0gQXMgRnJhbWVWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QuCisgICAgICAg
ICAgLSBSZXR1cm5lZCBmcm9tIFdlYlZpZXc6OnNpemUoKS4KKyAgICAgICAgICAtIEdpdmVuIHRv
IHRoZSBjb21wb3NpdG9yIGFzIGxheW91dFZpZXdwb3J0U2l6ZS4KKworICAgICAgICAtIG1fZGV2
aWNlU2NhbGVJbkNvbXBvc2l0b3IgaXMgZGVsZXRlZCBhcyBpdCdzIGNsZWFyZXIgdG8gdXNlIHRo
ZQorICAgICAgICBhcHBseURldmljZVNjYWxlSW5Db21wb3NpdG9yIHNldHRpbmcgZGlyZWN0bHku
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2l6ZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpsYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlwU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMy0wMS0xNCAgTWFyayBQaWxn
cmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIEF1
ZGlvRGVzdGluYXRpb25DaHJvbWl1bSBpbnRvIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjRjOGY1MjA4NTZhYTkzY2Ji
NzEzZDI1MTIwY2MxZWE1ZGY1OTUzMS4uN2M1ZGVhZWI5MWM2ZmRiZTIzMTA3MDZkYjU2YjZhYWIw
MzQ1NWFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKQEAgLTk1LDYgKzk1LDcgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJXZWJTZXR0aW5nc0ltcGwuaCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCkBA
IC02MjUsNDcgKzYyNiwzNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgIGlmICghbV93
ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGllbnQo
KSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlZpZXdD
bGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7Ci0gICAgV2ViU2l6ZSBkZXZpY2VT
aXplID0gbV93ZWJWaWV3LT5zaXplKCk7Ci0gICAgLy8gSWYgdGhlIHdpbmRvdyBzaXplIGhhcyBu
b3QgYmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2aWV3cG9ydAotICAgIGlm
ICghZGV2aWNlU2l6ZS53aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCisgICAgSW50U2l6ZSB2
aWV3cG9ydFNpemUgPSBtX3dlYlZpZXctPmRpcFNpemUoKTsKKyAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvciA9IG1fd2ViVmlldy0+Y2xpZW50KCktPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZh
Y3RvcjsKKworICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBoYXMgbm90IGJlZW4gc2V0IHlldCBk
b24ndCBhdHRlbXB0IHRvIHNldCB0aGUgdmlld3BvcnQuCisgICAgaWYgKCF2aWV3cG9ydFNpemUu
d2lkdGgoKSB8fCAhdmlld3BvcnRTaXplLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbnQgdmlld3BvcnRXaWR0aEluRElQcyA9IG1fd2ViVmlldy0+ZGlwU2l6ZSgpLndpZHRoKCk7
Ci0gICAgVmlld3BvcnRBcmd1bWVudHMgZWZmZWN0aXZlVmlld3BvcnRBcmd1bWVudHM7Ci0gICAg
aW50IGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGg7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1
dGVkOwogICAgIGlmIChtX3dlYlZpZXctPnNldHRpbmdzKCktPnZpZXdwb3J0RW5hYmxlZCgpKSB7
Ci0gICAgICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gYXJndW1lbnRzOwotICAgICAg
ICBlZmZlY3RpdmVGYWxsYmFja1dpZHRoID0gc3RkOjptYXgobV93ZWJWaWV3LT5wYWdlKCktPnNl
dHRpbmdzKCktPmxheW91dEZhbGxiYWNrV2lkdGgoKSwgdmlld3BvcnRXaWR0aEluRElQcyk7Cisg
ICAgICAgIGNvbXB1dGVkID0gYXJndW1lbnRzLnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9y
dFNpemUsIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRo
KCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgZm9yIEFuZHJvaWQgV2ViVmll
dyB0byB1c2UgbGF5b3V0IHdpZHRoIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMuCi0gICAg
ICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5kcm9pZCB3aWxsIHN0YXJ0IHVzaW5nIERJUCBw
aXhlbHMgc2l6ZSwKLSAgICAgICAgLy8gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQuCi0gICAgICAgIGVmZmVj
dGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICAgICAgZWZm
ZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHZpZXdwb3J0V2lkdGhJbkRJUHM7CisgICAgICAgIC8vIElm
IHZpZXdwb3J0IHRhZyBpcyBkaXNhYmxlZCBidXQgZml4ZWQgbGF5b3V0IGlzIHN0aWxsIGVuYWJs
ZWQsIChmb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgb24gQW5kcm9pZCBXZWJWaWV3IHdpdGggVXNl
V2lkZVZpZXdwb3J0IGZhbHNlKSwgY29tcHV0ZQorICAgICAgICAvLyBiYXNlZCBvbiB0aGUgZGVm
YXVsdCB2aWV3cG9ydCBhcmd1bWVudHMuCisgICAgICAgIGNvbXB1dGVkID0gVmlld3BvcnRBcmd1
bWVudHMoKS5yZXNvbHZlKHZpZXdwb3J0U2l6ZSwgdmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUu
d2lkdGgoKSk7CiAgICAgfQotICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8gPSBjbGllbnQtPnNj
cmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3RvcjsKLSAgICAvLyBDYWxsIHRoZSBjb21tb24gdmll
d3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KLSAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAotICAg
ICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cywgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCwg
ZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCi0gICAgICAgIGRldmljZVBpeGVs
UmF0aW8sIEludFNpemUoZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQpKTsKLQog
ICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNv
bXB1dGVkKTsKIAogICAgIGlmIChtX3dlYlZpZXctPmlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNj
YWxlKCkpIHsKICAgICAgICAgY29tcHV0ZWQubWF4aW11bVNjYWxlID0gbWF4KGNvbXB1dGVkLm1h
eGltdW1TY2FsZSwgbV93ZWJWaWV3LT5tYXhQYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICBjb21w
dXRlZC51c2VyU2NhbGFibGUgPSB0cnVlOwogICAgIH0KLQotICAgIGludCBsYXlvdXRXaWR0aCA9
IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsKLSAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29t
cHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKLSAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0
U2l6ZShJbnRTaXplKGxheW91dFdpZHRoLCBsYXlvdXRIZWlnaHQpKTsKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+c2V0dGluZ3NJbXBsKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
KSkKKyAgICAgICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IGRldmljZVNjYWxlRmFjdG9yOwog
CiAgICAgYm9vbCBuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSA9ICFtX3dlYlZpZXctPmlzUGFnZVNj
YWxlRmFjdG9yU2V0KCk7Ci0gICAgbV93ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZp
Y2VQaXhlbFJhdGlvKTsKKyAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShmbG9vcmVk
SW50U2l6ZShjb21wdXRlZC5sYXlvdXRTaXplKSk7CisgICAgbV93ZWJWaWV3LT5zZXREZXZpY2VT
Y2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoY29tcHV0ZWQubWluaW11bVNjYWxlLCBjb21wdXRlZC5tYXhpbXVtU2Nh
bGUpOwogICAgIGlmIChuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSkKLSAgICAgICAgbV93ZWJWaWV3
LT5zZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRp
YWxTY2FsZSAqIGRldmljZVBpeGVsUmF0aW8pOworICAgICAgICBtX3dlYlZpZXctPnNldFBhZ2VT
Y2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0ZWQuaW5pdGlhbFNjYWxlKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggZGJiOGM4MTI0ZWY0OGU5MzBjYWNhYjdkNDI5MThkZGViOWY3OTc5Ny4uMjRkNjRjMTMy
NDlhZGUwNjc3YjJiYjQzOWNkZmI0NDMxZWNjY2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNDI4LDcgKzQyOCw2IEBAIFdlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2NvbXBvc2l0b3JDcmVh
dGlvbkZhaWxlZChmYWxzZSkKICAgICAsIG1fcmVjcmVhdGluZ0dyYXBoaWNzQ29udGV4dChmYWxz
ZSkKICAgICAsIG1fY29tcG9zaXRvclN1cmZhY2VSZWFkeShmYWxzZSkKLSAgICAsIG1fZGV2aWNl
U2NhbGVJbkNvbXBvc2l0b3IoMSkKICAgICAsIG1faW5wdXRIYW5kbGVySWRlbnRpZmllcigtMSkK
ICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCkBAIC0xNTczLDYgKzE1NzIsMTQgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiAgICAgICAgIHBsdWdpbkNv
bnRhaW5lci0+d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogfQogCitXZWJTaXplIFdlYlZpZXdJbXBs
OjpzaXplKCkKK3sKKyAgICBpZiAoaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgJiYgc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgIHJl
dHVybiBsYXlvdXRTaXplKCk7CisKKyAgICByZXR1cm4gbV9zaXplOworfQorCiB2b2lkIFdlYlZp
ZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBpZiAobV9zaG91
bGRBdXRvUmVzaXplIHx8IG1fc2l6ZSA9PSBuZXdTaXplKQpAQCAtMTYwMCwxNSArMTYwNywxOCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBp
ZiAoIWFnZW50UHJpdmF0ZSB8fCAhYWdlbnRQcml2YXRlLT5tZXRyaWNzT3ZlcnJpZGRlbigpKSB7
CiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7CiAgICAg
ICAgIGlmICh3ZWJGcmFtZS0+ZnJhbWVWaWV3KCkpCi0gICAgICAgICAgICB3ZWJGcmFtZS0+ZnJh
bWVWaWV3KCktPnJlc2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCk7CisgICAgICAg
ICAgICB3ZWJGcmFtZS0+ZnJhbWVWaWV3KCktPnJlc2l6ZShzaXplKCkpOwogICAgIH0KIAogI2lm
IEVOQUJMRShWSUVXUE9SVCkKICAgICBpZiAoc2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkp
IHsKLSAgICAgICAgLy8gUmVsYXlvdXQgaW1tZWRpYXRlbHkgdG8gb2J0YWluIHRoZSBuZXcgY29u
dGVudCB3aWR0aCwgd2hpY2ggaXMgbmVlZGVkCi0gICAgICAgIC8vIHRvIGNhbGN1bGF0ZSB0aGUg
bWluaW11bSBzY2FsZSBsaW1pdC4KLSAgICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIGlm
ICghc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsK
KyAgICAgICAgICAgIC8vIFJlbGF5b3V0IGltbWVkaWF0ZWx5IHRvIG9idGFpbiB0aGUgbmV3IGNv
bnRlbnQgd2lkdGgsIHdoaWNoIGlzIG5lZWRlZAorICAgICAgICAgICAgLy8gdG8gY2FsY3VsYXRl
IHRoZSBtaW5pbXVtIHNjYWxlIGxpbWl0LgorICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Cisg
ICAgICAgIH0KICAgICAgICAgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOworCiAgICAg
ICAgIC8vIFdoZW4gdGhlIGRldmljZSByb3RhdGVzOgogICAgICAgICAvLyAtIElmIHRoZSBwYWdl
IHdpZHRoIGlzIHVuY2hhbmdlZCwgdGhlbiB6b29tIGJ5IG5ldyB3aWR0aC9vbGQgd2lkdGgKICAg
ICAgICAgLy8gICBzdWNoIGFzIHRvIGtlZXAgdGhlIHNhbWUgY29udGVudCBob3Jpem9udGFsbHkg
b25zY3JlZW4uCkBAIC0xNjI0LDcgKzE2MzQsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUo
Y29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICAgICAgZmxvYXQgc2NhbGVNdWx0aXBsaWVyID0g
dmlld3BvcnRXaWR0aFJhdGlvIC8gZml4ZWRMYXlvdXRXaWR0aFJhdGlvOwogICAgICAgICBpZiAo
c2NhbGVNdWx0aXBsaWVyICE9IDEpIHsKICAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
QXROZXdTY2FsZSA9IG9sZFNjcm9sbE9mZnNldDsKLSAgICAgICAgICAgIHNjcm9sbE9mZnNldEF0
TmV3U2NhbGUuc2NhbGUoc2NhbGVNdWx0aXBsaWVyKTsKKyAgICAgICAgICAgIGlmICghc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgICAg
ICAgICAgc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZS5zY2FsZShzY2FsZU11bHRpcGxpZXIpOwogICAg
ICAgICAgICAgc2V0UGFnZVNjYWxlRmFjdG9yKG9sZFBhZ2VTY2FsZUZhY3RvciAqIHNjYWxlTXVs
dGlwbGllciwgSW50UG9pbnQoc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZSkpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjkwOCwxMiArMjkxOSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbikKICAgICBp
ZiAoIXNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9IDE7CiAKLSAgICBpZiAobV9k
ZXZpY2VTY2FsZUluQ29tcG9zaXRvciAhPSAxKSB7Ci0gICAgICAgIC8vIERvbid0IGFsbG93IHBh
Z2Ugc2NhbGluZyB3aGVuIGNvbXBvc2l0b3Igc2NhbGluZyBpcyBiZWluZyB1c2VkLAotICAgICAg
ICAvLyBhcyB0aGV5IGFyZSBjdXJyZW50bHkgaW5jb21wYXRpYmxlLgotICAgICAgICBBU1NFUlQo
c2NhbGVGYWN0b3IgPT0gMSk7Ci0gICAgfQotCiAgICAgc2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VT
Y2FsZUZhY3RvclRvTGltaXRzKHNjYWxlRmFjdG9yKTsKICAgICBXZWJQb2ludCBzY3JvbGxPZmZz
ZXQ7CiAgICAgaWYgKCFtX3BhZ2UtPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpIHsKQEAgLTI5NDcsMTYgKzI5NTIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIAogICAgIHBhZ2UoKS0+c2V0
RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogCi0gICAgaWYgKG1fbGF5ZXJUcmVlVmll
dyAmJiBtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkp
IHsKLSAgICAgICAgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvciA9IHBhZ2UoKS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKLSAgICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKLSAgICB9Ci0gICAgaWYgKG1fZGV2aWNlU2Nh
bGVJbkNvbXBvc2l0b3IgIT0gMSkgewotICAgICAgICAvLyBEb24ndCBhbGxvdyBwYWdlIHNjYWxp
bmcgd2hlbiBjb21wb3NpdG9yIHNjYWxpbmcgaXMgYmVpbmcgdXNlZCwKLSAgICAgICAgLy8gYXMg
dGhleSBhcmUgY3VycmVudGx5IGluY29tcGF0aWJsZS4gVGhpcyBtZWFucyB0aGUgZGV2aWNlU2Nh
bGUKLSAgICAgICAgLy8gbmVlZHMgdG8gbWF0Y2ggdGhlIG9uZSBpbiB0aGUgY29tcG9zaXRvci4K
LSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yID09IG1fZGV2aWNlU2NhbGVJbkNvbXBvc2l0b3Ip
OwotICAgIH0KKyAgICBpZiAobV9sYXllclRyZWVWaWV3ICYmIG1fd2ViU2V0dGluZ3MtPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgbV9sYXllclRyZWVWaWV3
LT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMDI5LDYgKzMwMjYsMTkg
QEAgc3RhdGljIEludFNpemUgdW5zY2FsZWRDb250ZW50c1NpemUoRnJhbWUqIGZyYW1lKQogICAg
IHJldHVybiByb290LT51bnNjYWxlZERvY3VtZW50UmVjdCgpLnNpemUoKTsKIH0KIAorSW50U2l6
ZSBXZWJWaWV3SW1wbDo6bGF5b3V0U2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0ZpeGVkTGF5
b3V0TW9kZUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG1fc2l6ZTsKKworICAgIEludFNpemUg
Y29udGVudFNpemUgPSB1bnNjYWxlZENvbnRlbnRzU2l6ZShwYWdlKCktPm1haW5GcmFtZSgpKTsK
KyAgICBpZiAoZml4ZWRMYXlvdXRTaXplKCkud2lkdGggPj0gY29udGVudFNpemUud2lkdGgoKSkK
KyAgICAgICAgcmV0dXJuIGZpeGVkTGF5b3V0U2l6ZSgpOworCisgICAgZmxvYXQgYXNwZWN0UmF0
aW8gPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9zaXplLmhlaWdodCkgLyBtX3NpemUud2lkdGg7Cisg
ICAgcmV0dXJuIEludFNpemUoY29udGVudFNpemUud2lkdGgoKSwgY29udGVudFNpemUud2lkdGgo
KSAqIGFzcGVjdFJhdGlvKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNjYWxl
RmFjdG9yID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09IC0x
KQpAQCAtMzAzNywxMCArMzA0NywxOCBAQCBib29sIFdlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNj
YWxlRmFjdG9yTGltaXRzKCkKICAgICBpZiAoIW1haW5GcmFtZSgpIHx8ICFwYWdlKCkgfHwgIXBh
Z2UoKS0+bWFpbkZyYW1lKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluKG1h
eChtX3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFjdG9y
KSwgbWF4UGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7Ci0gICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yID0gbWF4KG1p
bihtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFnZVNjYWxlRmFjdG9y
KSwgbWluUGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFnZSgpLT5tYWluRnJh
bWUoKS0+dmlldygpOwogCi0gICAgaW50IHZpZXdXaWR0aE5vdEluY2x1ZGluZ1Njcm9sbGJhcnMg
PSBwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPnZpc2libGVDb250ZW50UmVjdChmYWxzZSku
d2lkdGgoKTsKKyAgICBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IgPSBtaW4obWF4KG1fcGFnZURl
ZmluZWRNaW5pbXVtUGFnZVNjYWxlRmFjdG9yLCBtaW5QYWdlU2NhbGVGYWN0b3IpLCBtYXhQYWdl
U2NhbGVGYWN0b3IpOworICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvciA9IG1heChtaW4obV9w
YWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IsIG1heFBhZ2VTY2FsZUZhY3RvciksIG1p
blBhZ2VTY2FsZUZhY3Rvcik7CisgICAgaWYgKCFtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsKKyAgICAgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFj
dG9yICo9IGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZh
Y3RvciAqPSBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgIH0KKworICAgIGludCB2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzID0gbV9zaXplLndpZHRoOworICAgIGlmICh2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzICYmIHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZp
ZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICB2
aWV3V2lkdGhOb3RJbmNsdWRpbmdTY3JvbGxiYXJzIC09IHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFy
KCktPndpZHRoKCk7CiAgICAgaW50IHVuc2NhbGVkQ29udGVudHNXaWR0aCA9IHVuc2NhbGVkQ29u
dGVudHNTaXplKHBhZ2UoKS0+bWFpbkZyYW1lKCkpLndpZHRoKCk7CiAgICAgaWYgKHZpZXdXaWR0
aE5vdEluY2x1ZGluZ1Njcm9sbGJhcnMgJiYgdW5zY2FsZWRDb250ZW50c1dpZHRoKSB7CiAgICAg
ICAgIC8vIExpbWl0IHBhZ2Ugc2NhbGluZyBkb3duIHRvIHRoZSBkb2N1bWVudCB3aWR0aC4KQEAg
LTMxMzksMTMgKzMxNTcsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXpl
KGNvbnN0IFdlYlNpemUmIGxheW91dFNpemUpCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Rml4ZWRM
YXlvdXRTaXplKGxheW91dFNpemUpOwogfQogCi1XZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlld0lt
cGw6OmRpcFNpemUoKSBjb25zdAorV2ViQ29yZTo6SW50U2l6ZSBXZWJWaWV3SW1wbDo6ZGlwU2l6
ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFwYWdlKCkgfHwgbV93ZWJTZXR0aW5ncy0+YXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQotICAgICAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Ci0KLSAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciA9IHBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCAvIGRldmljZVNjYWxlRmFjdG9yLCBtX3NpemUuaGVpZ2h0IC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIEludFNpemUgZGlwU2l6ZSA9IG1fc2l6ZTsKKyAgICBpZiAoIW1fd2Vi
U2V0dGluZ3MtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAg
ZGlwU2l6ZS5zY2FsZSgxIC8gbV9jbGllbnQtPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgcmV0dXJuIGRpcFNpemU7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1N
ZWRpYVBsYXllckFjdGlvbihjb25zdCBXZWJNZWRpYVBsYXllckFjdGlvbiYgYWN0aW9uLApAQCAt
MzY5Myw2ICszNzEwLDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6
ZSgpCiAgICAgaWYgKCFzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXco
KTsKKworICAgIGlmIChzZXR0aW5nc0ltcGwoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSAmJiB2aWV3ICYmIHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlKS53aWR0aCgp
ICE9IGxheW91dFNpemUoKS53aWR0aCgpKQorICAgICAgICB2aWV3LT5yZXNpemUobGF5b3V0U2l6
ZSgpKTsKKwogICAgIGJvb2wgZGlkQ2hhbmdlU2NhbGUgPSBmYWxzZTsKICAgICBpZiAoIWlzUGFn
ZVNjYWxlRmFjdG9yU2V0KCkpIHsKICAgICAgICAgLy8gSWYgdGhlIHZpZXdwb3J0IHRhZyBmYWls
ZWQgdG8gYmUgcHJvY2Vzc2VkIGVhcmxpZXIsIHdlIG5lZWQKQEAgLTM3MDMsMTMgKzM3MjUsMTUg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKCkKICAgICB9IGVsc2UK
ICAgICAgICAgZGlkQ2hhbmdlU2NhbGUgPSBjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGltaXRzKCk7
CiAKKyAgICBpZiAoc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghZGlkQ2hhbmdlU2NhbGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpOwog
ICAgIGlmICh2aWV3ICYmIHZpZXctPm5lZWRzTGF5b3V0KCkpCiAgICAgICAgIHZpZXctPmxheW91
dCgpOwogI2VuZGlmCkBAIC00MDQxLDEyICs0MDY1LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0
SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICAgICAg
bV9vd25zTGF5ZXJUcmVlVmlldyA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fbGF5
ZXJUcmVlVmlldykgewotICAgICAgICAgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmFwcGx5RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSAmJiBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkg
IT0gMSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChwYWdlKCktPmRldmljZVNjYWxlRmFjdG9y
KCkpOwotCi0gICAgICAgICAgICAgICAgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvciA9IHBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgICAgICAgICBzZXREZXZpY2VTY2FsZUZh
Y3RvcihtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KCkgJiYgcGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IDEpCisgICAgICAgICAgICAgICAg
c2V0RGV2aWNlU2NhbGVGYWN0b3IocGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAg
ICAgICAgICAgYm9vbCB2aXNpYmxlID0gcGFnZSgpLT52aXNpYmlsaXR5U3RhdGUoKSA9PSBQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0
VmlzaWJsZSh2aXNpYmxlKTsKQEAgLTQxODUsMTIgKzQyMDUsMTEgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQoKQogCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXpl
KCksIHNjcm9sbCwgdmlldy0+c2Nyb2xsT3JpZ2luKCkpOwogCi0gICAgSW50U2l6ZSBsYXlvdXRW
aWV3cG9ydFNpemUgPSBzaXplKCk7Ci0gICAgSW50U2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUgPSBz
aXplKCk7CisgICAgSW50U2l6ZSBsYXlvdXRWaWV3cG9ydFNpemUgPSB2aWV3LT52aXNpYmxlQ29u
dGVudFJlY3QoZmFsc2UpLnNpemUoKTsKKyAgICBJbnRTaXplIGRldmljZVZpZXdwb3J0U2l6ZSA9
IG1fc2l6ZTsKKyAgICBpZiAobV93ZWJTZXR0aW5ncy0+YXBwbHlEZXZpY2VTY2FsZUZhY3Rvcklu
Q29tcG9zaXRvcigpKQorICAgICAgICBkZXZpY2VWaWV3cG9ydFNpemUuc2NhbGUoZGV2aWNlU2Nh
bGVGYWN0b3IoKSk7CiAKLSAgICAvLyBUaGlzIHBhcnQgb2YgdGhlIGRldmljZVNjYWxlIHdpbGwg
YmUgdXNlZCB0byBzY2FsZSB0aGUgY29udGVudHMgb2YKLSAgICAvLyB0aGUgTkNDSCdzIEdyYXBo
aWNzTGF5ZXIuCi0gICAgZGV2aWNlVmlld3BvcnRTaXplLnNjYWxlKG1fZGV2aWNlU2NhbGVJbkNv
bXBvc2l0b3IpOwogICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0Vmlld3BvcnRTaXplKGxheW91dFZp
ZXdwb3J0U2l6ZSwgZGV2aWNlVmlld3BvcnRTaXplKTsKICAgICBtX2xheWVyVHJlZVZpZXctPnNl
dFBhZ2VTY2FsZUZhY3RvckFuZExpbWl0cyhwYWdlU2NhbGVGYWN0b3IoKSwgbV9taW5pbXVtUGFn
ZVNjYWxlRmFjdG9yLCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggY2VhNTc0OGM1YTg4N2ExZjU2OGIzZWQ1
ZWQxOGFhMjcwMDY5NTVmMS4uNDcyMjg4ODdlMDUwNmYyMTlkOTk5YzA0MTlkYTNkYTdiZTU5ZDIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHVibGljOgogCiAgICAgLy8gV2ViV2lkZ2V0IG1ldGhvZHM6CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlKCk7Ci0gICAgdmlydHVhbCBXZWJTaXplIHNpemUoKSB7IHJldHVybiBtX3Np
emU7IH0KKyAgICB2aXJ0dWFsIFdlYlNpemUgc2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U3RhcnRMaXZlUmVzaXplKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShjb25zdCBXZWJTaXpl
Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCk7CkBAIC0yNDIsNyArMjQy
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVGaXhlZExheW91dE1vZGUoYm9v
bCBlbmFibGUpOwogICAgIHZpcnR1YWwgV2ViU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0IFdlYlNpemUmKTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0U2l6ZSBkaXBTaXplKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIGVuYWJsZUF1dG9SZXNpemVNb2RlKAogICAgICAgICBjb25zdCBXZWJTaXplJiBtaW5T
aXplLAogICAgICAgICBjb25zdCBXZWJTaXplJiBtYXhTaXplKTsKQEAgLTQ1OSw2ICs0NTgsOSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX21heEF1dG9TaXplOwogICAgIH0KIAorICAgIFdl
YkNvcmU6OkludFNpemUgZGlwU2l6ZSgpIGNvbnN0OworICAgIFdlYkNvcmU6OkludFNpemUgbGF5
b3V0U2l6ZSgpIGNvbnN0OworCiAgICAgLy8gU2V0IHRoZSBkaXNwb3NpdGlvbiBmb3IgaG93IHRo
aXMgd2VidmlldyBpcyB0byBiZSBpbml0aWFsbHkgc2hvd24uCiAgICAgdm9pZCBzZXRJbml0aWFs
TmF2aWdhdGlvblBvbGljeShXZWJOYXZpZ2F0aW9uUG9saWN5IHBvbGljeSkKICAgICB7CkBAIC04
NDksNyArODUxLDYgQEAgcHJpdmF0ZToKICAgICAvLyBJZiB0cnVlLCB0aGUgZ3JhcGhpY3MgY29u
dGV4dCBpcyBiZWluZyByZXN0b3JlZC4KICAgICBib29sIG1fcmVjcmVhdGluZ0dyYXBoaWNzQ29u
dGV4dDsKICAgICBib29sIG1fY29tcG9zaXRvclN1cmZhY2VSZWFkeTsKLSAgICBmbG9hdCBtX2Rl
dmljZVNjYWxlSW5Db21wb3NpdG9yOwogICAgIGludCBtX2lucHV0SGFuZGxlcklkZW50aWZpZXI7
CiAjZW5kaWYKICAgICBzdGF0aWMgY29uc3QgV2ViSW5wdXRFdmVudCogbV9jdXJyZW50SW5wdXRF
dmVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183016</attachid>
            <date>2013-01-16 11:58:43 -0800</date>
            <delta_ts>2013-01-16 21:33:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106951-20130116115545.patch</filename>
            <type>text/plain</type>
            <size>17542</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDhlNDJhZTUxOTEwOTNjNWY5NWRiYzA4NDkzNzFhYmRlNWE2NzhkMWUuLmEwNzk0NWVkZjYwYWMx
YTc5NDI0NDY0YTlhYWFhNTM1MGZhNWQ2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTMtMDEtMTUgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIG5ldy1zdHlsZSBwYWdlIHNjYWxl
IHdvcmsgd2l0aCBmaXhlZCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNjk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMgbm9uLUNTUy10cmFuc2Zvcm0gcGFnZSBzY2FsaW5n
IHdvcmsgd2l0aCBmaXhlZC1sYXlvdXQgbW9kZSwKKyAgICAgICAgaW5jbHVkaW5nIHZpZXdwb3J0
IHRhZyBzdXBwb3J0LgorCisgICAgICAgIC0gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRD
aGFuZ2UoKSBub3cgd29ya3MgZW50aXJlbHkgd2l0aCBESVAKKyAgICAgICAgcGl4ZWxzIGluc3Rl
YWQgb2YgcGh5c2ljYWwgcGl4ZWxzLCBhbmQgaXMgbWFkZSBjb21wYXRpYmxlIHdpdGgKKyAgICAg
ICAgc2VwYXJhdGluZyBkZXZpY2VTY2FsZUZhY3RvciBmcm9tIHBhZ2VTY2FsZUZhY3Rvci4KKwor
ICAgICAgICAtIEluIHRoaXMgbW9kZSwgdGhlICJsYXlvdXQgdmlld3BvcnQiIHNpemUgaW4gdGhl
IHBpbmNoLXpvb20gbW9kZWwgaXMKKyAgICAgICAgbWFkZSBhIGZpcnN0LWNsYXNzIGNvbmNlcHQg
c2VwYXJhdGUgZnJvbSB0aGUgZGV2aWNlIHNpemUuICBUaGlzCisgICAgICAgIGlzIGEgdmlld3Bv
cnQgd2l0aCB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIGRldmljZSBidXQgd2l0aCB0aGUK
KyAgICAgICAgbGF5b3V0IHdpZHRoIG9mIHRoZSBwYWdlLiAgVGhpcyB2aWV3cG9ydCBpcyB1c2Vk
OgorICAgICAgICAgIC0gQXMgRnJhbWVWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QuCisgICAgICAg
ICAgLSBSZXR1cm5lZCBmcm9tIFdlYlZpZXc6OnNpemUoKS4KKyAgICAgICAgICAtIEdpdmVuIHRv
IHRoZSBjb21wb3NpdG9yIGFzIGxheW91dFZpZXdwb3J0U2l6ZS4KKworICAgICAgICAtIG1fZGV2
aWNlU2NhbGVJbkNvbXBvc2l0b3IgaXMgZGVsZXRlZCBhcyBpdCdzIGNsZWFyZXIgdG8gdXNlIHRo
ZQorICAgICAgICBhcHBseURldmljZVNjYWxlSW5Db21wb3NpdG9yIHNldHRpbmcgZGlyZWN0bHku
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2l6ZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpsYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlwU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMy0wMS0xNCAgTWFyayBQaWxn
cmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIEF1
ZGlvRGVzdGluYXRpb25DaHJvbWl1bSBpbnRvIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjRjOGY1MjA4NTZhYTkzY2Ji
NzEzZDI1MTIwY2MxZWE1ZGY1OTUzMS4uN2M1ZGVhZWI5MWM2ZmRiZTIzMTA3MDZkYjU2YjZhYWIw
MzQ1NWFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKQEAgLTk1LDYgKzk1LDcgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJXZWJTZXR0aW5nc0ltcGwuaCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCkBA
IC02MjUsNDcgKzYyNiwzNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgIGlmICghbV93
ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGllbnQo
KSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlZpZXdD
bGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7Ci0gICAgV2ViU2l6ZSBkZXZpY2VT
aXplID0gbV93ZWJWaWV3LT5zaXplKCk7Ci0gICAgLy8gSWYgdGhlIHdpbmRvdyBzaXplIGhhcyBu
b3QgYmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2aWV3cG9ydAotICAgIGlm
ICghZGV2aWNlU2l6ZS53aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCisgICAgSW50U2l6ZSB2
aWV3cG9ydFNpemUgPSBtX3dlYlZpZXctPmRpcFNpemUoKTsKKyAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvciA9IG1fd2ViVmlldy0+Y2xpZW50KCktPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZh
Y3RvcjsKKworICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBoYXMgbm90IGJlZW4gc2V0IHlldCBk
b24ndCBhdHRlbXB0IHRvIHNldCB0aGUgdmlld3BvcnQuCisgICAgaWYgKCF2aWV3cG9ydFNpemUu
d2lkdGgoKSB8fCAhdmlld3BvcnRTaXplLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbnQgdmlld3BvcnRXaWR0aEluRElQcyA9IG1fd2ViVmlldy0+ZGlwU2l6ZSgpLndpZHRoKCk7
Ci0gICAgVmlld3BvcnRBcmd1bWVudHMgZWZmZWN0aXZlVmlld3BvcnRBcmd1bWVudHM7Ci0gICAg
aW50IGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGg7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1
dGVkOwogICAgIGlmIChtX3dlYlZpZXctPnNldHRpbmdzKCktPnZpZXdwb3J0RW5hYmxlZCgpKSB7
Ci0gICAgICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gYXJndW1lbnRzOwotICAgICAg
ICBlZmZlY3RpdmVGYWxsYmFja1dpZHRoID0gc3RkOjptYXgobV93ZWJWaWV3LT5wYWdlKCktPnNl
dHRpbmdzKCktPmxheW91dEZhbGxiYWNrV2lkdGgoKSwgdmlld3BvcnRXaWR0aEluRElQcyk7Cisg
ICAgICAgIGNvbXB1dGVkID0gYXJndW1lbnRzLnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9y
dFNpemUsIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRo
KCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgZm9yIEFuZHJvaWQgV2ViVmll
dyB0byB1c2UgbGF5b3V0IHdpZHRoIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMuCi0gICAg
ICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5kcm9pZCB3aWxsIHN0YXJ0IHVzaW5nIERJUCBw
aXhlbHMgc2l6ZSwKLSAgICAgICAgLy8gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQuCi0gICAgICAgIGVmZmVj
dGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICAgICAgZWZm
ZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHZpZXdwb3J0V2lkdGhJbkRJUHM7CisgICAgICAgIC8vIElm
IHZpZXdwb3J0IHRhZyBpcyBkaXNhYmxlZCBidXQgZml4ZWQgbGF5b3V0IGlzIHN0aWxsIGVuYWJs
ZWQsIChmb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgb24gQW5kcm9pZCBXZWJWaWV3IHdpdGggVXNl
V2lkZVZpZXdwb3J0IGZhbHNlKSwgY29tcHV0ZQorICAgICAgICAvLyBiYXNlZCBvbiB0aGUgZGVm
YXVsdCB2aWV3cG9ydCBhcmd1bWVudHMuCisgICAgICAgIGNvbXB1dGVkID0gVmlld3BvcnRBcmd1
bWVudHMoKS5yZXNvbHZlKHZpZXdwb3J0U2l6ZSwgdmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUu
d2lkdGgoKSk7CiAgICAgfQotICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8gPSBjbGllbnQtPnNj
cmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3RvcjsKLSAgICAvLyBDYWxsIHRoZSBjb21tb24gdmll
d3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KLSAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAotICAg
ICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cywgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCwg
ZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCi0gICAgICAgIGRldmljZVBpeGVs
UmF0aW8sIEludFNpemUoZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQpKTsKLQog
ICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNv
bXB1dGVkKTsKIAogICAgIGlmIChtX3dlYlZpZXctPmlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNj
YWxlKCkpIHsKICAgICAgICAgY29tcHV0ZWQubWF4aW11bVNjYWxlID0gbWF4KGNvbXB1dGVkLm1h
eGltdW1TY2FsZSwgbV93ZWJWaWV3LT5tYXhQYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICBjb21w
dXRlZC51c2VyU2NhbGFibGUgPSB0cnVlOwogICAgIH0KLQotICAgIGludCBsYXlvdXRXaWR0aCA9
IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsKLSAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29t
cHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKLSAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0
U2l6ZShJbnRTaXplKGxheW91dFdpZHRoLCBsYXlvdXRIZWlnaHQpKTsKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+c2V0dGluZ3NJbXBsKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
KSkKKyAgICAgICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IGRldmljZVNjYWxlRmFjdG9yOwog
CiAgICAgYm9vbCBuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSA9ICFtX3dlYlZpZXctPmlzUGFnZVNj
YWxlRmFjdG9yU2V0KCk7Ci0gICAgbV93ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZp
Y2VQaXhlbFJhdGlvKTsKKyAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShmbG9vcmVk
SW50U2l6ZShjb21wdXRlZC5sYXlvdXRTaXplKSk7CisgICAgbV93ZWJWaWV3LT5zZXREZXZpY2VT
Y2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoY29tcHV0ZWQubWluaW11bVNjYWxlLCBjb21wdXRlZC5tYXhpbXVtU2Nh
bGUpOwogICAgIGlmIChuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSkKLSAgICAgICAgbV93ZWJWaWV3
LT5zZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRp
YWxTY2FsZSAqIGRldmljZVBpeGVsUmF0aW8pOworICAgICAgICBtX3dlYlZpZXctPnNldFBhZ2VT
Y2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0ZWQuaW5pdGlhbFNjYWxlKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggZGJiOGM4MTI0ZWY0OGU5MzBjYWNhYjdkNDI5MThkZGViOWY3OTc5Ny4uNGE2YTA5MzU4
NGM5ZjE5N2VkZmY0ZGM4N2M5OWI1OWQwMGUzZDM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNDI4LDcgKzQyOCw2IEBAIFdlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2NvbXBvc2l0b3JDcmVh
dGlvbkZhaWxlZChmYWxzZSkKICAgICAsIG1fcmVjcmVhdGluZ0dyYXBoaWNzQ29udGV4dChmYWxz
ZSkKICAgICAsIG1fY29tcG9zaXRvclN1cmZhY2VSZWFkeShmYWxzZSkKLSAgICAsIG1fZGV2aWNl
U2NhbGVJbkNvbXBvc2l0b3IoMSkKICAgICAsIG1faW5wdXRIYW5kbGVySWRlbnRpZmllcigtMSkK
ICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCkBAIC0xNTczLDYgKzE1NzIsMTQgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiAgICAgICAgIHBsdWdpbkNv
bnRhaW5lci0+d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogfQogCitXZWJTaXplIFdlYlZpZXdJbXBs
OjpzaXplKCkKK3sKKyAgICBpZiAoaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgJiYgc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgIHJl
dHVybiBsYXlvdXRTaXplKCk7CisKKyAgICByZXR1cm4gbV9zaXplOworfQorCiB2b2lkIFdlYlZp
ZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBpZiAobV9zaG91
bGRBdXRvUmVzaXplIHx8IG1fc2l6ZSA9PSBuZXdTaXplKQpAQCAtMTYwMCwxNSArMTYwNywxOCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBp
ZiAoIWFnZW50UHJpdmF0ZSB8fCAhYWdlbnRQcml2YXRlLT5tZXRyaWNzT3ZlcnJpZGRlbigpKSB7
CiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7CiAgICAg
ICAgIGlmICh3ZWJGcmFtZS0+ZnJhbWVWaWV3KCkpCi0gICAgICAgICAgICB3ZWJGcmFtZS0+ZnJh
bWVWaWV3KCktPnJlc2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCk7CisgICAgICAg
ICAgICB3ZWJGcmFtZS0+ZnJhbWVWaWV3KCktPnJlc2l6ZShzaXplKCkpOwogICAgIH0KIAogI2lm
IEVOQUJMRShWSUVXUE9SVCkKICAgICBpZiAoc2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkp
IHsKLSAgICAgICAgLy8gUmVsYXlvdXQgaW1tZWRpYXRlbHkgdG8gb2J0YWluIHRoZSBuZXcgY29u
dGVudCB3aWR0aCwgd2hpY2ggaXMgbmVlZGVkCi0gICAgICAgIC8vIHRvIGNhbGN1bGF0ZSB0aGUg
bWluaW11bSBzY2FsZSBsaW1pdC4KLSAgICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIGlm
ICghc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsK
KyAgICAgICAgICAgIC8vIFJlbGF5b3V0IGltbWVkaWF0ZWx5IHRvIG9idGFpbiB0aGUgbmV3IGNv
bnRlbnQgd2lkdGgsIHdoaWNoIGlzIG5lZWRlZAorICAgICAgICAgICAgLy8gdG8gY2FsY3VsYXRl
IHRoZSBtaW5pbXVtIHNjYWxlIGxpbWl0LgorICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Cisg
ICAgICAgIH0KICAgICAgICAgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOworCiAgICAg
ICAgIC8vIFdoZW4gdGhlIGRldmljZSByb3RhdGVzOgogICAgICAgICAvLyAtIElmIHRoZSBwYWdl
IHdpZHRoIGlzIHVuY2hhbmdlZCwgdGhlbiB6b29tIGJ5IG5ldyB3aWR0aC9vbGQgd2lkdGgKICAg
ICAgICAgLy8gICBzdWNoIGFzIHRvIGtlZXAgdGhlIHNhbWUgY29udGVudCBob3Jpem9udGFsbHkg
b25zY3JlZW4uCkBAIC0xNjI0LDcgKzE2MzQsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUo
Y29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICAgICAgZmxvYXQgc2NhbGVNdWx0aXBsaWVyID0g
dmlld3BvcnRXaWR0aFJhdGlvIC8gZml4ZWRMYXlvdXRXaWR0aFJhdGlvOwogICAgICAgICBpZiAo
c2NhbGVNdWx0aXBsaWVyICE9IDEpIHsKICAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
QXROZXdTY2FsZSA9IG9sZFNjcm9sbE9mZnNldDsKLSAgICAgICAgICAgIHNjcm9sbE9mZnNldEF0
TmV3U2NhbGUuc2NhbGUoc2NhbGVNdWx0aXBsaWVyKTsKKyAgICAgICAgICAgIGlmICghc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgICAg
ICAgICAgc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZS5zY2FsZShzY2FsZU11bHRpcGxpZXIpOwogICAg
ICAgICAgICAgc2V0UGFnZVNjYWxlRmFjdG9yKG9sZFBhZ2VTY2FsZUZhY3RvciAqIHNjYWxlTXVs
dGlwbGllciwgSW50UG9pbnQoc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZSkpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjkwOCwxMiArMjkxOSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbikKICAgICBp
ZiAoIXNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9IDE7CiAKLSAgICBpZiAobV9k
ZXZpY2VTY2FsZUluQ29tcG9zaXRvciAhPSAxKSB7Ci0gICAgICAgIC8vIERvbid0IGFsbG93IHBh
Z2Ugc2NhbGluZyB3aGVuIGNvbXBvc2l0b3Igc2NhbGluZyBpcyBiZWluZyB1c2VkLAotICAgICAg
ICAvLyBhcyB0aGV5IGFyZSBjdXJyZW50bHkgaW5jb21wYXRpYmxlLgotICAgICAgICBBU1NFUlQo
c2NhbGVGYWN0b3IgPT0gMSk7Ci0gICAgfQotCiAgICAgc2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VT
Y2FsZUZhY3RvclRvTGltaXRzKHNjYWxlRmFjdG9yKTsKICAgICBXZWJQb2ludCBzY3JvbGxPZmZz
ZXQ7CiAgICAgaWYgKCFtX3BhZ2UtPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpIHsKQEAgLTI5NDcsMTYgKzI5NTIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIAogICAgIHBhZ2UoKS0+c2V0
RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogCi0gICAgaWYgKG1fbGF5ZXJUcmVlVmll
dyAmJiBtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkp
IHsKLSAgICAgICAgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvciA9IHBhZ2UoKS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKLSAgICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKLSAgICB9Ci0gICAgaWYgKG1fZGV2aWNlU2Nh
bGVJbkNvbXBvc2l0b3IgIT0gMSkgewotICAgICAgICAvLyBEb24ndCBhbGxvdyBwYWdlIHNjYWxp
bmcgd2hlbiBjb21wb3NpdG9yIHNjYWxpbmcgaXMgYmVpbmcgdXNlZCwKLSAgICAgICAgLy8gYXMg
dGhleSBhcmUgY3VycmVudGx5IGluY29tcGF0aWJsZS4gVGhpcyBtZWFucyB0aGUgZGV2aWNlU2Nh
bGUKLSAgICAgICAgLy8gbmVlZHMgdG8gbWF0Y2ggdGhlIG9uZSBpbiB0aGUgY29tcG9zaXRvci4K
LSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yID09IG1fZGV2aWNlU2NhbGVJbkNvbXBvc2l0b3Ip
OwotICAgIH0KKyAgICBpZiAobV9sYXllclRyZWVWaWV3ICYmIG1fd2ViU2V0dGluZ3MtPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgbV9sYXllclRyZWVWaWV3
LT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMDI5LDYgKzMwMjYsMTkg
QEAgc3RhdGljIEludFNpemUgdW5zY2FsZWRDb250ZW50c1NpemUoRnJhbWUqIGZyYW1lKQogICAg
IHJldHVybiByb290LT51bnNjYWxlZERvY3VtZW50UmVjdCgpLnNpemUoKTsKIH0KIAorSW50U2l6
ZSBXZWJWaWV3SW1wbDo6bGF5b3V0U2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0ZpeGVkTGF5
b3V0TW9kZUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG1fc2l6ZTsKKworICAgIEludFNpemUg
Y29udGVudFNpemUgPSB1bnNjYWxlZENvbnRlbnRzU2l6ZShwYWdlKCktPm1haW5GcmFtZSgpKTsK
KyAgICBpZiAoZml4ZWRMYXlvdXRTaXplKCkud2lkdGggPj0gY29udGVudFNpemUud2lkdGgoKSkK
KyAgICAgICAgcmV0dXJuIGZpeGVkTGF5b3V0U2l6ZSgpOworCisgICAgZmxvYXQgYXNwZWN0UmF0
aW8gPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9zaXplLmhlaWdodCkgLyBtX3NpemUud2lkdGg7Cisg
ICAgcmV0dXJuIEludFNpemUoY29udGVudFNpemUud2lkdGgoKSwgY29udGVudFNpemUud2lkdGgo
KSAqIGFzcGVjdFJhdGlvKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNjYWxl
RmFjdG9yID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09IC0x
KQpAQCAtMzAzNywxMCArMzA0NywxOCBAQCBib29sIFdlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNj
YWxlRmFjdG9yTGltaXRzKCkKICAgICBpZiAoIW1haW5GcmFtZSgpIHx8ICFwYWdlKCkgfHwgIXBh
Z2UoKS0+bWFpbkZyYW1lKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluKG1h
eChtX3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFjdG9y
KSwgbWF4UGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7Ci0gICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yID0gbWF4KG1p
bihtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFnZVNjYWxlRmFjdG9y
KSwgbWluUGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFnZSgpLT5tYWluRnJh
bWUoKS0+dmlldygpOwogCi0gICAgaW50IHZpZXdXaWR0aE5vdEluY2x1ZGluZ1Njcm9sbGJhcnMg
PSBwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPnZpc2libGVDb250ZW50UmVjdChmYWxzZSku
d2lkdGgoKTsKKyAgICBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IgPSBtaW4obWF4KG1fcGFnZURl
ZmluZWRNaW5pbXVtUGFnZVNjYWxlRmFjdG9yLCBtaW5QYWdlU2NhbGVGYWN0b3IpLCBtYXhQYWdl
U2NhbGVGYWN0b3IpOworICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvciA9IG1heChtaW4obV9w
YWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IsIG1heFBhZ2VTY2FsZUZhY3RvciksIG1p
blBhZ2VTY2FsZUZhY3Rvcik7CisgICAgaWYgKCFtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsKKyAgICAgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFj
dG9yICo9IGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZh
Y3RvciAqPSBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgIH0KKworICAgIGludCB2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzID0gbV9zaXplLndpZHRoOworICAgIGlmICh2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzICYmIHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZp
ZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICB2
aWV3V2lkdGhOb3RJbmNsdWRpbmdTY3JvbGxiYXJzIC09IHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFy
KCktPndpZHRoKCk7CiAgICAgaW50IHVuc2NhbGVkQ29udGVudHNXaWR0aCA9IHVuc2NhbGVkQ29u
dGVudHNTaXplKHBhZ2UoKS0+bWFpbkZyYW1lKCkpLndpZHRoKCk7CiAgICAgaWYgKHZpZXdXaWR0
aE5vdEluY2x1ZGluZ1Njcm9sbGJhcnMgJiYgdW5zY2FsZWRDb250ZW50c1dpZHRoKSB7CiAgICAg
ICAgIC8vIExpbWl0IHBhZ2Ugc2NhbGluZyBkb3duIHRvIHRoZSBkb2N1bWVudCB3aWR0aC4KQEAg
LTMxMzksMTMgKzMxNTcsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXpl
KGNvbnN0IFdlYlNpemUmIGxheW91dFNpemUpCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Rml4ZWRM
YXlvdXRTaXplKGxheW91dFNpemUpOwogfQogCi1XZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlld0lt
cGw6OmRpcFNpemUoKSBjb25zdAorV2ViQ29yZTo6SW50U2l6ZSBXZWJWaWV3SW1wbDo6ZGlwU2l6
ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFwYWdlKCkgfHwgbV93ZWJTZXR0aW5ncy0+YXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQotICAgICAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Ci0KLSAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciA9IHBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCAvIGRldmljZVNjYWxlRmFjdG9yLCBtX3NpemUuaGVpZ2h0IC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIEludFNpemUgZGlwU2l6ZSA9IG1fc2l6ZTsKKyAgICBpZiAoIW1fd2Vi
U2V0dGluZ3MtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAg
ZGlwU2l6ZS5zY2FsZSgxIC8gbV9jbGllbnQtPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgcmV0dXJuIGRpcFNpemU7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1N
ZWRpYVBsYXllckFjdGlvbihjb25zdCBXZWJNZWRpYVBsYXllckFjdGlvbiYgYWN0aW9uLApAQCAt
MzY5Myw2ICszNzEwLDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6
ZSgpCiAgICAgaWYgKCFzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXco
KTsKKworICAgIGlmIChzZXR0aW5nc0ltcGwoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSAmJiB2aWV3ICYmIHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlKS53aWR0aCgp
ICE9IGxheW91dFNpemUoKS53aWR0aCgpKQorICAgICAgICB2aWV3LT5yZXNpemUobGF5b3V0U2l6
ZSgpKTsKKwogICAgIGJvb2wgZGlkQ2hhbmdlU2NhbGUgPSBmYWxzZTsKICAgICBpZiAoIWlzUGFn
ZVNjYWxlRmFjdG9yU2V0KCkpIHsKICAgICAgICAgLy8gSWYgdGhlIHZpZXdwb3J0IHRhZyBmYWls
ZWQgdG8gYmUgcHJvY2Vzc2VkIGVhcmxpZXIsIHdlIG5lZWQKQEAgLTM3MDMsMTMgKzM3MjUsMTUg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKCkKICAgICB9IGVsc2UK
ICAgICAgICAgZGlkQ2hhbmdlU2NhbGUgPSBjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGltaXRzKCk7
CiAKKyAgICBpZiAoc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghZGlkQ2hhbmdlU2NhbGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpOwog
ICAgIGlmICh2aWV3ICYmIHZpZXctPm5lZWRzTGF5b3V0KCkpCiAgICAgICAgIHZpZXctPmxheW91
dCgpOwogI2VuZGlmCkBAIC00MDQxLDEyICs0MDY1LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0
SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICAgICAg
bV9vd25zTGF5ZXJUcmVlVmlldyA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fbGF5
ZXJUcmVlVmlldykgewotICAgICAgICAgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmFwcGx5RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSAmJiBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkg
IT0gMSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChwYWdlKCktPmRldmljZVNjYWxlRmFjdG9y
KCkpOwotCi0gICAgICAgICAgICAgICAgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvciA9IHBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgICAgICAgICBzZXREZXZpY2VTY2FsZUZh
Y3RvcihtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KCkgJiYgcGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IDEpCisgICAgICAgICAgICAgICAg
c2V0RGV2aWNlU2NhbGVGYWN0b3IocGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAg
ICAgICAgICAgYm9vbCB2aXNpYmxlID0gcGFnZSgpLT52aXNpYmlsaXR5U3RhdGUoKSA9PSBQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0
VmlzaWJsZSh2aXNpYmxlKTsKQEAgLTQxODUsMTIgKzQyMDUsMTEgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQoKQogCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXpl
KCksIHNjcm9sbCwgdmlldy0+c2Nyb2xsT3JpZ2luKCkpOwogCi0gICAgSW50U2l6ZSBsYXlvdXRW
aWV3cG9ydFNpemUgPSBzaXplKCk7Ci0gICAgSW50U2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUgPSBz
aXplKCk7CisgICAgSW50U2l6ZSBsYXlvdXRWaWV3cG9ydFNpemUgPSB2aXNpYmxlUmVjdC5zaXpl
KCk7CisgICAgSW50U2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUgPSBtX3NpemU7CisgICAgaWYgKG1f
d2ViU2V0dGluZ3MtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAg
ICAgZGV2aWNlVmlld3BvcnRTaXplLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKCkpOwogCi0gICAg
Ly8gVGhpcyBwYXJ0IG9mIHRoZSBkZXZpY2VTY2FsZSB3aWxsIGJlIHVzZWQgdG8gc2NhbGUgdGhl
IGNvbnRlbnRzIG9mCi0gICAgLy8gdGhlIE5DQ0gncyBHcmFwaGljc0xheWVyLgotICAgIGRldmlj
ZVZpZXdwb3J0U2l6ZS5zY2FsZShtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKICAgICBtX2xh
eWVyVHJlZVZpZXctPnNldFZpZXdwb3J0U2l6ZShsYXlvdXRWaWV3cG9ydFNpemUsIGRldmljZVZp
ZXdwb3J0U2l6ZSk7CiAgICAgbV9sYXllclRyZWVWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JBbmRM
aW1pdHMocGFnZVNjYWxlRmFjdG9yKCksIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbV9tYXhp
bXVtUGFnZVNjYWxlRmFjdG9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCmluZGV4IGNlYTU3NDhjNWE4ODdhMWY1NjhiM2VkNWVkMThhYTI3MDA2OTU1ZjEuLjQ3
MjI4ODg3ZTA1MDZmMjE5ZDk5OWMwNDE5ZGEzZGE3YmU1OWQyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFdlYldpZGdldCBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwotICAg
IHZpcnR1YWwgV2ViU2l6ZSBzaXplKCkgeyByZXR1cm4gbV9zaXplOyB9CisgICAgdmlydHVhbCBX
ZWJTaXplIHNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCByZXNpemUoY29uc3QgV2ViU2l6ZSYpOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOwpAQCAtMjQyLDcgKzI0Miw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0
dWFsIFdlYlNpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZpeGVkTGF5b3V0U2l6ZShjb25zdCBXZWJTaXplJik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFNpemUgZGlwU2l6ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVBdXRvUmVz
aXplTW9kZSgKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWluU2l6ZSwKICAgICAgICAgY29uc3Qg
V2ViU2l6ZSYgbWF4U2l6ZSk7CkBAIC00NTksNiArNDU4LDkgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gbV9tYXhBdXRvU2l6ZTsKICAgICB9CiAKKyAgICBXZWJDb3JlOjpJbnRTaXplIGRpcFNp
emUoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIGxheW91dFNpemUoKSBjb25zdDsKKwog
ICAgIC8vIFNldCB0aGUgZGlzcG9zaXRpb24gZm9yIGhvdyB0aGlzIHdlYnZpZXcgaXMgdG8gYmUg
aW5pdGlhbGx5IHNob3duLgogICAgIHZvaWQgc2V0SW5pdGlhbE5hdmlnYXRpb25Qb2xpY3koV2Vi
TmF2aWdhdGlvblBvbGljeSBwb2xpY3kpCiAgICAgewpAQCAtODQ5LDcgKzg1MSw2IEBAIHByaXZh
dGU6CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIGdyYXBoaWNzIGNvbnRleHQgaXMgYmVpbmcgcmVzdG9y
ZWQuCiAgICAgYm9vbCBtX3JlY3JlYXRpbmdHcmFwaGljc0NvbnRleHQ7CiAgICAgYm9vbCBtX2Nv
bXBvc2l0b3JTdXJmYWNlUmVhZHk7Ci0gICAgZmxvYXQgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRv
cjsKICAgICBpbnQgbV9pbnB1dEhhbmRsZXJJZGVudGlmaWVyOwogI2VuZGlmCiAgICAgc3RhdGlj
IGNvbnN0IFdlYklucHV0RXZlbnQqIG1fY3VycmVudElucHV0RXZlbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183117</attachid>
            <date>2013-01-16 21:33:18 -0800</date>
            <delta_ts>2013-01-17 12:27:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106951-20130116213019.patch</filename>
            <type>text/plain</type>
            <size>18161</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDhlNDJhZTUxOTEwOTNjNWY5NWRiYzA4NDkzNzFhYmRlNWE2NzhkMWUuLmEwNzk0NWVkZjYwYWMx
YTc5NDI0NDY0YTlhYWFhNTM1MGZhNWQ2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTMtMDEtMTUgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIG5ldy1zdHlsZSBwYWdlIHNjYWxl
IHdvcmsgd2l0aCBmaXhlZCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNjk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMgbm9uLUNTUy10cmFuc2Zvcm0gcGFnZSBzY2FsaW5n
IHdvcmsgd2l0aCBmaXhlZC1sYXlvdXQgbW9kZSwKKyAgICAgICAgaW5jbHVkaW5nIHZpZXdwb3J0
IHRhZyBzdXBwb3J0LgorCisgICAgICAgIC0gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRD
aGFuZ2UoKSBub3cgd29ya3MgZW50aXJlbHkgd2l0aCBESVAKKyAgICAgICAgcGl4ZWxzIGluc3Rl
YWQgb2YgcGh5c2ljYWwgcGl4ZWxzLCBhbmQgaXMgbWFkZSBjb21wYXRpYmxlIHdpdGgKKyAgICAg
ICAgc2VwYXJhdGluZyBkZXZpY2VTY2FsZUZhY3RvciBmcm9tIHBhZ2VTY2FsZUZhY3Rvci4KKwor
ICAgICAgICAtIEluIHRoaXMgbW9kZSwgdGhlICJsYXlvdXQgdmlld3BvcnQiIHNpemUgaW4gdGhl
IHBpbmNoLXpvb20gbW9kZWwgaXMKKyAgICAgICAgbWFkZSBhIGZpcnN0LWNsYXNzIGNvbmNlcHQg
c2VwYXJhdGUgZnJvbSB0aGUgZGV2aWNlIHNpemUuICBUaGlzCisgICAgICAgIGlzIGEgdmlld3Bv
cnQgd2l0aCB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIGRldmljZSBidXQgd2l0aCB0aGUK
KyAgICAgICAgbGF5b3V0IHdpZHRoIG9mIHRoZSBwYWdlLiAgVGhpcyB2aWV3cG9ydCBpcyB1c2Vk
OgorICAgICAgICAgIC0gQXMgRnJhbWVWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QuCisgICAgICAg
ICAgLSBSZXR1cm5lZCBmcm9tIFdlYlZpZXc6OnNpemUoKS4KKyAgICAgICAgICAtIEdpdmVuIHRv
IHRoZSBjb21wb3NpdG9yIGFzIGxheW91dFZpZXdwb3J0U2l6ZS4KKworICAgICAgICAtIG1fZGV2
aWNlU2NhbGVJbkNvbXBvc2l0b3IgaXMgZGVsZXRlZCBhcyBpdCdzIGNsZWFyZXIgdG8gdXNlIHRo
ZQorICAgICAgICBhcHBseURldmljZVNjYWxlSW5Db21wb3NpdG9yIHNldHRpbmcgZGlyZWN0bHku
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2l6ZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpsYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlwU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMy0wMS0xNCAgTWFyayBQaWxn
cmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIEF1
ZGlvRGVzdGluYXRpb25DaHJvbWl1bSBpbnRvIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjRjOGY1MjA4NTZhYTkzY2Ji
NzEzZDI1MTIwY2MxZWE1ZGY1OTUzMS4uN2M1ZGVhZWI5MWM2ZmRiZTIzMTA3MDZkYjU2YjZhYWIw
MzQ1NWFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKQEAgLTk1LDYgKzk1LDcgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJXZWJTZXR0aW5nc0ltcGwuaCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCkBA
IC02MjUsNDcgKzYyNiwzNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgIGlmICghbV93
ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGllbnQo
KSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlZpZXdD
bGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7Ci0gICAgV2ViU2l6ZSBkZXZpY2VT
aXplID0gbV93ZWJWaWV3LT5zaXplKCk7Ci0gICAgLy8gSWYgdGhlIHdpbmRvdyBzaXplIGhhcyBu
b3QgYmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2aWV3cG9ydAotICAgIGlm
ICghZGV2aWNlU2l6ZS53aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCisgICAgSW50U2l6ZSB2
aWV3cG9ydFNpemUgPSBtX3dlYlZpZXctPmRpcFNpemUoKTsKKyAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvciA9IG1fd2ViVmlldy0+Y2xpZW50KCktPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZh
Y3RvcjsKKworICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBoYXMgbm90IGJlZW4gc2V0IHlldCBk
b24ndCBhdHRlbXB0IHRvIHNldCB0aGUgdmlld3BvcnQuCisgICAgaWYgKCF2aWV3cG9ydFNpemUu
d2lkdGgoKSB8fCAhdmlld3BvcnRTaXplLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbnQgdmlld3BvcnRXaWR0aEluRElQcyA9IG1fd2ViVmlldy0+ZGlwU2l6ZSgpLndpZHRoKCk7
Ci0gICAgVmlld3BvcnRBcmd1bWVudHMgZWZmZWN0aXZlVmlld3BvcnRBcmd1bWVudHM7Ci0gICAg
aW50IGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGg7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1
dGVkOwogICAgIGlmIChtX3dlYlZpZXctPnNldHRpbmdzKCktPnZpZXdwb3J0RW5hYmxlZCgpKSB7
Ci0gICAgICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gYXJndW1lbnRzOwotICAgICAg
ICBlZmZlY3RpdmVGYWxsYmFja1dpZHRoID0gc3RkOjptYXgobV93ZWJWaWV3LT5wYWdlKCktPnNl
dHRpbmdzKCktPmxheW91dEZhbGxiYWNrV2lkdGgoKSwgdmlld3BvcnRXaWR0aEluRElQcyk7Cisg
ICAgICAgIGNvbXB1dGVkID0gYXJndW1lbnRzLnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9y
dFNpemUsIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRo
KCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgZm9yIEFuZHJvaWQgV2ViVmll
dyB0byB1c2UgbGF5b3V0IHdpZHRoIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMuCi0gICAg
ICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5kcm9pZCB3aWxsIHN0YXJ0IHVzaW5nIERJUCBw
aXhlbHMgc2l6ZSwKLSAgICAgICAgLy8gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQuCi0gICAgICAgIGVmZmVj
dGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICAgICAgZWZm
ZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHZpZXdwb3J0V2lkdGhJbkRJUHM7CisgICAgICAgIC8vIElm
IHZpZXdwb3J0IHRhZyBpcyBkaXNhYmxlZCBidXQgZml4ZWQgbGF5b3V0IGlzIHN0aWxsIGVuYWJs
ZWQsIChmb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgb24gQW5kcm9pZCBXZWJWaWV3IHdpdGggVXNl
V2lkZVZpZXdwb3J0IGZhbHNlKSwgY29tcHV0ZQorICAgICAgICAvLyBiYXNlZCBvbiB0aGUgZGVm
YXVsdCB2aWV3cG9ydCBhcmd1bWVudHMuCisgICAgICAgIGNvbXB1dGVkID0gVmlld3BvcnRBcmd1
bWVudHMoKS5yZXNvbHZlKHZpZXdwb3J0U2l6ZSwgdmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUu
d2lkdGgoKSk7CiAgICAgfQotICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8gPSBjbGllbnQtPnNj
cmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3RvcjsKLSAgICAvLyBDYWxsIHRoZSBjb21tb24gdmll
d3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KLSAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAotICAg
ICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cywgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCwg
ZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCi0gICAgICAgIGRldmljZVBpeGVs
UmF0aW8sIEludFNpemUoZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQpKTsKLQog
ICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNv
bXB1dGVkKTsKIAogICAgIGlmIChtX3dlYlZpZXctPmlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNj
YWxlKCkpIHsKICAgICAgICAgY29tcHV0ZWQubWF4aW11bVNjYWxlID0gbWF4KGNvbXB1dGVkLm1h
eGltdW1TY2FsZSwgbV93ZWJWaWV3LT5tYXhQYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICBjb21w
dXRlZC51c2VyU2NhbGFibGUgPSB0cnVlOwogICAgIH0KLQotICAgIGludCBsYXlvdXRXaWR0aCA9
IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsKLSAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29t
cHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKLSAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0
U2l6ZShJbnRTaXplKGxheW91dFdpZHRoLCBsYXlvdXRIZWlnaHQpKTsKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+c2V0dGluZ3NJbXBsKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
KSkKKyAgICAgICAgY29tcHV0ZWQuaW5pdGlhbFNjYWxlICo9IGRldmljZVNjYWxlRmFjdG9yOwog
CiAgICAgYm9vbCBuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSA9ICFtX3dlYlZpZXctPmlzUGFnZVNj
YWxlRmFjdG9yU2V0KCk7Ci0gICAgbV93ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZp
Y2VQaXhlbFJhdGlvKTsKKyAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShmbG9vcmVk
SW50U2l6ZShjb21wdXRlZC5sYXlvdXRTaXplKSk7CisgICAgbV93ZWJWaWV3LT5zZXREZXZpY2VT
Y2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoY29tcHV0ZWQubWluaW11bVNjYWxlLCBjb21wdXRlZC5tYXhpbXVtU2Nh
bGUpOwogICAgIGlmIChuZWVkSW5pdGlhbGl6ZVBhZ2VTY2FsZSkKLSAgICAgICAgbV93ZWJWaWV3
LT5zZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRp
YWxTY2FsZSAqIGRldmljZVBpeGVsUmF0aW8pOworICAgICAgICBtX3dlYlZpZXctPnNldFBhZ2VT
Y2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0ZWQuaW5pdGlhbFNjYWxlKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggZGJiOGM4MTI0ZWY0OGU5MzBjYWNhYjdkNDI5MThkZGViOWY3OTc5Ny4uMThhZTBhNWI0
OGE1MjlkNjM2YWFlNGRkODk2M2ZiMzg1NjJiOTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNDI4LDcgKzQyOCw2IEBAIFdlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2NvbXBvc2l0b3JDcmVh
dGlvbkZhaWxlZChmYWxzZSkKICAgICAsIG1fcmVjcmVhdGluZ0dyYXBoaWNzQ29udGV4dChmYWxz
ZSkKICAgICAsIG1fY29tcG9zaXRvclN1cmZhY2VSZWFkeShmYWxzZSkKLSAgICAsIG1fZGV2aWNl
U2NhbGVJbkNvbXBvc2l0b3IoMSkKICAgICAsIG1faW5wdXRIYW5kbGVySWRlbnRpZmllcigtMSkK
ICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCkBAIC0xNTczLDYgKzE1NzIsMTQgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiAgICAgICAgIHBsdWdpbkNv
bnRhaW5lci0+d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogfQogCitXZWJTaXplIFdlYlZpZXdJbXBs
OjpzaXplKCkKK3sKKyAgICBpZiAoaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgJiYgc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgIHJl
dHVybiBsYXlvdXRTaXplKCk7CisKKyAgICByZXR1cm4gbV9zaXplOworfQorCiB2b2lkIFdlYlZp
ZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBpZiAobV9zaG91
bGRBdXRvUmVzaXplIHx8IG1fc2l6ZSA9PSBuZXdTaXplKQpAQCAtMTYwMCwxNSArMTYwNywxOCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBp
ZiAoIWFnZW50UHJpdmF0ZSB8fCAhYWdlbnRQcml2YXRlLT5tZXRyaWNzT3ZlcnJpZGRlbigpKSB7
CiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7CiAgICAg
ICAgIGlmICh3ZWJGcmFtZS0+ZnJhbWVWaWV3KCkpCi0gICAgICAgICAgICB3ZWJGcmFtZS0+ZnJh
bWVWaWV3KCktPnJlc2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCk7CisgICAgICAg
ICAgICB3ZWJGcmFtZS0+ZnJhbWVWaWV3KCktPnJlc2l6ZShzaXplKCkpOwogICAgIH0KIAogI2lm
IEVOQUJMRShWSUVXUE9SVCkKICAgICBpZiAoc2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkp
IHsKLSAgICAgICAgLy8gUmVsYXlvdXQgaW1tZWRpYXRlbHkgdG8gb2J0YWluIHRoZSBuZXcgY29u
dGVudCB3aWR0aCwgd2hpY2ggaXMgbmVlZGVkCi0gICAgICAgIC8vIHRvIGNhbGN1bGF0ZSB0aGUg
bWluaW11bSBzY2FsZSBsaW1pdC4KLSAgICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIGlm
ICghc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsK
KyAgICAgICAgICAgIC8vIFJlbGF5b3V0IGltbWVkaWF0ZWx5IHRvIG9idGFpbiB0aGUgbmV3IGNv
bnRlbnQgd2lkdGgsIHdoaWNoIGlzIG5lZWRlZAorICAgICAgICAgICAgLy8gdG8gY2FsY3VsYXRl
IHRoZSBtaW5pbXVtIHNjYWxlIGxpbWl0LgorICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Cisg
ICAgICAgIH0KICAgICAgICAgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOworCiAgICAg
ICAgIC8vIFdoZW4gdGhlIGRldmljZSByb3RhdGVzOgogICAgICAgICAvLyAtIElmIHRoZSBwYWdl
IHdpZHRoIGlzIHVuY2hhbmdlZCwgdGhlbiB6b29tIGJ5IG5ldyB3aWR0aC9vbGQgd2lkdGgKICAg
ICAgICAgLy8gICBzdWNoIGFzIHRvIGtlZXAgdGhlIHNhbWUgY29udGVudCBob3Jpem9udGFsbHkg
b25zY3JlZW4uCkBAIC0xNjI0LDcgKzE2MzQsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUo
Y29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICAgICAgZmxvYXQgc2NhbGVNdWx0aXBsaWVyID0g
dmlld3BvcnRXaWR0aFJhdGlvIC8gZml4ZWRMYXlvdXRXaWR0aFJhdGlvOwogICAgICAgICBpZiAo
c2NhbGVNdWx0aXBsaWVyICE9IDEpIHsKICAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
QXROZXdTY2FsZSA9IG9sZFNjcm9sbE9mZnNldDsKLSAgICAgICAgICAgIHNjcm9sbE9mZnNldEF0
TmV3U2NhbGUuc2NhbGUoc2NhbGVNdWx0aXBsaWVyKTsKKyAgICAgICAgICAgIGlmICghc2V0dGlu
Z3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgICAg
ICAgICAgc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZS5zY2FsZShzY2FsZU11bHRpcGxpZXIpOwogICAg
ICAgICAgICAgc2V0UGFnZVNjYWxlRmFjdG9yKG9sZFBhZ2VTY2FsZUZhY3RvciAqIHNjYWxlTXVs
dGlwbGllciwgSW50UG9pbnQoc2Nyb2xsT2Zmc2V0QXROZXdTY2FsZSkpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjkwOCwxMiArMjkxOSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbikKICAgICBp
ZiAoIXNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9IDE7CiAKLSAgICBpZiAobV9k
ZXZpY2VTY2FsZUluQ29tcG9zaXRvciAhPSAxKSB7Ci0gICAgICAgIC8vIERvbid0IGFsbG93IHBh
Z2Ugc2NhbGluZyB3aGVuIGNvbXBvc2l0b3Igc2NhbGluZyBpcyBiZWluZyB1c2VkLAotICAgICAg
ICAvLyBhcyB0aGV5IGFyZSBjdXJyZW50bHkgaW5jb21wYXRpYmxlLgotICAgICAgICBBU1NFUlQo
c2NhbGVGYWN0b3IgPT0gMSk7Ci0gICAgfQotCiAgICAgc2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VT
Y2FsZUZhY3RvclRvTGltaXRzKHNjYWxlRmFjdG9yKTsKICAgICBXZWJQb2ludCBzY3JvbGxPZmZz
ZXQ7CiAgICAgaWYgKCFtX3BhZ2UtPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpIHsKQEAgLTI5NDcsMTYgKzI5NTIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIAogICAgIHBhZ2UoKS0+c2V0
RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogCi0gICAgaWYgKG1fbGF5ZXJUcmVlVmll
dyAmJiBtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkp
IHsKLSAgICAgICAgbV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvciA9IHBhZ2UoKS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKLSAgICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX2RldmljZVNjYWxlSW5Db21wb3NpdG9yKTsKLSAgICB9Ci0gICAgaWYgKG1fZGV2aWNlU2Nh
bGVJbkNvbXBvc2l0b3IgIT0gMSkgewotICAgICAgICAvLyBEb24ndCBhbGxvdyBwYWdlIHNjYWxp
bmcgd2hlbiBjb21wb3NpdG9yIHNjYWxpbmcgaXMgYmVpbmcgdXNlZCwKLSAgICAgICAgLy8gYXMg
dGhleSBhcmUgY3VycmVudGx5IGluY29tcGF0aWJsZS4gVGhpcyBtZWFucyB0aGUgZGV2aWNlU2Nh
bGUKLSAgICAgICAgLy8gbmVlZHMgdG8gbWF0Y2ggdGhlIG9uZSBpbiB0aGUgY29tcG9zaXRvci4K
LSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yID09IG1fZGV2aWNlU2NhbGVJbkNvbXBvc2l0b3Ip
OwotICAgIH0KKyAgICBpZiAobV9sYXllclRyZWVWaWV3ICYmIG1fd2ViU2V0dGluZ3MtPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgbV9sYXllclRyZWVWaWV3
LT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMDI5LDYgKzMwMjYsMTkg
QEAgc3RhdGljIEludFNpemUgdW5zY2FsZWRDb250ZW50c1NpemUoRnJhbWUqIGZyYW1lKQogICAg
IHJldHVybiByb290LT51bnNjYWxlZERvY3VtZW50UmVjdCgpLnNpemUoKTsKIH0KIAorSW50U2l6
ZSBXZWJWaWV3SW1wbDo6bGF5b3V0U2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0ZpeGVkTGF5
b3V0TW9kZUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG1fc2l6ZTsKKworICAgIEludFNpemUg
Y29udGVudFNpemUgPSB1bnNjYWxlZENvbnRlbnRzU2l6ZShwYWdlKCktPm1haW5GcmFtZSgpKTsK
KyAgICBpZiAoZml4ZWRMYXlvdXRTaXplKCkud2lkdGggPj0gY29udGVudFNpemUud2lkdGgoKSkK
KyAgICAgICAgcmV0dXJuIGZpeGVkTGF5b3V0U2l6ZSgpOworCisgICAgZmxvYXQgYXNwZWN0UmF0
aW8gPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9zaXplLmhlaWdodCkgLyBtX3NpemUud2lkdGg7Cisg
ICAgcmV0dXJuIEludFNpemUoY29udGVudFNpemUud2lkdGgoKSwgY29udGVudFNpemUud2lkdGgo
KSAqIGFzcGVjdFJhdGlvKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNjYWxl
RmFjdG9yID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09IC0x
KQpAQCAtMzAzNywxMCArMzA0NywxOCBAQCBib29sIFdlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNj
YWxlRmFjdG9yTGltaXRzKCkKICAgICBpZiAoIW1haW5GcmFtZSgpIHx8ICFwYWdlKCkgfHwgIXBh
Z2UoKS0+bWFpbkZyYW1lKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluKG1h
eChtX3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFjdG9y
KSwgbWF4UGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7Ci0gICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yID0gbWF4KG1p
bihtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFnZVNjYWxlRmFjdG9y
KSwgbWluUGFnZVNjYWxlRmFjdG9yKSAqIChkZXZpY2VTY2FsZUZhY3RvcigpIC8gbV9kZXZpY2VT
Y2FsZUluQ29tcG9zaXRvcik7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFnZSgpLT5tYWluRnJh
bWUoKS0+dmlldygpOworCisgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluKG1heCht
X3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFjdG9yKSwg
bWF4UGFnZVNjYWxlRmFjdG9yKTsKKyAgICBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IgPSBtYXgo
bWluKG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yLCBtYXhQYWdlU2NhbGVGYWN0
b3IpLCBtaW5QYWdlU2NhbGVGYWN0b3IpOworICAgIGlmICghbV93ZWJTZXR0aW5ncy0+YXBwbHlE
ZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKSB7CisgICAgICAgIG1fbWluaW11bVBhZ2VT
Y2FsZUZhY3RvciAqPSBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICBtX21heGltdW1QYWdl
U2NhbGVGYWN0b3IgKj0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICB9CiAKLSAgICBpbnQgdmll
d1dpZHRoTm90SW5jbHVkaW5nU2Nyb2xsYmFycyA9IHBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlKS53aWR0aCgpOworICAgIGludCB2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzID0gbV9zaXplLndpZHRoOworICAgIGlmICh2aWV3V2lkdGhO
b3RJbmNsdWRpbmdTY3JvbGxiYXJzICYmIHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZp
ZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICB2
aWV3V2lkdGhOb3RJbmNsdWRpbmdTY3JvbGxiYXJzIC09IHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFy
KCktPndpZHRoKCk7CiAgICAgaW50IHVuc2NhbGVkQ29udGVudHNXaWR0aCA9IHVuc2NhbGVkQ29u
dGVudHNTaXplKHBhZ2UoKS0+bWFpbkZyYW1lKCkpLndpZHRoKCk7CiAgICAgaWYgKHZpZXdXaWR0
aE5vdEluY2x1ZGluZ1Njcm9sbGJhcnMgJiYgdW5zY2FsZWRDb250ZW50c1dpZHRoKSB7CiAgICAg
ICAgIC8vIExpbWl0IHBhZ2Ugc2NhbGluZyBkb3duIHRvIHRoZSBkb2N1bWVudCB3aWR0aC4KQEAg
LTMxMzksMTMgKzMxNTcsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXpl
KGNvbnN0IFdlYlNpemUmIGxheW91dFNpemUpCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Rml4ZWRM
YXlvdXRTaXplKGxheW91dFNpemUpOwogfQogCi1XZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlld0lt
cGw6OmRpcFNpemUoKSBjb25zdAorV2ViQ29yZTo6SW50U2l6ZSBXZWJWaWV3SW1wbDo6ZGlwU2l6
ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFwYWdlKCkgfHwgbV93ZWJTZXR0aW5ncy0+YXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQotICAgICAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Ci0KLSAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciA9IHBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICByZXR1cm4gRmxvYXRTaXplKG1f
c2l6ZS53aWR0aCAvIGRldmljZVNjYWxlRmFjdG9yLCBtX3NpemUuaGVpZ2h0IC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIEludFNpemUgZGlwU2l6ZSA9IG1fc2l6ZTsKKyAgICBpZiAoIW1fd2Vi
U2V0dGluZ3MtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAg
ZGlwU2l6ZS5zY2FsZSgxIC8gbV9jbGllbnQtPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgcmV0dXJuIGRpcFNpemU7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1N
ZWRpYVBsYXllckFjdGlvbihjb25zdCBXZWJNZWRpYVBsYXllckFjdGlvbiYgYWN0aW9uLApAQCAt
MzY5MCwyNyArMzcwNywyOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpsYXlvdXRVcGRhdGVkKFdlYkZy
YW1lSW1wbCogd2ViZnJhbWUpCiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRDaGFuZ2VDb250ZW50c1Np
emUoKQogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIXNldHRpbmdzKCktPnZpZXdw
b3J0RW5hYmxlZCgpKQorICAgIGlmICghc2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkgfHwg
IW1haW5GcmFtZUltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBkaWRDaGFuZ2VT
Y2FsZSA9IGZhbHNlOworICAgIGJvb2wgbWF5TmVlZExheW91dCA9IGZhbHNlOwogICAgIGlmICgh
aXNQYWdlU2NhbGVGYWN0b3JTZXQoKSkgewogICAgICAgICAvLyBJZiB0aGUgdmlld3BvcnQgdGFn
IGZhaWxlZCB0byBiZSBwcm9jZXNzZWQgZWFybGllciwgd2UgbmVlZAogICAgICAgICAvLyB0byBy
ZWNvbXB1dGUgaXQgbm93LgogICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3Vt
ZW50cyA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1
bWVudHMoKTsKICAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmll
d3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsKLSAgICAgICAgZGlk
Q2hhbmdlU2NhbGUgPSB0cnVlOworICAgICAgICBtYXlOZWVkTGF5b3V0ID0gdHJ1ZTsKICAgICB9
IGVsc2UKLSAgICAgICAgZGlkQ2hhbmdlU2NhbGUgPSBjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGlt
aXRzKCk7Ci0KLSAgICBpZiAoIWRpZENoYW5nZVNjYWxlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoIW1haW5GcmFtZUltcGwoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBtYXlOZWVk
TGF5b3V0ID0gY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOwogCiAgICAgRnJhbWVWaWV3
KiB2aWV3ID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKTsKLSAgICBpZiAodmlldyAmJiB2
aWV3LT5uZWVkc0xheW91dCgpKQorICAgIGlmIChzZXR0aW5nc0ltcGwoKS0+YXBwbHlQYWdlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IoKSAmJiB2aWV3ICYmIHZpZXctPnZpc2libGVDb250ZW50UmVj
dCh0cnVlKS53aWR0aCgpICE9IGxheW91dFNpemUoKS53aWR0aCgpKSB7CisgICAgICAgIHZpZXct
PnJlc2l6ZShsYXlvdXRTaXplKCkpOworICAgICAgICBtYXlOZWVkTGF5b3V0ID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICAvLyBkaWRDaGFuZ2VDb250ZW50c1NpemUoKSBtYXkgYmUgY2FsbGVkIGZyb20g
RnJhbWVWaWV3OjpsYXlvdXQ7IHdlIG5lZWQgdG8KKyAgICAvLyByZWxheW91dCB0byBhdm9pZCB0
cmlnZ2VyaW5nIHRoZSBhc3NlcnRpb24gdGhhdCBuZWVkc0xheW91dCgpIGlzbid0IHNldAorICAg
IC8vIGF0IHRoZSBlbmQgb2YgYSBsYXlvdXQuCisgICAgaWYgKG1heU5lZWRMYXlvdXQgJiYgdmll
dyAmJiB2aWV3LT5uZWVkc0xheW91dCgpKQogICAgICAgICB2aWV3LT5sYXlvdXQoKTsKICNlbmRp
ZgogfQpAQCAtNDA0MSwxMiArNDA2MCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAgICAgIG1fb3duc0xh
eWVyVHJlZVZpZXcgPSB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChtX2xheWVyVHJlZVZp
ZXcpIHsKLSAgICAgICAgICAgIGlmIChtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yKCkgJiYgcGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IDEpIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQocGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLQot
ICAgICAgICAgICAgICAgIG1fZGV2aWNlU2NhbGVJbkNvbXBvc2l0b3IgPSBwYWdlKCktPmRldmlj
ZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgICAgICAgICAgc2V0RGV2aWNlU2NhbGVGYWN0b3IobV9k
ZXZpY2VTY2FsZUluQ29tcG9zaXRvcik7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
bV93ZWJTZXR0aW5ncy0+YXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpICYmIHBh
Z2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgICAgICAgICAgICAgIHNldERldmlj
ZVNjYWxlRmFjdG9yKHBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICAgICAgICAgICAg
IGJvb2wgdmlzaWJsZSA9IHBhZ2UoKS0+dmlzaWJpbGl0eVN0YXRlKCkgPT0gUGFnZVZpc2liaWxp
dHlTdGF0ZVZpc2libGU7CiAgICAgICAgICAgICBtX2xheWVyVHJlZVZpZXctPnNldFZpc2libGUo
dmlzaWJsZSk7CkBAIC00MTg1LDEyICs0MjAwLDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0
ZUxheWVyVHJlZVZpZXdwb3J0KCkKIAogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT5z
ZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3Jv
bGwsIHZpZXctPnNjcm9sbE9yaWdpbigpKTsKIAotICAgIEludFNpemUgbGF5b3V0Vmlld3BvcnRT
aXplID0gc2l6ZSgpOwotICAgIEludFNpemUgZGV2aWNlVmlld3BvcnRTaXplID0gc2l6ZSgpOwor
ICAgIEludFNpemUgbGF5b3V0Vmlld3BvcnRTaXplID0gdmlzaWJsZVJlY3Quc2l6ZSgpOworICAg
IEludFNpemUgZGV2aWNlVmlld3BvcnRTaXplID0gbV9zaXplOworICAgIGlmIChtX3dlYlNldHRp
bmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgIGRldmlj
ZVZpZXdwb3J0U2l6ZS5zY2FsZShkZXZpY2VTY2FsZUZhY3RvcigpKTsKIAotICAgIC8vIFRoaXMg
cGFydCBvZiB0aGUgZGV2aWNlU2NhbGUgd2lsbCBiZSB1c2VkIHRvIHNjYWxlIHRoZSBjb250ZW50
cyBvZgotICAgIC8vIHRoZSBOQ0NIJ3MgR3JhcGhpY3NMYXllci4KLSAgICBkZXZpY2VWaWV3cG9y
dFNpemUuc2NhbGUobV9kZXZpY2VTY2FsZUluQ29tcG9zaXRvcik7CiAgICAgbV9sYXllclRyZWVW
aWV3LT5zZXRWaWV3cG9ydFNpemUobGF5b3V0Vmlld3BvcnRTaXplLCBkZXZpY2VWaWV3cG9ydFNp
emUpOwogICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKHBh
Z2VTY2FsZUZhY3RvcigpLCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IsIG1fbWF4aW11bVBhZ2VT
Y2FsZUZhY3Rvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCBjZWE1NzQ4YzVhODg3YTFmNTY4YjNlZDVlZDE4YWEyNzAwNjk1NWYxLi40NzIyODg4N2Uw
NTA2ZjIxOWQ5OTljMDQxOWRhM2RhN2JlNTlkMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBX
ZWJXaWRnZXQgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKTsKLSAgICB2aXJ0dWFs
IFdlYlNpemUgc2l6ZSgpIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIHZpcnR1YWwgV2ViU2l6ZSBz
aXplKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydExpdmVSZXNpemUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVzaXplKGNvbnN0IFdlYlNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVu
ZExpdmVSZXNpemUoKTsKQEAgLTI0Miw3ICsyNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJT
aXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZExh
eW91dFNpemUoY29uc3QgV2ViU2l6ZSYpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRTaXpl
IGRpcFNpemUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUo
CiAgICAgICAgIGNvbnN0IFdlYlNpemUmIG1pblNpemUsCiAgICAgICAgIGNvbnN0IFdlYlNpemUm
IG1heFNpemUpOwpAQCAtNDU5LDYgKzQ1OCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1f
bWF4QXV0b1NpemU7CiAgICAgfQogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBkaXBTaXplKCkgY29u
c3Q7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBsYXlvdXRTaXplKCkgY29uc3Q7CisKICAgICAvLyBT
ZXQgdGhlIGRpc3Bvc2l0aW9uIGZvciBob3cgdGhpcyB3ZWJ2aWV3IGlzIHRvIGJlIGluaXRpYWxs
eSBzaG93bi4KICAgICB2b2lkIHNldEluaXRpYWxOYXZpZ2F0aW9uUG9saWN5KFdlYk5hdmlnYXRp
b25Qb2xpY3kgcG9saWN5KQogICAgIHsKQEAgLTg0OSw3ICs4NTEsNiBAQCBwcml2YXRlOgogICAg
IC8vIElmIHRydWUsIHRoZSBncmFwaGljcyBjb250ZXh0IGlzIGJlaW5nIHJlc3RvcmVkLgogICAg
IGJvb2wgbV9yZWNyZWF0aW5nR3JhcGhpY3NDb250ZXh0OwogICAgIGJvb2wgbV9jb21wb3NpdG9y
U3VyZmFjZVJlYWR5OwotICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVJbkNvbXBvc2l0b3I7CiAgICAg
aW50IG1faW5wdXRIYW5kbGVySWRlbnRpZmllcjsKICNlbmRpZgogICAgIHN0YXRpYyBjb25zdCBX
ZWJJbnB1dEV2ZW50KiBtX2N1cnJlbnRJbnB1dEV2ZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>