<?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>110167</bug_id>
          
          <creation_ts>2013-02-18 16:54:07 -0800</creation_ts>
          <short_desc>Clean up the boolean argument to visibleContentRect</short_desc>
          <delta_ts>2013-02-19 00:58:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110189</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thakis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835833</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 16:54:07 -0800</bug_when>
    <thetext>Clean up the boolean argument to visibleContentRect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835835</commentid>
    <comment_count>1</comment_count>
      <attachid>188963</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 16:58:35 -0800</bug_when>
    <thetext>Created attachment 188963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835844</commentid>
    <comment_count>2</comment_count>
      <attachid>188963</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 17:14:49 -0800</bug_when>
    <thetext>Comment on attachment 188963
Patch

Attachment 188963 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16626287</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835845</commentid>
    <comment_count>3</comment_count>
      <attachid>188963</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 17:15:26 -0800</bug_when>
    <thetext>Comment on attachment 188963
Patch

Attachment 188963 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16625291</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835849</commentid>
    <comment_count>4</comment_count>
      <attachid>188963</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-18 17:23:17 -0800</bug_when>
    <thetext>Comment on attachment 188963
Patch

Attachment 188963 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16627236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835855</commentid>
    <comment_count>5</comment_count>
      <attachid>188968</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 17:31:12 -0800</bug_when>
    <thetext>Created attachment 188968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835859</commentid>
    <comment_count>6</comment_count>
      <attachid>188968</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-18 17:47:27 -0800</bug_when>
    <thetext>Comment on attachment 188968
Patch

Attachment 188968 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16615436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835860</commentid>
    <comment_count>7</comment_count>
      <attachid>188968</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 17:47:37 -0800</bug_when>
    <thetext>Comment on attachment 188968
Patch

Attachment 188968 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16608579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835862</commentid>
    <comment_count>8</comment_count>
      <attachid>188968</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 17:48:37 -0800</bug_when>
    <thetext>Comment on attachment 188968
Patch

Attachment 188968 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16617383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835866</commentid>
    <comment_count>9</comment_count>
      <attachid>188970</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 17:57:55 -0800</bug_when>
    <thetext>Created attachment 188970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835878</commentid>
    <comment_count>10</comment_count>
      <attachid>188970</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 18:17:23 -0800</bug_when>
    <thetext>Comment on attachment 188970
Patch

Attachment 188970 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16627248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835882</commentid>
    <comment_count>11</comment_count>
      <attachid>188970</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 18:27:32 -0800</bug_when>
    <thetext>Comment on attachment 188970
Patch

Attachment 188970 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16617399</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835903</commentid>
    <comment_count>12</comment_count>
      <attachid>188975</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 19:27:31 -0800</bug_when>
    <thetext>Created attachment 188975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835907</commentid>
    <comment_count>13</comment_count>
      <attachid>188975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 19:45:29 -0800</bug_when>
    <thetext>Comment on attachment 188975
Patch

Attachment 188975 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16610555</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835910</commentid>
    <comment_count>14</comment_count>
      <attachid>188975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 19:51:50 -0800</bug_when>
    <thetext>Comment on attachment 188975
Patch

Attachment 188975 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16612488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835916</commentid>
    <comment_count>15</comment_count>
      <attachid>188977</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-18 20:28:53 -0800</bug_when>
    <thetext>Created attachment 188977
We&apos;ll get there eventually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835973</commentid>
    <comment_count>16</comment_count>
      <attachid>188977</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 22:37:10 -0800</bug_when>
    <thetext>Comment on attachment 188977
We&apos;ll get there eventually

Clearing flags on attachment: 188977

Committed r143295: &lt;http://trac.webkit.org/changeset/143295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835974</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 22:37:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188963</attachid>
            <date>2013-02-18 16:58:35 -0800</date>
            <delta_ts>2013-02-18 17:31:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110167-20130218165458.patch</filename>
            <type>text/plain</type>
            <size>32197</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uYjg5NDhjNTA3ZGEyNWUyZjUzYzQxOTExNjAzOWE4
NDczNTY0NjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRo
ZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1
bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAg
ICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aWV3cG9ydFNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExh
eW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3Qp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEaWFsb2c6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpt
YXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnZp
c2libGVDb250ZW50UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQ
b3NpdGlvbik6CisKIDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMxNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNTM3ZmYxMzYzM2MxM2MxMDVhNGE5YzEw
MTRiNTRiN2Y3NTRlZjVkLi4xZTE5YjEzN2RlOWRlMGE2Y2Q0ZjU4ZGM3MjNkMjM5MzlmMzc2NzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIGJv
b2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBl
bnVtLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEzLTAyLTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzZXRWYWx1ZSBhbmQgY2xvc2VQb3B1cCBtZXRob2Rz
IHRvIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjQw
OWZmMDkzMTlkZjA5OWNkOTM2NGViZDhkNzFmYzZmZGYxNjRiZi4uZTljYjY4YWEwMjAwMGFkMDAy
NzQyOGVmNDI3MTY4N2VmNjQwYjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxl
Q29udGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkg
d2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZCk6CisK
IDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI4ZGY1NGQ0ZjBiMzVlZDg1Yzhk
N2JmMzc4YWUzZGQzMTJjZC4uN2E1YTdiZDEzYTE5YTU5YTc4MDM0YzkwZWEyMTkwNjNjYjNiNDA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
b29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1bWVu
dCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aXNpYmxlX2NvbnRl
bnRfZ2VvbWV0cnlfZ2V0KToKKwogMjAxMy0wMi0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWlsZCB3aGVu
IENPTlRFWFRfTUVOVVMgZmxhZyBpcyB0dXJuZWQgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjJl
ZjBhOGExYzMxNGMxMDAxZjQ2N2Y1NDE5NTA5OTdhMzYyOWY0Ni4uMWFmZmIxNDFlYjBjNDMzZjcy
ZThmMzQyNGUzM2QxMjY2NDJkYjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAyLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHRoZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAg
ICAgIGFuIGVudW0uCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFt
ZTo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpmcmFtZUJvdW5kcyk6
CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFN0b3AgcGxhY2luZyBzdGQ6OmlzZmluaXRlIGFuZCBzdGQ6OnNpZ25iaXQgaW5zaWRl
IHRoZSBnbG9iYWwgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGRmMzMyYmI1NGEyM2FiMmZjYmU0MDRh
MmIxZGRlNzJhMzBiMzAyLi42MGI2ODc4NTQzMWJlNTQzZWMxYmYxOTEyOWQ0NzUyZjI3MjczYjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4g
YXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1l
bnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgcGluY2gtem9v
bWluZyB3ZWJwYWdlIG1lc3NlcyB1cCBmdWxsLXNjcmVlbmluZyBvZiBlbWJlZGRlZCB2aWRlbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5NDAyZjcwYTUwZWFlODkxNGMwNzJiYzAwZWM5OTQwM2Nm
ZmQ1ZjgzLi42ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTE3OSw3ICsxMTc5LDYgQEAgX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTEwU2Ny
b2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQotX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTBpc0NvbXBsZXRlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKQEAgLTE3ODksNyArMTc4OCw3IEBAIF9fWk43
V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4SW50UG9pbnRDMUVS
SzdDR1BvaW50CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTks3V2Vi
Q29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhMTh2aXNpYmxlQ29udGVudFJlY3RFYgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEx
OHZpc2libGVDb250ZW50UmVjdEVOUzBfMzZWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9s
bGJhcnNFCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3MGE1NDcxNzczNmM5
MGRkMTNhOWMxYzNjYS4uNTViNGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzAxLDcgKzU3MDEsNyBAQCBJbnRTaXplIERv
Y3VtZW50Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogewogICAgIGlmICghdmlldygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwotICAgIHJldHVybiB2aWV3KCktPnZpc2libGVDb250ZW50UmVj
dCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyku
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBjZTA3MjY4YTc1
NDczNWYyNmNmMDVlOGMwNWMxNDIyMzBkYWYxOTExLi4zMDQ4OTYyZTNkMGY4MTljYmYzNTg2Yzk0
YzgzYmQ5ZDg0ZDgwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1
cGRhdGUoKQogCiAgICAgRnJhbWVWaWV3KiBvdmVybGF5VmlldyA9IG92ZXJsYXlQYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5zaXplKCk7Ci0gICAgSW50U2l6ZSBm
cmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xvc2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KHRydWUpKS5zaXplKCk7CisgICAgSW50U2l6ZSBmcmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xv
c2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNs
dWRlU2Nyb2xsYmFycykpLnNpemUoKTsKICAgICBJbnRTaXplIHNpemUgPSBtX3NpemUuaXNFbXB0
eSgpID8gZnJhbWVWaWV3RnVsbFNpemUgOiBtX3NpemU7CiAgICAgb3ZlcmxheVBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCksIEludFBvaW50KCkpOwog
ICAgIHNpemUuc2NhbGUobV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTk1MjdlMWIwNGE5OGEyNjVmYTA1MDAwNjAyZjZlN2RlY2RmNzg4
My4uYTQwNTUyMDhjY2NhYzNiOTcyZDYxMmQ5M2QzOTU1Zjg1N2IzYzdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJIZWlnaHQoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJp
ZGRlbiwgZG8gbm90IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlu
bmVySGVpZ2h0IChzaW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KICAgICBi
b29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
QXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFw
RnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXctPm1h
cEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxi
YXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOwogfQog
CiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNTYsNyArMTE1Niw3IEBA
IGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmlj
ZSB3aWR0aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xs
YmFyIGludG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBk
ZXZpY2UpLgogICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6Oklu
Y2x1ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0
aCgpKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGRhY2EwODgxMGM5NTE4ZGYzOGNiZmNiYjQ4ZTIyMjM0MWViNjI5
NDkuLjA2ZjI4ODk5OTNlMDcyMDU4NGZjOTFiYjg1NzA1YmUwZmU3Mjk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9s
bGJhcgogICAgICAgICBoTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgICAgIC8vIFNlYW1sZXNz
IGRvY3VtZW50cyBiZWdpbiB3aXRoIGhlaWdodHMgb2YgMDsgd2Ugc3BlY2lhbCBjYXNlIHRoYXQg
aGVyZQogICAgICAgICAvLyB0byBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IG5lZWQgc2Nyb2xsYmFycy4KLSAgICAgICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKKyAgICAg
ICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNj
cm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQgPSBmcmFt
ZSgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2hvdWxk
RGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCk7CiAgICAgICAgIHZNb2RlID0gKGlzU2VhbWxl
c3NEb2N1bWVudCAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKSA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAgICAgfSBlbHNlIHsKQEAgLTExNjEsNyArMTE2MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5
KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2xh
c3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXplID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSB2aXNpYmxlQ29udGVudFJlY3Qo
SW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9v
bUZhY3RvciA9IHJvb3QtPnN0eWxlKCktPnpvb20oKTsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGluaXRpYWwgdk1vZGUgdG8gQWx3YXlzT24gaWYgd2UncmUgYXV0by4KQEAgLTI2
MDIsNyArMjYwMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkK
ICAgICAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkgJiYgIWZpeGVkTGF5b3V0U2l6ZSgpLmlzRW1w
dHkoKSAmJiBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIGN1cnJlbnRTaXplID0g
Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJlbnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7
CisgICAgICAgICAgICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOwogICAgICAgICBmbG9hdCBjdXJyZW50Wm9vbUZhY3RvciA9IHJlbmRl
clZpZXctPnN0eWxlKCktPnpvb20oKTsKICAgICAgICAgYm9vbCByZXNpemVkID0gIW1fZmlyc3RM
YXlvdXQgJiYgKGN1cnJlbnRTaXplICE9IG1fbGFzdFZpZXdwb3J0U2l6ZSB8fCBjdXJyZW50Wm9v
bUZhY3RvciAhPSBtX2xhc3Rab29tRmFjdG9yKTsKICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gY3VycmVudFNpemU7CkBAIC0yNzg0LDcgKzI3ODQsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKICAgICAgICAgcmV0dXJu
IEludFJlY3QoSW50UG9pbnQoKSwgY29udGVudHNTaXplKCkpOwogCiAgICAgLy8gU2V0IG91ciBj
bGlwIHJlY3QgdG8gYmUgb3VyIGNvbnRlbnRzLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250
ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29udGVudHMpKTsKKyAgICBJ
bnRSZWN0IGNsaXBSZWN0ID0gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoY2xp
cFRvQ29udGVudHMgPyBFeGNsdWRlU2Nyb2xsYmFycyA6IEluY2x1ZGVTY3JvbGxiYXJzKSk7CiAg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIGNsaXBSZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CmluZGV4IDYyYTM5ODY2ZTRhYTJlODI0MTUzNTUyOGUxYWE5ZTcxYmFjNjIwNjMuLjMzOGMzODk5
Mzg2MDQ5ZjdmZmQ2NzE2N2Q0YzM4ZGEwZGM4NzU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9vbCBjYW5TY3JvbGxJ
bkRpcmVjdGlvbihjb25zdCBGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExheW91dFNpemUgc2l6ZSA9IGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzU2l6ZSgpOwogICAgIExheW91dFNpemUgb2Zmc2V0ID0gZnJhbWUtPnZpZXco
KS0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCByZWN0ID0gZnJhbWUtPnZpZXcoKS0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIExheW91dFJlY3QgcmVjdCA9IGZyYW1lLT52
aWV3KCktPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWY4YmRiM2M0
ODQ3NWU0M2QzNDE4NWVmZTdmNmE2OThlNzdiNTQ4MS4uMjcwMzhkMzBlYTNmYWIyNzU4YWMxY2Nj
NmVjYjM5YzliNmZkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTIyNSwxMCArMjI1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xs
aW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENo
YW5nZSgpOwogfQogCi1JbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRTaXplIFNjcm9sbFZpZXc6OnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xs
YmFycyBzY3JvbGxiYXJJbmNsdXNpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOworICAgICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJl
Y3Qoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAg
ICBpZiAoIW1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbV9maXhlZFZpc2libGVDb250ZW50UmVjdC5zaXplKCk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
SW50U2l6ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsK
ICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoIWluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRp
Y2FsQmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKSkKQEAgLTI0OCwxNSArMjQ4LDE1IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIH0KIAogI2lm
ICFQTEFURk9STShHVEspCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxl
Q29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2xsYmFy
SW5jbHVzaW9uKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
ICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3Qoc2NvbGxiYXJJbmNsdXNpb24g
PT0gSW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgaWYgKCFtX2ZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7
CiAKLSAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2FsZWRWaXNpYmxlQ29u
dGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgIEZsb2F0U2l6ZSB2aXNpYmxlQ29udGVu
dFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lvbik7CiAg
ICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9y
KCkpOwogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5k
ZWRJbnRTaXplKHZpc2libGVDb250ZW50U2l6ZSkpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJh
cnMpIGNvbnN0CiAKIEludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhlZExheW91
dCA/IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKSA6IG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgIW1fdXNlRml4ZWRM
YXlvdXQgPyB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShFeGNsdWRlU2Nyb2xsYmFycykgOiBt
X2ZpeGVkTGF5b3V0U2l6ZTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpmaXhlZExheW91dFNp
emUoKSBjb25zdApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBib29sIHNlbmRD
b250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAgSW50
U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Ci0gICAgICAgIEludFNpemUgZnVsbFZpc2li
bGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5z
aXplKCk7CisgICAgICAgIEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAgICAgICAgaWYgKGhTY3JvbGwgPT0g
U2Nyb2xsYmFyQXV0bykgewogICAgICAgICAgICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGRvY1NpemUud2lkdGgoKSA+IHZpc2libGVXaWR0aCgpOwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKICAgICBJbnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKICAg
ICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKLSAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhvdXRTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChmYWxz
ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJz
KGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSk7CiAgICAgICAgIGRvY3Vt
ZW50RGlydHlSZWN0LmludGVyc2VjdCh2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJzKTsKICAg
ICB9CiAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghbV9zY3Jv
bGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGljYWxT
Y3JvbGxiYXIpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqY29udGV4dCk7CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7
Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyhsb2NhdGlvbigpLCB2
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRl
U2Nyb2xsYmFycykuc2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNl
Y3QodmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlv
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBmZTdiMDEwMTE1Mjg3
MWMwMjFlZWZkMTUxYjk4NjE5YjZkY2Y5MDdlLi5hMzE2NDVkMmUzNGJhNDNlYzZlYjk4Y2FmZmUy
YWY5NjNkY2E3ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBzaXR1YXRpb24gdGhlIGNsaWVudCBp
cyByZXNwb25zaWJsZSBmb3IgdGhlIHNjcm9sbGluZyAoaWUuIHdpdGggYSB0aWxlZCBiYWNraW5n
IHN0b3JlKSBpdCBpcyBwb3NzaWJsZSB0byB1c2UKICAgICAvLyB0aGUgc2V0Rml4ZWRWaXNpYmxl
Q29udGVudFJlY3QgaW5zdGVhZCBmb3IgdGhlIG1haW5mcmFtZSwgdGhvdWdoIHRoaXMgbXVzdCBi
ZSB1cGRhdGVkIG1hbnVhbGx5LCBlLmcganVzdCBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhZ2UKICAg
ICAvLyB3aGljaCB1c3VhbGx5IHdpbGwgaGFwcGVuIHdoZW4gcGFubmluZywgcGluY2hpbmcgYW5k
IHJvdGF0aW9uIGVuZHMsIG9yIHdoZW4gc2NhbGUgb3IgcG9zaXRpb24gYXJlIGNoYW5nZWQgbWFu
dWFsbHkuCi0gICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1
ZGVTY3JvbGxiYXJzID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJz
ID0gRXhjbHVkZVNjcm9sbGJhcnMpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QpIHsgbV9maXhlZFZpc2libGVDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQog
ICAgIEludFJlY3QgZml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsgfQpAQCAtMTU1LDcgKzE1NSw3
IEBAIHB1YmxpYzoKICAgICAvLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkg
MSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaXMgdHJ1ZSBhbmQgdGhlCiAgICAgLy8gU2Nyb2xsVmlldyBpcyB0aGUgbWFpbiBmcmFtZTsg
aW4gdGhhdCBjYXNlLCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIGVxdWFsIHRvIHRoZSBw
YWdlJ3MgcGFnZVNjYWxlRmFjdG9yLgogICAgIC8vIFBvcnRzIHRoYXQgZG9uJ3QgdXNlIHBhZ2VT
Y2FsZUZhY3RvciBjYW4gdHJlYXQgdW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUgYW5kIHZpc2li
bGVDb250ZW50UmVjdCgpLnNpemUoKSBhcyBlcXVpdmFsZW50LgotICAgIEludFNpemUgdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAg
SW50U2l6ZSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJlY3RJbmNs
dWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAg
ICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3Vs
ZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1l
IGFzIHRoZSB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAKaW5kZXggMzVkYWFjNGFkOTM1YWQ1MGE4MzhkMGNjMjJhNWFkN2MxZDAxMzFkYS4uZjY5YmUw
M2JmNTU4ZTU2MmM3NjIzZjA4ZWMzMjEyNTY2M2Q2MWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDAzLDEyICs0MDMsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsYWJsZUFyZWE6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IEludFBvaW50KGNvbnRlbnRzU2l6ZSgpLndpZHRoKCkgLSB2aXNpYmxlV2lkdGgoKSwgY29udGVu
dHNTaXplKCkuaGVpZ2h0KCkgLSB2aXNpYmxlSGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFNjcm9s
bGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3QKK0ludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29u
dGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewog
ICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKKyAgICBp
ZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAg
ICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwogICAgICAgICBpZiAoU2Nyb2xsYmFy
KiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNWZhNmUyN2Q5N2UxYmMzYTNiMjE2NjUyOGY0
YTI1OWM2OWQ5YTY2YS4uMzU4YmQ4Zjc4ZDMyZTE1MTFhMjVmMzgxYTk2OWM4ZTI5OTA1MDIzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLyA9IGZhbHNlKSBjb25zdDsKKworICAgIGVudW0gVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzIHsgRXhjbHVkZVNjcm9sbGJhcnMsIEluY2x1ZGVTY3JvbGxiYXJzIH07Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxl
V2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFs
b2cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHAKaW5kZXgg
YjI0OThhZTRjNWU1ZjAzMTkwNDI3OTIxYmJjNzlhMGQ0Nzk0MmI0My4uYjhmM2QxOTg1NzRmMDgz
NjY0NTAwOTgzZjE4MGFhMmQ5Mzg1MGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRpYWxvZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRpYWxvZy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBSZW5kZXJEaWFsb2c6OmxheW91
dCgpCiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudCgpLT52aWV3KCk7CiAgICAg
aW50IHNjcm9sbFRvcCA9IGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0KCk7CiAgICAg
RmxvYXRQb2ludCBhYnNvbHV0ZVBvaW50KDAsIHNjcm9sbFRvcCk7Ci0gICAgaW50IHZpc2libGVI
ZWlnaHQgPSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlKS5oZWlnaHQoKTsKKyAg
ICBpbnQgdmlzaWJsZUhlaWdodCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9s
bGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycykuaGVpZ2h0KCk7CiAgICAgaWYgKGhlaWdodCgp
IDwgdmlzaWJsZUhlaWdodCkKICAgICAgICAgYWJzb2x1dGVQb2ludC5tb3ZlKDAsICh2aXNpYmxl
SGVpZ2h0IC0gaGVpZ2h0KCkpIC8gMik7CiAgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gY29u
dGFpbmluZ0Jsb2NrKCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRkMGRjMmE0NWNmZmFjYjNlNTRm
Yjk2MTY3NmU2YmIwMjg2MDNlMWQuLjk4YmMxYjg5ZTNhYzBlNGU3ZDEwZTQxYTc1ODc4MmQ1MThi
ODRkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjQ0
NSwxNCArMjQ0NSwxNCBAQCBJbnRQb2ludCBSZW5kZXJMYXllcjo6bWluaW11bVNjcm9sbFBvc2l0
aW9uKCkgY29uc3QKIEludFBvaW50IFJlbmRlckxheWVyOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24o
KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBtX3Njcm9sbFNpemUgbWF5IG5vdCBiZSB1cC10by1k
YXRlIGlmIG1fc2Nyb2xsRGltZW5zaW9uc0RpcnR5IGlzIHRydWUuCi0gICAgcmV0dXJuIHNjcm9s
bE9yaWdpbigpICsgcm91bmRlZEludFNpemUobV9zY3JvbGxTaXplKSAtIHZpc2libGVDb250ZW50
UmVjdCh0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHNjcm9sbE9yaWdpbigpICsgcm91bmRlZElu
dFNpemUobV9zY3JvbGxTaXplKSAtIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Nyb2xsYmFy
cykuc2l6ZSgpOwogfQogCi1JbnRSZWN0IFJlbmRlckxheWVyOjp2aXNpYmxlQ29udGVudFJlY3Qo
Ym9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKK0ludFJlY3QgUmVuZGVyTGF5ZXI6OnZpc2li
bGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xs
YmFySW5jbHVzaW9uKSBjb25zdAogewogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0g
MDsKICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7Ci0gICAgaWYgKGluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBJbmNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gKHZlcnRpY2FsU2Ny
b2xsYmFyKCkgJiYgIXZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKSA/
IHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAwOwogICAgICAgICBob3Jpem9udGFsU2Ny
b2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaG9yaXpvbnRhbFNjcm9s
bGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhl
aWdodCgpIDogMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDFjZmM5MDg1NzJiZTVlNDhiODBhOTg4ZDE0MDJmZWM4NjBlNTBhNTUuLjI5NjFmOGNlOGUy
YTUxMTQwOGNkM2MzMGY0OTU3ZmJiMGU2MThiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC05MzQsNyArOTM0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRQb2ludCBtaW5p
bXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1heGltdW1T
Y3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlQ29udGVu
dFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAgdmlydHVhbCBJbnRSZWN0
IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMp
IGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHZpc2libGVIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGludCB2aXNpYmxlV2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFNpemUgY29udGVu
dHNTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDA0MzczMzBkN2ZjZTUxZWNkZTEyNWY5NzI5YjNhZGFi
MTI4ZGU5NTcuLmE2ZGI4ZmQwMDlhMmNiMGQxOGQ0YTljNjRlNmI3MDI4YWJkMDM5NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVW
aWV3RGlkQ2hhbmdlU2l6ZSgpCiB7CiAgICAgaWYgKG1fY2xpcExheWVyKSB7CiAgICAgICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKTsKLSAgICAgICAg
bV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6
ZShmYWxzZSAvKiBleGNsdWRlIHNjcm9sbGJhcnMgKi8pKTsKKyAgICAgICAgbV9jbGlwTGF5ZXIt
PnNldFNpemUoZnJhbWVWaWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZSgpKTsKIAogICAg
ICAgICBmcmFtZVZpZXdEaWRTY3JvbGwoKTsKICAgICAgICAgdXBkYXRlT3ZlcmZsb3dDb250cm9s
c0xheWVycygpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKICAgICB9CiAgICAgaWYgKG1fY2xpcExheWVy
KSB7CiAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LT51bnNjYWxlZFZp
c2libGVDb250ZW50U2l6ZShmYWxzZSAvKiBleGNsdWRlIHNjcm9sbGJhcnMgKi8pKTsKKyAgICAg
ICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50
U2l6ZSgpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAyMTg5NzVkMWYzOGJkZTdhNTVhODAx
ODBhYTk5ZmYyYzI4ZGFkYzBkLi40YWI5Y2QyMzRjODlhNGRlMjAxYmU4YTQ1MzkyN2FhNWJhM2Q4
YWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTI1OTUs
NyArMjU5NSw3IEBAIEludFJlY3QgV2ViUGFnZVByaXZhdGU6OmdldFJlY3Vyc2l2ZVZpc2libGVX
aW5kb3dSZWN0KFNjcm9sbFZpZXcqIHZpZXcsIGJvb2wgbm9DCiAgICAgICAgIHJldHVybiBJbnRS
ZWN0KEludFBvaW50Ojp6ZXJvKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpKTsKICAgICB9CiAKLSAg
ICBJbnRSZWN0IHZpc2libGVXaW5kb3dSZWN0KHZpZXctPmNvbnRlbnRzVG9XaW5kb3codmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlKSkpOworICAgIEludFJlY3QgdmlzaWJsZVdpbmRvd1Jl
Y3Qodmlldy0+Y29udGVudHNUb1dpbmRvdyh2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSkpOwog
ICAgIGlmICh2aWV3LT5wYXJlbnQoKSAmJiAhKG5vQ2xpcE9mTWFpbkZyYW1lICYmIHZpZXctPnBh
cmVudCgpID09IG1fbWFpbkZyYW1lLT52aWV3KCkpKSB7CiAgICAgICAgIC8vIEludGVyc2VjdCB3
aXRoIHBhcmVudCB2aXNpYmxlIHJlY3QuCiAgICAgICAgIHZpc2libGVXaW5kb3dSZWN0LmludGVy
c2VjdChnZXRSZWN1cnNpdmVWaXNpYmxlV2luZG93UmVjdCh2aWV3LT5wYXJlbnQoKSwgbm9DbGlw
T2ZNYWluRnJhbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggZGVj
YzY1YzBmYzBmNDNlZDUwOTVmMTRiY2RhZTgwMjMzYTIwYzcyNi4uOWQ2MTMzNmE5MjMzZjc4YmIz
OThhOTk0MzU3OTdiMTNkMzAwNWE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5j
cHAKQEAgLTgxLDcgKzgxLDcgQEAgSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6SW5SZWdpb25TY3Jv
bGxhYmxlQXJlYShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgUmVuZGVyTGEKIAogICAgICAgICBt
X3Njcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnNjcm9s
bFBvc2l0aW9uKCkpOwogICAgICAgICBtX2NvbnRlbnRzU2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9U
cmFuc2Zvcm1lZCh2aWV3LT5jb250ZW50c1NpemUoKSk7Ci0gICAgICAgIG1fdmlld3BvcnRTaXpl
ID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pKS5zaXplKCk7CisgICAgICAgIG1fdmlld3BvcnRT
aXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnZpc2libGVDb250ZW50UmVj
dCgpKS5zaXplKCk7CiAKICAgICAgICAgbV9zY3JvbGxzSG9yaXpvbnRhbGx5ID0gdmlldy0+Y29u
dGVudHNXaWR0aCgpID4gdmlldy0+dmlzaWJsZVdpZHRoKCk7CiAgICAgICAgIG1fc2Nyb2xsc1Zl
cnRpY2FsbHkgPSB2aWV3LT5jb250ZW50c0hlaWdodCgpID4gdmlldy0+dmlzaWJsZUhlaWdodCgp
OwpAQCAtMTA0LDcgKzEwNCw3IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9uU2Ny
b2xsYWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAgICAgICAgIFNj
cm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSA9IHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVh
Kj4obV9sYXllcik7CiAgICAgICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBtX3dlYlBhZ2UtPm1hcFRv
VHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICBt
X2NvbnRlbnRzU2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZChzY3JvbGxhYmxlQXJl
YS0+Y29udGVudHNTaXplKCkpOwotICAgICAgICBtX3ZpZXdwb3J0U2l6ZSA9IG1fd2ViUGFnZS0+
bWFwVG9UcmFuc2Zvcm1lZChzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNl
IC8qaW5jbHVkZVNjcm9sbGJhcnMqLykpLnNpemUoKTsKKyAgICAgICAgbV92aWV3cG9ydFNpemUg
PSBtX3dlYlBhZ2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVDb250
ZW50UmVjdCgpKS5zaXplKCk7CiAKICAgICAgICAgbV9zY3JvbGxzSG9yaXpvbnRhbGx5ID0gYm94
LT5zY3JvbGxXaWR0aCgpICE9IGJveC0+Y2xpZW50V2lkdGgoKTsKICAgICAgICAgbV9zY3JvbGxz
VmVydGljYWxseSA9IGJveC0+c2Nyb2xsSGVpZ2h0KCkgIT0gYm94LT5jbGllbnRIZWlnaHQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5k
ZXggMjRiMDYyMzAzOTY0MjYwNzZhYjZjZjMxMGVjZmYyNjA4N2VlNGMyOC4uZTUyNzZmZmNiMzI2
OWZiNWFkMTlhYzU2NDFkYmQxODA3ZGZmOWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTc5OSw3ICs3OTksNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OnBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5l
ciwKICAgICAvLyB0byBpbnRlcmFjdCB2aWEgdGhlIGtleWJvYXJkIHdpdGggYW4gaW52aXNpYmxl
IHBvcHVwLgogICAgIGlmIChwb3B1cENvbnRhaW5lci0+cG9wdXBUeXBlKCkgPT0gUG9wdXBDb250
YWluZXI6OlN1Z2dlc3Rpb24pIHsKICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV93ZWJWaWV3
LT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZVJl
Y3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QodHJ1ZSAvKiBpbmNsdWRlIHNjcm9sbGJhcnMg
Ki8pOworICAgICAgICBJbnRSZWN0IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAgICAgICAgIC8vIHxib3Vu
ZHN8IGlzIGluIHNjcmVlbiBjb29yZGluYXRlcywgc28gbWFrZSBzdXJlIHRvIGNvbnZlcnQgaXQg
dG8KICAgICAgICAgLy8gY29udGVudCBjb29yZGluYXRlcyBwcmlvciB0byBjb21wYXJpbmcgdG8g
fHZpc2libGVSZWN0fC4KICAgICAgICAgSW50UmVjdCBzY3JlZW5SZWN0ID0gYm91bmRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCBjMjhkZDA1OTg3MmQwZDI0ZDczODI0ZWE1
OTQ3NWM1OTkzODExYzU0Li4wYWMxNjgxYzU2NWI4OWRhNWI2YmNjZDg0MGI3MjRlNDA1ODNlZjUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODIwLDcgKzgyMCw3IEBAIEVp
bmFfQm9vbCBld2tfZnJhbWVfdmlzaWJsZV9jb250ZW50X2dlb21ldHJ5X2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUsIEVpCiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzbWFydERhdGEtPmZyYW1lLCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKSwgZmFsc2UpOwotICAgIFdlYkNvcmU6
OkludFJlY3QgcmVjdCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+dmlzaWJsZUNvbnRlbnRS
ZWN0KGluY2x1ZGVTY3JvbGxiYXJzKTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3QgPSBzbWFy
dERhdGEtPmZyYW1lLT52aWV3KCktPnZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Nyb2xsYmFy
cyA/IFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyA6IFNjcm9sbGFibGVBcmVhOjpF
eGNsdWRlU2Nyb2xsYmFycyk7CiAgICAgaWYgKHgpCiAgICAgICAgICp4ID0gcmVjdC54KCk7CiAg
ICAgaWYgKHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggODQ2ZmZjM2VhNjE2YzFiYTYxNDdi
YTk0OTNiYWYxY2IzMjhkNzhjOS4uZWY3MmI0YTMzNjlkOWI5ZTgwNTZkZjZlNzZlNmNiMjZhNjBh
M2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtMTI2NCw3ICsxMjY0LDcgQEAgSFJFU1VM
VCBXZWJGcmFtZTo6dmlzaWJsZUNvbnRlbnRSZWN0KFJFQ1QqIHJlY3QpCiAgICAgaWYgKCF2aWV3
KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgKnJlY3QgPSB2aWV3LT52aXNpYmxlQ29u
dGVudFJlY3QoZmFsc2UpOworICAgICpyZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTI0NzEsNyArMjQ3MSw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OmZyYW1lQm91bmRzKAogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIEZsb2F0UmVjdCBib3VuZHMgPSB2aWV3LT52aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSk7CisgICAgRmxvYXRSZWN0IGJvdW5kcyA9IHZpZXctPnZpc2li
bGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgIHJl
c3VsdC0+Ym90dG9tID0gKExPTkcpIGJvdW5kcy5oZWlnaHQoKTsKICAgICByZXN1bHQtPnJpZ2h0
ID0gKExPTkcpIGJvdW5kcy53aWR0aCgpOwogICAgIHJldHVybiBTX09LOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggZTRlOTY0MTI3Yjhi
MjlmNjgxNzA3YjRlNGFiZWRiYTY2YjU5ODVmNy4uMjRlMDhkMzBlZjQ0NWEwOTYxYjUwYWY5OTY3
ZTdmNjE5ZDc4MmIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCkBAIC00ODIsNyArNDgyLDcgQEAgSW50UmVjdCBXZWJGcmFtZTo6dmlzaWJs
ZUNvbnRlbnRCb3VuZHMoKSBjb25zdAogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIElu
dFJlY3QoKTsKICAgICAKLSAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KHRydWUpOworICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52aXNpYmxl
Q29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJzKTsKICAgICByZXR1
cm4gSW50UmVjdCgwLCAwLCBjb250ZW50UmVjdC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQo
KSk7CiB9CiAKQEAgLTQ5NSw3ICs0OTUsNyBAQCBJbnRSZWN0IFdlYkZyYW1lOjp2aXNpYmxlQ29u
dGVudEJvdW5kc0V4Y2x1ZGluZ1Njcm9sbGJhcnMoKSBjb25zdAogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuIEludFJlY3QoKTsKICAgICAKLSAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0g
dmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlKTsKKyAgICBJbnRSZWN0IGNvbnRlbnRSZWN0
ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAgICAgcmV0dXJuIEludFJlY3QoMCwgMCwg
Y29udGVudFJlY3Qud2lkdGgoKSwgY29udGVudFJlY3QuaGVpZ2h0KCkpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188968</attachid>
            <date>2013-02-18 17:31:12 -0800</date>
            <delta_ts>2013-02-18 17:57:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110167-20130218172734.patch</filename>
            <type>text/plain</type>
            <size>35294</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uYjg5NDhjNTA3ZGEyNWUyZjUzYzQxOTExNjAzOWE4
NDczNTY0NjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRo
ZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1
bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAg
ICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aWV3cG9ydFNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExh
eW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3Qp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEaWFsb2c6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpt
YXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnZp
c2libGVDb250ZW50UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQ
b3NpdGlvbik6CisKIDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMxNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNTM3ZmYxMzYzM2MxM2MxMDVhNGE5YzEw
MTRiNTRiN2Y3NTRlZjVkLi4xZTE5YjEzN2RlOWRlMGE2Y2Q0ZjU4ZGM3MjNkMjM5MzlmMzc2NzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIGJv
b2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBl
bnVtLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEzLTAyLTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzZXRWYWx1ZSBhbmQgY2xvc2VQb3B1cCBtZXRob2Rz
IHRvIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjQw
OWZmMDkzMTlkZjA5OWNkOTM2NGViZDhkNzFmYzZmZGYxNjRiZi4uZTljYjY4YWEwMjAwMGFkMDAy
NzQyOGVmNDI3MTY4N2VmNjQwYjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxl
Q29udGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkg
d2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZCk6CisK
IDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI4ZGY1NGQ0ZjBiMzVlZDg1Yzhk
N2JmMzc4YWUzZGQzMTJjZC4uN2E1YTdiZDEzYTE5YTU5YTc4MDM0YzkwZWEyMTkwNjNjYjNiNDA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
b29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1bWVu
dCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aXNpYmxlX2NvbnRl
bnRfZ2VvbWV0cnlfZ2V0KToKKwogMjAxMy0wMi0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWlsZCB3aGVu
IENPTlRFWFRfTUVOVVMgZmxhZyBpcyB0dXJuZWQgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjJl
ZjBhOGExYzMxNGMxMDAxZjQ2N2Y1NDE5NTA5OTdhMzYyOWY0Ni4uMWFmZmIxNDFlYjBjNDMzZjcy
ZThmMzQyNGUzM2QxMjY2NDJkYjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAyLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHRoZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAg
ICAgIGFuIGVudW0uCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFt
ZTo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpmcmFtZUJvdW5kcyk6
CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFN0b3AgcGxhY2luZyBzdGQ6OmlzZmluaXRlIGFuZCBzdGQ6OnNpZ25iaXQgaW5zaWRl
IHRoZSBnbG9iYWwgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGRmMzMyYmI1NGEyM2FiMmZjYmU0MDRh
MmIxZGRlNzJhMzBiMzAyLi42MGI2ODc4NTQzMWJlNTQzZWMxYmYxOTEyOWQ0NzUyZjI3MjczYjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4g
YXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1l
bnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgcGluY2gtem9v
bWluZyB3ZWJwYWdlIG1lc3NlcyB1cCBmdWxsLXNjcmVlbmluZyBvZiBlbWJlZGRlZCB2aWRlbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5NDAyZjcwYTUwZWFlODkxNGMwNzJiYzAwZWM5OTQwM2Nm
ZmQ1ZjgzLi42ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTE3OSw3ICsxMTc5LDYgQEAgX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTEwU2Ny
b2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQotX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTBpc0NvbXBsZXRlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKQEAgLTE3ODksNyArMTc4OCw3IEBAIF9fWk43
V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4SW50UG9pbnRDMUVS
SzdDR1BvaW50CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTks3V2Vi
Q29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhMTh2aXNpYmxlQ29udGVudFJlY3RFYgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEx
OHZpc2libGVDb250ZW50UmVjdEVOUzBfMzZWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9s
bGJhcnNFCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3MGE1NDcxNzczNmM5
MGRkMTNhOWMxYzNjYS4uNTViNGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzAxLDcgKzU3MDEsNyBAQCBJbnRTaXplIERv
Y3VtZW50Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogewogICAgIGlmICghdmlldygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwotICAgIHJldHVybiB2aWV3KCktPnZpc2libGVDb250ZW50UmVj
dCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyku
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBjZTA3MjY4YTc1
NDczNWYyNmNmMDVlOGMwNWMxNDIyMzBkYWYxOTExLi4zMDQ4OTYyZTNkMGY4MTljYmYzNTg2Yzk0
YzgzYmQ5ZDg0ZDgwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1
cGRhdGUoKQogCiAgICAgRnJhbWVWaWV3KiBvdmVybGF5VmlldyA9IG92ZXJsYXlQYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5zaXplKCk7Ci0gICAgSW50U2l6ZSBm
cmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xvc2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KHRydWUpKS5zaXplKCk7CisgICAgSW50U2l6ZSBmcmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xv
c2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNs
dWRlU2Nyb2xsYmFycykpLnNpemUoKTsKICAgICBJbnRTaXplIHNpemUgPSBtX3NpemUuaXNFbXB0
eSgpID8gZnJhbWVWaWV3RnVsbFNpemUgOiBtX3NpemU7CiAgICAgb3ZlcmxheVBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCksIEludFBvaW50KCkpOwog
ICAgIHNpemUuc2NhbGUobV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTk1MjdlMWIwNGE5OGEyNjVmYTA1MDAwNjAyZjZlN2RlY2RmNzg4
My4uYTQwNTUyMDhjY2NhYzNiOTcyZDYxMmQ5M2QzOTU1Zjg1N2IzYzdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJIZWlnaHQoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJp
ZGRlbiwgZG8gbm90IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlu
bmVySGVpZ2h0IChzaW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KICAgICBi
b29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
QXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFw
RnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXctPm1h
cEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxi
YXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOwogfQog
CiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNTYsNyArMTE1Niw3IEBA
IGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmlj
ZSB3aWR0aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xs
YmFyIGludG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBk
ZXZpY2UpLgogICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6Oklu
Y2x1ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0
aCgpKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGRhY2EwODgxMGM5NTE4ZGYzOGNiZmNiYjQ4ZTIyMjM0MWViNjI5
NDkuLjA2ZjI4ODk5OTNlMDcyMDU4NGZjOTFiYjg1NzA1YmUwZmU3Mjk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9s
bGJhcgogICAgICAgICBoTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgICAgIC8vIFNlYW1sZXNz
IGRvY3VtZW50cyBiZWdpbiB3aXRoIGhlaWdodHMgb2YgMDsgd2Ugc3BlY2lhbCBjYXNlIHRoYXQg
aGVyZQogICAgICAgICAvLyB0byBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IG5lZWQgc2Nyb2xsYmFycy4KLSAgICAgICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKKyAgICAg
ICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNj
cm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQgPSBmcmFt
ZSgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2hvdWxk
RGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCk7CiAgICAgICAgIHZNb2RlID0gKGlzU2VhbWxl
c3NEb2N1bWVudCAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKSA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAgICAgfSBlbHNlIHsKQEAgLTExNjEsNyArMTE2MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5
KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2xh
c3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXplID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSB2aXNpYmxlQ29udGVudFJlY3Qo
SW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9v
bUZhY3RvciA9IHJvb3QtPnN0eWxlKCktPnpvb20oKTsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGluaXRpYWwgdk1vZGUgdG8gQWx3YXlzT24gaWYgd2UncmUgYXV0by4KQEAgLTI2
MDIsNyArMjYwMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkK
ICAgICAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkgJiYgIWZpeGVkTGF5b3V0U2l6ZSgpLmlzRW1w
dHkoKSAmJiBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIGN1cnJlbnRTaXplID0g
Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJlbnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7
CisgICAgICAgICAgICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOwogICAgICAgICBmbG9hdCBjdXJyZW50Wm9vbUZhY3RvciA9IHJlbmRl
clZpZXctPnN0eWxlKCktPnpvb20oKTsKICAgICAgICAgYm9vbCByZXNpemVkID0gIW1fZmlyc3RM
YXlvdXQgJiYgKGN1cnJlbnRTaXplICE9IG1fbGFzdFZpZXdwb3J0U2l6ZSB8fCBjdXJyZW50Wm9v
bUZhY3RvciAhPSBtX2xhc3Rab29tRmFjdG9yKTsKICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gY3VycmVudFNpemU7CkBAIC0yNzg0LDcgKzI3ODQsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKICAgICAgICAgcmV0dXJu
IEludFJlY3QoSW50UG9pbnQoKSwgY29udGVudHNTaXplKCkpOwogCiAgICAgLy8gU2V0IG91ciBj
bGlwIHJlY3QgdG8gYmUgb3VyIGNvbnRlbnRzLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250
ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29udGVudHMpKTsKKyAgICBJ
bnRSZWN0IGNsaXBSZWN0ID0gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoY2xp
cFRvQ29udGVudHMgPyBFeGNsdWRlU2Nyb2xsYmFycyA6IEluY2x1ZGVTY3JvbGxiYXJzKSk7CiAg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIGNsaXBSZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CmluZGV4IDYyYTM5ODY2ZTRhYTJlODI0MTUzNTUyOGUxYWE5ZTcxYmFjNjIwNjMuLjMzOGMzODk5
Mzg2MDQ5ZjdmZmQ2NzE2N2Q0YzM4ZGEwZGM4NzU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9vbCBjYW5TY3JvbGxJ
bkRpcmVjdGlvbihjb25zdCBGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExheW91dFNpemUgc2l6ZSA9IGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzU2l6ZSgpOwogICAgIExheW91dFNpemUgb2Zmc2V0ID0gZnJhbWUtPnZpZXco
KS0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCByZWN0ID0gZnJhbWUtPnZpZXcoKS0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIExheW91dFJlY3QgcmVjdCA9IGZyYW1lLT52
aWV3KCktPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWY4YmRiM2M0
ODQ3NWU0M2QzNDE4NWVmZTdmNmE2OThlNzdiNTQ4MS4uMjcwMzhkMzBlYTNmYWIyNzU4YWMxY2Nj
NmVjYjM5YzliNmZkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTIyNSwxMCArMjI1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xs
aW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENo
YW5nZSgpOwogfQogCi1JbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRTaXplIFNjcm9sbFZpZXc6OnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xs
YmFycyBzY3JvbGxiYXJJbmNsdXNpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOworICAgICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJl
Y3Qoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAg
ICBpZiAoIW1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbV9maXhlZFZpc2libGVDb250ZW50UmVjdC5zaXplKCk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
SW50U2l6ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsK
ICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoIWluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRp
Y2FsQmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKSkKQEAgLTI0OCwxNSArMjQ4LDE1IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIH0KIAogI2lm
ICFQTEFURk9STShHVEspCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxl
Q29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2xsYmFy
SW5jbHVzaW9uKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
ICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3Qoc2NvbGxiYXJJbmNsdXNpb24g
PT0gSW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgaWYgKCFtX2ZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7
CiAKLSAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2FsZWRWaXNpYmxlQ29u
dGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgIEZsb2F0U2l6ZSB2aXNpYmxlQ29udGVu
dFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lvbik7CiAg
ICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9y
KCkpOwogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5k
ZWRJbnRTaXplKHZpc2libGVDb250ZW50U2l6ZSkpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJh
cnMpIGNvbnN0CiAKIEludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhlZExheW91
dCA/IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKSA6IG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgIW1fdXNlRml4ZWRM
YXlvdXQgPyB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShFeGNsdWRlU2Nyb2xsYmFycykgOiBt
X2ZpeGVkTGF5b3V0U2l6ZTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpmaXhlZExheW91dFNp
emUoKSBjb25zdApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBib29sIHNlbmRD
b250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAgSW50
U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Ci0gICAgICAgIEludFNpemUgZnVsbFZpc2li
bGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5z
aXplKCk7CisgICAgICAgIEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAgICAgICAgaWYgKGhTY3JvbGwgPT0g
U2Nyb2xsYmFyQXV0bykgewogICAgICAgICAgICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGRvY1NpemUud2lkdGgoKSA+IHZpc2libGVXaWR0aCgpOwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKICAgICBJbnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKICAg
ICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKLSAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhvdXRTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChmYWxz
ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJz
KGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSk7CiAgICAgICAgIGRvY3Vt
ZW50RGlydHlSZWN0LmludGVyc2VjdCh2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJzKTsKICAg
ICB9CiAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghbV9zY3Jv
bGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGljYWxT
Y3JvbGxiYXIpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqY29udGV4dCk7CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7
Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyhsb2NhdGlvbigpLCB2
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRl
U2Nyb2xsYmFycykuc2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNl
Y3QodmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlv
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBmZTdiMDEwMTE1Mjg3
MWMwMjFlZWZkMTUxYjk4NjE5YjZkY2Y5MDdlLi5hMzE2NDVkMmUzNGJhNDNlYzZlYjk4Y2FmZmUy
YWY5NjNkY2E3ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBzaXR1YXRpb24gdGhlIGNsaWVudCBp
cyByZXNwb25zaWJsZSBmb3IgdGhlIHNjcm9sbGluZyAoaWUuIHdpdGggYSB0aWxlZCBiYWNraW5n
IHN0b3JlKSBpdCBpcyBwb3NzaWJsZSB0byB1c2UKICAgICAvLyB0aGUgc2V0Rml4ZWRWaXNpYmxl
Q29udGVudFJlY3QgaW5zdGVhZCBmb3IgdGhlIG1haW5mcmFtZSwgdGhvdWdoIHRoaXMgbXVzdCBi
ZSB1cGRhdGVkIG1hbnVhbGx5LCBlLmcganVzdCBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhZ2UKICAg
ICAvLyB3aGljaCB1c3VhbGx5IHdpbGwgaGFwcGVuIHdoZW4gcGFubmluZywgcGluY2hpbmcgYW5k
IHJvdGF0aW9uIGVuZHMsIG9yIHdoZW4gc2NhbGUgb3IgcG9zaXRpb24gYXJlIGNoYW5nZWQgbWFu
dWFsbHkuCi0gICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1
ZGVTY3JvbGxiYXJzID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJz
ID0gRXhjbHVkZVNjcm9sbGJhcnMpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QpIHsgbV9maXhlZFZpc2libGVDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQog
ICAgIEludFJlY3QgZml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsgfQpAQCAtMTU1LDcgKzE1NSw3
IEBAIHB1YmxpYzoKICAgICAvLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkg
MSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaXMgdHJ1ZSBhbmQgdGhlCiAgICAgLy8gU2Nyb2xsVmlldyBpcyB0aGUgbWFpbiBmcmFtZTsg
aW4gdGhhdCBjYXNlLCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIGVxdWFsIHRvIHRoZSBw
YWdlJ3MgcGFnZVNjYWxlRmFjdG9yLgogICAgIC8vIFBvcnRzIHRoYXQgZG9uJ3QgdXNlIHBhZ2VT
Y2FsZUZhY3RvciBjYW4gdHJlYXQgdW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUgYW5kIHZpc2li
bGVDb250ZW50UmVjdCgpLnNpemUoKSBhcyBlcXVpdmFsZW50LgotICAgIEludFNpemUgdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAg
SW50U2l6ZSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJlY3RJbmNs
dWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAg
ICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3Vs
ZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1l
IGFzIHRoZSB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAKaW5kZXggMzVkYWFjNGFkOTM1YWQ1MGE4MzhkMGNjMjJhNWFkN2MxZDAxMzFkYS4uZjY5YmUw
M2JmNTU4ZTU2MmM3NjIzZjA4ZWMzMjEyNTY2M2Q2MWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDAzLDEyICs0MDMsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsYWJsZUFyZWE6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IEludFBvaW50KGNvbnRlbnRzU2l6ZSgpLndpZHRoKCkgLSB2aXNpYmxlV2lkdGgoKSwgY29udGVu
dHNTaXplKCkuaGVpZ2h0KCkgLSB2aXNpYmxlSGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFNjcm9s
bGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3QKK0ludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29u
dGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewog
ICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKKyAgICBp
ZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAg
ICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwogICAgICAgICBpZiAoU2Nyb2xsYmFy
KiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNWZhNmUyN2Q5N2UxYmMzYTNiMjE2NjUyOGY0
YTI1OWM2OWQ5YTY2YS4uMzU4YmQ4Zjc4ZDMyZTE1MTFhMjVmMzgxYTk2OWM4ZTI5OTA1MDIzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLyA9IGZhbHNlKSBjb25zdDsKKworICAgIGVudW0gVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzIHsgRXhjbHVkZVNjcm9sbGJhcnMsIEluY2x1ZGVTY3JvbGxiYXJzIH07Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxl
V2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxW
aWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNw
cAppbmRleCBmOTgzNTgzYWRmNzdiYjkxNDljZjE0MjI3NWQxYjhiMDUxMzllYTY5Li4wYjA1YTU3
YjdkZTI5NGI2M2M4NmZkNTJlNzQ4ZjAwZjkxMjMyMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCkBAIC02Myw4ICs2MywxMCBAQCBQYXNzUmVm
UHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aQogICAgIHJldHVybiBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9s
bGJhcih0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9sbGJhcik7CiB9CiAKLUludFJlY3Qg
U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNv
bnN0CitJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVu
dFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogeworICAg
IGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSBzY3JvbGxiYXJJbmNsdXNpb24gPT0gSW5jbHVkZVNj
cm9sbGJhcnM7CisKICAgICAvLyBJZiB3ZSBhcmUgYW4gaW50ZXJpb3IgZnJhbWUgc2Nyb2xsYmFy
IG9yIGFyZSBpbiBzb21lIHNvcnQgb2YgdHJhbnNpdGlvbgogICAgIC8vIHN0YXRlLCBqdXN0IGNh
bGN1bGF0ZSBvdXIgc2l6ZSBiYXNlZCBvbiB3aGF0IHRoZSBHVEsrIHRoZW1lIHNheXMgdGhlCiAg
ICAgLy8gc2Nyb2xsYmFyIHdpZHRoIHNob3VsZCBiZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRpYWxvZy5jcHAKaW5kZXggYjI0OThhZTRjNWU1ZjAzMTkwNDI3OTIxYmJjNzlhMGQ0
Nzk0MmI0My4uYjhmM2QxOTg1NzRmMDgzNjY0NTAwOTgzZjE4MGFhMmQ5Mzg1MGU5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
dm9pZCBSZW5kZXJEaWFsb2c6OmxheW91dCgpCiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBk
b2N1bWVudCgpLT52aWV3KCk7CiAgICAgaW50IHNjcm9sbFRvcCA9IGZyYW1lVmlldy0+c2Nyb2xs
T2Zmc2V0KCkuaGVpZ2h0KCk7CiAgICAgRmxvYXRQb2ludCBhYnNvbHV0ZVBvaW50KDAsIHNjcm9s
bFRvcCk7Ci0gICAgaW50IHZpc2libGVIZWlnaHQgPSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50
UmVjdCh0cnVlKS5oZWlnaHQoKTsKKyAgICBpbnQgdmlzaWJsZUhlaWdodCA9IGZyYW1lVmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycykuaGVp
Z2h0KCk7CiAgICAgaWYgKGhlaWdodCgpIDwgdmlzaWJsZUhlaWdodCkKICAgICAgICAgYWJzb2x1
dGVQb2ludC5tb3ZlKDAsICh2aXNpYmxlSGVpZ2h0IC0gaGVpZ2h0KCkpIC8gMik7CiAgICAgRmxv
YXRQb2ludCBsb2NhbFBvaW50ID0gY29udGFpbmluZ0Jsb2NrKCktPmFic29sdXRlVG9Mb2NhbChh
YnNvbHV0ZVBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDRkMGRjMmE0NWNmZmFjYjNlNTRmYjk2MTY3NmU2YmIwMjg2MDNlMWQuLjk4YmMxYjg5ZTNh
YzBlNGU3ZDEwZTQxYTc1ODc4MmQ1MThiODRkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtMjQ0NSwxNCArMjQ0NSwxNCBAQCBJbnRQb2ludCBSZW5kZXJM
YXllcjo6bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIEludFBvaW50IFJlbmRlckxheWVy
OjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBtX3Njcm9s
bFNpemUgbWF5IG5vdCBiZSB1cC10by1kYXRlIGlmIG1fc2Nyb2xsRGltZW5zaW9uc0RpcnR5IGlz
IHRydWUuCi0gICAgcmV0dXJuIHNjcm9sbE9yaWdpbigpICsgcm91bmRlZEludFNpemUobV9zY3Jv
bGxTaXplKSAtIHZpc2libGVDb250ZW50UmVjdCh0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHNj
cm9sbE9yaWdpbigpICsgcm91bmRlZEludFNpemUobV9zY3JvbGxTaXplKSAtIHZpc2libGVDb250
ZW50UmVjdChJbmNsdWRlU2Nyb2xsYmFycykuc2l6ZSgpOwogfQogCi1JbnRSZWN0IFJlbmRlckxh
eWVyOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKK0lu
dFJlY3QgUmVuZGVyTGF5ZXI6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewogICAgIGludCB2
ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhl
aWdodCA9IDA7Ci0gICAgaWYgKGluY2x1ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJh
ckluY2x1c2lvbiA9PSBJbmNsdWRlU2Nyb2xsYmFycykgewogICAgICAgICB2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoID0gKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZlcnRpY2FsU2Nyb2xsYmFyKCkt
PmlzT3ZlcmxheVNjcm9sbGJhcigpKSA/IHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAw
OwogICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxi
YXIoKSAmJiAhaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkgPyBo
b3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDogMDsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDFjZmM5MDg1NzJiZTVlNDhiODBhOTg4ZDE0MDJm
ZWM4NjBlNTBhNTUuLjI5NjFmOGNlOGUyYTUxMTQwOGNkM2MzMGY0OTU3ZmJiMGU2MThiYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzQsNyArOTM0LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2
aXJ0dWFsIEludFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZpcnR1
YWwgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3Q7CisgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVu
dFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHZpc2libGVI
ZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxlV2lkdGgoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIEludFNpemUgY29udGVudHNTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDA0MzczMzBk
N2ZjZTUxZWNkZTEyNWY5NzI5YjNhZGFiMTI4ZGU5NTcuLmE2ZGI4ZmQwMDlhMmNiMGQxOGQ0YTlj
NjRlNmI3MDI4YWJkMDM5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlkQ2hhbmdlU2l6ZSgpCiB7CiAgICAgaWYgKG1f
Y2xpcExheWVyKSB7CiAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3
LT5mcmFtZVZpZXcoKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LT51
bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShmYWxzZSAvKiBleGNsdWRlIHNjcm9sbGJhcnMgKi8p
KTsKKyAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LT51bnNjYWxlZFZpc2li
bGVDb250ZW50U2l6ZSgpKTsKIAogICAgICAgICBmcmFtZVZpZXdEaWRTY3JvbGwoKTsKICAgICAg
ICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKICAg
ICB9CiAgICAgaWYgKG1fY2xpcExheWVyKSB7CiAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNp
emUoZnJhbWVWaWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShmYWxzZSAvKiBleGNsdWRl
IHNjcm9sbGJhcnMgKi8pKTsKKyAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3
LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZSgpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoUlVC
QkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAK
aW5kZXggMzQyNjM3YWFhYmVmYTVjMWRlNjI1NGVkNmEwMzc1ZDk2MTIzOTczNS4uZGE2YmQ0MWZj
NGM5ZmNhMTJjOWU3NjllMDZiN2RjNmVkNmI3Y2ViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIGJvb2wgVGV4dEF1dG9z
aXplcjo6cHJvY2Vzc1N1YnRyZWUoUmVuZGVyT2JqZWN0KiBsYXlvdXRSb290KQogICAgIHdpbmRv
d0luZm8ud2luZG93U2l6ZSA9IG1fZG9jdW1lbnQtPnNldHRpbmdzKCktPnRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKCk7CiAgICAgaWYgKHdpbmRvd0luZm8ud2luZG93U2l6ZS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgYm9vbCBpbmNsdWRlU2Nyb2xsYmFycyA9ICFJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShtYWluRnJhbWUpOwot
ICAgICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBtYWluRnJhbWUtPnZpZXcoKS0+dW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgICAgICB3aW5kb3dJ
bmZvLndpbmRvd1NpemUgPSBtYWluRnJhbWUtPnZpZXcoKS0+dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUoaW5jbHVkZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMgOiBTY3JvbGxhYmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpOwogICAgICAgICBpZiAoIW1f
ZG9jdW1lbnQtPnNldHRpbmdzKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
KSkKICAgICAgICAgICAgIHdpbmRvd0luZm8ud2luZG93U2l6ZS5zY2FsZSgxIC8gbV9kb2N1bWVu
dC0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAyMTg5NzVkMWYzOGJkZTdhNTVhODAxODBhYTk5
ZmYyYzI4ZGFkYzBkLi40YWI5Y2QyMzRjODlhNGRlMjAxYmU4YTQ1MzkyN2FhNWJhM2Q4YWVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTI1OTUsNyArMjU5
NSw3IEBAIEludFJlY3QgV2ViUGFnZVByaXZhdGU6OmdldFJlY3Vyc2l2ZVZpc2libGVXaW5kb3dS
ZWN0KFNjcm9sbFZpZXcqIHZpZXcsIGJvb2wgbm9DCiAgICAgICAgIHJldHVybiBJbnRSZWN0KElu
dFBvaW50Ojp6ZXJvKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpKTsKICAgICB9CiAKLSAgICBJbnRS
ZWN0IHZpc2libGVXaW5kb3dSZWN0KHZpZXctPmNvbnRlbnRzVG9XaW5kb3codmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KGZhbHNlKSkpOworICAgIEludFJlY3QgdmlzaWJsZVdpbmRvd1JlY3Qodmll
dy0+Y29udGVudHNUb1dpbmRvdyh2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSkpOwogICAgIGlm
ICh2aWV3LT5wYXJlbnQoKSAmJiAhKG5vQ2xpcE9mTWFpbkZyYW1lICYmIHZpZXctPnBhcmVudCgp
ID09IG1fbWFpbkZyYW1lLT52aWV3KCkpKSB7CiAgICAgICAgIC8vIEludGVyc2VjdCB3aXRoIHBh
cmVudCB2aXNpYmxlIHJlY3QuCiAgICAgICAgIHZpc2libGVXaW5kb3dSZWN0LmludGVyc2VjdChn
ZXRSZWN1cnNpdmVWaXNpYmxlV2luZG93UmVjdCh2aWV3LT5wYXJlbnQoKSwgbm9DbGlwT2ZNYWlu
RnJhbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggZGVjYzY1YzBm
YzBmNDNlZDUwOTVmMTRiY2RhZTgwMjMzYTIwYzcyNi4uOWQ2MTMzNmE5MjMzZjc4YmIzOThhOTk0
MzU3OTdiMTNkMzAwNWE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAKQEAg
LTgxLDcgKzgxLDcgQEAgSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6SW5SZWdpb25TY3JvbGxhYmxl
QXJlYShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgUmVuZGVyTGEKIAogICAgICAgICBtX3Njcm9s
bFBvc2l0aW9uID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnNjcm9sbFBvc2l0
aW9uKCkpOwogICAgICAgICBtX2NvbnRlbnRzU2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zv
cm1lZCh2aWV3LT5jb250ZW50c1NpemUoKSk7Ci0gICAgICAgIG1fdmlld3BvcnRTaXplID0gbV93
ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnZpc2libGVDb250ZW50UmVjdChmYWxzZSAv
KmluY2x1ZGVTY3JvbGxiYXJzKi8pKS5zaXplKCk7CisgICAgICAgIG1fdmlld3BvcnRTaXplID0g
bV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5z
aXplKCk7CiAKICAgICAgICAgbV9zY3JvbGxzSG9yaXpvbnRhbGx5ID0gdmlldy0+Y29udGVudHNX
aWR0aCgpID4gdmlldy0+dmlzaWJsZVdpZHRoKCk7CiAgICAgICAgIG1fc2Nyb2xsc1ZlcnRpY2Fs
bHkgPSB2aWV3LT5jb250ZW50c0hlaWdodCgpID4gdmlldy0+dmlzaWJsZUhlaWdodCgpOwpAQCAt
MTA0LDcgKzEwNCw3IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9uU2Nyb2xsYWJs
ZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAgICAgICAgIFNjcm9sbGFi
bGVBcmVhKiBzY3JvbGxhYmxlQXJlYSA9IHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVhKj4obV9s
YXllcik7CiAgICAgICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBtX3dlYlBhZ2UtPm1hcFRvVHJhbnNm
b3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICBtX2NvbnRl
bnRzU2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZChzY3JvbGxhYmxlQXJlYS0+Y29u
dGVudHNTaXplKCkpOwotICAgICAgICBtX3ZpZXdwb3J0U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9U
cmFuc2Zvcm1lZChzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlIC8qaW5j
bHVkZVNjcm9sbGJhcnMqLykpLnNpemUoKTsKKyAgICAgICAgbV92aWV3cG9ydFNpemUgPSBtX3dl
YlBhZ2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVDb250ZW50UmVj
dCgpKS5zaXplKCk7CiAKICAgICAgICAgbV9zY3JvbGxzSG9yaXpvbnRhbGx5ID0gYm94LT5zY3Jv
bGxXaWR0aCgpICE9IGJveC0+Y2xpZW50V2lkdGgoKTsKICAgICAgICAgbV9zY3JvbGxzVmVydGlj
YWxseSA9IGJveC0+c2Nyb2xsSGVpZ2h0KCkgIT0gYm94LT5jbGllbnRIZWlnaHQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggMjRi
MDYyMzAzOTY0MjYwNzZhYjZjZjMxMGVjZmYyNjA4N2VlNGMyOC4uZTUyNzZmZmNiMzI2OWZiNWFk
MTlhYzU2NDFkYmQxODA3ZGZmOWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTc5OSw3ICs3OTksNyBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OnBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lciwKICAg
ICAvLyB0byBpbnRlcmFjdCB2aWEgdGhlIGtleWJvYXJkIHdpdGggYW4gaW52aXNpYmxlIHBvcHVw
LgogICAgIGlmIChwb3B1cENvbnRhaW5lci0+cG9wdXBUeXBlKCkgPT0gUG9wdXBDb250YWluZXI6
OlN1Z2dlc3Rpb24pIHsKICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV93ZWJWaWV3LT5wYWdl
KCktPm1haW5GcmFtZSgpLT52aWV3KCk7Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSB2
aWV3LT52aXNpYmxlQ29udGVudFJlY3QodHJ1ZSAvKiBpbmNsdWRlIHNjcm9sbGJhcnMgKi8pOwor
ICAgICAgICBJbnRSZWN0IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNj
cm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAgICAgICAgIC8vIHxib3VuZHN8IGlz
IGluIHNjcmVlbiBjb29yZGluYXRlcywgc28gbWFrZSBzdXJlIHRvIGNvbnZlcnQgaXQgdG8KICAg
ICAgICAgLy8gY29udGVudCBjb29yZGluYXRlcyBwcmlvciB0byBjb21wYXJpbmcgdG8gfHZpc2li
bGVSZWN0fC4KICAgICAgICAgSW50UmVjdCBzY3JlZW5SZWN0ID0gYm91bmRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCmluZGV4IDM4ZWQ0ODNjZDlm
ODc5MjNhM2IwZmFkNDlmNmViODk2ODE3OGJiNTMuLjFjYmNjZTUxMmJjN2U3MmE3NjRlYzMzMGEz
NTYyYTE3NWU5ZDIyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKQEAgLTQ4MiwxMSArNDgyLDExIEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIHBh
Z2VTY2FsZUZhY3RvclNocmlua3NWaWV3cG9ydCkKIAogICAgIG1fd2ViVmlldy0+c2V0UGFnZVNj
YWxlRmFjdG9yKDIsIFdlYlBvaW50KCkpOwogCi0gICAgV2ViQ29yZTo6SW50U2l6ZSB1bnNjYWxl
ZFNpemUgPSB2aWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZSh0cnVlKTsKKyAgICBXZWJD
b3JlOjpJbnRTaXplIHVuc2NhbGVkU2l6ZSA9IHZpZXctPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAgICAgRVhQRUNUX0VRKHZp
ZXdwb3J0V2lkdGgsIHVuc2NhbGVkU2l6ZS53aWR0aCgpKTsKICAgICBFWFBFQ1RfRVEodmlld3Bv
cnRIZWlnaHQsIHVuc2NhbGVkU2l6ZS5oZWlnaHQoKSk7CiAKLSAgICBXZWJDb3JlOjpJbnRTaXpl
IHVuc2NhbGVkU2l6ZU1pbnVzU2Nyb2xsYmFyID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUoZmFsc2UpOworICAgIFdlYkNvcmU6OkludFNpemUgdW5zY2FsZWRTaXplTWludXNTY3Jv
bGxiYXIgPSB2aWV3LT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShTY3JvbGxhYmxlQXJlYTo6
RXhjbHVkZVNjcm9sbGJhcnMpOwogICAgIEVYUEVDVF9FUSh2aWV3cG9ydFdpZHRoTWludXNTY3Jv
bGxiYXIsIHVuc2NhbGVkU2l6ZU1pbnVzU2Nyb2xsYmFyLndpZHRoKCkpOwogICAgIEVYUEVDVF9F
USh2aWV3cG9ydEhlaWdodE1pbnVzU2Nyb2xsYmFyLCB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJh
ci5oZWlnaHQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggYzI4ZGQw
NTk4NzJkMGQyNGQ3MzgyNGVhNTk0NzVjNTk5MzgxMWM1NC4uMGFjMTY4MWM1NjViODlkYTViNmJj
Y2Q4NDBiNzI0ZTQwNTgzZWY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAg
LTgyMCw3ICs4MjAsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3Zpc2libGVfY29udGVudF9nZW9t
ZXRyeV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFaQogICAgIEVXS19GUkFNRV9T
RF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgZmFsc2UpOwogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEtPmZyYW1lLT52aWV3KCksIGZh
bHNlKTsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3QgPSBzbWFydERhdGEtPmZyYW1lLT52aWV3
KCktPnZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Nyb2xsYmFycyk7CisgICAgV2ViQ29yZTo6
SW50UmVjdCByZWN0ID0gc21hcnREYXRhLT5mcmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJl
Y3QoaW5jbHVkZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMg
OiBTY3JvbGxhYmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpOwogICAgIGlmICh4KQogICAgICAg
ICAqeCA9IHJlY3QueCgpOwogICAgIGlmICh5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IDg0
NmZmYzNlYTYxNmMxYmE2MTQ3YmE5NDkzYmFmMWNiMzI4ZDc4YzkuLmVmNzJiNGEzMzY5ZDliOWU4
MDU2ZGY2ZTc2ZTZjYjI2YTYwYTNjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTEyNjQs
NyArMTI2NCw3IEBAIEhSRVNVTFQgV2ViRnJhbWU6OnZpc2libGVDb250ZW50UmVjdChSRUNUKiBy
ZWN0KQogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgICpyZWN0
ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlKTsKKyAgICAqcmVjdCA9IHZpZXctPnZp
c2libGVDb250ZW50UmVjdCgpOwogICAgIHJldHVybiBTX09LOwogfQogCkBAIC0yNDcxLDcgKzI0
NzEsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZyYW1lOjpmcmFtZUJvdW5kcygK
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBGbG9hdFJlY3Qg
Ym91bmRzID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIEZsb2F0UmVjdCBi
b3VuZHMgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVT
Y3JvbGxiYXJzKTsKICAgICByZXN1bHQtPmJvdHRvbSA9IChMT05HKSBib3VuZHMuaGVpZ2h0KCk7
CiAgICAgcmVzdWx0LT5yaWdodCA9IChMT05HKSBib3VuZHMud2lkdGgoKTsKICAgICByZXR1cm4g
U19PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IGU0ZTk2NDEyN2I4YjI5ZjY4MTcwN2I0ZTRhYmVkYmE2NmI1OTg1ZjcuLjI0ZTA4ZDMw
ZWY0NDVhMDk2MWI1MGFmOTk2N2U3ZjYxOWQ3ODJiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNDgyLDcgKzQ4Miw3IEBAIEludFJl
Y3QgV2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKCkgY29uc3QKICAgICBpZiAoIXZpZXcp
CiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAgICAgCi0gICAgSW50UmVjdCBjb250ZW50UmVj
dCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlKTsKKyAgICBJbnRSZWN0IGNvbnRlbnRS
ZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Ny
b2xsYmFycyk7CiAgICAgcmV0dXJuIEludFJlY3QoMCwgMCwgY29udGVudFJlY3Qud2lkdGgoKSwg
Y29udGVudFJlY3QuaGVpZ2h0KCkpOwogfQogCkBAIC00OTUsNyArNDk1LDcgQEAgSW50UmVjdCBX
ZWJGcmFtZTo6dmlzaWJsZUNvbnRlbnRCb3VuZHNFeGNsdWRpbmdTY3JvbGxiYXJzKCkgY29uc3QK
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAgICAgCi0gICAgSW50
UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdChmYWxzZSk7CisgICAg
SW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgIHJl
dHVybiBJbnRSZWN0KDAsIDAsIGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdo
dCgpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188970</attachid>
            <date>2013-02-18 17:57:55 -0800</date>
            <delta_ts>2013-02-18 19:27:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110167-20130218175417.patch</filename>
            <type>text/plain</type>
            <size>36063</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uYjg5NDhjNTA3ZGEyNWUyZjUzYzQxOTExNjAzOWE4
NDczNTY0NjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRo
ZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1
bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAg
ICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aWV3cG9ydFNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExh
eW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3Qp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEaWFsb2c6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpt
YXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnZp
c2libGVDb250ZW50UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQ
b3NpdGlvbik6CisKIDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMxNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNTM3ZmYxMzYzM2MxM2MxMDVhNGE5YzEw
MTRiNTRiN2Y3NTRlZjVkLi4xZTE5YjEzN2RlOWRlMGE2Y2Q0ZjU4ZGM3MjNkMjM5MzlmMzc2NzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIGJv
b2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBl
bnVtLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEzLTAyLTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzZXRWYWx1ZSBhbmQgY2xvc2VQb3B1cCBtZXRob2Rz
IHRvIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjQw
OWZmMDkzMTlkZjA5OWNkOTM2NGViZDhkNzFmYzZmZGYxNjRiZi4uZTljYjY4YWEwMjAwMGFkMDAy
NzQyOGVmNDI3MTY4N2VmNjQwYjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxl
Q29udGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkg
d2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZCk6CisK
IDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI4ZGY1NGQ0ZjBiMzVlZDg1Yzhk
N2JmMzc4YWUzZGQzMTJjZC4uN2E1YTdiZDEzYTE5YTU5YTc4MDM0YzkwZWEyMTkwNjNjYjNiNDA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
b29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1bWVu
dCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aXNpYmxlX2NvbnRl
bnRfZ2VvbWV0cnlfZ2V0KToKKwogMjAxMy0wMi0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWlsZCB3aGVu
IENPTlRFWFRfTUVOVVMgZmxhZyBpcyB0dXJuZWQgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjJl
ZjBhOGExYzMxNGMxMDAxZjQ2N2Y1NDE5NTA5OTdhMzYyOWY0Ni4uMWFmZmIxNDFlYjBjNDMzZjcy
ZThmMzQyNGUzM2QxMjY2NDJkYjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAyLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHRoZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAg
ICAgIGFuIGVudW0uCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFt
ZTo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpmcmFtZUJvdW5kcyk6
CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFN0b3AgcGxhY2luZyBzdGQ6OmlzZmluaXRlIGFuZCBzdGQ6OnNpZ25iaXQgaW5zaWRl
IHRoZSBnbG9iYWwgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGRmMzMyYmI1NGEyM2FiMmZjYmU0MDRh
MmIxZGRlNzJhMzBiMzAyLi42MGI2ODc4NTQzMWJlNTQzZWMxYmYxOTEyOWQ0NzUyZjI3MjczYjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4g
YXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1l
bnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgcGluY2gtem9v
bWluZyB3ZWJwYWdlIG1lc3NlcyB1cCBmdWxsLXNjcmVlbmluZyBvZiBlbWJlZGRlZCB2aWRlbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5NDAyZjcwYTUwZWFlODkxNGMwNzJiYzAwZWM5OTQwM2Nm
ZmQ1ZjgzLi42ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTE3OSw3ICsxMTc5LDYgQEAgX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTEwU2Ny
b2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQotX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTBpc0NvbXBsZXRlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKQEAgLTE3ODksNyArMTc4OCw3IEBAIF9fWk43
V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4SW50UG9pbnRDMUVS
SzdDR1BvaW50CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTks3V2Vi
Q29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhMTh2aXNpYmxlQ29udGVudFJlY3RFYgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEx
OHZpc2libGVDb250ZW50UmVjdEVOUzBfMzZWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9s
bGJhcnNFCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3MGE1NDcxNzczNmM5
MGRkMTNhOWMxYzNjYS4uNTViNGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzAxLDcgKzU3MDEsNyBAQCBJbnRTaXplIERv
Y3VtZW50Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogewogICAgIGlmICghdmlldygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwotICAgIHJldHVybiB2aWV3KCktPnZpc2libGVDb250ZW50UmVj
dCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyku
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBjZTA3MjY4YTc1
NDczNWYyNmNmMDVlOGMwNWMxNDIyMzBkYWYxOTExLi4zMDQ4OTYyZTNkMGY4MTljYmYzNTg2Yzk0
YzgzYmQ5ZDg0ZDgwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1
cGRhdGUoKQogCiAgICAgRnJhbWVWaWV3KiBvdmVybGF5VmlldyA9IG92ZXJsYXlQYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5zaXplKCk7Ci0gICAgSW50U2l6ZSBm
cmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xvc2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KHRydWUpKS5zaXplKCk7CisgICAgSW50U2l6ZSBmcmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xv
c2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNs
dWRlU2Nyb2xsYmFycykpLnNpemUoKTsKICAgICBJbnRTaXplIHNpemUgPSBtX3NpemUuaXNFbXB0
eSgpID8gZnJhbWVWaWV3RnVsbFNpemUgOiBtX3NpemU7CiAgICAgb3ZlcmxheVBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCksIEludFBvaW50KCkpOwog
ICAgIHNpemUuc2NhbGUobV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTk1MjdlMWIwNGE5OGEyNjVmYTA1MDAwNjAyZjZlN2RlY2RmNzg4
My4uYTQwNTUyMDhjY2NhYzNiOTcyZDYxMmQ5M2QzOTU1Zjg1N2IzYzdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJIZWlnaHQoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJp
ZGRlbiwgZG8gbm90IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlu
bmVySGVpZ2h0IChzaW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KICAgICBi
b29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
QXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFw
RnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXctPm1h
cEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxi
YXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOwogfQog
CiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNTYsNyArMTE1Niw3IEBA
IGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmlj
ZSB3aWR0aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xs
YmFyIGludG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBk
ZXZpY2UpLgogICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6Oklu
Y2x1ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0
aCgpKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGRhY2EwODgxMGM5NTE4ZGYzOGNiZmNiYjQ4ZTIyMjM0MWViNjI5
NDkuLjA2ZjI4ODk5OTNlMDcyMDU4NGZjOTFiYjg1NzA1YmUwZmU3Mjk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9s
bGJhcgogICAgICAgICBoTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgICAgIC8vIFNlYW1sZXNz
IGRvY3VtZW50cyBiZWdpbiB3aXRoIGhlaWdodHMgb2YgMDsgd2Ugc3BlY2lhbCBjYXNlIHRoYXQg
aGVyZQogICAgICAgICAvLyB0byBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IG5lZWQgc2Nyb2xsYmFycy4KLSAgICAgICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKKyAgICAg
ICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNj
cm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQgPSBmcmFt
ZSgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2hvdWxk
RGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCk7CiAgICAgICAgIHZNb2RlID0gKGlzU2VhbWxl
c3NEb2N1bWVudCAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKSA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAgICAgfSBlbHNlIHsKQEAgLTExNjEsNyArMTE2MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5
KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2xh
c3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXplID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSB2aXNpYmxlQ29udGVudFJlY3Qo
SW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9v
bUZhY3RvciA9IHJvb3QtPnN0eWxlKCktPnpvb20oKTsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGluaXRpYWwgdk1vZGUgdG8gQWx3YXlzT24gaWYgd2UncmUgYXV0by4KQEAgLTI2
MDIsNyArMjYwMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkK
ICAgICAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkgJiYgIWZpeGVkTGF5b3V0U2l6ZSgpLmlzRW1w
dHkoKSAmJiBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIGN1cnJlbnRTaXplID0g
Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJlbnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7
CisgICAgICAgICAgICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOwogICAgICAgICBmbG9hdCBjdXJyZW50Wm9vbUZhY3RvciA9IHJlbmRl
clZpZXctPnN0eWxlKCktPnpvb20oKTsKICAgICAgICAgYm9vbCByZXNpemVkID0gIW1fZmlyc3RM
YXlvdXQgJiYgKGN1cnJlbnRTaXplICE9IG1fbGFzdFZpZXdwb3J0U2l6ZSB8fCBjdXJyZW50Wm9v
bUZhY3RvciAhPSBtX2xhc3Rab29tRmFjdG9yKTsKICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gY3VycmVudFNpemU7CkBAIC0yNzg0LDcgKzI3ODQsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKICAgICAgICAgcmV0dXJu
IEludFJlY3QoSW50UG9pbnQoKSwgY29udGVudHNTaXplKCkpOwogCiAgICAgLy8gU2V0IG91ciBj
bGlwIHJlY3QgdG8gYmUgb3VyIGNvbnRlbnRzLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250
ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29udGVudHMpKTsKKyAgICBJ
bnRSZWN0IGNsaXBSZWN0ID0gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoY2xp
cFRvQ29udGVudHMgPyBFeGNsdWRlU2Nyb2xsYmFycyA6IEluY2x1ZGVTY3JvbGxiYXJzKSk7CiAg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIGNsaXBSZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CmluZGV4IDYyYTM5ODY2ZTRhYTJlODI0MTUzNTUyOGUxYWE5ZTcxYmFjNjIwNjMuLjMzOGMzODk5
Mzg2MDQ5ZjdmZmQ2NzE2N2Q0YzM4ZGEwZGM4NzU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9vbCBjYW5TY3JvbGxJ
bkRpcmVjdGlvbihjb25zdCBGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExheW91dFNpemUgc2l6ZSA9IGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzU2l6ZSgpOwogICAgIExheW91dFNpemUgb2Zmc2V0ID0gZnJhbWUtPnZpZXco
KS0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCByZWN0ID0gZnJhbWUtPnZpZXcoKS0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIExheW91dFJlY3QgcmVjdCA9IGZyYW1lLT52
aWV3KCktPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWY4YmRiM2M0
ODQ3NWU0M2QzNDE4NWVmZTdmNmE2OThlNzdiNTQ4MS4uMjcwMzhkMzBlYTNmYWIyNzU4YWMxY2Nj
NmVjYjM5YzliNmZkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTIyNSwxMCArMjI1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xs
aW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENo
YW5nZSgpOwogfQogCi1JbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRTaXplIFNjcm9sbFZpZXc6OnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xs
YmFycyBzY3JvbGxiYXJJbmNsdXNpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOworICAgICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJl
Y3Qoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAg
ICBpZiAoIW1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbV9maXhlZFZpc2libGVDb250ZW50UmVjdC5zaXplKCk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
SW50U2l6ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsK
ICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoIWluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRp
Y2FsQmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKSkKQEAgLTI0OCwxNSArMjQ4LDE1IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIH0KIAogI2lm
ICFQTEFURk9STShHVEspCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxl
Q29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2xsYmFy
SW5jbHVzaW9uKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
ICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3Qoc2NvbGxiYXJJbmNsdXNpb24g
PT0gSW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgaWYgKCFtX2ZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7
CiAKLSAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2FsZWRWaXNpYmxlQ29u
dGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgIEZsb2F0U2l6ZSB2aXNpYmxlQ29udGVu
dFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lvbik7CiAg
ICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9y
KCkpOwogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5k
ZWRJbnRTaXplKHZpc2libGVDb250ZW50U2l6ZSkpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJh
cnMpIGNvbnN0CiAKIEludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhlZExheW91
dCA/IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKSA6IG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgIW1fdXNlRml4ZWRM
YXlvdXQgPyB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShFeGNsdWRlU2Nyb2xsYmFycykgOiBt
X2ZpeGVkTGF5b3V0U2l6ZTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpmaXhlZExheW91dFNp
emUoKSBjb25zdApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBib29sIHNlbmRD
b250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAgSW50
U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Ci0gICAgICAgIEludFNpemUgZnVsbFZpc2li
bGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5z
aXplKCk7CisgICAgICAgIEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAgICAgICAgaWYgKGhTY3JvbGwgPT0g
U2Nyb2xsYmFyQXV0bykgewogICAgICAgICAgICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGRvY1NpemUud2lkdGgoKSA+IHZpc2libGVXaWR0aCgpOwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKICAgICBJbnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKICAg
ICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKLSAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhvdXRTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChmYWxz
ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJz
KGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSk7CiAgICAgICAgIGRvY3Vt
ZW50RGlydHlSZWN0LmludGVyc2VjdCh2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJzKTsKICAg
ICB9CiAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghbV9zY3Jv
bGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGljYWxT
Y3JvbGxiYXIpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqY29udGV4dCk7CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7
Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyhsb2NhdGlvbigpLCB2
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRl
U2Nyb2xsYmFycykuc2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNl
Y3QodmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlv
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBmZTdiMDEwMTE1Mjg3
MWMwMjFlZWZkMTUxYjk4NjE5YjZkY2Y5MDdlLi5hMzE2NDVkMmUzNGJhNDNlYzZlYjk4Y2FmZmUy
YWY5NjNkY2E3ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBzaXR1YXRpb24gdGhlIGNsaWVudCBp
cyByZXNwb25zaWJsZSBmb3IgdGhlIHNjcm9sbGluZyAoaWUuIHdpdGggYSB0aWxlZCBiYWNraW5n
IHN0b3JlKSBpdCBpcyBwb3NzaWJsZSB0byB1c2UKICAgICAvLyB0aGUgc2V0Rml4ZWRWaXNpYmxl
Q29udGVudFJlY3QgaW5zdGVhZCBmb3IgdGhlIG1haW5mcmFtZSwgdGhvdWdoIHRoaXMgbXVzdCBi
ZSB1cGRhdGVkIG1hbnVhbGx5LCBlLmcganVzdCBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhZ2UKICAg
ICAvLyB3aGljaCB1c3VhbGx5IHdpbGwgaGFwcGVuIHdoZW4gcGFubmluZywgcGluY2hpbmcgYW5k
IHJvdGF0aW9uIGVuZHMsIG9yIHdoZW4gc2NhbGUgb3IgcG9zaXRpb24gYXJlIGNoYW5nZWQgbWFu
dWFsbHkuCi0gICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1
ZGVTY3JvbGxiYXJzID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJz
ID0gRXhjbHVkZVNjcm9sbGJhcnMpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QpIHsgbV9maXhlZFZpc2libGVDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQog
ICAgIEludFJlY3QgZml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsgfQpAQCAtMTU1LDcgKzE1NSw3
IEBAIHB1YmxpYzoKICAgICAvLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkg
MSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaXMgdHJ1ZSBhbmQgdGhlCiAgICAgLy8gU2Nyb2xsVmlldyBpcyB0aGUgbWFpbiBmcmFtZTsg
aW4gdGhhdCBjYXNlLCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIGVxdWFsIHRvIHRoZSBw
YWdlJ3MgcGFnZVNjYWxlRmFjdG9yLgogICAgIC8vIFBvcnRzIHRoYXQgZG9uJ3QgdXNlIHBhZ2VT
Y2FsZUZhY3RvciBjYW4gdHJlYXQgdW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUgYW5kIHZpc2li
bGVDb250ZW50UmVjdCgpLnNpemUoKSBhcyBlcXVpdmFsZW50LgotICAgIEludFNpemUgdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAg
SW50U2l6ZSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJlY3RJbmNs
dWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAg
ICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3Vs
ZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1l
IGFzIHRoZSB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAKaW5kZXggMzVkYWFjNGFkOTM1YWQ1MGE4MzhkMGNjMjJhNWFkN2MxZDAxMzFkYS4uZjY5YmUw
M2JmNTU4ZTU2MmM3NjIzZjA4ZWMzMjEyNTY2M2Q2MWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDAzLDEyICs0MDMsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsYWJsZUFyZWE6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IEludFBvaW50KGNvbnRlbnRzU2l6ZSgpLndpZHRoKCkgLSB2aXNpYmxlV2lkdGgoKSwgY29udGVu
dHNTaXplKCkuaGVpZ2h0KCkgLSB2aXNpYmxlSGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFNjcm9s
bGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3QKK0ludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29u
dGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewog
ICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKKyAgICBp
ZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAg
ICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwogICAgICAgICBpZiAoU2Nyb2xsYmFy
KiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNWZhNmUyN2Q5N2UxYmMzYTNiMjE2NjUyOGY0
YTI1OWM2OWQ5YTY2YS4uMzU4YmQ4Zjc4ZDMyZTE1MTFhMjVmMzgxYTk2OWM4ZTI5OTA1MDIzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLyA9IGZhbHNlKSBjb25zdDsKKworICAgIGVudW0gVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzIHsgRXhjbHVkZVNjcm9sbGJhcnMsIEluY2x1ZGVTY3JvbGxiYXJzIH07Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxl
V2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Zy
YW1lbGVzc1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAKaW5kZXggYjlmOGIzYWU5MDk4N2RkN2NlOTg3ZDJmODZm
MzRiMzkyN2Q4NjZhMi4uYzI5MTIwOWI3ZmM4OWEwYTdmNzYxMWIxMTY5YmI4MWMyOTY3MjgzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVs
ZXNzU2Nyb2xsVmlldy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSG9zdFdpbmRvdyogRnJhbWVsZXNz
U2Nyb2xsVmlldzo6aG9zdFdpbmRvdygpIGNvbnN0CiAKIEludFJlY3QgRnJhbWVsZXNzU2Nyb2xs
Vmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoIWNsaXBUb0NvbnRlbnRz
KSk7CisgICAgcmV0dXJuIGNvbnRlbnRzVG9XaW5kb3codmlzaWJsZUNvbnRlbnRSZWN0KGNsaXBU
b0NvbnRlbnRzID8gRXhjbHVkZVNjcm9sbGJhcnMgPyBJbmNsdWRlU2Nyb2xsYmFycykpOwogfQog
CiB2b2lkIEZyYW1lbGVzc1Njcm9sbFZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHAKaW5kZXggZjk4MzU4M2FkZjc3YmI5MTQ5Y2YxNDIyNzVkMWI4YjA1MTM5ZWE2
OS4uMGIwNWE1N2I3ZGUyOTRiNjNjODZmZDUyZTc0OGYwMGY5MTIzMjA4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtNjMsOCArNjMsMTAg
QEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IFNjcm9sbFZpZXc6OmNyZWF0ZVNjcm9sbGJhcihTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGkKICAgICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVO
YXRpdmVTY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOwogfQog
Ci1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3Jv
bGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29u
c3QKIHsKKyAgICBib29sIGluY2x1ZGVTY3JvbGxiYXJzID0gc2Nyb2xsYmFySW5jbHVzaW9uID09
IEluY2x1ZGVTY3JvbGxiYXJzOworCiAgICAgLy8gSWYgd2UgYXJlIGFuIGludGVyaW9yIGZyYW1l
IHNjcm9sbGJhciBvciBhcmUgaW4gc29tZSBzb3J0IG9mIHRyYW5zaXRpb24KICAgICAvLyBzdGF0
ZSwganVzdCBjYWxjdWxhdGUgb3VyIHNpemUgYmFzZWQgb24gd2hhdCB0aGUgR1RLKyB0aGVtZSBz
YXlzIHRoZQogICAgIC8vIHNjcm9sbGJhciB3aWR0aCBzaG91bGQgYmUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCmluZGV4IGIyNDk4YWU0YzVlNWYwMzE5MDQyNzky
MWJiYzc5YTBkNDc5NDJiNDMuLmI4ZjNkMTk4NTc0ZjA4MzY2NDUwMDk4M2YxODBhYTJkOTM4NTBl
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgUmVuZGVyRGlhbG9nOjpsYXlvdXQoKQogICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZG9jdW1lbnQoKS0+dmlldygpOwogICAgIGludCBzY3JvbGxUb3AgPSBmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldCgpLmhlaWdodCgpOwogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVQb2lu
dCgwLCBzY3JvbGxUb3ApOwotICAgIGludCB2aXNpYmxlSGVpZ2h0ID0gZnJhbWVWaWV3LT52aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSkuaGVpZ2h0KCk7CisgICAgaW50IHZpc2libGVIZWlnaHQgPSBm
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9s
bGJhcnMpLmhlaWdodCgpOwogICAgIGlmIChoZWlnaHQoKSA8IHZpc2libGVIZWlnaHQpCiAgICAg
ICAgIGFic29sdXRlUG9pbnQubW92ZSgwLCAodmlzaWJsZUhlaWdodCAtIGhlaWdodCgpKSAvIDIp
OwogICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGNvbnRhaW5pbmdCbG9jaygpLT5hYnNvbHV0
ZVRvTG9jYWwoYWJzb2x1dGVQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCA0ZDBkYzJhNDVjZmZhY2IzZTU0ZmI5NjE2NzZlNmJiMDI4NjAzZTFkLi45
OGJjMWI4OWUzYWMwZTRlN2QxMGU0MWE3NTg3ODJkNTE4Yjg0ZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0NDUsMTQgKzI0NDUsMTQgQEAgSW50UG9p
bnQgUmVuZGVyTGF5ZXI6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiBJbnRQb2ludCBS
ZW5kZXJMYXllcjo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogbV9zY3JvbGxTaXplIG1heSBub3QgYmUgdXAtdG8tZGF0ZSBpZiBtX3Njcm9sbERpbWVuc2lv
bnNEaXJ0eSBpcyB0cnVlLgotICAgIHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRT
aXplKG1fc2Nyb2xsU2l6ZSkgLSB2aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpOworICAg
IHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRTaXplKG1fc2Nyb2xsU2l6ZSkgLSB2
aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKIH0KIAotSW50UmVj
dCBSZW5kZXJMYXllcjo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMp
IGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVyOjp2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNv
bnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29uc3QKIHsK
ICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IDA7CiAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAwOwotICAgIGlmIChpbmNsdWRlU2Nyb2xsYmFycykgeworICAgIGlm
IChzY3JvbGxiYXJJbmNsdXNpb24gPT0gSW5jbHVkZVNjcm9sbGJhcnMpIHsKICAgICAgICAgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNj
cm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53
aWR0aCgpIDogMDsKICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9u
dGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAxY2ZjOTA4NTcyYmU1ZTQ4Yjgw
YTk4OGQxNDAyZmVjODYwZTUwYTU1Li4yOTYxZjhjZThlMmE1MTE0MDhjZDNjMzBmNDk1N2ZiYjBl
NjE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTM0LDcg
KzkzNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigp
IGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBJbnRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsK
LSAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9s
bGJhcnMpIGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCAwNDM3MzMwZDdmY2U1MWVjZGUxMjVmOTcyOWIzYWRhYjEyOGRlOTU3Li5hNmRiOGZkMDA5YTJj
YjBkMThkNGE5YzY0ZTZiNzAyOGFiZDAzOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTE3OSw3ICsxMTc5LDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUoKQogewog
ICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1f
cmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZy
YW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2UgLyogZXhjbHVkZSBzY3Jv
bGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5z
Y2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xs
KCk7CiAgICAgICAgIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKQEAgLTE1NTMsNyAr
MTU1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3Np
dGlvbigpCiAgICAgfQogICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2Ug
LyogZXhjbHVkZSBzY3JvbGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXpl
KGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAgICAgfQogCiAjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
c2l6ZXIuY3BwCmluZGV4IDM0MjYzN2FhYWJlZmE1YzFkZTYyNTRlZDZhMDM3NWQ5NjEyMzk3MzUu
LmRhNmJkNDFmYzRjOWZjYTEyYzllNzY5ZTA2YjdkYzZlZDZiN2NlYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBib29s
IFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKFJlbmRlck9iamVjdCogbGF5b3V0Um9vdCkK
ICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBtX2RvY3VtZW50LT5zZXR0aW5ncygpLT50ZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgpOwogICAgIGlmICh3aW5kb3dJbmZvLndpbmRv
d1NpemUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobWFp
bkZyYW1lKTsKLSAgICAgICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3
KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzKTsKKyAgICAg
ICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3KCktPnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1
ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICAg
ICAgaWYgKCFtX2RvY3VtZW50LT5zZXR0aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpCiAgICAgICAgICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUuc2NhbGUoMSAv
IG1fZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggMjE4OTc1ZDFmMzhiZGU3YTU1
YTgwMTgwYWE5OWZmMmMyOGRhZGMwZC4uNGFiOWNkMjM0Yzg5YTRkZTIwMWJlOGE0NTM5MjdhYTVi
YTNkOGFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0y
NTk1LDcgKzI1OTUsNyBAQCBJbnRSZWN0IFdlYlBhZ2VQcml2YXRlOjpnZXRSZWN1cnNpdmVWaXNp
YmxlV2luZG93UmVjdChTY3JvbGxWaWV3KiB2aWV3LCBib29sIG5vQwogICAgICAgICByZXR1cm4g
SW50UmVjdChJbnRQb2ludDo6emVybygpLCB2aWV3LT5jb250ZW50c1NpemUoKSk7CiAgICAgfQog
Ci0gICAgSW50UmVjdCB2aXNpYmxlV2luZG93UmVjdCh2aWV3LT5jb250ZW50c1RvV2luZG93KHZp
ZXctPnZpc2libGVDb250ZW50UmVjdChmYWxzZSkpKTsKKyAgICBJbnRSZWN0IHZpc2libGVXaW5k
b3dSZWN0KHZpZXctPmNvbnRlbnRzVG9XaW5kb3codmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
KTsKICAgICBpZiAodmlldy0+cGFyZW50KCkgJiYgIShub0NsaXBPZk1haW5GcmFtZSAmJiB2aWV3
LT5wYXJlbnQoKSA9PSBtX21haW5GcmFtZS0+dmlldygpKSkgewogICAgICAgICAvLyBJbnRlcnNl
Y3Qgd2l0aCBwYXJlbnQgdmlzaWJsZSByZWN0LgogICAgICAgICB2aXNpYmxlV2luZG93UmVjdC5p
bnRlcnNlY3QoZ2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3Qodmlldy0+cGFyZW50KCksIG5v
Q2xpcE9mTWFpbkZyYW1lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IGRlY2M2NWMwZmMwZjQzZWQ1MDk1ZjE0YmNkYWU4MDIzM2EyMGM3MjYuLjlkNjEzMzZhOTIzM2Y3
OGJiMzk4YTk5NDM1Nzk3YjEzZDMwMDVhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFy
ZWEuY3BwCkBAIC04MSw3ICs4MSw3IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAKICAgICAg
ICAgbV9zY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT5z
Y3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1h
cFRvVHJhbnNmb3JtZWQodmlldy0+Y29udGVudHNTaXplKCkpOwotICAgICAgICBtX3ZpZXdwb3J0
U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoZmFsc2UgLyppbmNsdWRlU2Nyb2xsYmFycyovKSkuc2l6ZSgpOworICAgICAgICBtX3ZpZXdw
b3J0U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9IHZpZXct
PmNvbnRlbnRzV2lkdGgoKSA+IHZpZXctPnZpc2libGVXaWR0aCgpOwogICAgICAgICBtX3Njcm9s
bHNWZXJ0aWNhbGx5ID0gdmlldy0+Y29udGVudHNIZWlnaHQoKSA+IHZpZXctPnZpc2libGVIZWln
aHQoKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lv
blNjcm9sbGFibGVBcmVhKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBSZW5kZXJMYQogICAgICAg
ICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEgPSBzdGF0aWNfY2FzdDxTY3JvbGxhYmxl
QXJlYSo+KG1fbGF5ZXIpOwogICAgICAgICBtX3Njcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5t
YXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpKTsKICAgICAg
ICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJs
ZUFyZWEtPmNvbnRlbnRzU2l6ZSgpKTsKLSAgICAgICAgbV92aWV3cG9ydFNpemUgPSBtX3dlYlBh
Z2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pKS5zaXplKCk7CisgICAgICAgIG1fdmlld3BvcnRT
aXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
Q29udGVudFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9
IGJveC0+c2Nyb2xsV2lkdGgoKSAhPSBib3gtPmNsaWVudFdpZHRoKCk7CiAgICAgICAgIG1fc2Ny
b2xsc1ZlcnRpY2FsbHkgPSBib3gtPnNjcm9sbEhlaWdodCgpICE9IGJveC0+Y2xpZW50SGVpZ2h0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CmluZGV4IDI0YjA2MjMwMzk2NDI2MDc2YWI2Y2YzMTBlY2ZmMjYwODdlZTRjMjguLmU1Mjc2ZmZj
YjMyNjlmYjVhZDE5YWM1NjQxZGJkMTgwN2RmZjljMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03OTksNyArNzk5LDcgQEAgdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250
YWluZXIsCiAgICAgLy8gdG8gaW50ZXJhY3QgdmlhIHRoZSBrZXlib2FyZCB3aXRoIGFuIGludmlz
aWJsZSBwb3B1cC4KICAgICBpZiAocG9wdXBDb250YWluZXItPnBvcHVwVHlwZSgpID09IFBvcHVw
Q29udGFpbmVyOjpTdWdnZXN0aW9uKSB7CiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IG1fd2Vi
Vmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpOwotICAgICAgICBJbnRSZWN0IHZpc2li
bGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxi
YXJzICovKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250
ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgICAgICAvLyB8
Ym91bmRzfCBpcyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMsIHNvIG1ha2Ugc3VyZSB0byBjb252ZXJ0
IGl0IHRvCiAgICAgICAgIC8vIGNvbnRlbnQgY29vcmRpbmF0ZXMgcHJpb3IgdG8gY29tcGFyaW5n
IHRvIHx2aXNpYmxlUmVjdHwuCiAgICAgICAgIEludFJlY3Qgc2NyZWVuUmVjdCA9IGJvdW5kczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCAz
OGVkNDgzY2Q5Zjg3OTIzYTNiMGZhZDQ5ZjZlYjg5NjgxNzhiYjUzLi4xY2JjY2U1MTJiYzdlNzJh
NzY0ZWMzMzBhMzU2MmExNzVlOWQyMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC00ODIsMTEgKzQ4MiwxMSBAQCBURVNUX0YoV2ViRnJh
bWVUZXN0LCBwYWdlU2NhbGVGYWN0b3JTaHJpbmtzVmlld3BvcnQpCiAKICAgICBtX3dlYlZpZXct
PnNldFBhZ2VTY2FsZUZhY3RvcigyLCBXZWJQb2ludCgpKTsKIAotICAgIFdlYkNvcmU6OkludFNp
emUgdW5zY2FsZWRTaXplID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUodHJ1ZSk7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSB1bnNjYWxlZFNpemUgPSB2aWV3LT51bnNjYWxlZFZpc2li
bGVDb250ZW50U2l6ZShTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgIEVY
UEVDVF9FUSh2aWV3cG9ydFdpZHRoLCB1bnNjYWxlZFNpemUud2lkdGgoKSk7CiAgICAgRVhQRUNU
X0VRKHZpZXdwb3J0SGVpZ2h0LCB1bnNjYWxlZFNpemUuaGVpZ2h0KCkpOwogCi0gICAgV2ViQ29y
ZTo6SW50U2l6ZSB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJhciA9IHZpZXctPnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHVuc2NhbGVkU2l6
ZU1pbnVzU2Nyb2xsYmFyID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoU2Nyb2xs
YWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICBFWFBFQ1RfRVEodmlld3BvcnRXaWR0
aE1pbnVzU2Nyb2xsYmFyLCB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJhci53aWR0aCgpKTsKICAg
ICBFWFBFQ1RfRVEodmlld3BvcnRIZWlnaHRNaW51c1Njcm9sbGJhciwgdW5zY2FsZWRTaXplTWlu
dXNTY3JvbGxiYXIuaGVpZ2h0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmlu
ZGV4IGMyOGRkMDU5ODcyZDBkMjRkNzM4MjRlYTU5NDc1YzU5OTM4MTFjNTQuLjEyMzczNDZjYTI5
YjJiZTFjNmQyYmRkYmIzZjhiNmUzM2UzZjVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV92aXNpYmxlX2Nv
bnRlbnRfZ2VvbWV0cnlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRWkKICAgICBF
V0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCBmYWxzZSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIGZhbHNl
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZS0+
dmlldygpLCBmYWxzZSk7Ci0gICAgV2ViQ29yZTo6SW50UmVjdCByZWN0ID0gc21hcnREYXRhLT5m
cmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
IFdlYkNvcmU6OkludFJlY3QgcmVjdCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+dmlzaWJs
ZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OkluY2x1ZGVTY3JvbGxiYXJzIDogV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3Jv
bGxiYXJzKTsKICAgICBpZiAoeCkKICAgICAgICAgKnggPSByZWN0LngoKTsKICAgICBpZiAoeSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA4NDZmZmMzZWE2MTZjMWJhNjE0N2JhOTQ5M2JhZjFj
YjMyOGQ3OGM5Li5lZjcyYjRhMzM2OWQ5YjllODA1NmRmNmU3NmU2Y2IyNmE2MGEzY2MxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMjY0LDcgKzEyNjQsNyBAQCBIUkVTVUxUIFdlYkZyYW1l
Ojp2aXNpYmxlQ29udGVudFJlY3QoUkVDVCogcmVjdCkKICAgICBpZiAoIXZpZXcpCiAgICAgICAg
IHJldHVybiBFX0ZBSUw7CiAKLSAgICAqcmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSk7CisgICAgKnJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICByZXR1
cm4gU19PSzsKIH0KIApAQCAtMjQ3MSw3ICsyNDcxLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJGcmFtZTo6ZnJhbWVCb3VuZHMoCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm4gRV9GQUlMOwogCi0gICAgRmxvYXRSZWN0IGJvdW5kcyA9IHZpZXctPnZpc2libGVDb250ZW50
UmVjdCh0cnVlKTsKKyAgICBGbG9hdFJlY3QgYm91bmRzID0gdmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAgICAgcmVzdWx0LT5ib3R0
b20gPSAoTE9ORykgYm91bmRzLmhlaWdodCgpOwogICAgIHJlc3VsdC0+cmlnaHQgPSAoTE9ORykg
Ym91bmRzLndpZHRoKCk7CiAgICAgcmV0dXJuIFNfT0s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBlNGU5NjQxMjdiOGIyOWY2ODE3MDdi
NGU0YWJlZGJhNjZiNTk4NWY3Li4yNGUwOGQzMGVmNDQ1YTA5NjFiNTBhZjk5NjdlN2Y2MTlkNzgy
YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBJbnRSZWN0IFdlYkZyYW1lOjp2aXNpYmxlQ29udGVudEJv
dW5kcygpIGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwog
ICAgIAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3Qo
dHJ1ZSk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVj
dChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgIHJldHVybiBJbnRSZWN0
KDAsIDAsIGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKIH0KIApA
QCAtNDk1LDcgKzQ5NSw3IEBAIEludFJlY3QgV2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRz
RXhjbHVkaW5nU2Nyb2xsYmFycygpIGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm4gSW50UmVjdCgpOwogICAgIAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52aXNp
YmxlQ29udGVudFJlY3QoZmFsc2UpOworICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52
aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICByZXR1cm4gSW50UmVjdCgwLCAwLCBjb250ZW50UmVj
dC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188975</attachid>
            <date>2013-02-18 19:27:31 -0800</date>
            <delta_ts>2013-02-18 20:28:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110167-20130218192353.patch</filename>
            <type>text/plain</type>
            <size>36063</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uYjg5NDhjNTA3ZGEyNWUyZjUzYzQxOTExNjAzOWE4
NDczNTY0NjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRo
ZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1
bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAg
ICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aWV3cG9ydFNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExh
eW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3Qp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEaWFsb2c6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpt
YXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnZp
c2libGVDb250ZW50UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQ
b3NpdGlvbik6CisKIDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMxNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNTM3ZmYxMzYzM2MxM2MxMDVhNGE5YzEw
MTRiNTRiN2Y3NTRlZjVkLi4xZTE5YjEzN2RlOWRlMGE2Y2Q0ZjU4ZGM3MjNkMjM5MzlmMzc2NzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIGJv
b2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBl
bnVtLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEzLTAyLTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzZXRWYWx1ZSBhbmQgY2xvc2VQb3B1cCBtZXRob2Rz
IHRvIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjQw
OWZmMDkzMTlkZjA5OWNkOTM2NGViZDhkNzFmYzZmZGYxNjRiZi4uZTljYjY4YWEwMjAwMGFkMDAy
NzQyOGVmNDI3MTY4N2VmNjQwYjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxl
Q29udGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkg
d2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZCk6CisK
IDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI4ZGY1NGQ0ZjBiMzVlZDg1Yzhk
N2JmMzc4YWUzZGQzMTJjZC4uN2E1YTdiZDEzYTE5YTU5YTc4MDM0YzkwZWEyMTkwNjNjYjNiNDA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
b29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1bWVu
dCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aXNpYmxlX2NvbnRl
bnRfZ2VvbWV0cnlfZ2V0KToKKwogMjAxMy0wMi0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWlsZCB3aGVu
IENPTlRFWFRfTUVOVVMgZmxhZyBpcyB0dXJuZWQgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjJl
ZjBhOGExYzMxNGMxMDAxZjQ2N2Y1NDE5NTA5OTdhMzYyOWY0Ni4uMWFmZmIxNDFlYjBjNDMzZjcy
ZThmMzQyNGUzM2QxMjY2NDJkYjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAyLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHRoZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAg
ICAgIGFuIGVudW0uCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFt
ZTo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpmcmFtZUJvdW5kcyk6
CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFN0b3AgcGxhY2luZyBzdGQ6OmlzZmluaXRlIGFuZCBzdGQ6OnNpZ25iaXQgaW5zaWRl
IHRoZSBnbG9iYWwgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGRmMzMyYmI1NGEyM2FiMmZjYmU0MDRh
MmIxZGRlNzJhMzBiMzAyLi42MGI2ODc4NTQzMWJlNTQzZWMxYmYxOTEyOWQ0NzUyZjI3MjczYjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4g
YXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1l
bnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgcGluY2gtem9v
bWluZyB3ZWJwYWdlIG1lc3NlcyB1cCBmdWxsLXNjcmVlbmluZyBvZiBlbWJlZGRlZCB2aWRlbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5NDAyZjcwYTUwZWFlODkxNGMwNzJiYzAwZWM5OTQwM2Nm
ZmQ1ZjgzLi42ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTE3OSw3ICsxMTc5LDYgQEAgX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTEwU2Ny
b2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQotX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTBpc0NvbXBsZXRlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKQEAgLTE3ODksNyArMTc4OCw3IEBAIF9fWk43
V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4SW50UG9pbnRDMUVS
SzdDR1BvaW50CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTks3V2Vi
Q29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhMTh2aXNpYmxlQ29udGVudFJlY3RFYgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEx
OHZpc2libGVDb250ZW50UmVjdEVOUzBfMzZWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9s
bGJhcnNFCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3MGE1NDcxNzczNmM5
MGRkMTNhOWMxYzNjYS4uNTViNGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzAxLDcgKzU3MDEsNyBAQCBJbnRTaXplIERv
Y3VtZW50Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogewogICAgIGlmICghdmlldygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwotICAgIHJldHVybiB2aWV3KCktPnZpc2libGVDb250ZW50UmVj
dCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyku
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBjZTA3MjY4YTc1
NDczNWYyNmNmMDVlOGMwNWMxNDIyMzBkYWYxOTExLi4zMDQ4OTYyZTNkMGY4MTljYmYzNTg2Yzk0
YzgzYmQ5ZDg0ZDgwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1
cGRhdGUoKQogCiAgICAgRnJhbWVWaWV3KiBvdmVybGF5VmlldyA9IG92ZXJsYXlQYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5zaXplKCk7Ci0gICAgSW50U2l6ZSBm
cmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xvc2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KHRydWUpKS5zaXplKCk7CisgICAgSW50U2l6ZSBmcmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xv
c2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNs
dWRlU2Nyb2xsYmFycykpLnNpemUoKTsKICAgICBJbnRTaXplIHNpemUgPSBtX3NpemUuaXNFbXB0
eSgpID8gZnJhbWVWaWV3RnVsbFNpemUgOiBtX3NpemU7CiAgICAgb3ZlcmxheVBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCksIEludFBvaW50KCkpOwog
ICAgIHNpemUuc2NhbGUobV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTk1MjdlMWIwNGE5OGEyNjVmYTA1MDAwNjAyZjZlN2RlY2RmNzg4
My4uYTQwNTUyMDhjY2NhYzNiOTcyZDYxMmQ5M2QzOTU1Zjg1N2IzYzdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJIZWlnaHQoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJp
ZGRlbiwgZG8gbm90IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlu
bmVySGVpZ2h0IChzaW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KICAgICBi
b29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
QXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFw
RnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXctPm1h
cEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxi
YXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOwogfQog
CiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNTYsNyArMTE1Niw3IEBA
IGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmlj
ZSB3aWR0aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xs
YmFyIGludG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBk
ZXZpY2UpLgogICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6Oklu
Y2x1ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0
aCgpKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGRhY2EwODgxMGM5NTE4ZGYzOGNiZmNiYjQ4ZTIyMjM0MWViNjI5
NDkuLjA2ZjI4ODk5OTNlMDcyMDU4NGZjOTFiYjg1NzA1YmUwZmU3Mjk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9s
bGJhcgogICAgICAgICBoTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgICAgIC8vIFNlYW1sZXNz
IGRvY3VtZW50cyBiZWdpbiB3aXRoIGhlaWdodHMgb2YgMDsgd2Ugc3BlY2lhbCBjYXNlIHRoYXQg
aGVyZQogICAgICAgICAvLyB0byBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IG5lZWQgc2Nyb2xsYmFycy4KLSAgICAgICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKKyAgICAg
ICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNj
cm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQgPSBmcmFt
ZSgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2hvdWxk
RGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCk7CiAgICAgICAgIHZNb2RlID0gKGlzU2VhbWxl
c3NEb2N1bWVudCAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKSA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAgICAgfSBlbHNlIHsKQEAgLTExNjEsNyArMTE2MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5
KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2xh
c3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXplID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSB2aXNpYmxlQ29udGVudFJlY3Qo
SW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9v
bUZhY3RvciA9IHJvb3QtPnN0eWxlKCktPnpvb20oKTsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGluaXRpYWwgdk1vZGUgdG8gQWx3YXlzT24gaWYgd2UncmUgYXV0by4KQEAgLTI2
MDIsNyArMjYwMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkK
ICAgICAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkgJiYgIWZpeGVkTGF5b3V0U2l6ZSgpLmlzRW1w
dHkoKSAmJiBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIGN1cnJlbnRTaXplID0g
Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJlbnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7
CisgICAgICAgICAgICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOwogICAgICAgICBmbG9hdCBjdXJyZW50Wm9vbUZhY3RvciA9IHJlbmRl
clZpZXctPnN0eWxlKCktPnpvb20oKTsKICAgICAgICAgYm9vbCByZXNpemVkID0gIW1fZmlyc3RM
YXlvdXQgJiYgKGN1cnJlbnRTaXplICE9IG1fbGFzdFZpZXdwb3J0U2l6ZSB8fCBjdXJyZW50Wm9v
bUZhY3RvciAhPSBtX2xhc3Rab29tRmFjdG9yKTsKICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gY3VycmVudFNpemU7CkBAIC0yNzg0LDcgKzI3ODQsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKICAgICAgICAgcmV0dXJu
IEludFJlY3QoSW50UG9pbnQoKSwgY29udGVudHNTaXplKCkpOwogCiAgICAgLy8gU2V0IG91ciBj
bGlwIHJlY3QgdG8gYmUgb3VyIGNvbnRlbnRzLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250
ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29udGVudHMpKTsKKyAgICBJ
bnRSZWN0IGNsaXBSZWN0ID0gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoY2xp
cFRvQ29udGVudHMgPyBFeGNsdWRlU2Nyb2xsYmFycyA6IEluY2x1ZGVTY3JvbGxiYXJzKSk7CiAg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIGNsaXBSZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CmluZGV4IDYyYTM5ODY2ZTRhYTJlODI0MTUzNTUyOGUxYWE5ZTcxYmFjNjIwNjMuLjMzOGMzODk5
Mzg2MDQ5ZjdmZmQ2NzE2N2Q0YzM4ZGEwZGM4NzU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9vbCBjYW5TY3JvbGxJ
bkRpcmVjdGlvbihjb25zdCBGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExheW91dFNpemUgc2l6ZSA9IGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzU2l6ZSgpOwogICAgIExheW91dFNpemUgb2Zmc2V0ID0gZnJhbWUtPnZpZXco
KS0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCByZWN0ID0gZnJhbWUtPnZpZXcoKS0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIExheW91dFJlY3QgcmVjdCA9IGZyYW1lLT52
aWV3KCktPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWY4YmRiM2M0
ODQ3NWU0M2QzNDE4NWVmZTdmNmE2OThlNzdiNTQ4MS4uMjcwMzhkMzBlYTNmYWIyNzU4YWMxY2Nj
NmVjYjM5YzliNmZkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTIyNSwxMCArMjI1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xs
aW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENo
YW5nZSgpOwogfQogCi1JbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRTaXplIFNjcm9sbFZpZXc6OnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xs
YmFycyBzY3JvbGxiYXJJbmNsdXNpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOworICAgICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJl
Y3Qoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAg
ICBpZiAoIW1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbV9maXhlZFZpc2libGVDb250ZW50UmVjdC5zaXplKCk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
SW50U2l6ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsK
ICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoIWluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRp
Y2FsQmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKSkKQEAgLTI0OCwxNSArMjQ4LDE1IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIH0KIAogI2lm
ICFQTEFURk9STShHVEspCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxl
Q29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2xsYmFy
SW5jbHVzaW9uKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
ICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3Qoc2NvbGxiYXJJbmNsdXNpb24g
PT0gSW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgaWYgKCFtX2ZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7
CiAKLSAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2FsZWRWaXNpYmxlQ29u
dGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgIEZsb2F0U2l6ZSB2aXNpYmxlQ29udGVu
dFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lvbik7CiAg
ICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9y
KCkpOwogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5k
ZWRJbnRTaXplKHZpc2libGVDb250ZW50U2l6ZSkpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJh
cnMpIGNvbnN0CiAKIEludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhlZExheW91
dCA/IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKSA6IG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgIW1fdXNlRml4ZWRM
YXlvdXQgPyB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShFeGNsdWRlU2Nyb2xsYmFycykgOiBt
X2ZpeGVkTGF5b3V0U2l6ZTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpmaXhlZExheW91dFNp
emUoKSBjb25zdApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBib29sIHNlbmRD
b250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAgSW50
U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Ci0gICAgICAgIEludFNpemUgZnVsbFZpc2li
bGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5z
aXplKCk7CisgICAgICAgIEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAgICAgICAgaWYgKGhTY3JvbGwgPT0g
U2Nyb2xsYmFyQXV0bykgewogICAgICAgICAgICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGRvY1NpemUud2lkdGgoKSA+IHZpc2libGVXaWR0aCgpOwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKICAgICBJbnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKICAg
ICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKLSAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhvdXRTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChmYWxz
ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJz
KGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSk7CiAgICAgICAgIGRvY3Vt
ZW50RGlydHlSZWN0LmludGVyc2VjdCh2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJzKTsKICAg
ICB9CiAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghbV9zY3Jv
bGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGljYWxT
Y3JvbGxiYXIpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqY29udGV4dCk7CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7
Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyhsb2NhdGlvbigpLCB2
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRl
U2Nyb2xsYmFycykuc2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNl
Y3QodmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlv
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBmZTdiMDEwMTE1Mjg3
MWMwMjFlZWZkMTUxYjk4NjE5YjZkY2Y5MDdlLi5hMzE2NDVkMmUzNGJhNDNlYzZlYjk4Y2FmZmUy
YWY5NjNkY2E3ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBzaXR1YXRpb24gdGhlIGNsaWVudCBp
cyByZXNwb25zaWJsZSBmb3IgdGhlIHNjcm9sbGluZyAoaWUuIHdpdGggYSB0aWxlZCBiYWNraW5n
IHN0b3JlKSBpdCBpcyBwb3NzaWJsZSB0byB1c2UKICAgICAvLyB0aGUgc2V0Rml4ZWRWaXNpYmxl
Q29udGVudFJlY3QgaW5zdGVhZCBmb3IgdGhlIG1haW5mcmFtZSwgdGhvdWdoIHRoaXMgbXVzdCBi
ZSB1cGRhdGVkIG1hbnVhbGx5LCBlLmcganVzdCBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhZ2UKICAg
ICAvLyB3aGljaCB1c3VhbGx5IHdpbGwgaGFwcGVuIHdoZW4gcGFubmluZywgcGluY2hpbmcgYW5k
IHJvdGF0aW9uIGVuZHMsIG9yIHdoZW4gc2NhbGUgb3IgcG9zaXRpb24gYXJlIGNoYW5nZWQgbWFu
dWFsbHkuCi0gICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1
ZGVTY3JvbGxiYXJzID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJz
ID0gRXhjbHVkZVNjcm9sbGJhcnMpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QpIHsgbV9maXhlZFZpc2libGVDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQog
ICAgIEludFJlY3QgZml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsgfQpAQCAtMTU1LDcgKzE1NSw3
IEBAIHB1YmxpYzoKICAgICAvLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkg
MSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaXMgdHJ1ZSBhbmQgdGhlCiAgICAgLy8gU2Nyb2xsVmlldyBpcyB0aGUgbWFpbiBmcmFtZTsg
aW4gdGhhdCBjYXNlLCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIGVxdWFsIHRvIHRoZSBw
YWdlJ3MgcGFnZVNjYWxlRmFjdG9yLgogICAgIC8vIFBvcnRzIHRoYXQgZG9uJ3QgdXNlIHBhZ2VT
Y2FsZUZhY3RvciBjYW4gdHJlYXQgdW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUgYW5kIHZpc2li
bGVDb250ZW50UmVjdCgpLnNpemUoKSBhcyBlcXVpdmFsZW50LgotICAgIEludFNpemUgdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAg
SW50U2l6ZSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJlY3RJbmNs
dWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAg
ICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3Vs
ZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1l
IGFzIHRoZSB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAKaW5kZXggMzVkYWFjNGFkOTM1YWQ1MGE4MzhkMGNjMjJhNWFkN2MxZDAxMzFkYS4uZjY5YmUw
M2JmNTU4ZTU2MmM3NjIzZjA4ZWMzMjEyNTY2M2Q2MWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDAzLDEyICs0MDMsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsYWJsZUFyZWE6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IEludFBvaW50KGNvbnRlbnRzU2l6ZSgpLndpZHRoKCkgLSB2aXNpYmxlV2lkdGgoKSwgY29udGVu
dHNTaXplKCkuaGVpZ2h0KCkgLSB2aXNpYmxlSGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFNjcm9s
bGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3QKK0ludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29u
dGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewog
ICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKKyAgICBp
ZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAg
ICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwogICAgICAgICBpZiAoU2Nyb2xsYmFy
KiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNWZhNmUyN2Q5N2UxYmMzYTNiMjE2NjUyOGY0
YTI1OWM2OWQ5YTY2YS4uMzU4YmQ4Zjc4ZDMyZTE1MTFhMjVmMzgxYTk2OWM4ZTI5OTA1MDIzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLyA9IGZhbHNlKSBjb25zdDsKKworICAgIGVudW0gVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzIHsgRXhjbHVkZVNjcm9sbGJhcnMsIEluY2x1ZGVTY3JvbGxiYXJzIH07Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxl
V2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Zy
YW1lbGVzc1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAKaW5kZXggYjlmOGIzYWU5MDk4N2RkN2NlOTg3ZDJmODZm
MzRiMzkyN2Q4NjZhMi4uN2EzNzg5MTViMWE5ZjE2YjY1NGM3MWQ0ZTZlZWUzNmM1ZjM2YTBkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVs
ZXNzU2Nyb2xsVmlldy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSG9zdFdpbmRvdyogRnJhbWVsZXNz
U2Nyb2xsVmlldzo6aG9zdFdpbmRvdygpIGNvbnN0CiAKIEludFJlY3QgRnJhbWVsZXNzU2Nyb2xs
Vmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoIWNsaXBUb0NvbnRlbnRz
KSk7CisgICAgcmV0dXJuIGNvbnRlbnRzVG9XaW5kb3codmlzaWJsZUNvbnRlbnRSZWN0KGNsaXBU
b0NvbnRlbnRzID8gRXhjbHVkZVNjcm9sbGJhcnMgOiBJbmNsdWRlU2Nyb2xsYmFycykpOwogfQog
CiB2b2lkIEZyYW1lbGVzc1Njcm9sbFZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHAKaW5kZXggZjk4MzU4M2FkZjc3YmI5MTQ5Y2YxNDIyNzVkMWI4YjA1MTM5ZWE2
OS4uMGIwNWE1N2I3ZGUyOTRiNjNjODZmZDUyZTc0OGYwMGY5MTIzMjA4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtNjMsOCArNjMsMTAg
QEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IFNjcm9sbFZpZXc6OmNyZWF0ZVNjcm9sbGJhcihTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGkKICAgICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVO
YXRpdmVTY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOwogfQog
Ci1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3Jv
bGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29u
c3QKIHsKKyAgICBib29sIGluY2x1ZGVTY3JvbGxiYXJzID0gc2Nyb2xsYmFySW5jbHVzaW9uID09
IEluY2x1ZGVTY3JvbGxiYXJzOworCiAgICAgLy8gSWYgd2UgYXJlIGFuIGludGVyaW9yIGZyYW1l
IHNjcm9sbGJhciBvciBhcmUgaW4gc29tZSBzb3J0IG9mIHRyYW5zaXRpb24KICAgICAvLyBzdGF0
ZSwganVzdCBjYWxjdWxhdGUgb3VyIHNpemUgYmFzZWQgb24gd2hhdCB0aGUgR1RLKyB0aGVtZSBz
YXlzIHRoZQogICAgIC8vIHNjcm9sbGJhciB3aWR0aCBzaG91bGQgYmUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCmluZGV4IGIyNDk4YWU0YzVlNWYwMzE5MDQyNzky
MWJiYzc5YTBkNDc5NDJiNDMuLmI4ZjNkMTk4NTc0ZjA4MzY2NDUwMDk4M2YxODBhYTJkOTM4NTBl
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgUmVuZGVyRGlhbG9nOjpsYXlvdXQoKQogICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZG9jdW1lbnQoKS0+dmlldygpOwogICAgIGludCBzY3JvbGxUb3AgPSBmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldCgpLmhlaWdodCgpOwogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVQb2lu
dCgwLCBzY3JvbGxUb3ApOwotICAgIGludCB2aXNpYmxlSGVpZ2h0ID0gZnJhbWVWaWV3LT52aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSkuaGVpZ2h0KCk7CisgICAgaW50IHZpc2libGVIZWlnaHQgPSBm
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9s
bGJhcnMpLmhlaWdodCgpOwogICAgIGlmIChoZWlnaHQoKSA8IHZpc2libGVIZWlnaHQpCiAgICAg
ICAgIGFic29sdXRlUG9pbnQubW92ZSgwLCAodmlzaWJsZUhlaWdodCAtIGhlaWdodCgpKSAvIDIp
OwogICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGNvbnRhaW5pbmdCbG9jaygpLT5hYnNvbHV0
ZVRvTG9jYWwoYWJzb2x1dGVQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCA0ZDBkYzJhNDVjZmZhY2IzZTU0ZmI5NjE2NzZlNmJiMDI4NjAzZTFkLi45
OGJjMWI4OWUzYWMwZTRlN2QxMGU0MWE3NTg3ODJkNTE4Yjg0ZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0NDUsMTQgKzI0NDUsMTQgQEAgSW50UG9p
bnQgUmVuZGVyTGF5ZXI6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiBJbnRQb2ludCBS
ZW5kZXJMYXllcjo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogbV9zY3JvbGxTaXplIG1heSBub3QgYmUgdXAtdG8tZGF0ZSBpZiBtX3Njcm9sbERpbWVuc2lv
bnNEaXJ0eSBpcyB0cnVlLgotICAgIHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRT
aXplKG1fc2Nyb2xsU2l6ZSkgLSB2aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpOworICAg
IHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRTaXplKG1fc2Nyb2xsU2l6ZSkgLSB2
aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKIH0KIAotSW50UmVj
dCBSZW5kZXJMYXllcjo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMp
IGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVyOjp2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNv
bnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29uc3QKIHsK
ICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IDA7CiAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAwOwotICAgIGlmIChpbmNsdWRlU2Nyb2xsYmFycykgeworICAgIGlm
IChzY3JvbGxiYXJJbmNsdXNpb24gPT0gSW5jbHVkZVNjcm9sbGJhcnMpIHsKICAgICAgICAgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNj
cm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53
aWR0aCgpIDogMDsKICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9u
dGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAxY2ZjOTA4NTcyYmU1ZTQ4Yjgw
YTk4OGQxNDAyZmVjODYwZTUwYTU1Li4yOTYxZjhjZThlMmE1MTE0MDhjZDNjMzBmNDk1N2ZiYjBl
NjE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTM0LDcg
KzkzNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigp
IGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBJbnRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsK
LSAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9s
bGJhcnMpIGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCAwNDM3MzMwZDdmY2U1MWVjZGUxMjVmOTcyOWIzYWRhYjEyOGRlOTU3Li5hNmRiOGZkMDA5YTJj
YjBkMThkNGE5YzY0ZTZiNzAyOGFiZDAzOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTE3OSw3ICsxMTc5LDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUoKQogewog
ICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1f
cmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZy
YW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2UgLyogZXhjbHVkZSBzY3Jv
bGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5z
Y2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xs
KCk7CiAgICAgICAgIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKQEAgLTE1NTMsNyAr
MTU1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3Np
dGlvbigpCiAgICAgfQogICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2Ug
LyogZXhjbHVkZSBzY3JvbGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXpl
KGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAgICAgfQogCiAjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
c2l6ZXIuY3BwCmluZGV4IDM0MjYzN2FhYWJlZmE1YzFkZTYyNTRlZDZhMDM3NWQ5NjEyMzk3MzUu
LmRhNmJkNDFmYzRjOWZjYTEyYzllNzY5ZTA2YjdkYzZlZDZiN2NlYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBib29s
IFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKFJlbmRlck9iamVjdCogbGF5b3V0Um9vdCkK
ICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBtX2RvY3VtZW50LT5zZXR0aW5ncygpLT50ZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgpOwogICAgIGlmICh3aW5kb3dJbmZvLndpbmRv
d1NpemUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobWFp
bkZyYW1lKTsKLSAgICAgICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3
KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzKTsKKyAgICAg
ICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3KCktPnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1
ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICAg
ICAgaWYgKCFtX2RvY3VtZW50LT5zZXR0aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpCiAgICAgICAgICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUuc2NhbGUoMSAv
IG1fZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggMjE4OTc1ZDFmMzhiZGU3YTU1
YTgwMTgwYWE5OWZmMmMyOGRhZGMwZC4uNGFiOWNkMjM0Yzg5YTRkZTIwMWJlOGE0NTM5MjdhYTVi
YTNkOGFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0y
NTk1LDcgKzI1OTUsNyBAQCBJbnRSZWN0IFdlYlBhZ2VQcml2YXRlOjpnZXRSZWN1cnNpdmVWaXNp
YmxlV2luZG93UmVjdChTY3JvbGxWaWV3KiB2aWV3LCBib29sIG5vQwogICAgICAgICByZXR1cm4g
SW50UmVjdChJbnRQb2ludDo6emVybygpLCB2aWV3LT5jb250ZW50c1NpemUoKSk7CiAgICAgfQog
Ci0gICAgSW50UmVjdCB2aXNpYmxlV2luZG93UmVjdCh2aWV3LT5jb250ZW50c1RvV2luZG93KHZp
ZXctPnZpc2libGVDb250ZW50UmVjdChmYWxzZSkpKTsKKyAgICBJbnRSZWN0IHZpc2libGVXaW5k
b3dSZWN0KHZpZXctPmNvbnRlbnRzVG9XaW5kb3codmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
KTsKICAgICBpZiAodmlldy0+cGFyZW50KCkgJiYgIShub0NsaXBPZk1haW5GcmFtZSAmJiB2aWV3
LT5wYXJlbnQoKSA9PSBtX21haW5GcmFtZS0+dmlldygpKSkgewogICAgICAgICAvLyBJbnRlcnNl
Y3Qgd2l0aCBwYXJlbnQgdmlzaWJsZSByZWN0LgogICAgICAgICB2aXNpYmxlV2luZG93UmVjdC5p
bnRlcnNlY3QoZ2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3Qodmlldy0+cGFyZW50KCksIG5v
Q2xpcE9mTWFpbkZyYW1lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IGRlY2M2NWMwZmMwZjQzZWQ1MDk1ZjE0YmNkYWU4MDIzM2EyMGM3MjYuLjlkNjEzMzZhOTIzM2Y3
OGJiMzk4YTk5NDM1Nzk3YjEzZDMwMDVhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFy
ZWEuY3BwCkBAIC04MSw3ICs4MSw3IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAKICAgICAg
ICAgbV9zY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT5z
Y3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1h
cFRvVHJhbnNmb3JtZWQodmlldy0+Y29udGVudHNTaXplKCkpOwotICAgICAgICBtX3ZpZXdwb3J0
U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoZmFsc2UgLyppbmNsdWRlU2Nyb2xsYmFycyovKSkuc2l6ZSgpOworICAgICAgICBtX3ZpZXdw
b3J0U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9IHZpZXct
PmNvbnRlbnRzV2lkdGgoKSA+IHZpZXctPnZpc2libGVXaWR0aCgpOwogICAgICAgICBtX3Njcm9s
bHNWZXJ0aWNhbGx5ID0gdmlldy0+Y29udGVudHNIZWlnaHQoKSA+IHZpZXctPnZpc2libGVIZWln
aHQoKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lv
blNjcm9sbGFibGVBcmVhKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBSZW5kZXJMYQogICAgICAg
ICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEgPSBzdGF0aWNfY2FzdDxTY3JvbGxhYmxl
QXJlYSo+KG1fbGF5ZXIpOwogICAgICAgICBtX3Njcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5t
YXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpKTsKICAgICAg
ICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJs
ZUFyZWEtPmNvbnRlbnRzU2l6ZSgpKTsKLSAgICAgICAgbV92aWV3cG9ydFNpemUgPSBtX3dlYlBh
Z2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pKS5zaXplKCk7CisgICAgICAgIG1fdmlld3BvcnRT
aXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
Q29udGVudFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9
IGJveC0+c2Nyb2xsV2lkdGgoKSAhPSBib3gtPmNsaWVudFdpZHRoKCk7CiAgICAgICAgIG1fc2Ny
b2xsc1ZlcnRpY2FsbHkgPSBib3gtPnNjcm9sbEhlaWdodCgpICE9IGJveC0+Y2xpZW50SGVpZ2h0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CmluZGV4IDI0YjA2MjMwMzk2NDI2MDc2YWI2Y2YzMTBlY2ZmMjYwODdlZTRjMjguLmU1Mjc2ZmZj
YjMyNjlmYjVhZDE5YWM1NjQxZGJkMTgwN2RmZjljMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03OTksNyArNzk5LDcgQEAgdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250
YWluZXIsCiAgICAgLy8gdG8gaW50ZXJhY3QgdmlhIHRoZSBrZXlib2FyZCB3aXRoIGFuIGludmlz
aWJsZSBwb3B1cC4KICAgICBpZiAocG9wdXBDb250YWluZXItPnBvcHVwVHlwZSgpID09IFBvcHVw
Q29udGFpbmVyOjpTdWdnZXN0aW9uKSB7CiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IG1fd2Vi
Vmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpOwotICAgICAgICBJbnRSZWN0IHZpc2li
bGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxi
YXJzICovKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250
ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgICAgICAvLyB8
Ym91bmRzfCBpcyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMsIHNvIG1ha2Ugc3VyZSB0byBjb252ZXJ0
IGl0IHRvCiAgICAgICAgIC8vIGNvbnRlbnQgY29vcmRpbmF0ZXMgcHJpb3IgdG8gY29tcGFyaW5n
IHRvIHx2aXNpYmxlUmVjdHwuCiAgICAgICAgIEludFJlY3Qgc2NyZWVuUmVjdCA9IGJvdW5kczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCAz
OGVkNDgzY2Q5Zjg3OTIzYTNiMGZhZDQ5ZjZlYjg5NjgxNzhiYjUzLi4xY2JjY2U1MTJiYzdlNzJh
NzY0ZWMzMzBhMzU2MmExNzVlOWQyMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC00ODIsMTEgKzQ4MiwxMSBAQCBURVNUX0YoV2ViRnJh
bWVUZXN0LCBwYWdlU2NhbGVGYWN0b3JTaHJpbmtzVmlld3BvcnQpCiAKICAgICBtX3dlYlZpZXct
PnNldFBhZ2VTY2FsZUZhY3RvcigyLCBXZWJQb2ludCgpKTsKIAotICAgIFdlYkNvcmU6OkludFNp
emUgdW5zY2FsZWRTaXplID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUodHJ1ZSk7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSB1bnNjYWxlZFNpemUgPSB2aWV3LT51bnNjYWxlZFZpc2li
bGVDb250ZW50U2l6ZShTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgIEVY
UEVDVF9FUSh2aWV3cG9ydFdpZHRoLCB1bnNjYWxlZFNpemUud2lkdGgoKSk7CiAgICAgRVhQRUNU
X0VRKHZpZXdwb3J0SGVpZ2h0LCB1bnNjYWxlZFNpemUuaGVpZ2h0KCkpOwogCi0gICAgV2ViQ29y
ZTo6SW50U2l6ZSB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJhciA9IHZpZXctPnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHVuc2NhbGVkU2l6
ZU1pbnVzU2Nyb2xsYmFyID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoU2Nyb2xs
YWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICBFWFBFQ1RfRVEodmlld3BvcnRXaWR0
aE1pbnVzU2Nyb2xsYmFyLCB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJhci53aWR0aCgpKTsKICAg
ICBFWFBFQ1RfRVEodmlld3BvcnRIZWlnaHRNaW51c1Njcm9sbGJhciwgdW5zY2FsZWRTaXplTWlu
dXNTY3JvbGxiYXIuaGVpZ2h0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmlu
ZGV4IGMyOGRkMDU5ODcyZDBkMjRkNzM4MjRlYTU5NDc1YzU5OTM4MTFjNTQuLjEyMzczNDZjYTI5
YjJiZTFjNmQyYmRkYmIzZjhiNmUzM2UzZjVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV92aXNpYmxlX2Nv
bnRlbnRfZ2VvbWV0cnlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRWkKICAgICBF
V0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCBmYWxzZSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIGZhbHNl
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZS0+
dmlldygpLCBmYWxzZSk7Ci0gICAgV2ViQ29yZTo6SW50UmVjdCByZWN0ID0gc21hcnREYXRhLT5m
cmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
IFdlYkNvcmU6OkludFJlY3QgcmVjdCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+dmlzaWJs
ZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OkluY2x1ZGVTY3JvbGxiYXJzIDogV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3Jv
bGxiYXJzKTsKICAgICBpZiAoeCkKICAgICAgICAgKnggPSByZWN0LngoKTsKICAgICBpZiAoeSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA4NDZmZmMzZWE2MTZjMWJhNjE0N2JhOTQ5M2JhZjFj
YjMyOGQ3OGM5Li5lZjcyYjRhMzM2OWQ5YjllODA1NmRmNmU3NmU2Y2IyNmE2MGEzY2MxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMjY0LDcgKzEyNjQsNyBAQCBIUkVTVUxUIFdlYkZyYW1l
Ojp2aXNpYmxlQ29udGVudFJlY3QoUkVDVCogcmVjdCkKICAgICBpZiAoIXZpZXcpCiAgICAgICAg
IHJldHVybiBFX0ZBSUw7CiAKLSAgICAqcmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSk7CisgICAgKnJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICByZXR1
cm4gU19PSzsKIH0KIApAQCAtMjQ3MSw3ICsyNDcxLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJGcmFtZTo6ZnJhbWVCb3VuZHMoCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm4gRV9GQUlMOwogCi0gICAgRmxvYXRSZWN0IGJvdW5kcyA9IHZpZXctPnZpc2libGVDb250ZW50
UmVjdCh0cnVlKTsKKyAgICBGbG9hdFJlY3QgYm91bmRzID0gdmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAgICAgcmVzdWx0LT5ib3R0
b20gPSAoTE9ORykgYm91bmRzLmhlaWdodCgpOwogICAgIHJlc3VsdC0+cmlnaHQgPSAoTE9ORykg
Ym91bmRzLndpZHRoKCk7CiAgICAgcmV0dXJuIFNfT0s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBlNGU5NjQxMjdiOGIyOWY2ODE3MDdi
NGU0YWJlZGJhNjZiNTk4NWY3Li4yNGUwOGQzMGVmNDQ1YTA5NjFiNTBhZjk5NjdlN2Y2MTlkNzgy
YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBJbnRSZWN0IFdlYkZyYW1lOjp2aXNpYmxlQ29udGVudEJv
dW5kcygpIGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwog
ICAgIAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3Qo
dHJ1ZSk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVj
dChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgIHJldHVybiBJbnRSZWN0
KDAsIDAsIGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKIH0KIApA
QCAtNDk1LDcgKzQ5NSw3IEBAIEludFJlY3QgV2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRz
RXhjbHVkaW5nU2Nyb2xsYmFycygpIGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm4gSW50UmVjdCgpOwogICAgIAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52aXNp
YmxlQ29udGVudFJlY3QoZmFsc2UpOworICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52
aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICByZXR1cm4gSW50UmVjdCgwLCAwLCBjb250ZW50UmVj
dC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188977</attachid>
            <date>2013-02-18 20:28:53 -0800</date>
            <delta_ts>2013-02-18 22:37:10 -0800</delta_ts>
            <desc>We&apos;ll get there eventually</desc>
            <filename>bug-110167-20130218202516.patch</filename>
            <type>text/plain</type>
            <size>36081</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uYjg5NDhjNTA3ZGEyNWUyZjUzYzQxOTExNjAzOWE4
NDczNTY0NjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRo
ZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1
bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAg
ICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aWV3cG9ydFNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExh
eW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3Qp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVu
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEaWFsb2c6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpt
YXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnZp
c2libGVDb250ZW50UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQ
b3NpdGlvbik6CisKIDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMxNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkNTM3ZmYxMzYzM2MxM2MxMDVhNGE5YzEw
MTRiNTRiN2Y3NTRlZjVkLi4xZTE5YjEzN2RlOWRlMGE2Y2Q0ZjU4ZGM3MjNkMjM5MzlmMzc2NzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIGJv
b2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBl
bnVtLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEzLTAyLTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzZXRWYWx1ZSBhbmQgY2xvc2VQb3B1cCBtZXRob2Rz
IHRvIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjQw
OWZmMDkzMTlkZjA5OWNkOTM2NGViZDhkNzFmYzZmZGYxNjRiZi4uZTljYjY4YWEwMjAwMGFkMDAy
NzQyOGVmNDI3MTY4N2VmNjQwYjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxl
Q29udGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkg
d2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZCk6CisK
IDIwMTMtMDItMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI4ZGY1NGQ0ZjBiMzVlZDg1Yzhk
N2JmMzc4YWUzZGQzMTJjZC4uN2E1YTdiZDEzYTE5YTU5YTc4MDM0YzkwZWEyMTkwNjNjYjNiNDA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
b29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgYm9vbGVhbiBhcmd1bWVu
dCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAgICAgIGFuIGVudW0uCisKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aXNpYmxlX2NvbnRl
bnRfZ2VvbWV0cnlfZ2V0KToKKwogMjAxMy0wMi0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWlsZCB3aGVu
IENPTlRFWFRfTUVOVVMgZmxhZyBpcyB0dXJuZWQgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjJl
ZjBhOGExYzMxNGMxMDAxZjQ2N2Y1NDE5NTA5OTdhMzYyOWY0Ni4uMWFmZmIxNDFlYjBjNDMzZjcy
ZThmMzQyNGUzM2QxMjY2NDJkYjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAyLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHRoZSBib29sZWFuIGFyZ3VtZW50IHRvIHZpc2libGVDb250ZW50UmVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgYm9vbGVhbiBhcmd1bWVudCB0byB2aXNpYmxlQ29udGVudFJlY3QoKSB3aXRoCisgICAg
ICAgIGFuIGVudW0uCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFt
ZTo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpmcmFtZUJvdW5kcyk6
CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFN0b3AgcGxhY2luZyBzdGQ6OmlzZmluaXRlIGFuZCBzdGQ6OnNpZ25iaXQgaW5zaWRl
IHRoZSBnbG9iYWwgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGRmMzMyYmI1NGEyM2FiMmZjYmU0MDRh
MmIxZGRlNzJhMzBiMzAyLi42MGI2ODc4NTQzMWJlNTQzZWMxYmYxOTEyOWQ0NzUyZjI3MjczYjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4g
YXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhlIGJvb2xlYW4gYXJndW1l
bnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0KCkgd2l0aAorICAgICAgICBhbiBlbnVtLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWU6OnZpc2libGVDb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgcGluY2gtem9v
bWluZyB3ZWJwYWdlIG1lc3NlcyB1cCBmdWxsLXNjcmVlbmluZyBvZiBlbWJlZGRlZCB2aWRlbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5NDAyZjcwYTUwZWFlODkxNGMwNzJiYzAwZWM5OTQwM2Nm
ZmQ1ZjgzLi42ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTE3OSw3ICsxMTc5LDYgQEAgX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTEwU2Ny
b2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQotX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTBpc0NvbXBsZXRlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKQEAgLTE3ODksNyArMTc4OCw3IEBAIF9fWk43
V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4SW50UG9pbnRDMUVS
SzdDR1BvaW50CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTks3V2Vi
Q29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhMTh2aXNpYmxlQ29udGVudFJlY3RFYgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEx
OHZpc2libGVDb250ZW50UmVjdEVOUzBfMzZWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9s
bGJhcnNFCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3MGE1NDcxNzczNmM5
MGRkMTNhOWMxYzNjYS4uNTViNGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzAxLDcgKzU3MDEsNyBAQCBJbnRTaXplIERv
Y3VtZW50Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogewogICAgIGlmICghdmlldygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwotICAgIHJldHVybiB2aWV3KCktPnZpc2libGVDb250ZW50UmVj
dCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5zaXplKCk7CisgICAgcmV0dXJuIHZpZXco
KS0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyku
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBjZTA3MjY4YTc1
NDczNWYyNmNmMDVlOGMwNWMxNDIyMzBkYWYxOTExLi4zMDQ4OTYyZTNkMGY4MTljYmYzNTg2Yzk0
YzgzYmQ5ZDg0ZDgwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1
cGRhdGUoKQogCiAgICAgRnJhbWVWaWV3KiBvdmVybGF5VmlldyA9IG92ZXJsYXlQYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCk7CiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKS5zaXplKCk7Ci0gICAgSW50U2l6ZSBm
cmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xvc2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KHRydWUpKS5zaXplKCk7CisgICAgSW50U2l6ZSBmcmFtZVZpZXdGdWxsU2l6ZSA9IGVuY2xv
c2luZ0ludFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNs
dWRlU2Nyb2xsYmFycykpLnNpemUoKTsKICAgICBJbnRTaXplIHNpemUgPSBtX3NpemUuaXNFbXB0
eSgpID8gZnJhbWVWaWV3RnVsbFNpemUgOiBtX3NpemU7CiAgICAgb3ZlcmxheVBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCksIEludFBvaW50KCkpOwog
ICAgIHNpemUuc2NhbGUobV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTk1MjdlMWIwNGE5OGEyNjVmYTA1MDAwNjAyZjZlN2RlY2RmNzg4
My4uYTQwNTUyMDhjY2NhYzNiOTcyZDYxMmQ5M2QzOTU1Zjg1N2IzYzdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJIZWlnaHQoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJp
ZGRlbiwgZG8gbm90IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlu
bmVySGVpZ2h0IChzaW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KICAgICBi
b29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxk
QXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFw
RnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXctPm1h
cEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxi
YXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOwogfQog
CiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNTYsNyArMTE1Niw3IEBA
IGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgLy8gSWYgdGhlIGRldmlj
ZSB3aWR0aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xs
YmFyIGludG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBk
ZXZpY2UpLgogICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6Oklu
Y2x1ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0
aCgpKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGRhY2EwODgxMGM5NTE4ZGYzOGNiZmNiYjQ4ZTIyMjM0MWViNjI5
NDkuLjA2ZjI4ODk5OTNlMDcyMDU4NGZjOTFiYjg1NzA1YmUwZmU3Mjk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2Fs
Y3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9s
bGJhcgogICAgICAgICBoTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgICAgIC8vIFNlYW1sZXNz
IGRvY3VtZW50cyBiZWdpbiB3aXRoIGhlaWdodHMgb2YgMDsgd2Ugc3BlY2lhbCBjYXNlIHRoYXQg
aGVyZQogICAgICAgICAvLyB0byBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IG5lZWQgc2Nyb2xsYmFycy4KLSAgICAgICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKKyAgICAg
ICAgSW50U2l6ZSBmdWxsVmlzaWJsZVNpemUgPSB2aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNj
cm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQgPSBmcmFt
ZSgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2hvdWxk
RGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCk7CiAgICAgICAgIHZNb2RlID0gKGlzU2VhbWxl
c3NEb2N1bWVudCAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKSA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAgICAgfSBlbHNlIHsKQEAgLTExNjEsNyArMTE2MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5
KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2xh
c3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXplID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSB2aXNpYmxlQ29udGVudFJlY3Qo
SW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9v
bUZhY3RvciA9IHJvb3QtPnN0eWxlKCktPnpvb20oKTsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGluaXRpYWwgdk1vZGUgdG8gQWx3YXlzT24gaWYgd2UncmUgYXV0by4KQEAgLTI2
MDIsNyArMjYwMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkK
ICAgICAgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkgJiYgIWZpeGVkTGF5b3V0U2l6ZSgpLmlzRW1w
dHkoKSAmJiBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIGN1cnJlbnRTaXplID0g
Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJlbnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5zaXplKCk7
CisgICAgICAgICAgICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdChJbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOwogICAgICAgICBmbG9hdCBjdXJyZW50Wm9vbUZhY3RvciA9IHJlbmRl
clZpZXctPnN0eWxlKCktPnpvb20oKTsKICAgICAgICAgYm9vbCByZXNpemVkID0gIW1fZmlyc3RM
YXlvdXQgJiYgKGN1cnJlbnRTaXplICE9IG1fbGFzdFZpZXdwb3J0U2l6ZSB8fCBjdXJyZW50Wm9v
bUZhY3RvciAhPSBtX2xhc3Rab29tRmFjdG9yKTsKICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gY3VycmVudFNpemU7CkBAIC0yNzg0LDcgKzI3ODQsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKICAgICAgICAgcmV0dXJu
IEludFJlY3QoSW50UG9pbnQoKSwgY29udGVudHNTaXplKCkpOwogCiAgICAgLy8gU2V0IG91ciBj
bGlwIHJlY3QgdG8gYmUgb3VyIGNvbnRlbnRzLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250
ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29udGVudHMpKTsKKyAgICBJ
bnRSZWN0IGNsaXBSZWN0ID0gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoY2xp
cFRvQ29udGVudHMgPyBFeGNsdWRlU2Nyb2xsYmFycyA6IEluY2x1ZGVTY3JvbGxiYXJzKSk7CiAg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIGNsaXBSZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CmluZGV4IDYyYTM5ODY2ZTRhYTJlODI0MTUzNTUyOGUxYWE5ZTcxYmFjNjIwNjMuLjMzOGMzODk5
Mzg2MDQ5ZjdmZmQ2NzE2N2Q0YzM4ZGEwZGM4NzU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9vbCBjYW5TY3JvbGxJ
bkRpcmVjdGlvbihjb25zdCBGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExheW91dFNpemUgc2l6ZSA9IGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzU2l6ZSgpOwogICAgIExheW91dFNpemUgb2Zmc2V0ID0gZnJhbWUtPnZpZXco
KS0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCByZWN0ID0gZnJhbWUtPnZpZXcoKS0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUpOworICAgIExheW91dFJlY3QgcmVjdCA9IGZyYW1lLT52
aWV3KCktPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJh
cnMpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWY4YmRiM2M0
ODQ3NWU0M2QzNDE4NWVmZTdmNmE2OThlNzdiNTQ4MS4uMjcwMzhkMzBlYTNmYWIyNzU4YWMxY2Nj
NmVjYjM5YzliNmZkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTIyNSwxMCArMjI1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xs
aW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENo
YW5nZSgpOwogfQogCi1JbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRTaXplIFNjcm9sbFZpZXc6OnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xs
YmFycyBzY3JvbGxiYXJJbmNsdXNpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChpbmNsdWRlU2Ny
b2xsYmFycykuc2l6ZSgpOworICAgICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJl
Y3Qoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAg
ICBpZiAoIW1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbV9maXhlZFZpc2libGVDb250ZW50UmVjdC5zaXplKCk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
SW50U2l6ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsK
ICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoIWluY2x1
ZGVTY3JvbGxiYXJzKSB7CisgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Ny
b2xsYmFycykgewogICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRp
Y2FsQmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKSkKQEAgLTI0OCwxNSArMjQ4LDE1IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIH0KIAogI2lm
ICFQTEFURk9STShHVEspCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxl
Q29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2xsYmFy
SW5jbHVzaW9uKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMpOworICAg
ICAgICByZXR1cm4gcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3Qoc2NvbGxiYXJJbmNsdXNpb24g
PT0gSW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgaWYgKCFtX2ZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7
CiAKLSAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2FsZWRWaXNpYmxlQ29u
dGVudFNpemUoaW5jbHVkZVNjcm9sbGJhcnMpOworICAgIEZsb2F0U2l6ZSB2aXNpYmxlQ29udGVu
dFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lvbik7CiAg
ICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9y
KCkpOwogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5k
ZWRJbnRTaXplKHZpc2libGVDb250ZW50U2l6ZSkpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJh
cnMpIGNvbnN0CiAKIEludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhlZExheW91
dCA/IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKSA6IG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgIW1fdXNlRml4ZWRM
YXlvdXQgPyB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShFeGNsdWRlU2Nyb2xsYmFycykgOiBt
X2ZpeGVkTGF5b3V0U2l6ZTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpmaXhlZExheW91dFNp
emUoKSBjb25zdApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBib29sIHNlbmRD
b250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAgSW50
U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Ci0gICAgICAgIEludFNpemUgZnVsbFZpc2li
bGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNsdWRlU2Nyb2xsYmFycyovKS5z
aXplKCk7CisgICAgICAgIEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KEluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7CiAKICAgICAgICAgaWYgKGhTY3JvbGwgPT0g
U2Nyb2xsYmFyQXV0bykgewogICAgICAgICAgICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGRvY1NpemUud2lkdGgoKSA+IHZpc2libGVXaWR0aCgpOwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKICAgICBJbnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKICAg
ICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKLSAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhvdXRTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChmYWxz
ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJz
KGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSk7CiAgICAgICAgIGRvY3Vt
ZW50RGlydHlSZWN0LmludGVyc2VjdCh2aXNpYmxlQXJlYVdpdGhvdXRTY3JvbGxiYXJzKTsKICAg
ICB9CiAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghbV9zY3Jv
bGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGljYWxT
Y3JvbGxiYXIpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqY29udGV4dCk7CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7
Ci0gICAgICAgIEludFJlY3QgdmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyhsb2NhdGlvbigpLCB2
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxl
QXJlYVdpdGhTY3JvbGxiYXJzKGxvY2F0aW9uKCksIHZpc2libGVDb250ZW50UmVjdChJbmNsdWRl
U2Nyb2xsYmFycykuc2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNl
Y3QodmlzaWJsZUFyZWFXaXRoU2Nyb2xsYmFycyk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlv
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBmZTdiMDEwMTE1Mjg3
MWMwMjFlZWZkMTUxYjk4NjE5YjZkY2Y5MDdlLi5hMzE2NDVkMmUzNGJhNDNlYzZlYjk4Y2FmZmUy
YWY5NjNkY2E3ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBzaXR1YXRpb24gdGhlIGNsaWVudCBp
cyByZXNwb25zaWJsZSBmb3IgdGhlIHNjcm9sbGluZyAoaWUuIHdpdGggYSB0aWxlZCBiYWNraW5n
IHN0b3JlKSBpdCBpcyBwb3NzaWJsZSB0byB1c2UKICAgICAvLyB0aGUgc2V0Rml4ZWRWaXNpYmxl
Q29udGVudFJlY3QgaW5zdGVhZCBmb3IgdGhlIG1haW5mcmFtZSwgdGhvdWdoIHRoaXMgbXVzdCBi
ZSB1cGRhdGVkIG1hbnVhbGx5LCBlLmcganVzdCBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhZ2UKICAg
ICAvLyB3aGljaCB1c3VhbGx5IHdpbGwgaGFwcGVuIHdoZW4gcGFubmluZywgcGluY2hpbmcgYW5k
IHJvdGF0aW9uIGVuZHMsIG9yIHdoZW4gc2NhbGUgb3IgcG9zaXRpb24gYXJlIGNoYW5nZWQgbWFu
dWFsbHkuCi0gICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1
ZGVTY3JvbGxiYXJzID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJz
ID0gRXhjbHVkZVNjcm9sbGJhcnMpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QpIHsgbV9maXhlZFZpc2libGVDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQog
ICAgIEludFJlY3QgZml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsgfQpAQCAtMTU1LDcgKzE1NSw3
IEBAIHB1YmxpYzoKICAgICAvLyB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkg
MSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaXMgdHJ1ZSBhbmQgdGhlCiAgICAgLy8gU2Nyb2xsVmlldyBpcyB0aGUgbWFpbiBmcmFtZTsg
aW4gdGhhdCBjYXNlLCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yIGlzIGVxdWFsIHRvIHRoZSBw
YWdlJ3MgcGFnZVNjYWxlRmFjdG9yLgogICAgIC8vIFBvcnRzIHRoYXQgZG9uJ3QgdXNlIHBhZ2VT
Y2FsZUZhY3RvciBjYW4gdHJlYXQgdW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUgYW5kIHZpc2li
bGVDb250ZW50UmVjdCgpLnNpemUoKSBhcyBlcXVpdmFsZW50LgotICAgIEludFNpemUgdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CisgICAg
SW50U2l6ZSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJlY3RJbmNs
dWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAg
ICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3Vs
ZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1l
IGFzIHRoZSB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAKaW5kZXggMzVkYWFjNGFkOTM1YWQ1MGE4MzhkMGNjMjJhNWFkN2MxZDAxMzFkYS4uZjY5YmUw
M2JmNTU4ZTU2MmM3NjIzZjA4ZWMzMjEyNTY2M2Q2MWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDAzLDEyICs0MDMsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsYWJsZUFyZWE6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IEludFBvaW50KGNvbnRlbnRzU2l6ZSgpLndpZHRoKCkgLSB2aXNpYmxlV2lkdGgoKSwgY29udGVu
dHNTaXplKCkuaGVpZ2h0KCkgLSB2aXNpYmxlSGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFNjcm9s
bGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29u
c3QKK0ludFJlY3QgU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29u
dGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nyb2xsYmFySW5jbHVzaW9uKSBjb25zdAogewog
ICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpbnQgaG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodCA9IDA7CiAKLSAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKKyAgICBp
ZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEluY2x1ZGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAg
ICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwogICAgICAgICBpZiAoU2Nyb2xsYmFy
KiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNWZhNmUyN2Q5N2UxYmMzYTNiMjE2NjUyOGY0
YTI1OWM2OWQ5YTY2YS4uMzU4YmQ4Zjc4ZDMyZTE1MTFhMjVmMzgxYTk2OWM4ZTI5OTA1MDIzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChib29sIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLyA9IGZhbHNlKSBjb25zdDsKKworICAgIGVudW0gVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzIHsgRXhjbHVkZVNjcm9sbGJhcnMsIEluY2x1ZGVTY3JvbGxiYXJzIH07Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgPSBFeGNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCB2aXNpYmxl
V2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Zy
YW1lbGVzc1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAKaW5kZXggYjlmOGIzYWU5MDk4N2RkN2NlOTg3ZDJmODZm
MzRiMzkyN2Q4NjZhMi4uN2EzNzg5MTViMWE5ZjE2YjY1NGM3MWQ0ZTZlZWUzNmM1ZjM2YTBkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVs
ZXNzU2Nyb2xsVmlldy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSG9zdFdpbmRvdyogRnJhbWVsZXNz
U2Nyb2xsVmlldzo6aG9zdFdpbmRvdygpIGNvbnN0CiAKIEludFJlY3QgRnJhbWVsZXNzU2Nyb2xs
Vmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY29udGVudHNUb1dpbmRvdyh2aXNpYmxlQ29udGVudFJlY3QoIWNsaXBUb0NvbnRlbnRz
KSk7CisgICAgcmV0dXJuIGNvbnRlbnRzVG9XaW5kb3codmlzaWJsZUNvbnRlbnRSZWN0KGNsaXBU
b0NvbnRlbnRzID8gRXhjbHVkZVNjcm9sbGJhcnMgOiBJbmNsdWRlU2Nyb2xsYmFycykpOwogfQog
CiB2b2lkIEZyYW1lbGVzc1Njcm9sbFZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHAKaW5kZXggZjk4MzU4M2FkZjc3YmI5MTQ5Y2YxNDIyNzVkMWI4YjA1MTM5ZWE2
OS4uMGIwNWE1N2I3ZGUyOTRiNjNjODZmZDUyZTc0OGYwMGY5MTIzMjA4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtNjMsOCArNjMsMTAg
QEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IFNjcm9sbFZpZXc6OmNyZWF0ZVNjcm9sbGJhcihTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGkKICAgICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVO
YXRpdmVTY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOwogfQog
Ci1JbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3Jv
bGxiYXJzKSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29u
c3QKIHsKKyAgICBib29sIGluY2x1ZGVTY3JvbGxiYXJzID0gc2Nyb2xsYmFySW5jbHVzaW9uID09
IEluY2x1ZGVTY3JvbGxiYXJzOworCiAgICAgLy8gSWYgd2UgYXJlIGFuIGludGVyaW9yIGZyYW1l
IHNjcm9sbGJhciBvciBhcmUgaW4gc29tZSBzb3J0IG9mIHRyYW5zaXRpb24KICAgICAvLyBzdGF0
ZSwganVzdCBjYWxjdWxhdGUgb3VyIHNpemUgYmFzZWQgb24gd2hhdCB0aGUgR1RLKyB0aGVtZSBz
YXlzIHRoZQogICAgIC8vIHNjcm9sbGJhciB3aWR0aCBzaG91bGQgYmUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCmluZGV4IGIyNDk4YWU0YzVlNWYwMzE5MDQyNzky
MWJiYzc5YTBkNDc5NDJiNDMuLmI4ZjNkMTk4NTc0ZjA4MzY2NDUwMDk4M2YxODBhYTJkOTM4NTBl
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgUmVuZGVyRGlhbG9nOjpsYXlvdXQoKQogICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZG9jdW1lbnQoKS0+dmlldygpOwogICAgIGludCBzY3JvbGxUb3AgPSBmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldCgpLmhlaWdodCgpOwogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVQb2lu
dCgwLCBzY3JvbGxUb3ApOwotICAgIGludCB2aXNpYmxlSGVpZ2h0ID0gZnJhbWVWaWV3LT52aXNp
YmxlQ29udGVudFJlY3QodHJ1ZSkuaGVpZ2h0KCk7CisgICAgaW50IHZpc2libGVIZWlnaHQgPSBm
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9s
bGJhcnMpLmhlaWdodCgpOwogICAgIGlmIChoZWlnaHQoKSA8IHZpc2libGVIZWlnaHQpCiAgICAg
ICAgIGFic29sdXRlUG9pbnQubW92ZSgwLCAodmlzaWJsZUhlaWdodCAtIGhlaWdodCgpKSAvIDIp
OwogICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGNvbnRhaW5pbmdCbG9jaygpLT5hYnNvbHV0
ZVRvTG9jYWwoYWJzb2x1dGVQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCA0ZDBkYzJhNDVjZmZhY2IzZTU0ZmI5NjE2NzZlNmJiMDI4NjAzZTFkLi45
OGJjMWI4OWUzYWMwZTRlN2QxMGU0MWE3NTg3ODJkNTE4Yjg0ZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0NDUsMTQgKzI0NDUsMTQgQEAgSW50UG9p
bnQgUmVuZGVyTGF5ZXI6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiBJbnRQb2ludCBS
ZW5kZXJMYXllcjo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogbV9zY3JvbGxTaXplIG1heSBub3QgYmUgdXAtdG8tZGF0ZSBpZiBtX3Njcm9sbERpbWVuc2lv
bnNEaXJ0eSBpcyB0cnVlLgotICAgIHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRT
aXplKG1fc2Nyb2xsU2l6ZSkgLSB2aXNpYmxlQ29udGVudFJlY3QodHJ1ZSkuc2l6ZSgpOworICAg
IHJldHVybiBzY3JvbGxPcmlnaW4oKSArIHJvdW5kZWRJbnRTaXplKG1fc2Nyb2xsU2l6ZSkgLSB2
aXNpYmxlQ29udGVudFJlY3QoSW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKIH0KIAotSW50UmVj
dCBSZW5kZXJMYXllcjo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMp
IGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVyOjp2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNv
bnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjcm9sbGJhckluY2x1c2lvbikgY29uc3QKIHsK
ICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IDA7CiAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAwOwotICAgIGlmIChpbmNsdWRlU2Nyb2xsYmFycykgeworICAgIGlm
IChzY3JvbGxiYXJJbmNsdXNpb24gPT0gSW5jbHVkZVNjcm9sbGJhcnMpIHsKICAgICAgICAgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNj
cm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53
aWR0aCgpIDogMDsKICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9u
dGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAxY2ZjOTA4NTcyYmU1ZTQ4Yjgw
YTk4OGQxNDAyZmVjODYwZTUwYTU1Li4yOTYxZjhjZThlMmE1MTE0MDhjZDNjMzBmNDk1N2ZiYjBl
NjE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTM0LDcg
KzkzNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigp
IGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBJbnRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsK
LSAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9s
bGJhcnMpIGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoVmlz
aWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCAwNDM3MzMwZDdmY2U1MWVjZGUxMjVmOTcyOWIzYWRhYjEyOGRlOTU3Li5hNmRiOGZkMDA5YTJj
YjBkMThkNGE5YzY0ZTZiNzAyOGFiZDAzOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTE3OSw3ICsxMTc5LDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZVNpemUoKQogewog
ICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1f
cmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZy
YW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2UgLyogZXhjbHVkZSBzY3Jv
bGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5z
Y2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xs
KCk7CiAgICAgICAgIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKQEAgLTE1NTMsNyAr
MTU1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3Np
dGlvbigpCiAgICAgfQogICAgIGlmIChtX2NsaXBMYXllcikgewogICAgICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCk7Ci0gICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoZmFsc2Ug
LyogZXhjbHVkZSBzY3JvbGxiYXJzICovKSk7CisgICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXpl
KGZyYW1lVmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoKSk7CiAgICAgfQogCiAjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
c2l6ZXIuY3BwCmluZGV4IDM0MjYzN2FhYWJlZmE1YzFkZTYyNTRlZDZhMDM3NWQ5NjEyMzk3MzUu
LmRhNmJkNDFmYzRjOWZjYTEyYzllNzY5ZTA2YjdkYzZlZDZiN2NlYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBib29s
IFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKFJlbmRlck9iamVjdCogbGF5b3V0Um9vdCkK
ICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBtX2RvY3VtZW50LT5zZXR0aW5ncygpLT50ZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgpOwogICAgIGlmICh3aW5kb3dJbmZvLndpbmRv
d1NpemUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobWFp
bkZyYW1lKTsKLSAgICAgICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3
KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzKTsKKyAgICAg
ICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3KCktPnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1
ZGVTY3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICAg
ICAgaWYgKCFtX2RvY3VtZW50LT5zZXR0aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpCiAgICAgICAgICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUuc2NhbGUoMSAv
IG1fZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggMjE4OTc1ZDFmMzhiZGU3YTU1
YTgwMTgwYWE5OWZmMmMyOGRhZGMwZC4uNGFiOWNkMjM0Yzg5YTRkZTIwMWJlOGE0NTM5MjdhYTVi
YTNkOGFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0y
NTk1LDcgKzI1OTUsNyBAQCBJbnRSZWN0IFdlYlBhZ2VQcml2YXRlOjpnZXRSZWN1cnNpdmVWaXNp
YmxlV2luZG93UmVjdChTY3JvbGxWaWV3KiB2aWV3LCBib29sIG5vQwogICAgICAgICByZXR1cm4g
SW50UmVjdChJbnRQb2ludDo6emVybygpLCB2aWV3LT5jb250ZW50c1NpemUoKSk7CiAgICAgfQog
Ci0gICAgSW50UmVjdCB2aXNpYmxlV2luZG93UmVjdCh2aWV3LT5jb250ZW50c1RvV2luZG93KHZp
ZXctPnZpc2libGVDb250ZW50UmVjdChmYWxzZSkpKTsKKyAgICBJbnRSZWN0IHZpc2libGVXaW5k
b3dSZWN0KHZpZXctPmNvbnRlbnRzVG9XaW5kb3codmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
KTsKICAgICBpZiAodmlldy0+cGFyZW50KCkgJiYgIShub0NsaXBPZk1haW5GcmFtZSAmJiB2aWV3
LT5wYXJlbnQoKSA9PSBtX21haW5GcmFtZS0+dmlldygpKSkgewogICAgICAgICAvLyBJbnRlcnNl
Y3Qgd2l0aCBwYXJlbnQgdmlzaWJsZSByZWN0LgogICAgICAgICB2aXNpYmxlV2luZG93UmVjdC5p
bnRlcnNlY3QoZ2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1JlY3Qodmlldy0+cGFyZW50KCksIG5v
Q2xpcE9mTWFpbkZyYW1lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IGRlY2M2NWMwZmMwZjQzZWQ1MDk1ZjE0YmNkYWU4MDIzM2EyMGM3MjYuLjlkNjEzMzZhOTIzM2Y3
OGJiMzk4YTk5NDM1Nzk3YjEzZDMwMDVhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFy
ZWEuY3BwCkBAIC04MSw3ICs4MSw3IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAKICAgICAg
ICAgbV9zY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT5z
Y3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1h
cFRvVHJhbnNmb3JtZWQodmlldy0+Y29udGVudHNTaXplKCkpOwotICAgICAgICBtX3ZpZXdwb3J0
U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoZmFsc2UgLyppbmNsdWRlU2Nyb2xsYmFycyovKSkuc2l6ZSgpOworICAgICAgICBtX3ZpZXdw
b3J0U2l6ZSA9IG1fd2ViUGFnZS0+bWFwVG9UcmFuc2Zvcm1lZCh2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9IHZpZXct
PmNvbnRlbnRzV2lkdGgoKSA+IHZpZXctPnZpc2libGVXaWR0aCgpOwogICAgICAgICBtX3Njcm9s
bHNWZXJ0aWNhbGx5ID0gdmlldy0+Y29udGVudHNIZWlnaHQoKSA+IHZpZXctPnZpc2libGVIZWln
aHQoKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lv
blNjcm9sbGFibGVBcmVhKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBSZW5kZXJMYQogICAgICAg
ICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEgPSBzdGF0aWNfY2FzdDxTY3JvbGxhYmxl
QXJlYSo+KG1fbGF5ZXIpOwogICAgICAgICBtX3Njcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5t
YXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpKTsKICAgICAg
ICAgbV9jb250ZW50c1NpemUgPSBtX3dlYlBhZ2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJs
ZUFyZWEtPmNvbnRlbnRzU2l6ZSgpKTsKLSAgICAgICAgbV92aWV3cG9ydFNpemUgPSBtX3dlYlBh
Z2UtPm1hcFRvVHJhbnNmb3JtZWQoc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVDb250ZW50UmVjdChm
YWxzZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pKS5zaXplKCk7CisgICAgICAgIG1fdmlld3BvcnRT
aXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
Q29udGVudFJlY3QoKSkuc2l6ZSgpOwogCiAgICAgICAgIG1fc2Nyb2xsc0hvcml6b250YWxseSA9
IGJveC0+c2Nyb2xsV2lkdGgoKSAhPSBib3gtPmNsaWVudFdpZHRoKCk7CiAgICAgICAgIG1fc2Ny
b2xsc1ZlcnRpY2FsbHkgPSBib3gtPnNjcm9sbEhlaWdodCgpICE9IGJveC0+Y2xpZW50SGVpZ2h0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CmluZGV4IDI0YjA2MjMwMzk2NDI2MDc2YWI2Y2YzMTBlY2ZmMjYwODdlZTRjMjguLmU1Mjc2ZmZj
YjMyNjlmYjVhZDE5YWM1NjQxZGJkMTgwN2RmZjljMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03OTksNyArNzk5LDcgQEAgdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250
YWluZXIsCiAgICAgLy8gdG8gaW50ZXJhY3QgdmlhIHRoZSBrZXlib2FyZCB3aXRoIGFuIGludmlz
aWJsZSBwb3B1cC4KICAgICBpZiAocG9wdXBDb250YWluZXItPnBvcHVwVHlwZSgpID09IFBvcHVw
Q29udGFpbmVyOjpTdWdnZXN0aW9uKSB7CiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IG1fd2Vi
Vmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpOwotICAgICAgICBJbnRSZWN0IHZpc2li
bGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxi
YXJzICovKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250
ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogICAgICAgICAvLyB8
Ym91bmRzfCBpcyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMsIHNvIG1ha2Ugc3VyZSB0byBjb252ZXJ0
IGl0IHRvCiAgICAgICAgIC8vIGNvbnRlbnQgY29vcmRpbmF0ZXMgcHJpb3IgdG8gY29tcGFyaW5n
IHRvIHx2aXNpYmxlUmVjdHwuCiAgICAgICAgIEludFJlY3Qgc2NyZWVuUmVjdCA9IGJvdW5kczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCAz
OGVkNDgzY2Q5Zjg3OTIzYTNiMGZhZDQ5ZjZlYjg5NjgxNzhiYjUzLi5mZDEyOTJjMmQwNTU2MjY1
MTcxMzgxYjZhYzQ3YTYwYmYwYWFjZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC00ODIsMTEgKzQ4MiwxMSBAQCBURVNUX0YoV2ViRnJh
bWVUZXN0LCBwYWdlU2NhbGVGYWN0b3JTaHJpbmtzVmlld3BvcnQpCiAKICAgICBtX3dlYlZpZXct
PnNldFBhZ2VTY2FsZUZhY3RvcigyLCBXZWJQb2ludCgpKTsKIAotICAgIFdlYkNvcmU6OkludFNp
emUgdW5zY2FsZWRTaXplID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUodHJ1ZSk7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSB1bnNjYWxlZFNpemUgPSB2aWV3LT51bnNjYWxlZFZpc2li
bGVDb250ZW50U2l6ZShXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMp
OwogICAgIEVYUEVDVF9FUSh2aWV3cG9ydFdpZHRoLCB1bnNjYWxlZFNpemUud2lkdGgoKSk7CiAg
ICAgRVhQRUNUX0VRKHZpZXdwb3J0SGVpZ2h0LCB1bnNjYWxlZFNpemUuaGVpZ2h0KCkpOwogCi0g
ICAgV2ViQ29yZTo6SW50U2l6ZSB1bnNjYWxlZFNpemVNaW51c1Njcm9sbGJhciA9IHZpZXctPnVu
c2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHVu
c2NhbGVkU2l6ZU1pbnVzU2Nyb2xsYmFyID0gdmlldy0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNp
emUoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICBFWFBF
Q1RfRVEodmlld3BvcnRXaWR0aE1pbnVzU2Nyb2xsYmFyLCB1bnNjYWxlZFNpemVNaW51c1Njcm9s
bGJhci53aWR0aCgpKTsKICAgICBFWFBFQ1RfRVEodmlld3BvcnRIZWlnaHRNaW51c1Njcm9sbGJh
ciwgdW5zY2FsZWRTaXplTWludXNTY3JvbGxiYXIuaGVpZ2h0KCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwCmluZGV4IGMyOGRkMDU5ODcyZDBkMjRkNzM4MjRlYTU5NDc1YzU5OTM4
MTFjNTQuLjEyMzczNDZjYTI5YjJiZTFjNmQyYmRkYmIzZjhiNmUzM2UzZjVlOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgRWluYV9Cb29sIGV3
a19mcmFtZV92aXNpYmxlX2NvbnRlbnRfZ2VvbWV0cnlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSwgRWkKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21h
cnREYXRhLCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0
RGF0YS0+ZnJhbWUsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c21hcnREYXRhLT5mcmFtZS0+dmlldygpLCBmYWxzZSk7Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBy
ZWN0ID0gc21hcnREYXRhLT5mcmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJlY3QoaW5jbHVk
ZVNjcm9sbGJhcnMpOworICAgIFdlYkNvcmU6OkludFJlY3QgcmVjdCA9IHNtYXJ0RGF0YS0+ZnJh
bWUtPnZpZXcoKS0+dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJzIDogV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKICAgICBpZiAoeCkKICAgICAgICAgKnggPSByZWN0
LngoKTsKICAgICBpZiAoeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA4NDZmZmMzZWE2MTZj
MWJhNjE0N2JhOTQ5M2JhZjFjYjMyOGQ3OGM5Li5lZjcyYjRhMzM2OWQ5YjllODA1NmRmNmU3NmU2
Y2IyNmE2MGEzY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMjY0LDcgKzEyNjQsNyBA
QCBIUkVTVUxUIFdlYkZyYW1lOjp2aXNpYmxlQ29udGVudFJlY3QoUkVDVCogcmVjdCkKICAgICBp
ZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICAqcmVjdCA9IHZpZXctPnZp
c2libGVDb250ZW50UmVjdChmYWxzZSk7CisgICAgKnJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMjQ3MSw3ICsyNDcxLDcgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6ZnJhbWVCb3VuZHMoCiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgRmxvYXRSZWN0IGJvdW5kcyA9IHZp
ZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlKTsKKyAgICBGbG9hdFJlY3QgYm91bmRzID0gdmll
dy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7
CiAgICAgcmVzdWx0LT5ib3R0b20gPSAoTE9ORykgYm91bmRzLmhlaWdodCgpOwogICAgIHJlc3Vs
dC0+cmlnaHQgPSAoTE9ORykgYm91bmRzLndpZHRoKCk7CiAgICAgcmV0dXJuIFNfT0s7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBlNGU5
NjQxMjdiOGIyOWY2ODE3MDdiNGU0YWJlZGJhNjZiNTk4NWY3Li4yNGUwOGQzMGVmNDQ1YTA5NjFi
NTBhZjk5NjdlN2Y2MTlkNzgyYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBJbnRSZWN0IFdlYkZyYW1l
Ojp2aXNpYmxlQ29udGVudEJvdW5kcygpIGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICBy
ZXR1cm4gSW50UmVjdCgpOwogICAgIAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSB2aWV3LT52
aXNpYmxlQ29udGVudFJlY3QodHJ1ZSk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXct
PnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwog
ICAgIHJldHVybiBJbnRSZWN0KDAsIDAsIGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0
LmhlaWdodCgpKTsKIH0KIApAQCAtNDk1LDcgKzQ5NSw3IEBAIEludFJlY3QgV2ViRnJhbWU6OnZp
c2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycygpIGNvbnN0CiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogICAgIAotICAgIEludFJlY3QgY29udGVu
dFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoZmFsc2UpOworICAgIEludFJlY3QgY29u
dGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICByZXR1cm4gSW50UmVj
dCgwLCAwLCBjb250ZW50UmVjdC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>