<?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>84471</bug_id>
          
          <creation_ts>2012-04-20 11:15:34 -0700</creation_ts>
          <short_desc>[BlackBerry] Expose WebViewportArguments to WebPageClient</short_desc>
          <delta_ts>2012-04-20 14:20:20 -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 BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>0</everconfirmed>
          <reporter name="Mike Lattanzio">mlattanzio</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kpiascik</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606728</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 11:15:34 -0700</bug_when>
    <thetext>Give our client implementation the ability to provide some fallback ViewportArguments. Now clients can essentially set a meta viewport to increase mobile readability without touching the HTML content they request to be loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606743</commentid>
    <comment_count>1</comment_count>
      <attachid>138129</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 11:35:06 -0700</bug_when>
    <thetext>Created attachment 138129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606747</commentid>
    <comment_count>2</comment_count>
      <attachid>138130</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 11:37:33 -0700</bug_when>
    <thetext>Created attachment 138130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606806</commentid>
    <comment_count>3</comment_count>
      <attachid>138144</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 12:22:58 -0700</bug_when>
    <thetext>Created attachment 138144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606811</commentid>
    <comment_count>4</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-04-20 12:36:12 -0700</bug_when>
    <thetext>you still didn&apos;t explain in your patch why you need  currentViewportArguments and are not overriding m_viewportArguments, I think this is the important thing to note....also do you have any tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606827</commentid>
    <comment_count>5</comment_count>
      <attachid>138148</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 12:56:43 -0700</bug_when>
    <thetext>Created attachment 138148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606834</commentid>
    <comment_count>6</comment_count>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-20 13:00:12 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; you still didn&apos;t explain in your patch why you need  currentViewportArguments and are not overriding m_viewportArguments, I think this is the important thing to note....also do you have any tests?

The new patch has more thorough comments. API tests for the WebViewportArguments are in launcher. This patch doesn&apos;t affect anything by default so no new tests for webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606837</commentid>
    <comment_count>7</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-04-20 13:01:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; you still didn&apos;t explain in your patch why you need  currentViewportArguments and are not overriding m_viewportArguments, I think this is the important thing to note....also do you have any tests?
&gt; 
&gt; The new patch has more thorough comments. API tests for the WebViewportArguments are in launcher. This patch doesn&apos;t affect anything by default so no new tests for webkit.

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606850</commentid>
    <comment_count>8</comment_count>
      <attachid>138148</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-20 13:20:01 -0700</bug_when>
    <thetext>Comment on attachment 138148
Patch

still think d should not be a pointer, but ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606902</commentid>
    <comment_count>9</comment_count>
      <attachid>138148</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-20 14:20:08 -0700</bug_when>
    <thetext>Comment on attachment 138148
Patch

Clearing flags on attachment: 138148

Committed r114779: &lt;http://trac.webkit.org/changeset/114779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606903</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-20 14:20:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138129</attachid>
            <date>2012-04-20 11:35:06 -0700</date>
            <delta_ts>2012-04-20 11:37:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84471-20120420143523.patch</filename>
            <type>text/plain</type>
            <size>17258</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyOTY0OTJhMWU4Y2Q1ZmQw
ZWJjMzk5YjliMjczZTcxMDg3MTMzNjkuLmUyMDQ0NjgxMWE4NzBhZjVmYTYwMzkzMTdhNmY4OGJl
NmRkYWY3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMDQtMjAgIE1pa2UgTGF0
dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIDIwMTItMDQtMTkgIE1pa2Ug
TGF0dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgICAgICAgICAgSW1wbGVt
ZW50IHRoZSBhYmlsaXR5IGZvciB0aGUgV2ViUGFnZUNsaWVudCB0byBzcGVjaWZ5IGEgZmFsbGJh
Y2sKKyAgICAgICAgICAgICAgICB2aXJ0dWFsIHZpZXdwb3J0IHRvIGJlIHVzZWQgd2hlbmV2ZXIg
YSBtZXRhIHZpZXdwb3J0IHRhZyBpcyBub3QKKyAgICAgICAgICAgICAgICBwcmVzZW50IGluIHRo
ZSBIVE1MLiBUaGlzIGNhbiBkcmFzdGljYWxseSBpbXBhY3QgYXBwYXJlbnQgbGF5b3V0LgorCisg
ICAgICAgICAgICAgICAgVGhpcyBwYXRjaCBpcyBkZXNpZ25lZCB0byBwcm92aWRlIGEgY2xhc3Np
YyAiQ29sdW1uIFZpZXciIHN0eWxlIG9mCisgICAgICAgICAgICAgICAgbGF5b3V0IHdpdGhvdXQg
YnJlYWtpbmcgdGhlIHdlYiBieSBzaW1wbHkgZXhwb3NpbmcgbWV0YSB2aWV3cG9ydAorICAgICAg
ICAgICAgICAgIGFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50cy4KKworICAgICAgICAgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICAgICAgICAgKiBBcGkvV2Vi
UGFnZS5jcHA6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6
c2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpyZXNldFVzZXJWaWV3
cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
UGFnZVByaXZhdGU6OnJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50
cyk6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgICAgICAgICAq
IEFwaS9XZWJQYWdlLmg6CisgICAgICAgICAgICAgICAgKFdlYktpdCk6CisgICAgICAgICAgICAg
ICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToK
KyAgICAgICAgICAgICAgICAqIEFwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5jcHA6IEFkZGVkLgor
ICAgICAgICAgICAgICAgIChXZWJLaXQpOgorICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OjptX3ZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6fldlYlZpZXdwb3J0QXJndW1lbnRzKToK
KyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50
czo6aW5pdGlhbFNjYWxlKToKKyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0SW5pdGlhbFNjYWxlKToKKyAgICAgICAgICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6bWluaW11bVNjYWxlKToK
KyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50
czo6c2V0TWluaW11bVNjYWxlKToKKyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6bWF4aW11bVNjYWxlKToKKyAgICAgICAgICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0TWF4aW11bVNjYWxl
KToKKyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3Vt
ZW50czo6d2lkdGgpOgorICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZp
ZXdwb3J0QXJndW1lbnRzOjpzZXRXaWR0aCk6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OmhlaWdodCk6CisgICAgICAgICAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNldEhlaWdodCk6Cisg
ICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6
OnRhcmdldERlbnNpdHlEcGkpOgorICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRUYXJnZXREZW5zaXR5RHBpKToKKyAgICAgICAgICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6dXNlclNjYWxh
YmxlKToKKyAgICAgICAgICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFy
Z3VtZW50czo6c2V0VXNlclNjYWxhYmxlKToKKyAgICAgICAgICAgICAgICAqIEFwaS9XZWJWaWV3
cG9ydEFyZ3VtZW50cy5oOiBBZGRlZC4KKyAgICAgICAgICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICAgICAgICAgKFdlYktpdCk6CisKKyAgICAgICAgW0JsYWNrQmVycnldIEV4cG9zZSBXZWJW
aWV3cG9ydEFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorCiAy
MDEyLTA0LTIwICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdIEFkZCBTZWN1cml0eSBPcmlnaW4gQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyOGVmMTlkNjNkMzU5NjdkMzk1NjM1ZGQyYjI0N2YxM2My
NjAxNzI2Li4wMDQ2ZTcwODE2YTYxZmE3ZjI1M2QyMWFlNGFkOGMzOGNiZjYzZWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMi0wNC0yMCAgTWlr
ZSBMYXR0YW56aW8gIDxtbGF0dGFuemlvQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnld
IEV4cG9zZSBXZWJWaWV3cG9ydEFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ3MQorCisgICAgICAgIElt
cGxlbWVudCB0aGUgYWJpbGl0eSBmb3IgdGhlIFdlYlBhZ2VDbGllbnQgdG8gc3BlY2lmeSBhIGZh
bGxiYWNrCisgICAgICAgIHZpcnR1YWwgdmlld3BvcnQgdG8gYmUgdXNlZCB3aGVuZXZlciBhIG1l
dGEgdmlld3BvcnQgdGFnIGlzIG5vdAorICAgICAgICBwcmVzZW50IGluIHRoZSBIVE1MLiBUaGlz
IGNhbiBkcmFzdGljYWxseSBpbXBhY3QgYXBwYXJlbnQgbGF5b3V0LgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBhIGNsYXNzaWMgIkNvbHVtbiBWaWV3IiBzdHls
ZSBvZgorICAgICAgICBsYXlvdXQgd2l0aG91dCBicmVha2luZyB0aGUgd2ViIGJ5IHNpbXBseSBl
eHBvc2luZyBtZXRhIHZpZXdwb3J0CisgICAgICAgIGFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFw
aS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0
VXNlclZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OnJlY29tcHV0ZVZpcnR1
YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogQXBpL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAg
ICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIEFwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6OmQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50
czo6fldlYlZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViVmlld3BvcnRBcmd1bWVudHM6OmluaXRpYWxTY2FsZSk6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRJbml0aWFsU2NhbGUpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6bWluaW11bVNjYWxl
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNl
dE1pbmltdW1TY2FsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0
QXJndW1lbnRzOjptYXhpbXVtU2NhbGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0TWF4aW11bVNjYWxlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OndpZHRoKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFdpZHRoKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OmhlaWdodCk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRIZWlnaHQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6dGFy
Z2V0RGVuc2l0eURwaSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0
QXJndW1lbnRzOjpzZXRUYXJnZXREZW5zaXR5RHBpKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnVzZXJTY2FsYWJsZSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRVc2VyU2NhbGFibGUpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRz
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBBcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDQtMTkg
IEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBBbHdheXMgdXNlIHRoZSBBbmltYXRpb25GcmFtZVJhdGVDb250cm9sbGVyIGZvciBhY2NlbGVy
YXRlZCBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4
IDhiNjExODc2MWEwYjk2MjI2MGJhYzRlNmJmOWFjOThiNzBlOWQwODcuLmZjZmY5Y2I2NzVhZWI1
MmQ4NDAwN2U1NDk2NTBmMmI5M2NkNjZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCkBAIC01NCw2ICs1NCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAg
ICAgYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0b3IuY3BwCiAgICAgYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIGJsYWNrYmVycnkvQXBpL1dlYlNl
dHRpbmdzLmNwcAorICAgIGJsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcAog
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhLmNwcAogICAgIGJsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2FjaGVDbGllbnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDMwYTcxMGJiMDE2M2M4OTU3Y2M3MDdm
N2EzZWJjMDNlZTA0OWQ2YTAuLjdmZWU0OWI1YjJhNTY3MDg1MGI0MjljMTJiNDkzMGU3ODI5ZmMw
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMTE1LDYg
KzExNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2VD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKKyNpbmNsdWRlICJXZWJWaWV3cG9ydEFy
Z3VtZW50cy5oIgogI2luY2x1ZGUgIm5wYXBpLmgiCiAjaW5jbHVkZSAicnVudGltZV9yb290Lmgi
CiAKQEAgLTI3OCw2ICsyNzksMTYgQEAgc3RhdGljIGlubGluZSBXZWJQYWdlOjpCYWNrRm9yd2Fy
ZElkIGJhY2tGb3J3YXJkSWRGcm9tSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGkKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlOjpCYWNrRm9yd2FyZElkPihpdGVtKTsKIH0KIAor
dm9pZCBXZWJQYWdlOjpzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViVmlld3BvcnRB
cmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQoreworICAgIGQtPm1fdXNlclZpZXdwb3J0QXJn
dW1lbnRzID0gKih2aWV3cG9ydEFyZ3VtZW50cy5kKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXNl
dFVzZXJWaWV3cG9ydEFyZ3VtZW50cygpCit7CisgICAgZC0+bV91c2VyVmlld3BvcnRBcmd1bWVu
dHMgPSBWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBXZWJQYWdlUHJpdmF0ZTo6V2ViUGFnZVBy
aXZhdGUoV2ViUGFnZSogd2ViUGFnZSwgV2ViUGFnZUNsaWVudCogY2xpZW50LCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGll
bnQpCkBAIC0zMTIzLDI0ICszMTM0LDI5IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRWaXJ0dWFsVmll
d3BvcnRPbkNvbW1pdHRlZChib29sIHJlc2V0KQogCiBJbnRTaXplIFdlYlBhZ2VQcml2YXRlOjpy
ZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMoKQogewotICAgIHN0
YXRpYyBWaWV3cG9ydEFyZ3VtZW50cyBkZWZhdWx0Vmlld3BvcnRBcmd1bWVudHM7Ci0gICAgaWYg
KG1fdmlld3BvcnRBcmd1bWVudHMgPT0gZGVmYXVsdFZpZXdwb3J0QXJndW1lbnRzKQotICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOworICAgIHN0YXRpYyBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyBk
ZWZhdWx0Vmlld3BvcnRBcmd1bWVudHM7CisgICAgVmlld3BvcnRBcmd1bWVudHMgY3VycmVudFZp
ZXdwb3J0QXJndW1lbnRzID0gbV92aWV3cG9ydEFyZ3VtZW50czsKKyAgICBpZiAoY3VycmVudFZp
ZXdwb3J0QXJndW1lbnRzID09IGRlZmF1bHRWaWV3cG9ydEFyZ3VtZW50cykgeworICAgICAgICBp
ZiAoY3VycmVudFZpZXdwb3J0QXJndW1lbnRzID09IG1fdXNlclZpZXdwb3J0QXJndW1lbnRzKQor
ICAgICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKworICAgICAgICBjdXJyZW50Vmlld3BvcnRB
cmd1bWVudHMgPSBtX3VzZXJWaWV3cG9ydEFyZ3VtZW50czsKKyAgICB9CiAKICAgICBpbnQgZGVz
a3RvcFdpZHRoID0gZGVmYXVsdE1heExheW91dFNpemUoKS53aWR0aCgpOwogICAgIGludCBkZXZp
Y2VXaWR0aCA9IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPndp
ZHRoKCk7CiAgICAgaW50IGRldmljZUhlaWdodCA9IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVu
OjpwcmltYXJ5U2NyZWVuKCktPmhlaWdodCgpOwogICAgIEZsb2F0U2l6ZSBjdXJyZW50UFBJID0g
UGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+cGl4ZWxzUGVySW5j
aCgtMSk7CiAgICAgaW50IGRldmljZURQSSA9IGludChyb3VuZGYoKGN1cnJlbnRQUEkud2lkdGgo
KSArIGN1cnJlbnRQUEkuaGVpZ2h0KCkpIC8gMikpOwotICAgIGlmIChtX3ZpZXdwb3J0QXJndW1l
bnRzLnRhcmdldERlbnNpdHlEcGkgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bworICAg
IGlmIChjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMudGFyZ2V0RGVuc2l0eURwaSA9PSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVBdXRvCiAgICAgICAgICYmICFQbGF0Zm9ybTo6RGV2aWNlSW5mbzo6
aW5zdGFuY2UoKS0+aXNNb2JpbGUoKSkgewogICAgICAgICAvLyBJZiB0aGUgY29udGVudCBwcm92
aWRlciBoYXNuJ3Qgc3BlY2lmaWVkIGEgdGFyZ2V0IGRwaSBhbmQgd2UgaGF2ZSBhIGxhcmdlCiAg
ICAgICAgIC8vIHNjcmVlbiB3ZSBhc3N1bWUgdGhlIGNvbnRlbnQgaXMgZmluZSBhbmQgc2V0IHRo
ZSB0YXJnZXREZW5zaXR5RHBpIHRvIG91ciBkcGkuCiAgICAgICAgIC8vIE9uIHNtYWxsZXIgc2Ny
ZWVuIG1vYmlsZSBkZXZpY2VzIHdlIHNraXAgdGhpcyBhbmQgdXNlIFdlYkNvcmUgZHBpIHNjYWxp
bmcuCi0gICAgICAgIG1fdmlld3BvcnRBcmd1bWVudHMudGFyZ2V0RGVuc2l0eURwaSA9IGRldmlj
ZURQSTsKKyAgICAgICAgY3VycmVudFZpZXdwb3J0QXJndW1lbnRzLnRhcmdldERlbnNpdHlEcGkg
PSBkZXZpY2VEUEk7CiAgICAgfQogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNv
bXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMobV92aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRo
LCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNp
emUpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzKGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0
aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNpemUpOwogICAgIG1f
cGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IocmVzdWx0LmRldmljZVBpeGVsUmF0aW8pOwogICAg
IHJldHVybiBJbnRTaXplKHJlc3VsdC5sYXlvdXRTaXplLndpZHRoKCksIHJlc3VsdC5sYXlvdXRT
aXplLmhlaWdodCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKaW5k
ZXggMTVkYzE3MzFiNjFkNWExYTFkODEwYmRiOTdiNGFiMmFlNmZhNzA3ZS4uMGFjNjQ1YWJjYzY1
ZDQ0YjNmYWJhNGYxYThmYzQ0YWIzNDJmZDY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAgY2xhc3MgV2ViUGFnZUNvbXBvc2l0b3I7CiBj
bGFzcyBXZWJQYWdlR3JvdXBMb2FkRGVmZXJyZXI7CiBjbGFzcyBXZWJQYWdlUHJpdmF0ZTsKIGNs
YXNzIFdlYlNldHRpbmdzOworY2xhc3MgV2ViVmlld3BvcnRBcmd1bWVudHM7CiAKIGVudW0gSmF2
YVNjcmlwdERhdGFUeXBlIHsgSlNVbmRlZmluZWQgPSAwLCBKU051bGwsIEpTQm9vbGVhbiwgSlNO
dW1iZXIsIEpTU3RyaW5nLCBKU09iamVjdCwgSlNFeGNlcHRpb24sIEpTRGF0YVR5cGVNYXggfTsK
IApAQCAtMzI4LDYgKzMyOSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVzdHJveVdlYlBhZ2VD
b21wb3NpdG9yKCk7CiAKKyAgICB2b2lkIHNldFVzZXJWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBX
ZWJWaWV3cG9ydEFyZ3VtZW50cyYpOworICAgIHZvaWQgcmVzZXRVc2VyVmlld3BvcnRBcmd1bWVu
dHMoKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJQYWdlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGVhYjg4NTM0NjRjZmI1OWYzOTJiMTcx
ZWMyOThiMGNlOTBiYWMyMDIuLmM4MzdmYTg5NzhhMzA3ODdjM2I5ZTEzNzRmOTgwMjg2MmU4YzBh
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtNDUwLDYg
KzQ1MCw3IEBAIHB1YmxpYzoKICAgICBpbnQgbV92aXJ0dWFsVmlld3BvcnRIZWlnaHQ7CiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX2RlZmF1bHRMYXlvdXRTaXplOwogICAgIFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzIG1fdmlld3BvcnRBcmd1bWVudHM7IC8vIFdlIGtlZXAgdGhpcyBhcm91bmQg
c2luY2Ugd2UgbWF5IG5lZWQgdG8gcmUtZXZhbHVhdGUgdGhlIGFyZ3VtZW50cyBvbiByb3RhdGlv
bi4KKyAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyBtX3VzZXJWaWV3cG9ydEFyZ3VtZW50
czsgLy8gQSBmYWxsYmFjayBzZXQgb2YgVmlld3BvcnQgQXJndW1lbnRzIHN1cHBsaWVkIGJ5IHRo
ZSBXZWJQYWdlQ2xpZW50CiAgICAgYm9vbCBtX2RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOwogICAg
IFZpZXdNb2RlIG1fdmlld01vZGU7CiAgICAgTG9hZFN0YXRlIG1fbG9hZFN0YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YmZkNDQ0ODliMmRlZWM5OGU0ODE1ZDViYzIxYWIzZTAzZDgzNDYzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9y
dEFyZ3VtZW50cy5jcHAKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlZpZXdw
b3J0QXJndW1lbnRzLmgiCisKKyNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgorCituYW1l
c3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVmlld3BvcnRBcmd1
bWVudHM6OldlYlZpZXdwb3J0QXJndW1lbnRzKCkKKyAgICA6ZChuZXcgV2ViQ29yZTo6Vmlld3Bv
cnRBcmd1bWVudHMoV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSkpCit7
Cit9CisKK1dlYlZpZXdwb3J0QXJndW1lbnRzOjp+V2ViVmlld3BvcnRBcmd1bWVudHMoKQorewor
ICAgIGRlbGV0ZSBkOworICAgIGQgPSAwOworfQorCitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50
czo6aW5pdGlhbFNjYWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+aW5pdGlhbFNjYWxlOwor
fQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRJbml0aWFsU2NhbGUoZmxvYXQgc2Nh
bGUpCit7CisgICAgZC0+aW5pdGlhbFNjYWxlID0gc2NhbGU7Cit9CisKK2Zsb2F0IFdlYlZpZXdw
b3J0QXJndW1lbnRzOjptaW5pbXVtU2NhbGUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5taW5p
bXVtU2NhbGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldE1pbmltdW1TY2Fs
ZShmbG9hdCBzY2FsZSkKK3sKKyAgICBkLT5taW5pbXVtU2NhbGUgPSBzY2FsZTsKK30KKworZmxv
YXQgV2ViVmlld3BvcnRBcmd1bWVudHM6Om1heGltdW1TY2FsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGQtPm1heGltdW1TY2FsZTsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0
TWF4aW11bVNjYWxlKGZsb2F0IHNjYWxlKQoreworICAgIGQtPm1heGltdW1TY2FsZSA9IHNjYWxl
OworfQorCitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6d2lkdGgoKSBjb25zdAoreworICAg
IHJldHVybiBkLT53aWR0aDsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0V2lk
dGgoZmxvYXQgd2lkdGgpCit7CisgICAgZC0+d2lkdGggPSB3aWR0aDsKK30KKworZmxvYXQgV2Vi
Vmlld3BvcnRBcmd1bWVudHM6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmhlaWdo
dDsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0SGVpZ2h0KGZsb2F0IGhlaWdo
dCkKK3sKKyAgICBkLT5oZWlnaHQgPSBoZWlnaHQ7Cit9CisKK2Zsb2F0IFdlYlZpZXdwb3J0QXJn
dW1lbnRzOjp0YXJnZXREZW5zaXR5RHBpKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+dGFyZ2V0
RGVuc2l0eURwaTsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0VGFyZ2V0RGVu
c2l0eURwaShmbG9hdCBkcGkpCit7CisgICAgZC0+dGFyZ2V0RGVuc2l0eURwaSA9IGRwaTsKK30K
KworZmxvYXQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnVzZXJTY2FsYWJsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGQtPnVzZXJTY2FsYWJsZTsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50
czo6c2V0VXNlclNjYWxhYmxlKGZsb2F0IHNjYWxhYmxlKQoreworICAgIGQtPnVzZXJTY2FsYWJs
ZSA9IHNjYWxhYmxlOworfQorCitib29sIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpvcGVyYXRvcj09
KGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikKK3sKKyAgICByZXR1cm4gKmQgPT0g
KihvdGhlci5kKTsKK30KKworYm9vbCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6b3BlcmF0b3IhPShj
b25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyYgb3RoZXIpCit7CisgICAgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEJs
YWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmll
d3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3Bv
cnRBcmd1bWVudHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTI3MzVjM2NmNmJmN2ZlNDc3ODdhZWQ3NTg4ZTVl
YjQyN2YyYzFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJWaWV3cG9ydEFyZ3VtZW50c19o
CisjZGVmaW5lIFdlYlZpZXdwb3J0QXJndW1lbnRzX2gKKworI2luY2x1ZGUgIkJsYWNrQmVycnlH
bG9iYWwuaCIKKworLy8gTm90IGZvciBwdWJsaWMgQVBJIHB1cnBvc2UuCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBWaWV3cG9ydEFyZ3VtZW50czsKK30KKworbmFtZXNwYWNlIEJsYWNrQmVy
cnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKKy8qKgorICogQSBj
bGFzcyBkZXNpZ25lZCB0byBleHBvc2UgYSBtZXRhIHZpZXdwb3J0IGZhbGxiYWNrLgorICoKKyAq
IFRoaXMgY2xhc3Mgc2ltcGx5IHdyYXBzIGEgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMuIEl0
IGNhbiBiZQorICogaW5zdGFudGlhdGVkIGJ5IHRoZSBXZWJQYWdlQ2xpZW50IGFuZCBzdXBwbGll
ZCB0byBhIFdlYlBhZ2UgdG8KKyAqIHByb3ZpZGUgYSB1c2VyVmlld3BvcnRBcmd1bWVudHMgb2Jq
ZWN0IHRoYXQgY2FuIGJlIHVzZWQgd2hlbmV2ZXIKKyAqIHRoZXJlIGlzIG5vIG1ldGEgdmlld3Bv
cnQgdGFnIHByb3ZpZGVkIGluIGFueSBsb2FkZWQgaHRtbC4KKyAqLworY2xhc3MgQkxBQ0tCRVJS
WV9FWFBPUlQgV2ViVmlld3BvcnRBcmd1bWVudHMgeworcHVibGljOgorICAgIFdlYlZpZXdwb3J0
QXJndW1lbnRzKCk7CisgICAgfldlYlZpZXdwb3J0QXJndW1lbnRzKCk7CisKKyAgICAvLyBUaGlz
IG1hdGNoZXMgdGhlIGVudW0gZm91bmQgaW4gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMKKyAg
ICBlbnVtIHsKKyAgICAgICAgVmFsdWVBdXRvID0gLTEsCisgICAgICAgIFZhbHVlRGVza3RvcFdp
ZHRoID0gLTIsCisgICAgICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMywKKyAgICAgICAgVmFsdWVE
ZXZpY2VIZWlnaHQgPSAtNCwKKyAgICAgICAgVmFsdWVEZXZpY2VEUEkgPSAtNSwKKyAgICAgICAg
VmFsdWVMb3dEUEkgPSAtNiwKKyAgICAgICAgVmFsdWVNZWRpdW1EUEkgPSAtNywKKyAgICAgICAg
VmFsdWVIaWdoRFBJID0gLTgKKyAgICB9OworCisgICAgZmxvYXQgaW5pdGlhbFNjYWxlKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRJbml0aWFsU2NhbGUoZmxvYXQpOworCisgICAgZmxvYXQgbWluaW11
bVNjYWxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRNaW5pbXVtU2NhbGUoZmxvYXQpOworCisgICAg
ZmxvYXQgbWF4aW11bVNjYWxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRNYXhpbXVtU2NhbGUoZmxv
YXQpOworCisgICAgZmxvYXQgd2lkdGgoKSBjb25zdDsKKyAgICB2b2lkIHNldFdpZHRoKGZsb2F0
KTsKKworICAgIGZsb2F0IGhlaWdodCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVpZ2h0KGZsb2F0
KTsKKworICAgIGZsb2F0IHRhcmdldERlbnNpdHlEcGkoKSBjb25zdDsKKyAgICB2b2lkIHNldFRh
cmdldERlbnNpdHlEcGkoZmxvYXQpOworCisgICAgZmxvYXQgdXNlclNjYWxhYmxlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRVc2VyU2NhbGFibGUoZmxvYXQpOworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzICZvdGhlcik7CisgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzICZvdGhlcik7CisKK3ByaXZhdGU6CisgICAgV2Vi
Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyogZDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3Mg
V2ViUGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorfSAvLyBuYW1lc3BhY2UgQmxh
Y2tCZXJyeQorCisjZW5kaWYgLy8gV2ViVmlld3BvcnRBcmd1bWVudHNfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138130</attachid>
            <date>2012-04-20 11:37:33 -0700</date>
            <delta_ts>2012-04-20 12:22:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84471-20120420143744.patch</filename>
            <type>text/plain</type>
            <size>14757</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyOTY0OTJhMWU4Y2Q1ZmQw
ZWJjMzk5YjliMjczZTcxMDg3MTMzNjkuLmJhZjIyZjQ5NTYwZjgzYjFmNTUzOTE3N2E1ZTg4MmI3
NzViYTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDQtMjAgIE1pa2UgTGF0
dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBv
c2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZToKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9z
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2VjdXJpdHkgT3JpZ2luIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMjhlZjE5ZDYzZDM1OTY3ZDM5NTYzNWRkMmIy
NDdmMTNjMjYwMTcyNi4uMDA0NmU3MDgxNmE2MWZhN2YyNTNkMjFhZTRhZDhjMzhjYmY2M2VlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDQt
MjAgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFj
a0JlcnJ5XSBFeHBvc2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIGFiaWxpdHkgZm9yIHRoZSBXZWJQYWdlQ2xpZW50IHRvIHNwZWNp
ZnkgYSBmYWxsYmFjaworICAgICAgICB2aXJ0dWFsIHZpZXdwb3J0IHRvIGJlIHVzZWQgd2hlbmV2
ZXIgYSBtZXRhIHZpZXdwb3J0IHRhZyBpcyBub3QKKyAgICAgICAgcHJlc2VudCBpbiB0aGUgSFRN
TC4gVGhpcyBjYW4gZHJhc3RpY2FsbHkgaW1wYWN0IGFwcGFyZW50IGxheW91dC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgYSBjbGFzc2ljICJDb2x1bW4gVmll
dyIgc3R5bGUgb2YKKyAgICAgICAgbGF5b3V0IHdpdGhvdXQgYnJlYWtpbmcgdGhlIHdlYiBieSBz
aW1wbHkgZXhwb3NpbmcgbWV0YSB2aWV3cG9ydAorICAgICAgICBhcmd1bWVudHMgdG8gV2ViUGFn
ZUNsaWVudHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2U6OnNldFVzZXJWaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpyZXNldFVzZXJWaWV3cG9ydEFyZ3VtZW50
cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpyZWNvbXB1
dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAqIEFwaS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoK
KyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBBcGkvV2ViVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OjpkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRB
cmd1bWVudHM6On5XZWJWaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjppbml0aWFsU2NhbGUpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0SW5pdGlhbFNjYWxlKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6Om1pbmlt
dW1TY2FsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1l
bnRzOjpzZXRNaW5pbXVtU2NhbGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJW
aWV3cG9ydEFyZ3VtZW50czo6bWF4aW11bVNjYWxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNldE1heGltdW1TY2FsZSk6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjp3aWR0aCk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRXaWR0aCk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpoZWlnaHQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0
SGVpZ2h0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVu
dHM6OnRhcmdldERlbnNpdHlEcGkpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJW
aWV3cG9ydEFyZ3VtZW50czo6c2V0VGFyZ2V0RGVuc2l0eURwaSk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjp1c2VyU2NhbGFibGUpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0VXNlclNjYWxh
YmxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6
Om9wZXJhdG9yPT0pOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFy
Z3VtZW50czo6b3BlcmF0b3IhPSk6CisgICAgICAgICogQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRz
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEy
LTA0LTE5ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAogICAgICAgICBbQmxh
Y2tCZXJyeV0gQWx3YXlzIHVzZSB0aGUgQW5pbWF0aW9uRnJhbWVSYXRlQ29udHJvbGxlciBmb3Ig
YWNjZWxlcmF0ZWQgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQppbmRleCA4YjYxMTg3NjFhMGI5NjIyNjBiYWM0ZTZiZjlhYzk4YjcwZTlkMDg3Li5mY2ZmOWNi
Njc1YWViNTJkODQwMDdlNTQ5NjUwZjJiOTNjZDY2YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZQpAQCAtNTQsNiArNTQsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09V
UkNFUwogICAgIGJsYWNrYmVycnkvQXBpL1dlYlBhZ2VDb21wb3NpdG9yLmNwcAogICAgIGJsYWNr
YmVycnkvQXBpL1dlYlBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBibGFja2JlcnJ5L0Fw
aS9XZWJTZXR0aW5ncy5jcHAKKyAgICBibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50
cy5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NhY2hlQ2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAzMGE3MTBiYjAxNjNjODk1
N2NjNzA3ZjdhM2ViYzAzZWUwNDlkNmEwLi43ZmVlNDliNWIyYTU2NzA4NTBiNDI5YzEyYjQ5MzBl
NzgyOWZjMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAg
LTExNSw2ICsxMTUsNyBAQAogI2luY2x1ZGUgIldlYktpdFZlcnNpb24uaCIKICNpbmNsdWRlICJX
ZWJQYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0LmgiCisjaW5jbHVkZSAiV2ViVmll
d3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJucGFwaS5oIgogI2luY2x1ZGUgInJ1bnRpbWVf
cm9vdC5oIgogCkBAIC0yNzgsNiArMjc5LDE2IEBAIHN0YXRpYyBpbmxpbmUgV2ViUGFnZTo6QmFj
a0ZvcndhcmRJZCBiYWNrRm9yd2FyZElkRnJvbUhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpCiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZTo6QmFja0ZvcndhcmRJZD4oaXRlbSk7
CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYlZp
ZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKK3sKKyAgICBkLT5tX3VzZXJWaWV3
cG9ydEFyZ3VtZW50cyA9ICoodmlld3BvcnRBcmd1bWVudHMuZCk7Cit9CisKK3ZvaWQgV2ViUGFn
ZTo6cmVzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoKQoreworICAgIGQtPm1fdXNlclZpZXdwb3J0
QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKK30KKwogV2ViUGFnZVByaXZhdGU6Oldl
YlBhZ2VQcml2YXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYlBhZ2VDbGllbnQqIGNsaWVudCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogICAgICwgbV9jbGll
bnQoY2xpZW50KQpAQCAtMzEyMywyNCArMzEzNCwyOSBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0Vmly
dHVhbFZpZXdwb3J0T25Db21taXR0ZWQoYm9vbCByZXNldCkKIAogSW50U2l6ZSBXZWJQYWdlUHJp
dmF0ZTo6cmVjb21wdXRlVmlydHVhbFZpZXdwb3J0RnJvbVZpZXdwb3J0QXJndW1lbnRzKCkKIHsK
LSAgICBzdGF0aWMgVmlld3BvcnRBcmd1bWVudHMgZGVmYXVsdFZpZXdwb3J0QXJndW1lbnRzOwot
ICAgIGlmIChtX3ZpZXdwb3J0QXJndW1lbnRzID09IGRlZmF1bHRWaWV3cG9ydEFyZ3VtZW50cykK
LSAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKyAgICBzdGF0aWMgY29uc3QgVmlld3BvcnRBcmd1
bWVudHMgZGVmYXVsdFZpZXdwb3J0QXJndW1lbnRzOworICAgIFZpZXdwb3J0QXJndW1lbnRzIGN1
cnJlbnRWaWV3cG9ydEFyZ3VtZW50cyA9IG1fdmlld3BvcnRBcmd1bWVudHM7CisgICAgaWYgKGN1
cnJlbnRWaWV3cG9ydEFyZ3VtZW50cyA9PSBkZWZhdWx0Vmlld3BvcnRBcmd1bWVudHMpIHsKKyAg
ICAgICAgaWYgKGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cyA9PSBtX3VzZXJWaWV3cG9ydEFyZ3Vt
ZW50cykKKyAgICAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICAgICAgY3VycmVudFZp
ZXdwb3J0QXJndW1lbnRzID0gbV91c2VyVmlld3BvcnRBcmd1bWVudHM7CisgICAgfQogCiAgICAg
aW50IGRlc2t0b3BXaWR0aCA9IGRlZmF1bHRNYXhMYXlvdXRTaXplKCkud2lkdGgoKTsKICAgICBp
bnQgZGV2aWNlV2lkdGggPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVl
bigpLT53aWR0aCgpOwogICAgIGludCBkZXZpY2VIZWlnaHQgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6
OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5oZWlnaHQoKTsKICAgICBGbG9hdFNpemUgY3VycmVu
dFBQSSA9IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPnBpeGVs
c1BlckluY2goLTEpOwogICAgIGludCBkZXZpY2VEUEkgPSBpbnQocm91bmRmKChjdXJyZW50UFBJ
LndpZHRoKCkgKyBjdXJyZW50UFBJLmhlaWdodCgpKSAvIDIpKTsKLSAgICBpZiAobV92aWV3cG9y
dEFyZ3VtZW50cy50YXJnZXREZW5zaXR5RHBpID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1
dG8KKyAgICBpZiAoY3VycmVudFZpZXdwb3J0QXJndW1lbnRzLnRhcmdldERlbnNpdHlEcGkgPT0g
Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bwogICAgICAgICAmJiAhUGxhdGZvcm06OkRldmlj
ZUluZm86Omluc3RhbmNlKCktPmlzTW9iaWxlKCkpIHsKICAgICAgICAgLy8gSWYgdGhlIGNvbnRl
bnQgcHJvdmlkZXIgaGFzbid0IHNwZWNpZmllZCBhIHRhcmdldCBkcGkgYW5kIHdlIGhhdmUgYSBs
YXJnZQogICAgICAgICAvLyBzY3JlZW4gd2UgYXNzdW1lIHRoZSBjb250ZW50IGlzIGZpbmUgYW5k
IHNldCB0aGUgdGFyZ2V0RGVuc2l0eURwaSB0byBvdXIgZHBpLgogICAgICAgICAvLyBPbiBzbWFs
bGVyIHNjcmVlbiBtb2JpbGUgZGV2aWNlcyB3ZSBza2lwIHRoaXMgYW5kIHVzZSBXZWJDb3JlIGRw
aSBzY2FsaW5nLgotICAgICAgICBtX3ZpZXdwb3J0QXJndW1lbnRzLnRhcmdldERlbnNpdHlEcGkg
PSBkZXZpY2VEUEk7CisgICAgICAgIGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cy50YXJnZXREZW5z
aXR5RHBpID0gZGV2aWNlRFBJOwogICAgIH0KIAotICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1
bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0
b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBtX2RlZmF1bHRM
YXlvdXRTaXplKTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0ID0gY29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlcyhjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2
aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBtX2RlZmF1bHRMYXlvdXRTaXplKTsK
ICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlv
KTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCByZXN1bHQu
bGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5oCmluZGV4IDE1ZGMxNzMxYjYxZDVhMWExZDgxMGJkYjk3YjRhYjJhZTZmYTcwN2UuLjBhYzY0
NWFiY2M2NWQ0NGIzZmFiYTRmMWE4ZmM0NGFiMzQyZmQ2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBAIGNsYXNzIFdlYlBhZ2VDb21wb3Np
dG9yOwogY2xhc3MgV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyOwogY2xhc3MgV2ViUGFnZVByaXZh
dGU7CiBjbGFzcyBXZWJTZXR0aW5nczsKK2NsYXNzIFdlYlZpZXdwb3J0QXJndW1lbnRzOwogCiBl
bnVtIEphdmFTY3JpcHREYXRhVHlwZSB7IEpTVW5kZWZpbmVkID0gMCwgSlNOdWxsLCBKU0Jvb2xl
YW4sIEpTTnVtYmVyLCBKU1N0cmluZywgSlNPYmplY3QsIEpTRXhjZXB0aW9uLCBKU0RhdGFUeXBl
TWF4IH07CiAKQEAgLTMyOCw2ICszMjksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlc3Ryb3lX
ZWJQYWdlQ29tcG9zaXRvcigpOwogCisgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMo
Y29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICB2b2lkIHJlc2V0VXNlclZpZXdwb3J0
QXJndW1lbnRzKCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB+V2ViUGFnZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBlYWI4ODUzNDY0Y2ZiNTlm
MzkyYjE3MWVjMjk4YjBjZTkwYmFjMjAyLi5jODM3ZmE4OTc4YTMwNzg3YzNiOWUxMzc0Zjk4MDI4
NjJlOGMwYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAg
LTQ1MCw2ICs0NTAsNyBAQCBwdWJsaWM6CiAgICAgaW50IG1fdmlydHVhbFZpZXdwb3J0SGVpZ2h0
OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9kZWZhdWx0TGF5b3V0U2l6ZTsKICAgICBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOyAvLyBXZSBrZWVwIHRoaXMg
YXJvdW5kIHNpbmNlIHdlIG1heSBuZWVkIHRvIHJlLWV2YWx1YXRlIHRoZSBhcmd1bWVudHMgb24g
cm90YXRpb24uCisgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgbV91c2VyVmlld3BvcnRB
cmd1bWVudHM7IC8vIEEgZmFsbGJhY2sgc2V0IG9mIFZpZXdwb3J0IEFyZ3VtZW50cyBzdXBwbGll
ZCBieSB0aGUgV2ViUGFnZUNsaWVudAogICAgIGJvb2wgbV9kaWRSZXN0b3JlRnJvbVBhZ2VDYWNo
ZTsKICAgICBWaWV3TW9kZSBtX3ZpZXdNb2RlOwogICAgIExvYWRTdGF0ZSBtX2xvYWRTdGF0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1
bWVudHMuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFyZ3Vt
ZW50cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJmZDQ0NDg5YjJkZWVjOThlNDgxNWQ1YmMyMWFiM2UwM2Q4
MzQ2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
Vmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJWaWV3cG9ydEFyZ3VtZW50cy5oIgorCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIK
KworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlZpZXdw
b3J0QXJndW1lbnRzOjpXZWJWaWV3cG9ydEFyZ3VtZW50cygpCisgICAgOmQobmV3IFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpWaWV3cG9ydE1l
dGEpKQoreworfQorCitXZWJWaWV3cG9ydEFyZ3VtZW50czo6fldlYlZpZXdwb3J0QXJndW1lbnRz
KCkKK3sKKyAgICBkZWxldGUgZDsKKyAgICBkID0gMDsKK30KKworZmxvYXQgV2ViVmlld3BvcnRB
cmd1bWVudHM6OmluaXRpYWxTY2FsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmluaXRpYWxT
Y2FsZTsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0SW5pdGlhbFNjYWxlKGZs
b2F0IHNjYWxlKQoreworICAgIGQtPmluaXRpYWxTY2FsZSA9IHNjYWxlOworfQorCitmbG9hdCBX
ZWJWaWV3cG9ydEFyZ3VtZW50czo6bWluaW11bVNjYWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZC0+bWluaW11bVNjYWxlOworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRNaW5p
bXVtU2NhbGUoZmxvYXQgc2NhbGUpCit7CisgICAgZC0+bWluaW11bVNjYWxlID0gc2NhbGU7Cit9
CisKK2Zsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjptYXhpbXVtU2NhbGUoKSBjb25zdAorewor
ICAgIHJldHVybiBkLT5tYXhpbXVtU2NhbGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVu
dHM6OnNldE1heGltdW1TY2FsZShmbG9hdCBzY2FsZSkKK3sKKyAgICBkLT5tYXhpbXVtU2NhbGUg
PSBzY2FsZTsKK30KKworZmxvYXQgV2ViVmlld3BvcnRBcmd1bWVudHM6OndpZHRoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZC0+d2lkdGg7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6
OnNldFdpZHRoKGZsb2F0IHdpZHRoKQoreworICAgIGQtPndpZHRoID0gd2lkdGg7Cit9CisKK2Zs
b2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBk
LT5oZWlnaHQ7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldEhlaWdodChmbG9h
dCBoZWlnaHQpCit7CisgICAgZC0+aGVpZ2h0ID0gaGVpZ2h0OworfQorCitmbG9hdCBXZWJWaWV3
cG9ydEFyZ3VtZW50czo6dGFyZ2V0RGVuc2l0eURwaSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQt
PnRhcmdldERlbnNpdHlEcGk7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFRh
cmdldERlbnNpdHlEcGkoZmxvYXQgZHBpKQoreworICAgIGQtPnRhcmdldERlbnNpdHlEcGkgPSBk
cGk7Cit9CisKK2Zsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp1c2VyU2NhbGFibGUoKSBjb25z
dAoreworICAgIHJldHVybiBkLT51c2VyU2NhbGFibGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRB
cmd1bWVudHM6OnNldFVzZXJTY2FsYWJsZShmbG9hdCBzY2FsYWJsZSkKK3sKKyAgICBkLT51c2Vy
U2NhbGFibGUgPSBzY2FsYWJsZTsKK30KKworYm9vbCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6b3Bl
cmF0b3I9PShjb25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyYgb3RoZXIpCit7CisgICAgcmV0dXJu
ICpkID09ICoob3RoZXIuZCk7Cit9CisKK2Jvb2wgV2ViVmlld3BvcnRBcmd1bWVudHM6Om9wZXJh
dG9yIT0oY29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMmIG90aGVyKQoreworICAgIHJldHVybiAh
KCp0aGlzID09IG90aGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVz
cGFjZSBCbGFja0JlcnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlZpZXdwb3J0QXJndW1lbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyNzM1YzNjZjZiZjdmZTQ3Nzg3YWVk
NzU4OGU1ZWI0MjdmMmMxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaApAQCAtMCwwICsxLDk0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2ViVmlld3BvcnRBcmd1
bWVudHNfaAorI2RlZmluZSBXZWJWaWV3cG9ydEFyZ3VtZW50c19oCisKKyNpbmNsdWRlICJCbGFj
a0JlcnJ5R2xvYmFsLmgiCisKKy8vIE5vdCBmb3IgcHVibGljIEFQSSBwdXJwb3NlLgorbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgVmlld3BvcnRBcmd1bWVudHM7Cit9CisKK25hbWVzcGFjZSBC
bGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCisvKioK
KyAqIEEgY2xhc3MgZGVzaWduZWQgdG8gZXhwb3NlIGEgbWV0YSB2aWV3cG9ydCBmYWxsYmFjay4K
KyAqCisgKiBUaGlzIGNsYXNzIHNpbXBseSB3cmFwcyBhIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzLiBJdCBjYW4gYmUKKyAqIGluc3RhbnRpYXRlZCBieSB0aGUgV2ViUGFnZUNsaWVudCBhbmQg
c3VwcGxpZWQgdG8gYSBXZWJQYWdlIHRvCisgKiBwcm92aWRlIGEgdXNlclZpZXdwb3J0QXJndW1l
bnRzIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHdoZW5ldmVyCisgKiB0aGVyZSBpcyBubyBtZXRh
IHZpZXdwb3J0IHRhZyBwcm92aWRlZCBpbiBhbnkgbG9hZGVkIGh0bWwuCisgKi8KK2NsYXNzIEJM
QUNLQkVSUllfRVhQT1JUIFdlYlZpZXdwb3J0QXJndW1lbnRzIHsKK3B1YmxpYzoKKyAgICBXZWJW
aWV3cG9ydEFyZ3VtZW50cygpOworICAgIH5XZWJWaWV3cG9ydEFyZ3VtZW50cygpOworCisgICAg
Ly8gVGhpcyBtYXRjaGVzIHRoZSBlbnVtIGZvdW5kIGluIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzCisgICAgZW51bSB7CisgICAgICAgIFZhbHVlQXV0byA9IC0xLAorICAgICAgICBWYWx1ZURl
c2t0b3BXaWR0aCA9IC0yLAorICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCisgICAgICAg
IFZhbHVlRGV2aWNlSGVpZ2h0ID0gLTQsCisgICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCisg
ICAgICAgIFZhbHVlTG93RFBJID0gLTYsCisgICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCisg
ICAgICAgIFZhbHVlSGlnaERQSSA9IC04CisgICAgfTsKKworICAgIGZsb2F0IGluaXRpYWxTY2Fs
ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0SW5pdGlhbFNjYWxlKGZsb2F0KTsKKworICAgIGZsb2F0
IG1pbmltdW1TY2FsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TWluaW11bVNjYWxlKGZsb2F0KTsK
KworICAgIGZsb2F0IG1heGltdW1TY2FsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TWF4aW11bVNj
YWxlKGZsb2F0KTsKKworICAgIGZsb2F0IHdpZHRoKCkgY29uc3Q7CisgICAgdm9pZCBzZXRXaWR0
aChmbG9hdCk7CisKKyAgICBmbG9hdCBoZWlnaHQoKSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdo
dChmbG9hdCk7CisKKyAgICBmbG9hdCB0YXJnZXREZW5zaXR5RHBpKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRUYXJnZXREZW5zaXR5RHBpKGZsb2F0KTsKKworICAgIGZsb2F0IHVzZXJTY2FsYWJsZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0VXNlclNjYWxhYmxlKGZsb2F0KTsKKworICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyAmb3RoZXIpOworICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyAmb3RoZXIpOworCitwcml2YXRlOgor
ICAgIFdlYlZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzJik7Cisg
ICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMqIGQ7CisKK3ByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIFdlYlBhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNw
YWNlIEJsYWNrQmVycnkKKworI2VuZGlmIC8vIFdlYlZpZXdwb3J0QXJndW1lbnRzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138144</attachid>
            <date>2012-04-20 12:22:58 -0700</date>
            <delta_ts>2012-04-20 12:56:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84471-20120420152316.patch</filename>
            <type>text/plain</type>
            <size>15489</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyOTY0OTJhMWU4Y2Q1ZmQw
ZWJjMzk5YjliMjczZTcxMDg3MTMzNjkuLmJhZjIyZjQ5NTYwZjgzYjFmNTUzOTE3N2E1ZTg4MmI3
NzViYTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDQtMjAgIE1pa2UgTGF0
dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBv
c2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZToKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9z
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2VjdXJpdHkgT3JpZ2luIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMjhlZjE5ZDYzZDM1OTY3ZDM5NTYzNWRkMmIy
NDdmMTNjMjYwMTcyNi4uNjM5NmI0OGU4Y2JhZGUzZTI4MjY4YTI3YzQ2ZGVmOWUwODliMGFjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDQt
MjAgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFj
a0JlcnJ5XSBFeHBvc2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhl
IGFiaWxpdHkgZm9yIHRoZSBXZWJQYWdlQ2xpZW50IHRvIHNwZWNpZnkgYSBmYWxsYmFjaworICAg
ICAgICB2aXJ0dWFsIHZpZXdwb3J0IHRvIGJlIHVzZWQgd2hlbmV2ZXIgYSBtZXRhIHZpZXdwb3J0
IHRhZyBpcyBub3QKKyAgICAgICAgcHJlc2VudCBpbiB0aGUgSFRNTC4gVGhpcyBjYW4gZHJhc3Rp
Y2FsbHkgaW1wYWN0IGFwcGFyZW50IGxheW91dC4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBkZXNp
Z25lZCB0byBwcm92aWRlIGEgY2xhc3NpYyAiQ29sdW1uIFZpZXciIHN0eWxlIG9mCisgICAgICAg
IGxheW91dCB3aXRob3V0IGJyZWFraW5nIHRoZSB3ZWIgYnkgc2ltcGx5IGV4cG9zaW5nIG1ldGEg
dmlld3BvcnQKKyAgICAgICAgYXJndW1lbnRzIHRvIFdlYlBhZ2VDbGllbnRzLgorCisgICAgICAg
IE5vdGU6IEFzIGEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBjaGFuZ2UuIHRoZSBXZWJQYWdlUHJpdmF0
ZTo6CisgICAgICAgIHJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50
cyBtZXRob2Qgbm8gbG9uZ2VyCisgICAgICAgIG1vZGlmaWVzIHRoZSB0YXJnZXREZW5zaXR5RHBp
IHByb3BlcnR5IG9mIHRoZSBtX3ZpZXdwb3J0QXJndW1lbnRzLgorICAgICAgICBIb3dldmVyIHRo
aXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjbGFzcyBiZWNhdXNlIHRoYXQgcHJvcGVydHkgaXRzZWxm
CisgICAgICAgIG1lYW5zIG5vdGhpbmcgdG8gdXMuIE9ubHkgdGhlIGNvbXB1dGVWaWV3cG9ydEFy
Z3VtZW50cyBtZXRob2QgZnJvbQorICAgICAgICBXZWJDb3JlIHVzZXMgaXQsIGFuZCB0aGUgY3Vy
cmVudFZpZXdwb3J0QXJndW1lbnRzIG9iamVjdCB3ZSBwYXNzCisgICAgICAgIGludG8gdGhhdCBt
ZXRob2QgaGFzIHRoZSBhZGp1c3RlZCB0YXJnZXREZW5zaXR5RHBpIHZhbHVlIGFzIGJlZm9yZS4K
KworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViUGFnZTo6c2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VXNlclZpZXdwb3J0
QXJndW1lbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
OnJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAg
ICogQXBpL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBh
Z2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIEFwaS9XZWJWaWV3
cG9ydEFyZ3VtZW50cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6OmQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJW
aWV3cG9ydEFyZ3VtZW50czo6fldlYlZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OmluaXRpYWxTY2FsZSk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRJbml0aWFs
U2NhbGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50
czo6bWluaW11bVNjYWxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3Bv
cnRBcmd1bWVudHM6OnNldE1pbmltdW1TY2FsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjptYXhpbXVtU2NhbGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0TWF4aW11bVNjYWxlKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OndpZHRoKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFdp
ZHRoKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6
OmhlaWdodCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1l
bnRzOjpzZXRIZWlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9y
dEFyZ3VtZW50czo6dGFyZ2V0RGVuc2l0eURwaSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRUYXJnZXREZW5zaXR5RHBpKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnVzZXJTY2FsYWJsZSk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRV
c2VyU2NhbGFibGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFy
Z3VtZW50czo6b3BlcmF0b3I9PSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZp
ZXdwb3J0QXJndW1lbnRzOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBBcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisKIDIwMTItMDQtMTkgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBBbHdheXMgdXNlIHRoZSBBbmltYXRpb25GcmFtZVJhdGVDb250cm9s
bGVyIGZvciBhY2NlbGVyYXRlZCBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDhiNjExODc2MWEwYjk2MjI2MGJhYzRlNmJmOWFjOThiNzBlOWQwODcu
LmZjZmY5Y2I2NzVhZWI1MmQ4NDAwN2U1NDk2NTBmMmI5M2NkNjZiM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC01NCw2ICs1NCw3IEBAIExJU1QoQVBQRU5EIFdl
YktpdF9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0b3IuY3BwCiAg
ICAgYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIGJsYWNr
YmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcAorICAgIGJsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0
QXJndW1lbnRzLmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhLmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2FjaGVDbGllbnRCbGFja0JlcnJ5LmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDMwYTcxMGJi
MDE2M2M4OTU3Y2M3MDdmN2EzZWJjMDNlZTA0OWQ2YTAuLjQ1OTBiMTQzODQ3OTMyYTVhMWU0MjI5
M2MyZjEyZWUxOGQ4N2JkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcApAQCAtMTE1LDYgKzExNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VmVyc2lvbi5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKKyNpbmNsdWRl
ICJXZWJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIm5wYXBpLmgiCiAjaW5jbHVkZSAi
cnVudGltZV9yb290LmgiCiAKQEAgLTI3OCw2ICsyNzksMTYgQEAgc3RhdGljIGlubGluZSBXZWJQ
YWdlOjpCYWNrRm9yd2FyZElkIGJhY2tGb3J3YXJkSWRGcm9tSGlzdG9yeUl0ZW0oSGlzdG9yeUl0
ZW0qIGkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlOjpCYWNrRm9yd2FyZElk
PihpdGVtKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoY29u
c3QgV2ViVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQoreworICAgIGQtPm1f
dXNlclZpZXdwb3J0QXJndW1lbnRzID0gKih2aWV3cG9ydEFyZ3VtZW50cy5kKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpyZXNldFVzZXJWaWV3cG9ydEFyZ3VtZW50cygpCit7CisgICAgZC0+bV91c2Vy
Vmlld3BvcnRBcmd1bWVudHMgPSBWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBXZWJQYWdlUHJp
dmF0ZTo6V2ViUGFnZVByaXZhdGUoV2ViUGFnZSogd2ViUGFnZSwgV2ViUGFnZUNsaWVudCogY2xp
ZW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCkBAIC0zMTIzLDI0ICszMTM0LDMzIEBAIHZvaWQgV2ViUGFnZTo6
cmVzZXRWaXJ0dWFsVmlld3BvcnRPbkNvbW1pdHRlZChib29sIHJlc2V0KQogCiBJbnRTaXplIFdl
YlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVu
dHMoKQogewotICAgIHN0YXRpYyBWaWV3cG9ydEFyZ3VtZW50cyBkZWZhdWx0Vmlld3BvcnRBcmd1
bWVudHM7Ci0gICAgaWYgKG1fdmlld3BvcnRBcmd1bWVudHMgPT0gZGVmYXVsdFZpZXdwb3J0QXJn
dW1lbnRzKQotICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworICAgIHN0YXRpYyBjb25zdCBWaWV3
cG9ydEFyZ3VtZW50cyBkZWZhdWx0Vmlld3BvcnRBcmd1bWVudHM7CisKKyAgICAvLyBXaGVuIGNh
bGN1bGF0aW5nIGEgdmlydHVhbCB2aWV3cG9ydCBmb3IgbGF5b3V0IHdlIHByaW9yaXRpemUgdGhl
CisgICAgLy8gbV92aWV3cG9ydEFyZ3VtZW50cyBmcm9tIFdlYkNvcmUgb3ZlciB0aGUgbV91c2Vy
Vmlld3BvcnRBcmd1bWVudHMuCisgICAgLy8gSWYgYm90aCBhcmUgZW1wdHksIHdlIGRvIG5vdCB1
c2UgYSB2aXJ0dWFsIHZpZXdwb3J0LgorICAgIFZpZXdwb3J0QXJndW1lbnRzIGN1cnJlbnRWaWV3
cG9ydEFyZ3VtZW50cyA9IG1fdmlld3BvcnRBcmd1bWVudHM7CisgICAgaWYgKGN1cnJlbnRWaWV3
cG9ydEFyZ3VtZW50cyA9PSBkZWZhdWx0Vmlld3BvcnRBcmd1bWVudHMpIHsKKyAgICAgICAgaWYg
KGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cyA9PSBtX3VzZXJWaWV3cG9ydEFyZ3VtZW50cykKKyAg
ICAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICAgICAgY3VycmVudFZpZXdwb3J0QXJn
dW1lbnRzID0gbV91c2VyVmlld3BvcnRBcmd1bWVudHM7CisgICAgfQogCiAgICAgaW50IGRlc2t0
b3BXaWR0aCA9IGRlZmF1bHRNYXhMYXlvdXRTaXplKCkud2lkdGgoKTsKICAgICBpbnQgZGV2aWNl
V2lkdGggPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT53aWR0
aCgpOwogICAgIGludCBkZXZpY2VIZWlnaHQgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNjcmVlbjo6
cHJpbWFyeVNjcmVlbigpLT5oZWlnaHQoKTsKICAgICBGbG9hdFNpemUgY3VycmVudFBQSSA9IFBs
YXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPnBpeGVsc1BlckluY2go
LTEpOwogICAgIGludCBkZXZpY2VEUEkgPSBpbnQocm91bmRmKChjdXJyZW50UFBJLndpZHRoKCkg
KyBjdXJyZW50UFBJLmhlaWdodCgpKSAvIDIpKTsKLSAgICBpZiAobV92aWV3cG9ydEFyZ3VtZW50
cy50YXJnZXREZW5zaXR5RHBpID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8KKyAgICBp
ZiAoY3VycmVudFZpZXdwb3J0QXJndW1lbnRzLnRhcmdldERlbnNpdHlEcGkgPT0gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlQXV0bwogICAgICAgICAmJiAhUGxhdGZvcm06OkRldmljZUluZm86Omlu
c3RhbmNlKCktPmlzTW9iaWxlKCkpIHsKICAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnQgcHJvdmlk
ZXIgaGFzbid0IHNwZWNpZmllZCBhIHRhcmdldCBkcGkgYW5kIHdlIGhhdmUgYSBsYXJnZQogICAg
ICAgICAvLyBzY3JlZW4gd2UgYXNzdW1lIHRoZSBjb250ZW50IGlzIGZpbmUgYW5kIHNldCB0aGUg
dGFyZ2V0RGVuc2l0eURwaSB0byBvdXIgZHBpLgogICAgICAgICAvLyBPbiBzbWFsbGVyIHNjcmVl
biBtb2JpbGUgZGV2aWNlcyB3ZSBza2lwIHRoaXMgYW5kIHVzZSBXZWJDb3JlIGRwaSBzY2FsaW5n
LgotICAgICAgICBtX3ZpZXdwb3J0QXJndW1lbnRzLnRhcmdldERlbnNpdHlEcGkgPSBkZXZpY2VE
UEk7CisgICAgICAgIGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cy50YXJnZXREZW5zaXR5RHBpID0g
ZGV2aWNlRFBJOwogICAgIH0KIAotICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwg
ZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBtX2RlZmF1bHRMYXlvdXRTaXpl
KTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0ID0gY29tcHV0ZVZpZXdwb3J0QXR0cmli
dXRlcyhjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgs
IGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBtX2RlZmF1bHRMYXlvdXRTaXplKTsKICAgICBtX3Bh
Z2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvKTsKICAgICBy
ZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCByZXN1bHQubGF5b3V0U2l6
ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4
IDE1ZGMxNzMxYjYxZDVhMWExZDgxMGJkYjk3YjRhYjJhZTZmYTcwN2UuLjBhYzY0NWFiY2M2NWQ0
NGIzZmFiYTRmMWE4ZmM0NGFiMzQyZmQ2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBAIGNsYXNzIFdlYlBhZ2VDb21wb3NpdG9yOwogY2xh
c3MgV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyOwogY2xhc3MgV2ViUGFnZVByaXZhdGU7CiBjbGFz
cyBXZWJTZXR0aW5nczsKK2NsYXNzIFdlYlZpZXdwb3J0QXJndW1lbnRzOwogCiBlbnVtIEphdmFT
Y3JpcHREYXRhVHlwZSB7IEpTVW5kZWZpbmVkID0gMCwgSlNOdWxsLCBKU0Jvb2xlYW4sIEpTTnVt
YmVyLCBKU1N0cmluZywgSlNPYmplY3QsIEpTRXhjZXB0aW9uLCBKU0RhdGFUeXBlTWF4IH07CiAK
QEAgLTMyOCw2ICszMjksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlc3Ryb3lXZWJQYWdlQ29t
cG9zaXRvcigpOwogCisgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2Vi
Vmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICB2b2lkIHJlc2V0VXNlclZpZXdwb3J0QXJndW1lbnRz
KCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB+V2ViUGFnZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBlYWI4ODUzNDY0Y2ZiNTlmMzkyYjE3MWVj
Mjk4YjBjZTkwYmFjMjAyLi5jODM3ZmE4OTc4YTMwNzg3YzNiOWUxMzc0Zjk4MDI4NjJlOGMwYWQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTQ1MCw2ICs0
NTAsNyBAQCBwdWJsaWM6CiAgICAgaW50IG1fdmlydHVhbFZpZXdwb3J0SGVpZ2h0OwogICAgIFdl
YkNvcmU6OkludFNpemUgbV9kZWZhdWx0TGF5b3V0U2l6ZTsKICAgICBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOyAvLyBXZSBrZWVwIHRoaXMgYXJvdW5kIHNp
bmNlIHdlIG1heSBuZWVkIHRvIHJlLWV2YWx1YXRlIHRoZSBhcmd1bWVudHMgb24gcm90YXRpb24u
CisgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgbV91c2VyVmlld3BvcnRBcmd1bWVudHM7
IC8vIEEgZmFsbGJhY2sgc2V0IG9mIFZpZXdwb3J0IEFyZ3VtZW50cyBzdXBwbGllZCBieSB0aGUg
V2ViUGFnZUNsaWVudAogICAgIGJvb2wgbV9kaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZTsKICAgICBW
aWV3TW9kZSBtX3ZpZXdNb2RlOwogICAgIExvYWRTdGF0ZSBtX2xvYWRTdGF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuY3Bw
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWJmZDQ0NDg5YjJkZWVjOThlNDgxNWQ1YmMyMWFiM2UwM2Q4MzQ2MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJWaWV3cG9y
dEFyZ3VtZW50cy5oIgorCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKKworbmFtZXNw
YWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlZpZXdwb3J0QXJndW1l
bnRzOjpXZWJWaWV3cG9ydEFyZ3VtZW50cygpCisgICAgOmQobmV3IFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpWaWV3cG9ydE1ldGEpKQorewor
fQorCitXZWJWaWV3cG9ydEFyZ3VtZW50czo6fldlYlZpZXdwb3J0QXJndW1lbnRzKCkKK3sKKyAg
ICBkZWxldGUgZDsKKyAgICBkID0gMDsKK30KKworZmxvYXQgV2ViVmlld3BvcnRBcmd1bWVudHM6
OmluaXRpYWxTY2FsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmluaXRpYWxTY2FsZTsKK30K
Kwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0SW5pdGlhbFNjYWxlKGZsb2F0IHNjYWxl
KQoreworICAgIGQtPmluaXRpYWxTY2FsZSA9IHNjYWxlOworfQorCitmbG9hdCBXZWJWaWV3cG9y
dEFyZ3VtZW50czo6bWluaW11bVNjYWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+bWluaW11
bVNjYWxlOworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRNaW5pbXVtU2NhbGUo
ZmxvYXQgc2NhbGUpCit7CisgICAgZC0+bWluaW11bVNjYWxlID0gc2NhbGU7Cit9CisKK2Zsb2F0
IFdlYlZpZXdwb3J0QXJndW1lbnRzOjptYXhpbXVtU2NhbGUoKSBjb25zdAoreworICAgIHJldHVy
biBkLT5tYXhpbXVtU2NhbGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldE1h
eGltdW1TY2FsZShmbG9hdCBzY2FsZSkKK3sKKyAgICBkLT5tYXhpbXVtU2NhbGUgPSBzY2FsZTsK
K30KKworZmxvYXQgV2ViVmlld3BvcnRBcmd1bWVudHM6OndpZHRoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZC0+d2lkdGg7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFdpZHRo
KGZsb2F0IHdpZHRoKQoreworICAgIGQtPndpZHRoID0gd2lkdGg7Cit9CisKK2Zsb2F0IFdlYlZp
ZXdwb3J0QXJndW1lbnRzOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5oZWlnaHQ7
Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldEhlaWdodChmbG9hdCBoZWlnaHQp
Cit7CisgICAgZC0+aGVpZ2h0ID0gaGVpZ2h0OworfQorCitmbG9hdCBXZWJWaWV3cG9ydEFyZ3Vt
ZW50czo6dGFyZ2V0RGVuc2l0eURwaSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnRhcmdldERl
bnNpdHlEcGk7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFRhcmdldERlbnNp
dHlEcGkoZmxvYXQgZHBpKQoreworICAgIGQtPnRhcmdldERlbnNpdHlEcGkgPSBkcGk7Cit9CisK
K2Zsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp1c2VyU2NhbGFibGUoKSBjb25zdAoreworICAg
IHJldHVybiBkLT51c2VyU2NhbGFibGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6
OnNldFVzZXJTY2FsYWJsZShmbG9hdCBzY2FsYWJsZSkKK3sKKyAgICBkLT51c2VyU2NhbGFibGUg
PSBzY2FsYWJsZTsKK30KKworYm9vbCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6b3BlcmF0b3I9PShj
b25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyYgb3RoZXIpCit7CisgICAgcmV0dXJuICpkID09ICoo
b3RoZXIuZCk7Cit9CisKK2Jvb2wgV2ViVmlld3BvcnRBcmd1bWVudHM6Om9wZXJhdG9yIT0oY29u
c3QgV2ViVmlld3BvcnRBcmd1bWVudHMmIG90aGVyKQoreworICAgIHJldHVybiAhKCp0aGlzID09
IG90aGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVzcGFjZSBCbGFj
a0JlcnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdw
b3J0QXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0
QXJndW1lbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyNzM1YzNjZjZiZjdmZTQ3Nzg3YWVkNzU4OGU1ZWI0
MjdmMmMxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViVmlld3BvcnRBcmd1bWVudHMuaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2ViVmlld3BvcnRBcmd1bWVudHNfaAor
I2RlZmluZSBXZWJWaWV3cG9ydEFyZ3VtZW50c19oCisKKyNpbmNsdWRlICJCbGFja0JlcnJ5R2xv
YmFsLmgiCisKKy8vIE5vdCBmb3IgcHVibGljIEFQSSBwdXJwb3NlLgorbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgVmlld3BvcnRBcmd1bWVudHM7Cit9CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5
IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCisvKioKKyAqIEEgY2xh
c3MgZGVzaWduZWQgdG8gZXhwb3NlIGEgbWV0YSB2aWV3cG9ydCBmYWxsYmFjay4KKyAqCisgKiBU
aGlzIGNsYXNzIHNpbXBseSB3cmFwcyBhIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzLiBJdCBj
YW4gYmUKKyAqIGluc3RhbnRpYXRlZCBieSB0aGUgV2ViUGFnZUNsaWVudCBhbmQgc3VwcGxpZWQg
dG8gYSBXZWJQYWdlIHRvCisgKiBwcm92aWRlIGEgdXNlclZpZXdwb3J0QXJndW1lbnRzIG9iamVj
dCB0aGF0IGNhbiBiZSB1c2VkIHdoZW5ldmVyCisgKiB0aGVyZSBpcyBubyBtZXRhIHZpZXdwb3J0
IHRhZyBwcm92aWRlZCBpbiBhbnkgbG9hZGVkIGh0bWwuCisgKi8KK2NsYXNzIEJMQUNLQkVSUllf
RVhQT1JUIFdlYlZpZXdwb3J0QXJndW1lbnRzIHsKK3B1YmxpYzoKKyAgICBXZWJWaWV3cG9ydEFy
Z3VtZW50cygpOworICAgIH5XZWJWaWV3cG9ydEFyZ3VtZW50cygpOworCisgICAgLy8gVGhpcyBt
YXRjaGVzIHRoZSBlbnVtIGZvdW5kIGluIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzCisgICAg
ZW51bSB7CisgICAgICAgIFZhbHVlQXV0byA9IC0xLAorICAgICAgICBWYWx1ZURlc2t0b3BXaWR0
aCA9IC0yLAorICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCisgICAgICAgIFZhbHVlRGV2
aWNlSGVpZ2h0ID0gLTQsCisgICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCisgICAgICAgIFZh
bHVlTG93RFBJID0gLTYsCisgICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCisgICAgICAgIFZh
bHVlSGlnaERQSSA9IC04CisgICAgfTsKKworICAgIGZsb2F0IGluaXRpYWxTY2FsZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0SW5pdGlhbFNjYWxlKGZsb2F0KTsKKworICAgIGZsb2F0IG1pbmltdW1T
Y2FsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TWluaW11bVNjYWxlKGZsb2F0KTsKKworICAgIGZs
b2F0IG1heGltdW1TY2FsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TWF4aW11bVNjYWxlKGZsb2F0
KTsKKworICAgIGZsb2F0IHdpZHRoKCkgY29uc3Q7CisgICAgdm9pZCBzZXRXaWR0aChmbG9hdCk7
CisKKyAgICBmbG9hdCBoZWlnaHQoKSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdodChmbG9hdCk7
CisKKyAgICBmbG9hdCB0YXJnZXREZW5zaXR5RHBpKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUYXJn
ZXREZW5zaXR5RHBpKGZsb2F0KTsKKworICAgIGZsb2F0IHVzZXJTY2FsYWJsZSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0VXNlclNjYWxhYmxlKGZsb2F0KTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyAmb3RoZXIpOworICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyAmb3RoZXIpOworCitwcml2YXRlOgorICAgIFdlYlZp
ZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgV2ViQ29y
ZTo6Vmlld3BvcnRBcmd1bWVudHMqIGQ7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFdl
YlBhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEJsYWNr
QmVycnkKKworI2VuZGlmIC8vIFdlYlZpZXdwb3J0QXJndW1lbnRzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138148</attachid>
            <date>2012-04-20 12:56:43 -0700</date>
            <delta_ts>2012-04-20 14:20:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84471-20120420155700.patch</filename>
            <type>text/plain</type>
            <size>15673</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyOTY0OTJhMWU4Y2Q1ZmQw
ZWJjMzk5YjliMjczZTcxMDg3MTMzNjkuLmJhZjIyZjQ5NTYwZjgzYjFmNTUzOTE3N2E1ZTg4MmI3
NzViYTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDQtMjAgIE1pa2UgTGF0
dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBv
c2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZToKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9z
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2VjdXJpdHkgT3JpZ2luIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMjhlZjE5ZDYzZDM1OTY3ZDM5NTYzNWRkMmIy
NDdmMTNjMjYwMTcyNi4uNjM5NmI0OGU4Y2JhZGUzZTI4MjY4YTI3YzQ2ZGVmOWUwODliMGFjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDQt
MjAgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFj
a0JlcnJ5XSBFeHBvc2UgV2ViVmlld3BvcnRBcmd1bWVudHMgdG8gV2ViUGFnZUNsaWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhl
IGFiaWxpdHkgZm9yIHRoZSBXZWJQYWdlQ2xpZW50IHRvIHNwZWNpZnkgYSBmYWxsYmFjaworICAg
ICAgICB2aXJ0dWFsIHZpZXdwb3J0IHRvIGJlIHVzZWQgd2hlbmV2ZXIgYSBtZXRhIHZpZXdwb3J0
IHRhZyBpcyBub3QKKyAgICAgICAgcHJlc2VudCBpbiB0aGUgSFRNTC4gVGhpcyBjYW4gZHJhc3Rp
Y2FsbHkgaW1wYWN0IGFwcGFyZW50IGxheW91dC4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBkZXNp
Z25lZCB0byBwcm92aWRlIGEgY2xhc3NpYyAiQ29sdW1uIFZpZXciIHN0eWxlIG9mCisgICAgICAg
IGxheW91dCB3aXRob3V0IGJyZWFraW5nIHRoZSB3ZWIgYnkgc2ltcGx5IGV4cG9zaW5nIG1ldGEg
dmlld3BvcnQKKyAgICAgICAgYXJndW1lbnRzIHRvIFdlYlBhZ2VDbGllbnRzLgorCisgICAgICAg
IE5vdGU6IEFzIGEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBjaGFuZ2UuIHRoZSBXZWJQYWdlUHJpdmF0
ZTo6CisgICAgICAgIHJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50
cyBtZXRob2Qgbm8gbG9uZ2VyCisgICAgICAgIG1vZGlmaWVzIHRoZSB0YXJnZXREZW5zaXR5RHBp
IHByb3BlcnR5IG9mIHRoZSBtX3ZpZXdwb3J0QXJndW1lbnRzLgorICAgICAgICBIb3dldmVyIHRo
aXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjbGFzcyBiZWNhdXNlIHRoYXQgcHJvcGVydHkgaXRzZWxm
CisgICAgICAgIG1lYW5zIG5vdGhpbmcgdG8gdXMuIE9ubHkgdGhlIGNvbXB1dGVWaWV3cG9ydEFy
Z3VtZW50cyBtZXRob2QgZnJvbQorICAgICAgICBXZWJDb3JlIHVzZXMgaXQsIGFuZCB0aGUgY3Vy
cmVudFZpZXdwb3J0QXJndW1lbnRzIG9iamVjdCB3ZSBwYXNzCisgICAgICAgIGludG8gdGhhdCBt
ZXRob2QgaGFzIHRoZSBhZGp1c3RlZCB0YXJnZXREZW5zaXR5RHBpIHZhbHVlIGFzIGJlZm9yZS4K
KworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViUGFnZTo6c2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VXNlclZpZXdwb3J0
QXJndW1lbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
OnJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAg
ICogQXBpL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBh
Z2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIEFwaS9XZWJWaWV3
cG9ydEFyZ3VtZW50cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6OmQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJW
aWV3cG9ydEFyZ3VtZW50czo6fldlYlZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OmluaXRpYWxTY2FsZSk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRJbml0aWFs
U2NhbGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50
czo6bWluaW11bVNjYWxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3Bv
cnRBcmd1bWVudHM6OnNldE1pbmltdW1TY2FsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjptYXhpbXVtU2NhbGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0TWF4aW11bVNjYWxlKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OndpZHRoKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFdp
ZHRoKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6
OmhlaWdodCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1l
bnRzOjpzZXRIZWlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9y
dEFyZ3VtZW50czo6dGFyZ2V0RGVuc2l0eURwaSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRUYXJnZXREZW5zaXR5RHBpKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViVmlld3BvcnRBcmd1bWVudHM6OnVzZXJTY2FsYWJsZSk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRV
c2VyU2NhbGFibGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJWaWV3cG9ydEFy
Z3VtZW50czo6b3BlcmF0b3I9PSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlZp
ZXdwb3J0QXJndW1lbnRzOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBBcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisKIDIwMTItMDQtMTkgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBBbHdheXMgdXNlIHRoZSBBbmltYXRpb25GcmFtZVJhdGVDb250cm9s
bGVyIGZvciBhY2NlbGVyYXRlZCBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDhiNjExODc2MWEwYjk2MjI2MGJhYzRlNmJmOWFjOThiNzBlOWQwODcu
LmZjZmY5Y2I2NzVhZWI1MmQ4NDAwN2U1NDk2NTBmMmI5M2NkNjZiM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC01NCw2ICs1NCw3IEBAIExJU1QoQVBQRU5EIFdl
YktpdF9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0b3IuY3BwCiAg
ICAgYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIGJsYWNr
YmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcAorICAgIGJsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0
QXJndW1lbnRzLmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhLmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2FjaGVDbGllbnRCbGFja0JlcnJ5LmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDMwYTcxMGJi
MDE2M2M4OTU3Y2M3MDdmN2EzZWJjMDNlZTA0OWQ2YTAuLjU4N2FjMjJiZGI5M2UxMDIyYmExNWU3
MmZmZThiNDAzYWY2ZDQzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcApAQCAtMTE1LDYgKzExNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VmVyc2lvbi5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKKyNpbmNsdWRl
ICJXZWJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIm5wYXBpLmgiCiAjaW5jbHVkZSAi
cnVudGltZV9yb290LmgiCiAKQEAgLTI3OCw2ICsyNzksMTYgQEAgc3RhdGljIGlubGluZSBXZWJQ
YWdlOjpCYWNrRm9yd2FyZElkIGJhY2tGb3J3YXJkSWRGcm9tSGlzdG9yeUl0ZW0oSGlzdG9yeUl0
ZW0qIGkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlOjpCYWNrRm9yd2FyZElk
PihpdGVtKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoY29u
c3QgV2ViVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQoreworICAgIGQtPm1f
dXNlclZpZXdwb3J0QXJndW1lbnRzID0gKih2aWV3cG9ydEFyZ3VtZW50cy5kKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpyZXNldFVzZXJWaWV3cG9ydEFyZ3VtZW50cygpCit7CisgICAgZC0+bV91c2Vy
Vmlld3BvcnRBcmd1bWVudHMgPSBWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBXZWJQYWdlUHJp
dmF0ZTo6V2ViUGFnZVByaXZhdGUoV2ViUGFnZSogd2ViUGFnZSwgV2ViUGFnZUNsaWVudCogY2xp
ZW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCkBAIC0zMTIzLDI0ICszMTM0LDM2IEBAIHZvaWQgV2ViUGFnZTo6
cmVzZXRWaXJ0dWFsVmlld3BvcnRPbkNvbW1pdHRlZChib29sIHJlc2V0KQogCiBJbnRTaXplIFdl
YlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVu
dHMoKQogewotICAgIHN0YXRpYyBWaWV3cG9ydEFyZ3VtZW50cyBkZWZhdWx0Vmlld3BvcnRBcmd1
bWVudHM7Ci0gICAgaWYgKG1fdmlld3BvcnRBcmd1bWVudHMgPT0gZGVmYXVsdFZpZXdwb3J0QXJn
dW1lbnRzKQotICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworICAgIHN0YXRpYyBjb25zdCBWaWV3
cG9ydEFyZ3VtZW50cyBkZWZhdWx0Vmlld3BvcnRBcmd1bWVudHM7CisKKyAgICAvLyBXaGVuIGNh
bGN1bGF0aW5nIGEgdmlydHVhbCB2aWV3cG9ydCBmb3IgbGF5b3V0IHdlIHByaW9yaXRpemUgdGhl
CisgICAgLy8gbV92aWV3cG9ydEFyZ3VtZW50cyBmcm9tIFdlYkNvcmUgb3ZlciB0aGUgbV91c2Vy
Vmlld3BvcnRBcmd1bWVudHMuIFdlCisgICAgLy8gY2Fubm90IGFzc2lnbiBtX3ZpZXdwb3J0QWd1
bWVudHMgPSBtX3VzZXJWaWV3cG9ydEFyZ3VtZW50cyBiZWNhdXNlIHRoZW4KKyAgICAvLyBzdWJz
ZXF1ZW50IGNoYW5nZXMgdG8gbV91c2VyVmlld3BvcnRBcmd1bWVudHMgd291bGQgYmUgaWdub3Jl
ZCwgdGhpbmtpbmcKKyAgICAvLyB0aGUgbV92aWV3cG9ydEFyZ3VtZW50cyBoYWQgY29tZSBmcm9t
IFdlYkNvcmUuIEluc3RlYWQgd2UgbWFrZSBhIGNvcHkuCisKKyAgICBWaWV3cG9ydEFyZ3VtZW50
cyBjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMgPSBtX3ZpZXdwb3J0QXJndW1lbnRzOworICAgIGlm
IChjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMgPT0gZGVmYXVsdFZpZXdwb3J0QXJndW1lbnRzKSB7
CisgICAgICAgIGlmIChjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMgPT0gbV91c2VyVmlld3BvcnRB
cmd1bWVudHMpCisgICAgICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgICAgIGN1cnJl
bnRWaWV3cG9ydEFyZ3VtZW50cyA9IG1fdXNlclZpZXdwb3J0QXJndW1lbnRzOworICAgIH0KIAog
ICAgIGludCBkZXNrdG9wV2lkdGggPSBkZWZhdWx0TWF4TGF5b3V0U2l6ZSgpLndpZHRoKCk7CiAg
ICAgaW50IGRldmljZVdpZHRoID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlT
Y3JlZW4oKS0+d2lkdGgoKTsKICAgICBpbnQgZGV2aWNlSGVpZ2h0ID0gUGxhdGZvcm06OkdyYXBo
aWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+aGVpZ2h0KCk7CiAgICAgRmxvYXRTaXplIGN1
cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5w
aXhlbHNQZXJJbmNoKC0xKTsKICAgICBpbnQgZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVu
dFBQSS53aWR0aCgpICsgY3VycmVudFBQSS5oZWlnaHQoKSkgLyAyKSk7Ci0gICAgaWYgKG1fdmll
d3BvcnRBcmd1bWVudHMudGFyZ2V0RGVuc2l0eURwaSA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFs
dWVBdXRvCisgICAgaWYgKGN1cnJlbnRWaWV3cG9ydEFyZ3VtZW50cy50YXJnZXREZW5zaXR5RHBp
ID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8KICAgICAgICAgJiYgIVBsYXRmb3JtOjpE
ZXZpY2VJbmZvOjppbnN0YW5jZSgpLT5pc01vYmlsZSgpKSB7CiAgICAgICAgIC8vIElmIHRoZSBj
b250ZW50IHByb3ZpZGVyIGhhc24ndCBzcGVjaWZpZWQgYSB0YXJnZXQgZHBpIGFuZCB3ZSBoYXZl
IGEgbGFyZ2UKICAgICAgICAgLy8gc2NyZWVuIHdlIGFzc3VtZSB0aGUgY29udGVudCBpcyBmaW5l
IGFuZCBzZXQgdGhlIHRhcmdldERlbnNpdHlEcGkgdG8gb3VyIGRwaS4KICAgICAgICAgLy8gT24g
c21hbGxlciBzY3JlZW4gbW9iaWxlIGRldmljZXMgd2Ugc2tpcCB0aGlzIGFuZCB1c2UgV2ViQ29y
ZSBkcGkgc2NhbGluZy4KLSAgICAgICAgbV92aWV3cG9ydEFyZ3VtZW50cy50YXJnZXREZW5zaXR5
RHBpID0gZGV2aWNlRFBJOworICAgICAgICBjdXJyZW50Vmlld3BvcnRBcmd1bWVudHMudGFyZ2V0
RGVuc2l0eURwaSA9IGRldmljZURQSTsKICAgICB9CiAKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMg
cmVzdWx0ID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhtX3ZpZXdwb3J0QXJndW1lbnRzLCBk
ZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgbV9kZWZh
dWx0TGF5b3V0U2l6ZSk7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMoY3VycmVudFZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgs
IGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgbV9kZWZhdWx0TGF5b3V0U2l6
ZSk7CiAgICAgbV9wYWdlLT5zZXREZXZpY2VTY2FsZUZhY3RvcihyZXN1bHQuZGV2aWNlUGl4ZWxS
YXRpbyk7CiAgICAgcmV0dXJuIEludFNpemUocmVzdWx0LmxheW91dFNpemUud2lkdGgoKSwgcmVz
dWx0LmxheW91dFNpemUuaGVpZ2h0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuaAppbmRleCAxNWRjMTczMWI2MWQ1YTFhMWQ4MTBiZGI5N2I0YWIyYWU2ZmE3MDdlLi4w
YWM2NDVhYmNjNjVkNDRiM2ZhYmE0ZjFhOGZjNDRhYjM0MmZkNjVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuaApAQCAtNjYsNiArNjYsNyBAQCBjbGFzcyBXZWJQYWdlQ29t
cG9zaXRvcjsKIGNsYXNzIFdlYlBhZ2VHcm91cExvYWREZWZlcnJlcjsKIGNsYXNzIFdlYlBhZ2VQ
cml2YXRlOwogY2xhc3MgV2ViU2V0dGluZ3M7CitjbGFzcyBXZWJWaWV3cG9ydEFyZ3VtZW50czsK
IAogZW51bSBKYXZhU2NyaXB0RGF0YVR5cGUgeyBKU1VuZGVmaW5lZCA9IDAsIEpTTnVsbCwgSlNC
b29sZWFuLCBKU051bWJlciwgSlNTdHJpbmcsIEpTT2JqZWN0LCBKU0V4Y2VwdGlvbiwgSlNEYXRh
VHlwZU1heCB9OwogCkBAIC0zMjgsNiArMzI5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXN0
cm95V2ViUGFnZUNvbXBvc2l0b3IoKTsKIAorICAgIHZvaWQgc2V0VXNlclZpZXdwb3J0QXJndW1l
bnRzKGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgdm9pZCByZXNldFVzZXJWaWV3
cG9ydEFyZ3VtZW50cygpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgfldlYlBhZ2UoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggZWFiODg1MzQ2NGNm
YjU5ZjM5MmIxNzFlYzI5OGIwY2U5MGJhYzIwMi4uYzgzN2ZhODk3OGEzMDc4N2MzYjllMTM3NGY5
ODAyODYyZThjMGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5o
CkBAIC00NTAsNiArNDUwLDcgQEAgcHVibGljOgogICAgIGludCBtX3ZpcnR1YWxWaWV3cG9ydEhl
aWdodDsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fZGVmYXVsdExheW91dFNpemU7CiAgICAgV2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHMgbV92aWV3cG9ydEFyZ3VtZW50czsgLy8gV2Uga2VlcCB0
aGlzIGFyb3VuZCBzaW5jZSB3ZSBtYXkgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGUgYXJndW1lbnRz
IG9uIHJvdGF0aW9uLgorICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIG1fdXNlclZpZXdw
b3J0QXJndW1lbnRzOyAvLyBBIGZhbGxiYWNrIHNldCBvZiBWaWV3cG9ydCBBcmd1bWVudHMgc3Vw
cGxpZWQgYnkgdGhlIFdlYlBhZ2VDbGllbnQKICAgICBib29sIG1fZGlkUmVzdG9yZUZyb21QYWdl
Q2FjaGU7CiAgICAgVmlld01vZGUgbV92aWV3TW9kZTsKICAgICBMb2FkU3RhdGUgbV9sb2FkU3Rh
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0
QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZmQ0NDQ4OWIyZGVlYzk4ZTQ4MTVkNWJjMjFhYjNl
MDNkODM0NjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViVmlld3BvcnRBcmd1bWVudHMuaCIKKworI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRz
LmgiCisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJW
aWV3cG9ydEFyZ3VtZW50czo6V2ViVmlld3BvcnRBcmd1bWVudHMoKQorICAgIDpkKG5ldyBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyhXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3Bv
cnRNZXRhKSkKK3sKK30KKworV2ViVmlld3BvcnRBcmd1bWVudHM6On5XZWJWaWV3cG9ydEFyZ3Vt
ZW50cygpCit7CisgICAgZGVsZXRlIGQ7CisgICAgZCA9IDA7Cit9CisKK2Zsb2F0IFdlYlZpZXdw
b3J0QXJndW1lbnRzOjppbml0aWFsU2NhbGUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5pbml0
aWFsU2NhbGU7Cit9CisKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldEluaXRpYWxTY2Fs
ZShmbG9hdCBzY2FsZSkKK3sKKyAgICBkLT5pbml0aWFsU2NhbGUgPSBzY2FsZTsKK30KKworZmxv
YXQgV2ViVmlld3BvcnRBcmd1bWVudHM6Om1pbmltdW1TY2FsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGQtPm1pbmltdW1TY2FsZTsKK30KKwordm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0
TWluaW11bVNjYWxlKGZsb2F0IHNjYWxlKQoreworICAgIGQtPm1pbmltdW1TY2FsZSA9IHNjYWxl
OworfQorCitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6bWF4aW11bVNjYWxlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZC0+bWF4aW11bVNjYWxlOworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJn
dW1lbnRzOjpzZXRNYXhpbXVtU2NhbGUoZmxvYXQgc2NhbGUpCit7CisgICAgZC0+bWF4aW11bVNj
YWxlID0gc2NhbGU7Cit9CisKK2Zsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp3aWR0aCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGQtPndpZHRoOworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1l
bnRzOjpzZXRXaWR0aChmbG9hdCB3aWR0aCkKK3sKKyAgICBkLT53aWR0aCA9IHdpZHRoOworfQor
CitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZC0+aGVpZ2h0OworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXRIZWlnaHQo
ZmxvYXQgaGVpZ2h0KQoreworICAgIGQtPmhlaWdodCA9IGhlaWdodDsKK30KKworZmxvYXQgV2Vi
Vmlld3BvcnRBcmd1bWVudHM6OnRhcmdldERlbnNpdHlEcGkoKSBjb25zdAoreworICAgIHJldHVy
biBkLT50YXJnZXREZW5zaXR5RHBpOworfQorCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpz
ZXRUYXJnZXREZW5zaXR5RHBpKGZsb2F0IGRwaSkKK3sKKyAgICBkLT50YXJnZXREZW5zaXR5RHBp
ID0gZHBpOworfQorCitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6dXNlclNjYWxhYmxlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZC0+dXNlclNjYWxhYmxlOworfQorCit2b2lkIFdlYlZpZXdw
b3J0QXJndW1lbnRzOjpzZXRVc2VyU2NhbGFibGUoZmxvYXQgc2NhbGFibGUpCit7CisgICAgZC0+
dXNlclNjYWxhYmxlID0gc2NhbGFibGU7Cit9CisKK2Jvb2wgV2ViVmlld3BvcnRBcmd1bWVudHM6
Om9wZXJhdG9yPT0oY29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMmIG90aGVyKQoreworICAgIHJl
dHVybiAqZCA9PSAqKG90aGVyLmQpOworfQorCitib29sIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpv
cGVyYXRvciE9KGNvbnN0IFdlYlZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikKK3sKKyAgICByZXR1
cm4gISgqdGhpcyA9PSBvdGhlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorfSAvLyBu
YW1lc3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MjczNWMzY2Y2YmY3ZmU0Nzc4
N2FlZDc1ODhlNWViNDI3ZjJjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTAsMCArMSw5NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlZpZXdwb3J0
QXJndW1lbnRzX2gKKyNkZWZpbmUgV2ViVmlld3BvcnRBcmd1bWVudHNfaAorCisjaW5jbHVkZSAi
QmxhY2tCZXJyeUdsb2JhbC5oIgorCisvLyBOb3QgZm9yIHB1YmxpYyBBUEkgcHVycG9zZS4KK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFZpZXdwb3J0QXJndW1lbnRzOworfQorCituYW1lc3Bh
Y2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwor
LyoqCisgKiBBIGNsYXNzIGRlc2lnbmVkIHRvIGV4cG9zZSBhIG1ldGEgdmlld3BvcnQgZmFsbGJh
Y2suCisgKgorICogVGhpcyBjbGFzcyBzaW1wbHkgd3JhcHMgYSBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cy4gSXQgY2FuIGJlCisgKiBpbnN0YW50aWF0ZWQgYnkgdGhlIFdlYlBhZ2VDbGllbnQg
YW5kIHN1cHBsaWVkIHRvIGEgV2ViUGFnZSB0bworICogcHJvdmlkZSBhIHVzZXJWaWV3cG9ydEFy
Z3VtZW50cyBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB3aGVuZXZlcgorICogdGhlcmUgaXMgbm8g
bWV0YSB2aWV3cG9ydCB0YWcgcHJvdmlkZWQgaW4gYW55IGxvYWRlZCBodG1sLgorICovCitjbGFz
cyBCTEFDS0JFUlJZX0VYUE9SVCBXZWJWaWV3cG9ydEFyZ3VtZW50cyB7CitwdWJsaWM6CisgICAg
V2ViVmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICB+V2ViVmlld3BvcnRBcmd1bWVudHMoKTsKKwor
ICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgZW51bSBmb3VuZCBpbiBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cworICAgIGVudW0geworICAgICAgICBWYWx1ZUF1dG8gPSAtMSwKKyAgICAgICAgVmFs
dWVEZXNrdG9wV2lkdGggPSAtMiwKKyAgICAgICAgVmFsdWVEZXZpY2VXaWR0aCA9IC0zLAorICAg
ICAgICBWYWx1ZURldmljZUhlaWdodCA9IC00LAorICAgICAgICBWYWx1ZURldmljZURQSSA9IC01
LAorICAgICAgICBWYWx1ZUxvd0RQSSA9IC02LAorICAgICAgICBWYWx1ZU1lZGl1bURQSSA9IC03
LAorICAgICAgICBWYWx1ZUhpZ2hEUEkgPSAtOAorICAgIH07CisKKyAgICBmbG9hdCBpbml0aWFs
U2NhbGUoKSBjb25zdDsKKyAgICB2b2lkIHNldEluaXRpYWxTY2FsZShmbG9hdCk7CisKKyAgICBm
bG9hdCBtaW5pbXVtU2NhbGUoKSBjb25zdDsKKyAgICB2b2lkIHNldE1pbmltdW1TY2FsZShmbG9h
dCk7CisKKyAgICBmbG9hdCBtYXhpbXVtU2NhbGUoKSBjb25zdDsKKyAgICB2b2lkIHNldE1heGlt
dW1TY2FsZShmbG9hdCk7CisKKyAgICBmbG9hdCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0
V2lkdGgoZmxvYXQpOworCisgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRI
ZWlnaHQoZmxvYXQpOworCisgICAgZmxvYXQgdGFyZ2V0RGVuc2l0eURwaSgpIGNvbnN0OworICAg
IHZvaWQgc2V0VGFyZ2V0RGVuc2l0eURwaShmbG9hdCk7CisKKyAgICBmbG9hdCB1c2VyU2NhbGFi
bGUoKSBjb25zdDsKKyAgICB2b2lkIHNldFVzZXJTY2FsYWJsZShmbG9hdCk7CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMgJm90aGVyKTsKKyAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgV2ViVmlld3BvcnRBcmd1bWVudHMgJm90aGVyKTsKKworcHJpdmF0
ZToKKyAgICBXZWJWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50cyYp
OworICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzKiBkOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBXZWJQYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5h
bWVzcGFjZSBCbGFja0JlcnJ5CisKKyNlbmRpZiAvLyBXZWJWaWV3cG9ydEFyZ3VtZW50c19oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>