<?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>185050</bug_id>
          
          <creation_ts>2018-04-26 14:42:53 -0700</creation_ts>
          <short_desc>[Extra zoom mode] Add a mechanism to override default viewport behaviors in extra zoom mode</short_desc>
          <delta_ts>2018-04-30 08:41:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418260</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-26 14:42:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/39624038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418375</commentid>
    <comment_count>1</comment_count>
      <attachid>338953</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-26 19:42:44 -0700</bug_when>
    <thetext>Created attachment 338953
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418385</commentid>
    <comment_count>2</comment_count>
      <attachid>338953</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-04-26 20:31:01 -0700</bug_when>
    <thetext>Comment on attachment 338953
Part 1

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

&gt; Source/WebKit/UIProcess/ios/WKContentView.mm:-405
&gt; -        _webView._forceHorizontalViewportShrinkToFit,

Nice! It is too rare that one of these parameters is red instead of green :)

&gt; Tools/ChangeLog:9
&gt; +        Remove an test that&apos;s no longer useful, now that the SPI it was testing is gone. This functionality is now

an test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418393</commentid>
    <comment_count>3</comment_count>
      <attachid>338962</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-26 21:01:13 -0700</bug_when>
    <thetext>Created attachment 338962
Part 1 v2 (try to fix GTK/WPE)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418405</commentid>
    <comment_count>4</comment_count>
      <attachid>338964</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-26 21:37:31 -0700</bug_when>
    <thetext>Created attachment 338964
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418430</commentid>
    <comment_count>5</comment_count>
      <attachid>338975</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-26 22:53:16 -0700</bug_when>
    <thetext>Created attachment 338975
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418482</commentid>
    <comment_count>6</comment_count>
      <attachid>338987</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-27 07:51:44 -0700</bug_when>
    <thetext>Created attachment 338987
Part 1 (patch for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418488</commentid>
    <comment_count>7</comment_count>
      <attachid>338987</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 08:35:55 -0700</bug_when>
    <thetext>Comment on attachment 338987
Part 1 (patch for landing)

Clearing flags on attachment: 338987

Committed r231095: &lt;https://trac.webkit.org/changeset/231095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418492</commentid>
    <comment_count>8</comment_count>
      <attachid>338992</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-27 08:40:17 -0700</bug_when>
    <thetext>Created attachment 338992
Part 2 (patch for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418499</commentid>
    <comment_count>9</comment_count>
      <attachid>338992</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 09:07:24 -0700</bug_when>
    <thetext>Comment on attachment 338992
Part 2 (patch for landing)

Clearing flags on attachment: 338992

Committed r231097: &lt;https://trac.webkit.org/changeset/231097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418500</commentid>
    <comment_count>10</comment_count>
      <attachid>338994</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-27 09:10:36 -0700</bug_when>
    <thetext>Created attachment 338994
Part 3 (patch for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418553</commentid>
    <comment_count>11</comment_count>
      <attachid>338994</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 11:03:20 -0700</bug_when>
    <thetext>Comment on attachment 338994
Part 3 (patch for landing)

Clearing flags on attachment: 338994

Committed r231106: &lt;https://trac.webkit.org/changeset/231106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338953</attachid>
            <date>2018-04-26 19:42:44 -0700</date>
            <delta_ts>2018-04-26 20:31:01 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-185050-20180426194243.patch</filename>
            <type>text/plain</type>
            <size>65961</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ0NTMyMTRhOTU5OGNj
MjU0ZTFkZTkwY2U2OTQ4YTJhODI5YTFhNy4uMmFmMDg3NGZhNThiMDc0N2Q4ZWE4OTAyZmI0NzI1
OGRhNjA2NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2
aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpbiBleHRyYSB6b29tIG1vZGUsIHRoZXJlJ3Mgbm8gd2F5IGZvciB3ZWIgcGFnZXMgdG8g
b3B0IG91dCBvZiB0aGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMKKyAgICAgICAgKG5hbWVs
eSwgbGF5aW5nIG91dCBhdCBhIGxhcmdlciB3aWR0aCBhbmQgc2hyaW5raW5nIHRvIGZpdCkgd2hl
biB0aGUgd2ViIHZpZXcgaXMgdmVyeSB0YWxsIGFuZCBuYXJyb3cuIFRoaXMKKyAgICAgICAgcGF0
Y2ggYWRkcyBhIG5ldyBleHBlcmltZW50YWwgdmlld3BvcnQgYXR0cmlidXRlLCAibWluLWRldmlj
ZS13aWR0aCIsIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJldmVudCBXZWJLaXQgZnJvbQorICAgICAg
ICBhdXRvbWF0aWNhbGx5IGNsYW1waW5nIHRoZSB3ZWIgdmlldyB3aWR0aCB0byBhIGdyZWF0ZXIg
dmFsdWUgZm9yIHRoZSBkZXZpY2Ugd2lkdGggaW4gdGhpcyBzY2VuYXJpby4KKworICAgICAgICBO
b3RlIHRoYXQgYWZ0ZXIgdGhpcyBwYXRjaCwgbG9naWMgdGhhdCBwbHVtYnMgYSBtaW5pbXVtTGF5
b3V0U2l6ZSBmcm9tIFdLV2ViVmlldyB0byB0aGUgdmlld3BvcnQgY29uZmlndXJhdGlvbgorICAg
ICAgICB3aWxsIG5lZWQgdG8gYmUgcmVuYW1lZCB0byByZWZsZWN0IHRoYXQgdGhpcyBzaXplIGlz
IG5vIGxvbmdlciB0aGUgbWluaW11bSBsYXlvdXQgc2l6ZSwgYnV0IHJhdGhlciwgdGhlIHZpZXcK
KyAgICAgICAgc2l6ZSB0aGF0IGlzIHVzZWQgZm9yIHZpZXdwb3J0IGRldmljZSBkaW1lbnNpb25z
IGJ5IGRlZmF1bHQuIFRoaXMgcmVmYWN0b3Jpbmcgd2lsbCBiZSBkb25lIGluIGEgZm9sbG93dXAg
cGFydC4KKworICAgICAgICBTZWUgcGVyLW1ldGhvZCBjb21tZW50cyBiZWxvdyBmb3IgbW9yZSBk
ZXRhaWwuCisKKyAgICAgICAgVGVzdDogZmFzdC92aWV3cG9ydC9leHRyYXpvb20vdmlld3BvcnQt
Y2hhbmdlLW1pbi1kZXZpY2Utd2lkdGguaHRtbAorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldFZpZXdwb3J0RmVhdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVu
dHMuaDoKKworICAgICAgICBSZW1vdmVzIGBtX2ZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0YCAo
bW9yZSBkZXRhaWwgYmVsb3cpLgorCisgICAgICAgICogcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZWRNaW5EZXZpY2VXaWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OlZpZXdwb3J0Q29uZmlndXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldE1pbmltdW1M
YXlvdXRTaXplKToKKworICAgICAgICBJbnN0ZWFkIG9mIGRpcmVjdGx5IHNldHRpbmcgdGhlIG1p
bmltdW0gbGF5b3V0IHNpemUsIHNldE1pbmltdW1MYXlvdXRTaXplIG5vdyBmaXJzdCBzZXRzIHRo
ZSB2aWV3IHNpemUgKGkuZS4gdGhlCisgICAgICAgIHNpemUgd2UgdXNlIGZvciBgZGV2aWNlLXdp
ZHRoYCBpbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcpLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBtaW5p
bXVtIGxheW91dCBzaXplLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lkdGggY29uc3QpOgor
CisgICAgICAgIFJlcGxhY2VzIGBtX2ZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0YC4gV2hldGhl
ciBvciBub3Qgd2Ugc2hyaW5rIHRvIGZpdCBpcyBub3cgZGV0ZXJtaW5lZCBieSB3aGV0aGVyIHRo
ZQorICAgICAgICBtaW4tZGV2aWNlLXdpZHRoIGF0dHJpYnV0ZSBpcyBhY3RpdmVseSBjbGFtcGlu
ZyB0aGUgd2lkdGggb2YgdGhlIHZpZXcuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxpbmdDb25zdHJhaW50cyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9y
ZVNjYWxpbmdDb25zdHJhaW50c1JlZ2FyZGxlc3NPZkNvbnRlbnRTaXplIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dXBkYXRlTWluaW11bUxheW91dFNp
emUpOgorCisgICAgICAgIENvbXB1dGVzIGFuZCBzZXRzIHRoZSBtaW5pbXVtIGxheW91dCBzaXpl
IHVzaW5nIHRoZSB2aWV3IHNpemUsIHRha2luZyB0aGUgbWluaW11bSBkZXZpY2Ugd2lkdGggaW50
byBhY2NvdW50IGlmCisgICAgICAgIG5lZWRlZC4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3Bv
cnRDb25maWd1cmF0aW9uOjpkZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpW
aWV3cG9ydENvbmZpZ3VyYXRpb246OnNldEZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oOgorCiAyMDE4LTA0
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBTT046IERv
bid0IGNyZWF0ZSBhIG5ldyBwcm9jZXNzIHdoZW4gbmF2aWdhdGluZyB0byBhIGJsb2IgVVJMLCBk
YXRhIFVSTCwgYW5kIGFib3V0OmJsYW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyNGM2NzMyMjI3MjFhM2QyYjgy
M2Y0OGM1NmNkMzc4NmVlNTJmZjAuLjQyZWFkMjYyMzc0YWJjMWRhN2Q3MjQ0OGExNjI2YjRhMDIw
ZTVhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTgtMDQtMjYgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0g
QWRkIGEgbWVjaGFuaXNtIHRvIG92ZXJyaWRlIGRlZmF1bHQgdmlld3BvcnQgYmVoYXZpb3JzIGlu
IGV4dHJhIHpvb20gbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTYyNDAzOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIGZv
cmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQgYW5kIG1pbmltdW1BbGxvd2VkTGF5b3V0
V2lkdGggU1BJIGhvb2tzIGZyb20gV2ViS2l0LCBhbmQKKyAgICAgICAgYWRkaXRpb25hbGx5IHJl
bW92ZSBhbGwgbG9naWMgZm9yIHBsdW1iaW5nIHZpZXdTaXplIHRvIFdlYkNvcmUuIFNlZSBXZWJD
b3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFNoYXJlZC9W
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8uaDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm86OmFsbG93U2hyaW5rVG9GaXQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6Zm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rp
c3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnJh
bWVPckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtTGF5
b3V0U2l6ZU92ZXJyaWRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2JlZ2luQW5pbWF0ZWRS
ZXNpemVXaXRoVXBkYXRlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmRBbmltYXRlZFJl
c2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGhd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtQWxsb3dlZExheW91
dFdpZHRoOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgYWN0aXZlTWluaW11bUxh
eW91dFNpemVzOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0
TWluaW11bUxheW91dFNpemU6dmlld1NpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0Rm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdDpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0
XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnVu
b2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2JzY3Vy
ZWRJbnNldHM6dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOmlucHV0Vmlld0JvdW5kczpzY2FsZTpt
aW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFj
dGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1fY3JlZGVudGlhbHNNZXNzZW5nZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5
b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzKToKKwogMjAxOC0wNC0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBUaGUgc2VhcmNoIGZpZWxkIG9uIHd3dy5i
aW5nLmNvbSBpcyBtaXNzaW5nIGxhYmVsIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRB
cmd1bWVudHMuY3BwCmluZGV4IGVlMzI3ZTUzZmE3NDEwYzBiYzg4NmM3MzRlN2E1YzExMjM2OTNj
NGQuLjcxYTNjNWRmMDQyMzM3ZTdjOTVhY2M1ZWVmNTI4NDQxYThkYmM3MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtNDIwLDYgKzQyMCw4IEBAIHZvaWQg
c2V0Vmlld3BvcnRGZWF0dXJlKFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMsIERvY3VtZW50
JiBkb2N1bWVudCwgU3RyaW5nCiAgICAgICAgIGFyZ3VtZW50cy5zaHJpbmtUb0ZpdCA9IGZpbmRC
b29sZWFuVmFsdWUoZG9jdW1lbnQsIGtleSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleSwgInZpZXdwb3J0LWZpdCIpICYmIGRvY3VtZW50LnNl
dHRpbmdzKCkudmlld3BvcnRGaXRFbmFibGVkKCkpCiAgICAgICAgIGFyZ3VtZW50cy52aWV3cG9y
dEZpdCA9IHBhcnNlVmlld3BvcnRGaXRWYWx1ZShkb2N1bWVudCwga2V5LCB2YWx1ZSk7CisgICAg
ZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoa2V5LCAibWluLWRldmljZS13
aWR0aCIpKQorICAgICAgICBhcmd1bWVudHMubWluRGV2aWNlV2lkdGggPSBudW1lcmljUHJlZml4
KGRvY3VtZW50LCBrZXksIHZhbHVlKTsKICAgICBlbHNlCiAgICAgICAgIHJlcG9ydFZpZXdwb3J0
V2FybmluZyhkb2N1bWVudCwgVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVudEtleUVycm9yLCBr
ZXkpOwogfQpAQCAtNDc1LDcgKzQ3Nyw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50CiB7CiAg
ICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwogCi0gICAgdHMgPDwg
IlxuIiA8PCBpbmRlbnQgPDwgIih3aWR0aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLndpZHRoIDw8
ICIsIG1pbldpZHRoICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluV2lkdGggPDwgIiwgbWF4V2lk
dGggIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5tYXhXaWR0aCA8PCAiKSI7CisgICAgdHMgPDwgIlxu
IiA8PCBpbmRlbnQgPDwgIih3aWR0aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLndpZHRoIDw8ICIs
IG1pbldpZHRoICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluV2lkdGggPDwgIiwgbWF4V2lkdGgg
IiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5tYXhXaWR0aCA8PCAiLCBtaW5EZXZpY2VXaWR0aCAiIDw8
IHZpZXdwb3J0QXJndW1lbnRzLm1pbkRldmljZVdpZHRoIDw8ICIpIjsKICAgICB0cyA8PCAiXG4i
IDw8IGluZGVudCA8PCAiKGhlaWdodCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLmhlaWdodCA8PCAi
LCBtaW5IZWlnaHQgIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5taW5IZWlnaHQgPDwgIiwgbWF4SGVp
Z2h0ICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWF4SGVpZ2h0IDw8ICIpIjsKICAgICB0cyA8PCAi
XG4iIDw8IGluZGVudCA8PCAiKHpvb20gIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy56b29tIDw8ICIs
IG1pblpvb20gIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5taW5ab29tIDw8ICIsIG1heFpvb20gIiA8
PCB2aWV3cG9ydEFyZ3VtZW50cy5tYXhab29tIDw8ICIpIjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmll
d3BvcnRBcmd1bWVudHMuaAppbmRleCA0ZjFhZmVhMzQwMDFiOGJiZDljMjZmYTIwYjFjMTY3ZGU3
OTU4MmZiLi40YThlOGNiZGY0MzNjZjM4ODcyNDhhNTI0ZDQ0YWYxMjJiMTY3YWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaApAQCAtOTMsNiArOTMsNyBAQCBzdHJ1Y3Qg
Vmlld3BvcnRBcmd1bWVudHMgewogICAgIGZsb2F0IHdpZHRoIHsgVmFsdWVBdXRvIH07CiAgICAg
ZmxvYXQgbWluV2lkdGggeyBWYWx1ZUF1dG8gfTsKICAgICBmbG9hdCBtYXhXaWR0aCB7IFZhbHVl
QXV0byB9OworICAgIGZsb2F0IG1pbkRldmljZVdpZHRoIHsgVmFsdWVBdXRvIH07CiAgICAgZmxv
YXQgaGVpZ2h0IHsgVmFsdWVBdXRvIH07CiAgICAgZmxvYXQgbWluSGVpZ2h0IHsgVmFsdWVBdXRv
IH07CiAgICAgZmxvYXQgbWF4SGVpZ2h0IHsgVmFsdWVBdXRvIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggZTRkZTc2ZjAwNDgxNDA5ZWM0
ZWMwMTMyODkwNTlhYWRiZmQ1OTRhMS4uYTFlYjRiN2EzNzdkOGM5ZTQ2ODlkYjE0NGRhMjY1MWVh
OWE3ZTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9u
LmNwcApAQCAtNDUsMTEgKzQ1LDIzIEBAIHN0YXRpYyBib29sIGNvbnN0cmFpbnRzQXJlQWxsUmVs
YXRpdmUoY29uc3QgVmlld3BvcnRDb25maWd1cmF0aW9uOjpQYXJhbWV0ZXJzJiBjCiB9CiAjZW5k
aWYKIAorc3RhdGljIGlubGluZSBmbG9hdCBjb21wdXRlZE1pbkRldmljZVdpZHRoKGZsb2F0IG1p
bkRldmljZVdpZHRoKQoreworICAgIGlmIChtaW5EZXZpY2VXaWR0aCAhPSBWaWV3cG9ydEFyZ3Vt
ZW50czo6VmFsdWVBdXRvKQorICAgICAgICByZXR1cm4gbWluRGV2aWNlV2lkdGg7CisKKyNpZiBF
TkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIHJldHVybiAzMjA7CisjZWxzZQorICAgIHJldHVy
biAwOworI2VuZGlmCit9CisKIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1
cmF0aW9uKCkKICAgICA6IG1fbWluaW11bUxheW91dFNpemUoMTAyNCwgNzY4KQorICAgICwgbV92
aWV3U2l6ZSgxMDI0LCA3NjgpCiAgICAgLCBtX2Nhbklnbm9yZVNjYWxpbmdDb25zdHJhaW50cyhm
YWxzZSkKICAgICAsIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGUoZmFsc2UpCi0gICAgLCBtX2Zv
cmNlSG9yaXpvbnRhbFNocmlua1RvRml0KGZhbHNlKQogewogICAgIC8vIFNldHVwIGEgcmVhc29u
YWJsZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdG8gYXZvaWQgY29tcHV0aW5nIGluZmluaXRlIHNj
YWxlL3NpemVzLgogICAgIC8vIFRob3NlIGFyZSB0aGUgb3JpZ2luYWwgaVBob25lIGNvbmZpZ3Vy
YXRpb24uCkBAIC04MywxNCArOTUsMTYgQEAgYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNl
dENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBjb250ZW50U2l6ZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldE1pbmltdW1MYXlvdXRTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgdmll
d1NpemUpCisvLyBGSVhNRTogVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0
U2l6ZSBpcyBubyBsb25nZXIgYW4gYWNjdXJhdGUgbmFtZSwgc2luY2UgdGhlIG1pbmltdW0gbGF5
b3V0IHNpemUKKy8vIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2l6ZSBvZiB0aGUgdmlldy4KK2Jv
b2wgVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9h
dFNpemUmIG1pbmltdW1MYXlvdXRTaXplKQogewotICAgIGlmIChtX21pbmltdW1MYXlvdXRTaXpl
ID09IG1pbmltdW1MYXlvdXRTaXplICYmIG1fdmlld1NpemUgPT0gdmlld1NpemUpCisgICAgaWYg
KG1fdmlld1NpemUgPT0gbWluaW11bUxheW91dFNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKLSAgICBtX3Zp
ZXdTaXplID0gdmlld1NpemU7CisgICAgbV92aWV3U2l6ZSA9IG1pbmltdW1MYXlvdXRTaXplOwog
CisgICAgdXBkYXRlTWluaW11bUxheW91dFNpemUoKTsKICAgICB1cGRhdGVDb25maWd1cmF0aW9u
KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMDIsMTYgKzExNiw5IEBAIGJvb2wgVmlld3Bv
cnRDb25maWd1cmF0aW9uOjpzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3Vt
ZW50cyYgdmlld3BvCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oVmlld3BvcnRzLCBzdHJlYW0gPDwg
IlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0Vmlld3BvcnRBcmd1bWVudHMgIiA8PCB2aWV3cG9y
dEFyZ3VtZW50cyk7CiAgICAgbV92aWV3cG9ydEFyZ3VtZW50cyA9IHZpZXdwb3J0QXJndW1lbnRz
OwotICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9v
bCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldEZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KGJv
b2wgZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpCi17Ci0gICAgaWYgKG1fZm9yY2VIb3Jpem9u
dGFsU2hyaW5rVG9GaXQgPT0gZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgPSBmb3JjZUhv
cml6b250YWxTaHJpbmtUb0ZpdDsKKyAgICB1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSgpOworICAg
IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMwLDEy
ICsxMzcsMTcgQEAgSW50U2l6ZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFNpemUoKSBj
b25zdAogICAgIHJldHVybiBJbnRTaXplKGxheW91dFdpZHRoKCksIGxheW91dEhlaWdodCgpKTsK
IH0KIAorYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZE92ZXJyaWRlRGV2aWNlV2lk
dGhXaXRoTWluRGV2aWNlV2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZXdTaXplLndp
ZHRoKCkgPCBjb21wdXRlZE1pbkRldmljZVdpZHRoKG1fdmlld3BvcnRBcmd1bWVudHMubWluRGV2
aWNlV2lkdGgpOworfQorCiBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3Jl
SG9yaXpvbnRhbFNjYWxpbmdDb25zdHJhaW50cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Nhbkln
bm9yZVNjYWxpbmdDb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpCisgICAgaWYgKHNob3VsZE92ZXJyaWRlRGV2
aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lkdGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCkKQEAgLTE3Myw3ICsxODUs
NyBAQCBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0
cmFpbnRzKCkgY29uc3QKIAogYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9y
ZVNjYWxpbmdDb25zdHJhaW50c1JlZ2FyZGxlc3NPZkNvbnRlbnRTaXplKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9jYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMgJiYgbV9mb3JjZUhvcml6b250
YWxTaHJpbmtUb0ZpdDsKKyAgICByZXR1cm4gbV9jYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMg
JiYgc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpOwogfQogCiBk
b3VibGUgVmlld3BvcnRDb25maWd1cmF0aW9uOjppbml0aWFsU2NhbGVGcm9tU2l6ZShkb3VibGUg
d2lkdGgsIGRvdWJsZSBoZWlnaHQsIGJvb2wgc2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRz
KSBjb25zdApAQCAtMzYxLDEzICszNzMsMjQgQEAgdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246
OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQogICAgICAgICBtX2NvbmZpZ3VyYXRpb24uYWxsb3dzVXNl
clNjYWxpbmcgPSBtX3ZpZXdwb3J0QXJndW1lbnRzLnVzZXJab29tICE9IDAuOwogCiAgICAgaWYg
KGJvb2xlYW5WaWV3cG9ydEFyZ3VtZW50SXNTZXQobV92aWV3cG9ydEFyZ3VtZW50cy5zaHJpbmtU
b0ZpdCkpCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCA9IG1fdmll
d3BvcnRBcmd1bWVudHMuc2hyaW5rVG9GaXQgIT0gMC47CisgICAgICAgIG1fY29uZmlndXJhdGlv
bi5hbGxvd3NTaHJpbmtUb0ZpdCA9IHNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2
aWNlV2lkdGgoKSB8fCBtX3ZpZXdwb3J0QXJndW1lbnRzLnNocmlua1RvRml0ICE9IDAuOwogCiAg
ICAgbV9jb25maWd1cmF0aW9uLmF2b2lkc1Vuc2FmZUFyZWEgPSBtX3ZpZXdwb3J0QXJndW1lbnRz
LnZpZXdwb3J0Rml0ICE9IFZpZXdwb3J0Rml0OjpDb3ZlcjsKIAogICAgIExPR19XSVRIX1NUUkVB
TShWaWV3cG9ydHMsIHN0cmVhbSA8PCAiVmlld3BvcnRDb25maWd1cmF0aW9uICIgPDwgdGhpcyA8
PCAiIHVwZGF0ZUNvbmZpZ3VyYXRpb24gIiA8PCAqdGhpcyA8PCAiIGdpdmVzIGluaXRpYWwgc2Nh
bGUgIiA8PCBpbml0aWFsU2NhbGUoKSA8PCAiIGJhc2VkIG9uIGNvbnRlbnRTaXplICIgPDwgbV9j
b250ZW50U2l6ZSA8PCAiIGFuZCBsYXlvdXQgc2l6ZSAiIDw8IGxheW91dFdpZHRoKCkgPDwgIngi
IDw8IGxheW91dEhlaWdodCgpKTsKIH0KIAordm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVw
ZGF0ZU1pbmltdW1MYXlvdXRTaXplKCkKK3sKKyAgICBpZiAoIW1fdmlld1NpemUud2lkdGgoKSB8
fCAhc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpKSB7CisgICAg
ICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtX3ZpZXdTaXplOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBtaW5EZXZpY2VXaWR0aCA9IGNvbXB1dGVkTWluRGV2aWNlV2lkdGgo
bV92aWV3cG9ydEFyZ3VtZW50cy5taW5EZXZpY2VXaWR0aCk7CisgICAgbV9taW5pbXVtTGF5b3V0
U2l6ZSA9IHsgbWluRGV2aWNlV2lkdGgsIHN0ZDo6cm91bmQobV92aWV3U2l6ZS5oZWlnaHQoKSAq
IChtaW5EZXZpY2VXaWR0aCAvIG1fdmlld1NpemUud2lkdGgoKSkpIH07Cit9CisKIGRvdWJsZSBW
aWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdwb3J0QXJndW1lbnRzTGVuZ3RoKGRvdWJsZSBsZW5n
dGgpIGNvbnN0CiB7CiAgICAgaWYgKGxlbmd0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVE
ZXZpY2VXaWR0aCkKQEAgLTUwOSw3ICs1MzIsNiBAQCBTdHJpbmcgVmlld3BvcnRDb25maWd1cmF0
aW9uOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgdHMuZHVtcFByb3BlcnR5KCJpZ25vcmluZyBo
b3Jpem9udGFsIHNjYWxpbmcgY29uc3RyYWludHMiLCBzaG91bGRJZ25vcmVIb3Jpem9udGFsU2Nh
bGluZ0NvbnN0cmFpbnRzKCkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICB0cy5kdW1wUHJvcGVy
dHkoImlnbm9yaW5nIHZlcnRpY2FsIHNjYWxpbmcgY29uc3RyYWludHMiLCBzaG91bGRJZ25vcmVW
ZXJ0aWNhbFNjYWxpbmdDb25zdHJhaW50cygpID8gInRydWUiIDogImZhbHNlIik7CiAgICAgdHMu
ZHVtcFByb3BlcnR5KCJhdm9pZHMgdW5zYWZlIGFyZWEiLCBhdm9pZHNVbnNhZmVBcmVhKCkgPyAi
dHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICB0cy5kdW1wUHJvcGVydHkoImZvcmNlIGhvcml6b250YWwg
c2hyaW5rIHRvIGZpdCIsIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgPyAidHJ1ZSIgOiAi
ZmFsc2UiKTsKICAgICAKICAgICB0cy5lbmRHcm91cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaAppbmRleCA5ZWM2ODkzYTUyZGRmY2MyY2YxYTkzOTJi
NGFhM2QxM2I4MTExNjJiLi5kNmE1MGNhNDVjMTAwNjI5OTdkODJmNWI3NzQwM2NhZWU3NGJlOTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKQEAgLTc3
LDEyICs3NywxMiBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHZpZXdTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3U2l6ZTsgfQogCiAgICAgY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bUxheW91dFNpemU7IH0KLSAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldE1pbmltdW1MYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0
IEZsb2F0U2l6ZSYgdmlld1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0TWluaW11
bUxheW91dFNpemUoY29uc3QgRmxvYXRTaXplJik7CiAKICAgICBjb25zdCBWaWV3cG9ydEFyZ3Vt
ZW50cyYgdmlld3BvcnRBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0QXJndW1l
bnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25z
dCBWaWV3cG9ydEFyZ3VtZW50cyYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb3Jj
ZUhvcml6b250YWxTaHJpbmtUb0ZpdChib29sKTsKKyAgICBib29sIHNob3VsZE92ZXJyaWRlRGV2
aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lkdGgoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2V0Q2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0
Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCBmb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSkgeyBt
X2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlID0gZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7IH0KQEAg
LTEyMSw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkSWdub3JlVmVydGljYWxT
Y2FsaW5nQ29uc3RyYWludHMoKSBjb25zdDsKICAgICBib29sIHNob3VsZElnbm9yZUhvcml6b250
YWxTY2FsaW5nQ29uc3RyYWludHMoKSBjb25zdDsKIAorICAgIHZvaWQgdXBkYXRlTWluaW11bUxh
eW91dFNpemUoKTsKKwogICAgIFBhcmFtZXRlcnMgbV9jb25maWd1cmF0aW9uOwogICAgIFBhcmFt
ZXRlcnMgbV9kZWZhdWx0Q29uZmlndXJhdGlvbjsKICAgICBJbnRTaXplIG1fY29udGVudFNpemU7
CkBAIC0xMzAsNyArMTMyLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9jYW5JZ25vcmVTY2Fs
aW5nQ29uc3RyYWludHM7CiAgICAgYm9vbCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOwotICAg
IGJvb2wgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdDsKIH07CiAKIFdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBWaWV3cG9ydENvbmZpZ3VyYXRp
b246OlBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5kZXggODE4NWJjYTRkMjBkZGQ5NjY4YmE2OGQz
YWJhYjY4MjUzZGNiY2U1YS4uMDQxNTBjMWMwODg5MTJiMzUyOGJlNTc5NzczYzJkOTUzMWY5NTE3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5jcHAKQEAgLTUzLDcgKzUzLDYgQEAgdm9pZCBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemU7CiAgICAgZW5jb2RlciA8PCBtX2lz
Q2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7CiAgICAgZW5jb2RlciA8PCBtX2Fs
bG93U2hyaW5rVG9GaXQ7Ci0gICAgZW5jb2RlciA8PCBtX2ZvcmNlSG9yaXpvbnRhbFNocmlua1Rv
Rml0OwogICAgIGVuY29kZXIgPDwgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsK
IH0KIApAQCAtOTMsOCArOTIsNiBAQCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UgogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9hbGxvd1Nocmlu
a1RvRml0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpKQotICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9lbmNsb3NlZEluU2Nyb2xsYWJs
ZUFuY2VzdG9yVmlldykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTM0LDcgKzEzMSw2
IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8mIGluZm8pCiAKICAgICB0cy5kdW1wUHJvcGVydHkoInRpbWVz
dGFtcCIsIGluZm8udGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKICAg
ICB0cy5kdW1wUHJvcGVydHkoImFsbG93U2hyaW5rVG9GaXQiLCBpbmZvLmFsbG93U2hyaW5rVG9G
aXQoKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJmb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCIs
IGluZm8uZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQoKSk7CiAgICAgaWYgKGluZm8uaG9yaXpv
bnRhbFZlbG9jaXR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbFZlbG9j
aXR5IiwgaW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKSk7CiAgICAgaWYgKGluZm8udmVydGljYWxW
ZWxvY2l0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5oCmluZGV4IGQyMmFiYWFmODMwMTYxNTY1ZGM3MTM0OWVkYTUyZDQxNDNi
MWIyMTIuLjVmMDdjMmI4YTg1OTcwYzZjMmVhZDU0MmFlYjljODcwNDQ3ZWVmYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyB7CiBw
dWJsaWM6CiAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbygpID0gZGVmYXVsdDsKIAot
ICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwg
Ym9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVk
SW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlua1RvRml0LCBib29sIGZvcmNlSG9y
aXpvbnRhbFNocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3
LCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91
YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8oY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmll
d0JvdW5kcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVj
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUg
c2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1Np
emUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxv
d1Nocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZl
cnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXll
clRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICA6IG1fZXhwb3NlZENvbnRlbnRSZWN0KGV4cG9z
ZWRDb250ZW50UmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50UmVjdCh1bm9ic2N1
cmVkQ29udGVudFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0
aW5nSW5wdXRWaWV3Qm91bmRzKHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZp
ZXdCb3VuZHMpCkBAIC02Myw3ICs2Myw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2lzRmlyc3RV
cGRhdGVGb3JOZXdWaWV3U2l6ZShpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUpCiAgICAgICAg
ICwgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KGlzQ2hhbmdpbmdPYnNj
dXJlZEluc2V0c0ludGVyYWN0aXZlbHkpCiAgICAgICAgICwgbV9hbGxvd1Nocmlua1RvRml0KGFs
bG93U2hyaW5rVG9GaXQpCi0gICAgICAgICwgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdChm
b3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCkKICAgICAgICAgLCBtX2VuY2xvc2VkSW5TY3JvbGxh
YmxlQW5jZXN0b3JWaWV3KGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KQogICAgIHsK
ICAgICB9CkBAIC04MSw3ICs4MCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmlyc3RVcGRhdGVG
b3JOZXdWaWV3U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdT
aXplOyB9CiAgICAgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OyB9
CiAgICAgYm9vbCBhbGxvd1Nocmlua1RvRml0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1Nocmlu
a1RvRml0OyB9Ci0gICAgYm9vbCBmb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQ7IH0KICAgICBib29sIGVuY2xvc2Vk
SW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Ny
b2xsYWJsZUFuY2VzdG9yVmlldzsgfQogCiAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQpAQCAtMTE0LDcgKzExMiw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9hbGxvd1Nocmlua1RvRml0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fZm9yY2VI
b3Jpem9udGFsU2hyaW5rVG9GaXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmNsb3NlZEluU2Ny
b2xsYWJsZUFuY2VzdG9yVmlldyB7IGZhbHNlIH07CiB9OwogCkBAIC0xMzMsNyArMTMwLDYgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
JiBhLCBjb25zdCBWaXNpYmxlQ29udGUKICAgICAgICAgJiYgYS5pblN0YWJsZVN0YXRlKCkgPT0g
Yi5pblN0YWJsZVN0YXRlKCkKICAgICAgICAgJiYgYS5pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1Np
emUoKSA9PSBiLmlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSgpCiAgICAgICAgICYmIGEuYWxs
b3dTaHJpbmtUb0ZpdCgpID09IGIuYWxsb3dTaHJpbmtUb0ZpdCgpCi0gICAgICAgICYmIGEuZm9y
Y2VIb3Jpem9udGFsU2hyaW5rVG9GaXQoKSA9PSBiLmZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0
KCkKICAgICAgICAgJiYgYS5lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpID09IGIu
ZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOGVhNDM3ZmFmYmNlZGZh
NjZhMTgzMDEzNzU5ZjJhMDkzZjA1YmUzYi4uNGExNmU2ZDNiYjdhMDM1NDVjNmFjOGRiYWRlOTQ3
YjhlZjE5M2ZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC0xODEsMTEgKzE4MSw2IEBAIGVudW0gY2xhc3MgRHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZSB7CiAgICAgUmVzaXppbmdXaXRoRG9jdW1lbnRIaWRkZW4sCiB9OwogCi1zdHJ1
Y3QgQWN0aXZlVmlld3BvcnRMYXlvdXRTaXplcyB7Ci0gICAgV2ViQ29yZTo6RmxvYXRTaXplIG1p
bmltdW1MYXlvdXRTaXplOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3U2l6ZTsKLX07Ci0K
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zMTEsOCAr
MzA2LDYgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyB7CiAgICAgc3RkOjpvcHRpb25hbDxp
bnQzMl90PiBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbjsKIAogICAgIEJPT0wgX2FsbG93c1Zp
ZXdwb3J0U2hyaW5rVG9GaXQ7Ci0gICAgQk9PTCBfZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJp
bmtUb0ZpdDsKLSAgICBDR0Zsb2F0IF9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoOwogCiAgICAg
Qk9PTCBfaGFzQ29tbWl0dGVkTG9hZEZvck1haW5GcmFtZTsKICAgICBCT09MIF9uZWVkc1Jlc2V0
Vmlld1N0YXRlQWZ0ZXJDb21taXRMb2FkRm9yTWFpbkZyYW1lOwpAQCAtNzM0LDEzICs3MjcsOSBA
QCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIF9kcmFnSW50ZXJh
Y3Rpb25Qb2xpY3kgPSBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3lEZWZhdWx0OwogI2lmIEVOQUJM
RShFWFRSQV9aT09NX01PREUpCi0gICAgX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGggPSAzMjA7
CiAgICAgX2FsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQgPSBZRVM7Ci0gICAgX2ZvcmNlSG9yaXpv
bnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQgPSBZRVM7CiAjZWxzZQotICAgIF9taW5pbXVtQWxsb3dl
ZExheW91dFdpZHRoID0gMDsKICAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IE5POwot
ICAgIF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0ID0gTk87CiAjZW5kaWYKICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiB9CkBAIC0yNTc1LDQ2ICsyNTY0LDI1IEBAIC0gKFVJRWRn
ZUluc2V0cylfc2Nyb2xsVmlld1N5c3RlbUNvbnRlbnRJbnNldAogICAgIHJldHVybiBVSUVkZ2VJ
bnNldHNBZGQoW19zY3JvbGxWaWV3IF9jb250ZW50U2Nyb2xsSW5zZXRdLCBzZWxmLnNhZmVBcmVh
SW5zZXRzLCBbX3Njcm9sbFZpZXcgX2VkZ2VzQXBwbHlpbmdTYWZlQXJlYUluc2V0c1RvQ29udGVu
dEluc2V0XSk7CiB9CiAKLS0gKENHRmxvYXQpX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGgKLXsK
LSAgICByZXR1cm4gX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGg7Ci19Ci0KLS0gKHZvaWQpX3Nl
dE1pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGg6KENHRmxvYXQpbWluaW11bUFsbG93ZWRMYXlvdXRX
aWR0aAotewotICAgIGlmIChfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCA9PSBtaW5pbXVtQWxs
b3dlZExheW91dFdpZHRoKQotICAgICAgICByZXR1cm47Ci0KLSAgICBfbWluaW11bUFsbG93ZWRM
YXlvdXRXaWR0aCA9IG1pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGg7Ci0KLSAgICBhdXRvIHNpemVz
ID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemVzOnNlbGYuYm91bmRzXTsKLSAgICBbc2Vs
ZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpzaXplcy5taW5pbXVtTGF5b3V0U2l6ZSB2
aWV3U2l6ZTpzaXplcy52aWV3U2l6ZV07Ci19Ci0KLS0gKEFjdGl2ZVZpZXdwb3J0TGF5b3V0U2l6
ZXMpYWN0aXZlTWluaW11bUxheW91dFNpemVzOihjb25zdCBDR1JlY3QmKWJvdW5kcworLSAoV2Vi
Q29yZTo6RmxvYXRTaXplKWFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOihjb25zdCBDR1JlY3QmKWJv
dW5kcwogewogICAgIGlmIChfb3ZlcnJpZGVzTWluaW11bUxheW91dFNpemUpCi0gICAgICAgIHJl
dHVybiB7IFdlYkNvcmU6OkZsb2F0U2l6ZShfbWluaW11bUxheW91dFNpemVPdmVycmlkZSksIFdl
YkNvcmU6OkZsb2F0U2l6ZShfbWluaW11bUxheW91dFNpemVPdmVycmlkZSkgfTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZShfbWluaW11bUxheW91dFNpemVPdmVycmlkZSk7CiAK
LSAgICBBY3RpdmVWaWV3cG9ydExheW91dFNpemVzIHNpemVzOwogI2lmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMAotICAgIHNpemVzLnZpZXdTaXplID0gV2ViQ29y
ZTo6RmxvYXRTaXplKFVJRWRnZUluc2V0c0luc2V0UmVjdChDR1JlY3RNYWtlKDAsIDAsIGJvdW5k
cy5zaXplLndpZHRoLCBib3VuZHMuc2l6ZS5oZWlnaHQpLCBzZWxmLl9zY3JvbGxWaWV3U3lzdGVt
Q29udGVudEluc2V0KS5zaXplKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRTaXplKFVJRWRn
ZUluc2V0c0luc2V0UmVjdChDR1JlY3RNYWtlKDAsIDAsIGJvdW5kcy5zaXplLndpZHRoLCBib3Vu
ZHMuc2l6ZS5oZWlnaHQpLCBzZWxmLl9zY3JvbGxWaWV3U3lzdGVtQ29udGVudEluc2V0KS5zaXpl
KTsKICNlbHNlCi0gICAgc2l6ZXMudmlld1NpemUgPSBXZWJDb3JlOjpGbG9hdFNpemUgeyBib3Vu
ZHMuc2l6ZSB9OworICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUgeyBib3VuZHMuc2l6ZSB9
OwogI2VuZGlmCi0KLSAgICBhdXRvIGxheW91dFdpZHRoID0gc3RkOjptYXg8ZmxvYXQ+KHNpemVz
LnZpZXdTaXplLndpZHRoKCksIHNlbGYuX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGgpOwotICAg
IHNpemVzLm1pbmltdW1MYXlvdXRTaXplID0geyBsYXlvdXRXaWR0aCwgc2l6ZXMudmlld1NpemUu
aGVpZ2h0KCkgKiAobGF5b3V0V2lkdGggLyBzaXplcy52aWV3U2l6ZS53aWR0aCgpKSB9OwotICAg
IHJldHVybiBzaXplczsKIH0KIAotLSAodm9pZClfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6
ZTooV2ViQ29yZTo6RmxvYXRTaXplKW1pbmltdW1MYXlvdXRTaXplIHZpZXdTaXplOihXZWJDb3Jl
OjpGbG9hdFNpemUpdmlld1NpemUKKy0gKHZvaWQpX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNp
emU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltaW5pbXVtTGF5b3V0U2l6ZQogewogICAgIGlmIChfbGFz
dFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSAmJiBDR1NpemVFcXVhbFRvU2l6ZShfbGFzdFNlbnRNaW5p
bXVtTGF5b3V0U2l6ZS52YWx1ZSgpLCBtaW5pbXVtTGF5b3V0U2l6ZSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiLVtXS1dl
YlZpZXcgIiA8PCBfcGFnZS0+cGFnZUlEKCkgPDwgIiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0
U2l6ZTpdICIgPDwgbWluaW11bUxheW91dFNpemUgPDwgIiB2aWV3U2l6ZSAiIDw8IHZpZXdTaXpl
IDw8ICIgY29udGVudFpvb21TY2FsZSAiIDw8IGNvbnRlbnRab29tU2NhbGUoc2VsZikpOwotICAg
IF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVt
TGF5b3V0U2l6ZSwgdmlld1NpemUpOworICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMs
IHN0cmVhbSA8PCAiLVtXS1dlYlZpZXcgIiA8PCBfcGFnZS0+cGFnZUlEKCkgPDwgIiBfZGlzcGF0
Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpdICIgPDwgbWluaW11bUxheW91dFNpemUgPDwgIiBjb250
ZW50Wm9vbVNjYWxlICIgPDwgY29udGVudFpvb21TY2FsZShzZWxmKSk7CisgICAgX3BhZ2UtPnNl
dFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKG1pbmltdW1MYXlvdXRTaXpl
KTsKICAgICBfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSA9IG1pbmltdW1MYXlvdXRTaXplOwog
fQogCkBAIC0yNjQyLDEwICsyNjEwLDggQEAgLSAodm9pZClfZnJhbWVPckJvdW5kc0NoYW5nZWQK
ICAgICBbX3Njcm9sbFZpZXcgc2V0RnJhbWU6Ym91bmRzXTsKIAogICAgIGlmIChfZHluYW1pY1Zp
ZXdwb3J0VXBkYXRlTW9kZSA9PSBEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemlu
ZykgewotICAgICAgICBpZiAoIV9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkgewotICAgICAg
ICAgICAgYXV0byBzaXplcyA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplczpzZWxmLmJv
dW5kc107Ci0gICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpz
aXplcy5taW5pbXVtTGF5b3V0U2l6ZSB2aWV3U2l6ZTpzaXplcy52aWV3U2l6ZV07Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKCFfb3ZlcnJpZGVzTWluaW11bUxheW91dFNpemUpCisgICAgICAgICAg
ICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpbc2VsZiBhY3RpdmVNaW5pbXVt
TGF5b3V0U2l6ZTpzZWxmLmJvdW5kc11dOwogICAgICAgICBpZiAoIV9vdmVycmlkZXNNYXhpbXVt
VW5vYnNjdXJlZFNpemUpCiAgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKGJvdW5kcy5zaXplKV07CiAKQEAgLTUwMzEs
NyArNDk5Nyw3IEBAIC0gKHZvaWQpX3NldE1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGU6KENHU2l6
ZSltaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlCiAgICAgX21pbmltdW1MYXlvdXRTaXplT3ZlcnJp
ZGUgPSBtaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOwogCiAgICAgaWYgKF9keW5hbWljVmlld3Bv
cnRVcGRhdGVNb2RlID09IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQot
ICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9h
dFNpemUobWluaW11bUxheW91dFNpemVPdmVycmlkZSkgdmlld1NpemU6V2ViQ29yZTo6RmxvYXRT
aXplKG1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUpXTsKKyAgICAgICAgW3NlbGYgX2Rpc3BhdGNo
U2V0TWluaW11bUxheW91dFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXpl
T3ZlcnJpZGUpXTsKIAogfQogCkBAIC01MTM4LDIwICs1MTA0LDYgQEAgLSAodm9pZClfc2V0TWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSlzaXplCiAgICAgICAgIFtzZWxmIF9k
aXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoc2l6ZSld
OwogfQogCi0tICh2b2lkKV9zZXRGb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0OihC
T09MKWZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQKLXsKLSAgICBpZiAoX2ZvcmNl
SG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQgPT0gZm9yY2VIb3Jpem9udGFsVmlld3BvcnRT
aHJpbmtUb0ZpdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2ZvcmNlSG9yaXpvbnRhbFZpZXdw
b3J0U2hyaW5rVG9GaXQgPSBmb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0OwotICAg
IFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07Ci19Ci0KLS0gKEJPT0wp
X2ZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQKLXsKLSAgICByZXR1cm4gX2ZvcmNl
SG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci19Ci0KIC0gKHZvaWQpX3NldEFsbG93c1Zp
ZXdwb3J0U2hyaW5rVG9GaXQ6KEJPT0wpYWxsb3dTaHJpbmtUb0ZpdAogewogICAgIF9hbGxvd3NW
aWV3cG9ydFNocmlua1RvRml0ID0gYWxsb3dTaHJpbmtUb0ZpdDsKQEAgLTUxOTMsNyArNTE0NSw3
IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9p
ZCkpdXBkYXRlQmxvY2sKIAogICAgIF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID0gRHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZTo6UmVzaXppbmdXaXRoQW5pbWF0aW9uOwogCi0gICAgYXV0byBv
bGRTaXplcyA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplczpzZWxmLmJvdW5kc107Cisg
ICAgYXV0byBvbGRNaW5pbXVtTGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRT
aXplOnNlbGYuYm91bmRzXTsKICAgICBhdXRvIG9sZE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFj
dGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBvbGRCb3VuZHMpOwogICAgIGludDMyX3Qg
b2xkT3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRhdGlvbihzZWxmKTsKICAgICBVSUVkZ2VJbnNl
dHMgb2xkT2JzY3VyZWRJbnNldHMgPSBfb2JzY3VyZWRJbnNldHM7CkBAIC01MjAxLDE5ICs1MTUz
LDE5IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXiko
dm9pZCkpdXBkYXRlQmxvY2sKICAgICB1cGRhdGVCbG9jaygpOwogCiAgICAgQ0dSZWN0IG5ld0Jv
dW5kcyA9IHNlbGYuYm91bmRzOwotICAgIGF1dG8gbmV3U2l6ZXMgPSBbc2VsZiBhY3RpdmVNaW5p
bXVtTGF5b3V0U2l6ZXM6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1MYXlvdXRTaXpl
ID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemU6bmV3Qm91bmRzXTsKICAgICBhdXRvIG5l
d01heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxm
LCBuZXdCb3VuZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRh
dGlvbihzZWxmKTsKICAgICBVSUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMgPSBfb2JzY3Vy
ZWRJbnNldHM7CiAgICAgQ0dSZWN0IGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0
ZXMgPSBVSUVkZ2VJbnNldHNJbnNldFJlY3QobmV3Qm91bmRzLCBfb2JzY3VyZWRJbnNldHMpOwog
ICAgIENHUmVjdCBjb250ZW50Vmlld0JvdW5kcyA9IFtfY29udGVudFZpZXcgYm91bmRzXTsKIAot
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIShfb3ZlcnJpZGVzTWluaW11bUxheW91dFNpemUgJiYg
bmV3U2l6ZXMubWluaW11bUxheW91dFNpemUuaXNFbXB0eSgpKSwgIkNsaWVudHMgY29udHJvbGxp
bmcgdGhlIGxheW91dCBzaXplIHNob3VsZCBtYWludGFpbiBhIHZhbGlkIGxheW91dCBzaXplIHRv
IG1pbmltaXplIGxheW91dHMuIik7Ci0gICAgaWYgKENHUmVjdElzRW1wdHkobmV3Qm91bmRzKSB8
fCBuZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgQ0dSZWN0SXNFbXB0eShm
dXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzKSB8fCBDR1JlY3RJc0VtcHR5KGNv
bnRlbnRWaWV3Qm91bmRzKSkgeworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIShfb3ZlcnJpZGVz
TWluaW11bUxheW91dFNpemUgJiYgbmV3TWluaW11bUxheW91dFNpemUuaXNFbXB0eSgpKSwgIkNs
aWVudHMgY29udHJvbGxpbmcgdGhlIGxheW91dCBzaXplIHNob3VsZCBtYWludGFpbiBhIHZhbGlk
IGxheW91dCBzaXplIHRvIG1pbmltaXplIGxheW91dHMuIik7CisgICAgaWYgKENHUmVjdElzRW1w
dHkobmV3Qm91bmRzKSB8fCBuZXdNaW5pbXVtTGF5b3V0U2l6ZS5pc0VtcHR5KCkgfHwgQ0dSZWN0
SXNFbXB0eShmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzKSB8fCBDR1JlY3RJ
c0VtcHR5KGNvbnRlbnRWaWV3Qm91bmRzKSkgewogICAgICAgICBfZHluYW1pY1ZpZXdwb3J0VXBk
YXRlTW9kZSA9IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nOwogICAgICAg
ICBbc2VsZiBfZnJhbWVPckJvdW5kc0NoYW5nZWRdOwogICAgICAgICBpZiAoX292ZXJyaWRlc01p
bmltdW1MYXlvdXRTaXplKQotICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bUxh
eW91dFNpemU6bmV3U2l6ZXMubWluaW11bUxheW91dFNpemUgdmlld1NpemU6bmV3U2l6ZXMudmll
d1NpemVdOworICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6
bmV3TWluaW11bUxheW91dFNpemVdOwogICAgICAgICBpZiAoX292ZXJyaWRlc01heGltdW1Vbm9i
c2N1cmVkU2l6ZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1
cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAg
ICAgICAgIGlmIChfb3ZlcnJpZGVzSW50ZXJmYWNlT3JpZW50YXRpb24pCkBAIC01MjI0LDcgKzUx
NzYsNyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4p
KHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgfQogCiAgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KG9s
ZEJvdW5kcywgbmV3Qm91bmRzKQotICAgICAgICAmJiBvbGRTaXplcy5taW5pbXVtTGF5b3V0U2l6
ZSA9PSBuZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZQorICAgICAgICAmJiBvbGRNaW5pbXVtTGF5
b3V0U2l6ZSA9PSBuZXdNaW5pbXVtTGF5b3V0U2l6ZQogICAgICAgICAmJiBvbGRNYXhpbXVtVW5v
YnNjdXJlZFNpemUgPT0gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplCiAgICAgICAgICYmIG9sZE9y
aWVudGF0aW9uID09IG5ld09yaWVudGF0aW9uCiAgICAgICAgICYmIFVJRWRnZUluc2V0c0VxdWFs
VG9FZGdlSW5zZXRzKG9sZE9ic2N1cmVkSW5zZXRzLCBuZXdPYnNjdXJlZEluc2V0cykpIHsKQEAg
LTUyNDQsMTMgKzUxOTYsMTMgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRh
dGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogICAgIFtfcmVzaXplQW5pbWF0aW9uVmll
dyBhZGRTdWJ2aWV3OltfY29udGVudFZpZXcgdW5zY2FsZWRWaWV3XV07CiAKICAgICBDR1NpemUg
Y29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMgPSBjb250ZW50Vmlld0JvdW5kcy5z
aXplOwotICAgIFtfc2Nyb2xsVmlldyBzZXRNaW5pbXVtWm9vbVNjYWxlOnN0ZDo6bWluKG5ld1Np
emVzLm1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBjb250ZW50U2l6ZUluQ29udGVudFZpZXdD
b29yZGluYXRlcy53aWR0aCwgW19zY3JvbGxWaWV3IG1pbmltdW1ab29tU2NhbGVdKV07Ci0gICAg
W19zY3JvbGxWaWV3IHNldE1heGltdW1ab29tU2NhbGU6c3RkOjptYXgobmV3U2l6ZXMubWluaW11
bUxheW91dFNpemUud2lkdGgoKSAvIGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVz
LndpZHRoLCBbX3Njcm9sbFZpZXcgbWF4aW11bVpvb21TY2FsZV0pXTsKKyAgICBbX3Njcm9sbFZp
ZXcgc2V0TWluaW11bVpvb21TY2FsZTpzdGQ6Om1pbihuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0
aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xs
VmlldyBtaW5pbXVtWm9vbVNjYWxlXSldOworICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9v
bVNjYWxlOnN0ZDo6bWF4KG5ld01pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBjb250ZW50U2l6
ZUluQ29udGVudFZpZXdDb29yZGluYXRlcy53aWR0aCwgW19zY3JvbGxWaWV3IG1heGltdW1ab29t
U2NhbGVdKV07CiAKICAgICAvLyBDb21wdXRlIHRoZSBuZXcgc2NhbGUgdG8ga2VlcCB0aGUgY3Vy
cmVudCBjb250ZW50IHdpZHRoIGluIHRoZSBzY3JvbGx2aWV3LgogICAgIENHRmxvYXQgb2xkV2Vi
Vmlld1dpZHRoSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzID0gb2xkVW5vYnNjdXJlZENvbnRlbnRS
ZWN0LndpZHRoKCk7CiAgICAgQ0dGbG9hdCB2aXNpYmxlQ29udGVudFZpZXdXaWR0aEluQ29udGVu
dENvb3JkaW5hdGVzID0gc3RkOjptaW4oY29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0
ZXMud2lkdGgsIG9sZFdlYlZpZXdXaWR0aEluQ29udGVudFZpZXdDb29yZGluYXRlcyk7Ci0gICAg
Q0dGbG9hdCB0YXJnZXRTY2FsZSA9IG5ld1NpemVzLm1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkg
LyB2aXNpYmxlQ29udGVudFZpZXdXaWR0aEluQ29udGVudENvb3JkaW5hdGVzOworICAgIENHRmxv
YXQgdGFyZ2V0U2NhbGUgPSBuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gdmlzaWJsZUNv
bnRlbnRWaWV3V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlczsKICAgICBDR0Zsb2F0IHJlc2l6ZUFu
aW1hdGlvblZpZXdBbmltYXRpb25TY2FsZSA9IHRhcmdldFNjYWxlIC8gY29udGVudFpvb21TY2Fs
ZShzZWxmKTsKICAgICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgc2V0VHJhbnNmb3JtOkNHQWZmaW5l
VHJhbnNmb3JtTWFrZVNjYWxlKHJlc2l6ZUFuaW1hdGlvblZpZXdBbmltYXRpb25TY2FsZSwgcmVz
aXplQW5pbWF0aW9uVmlld0FuaW1hdGlvblNjYWxlKV07CiAKQEAgLTUyOTAsMTEgKzUyNDIsMTEg
QEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lk
KSl1cGRhdGVCbG9jawogICAgIFVJRWRnZUluc2V0cyB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMg
PSBbc2VsZiBfY29tcHV0ZWRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldF07CiAgICAgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50KHVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cy50b3AsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5yaWdodCwgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLmJvdHRvbSwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLmxlZnQp
OwogCi0gICAgX2xhc3RTZW50TWluaW11bUxheW91dFNpemUgPSBuZXdTaXplcy5taW5pbXVtTGF5
b3V0U2l6ZTsKKyAgICBfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSA9IG5ld01pbmltdW1MYXlv
dXRTaXplOwogICAgIF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IG5ld01heGltdW1V
bm9ic2N1cmVkU2l6ZTsKICAgICBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IG5ld09yaWVu
dGF0aW9uOwogCi0gICAgX3BhZ2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobmV3U2l6ZXMu
bWluaW11bUxheW91dFNpemUsIG5ld1NpemVzLnZpZXdTaXplLCBuZXdNYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMs
IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVudGF0
aW9uKTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdNaW5pbXVtTGF5
b3V0U2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdEluQ29udGVudENv
b3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9i
c2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRl
bnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbik7CiAgICAgaWYgKFdlYktpdDo6RHJhd2lu
Z0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAg
ZHJhd2luZ0FyZWEtPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3VuZHMuc2l6ZSkpOwog
fQpAQCAtNTM1OSwxMiArNTMxMSwxMiBAQCAtICh2b2lkKV9lbmRBbmltYXRlZFJlc2l6ZQogICAg
IFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07CiAKICAgICBDR1JlY3Qg
bmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7Ci0gICAgYXV0byBuZXdTaXplcyA9IFtzZWxmIGFjdGl2
ZU1pbmltdW1MYXlvdXRTaXplczpuZXdCb3VuZHNdOworICAgIGF1dG8gbmV3TWluaW11bUxheW91
dFNpemUgPSBbc2VsZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTpuZXdCb3VuZHNdOwogICAgIGF1
dG8gbmV3TWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXpl
KHNlbGYsIG5ld0JvdW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9y
aWVudGF0aW9uKHNlbGYpOwogCi0gICAgaWYgKCFfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSB8
fCBuZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZSAhPSBfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6
ZS52YWx1ZSgpKQotICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpu
ZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZSB2aWV3U2l6ZTpuZXdTaXplcy52aWV3U2l6ZV07Cisg
ICAgaWYgKCFfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSB8fCBuZXdNaW5pbXVtTGF5b3V0U2l6
ZSAhPSBfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZS52YWx1ZSgpKQorICAgICAgICBbc2VsZiBf
ZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpuZXdNaW5pbXVtTGF5b3V0U2l6ZV07CiAgICAg
aWYgKCFfbGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgfHwgbmV3TWF4aW11bVVub2JzY3Vy
ZWRTaXplICE9IF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZS52YWx1ZSgpKQogICAgICAg
ICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRT
aXplKG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgIGlmICghX2xhc3RTZW50RGV2aWNl
T3JpZW50YXRpb24gfHwgbmV3T3JpZW50YXRpb24gIT0gX2xhc3RTZW50RGV2aWNlT3JpZW50YXRp
b24udmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDhmMjkzZjgzNzIwOTllMjFmMTMxNjkwZWE3MzYyZjRm
MmZhMTM0MTAuLjcwN2RmOTIxN2JjZGY0NzFiMTgwMGNhOTFlZjNjYTM2MjY3YTgwODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaApAQCAtMjA0LDggKzIwNCw2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tSZWN0RWRnZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW50ZXJmYWNl
T3JpZW50YXRpb25PdmVycmlkZTopIFVJSW50ZXJmYWNlT3JpZW50YXRpb24gX2ludGVyZmFjZU9y
aWVudGF0aW9uT3ZlcnJpZGU7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFs
bG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ6KSBCT09MIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Rm9yY2VIb3Jpem9udGFsVmlld3Bv
cnRTaHJpbmtUb0ZpdDopIEJPT0wgX2ZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDopIENHRmxvYXQgX21pbmltdW1B
bGxvd2VkTGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAv
LyBGSVhNRTogUmVtb3ZlIHRoZXNlIHRocmVlIHByb3BlcnRpZXMgb25jZSB3ZSBleHBvc2UgV0tX
ZWJWaWV3Q29udGVudFByb3ZpZGVyIGFzIEFQSS4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgZ2V0dGVyPV9pc0Rpc3BsYXlpbmdQREYpIEJPT0wgX2Rpc3BsYXlpbmdQREY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1NjBiODgzODU4MzAwYmEy
MmQ2NTNhNDQzMmI5YjI2Y2IwN2VlOTMzLi40N2IxZWQ2NGY5MmZjN2Q3YWFiMzM1ODIyMWEyOTJi
ODBkZjQ0ZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTYwNTksNyArNjA1OSw2IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMubWltZVR5cGVzV2l0aEN1c3Rv
bUNvbnRlbnRQcm92aWRlcnMgPSBtX3BhZ2VDbGllbnQubWltZVR5cGVzV2l0aEN1c3RvbUNvbnRl
bnRQcm92aWRlcnMoKTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
ID0gbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsKICAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29u
ZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5p
bXVtTGF5b3V0U2l6ZTsKLSAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdT
aXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZTsKICAgICBwYXJhbWV0ZXJzLm1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSA9IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjEyMzI1YTY2YWZkYWIx
Y2M2ZTMzZGU2NWY2NmExNGUxYzJkNmQ2Zi4uODA3MDA1MDM3MzFiMDI2N2UzNzc3MzA5YzZkZGI0
OTJjMzJiYTVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU0
NSwxMCArNTQ1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0
U2Nyb2xsKCk7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpOwogCi0gICAg
dm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
bWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld1NpemUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFy
Z2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pOworICAgIHZvaWQgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91
YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKTsKICAgICB2b2lkIHN5
bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCk7CiAKLSAgICB2b2lkIHNldFZpZXdwb3J0
Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld1NpemUpOworICAgIHZvaWQgc2V0Vmlld3Bv
cnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
Jik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKICAgICBp
bnQzMl90IGRldmljZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRh
dGlvbjsgfQpAQCAtMjEzMiw3ICsyMTMyLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Tm9kZUFzc2lzdGFuY2VBcmd1bWVudHM+IG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3Vt
ZW50czsKICAgICBib29sIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGUgeyBmYWxzZSB9OwogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRT
aXplOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdT
aXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmlu
ZGV4IDBmYTA3ODgxZGNjMjJiMjA5Y2QyMzBhM2YyNDJlMmFjNTdhMzU4NDAuLmQwY2JkZTFhOWFk
OTU5NjU1ZDJlZDQxN2E5ZjhmODNkMjcyYjBkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC00MDIsNyArNDAyLDYgQEAgLSAodm9pZClkaWRV
cGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgICAgICBfc2l6
ZUNoYW5nZWRTaW5jZUxhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUsCiAgICAgICAgIGlzQ2hh
bmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksCiAgICAgICAgIF93ZWJWaWV3Ll9hbGxv
d3NWaWV3cG9ydFNocmlua1RvRml0LAotICAgICAgICBfd2ViVmlldy5fZm9yY2VIb3Jpem9udGFs
Vmlld3BvcnRTaHJpbmtUb0ZpdCwKICAgICAgICAgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcsCiAgICAgICAgIHRpbWVzdGFtcCwKICAgICAgICAgdmVsb2NpdHlEYXRhLmhvcml6b250
YWxWZWxvY2l0eSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCmluZGV4IDQ5ZTdjNDM2N2E4YTVlM2E1YzA3ODhhYmUwZjlhN2UwOGQwNDY0MWEuLmY1
MGFiMmMyNjI1ZWM4NjVmZmJjOTFkZjgxNzc3ZTY4NDgxZTgyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzA1LDcgKzMwNSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpCiAgICAgbV9w
YWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11
bUxheW91dFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4
cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5z
ZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUm
IG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQogewogICAgIGlmICghaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm47CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6
ZSwKIAogICAgIG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JUYXJnZXQgPSB0
cnVlOwogICAgIG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JMYXllclRyZWVD
b21taXQgPSB0cnVlOwotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShtaW5pbXVtTGF5b3V0U2l6ZSwgdmlld1NpemUsIG1heGlt
dW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0YXJnZXRVbm9ic2N1
cmVkUmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgdW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzLCB0YXJnZXRTY2FsZSwgZGV2aWNlT3JpZW50YXRpb24sICsr
bV9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKSwgbV9wYWdlSUQpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZShtaW5pbXVtTGF5b3V0U2l6ZSwgbWF4aW11bVVub2JzY3VyZWRTaXplLCB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdElu
U2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIHRhcmdldFNj
YWxlLCBkZXZpY2VPcmllbnRhdGlvbiwgKyttX2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlSUQpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzeW5jaHJvbml6ZUR5
bmFtaWNWaWV3cG9ydFVwZGF0ZSgpCkBAIC0zNTQsMTMgKzM1NCwxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoKQogICAgIG1fZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JMYXllclRyZWVDb21taXQgPSBmYWxzZTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRT
aXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiB2aWV3U2l6ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiB7CiAg
ICAgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSA9IHNpemU7Ci0gICAg
bV92aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZSA9IHZpZXdTaXplOwogCiAgICAgaWYgKGlz
VmFsaWQoKSkKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShzaXplLCB2aWV3U2l6ZSksIG1f
cGFnZUlEKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShzaXplKSwgbV9wYWdlSUQpOwog
fQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCB1
c2VyU2NhbGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGEwZGE3MTJiNTRkNDVmYjAyMTAxM2IwY2YwODMyMDVkY2RiNTViM2UuLmZiNDQw
MmE0ZjJmODMxZGQzYjY3YjM3YTlhZmI0ZjRiMjJkMzAwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MTIsNyArNjEyLDcgQEAgV2ViUGFn
ZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgc2V0Vmlld3BvcnRD
b25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZSwgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25W
aWV3U2l6ZSk7CisgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUo
cGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSk7CiAgICAg
c2V0TWF4aW11bVVub2JzY3VyZWRTaXplKHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXpl
KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IGJmNWY2OGMzODA2MjVlZTlmMWVlOTQ5YzMxYjFlYmNmMzczYTQ2ZWYuLmVhNjUyZmY1
ZjMyYTdiZThlNzFkMTYyZTVlNGU1N2FhMTdkZjg4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg3NSwxMCArODc1LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2Up
OwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
TWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB2aWV3U2l6ZSk7CisgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lk
IHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAg
ICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwotICAgIHZvaWQgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQz
Ml90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
SUQpOworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBv
c2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdl
dFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9y
aWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIHZv
aWQgc3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoZG91YmxlJiBuZXdUYXJnZXRTY2Fs
ZSwgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90JiBuZXh0
VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklEKTsKICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBz
Y2FsZUZyb21VSVByb2Nlc3MoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvJiwgTW9ub3RvbmljVGltZSBvbGRlc3RUaW1lc3RhbXApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KaW5kZXggNmRlZjNiMDVhZDE1MjVmYWVlOGQ2YjQyMjNlNWNlYWVhYmY4OWI3ZS4uZDJjNjg0
ZDdmMmYwZjk3YTdiNDFlOTgzZDViMmY0NWNkMGY4YmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MSwxMCAr
NDEsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgS2V5RXZl
bnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGV2ZW50KQogICAgIE1vdXNlRXZlbnQoV2ViS2l0
OjpXZWJNb3VzZUV2ZW50IGV2ZW50KQogI2lmIFBMQVRGT1JNKElPUykKLSAgICBTZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwg
V2ViQ29yZTo6RmxvYXRTaXplIHZpZXdTaXplKQorICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlv
bk1pbmltdW1MYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldE1heGlt
dW1Vbm9ic2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXREZXZpY2VP
cmllbnRhdGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQotICAgIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1MYXlvdXRTaXplLCBXZWJDb3Jl
OjpGbG9hdFNpemUgdmlld1NpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNv
cmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRh
cmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RF
ZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCkKKyAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6
ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVk
Z2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEKQogICAgIFN5bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkgLT4gKGRvdWJs
ZSBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiwg
dWludDY0X3QgbmV4dFZhbGlkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCkKIAogICAgIEhhbmRsZVRh
cChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0
aW9uSWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCmluZGV4IDVjZWQ0OGIwYjNmMjU2MjBlN2UwZjcwMzA2N2Q1ZGE2YjVlNTc5MjYu
LmU0NzU4NGQ1NzlkMzFlMDg0OGQ2MzY3MzIyZTdjNzcyNDc0ZGNjMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNDU0
LDEwICsyNDU0LDEwIEBAIHZvaWQgV2ViUGFnZTo6YXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKGNv
bnN0IFN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFN0cmluZyYgcGFzCiAgICAgfQogfQogCi12b2lk
IFdlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3U2l6ZSkKK3ZvaWQgV2ViUGFn
ZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgRmxvYXRT
aXplJiBzaXplKQogewotICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8
PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWlu
aW11bUxheW91dFNpemUgIiA8PCBzaXplIDw8ICIgdmlld1NpemUgIiA8PCB2aWV3U2l6ZSk7Ci0g
ICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmltdW1MYXlvdXRTaXplKHNpemUs
IHZpZXdTaXplKSkKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwg
IldlYlBhZ2UgIiA8PCBtX3BhZ2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmlt
dW1MYXlvdXRTaXplICIgPDwgc2l6ZSk7CisgICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9u
LnNldE1pbmltdW1MYXlvdXRTaXplKHNpemUpKQogICAgICAgICB2aWV3cG9ydENvbmZpZ3VyYXRp
b25DaGFuZ2VkKCk7CiB9CiAKQEAgLTI0OTIsMTIgKzI0OTIsMTIgQEAgdm9pZCBXZWJQYWdlOjpy
ZXNldFRleHRBdXRvc2l6aW5nKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25z
dCBGbG9hdFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0
cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRf
dCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCit2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2Jz
Y3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0
YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
KQogewogICAgIFNldEZvclNjb3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5
bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKICAgICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCBoYW5k
bGUgdGhlIGNhc2VzIHdoZXJlIHRoZSBjb250ZW50IHdvdWxkIGNoYW5nZSB0aGUgY29udGVudCBz
aXplIG9yIHNjcm9sbCBwb3NpdGlvbiBmcm9tIEphdmFTY3JpcHQuCiAgICAgLy8gVG8gaGFuZGxl
IHRob3NlIGNhc2VzLCB3ZSB3b3VsZCBuZWVkIHRvIHJlZG8gdGhpcyBjb21wdXRhdGlvbiBvbiBl
dmVyeSBjaGFuZ2UgdW50aWwgdGhlIG5leHQgdmlzaWJsZSBjb250ZW50IHJlY3QgdXBkYXRlLgot
ICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiXG5XZWJQYWdlOjpk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlIC0gbWluaW11bUxheW91dFNpemUgIiA8PCBtaW5pbXVt
TGF5b3V0U2l6ZSA8PCAiIHZpZXdTaXplICIgPDwgdmlld1NpemUgPDwgIiB0YXJnZXRVbm9ic2N1
cmVkUmVjdCAiIDw8IHRhcmdldFVub2JzY3VyZWRSZWN0IDw8ICIgdGFyZ2V0RXhwb3NlZENvbnRl
bnRSZWN0ICIgPDwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0IDw8ICIgdGFyZ2V0U2NhbGUgIiA8
PCB0YXJnZXRTY2FsZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFt
IDw8ICJcbldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUgLSBtaW5pbXVtTGF5b3V0
U2l6ZSAiIDw8IG1pbmltdW1MYXlvdXRTaXplIDw8ICIgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgIiA8
PCB0YXJnZXRVbm9ic2N1cmVkUmVjdCA8PCAiIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCAiIDw8
IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCA8PCAiIHRhcmdldFNjYWxlICIgPDwgdGFyZ2V0U2Nh
bGUpOwogCiAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSAqbV9wYWdlLT5tYWluRnJhbWUoKS52
aWV3KCk7CiAgICAgSW50U2l6ZSBvbGRDb250ZW50U2l6ZSA9IGZyYW1lVmlldy5jb250ZW50c1Np
emUoKTsKQEAgLTI1MzAsNyArMjUzMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zCiAgICAg
fQogCiAgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdl
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIHNldHRpbmcgbWluaW11bSBsYXlvdXQgc2l6ZSB0
byAiIDw8IG1pbmltdW1MYXlvdXRTaXplKTsKLSAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5z
ZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSwgdmlld1NpemUpOworICAgIG1f
dmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmltdW1MYXlvdXRTaXplKG1pbmltdW1MYXlvdXRT
aXplKTsKICAgICBJbnRTaXplIG5ld0xheW91dFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5sYXlvdXRTaXplKCk7CiAKICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXplKG5ld0xheW91dFNp
emUpKQpAQCAtMjkxMiw5ICsyOTEyLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKICAgICBp
ZiAoc2Nyb2xsUG9zaXRpb24gIT0gZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCkpCiAgICAgICAg
IG1fZHluYW1pY1NpemVVcGRhdGVIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICBib29sIGRpZFVwZGF0
ZUZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0ID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0
Rm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5m
b3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCgpKTsKLSAgICBib29sIGRpZFVwZGF0ZUNhbklnbm9y
ZVZpZXdwb3J0U2NhbGluZ0NvbnN0cmFpbnRzID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0
Q2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKG1faWdub3JlVmlld3BvcnRTY2FsaW5nQ29uc3Ry
YWludHMgJiYgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5hbGxvd1Nocmlua1RvRml0KCkp
OwotICAgIGlmIChkaWRVcGRhdGVGb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCB8fCBkaWRVcGRh
dGVDYW5JZ25vcmVWaWV3cG9ydFNjYWxpbmdDb25zdHJhaW50cykKKyAgICBpZiAobV92aWV3cG9y
dENvbmZpZ3VyYXRpb24uc2V0Q2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKG1faWdub3JlVmll
d3BvcnRTY2FsaW5nQ29uc3RyYWludHMgJiYgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5h
bGxvd1Nocmlua1RvRml0KCkpKQogICAgICAgICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2Vk
KCk7CiAKICAgICBmcmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRTaXplKHZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkuc2l6ZSgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NzZhMzJjZmFh
YmFkZjJiMTBkZjZiM2IyYjIzZjY5MmI4NzM1NjdkLi4yNWJiODJiYmQwNDE4MzVlNDgyNjVkNWQw
YjczZDJmMTA1ZGVlMzNkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gQWRkIGEg
bWVjaGFuaXNtIHRvIG92ZXJyaWRlIGRlZmF1bHQgdmlld3BvcnQgYmVoYXZpb3JzIGluIGV4dHJh
IHpvb20gbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg1MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTYyNDAzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYW4gdGVzdCB0aGF0
J3Mgbm8gbG9uZ2VyIHVzZWZ1bCwgbm93IHRoYXQgdGhlIFNQSSBpdCB3YXMgdGVzdGluZyBpcyBn
b25lLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm93CisgICAgICAgIHRlc3RlZCBieSB0aGUgbGF5
b3V0IHRlc3QgYWRkZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL1ZpZXdwb3J0U2l6aW5nVGVzdHMubW06IFJlbW92ZWQuCisKIDIw
MTgtMDQtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0V4dHJhIHpvb20gbW9kZV0gVGhlIHNlYXJjaCBmaWVsZCBvbiB3d3cuYmluZy5jb20gaXMg
bWlzc2luZyBsYWJlbCB0ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEzNzZlMjZiYjlk
MTQ0NmJkMDM2OWYwMTZkYmU0MjE1NjNlNmZjOTEuLjgzMjdmMTdjNjYwNGY2MzYwNzk2M2U0N2Iy
YWI2NWNkZTc1ZmUxMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NCw3ICs5NCw2IEBA
CiAJCTJFMTRBNTI5MUQzRkU5NkIwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkUxNEE1MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbCAqLzsgfTsKIAkJMkUxQjdCMDAxRDQxQUJBNzAwNzU1OEI0IC8qIGxhcmdlLXZp
ZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgKi87IH07CiAJCTJFMUI3QjAyMUQ0MUIxQjkw
MDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMUI3QjAxMUQ0MUIxQjMwMDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1h
ZnRlci1zZWVrLXRvLWVuZC5odG1sICovOyB9OwotCQkyRTFCODgxRjIwNDBFRTUzMDBGRkY2QTkg
LyogVmlld3BvcnRTaXppbmdUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFMUI4ODFFMjA0MEVFNTMwMEZGRjZBOSAvKiBWaWV3cG9ydFNpemlu
Z1Rlc3RzLm1tICovOyB9OwogCQkyRTFERkRFRDFENDJBNTExMDA3MTRBMDAgLyogbGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9z
LXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJMkUxREZERUYxRDQyQTZGMjAwNzE0QTAwIC8qIGxh
cmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERUUxRDQyQTZFQjAwNzE0QTAw
IC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgKi87IH07CiAJCTJFMURG
REYxMUQ0MkUxRTQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQt
cGxheS1hZnRlci1lbmRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRGMDFENDJFMTQ0MDA3MTRBMDAgLyogbGFyZ2Utdmlk
ZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgKi87IH07CkBA
IC0xMjU0LDcgKzEyNTMsNiBAQAogCQkyRTE0QTUyODFEM0ZFOEI4MDAxMEYzNUIgLyogYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFMUI3QUZGMUQ0MUE5NUYwMDc1NThCNCAvKiBsYXJnZS12aWRlby1zZWVrLWFm
dGVyLWVuZGluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVv
LXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RTFCN0IwMTFENDFCMUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0
ZXItc2Vlay10by1lbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12
aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkUxQjg4MUUyMDQwRUU1MzAwRkZGNkE5IC8qIFZpZXdwb3J0U2l6
aW5nVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemluZ1Rlc3RzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAg
LyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkUxREZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLWF1dG9wbGF5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lu
bmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzc0LDcgKzIzNzIsNiBAQAog
CQkJCUY0Qzg3OTdFMjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSAq
LywKIAkJCQlGNDUwMzNGNDIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9zaXppbmdCb29zdC5t
bSAqLywKIAkJCQlGNDY4NDlCRDFFRUY1OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMu
bW0gKi8sCi0JCQkJMkUxQjg4MUUyMDQwRUU1MzAwRkZGNkE5IC8qIFZpZXdwb3J0U2l6aW5nVGVz
dHMubW0gKi8sCiAJCQkJNTE0OTU4QkQxRjc0MjdBQzAwRTg3QkFEIC8qIFdLV2ViVmlld0F1dG9m
aWxsVGVzdHMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKQEAgLTM3NjAsNyArMzc1Nyw2
IEBACiAJCQkJN0M4M0UwM0ExRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQzYxRDBBNjU0RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJv
bHNNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTE1RUIzNDMxRUUwQkEwMzAwM0MyQzBB
IC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLywKLQkJCQky
RTFCODgxRjIwNDBFRTUzMDBGRkY2QTkgLyogVmlld3BvcnRTaXppbmdUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTYzNTZGQjIyMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJl
Y3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk4Mzc3OUMzODFGODJGRUNFMDA3Q0RBOEEgLyogVmlz
aXRlZExpbmtTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5RTc3MUE0MjNBNUIwMEY1
OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVmlld3BvcnRTaXppbmdUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1ZpZXdwb3J0U2l6aW5nVGVzdHMubW0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk4MDBkMzczNjI3OWFjZDQ3YTYyZGE1ZGZhMTYwM2E5MWIwOTgw
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVmlld3BvcnRTaXppbmdUZXN0cy5tbQorKysgL2Rldi9u
dWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQot
I2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKLQotI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKLSNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotCi1A
aW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoVmlld3BvcnRUZXN0aW5nSGVscGVycykKLQot
LSAoQk9PTClzY2FsZUlzQXBwcm94aW1hdGVseTooQ0dGbG9hdClleHBlY3RlZFNjYWxlCi17Ci0g
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhpbXVtRXhwZWN0ZWRTY2FsZURpZmZlcmVuY2UgPSAw
LjAwMTsKLSAgICByZXR1cm4gQUJTKHNlbGYuc2Nyb2xsVmlldy56b29tU2NhbGUgLSBleHBlY3Rl
ZFNjYWxlKSA8IG1heGltdW1FeHBlY3RlZFNjYWxlRGlmZmVyZW5jZTsKLX0KLQotLSAodm9pZCll
eHBlY3RTY2FsZVRvQmVjb21lOihDR0Zsb2F0KWV4cGVjdGVkU2NhbGUKLXsKLSAgICB3aGlsZSAo
IVtzZWxmIHNjYWxlSXNBcHByb3hpbWF0ZWx5OmV4cGVjdGVkU2NhbGVdKQotICAgICAgICBbc2Vs
ZiB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Ci19Ci0KLUBlbmQKLQotc3RhdGljIE5T
U3RyaW5nICp2aWV3cG9ydFRlc3RQYWdlTWFya3VwKE5TU3RyaW5nICp2aWV3cG9ydE1ldGFDb250
ZW50LCBpbnQgY29udGVudFdpZHRoLCBpbnQgY29udGVudEhlaWdodCkKLXsKLSAgICByZXR1cm4g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVu
dD0nJUAnPjxib2R5IHN0eWxlPSdtYXJnaW46IDAnPjxkaXYgc3R5bGU9J3dpZHRoOiAlZHB4OyBo
ZWlnaHQ6ICVkcHg7IGJhY2tncm91bmQtY29sb3I6IHJlZCc+PC9kaXY+Iiwgdmlld3BvcnRNZXRh
Q29udGVudCwgY29udGVudFdpZHRoLCBjb250ZW50SGVpZ2h0XTsKLX0KLQotbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewotCi1URVNUKFZpZXdwb3J0U2l6aW5nVGVzdHMsIEZvcmNlU2hyaW5rVG9G
aXRWaWV3cG9ydE92ZXJyaWRlc1ZpZXdwb3J0UGFyYW1ldGVycykKLXsKLSAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDQwMCwgNDAwKV0pOwotICAgIFt3ZWJWaWV3IF9zZXRBbGxvd3NWaWV3cG9ydFNo
cmlua1RvRml0OllFU107Ci0gICAgW3dlYlZpZXcgX3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0
U2hyaW5rVG9GaXQ6Tk9dOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
Zzp2aWV3cG9ydFRlc3RQYWdlTWFya3VwKEAid2lkdGg9ZGV2aWNlLXdpZHRoLCBzaHJpbmstdG8t
Zml0PW5vIiwgNjAwLCAxMDApXTsKLSAgICBbd2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjFd
OwotCi0gICAgW3dlYlZpZXcgX3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6
WUVTXTsKLSAgICBbd2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjAuNjY3XTsKLQotICAgIFt3
ZWJWaWV3IF9zZXRGb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0Ok5PXTsKLSAgICBb
d2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjFdOwotfQotCi1URVNUKFZpZXdwb3J0U2l6aW5n
VGVzdHMsIFNocmlua1RvRml0Vmlld3BvcnRXaXRoTWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCkK
LXsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKV0pOwotICAgIFt3ZWJWaWV3IF9z
ZXRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0OllFU107Ci0gICAgW3dlYlZpZXcgX3NldEZvcmNl
SG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6WUVTXTsKLSAgICBbd2ViVmlldyBfc2V0TWlu
aW11bUFsbG93ZWRMYXlvdXRXaWR0aDowXTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6dmlld3BvcnRUZXN0UGFnZU1hcmt1cChAIndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIiwgNDAwLCAxMDApXTsKLSAgICBbd2ViVmlldyBleHBlY3RTY2FsZVRv
QmVjb21lOjAuNV07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCIyMDAiLCBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCJdKTsKLQot
ICAgIFt3ZWJWaWV3IF9zZXRNaW5pbXVtQWxsb3dlZExheW91dFdpZHRoOjQwMF07Ci0gICAgW3dl
YlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwotICAgIEVYUEVDVF9XS19TVFJF
USgiNDAwIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LmJvZHkuY2xpZW50V2lkdGgiXSk7Ci0gICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgc2NhbGVJc0Fw
cHJveGltYXRlbHk6MC41XSk7Ci0KLSAgICBbd2ViVmlldyBfc2V0TWluaW11bUFsbG93ZWRMYXlv
dXRXaWR0aDoxMDBdOwotICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRl
XTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoIjIwMCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIl0pOwotICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IHNjYWxlSXNBcHByb3hpbWF0ZWx5OjAuNV0pOwotfQotCi19IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9S
TShJT1MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2E4NTEwNDYxNWE4NTJlMzcwZjJiMTc4YzdhYjI3YThhMjhhZWI0ZS4u
MzQyZmQ5YWE2NmUyYmU0OGIxMTY3YzNiMjU2ODhhZjg2ODgxMzI2NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE4LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlk
ZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGxheW91dCB0ZXN0IHRvIGNoZWNrIHRoYXQ6Cisg
ICAgICAgIOKAoiBCeSBkZWZhdWx0ICh3aXRoIG5vIGBtaW4tZGV2aWNlLXdpZHRoYCBvdmVycmlk
ZSksIHNocmluay10by1maXQgYW5kIGV4cGFuZGVkIG1pbmltdW0gbGF5b3V0IHNpemVzIHRha2Vz
IGVmZmVjdC4KKyAgICAgICAg4oCiIGBtaW4tZGV2aWNlLXdpZHRoYCBjYW4gYmUgdXNlZCB0byBi
YWlsIG91dCBvZiBzaHJpbmstdG8tZml0IGFuZCB2aWV3cG9ydCBiZWhhdmlvcnMuCisgICAgICAg
IOKAoiBBIGxhcmdlIGBtaW4tZGV2aWNlLXdpZHRoYCBjYW4gYmUgdXNlZCB0byBtYWtlIGV4dHJh
IHpvb20gbW9kZSB2aWV3cG9ydCBoZXVyaXN0aWNzIGV2ZW4gbW9yZSBhZ2dyZXNzaXZlLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0L2V4dHJh
em9vbS92aWV3cG9ydC1jaGFuZ2UtbWluLWRldmljZS13aWR0aC5odG1sOiBBZGRlZC4KKwogMjAx
OC0wNC0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbRXh0cmEgem9vbSBtb2RlXSBUaGUgc2VhcmNoIGZpZWxkIG9uIHd3dy5iaW5nLmNvbSBpcyBt
aXNzaW5nIGxhYmVsIHRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI1NjIzMjNhZDU2MGM4MTIz
MGQyMzI2ZDkwM2QxY2MwNmY1NWM3OWUuLjY5ODg0ZGQxYzM3YjUxOTllZGMxNGQ3ZjZmZjExZTgz
YmQ4YWJiYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjEsNiArMjEsNyBAQCB0aWxlZC1kcmF3
aW5nIFsgU2tpcCBdCiBmYXN0L2Nzcy9leHRyYXpvb20gWyBTa2lwIF0KIGZhc3QvZG9tL1dpbmRv
dy9leHRyYXpvb20gWyBTa2lwIF0KIGZhc3QvZm9ybXMvZXh0cmF6b29tIFsgU2tpcCBdCitmYXN0
L3ZpZXdwb3J0L2V4dHJhem9vbSBbIFNraXAgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvZXh0cmF6
b29tIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC90aWxlZC1kcmF3aW5nIFsgU2tpcCBd
CiBzd2lwZSBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9l
eHRyYXpvb20vdmlld3BvcnQtY2hhbmdlLW1pbi1kZXZpY2Utd2lkdGguaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvdmlld3BvcnQvZXh0cmF6b29tL3ZpZXdwb3J0LWNoYW5nZS1taW4tZGV2aWNlLXdp
ZHRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUzMWE5MjJhMGM2MTNjMTE4MjExMjQ4YzI3YTUxNTY1YTNh
NjFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvZXh0cmF6
b29tL3ZpZXdwb3J0LWNoYW5nZS1taW4tZGV2aWNlLXdpZHRoLmh0bWwKQEAgLTAsMCArMSw2MCBA
QAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBpZD0ibWV0
YSI+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHksIGh0bWwgeworICAg
ICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAg
ICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGZ1bmN0aW9uIGxvZ1dpbmRv
d0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoY29udGVudCkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4geworICAgICAgICAgICAg
ICAgIG1ldGEuc2V0QXR0cmlidXRlKCJjb250ZW50IiwgY29udGVudCk7CisgICAgICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgICAgICAg
ICAgICAgZGVidWcoYFske21ldGEuZ2V0QXR0cmlidXRlKCJjb250ZW50Iil9XSAoJHtpbm5lcldp
ZHRofSwgJHtpbm5lckhlaWdodH0pYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uKCJQbGVhc2UgdXNlIFdlYktpdFRlc3RSdW5uZXIgdG8gcnVuIHRoaXMg
dGVzdC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGRlYnVnKCIxLiBJbml0aWFsIG1pbi1kZXZpY2Utd2lkdGgiKTsKKyAgICAgICAgICAg
IGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndp
ZHRoPTE1MCIpOworICAgICAgICAgICAgYXdhaXQgbG9nV2luZG93RGltZW5zaW9uc0FmdGVyU2V0
dGluZ1ZpZXdwb3J0Q29udGVudCgid2lkdGg9ZGV2aWNlLXdpZHRoIik7CisgICAgICAgICAgICBz
Y2FsZUF0RGV2aWNlV2lkdGhGb3JJbml0aWFsTWluRGV2aWNlV2lkdGggPSBwYXJzZUZsb2F0KGF3
YWl0IFVJSGVscGVyLnpvb21TY2FsZSgpKS50b0ZpeGVkKDMpOworICAgICAgICAgICAgYXdhaXQg
bG9nV2luZG93RGltZW5zaW9uc0FmdGVyU2V0dGluZ1ZpZXdwb3J0Q29udGVudCgid2lkdGg9NjAw
Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJcbjIuIG1pbi1kZXZpY2Utd2lkdGg9MCIpOworICAg
ICAgICAgICAgYXdhaXQgbG9nV2luZG93RGltZW5zaW9uc0FmdGVyU2V0dGluZ1ZpZXdwb3J0Q29u
dGVudCgid2lkdGg9MTUwLCBtaW4tZGV2aWNlLXdpZHRoPTAiKTsKKyAgICAgICAgICAgIGF3YWl0
IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPWRl
dmljZS13aWR0aCwgbWluLWRldmljZS13aWR0aD0wIik7CisgICAgICAgICAgICBzY2FsZUF0RGV2
aWNlV2lkdGhGb3JNaW5EZXZpY2VXaWR0aDAgPSBwYXJzZUZsb2F0KGF3YWl0IFVJSGVscGVyLnpv
b21TY2FsZSgpKS50b0ZpeGVkKDMpOworICAgICAgICAgICAgYXdhaXQgbG9nV2luZG93RGltZW5z
aW9uc0FmdGVyU2V0dGluZ1ZpZXdwb3J0Q29udGVudCgid2lkdGg9NjAwLCBtaW4tZGV2aWNlLXdp
ZHRoPTAiKTsKKworICAgICAgICAgICAgZGVidWcoIlxuMy4gbWluLWRldmljZS13aWR0aD01MDAi
KTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3
cG9ydENvbnRlbnQoIndpZHRoPTE1MCwgbWluLWRldmljZS13aWR0aD01MDAiKTsKKyAgICAgICAg
ICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQo
IndpZHRoPWRldmljZS13aWR0aCwgbWluLWRldmljZS13aWR0aD01MDAiKTsKKyAgICAgICAgICAg
IHNjYWxlQXREZXZpY2VXaWR0aEZvck1pbkRldmljZVdpZHRoNTAwID0gcGFyc2VGbG9hdChhd2Fp
dCBVSUhlbHBlci56b29tU2NhbGUoKSkudG9GaXhlZCgzKTsKKyAgICAgICAgICAgIGF3YWl0IGxv
Z1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPTYwMCwg
bWluLWRldmljZS13aWR0aD01MDAiKTsKKworICAgICAgICAgICAgc2hvdWxkQmUoInNjYWxlQXRE
ZXZpY2VXaWR0aEZvckluaXRpYWxNaW5EZXZpY2VXaWR0aCIsICInMC40ODgnIik7CisgICAgICAg
ICAgICBzaG91bGRCZSgic2NhbGVBdERldmljZVdpZHRoRm9yTWluRGV2aWNlV2lkdGgwIiwgIicx
LjAwMCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzY2FsZUF0RGV2aWNlV2lkdGhGb3JNaW5E
ZXZpY2VXaWR0aDUwMCIsICInMC4zMTInIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRl
eCA0NDYzNTY3OWU3OTM4ZTY5NWQ1ZGYxNzc3YzU1YTNmMWY0MzNkZjUwLi40MTU3OWIxY2E5NmJk
MTdmNjIwOWJiYTliMGZkZTFlYzNlODYxMzAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIu
anMKQEAgLTIwOCw0ICsyMDgsMTMgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIg
ewogICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOwogICAgICAgICB9KTsKICAgICB9CisKKyAg
ICBzdGF0aWMgem9vbVNjYWxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYCgoKSA9PiB7
CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUodWlDb250cm9s
bGVyLnpvb21TY2FsZSk7CisgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0p
OworICAgIH0KIH0K
</data>
<flag name="review"
          id="357194"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338962</attachid>
            <date>2018-04-26 21:01:13 -0700</date>
            <delta_ts>2018-04-26 21:08:50 -0700</delta_ts>
            <desc>Part 1 v2 (try to fix GTK/WPE)</desc>
            <filename>bug-185050-20180426210112.patch</filename>
            <type>text/plain</type>
            <size>66096</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ0NTMyMTRhOTU5OGNj
MjU0ZTFkZTkwY2U2OTQ4YTJhODI5YTFhNy4uODkwZTM1ZmVmNWQ4YmFjNmNjNDJlNjU4YzlmZTFm
YTBlNmE0M2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2
aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDdXJyZW50bHks
IGluIGV4dHJhIHpvb20gbW9kZSwgdGhlcmUncyBubyB3YXkgZm9yIHdlYiBwYWdlcyB0byBvcHQg
b3V0IG9mIHRoZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2aW9ycworICAgICAgICAobmFtZWx5LCBs
YXlpbmcgb3V0IGF0IGEgbGFyZ2VyIHdpZHRoIGFuZCBzaHJpbmtpbmcgdG8gZml0KSB3aGVuIHRo
ZSB3ZWIgdmlldyBpcyB2ZXJ5IHRhbGwgYW5kIG5hcnJvdy4gVGhpcworICAgICAgICBwYXRjaCBh
ZGRzIGEgbmV3IGV4cGVyaW1lbnRhbCB2aWV3cG9ydCBhdHRyaWJ1dGUsICJtaW4tZGV2aWNlLXdp
ZHRoIiwgdGhhdCBjYW4gYmUgdXNlZCB0byBwcmV2ZW50IFdlYktpdCBmcm9tCisgICAgICAgIGF1
dG9tYXRpY2FsbHkgY2xhbXBpbmcgdGhlIHdlYiB2aWV3IHdpZHRoIHRvIGEgZ3JlYXRlciB2YWx1
ZSBmb3IgdGhlIGRldmljZSB3aWR0aCBpbiB0aGlzIHNjZW5hcmlvLgorCisgICAgICAgIE5vdGUg
dGhhdCBhZnRlciB0aGlzIHBhdGNoLCBsb2dpYyB0aGF0IHBsdW1icyBhIG1pbmltdW1MYXlvdXRT
aXplIGZyb20gV0tXZWJWaWV3IHRvIHRoZSB2aWV3cG9ydCBjb25maWd1cmF0aW9uCisgICAgICAg
IHdpbGwgbmVlZCB0byBiZSByZW5hbWVkIHRvIHJlZmxlY3QgdGhhdCB0aGlzIHNpemUgaXMgbm8g
bG9uZ2VyIHRoZSBtaW5pbXVtIGxheW91dCBzaXplLCBidXQgcmF0aGVyLCB0aGUgdmlldworICAg
ICAgICBzaXplIHRoYXQgaXMgdXNlZCBmb3Igdmlld3BvcnQgZGV2aWNlIGRpbWVuc2lvbnMgYnkg
ZGVmYXVsdC4gVGhpcyByZWZhY3RvcmluZyB3aWxsIGJlIGRvbmUgaW4gYSBmb2xsb3d1cCBwYXJ0
LgorCisgICAgICAgIFNlZSBwZXItbWV0aG9kIGNvbW1lbnRzIGJlbG93IGZvciBtb3JlIGRldGFp
bC4KKworICAgICAgICBUZXN0OiBmYXN0L3ZpZXdwb3J0L2V4dHJhem9vbS92aWV3cG9ydC1jaGFu
Z2UtbWluLWRldmljZS13aWR0aC5odG1sCisKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Vmlld3BvcnRGZWF0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5o
OgorCisgICAgICAgIFJlbW92ZXMgYG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXRgIChtb3Jl
IGRldGFpbCBiZWxvdykuCisKKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlZE1pbkRldmljZVdpZHRoKToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1cmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0TWluaW11bUxheW91
dFNpemUpOgorCisgICAgICAgIEluc3RlYWQgb2YgZGlyZWN0bHkgc2V0dGluZyB0aGUgbWluaW11
bSBsYXlvdXQgc2l6ZSwgc2V0TWluaW11bUxheW91dFNpemUgbm93IGZpcnN0IHNldHMgdGhlIHZp
ZXcgc2l6ZSAoaS5lLiB0aGUKKyAgICAgICAgc2l6ZSB3ZSB1c2UgZm9yIGBkZXZpY2Utd2lkdGhg
IGluIHRoZSB2aWV3cG9ydCBtZXRhIHRhZyksIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIG1pbmltdW0g
bGF5b3V0IHNpemUuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6
c2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCBjb25zdCk6CisKKyAg
ICAgICAgUmVwbGFjZXMgYG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXRgLiBXaGV0aGVyIG9y
IG5vdCB3ZSBzaHJpbmsgdG8gZml0IGlzIG5vdyBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIgdGhlCisg
ICAgICAgIG1pbi1kZXZpY2Utd2lkdGggYXR0cmlidXRlIGlzIGFjdGl2ZWx5IGNsYW1waW5nIHRo
ZSB3aWR0aCBvZiB0aGUgdmlldy4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1
cmF0aW9uOjpzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlU2Nh
bGluZ0NvbnN0cmFpbnRzUmVnYXJkbGVzc09mQ29udGVudFNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSk6
CisKKyAgICAgICAgQ29tcHV0ZXMgYW5kIHNldHMgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUgdXNp
bmcgdGhlIHZpZXcgc2l6ZSwgdGFraW5nIHRoZSBtaW5pbXVtIGRldmljZSB3aWR0aCBpbnRvIGFj
Y291bnQgaWYKKyAgICAgICAgbmVlZGVkLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENv
bmZpZ3VyYXRpb246OmRlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6c2V0Rm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmg6CisKIDIwMTgtMDQtMjUg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUFNPTjogRG9uJ3Qg
Y3JlYXRlIGEgbmV3IHByb2Nlc3Mgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgYmxvYiBVUkwsIGRhdGEg
VVJMLCBhbmQgYWJvdXQ6YmxhbmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTI0YzY3MzIyMjcyMWEzZDJiODIzZjQ4
YzU2Y2QzNzg2ZWU1MmZmMC4uN2JjNTA3MzMyMWZhNDcwOGEzZGVmMjFjMzgzZDJhNDY5YjMwZGVi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBBZGQg
YSBtZWNoYW5pc20gdG8gb3ZlcnJpZGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMgaW4gZXh0
cmEgem9vbSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NjI0MDM4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmb3JjZUhvcml6
b250YWxWaWV3cG9ydFNocmlua1RvRml0IGFuZCBtaW5pbXVtQWxsb3dlZExheW91dFdpZHRoIFNQ
SSBob29rcyBmcm9tIFdlYktpdCwgYW5kCisgICAgICAgIGFkZGl0aW9uYWxseSByZW1vdmUgYWxs
IGxvZ2ljIGZvciBwbHVtYmluZyB2aWV3U2l6ZSB0byBXZWJDb3JlLiBTZWUgV2ViQ29yZS9DaGFu
Z2VMb2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9y
PDwpOgorICAgICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OlZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjphbGxvd1Nocmlua1RvRml0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6b3Bl
cmF0b3I9PSk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86
OmZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9p
bml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhY3Rp
dmVNaW5pbXVtTGF5b3V0U2l6ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNl
dE1pbmltdW1MYXlvdXRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ZyYW1lT3JCb3Vu
ZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUxheW91dFNpemVP
dmVycmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0
aFVwZGF0ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoXSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjdGl2ZU1pbmltdW1MYXlvdXRTaXpl
czpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmltdW1M
YXlvdXRTaXplOnZpZXdTaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLV2ViVmlldyBfZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdF0pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRz
OnVub2JzY3VyZWRTYWZlQXJlYUluc2V0czppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNj
YWxlOmluU3RhYmxlU3RhdGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTpl
bmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2NyZWRl
bnRpYWxzTWVzc2VuZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyk6CisK
IDIwMTgtMDQtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0V4dHJhIHpvb20gbW9kZV0gVGhlIHNlYXJjaCBmaWVsZCBvbiB3d3cuYmluZy5jb20g
aXMgbWlzc2luZyBsYWJlbCB0ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmll
d3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcAppbmRleCBlZTMyN2U1M2ZhNzQxMGMwYmM4ODZjNzM0ZTdhNWMxMTIzNjkzYzRkLi43MWEz
YzVkZjA0MjMzN2U3Yzk1YWNjNWVlZjUyODQ0MWE4ZGJjNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTQyMCw2ICs0MjAsOCBAQCB2b2lkIHNldFZpZXdw
b3J0RmVhdHVyZShWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzLCBEb2N1bWVudCYgZG9jdW1l
bnQsIFN0cmluZwogICAgICAgICBhcmd1bWVudHMuc2hyaW5rVG9GaXQgPSBmaW5kQm9vbGVhblZh
bHVlKGRvY3VtZW50LCBrZXksIHZhbHVlKTsKICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShrZXksICJ2aWV3cG9ydC1maXQiKSAmJiBkb2N1bWVudC5zZXR0aW5ncygp
LnZpZXdwb3J0Rml0RW5hYmxlZCgpKQogICAgICAgICBhcmd1bWVudHMudmlld3BvcnRGaXQgPSBw
YXJzZVZpZXdwb3J0Rml0VmFsdWUoZG9jdW1lbnQsIGtleSwgdmFsdWUpOworICAgIGVsc2UgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleSwgIm1pbi1kZXZpY2Utd2lkdGgiKSkK
KyAgICAgICAgYXJndW1lbnRzLm1pbkRldmljZVdpZHRoID0gbnVtZXJpY1ByZWZpeChkb2N1bWVu
dCwga2V5LCB2YWx1ZSk7CiAgICAgZWxzZQogICAgICAgICByZXBvcnRWaWV3cG9ydFdhcm5pbmco
ZG9jdW1lbnQsIFVucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnRLZXlFcnJvciwga2V5KTsKIH0K
QEAgLTQ3NSw3ICs0NzcsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudAogewogICAgIFRleHRT
dHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKIAotICAgIHRzIDw8ICJcbiIgPDwg
aW5kZW50IDw8ICIod2lkdGggIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA8PCAiLCBtaW5X
aWR0aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLm1pbldpZHRoIDw8ICIsIG1heFdpZHRoICIgPDwg
dmlld3BvcnRBcmd1bWVudHMubWF4V2lkdGggPDwgIikiOworICAgIHRzIDw8ICJcbiIgPDwgaW5k
ZW50IDw8ICIod2lkdGggIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA8PCAiLCBtaW5XaWR0
aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLm1pbldpZHRoIDw8ICIsIG1heFdpZHRoICIgPDwgdmll
d3BvcnRBcmd1bWVudHMubWF4V2lkdGggPDwgIiwgbWluRGV2aWNlV2lkdGggIiA8PCB2aWV3cG9y
dEFyZ3VtZW50cy5taW5EZXZpY2VXaWR0aCA8PCAiKSI7CiAgICAgdHMgPDwgIlxuIiA8PCBpbmRl
bnQgPDwgIihoZWlnaHQgIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5oZWlnaHQgPDwgIiwgbWluSGVp
Z2h0ICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluSGVpZ2h0IDw8ICIsIG1heEhlaWdodCAiIDw8
IHZpZXdwb3J0QXJndW1lbnRzLm1heEhlaWdodCA8PCAiKSI7CiAgICAgdHMgPDwgIlxuIiA8PCBp
bmRlbnQgPDwgIih6b29tICIgPDwgdmlld3BvcnRBcmd1bWVudHMuem9vbSA8PCAiLCBtaW5ab29t
ICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluWm9vbSA8PCAiLCBtYXhab29tICIgPDwgdmlld3Bv
cnRBcmd1bWVudHMubWF4Wm9vbSA8PCAiKSI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmgKaW5kZXggNGYxYWZlYTM0MDAxYjhiYmQ5YzI2ZmEyMGIxYzE2N2RlNzk1ODJmYi4u
NGE4ZThjYmRmNDMzY2YzODg3MjQ4YTUyNGQ0NGFmMTIyYjE2N2FhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTkzLDYgKzkzLDcgQEAgc3RydWN0IFZpZXdwb3J0
QXJndW1lbnRzIHsKICAgICBmbG9hdCB3aWR0aCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IG1p
bldpZHRoIHsgVmFsdWVBdXRvIH07CiAgICAgZmxvYXQgbWF4V2lkdGggeyBWYWx1ZUF1dG8gfTsK
KyAgICBmbG9hdCBtaW5EZXZpY2VXaWR0aCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IGhlaWdo
dCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IG1pbkhlaWdodCB7IFZhbHVlQXV0byB9OwogICAg
IGZsb2F0IG1heEhlaWdodCB7IFZhbHVlQXV0byB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9W
aWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGU0ZGU3NmYwMDQ4MTQwOWVjNGVjMDEzMjg5
MDU5YWFkYmZkNTk0YTEuLjg4ZTE5ZTBhNjYzODkzYzQyOTA2ODUzNDllM2ZhNDY0NTM1MDkyNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKQEAg
LTQ1LDExICs0NSwyMyBAQCBzdGF0aWMgYm9vbCBjb25zdHJhaW50c0FyZUFsbFJlbGF0aXZlKGNv
bnN0IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6UGFyYW1ldGVycyYgYwogfQogI2VuZGlmCiAKK3N0
YXRpYyBmbG9hdCBjb21wdXRlZE1pbkRldmljZVdpZHRoKGZsb2F0IG1pbkRldmljZVdpZHRoKQor
eworICAgIGlmIChtaW5EZXZpY2VXaWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
KQorICAgICAgICByZXR1cm4gbWluRGV2aWNlV2lkdGg7CisKKyNpZiBFTkFCTEUoRVhUUkFfWk9P
TV9NT0RFKQorICAgIHJldHVybiAzMjA7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9
CisKIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1cmF0aW9uKCkKICAgICA6
IG1fbWluaW11bUxheW91dFNpemUoMTAyNCwgNzY4KQorICAgICwgbV92aWV3U2l6ZSgxMDI0LCA3
NjgpCiAgICAgLCBtX2Nhbklnbm9yZVNjYWxpbmdDb25zdHJhaW50cyhmYWxzZSkKICAgICAsIG1f
Zm9yY2VBbHdheXNVc2VyU2NhbGFibGUoZmFsc2UpCi0gICAgLCBtX2ZvcmNlSG9yaXpvbnRhbFNo
cmlua1RvRml0KGZhbHNlKQogewogICAgIC8vIFNldHVwIGEgcmVhc29uYWJsZSBkZWZhdWx0IGNv
bmZpZ3VyYXRpb24gdG8gYXZvaWQgY29tcHV0aW5nIGluZmluaXRlIHNjYWxlL3NpemVzLgogICAg
IC8vIFRob3NlIGFyZSB0aGUgb3JpZ2luYWwgaVBob25lIGNvbmZpZ3VyYXRpb24uCkBAIC04Mywx
NCArOTUsMTYgQEAgYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldENvbnRlbnRzU2l6ZShj
b25zdCBJbnRTaXplJiBjb250ZW50U2l6ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBW
aWV3cG9ydENvbmZpZ3VyYXRpb246OnNldE1pbmltdW1MYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgdmlld1NpemUpCisvLyBGSVhN
RTogVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZSBpcyBubyBsb25n
ZXIgYW4gYWNjdXJhdGUgbmFtZSwgc2luY2UgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUKKy8vIGlz
IG5vdCBuZWNlc3NhcmlseSB0aGUgc2l6ZSBvZiB0aGUgdmlldy4KK2Jvb2wgVmlld3BvcnRDb25m
aWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1M
YXlvdXRTaXplKQogewotICAgIGlmIChtX21pbmltdW1MYXlvdXRTaXplID09IG1pbmltdW1MYXlv
dXRTaXplICYmIG1fdmlld1NpemUgPT0gdmlld1NpemUpCisgICAgaWYgKG1fdmlld1NpemUgPT0g
bWluaW11bUxheW91dFNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fbWluaW11
bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKLSAgICBtX3ZpZXdTaXplID0gdmlld1Np
emU7CisgICAgbV92aWV3U2l6ZSA9IG1pbmltdW1MYXlvdXRTaXplOwogCisgICAgdXBkYXRlTWlu
aW11bUxheW91dFNpemUoKTsKICAgICB1cGRhdGVDb25maWd1cmF0aW9uKCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0xMDIsMTYgKzExNiw5IEBAIGJvb2wgVmlld3BvcnRDb25maWd1cmF0aW9u
OjpzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvCiAK
ICAgICBMT0dfV0lUSF9TVFJFQU0oVmlld3BvcnRzLCBzdHJlYW0gPDwgIlZpZXdwb3J0Q29uZmln
dXJhdGlvbjo6c2V0Vmlld3BvcnRBcmd1bWVudHMgIiA8PCB2aWV3cG9ydEFyZ3VtZW50cyk7CiAg
ICAgbV92aWV3cG9ydEFyZ3VtZW50cyA9IHZpZXdwb3J0QXJndW1lbnRzOwotICAgIHVwZGF0ZUNv
bmZpZ3VyYXRpb24oKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBWaWV3cG9ydENvbmZp
Z3VyYXRpb246OnNldEZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KGJvb2wgZm9yY2VIb3Jpem9u
dGFsU2hyaW5rVG9GaXQpCi17Ci0gICAgaWYgKG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQg
PT0gZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgPSBmb3JjZUhvcml6b250YWxTaHJpbmtU
b0ZpdDsKKyAgICB1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSgpOworICAgIHVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMwLDEyICsxMzcsMTcgQEAgSW50
U2l6ZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFNpemUoKSBjb25zdAogICAgIHJldHVy
biBJbnRTaXplKGxheW91dFdpZHRoKCksIGxheW91dEhlaWdodCgpKTsKIH0KIAorYm9vbCBWaWV3
cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNl
V2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZXdTaXplLndpZHRoKCkgPCBjb21wdXRl
ZE1pbkRldmljZVdpZHRoKG1fdmlld3BvcnRBcmd1bWVudHMubWluRGV2aWNlV2lkdGgpOworfQor
CiBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxp
bmdDb25zdHJhaW50cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Nhbklnbm9yZVNjYWxpbmdDb25z
dHJhaW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fZm9yY2VIb3Jpem9u
dGFsU2hyaW5rVG9GaXQpCisgICAgaWYgKHNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWlu
RGV2aWNlV2lkdGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIW1fY29uZmln
dXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCkKQEAgLTE3Myw3ICsxODUsNyBAQCBib29sIFZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKCkgY29uc3QK
IAogYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9yZVNjYWxpbmdDb25zdHJh
aW50c1JlZ2FyZGxlc3NPZkNvbnRlbnRTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYW5J
Z25vcmVTY2FsaW5nQ29uc3RyYWludHMgJiYgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdDsK
KyAgICByZXR1cm4gbV9jYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMgJiYgc2hvdWxkT3ZlcnJp
ZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpOwogfQogCiBkb3VibGUgVmlld3BvcnRD
b25maWd1cmF0aW9uOjppbml0aWFsU2NhbGVGcm9tU2l6ZShkb3VibGUgd2lkdGgsIGRvdWJsZSBo
ZWlnaHQsIGJvb2wgc2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKSBjb25zdApAQCAtMzYx
LDEzICszNzMsMjUgQEAgdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKQogICAgICAgICBtX2NvbmZpZ3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmcgPSBtX3Zp
ZXdwb3J0QXJndW1lbnRzLnVzZXJab29tICE9IDAuOwogCiAgICAgaWYgKGJvb2xlYW5WaWV3cG9y
dEFyZ3VtZW50SXNTZXQobV92aWV3cG9ydEFyZ3VtZW50cy5zaHJpbmtUb0ZpdCkpCi0gICAgICAg
IG1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCA9IG1fdmlld3BvcnRBcmd1bWVudHMu
c2hyaW5rVG9GaXQgIT0gMC47CisgICAgICAgIG1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtU
b0ZpdCA9IHNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lkdGgoKSB8fCBt
X3ZpZXdwb3J0QXJndW1lbnRzLnNocmlua1RvRml0ICE9IDAuOwogCiAgICAgbV9jb25maWd1cmF0
aW9uLmF2b2lkc1Vuc2FmZUFyZWEgPSBtX3ZpZXdwb3J0QXJndW1lbnRzLnZpZXdwb3J0Rml0ICE9
IFZpZXdwb3J0Rml0OjpDb3ZlcjsKIAogICAgIExPR19XSVRIX1NUUkVBTShWaWV3cG9ydHMsIHN0
cmVhbSA8PCAiVmlld3BvcnRDb25maWd1cmF0aW9uICIgPDwgdGhpcyA8PCAiIHVwZGF0ZUNvbmZp
Z3VyYXRpb24gIiA8PCAqdGhpcyA8PCAiIGdpdmVzIGluaXRpYWwgc2NhbGUgIiA8PCBpbml0aWFs
U2NhbGUoKSA8PCAiIGJhc2VkIG9uIGNvbnRlbnRTaXplICIgPDwgbV9jb250ZW50U2l6ZSA8PCAi
IGFuZCBsYXlvdXQgc2l6ZSAiIDw8IGxheW91dFdpZHRoKCkgPDwgIngiIDw8IGxheW91dEhlaWdo
dCgpKTsKIH0KIAordm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZU1pbmltdW1MYXlv
dXRTaXplKCkKK3sKKyAgICBpZiAoIW1fdmlld1NpemUud2lkdGgoKSB8fCAhc2hvdWxkT3ZlcnJp
ZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpKSB7CisgICAgICAgIG1fbWluaW11bUxh
eW91dFNpemUgPSBtX3ZpZXdTaXplOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBtaW5EZXZpY2VXaWR0aCA9IGNvbXB1dGVkTWluRGV2aWNlV2lkdGgobV92aWV3cG9ydEFyZ3Vt
ZW50cy5taW5EZXZpY2VXaWR0aCk7CisgICAgYXV0byBzY2FsZWREZXZpY2VIZWlnaHQgPSBzdGQ6
OnJvdW5kKG1fdmlld1NpemUuaGVpZ2h0KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX3ZpZXdTaXpl
LndpZHRoKCkpKTsKKyAgICBtX21pbmltdW1MYXlvdXRTaXplID0gRmxvYXRTaXplKG1pbkRldmlj
ZVdpZHRoLCBzY2FsZWREZXZpY2VIZWlnaHQpOworfQorCiBkb3VibGUgVmlld3BvcnRDb25maWd1
cmF0aW9uOjp2aWV3cG9ydEFyZ3VtZW50c0xlbmd0aChkb3VibGUgbGVuZ3RoKSBjb25zdAogewog
ICAgIGlmIChsZW5ndGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGgpCkBA
IC01MDksNyArNTMzLDYgQEAgU3RyaW5nIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6ZGVzY3JpcHRp
b24oKSBjb25zdAogICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWdub3JpbmcgaG9yaXpvbnRhbCBzY2Fs
aW5nIGNvbnN0cmFpbnRzIiwgc2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxpbmdDb25zdHJhaW50
cygpID8gInRydWUiIDogImZhbHNlIik7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJpZ25vcmluZyB2
ZXJ0aWNhbCBzY2FsaW5nIGNvbnN0cmFpbnRzIiwgc2hvdWxkSWdub3JlVmVydGljYWxTY2FsaW5n
Q29uc3RyYWludHMoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgi
YXZvaWRzIHVuc2FmZSBhcmVhIiwgYXZvaWRzVW5zYWZlQXJlYSgpID8gInRydWUiIDogImZhbHNl
Iik7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJmb3JjZSBob3Jpem9udGFsIHNocmluayB0byBmaXQi
LCBtX2ZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0ID8gInRydWUiIDogImZhbHNlIik7CiAgICAg
CiAgICAgdHMuZW5kR3JvdXAoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9W
aWV3cG9ydENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25m
aWd1cmF0aW9uLmgKaW5kZXggOWVjNjg5M2E1MmRkZmNjMmNmMWE5MzkyYjRhYTNkMTNiODExMTYy
Yi4uZDZhNTBjYTQ1YzEwMDYyOTk3ZDgyZjViNzc0MDNjYWVlNzRiZTk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oCkBAIC03NywxMiArNzcsMTIgQEAg
cHVibGljOgogICAgIEZsb2F0U2l6ZSB2aWV3U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1Np
emU7IH0KIAogICAgIGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUoKSBjb25zdCB7
IHJldHVybiBtX21pbmltdW1MYXlvdXRTaXplOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBz
ZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmIHZp
ZXdTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldE1pbmltdW1MYXlvdXRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYpOwogCiAgICAgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0
QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydEFyZ3VtZW50czsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgVmlld3BvcnRBcmd1
bWVudHMmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9yY2VIb3Jpem9udGFsU2hy
aW5rVG9GaXQoYm9vbCk7CisgICAgYm9vbCBzaG91bGRPdmVycmlkZURldmljZVdpZHRoV2l0aE1p
bkRldmljZVdpZHRoKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldENhbkln
bm9yZVNjYWxpbmdDb25zdHJhaW50cyhib29sKTsKICAgICB2b2lkIHNldEZvcmNlQWx3YXlzVXNl
clNjYWxhYmxlKGJvb2wgZm9yY2VBbHdheXNVc2VyU2NhbGFibGUpIHsgbV9mb3JjZUFsd2F5c1Vz
ZXJTY2FsYWJsZSA9IGZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOyB9CkBAIC0xMjEsNiArMTIxLDgg
QEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZElnbm9yZVZlcnRpY2FsU2NhbGluZ0NvbnN0cmFp
bnRzKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0
cmFpbnRzKCkgY29uc3Q7CiAKKyAgICB2b2lkIHVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKCk7CisK
ICAgICBQYXJhbWV0ZXJzIG1fY29uZmlndXJhdGlvbjsKICAgICBQYXJhbWV0ZXJzIG1fZGVmYXVs
dENvbmZpZ3VyYXRpb247CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRTaXplOwpAQCAtMTMwLDcgKzEz
Miw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fY2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRz
OwogICAgIGJvb2wgbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsKLSAgICBib29sIG1fZm9yY2VI
b3Jpem9udGFsU2hyaW5rVG9GaXQ7CiB9OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgVmlld3BvcnRDb25maWd1cmF0aW9uOjpQYXJhbWV0ZXJz
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwCmluZGV4IDgxODViY2E0ZDIwZGRkOTY2OGJhNjhkM2FiYWI2ODI1M2RjYmNl
NWEuLjA0MTUwYzFjMDg4OTEyYjM1MjhiZTU3OTc3M2MyZDk1MzFmOTUxNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
CkBAIC01Myw3ICs1Myw2IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1faXNGaXJz
dFVwZGF0ZUZvck5ld1ZpZXdTaXplOwogICAgIGVuY29kZXIgPDwgbV9pc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwogICAgIGVuY29kZXIgPDwgbV9hbGxvd1Nocmlua1RvRml0
OwotICAgIGVuY29kZXIgPDwgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdDsKICAgICBlbmNv
ZGVyIDw8IG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXc7CiB9CiAKQEAgLTkzLDgg
KzkyLDYgQEAgYm9vbCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBWaXNpYmxlQ29udGVudFIKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fYWxsb3dTaHJpbmtUb0ZpdCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2ZvcmNl
SG9yaXpvbnRhbFNocmlua1RvRml0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEzNCw3ICsxMzEsNiBAQCBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvJiBpbmZvKQogCiAgICAgdHMuZHVtcFByb3BlcnR5KCJ0aW1lc3RhbXAiLCBpbmZvLnRp
bWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CiAgICAgdHMuZHVtcFByb3Bl
cnR5KCJhbGxvd1Nocmlua1RvRml0IiwgaW5mby5hbGxvd1Nocmlua1RvRml0KCkpOwotICAgIHRz
LmR1bXBQcm9wZXJ0eSgiZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQiLCBpbmZvLmZvcmNlSG9y
aXpvbnRhbFNocmlua1RvRml0KCkpOwogICAgIGlmIChpbmZvLmhvcml6b250YWxWZWxvY2l0eSgp
KQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6b250YWxWZWxvY2l0eSIsIGluZm8uaG9y
aXpvbnRhbFZlbG9jaXR5KCkpOwogICAgIGlmIChpbmZvLnZlcnRpY2FsVmVsb2NpdHkoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
aAppbmRleCBkMjJhYmFhZjgzMDE2MTU2NWRjNzEzNDllZGE1MmQ0MTQzYjFiMjEyLi41ZjA3YzJi
OGE4NTk3MGM2YzJlYWQ1NDJhZWI5Yzg3MDQ0N2VlZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oKSA9IGRlZmF1bHQ7CiAKLSAgICBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRl
bnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJl
c3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9t
Rml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJl
ZEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVw
ZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBmb3JjZUhvcml6b250YWxTaHJpbmtU
b0ZpdCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZl
bG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKKyAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGlu
U3RhYmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hh
bmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwg
Ym9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5
LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZCkKICAgICAgICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVudFJlY3Qp
CiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRlbnRSZWN0
KQogICAgICAgICAsIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0Jv
dW5kcyh1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKQpAQCAt
NjMsNyArNjMsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmll
d1NpemUoaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplKQogICAgICAgICAsIG1faXNDaGFuZ2lu
Z09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseShpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRl
cmFjdGl2ZWx5KQogICAgICAgICAsIG1fYWxsb3dTaHJpbmtUb0ZpdChhbGxvd1Nocmlua1RvRml0
KQotICAgICAgICAsIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQoZm9yY2VIb3Jpem9udGFs
U2hyaW5rVG9GaXQpCiAgICAgICAgICwgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmll
dyhlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldykKICAgICB7CiAgICAgfQpAQCAtODEs
NyArODAsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUo
KSBjb25zdCB7IHJldHVybiBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZTsgfQogICAgIGJv
b2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTsgfQogICAgIGJvb2wgYWxs
b3dTaHJpbmtUb0ZpdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dTaHJpbmtUb0ZpdDsgfQotICAg
IGJvb2wgZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNl
SG9yaXpvbnRhbFNocmlua1RvRml0OyB9CiAgICAgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFu
Y2VzdG9yVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXc7IH0KIAogICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KQEAgLTExNCw3ICsxMTIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5IHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxs
b3dTaHJpbmtUb0ZpdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2ZvcmNlSG9yaXpvbnRhbFNocmlu
a1RvRml0IHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcgeyBmYWxzZSB9OwogfTsKIApAQCAtMTMzLDcgKzEzMCw2IEBAIGlubGluZSBib29sIG9w
ZXJhdG9yPT0oY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgYSwgY29uc3QgVmlz
aWJsZUNvbnRlCiAgICAgICAgICYmIGEuaW5TdGFibGVTdGF0ZSgpID09IGIuaW5TdGFibGVTdGF0
ZSgpCiAgICAgICAgICYmIGEuaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplKCkgPT0gYi5pc0Zp
cnN0VXBkYXRlRm9yTmV3Vmlld1NpemUoKQogICAgICAgICAmJiBhLmFsbG93U2hyaW5rVG9GaXQo
KSA9PSBiLmFsbG93U2hyaW5rVG9GaXQoKQotICAgICAgICAmJiBhLmZvcmNlSG9yaXpvbnRhbFNo
cmlua1RvRml0KCkgPT0gYi5mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCgpCiAgICAgICAgICYm
IGEuZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSA9PSBiLmVuY2xvc2VkSW5TY3Jv
bGxhYmxlQW5jZXN0b3JWaWV3KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDhlYTQzN2ZhZmJjZWRmYTY2YTE4MzAxMzc1OWYy
YTA5M2YwNWJlM2IuLjRhMTZlNmQzYmI3YTAzNTQ1YzZhYzhkYmFkZTk0N2I4ZWYxOTNmZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MTgxLDExICsxODEsNiBAQCBlbnVtIGNsYXNzIER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgewog
ICAgIFJlc2l6aW5nV2l0aERvY3VtZW50SGlkZGVuLAogfTsKIAotc3RydWN0IEFjdGl2ZVZpZXdw
b3J0TGF5b3V0U2l6ZXMgewotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6
ZTsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgdmlld1NpemU7Ci19OwotCiAjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMzExLDggKzMwNiw2IEBAIEBpbXBs
ZW1lbnRhdGlvbiBXS1dlYlZpZXcgewogICAgIHN0ZDo6b3B0aW9uYWw8aW50MzJfdD4gX2xhc3RT
ZW50RGV2aWNlT3JpZW50YXRpb247CiAKICAgICBCT09MIF9hbGxvd3NWaWV3cG9ydFNocmlua1Rv
Rml0OwotICAgIEJPT0wgX2ZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci0gICAg
Q0dGbG9hdCBfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDsKIAogICAgIEJPT0wgX2hhc0NvbW1p
dHRlZExvYWRGb3JNYWluRnJhbWU7CiAgICAgQk9PTCBfbmVlZHNSZXNldFZpZXdTdGF0ZUFmdGVy
Q29tbWl0TG9hZEZvck1haW5GcmFtZTsKQEAgLTczNCwxMyArNzI3LDkgQEAgLSAodm9pZClfaW5p
dGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgogI2lmIFBMQVRGT1JNKElPUykKICAgICBfZHJhZ0ludGVyYWN0aW9uUG9saWN5ID0g
X1dLRHJhZ0ludGVyYWN0aW9uUG9saWN5RGVmYXVsdDsKICNpZiBFTkFCTEUoRVhUUkFfWk9PTV9N
T0RFKQotICAgIF9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoID0gMzIwOwogICAgIF9hbGxvd3NW
aWV3cG9ydFNocmlua1RvRml0ID0gWUVTOwotICAgIF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNo
cmlua1RvRml0ID0gWUVTOwogI2Vsc2UKLSAgICBfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCA9
IDA7CiAgICAgX2FsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQgPSBOTzsKLSAgICBfZm9yY2VIb3Jp
em9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdCA9IE5POwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQogfQpAQCAtMjU3NSw0NiArMjU2NCwyNSBAQCAtIChVSUVkZ2VJbnNldHMpX3Njcm9s
bFZpZXdTeXN0ZW1Db250ZW50SW5zZXQKICAgICByZXR1cm4gVUlFZGdlSW5zZXRzQWRkKFtfc2Ny
b2xsVmlldyBfY29udGVudFNjcm9sbEluc2V0XSwgc2VsZi5zYWZlQXJlYUluc2V0cywgW19zY3Jv
bGxWaWV3IF9lZGdlc0FwcGx5aW5nU2FmZUFyZWFJbnNldHNUb0NvbnRlbnRJbnNldF0pOwogfQog
Ci0tIChDR0Zsb2F0KV9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoCi17Ci0gICAgcmV0dXJuIF9t
aW5pbXVtQWxsb3dlZExheW91dFdpZHRoOwotfQotCi0tICh2b2lkKV9zZXRNaW5pbXVtQWxsb3dl
ZExheW91dFdpZHRoOihDR0Zsb2F0KW1pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGgKLXsKLSAgICBp
ZiAoX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGggPT0gbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0
aCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGggPSBt
aW5pbXVtQWxsb3dlZExheW91dFdpZHRoOwotCi0gICAgYXV0byBzaXplcyA9IFtzZWxmIGFjdGl2
ZU1pbmltdW1MYXlvdXRTaXplczpzZWxmLmJvdW5kc107Ci0gICAgW3NlbGYgX2Rpc3BhdGNoU2V0
TWluaW11bUxheW91dFNpemU6c2l6ZXMubWluaW11bUxheW91dFNpemUgdmlld1NpemU6c2l6ZXMu
dmlld1NpemVdOwotfQotCi0tIChBY3RpdmVWaWV3cG9ydExheW91dFNpemVzKWFjdGl2ZU1pbmlt
dW1MYXlvdXRTaXplczooY29uc3QgQ0dSZWN0Jilib3VuZHMKKy0gKFdlYkNvcmU6OkZsb2F0U2l6
ZSlhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTooY29uc3QgQ0dSZWN0Jilib3VuZHMKIHsKICAgICBp
ZiAoX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplKQotICAgICAgICByZXR1cm4geyBXZWJDb3Jl
OjpGbG9hdFNpemUoX21pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUpLCBXZWJDb3JlOjpGbG9hdFNp
emUoX21pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUpIH07CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpGbG9hdFNpemUoX21pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUpOwogCi0gICAgQWN0aXZlVmll
d3BvcnRMYXlvdXRTaXplcyBzaXplczsKICNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMTAwMDAKLSAgICBzaXplcy52aWV3U2l6ZSA9IFdlYkNvcmU6OkZsb2F0U2l6ZShV
SUVkZ2VJbnNldHNJbnNldFJlY3QoQ0dSZWN0TWFrZSgwLCAwLCBib3VuZHMuc2l6ZS53aWR0aCwg
Ym91bmRzLnNpemUuaGVpZ2h0KSwgc2VsZi5fc2Nyb2xsVmlld1N5c3RlbUNvbnRlbnRJbnNldCku
c2l6ZSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZShVSUVkZ2VJbnNldHNJbnNldFJl
Y3QoQ0dSZWN0TWFrZSgwLCAwLCBib3VuZHMuc2l6ZS53aWR0aCwgYm91bmRzLnNpemUuaGVpZ2h0
KSwgc2VsZi5fc2Nyb2xsVmlld1N5c3RlbUNvbnRlbnRJbnNldCkuc2l6ZSk7CiAjZWxzZQotICAg
IHNpemVzLnZpZXdTaXplID0gV2ViQ29yZTo6RmxvYXRTaXplIHsgYm91bmRzLnNpemUgfTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6RmxvYXRTaXplIHsgYm91bmRzLnNpemUgfTsKICNlbmRpZgotCi0g
ICAgYXV0byBsYXlvdXRXaWR0aCA9IHN0ZDo6bWF4PGZsb2F0PihzaXplcy52aWV3U2l6ZS53aWR0
aCgpLCBzZWxmLl9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoKTsKLSAgICBzaXplcy5taW5pbXVt
TGF5b3V0U2l6ZSA9IHsgbGF5b3V0V2lkdGgsIHNpemVzLnZpZXdTaXplLmhlaWdodCgpICogKGxh
eW91dFdpZHRoIC8gc2l6ZXMudmlld1NpemUud2lkdGgoKSkgfTsKLSAgICByZXR1cm4gc2l6ZXM7
CiB9CiAKLS0gKHZvaWQpX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6KFdlYkNvcmU6OkZs
b2F0U2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSB2aWV3U2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKXZp
ZXdTaXplCistICh2b2lkKV9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOihXZWJDb3JlOjpG
bG9hdFNpemUpbWluaW11bUxheW91dFNpemUKIHsKICAgICBpZiAoX2xhc3RTZW50TWluaW11bUxh
eW91dFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50TWluaW11bUxheW91dFNpemUu
dmFsdWUoKSwgbWluaW11bUxheW91dFNpemUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0df
V0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3Bh
Z2UtPnBhZ2VJRCgpIDw8ICIgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6XSAiIDw8IG1p
bmltdW1MYXlvdXRTaXplIDw8ICIgdmlld1NpemUgIiA8PCB2aWV3U2l6ZSA8PCAiIGNvbnRlbnRa
b29tU2NhbGUgIiA8PCBjb250ZW50Wm9vbVNjYWxlKHNlbGYpKTsKLSAgICBfcGFnZS0+c2V0Vmll
d3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUobWluaW11bUxheW91dFNpemUsIHZp
ZXdTaXplKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1b
V0tXZWJWaWV3ICIgPDwgX3BhZ2UtPnBhZ2VJRCgpIDw8ICIgX2Rpc3BhdGNoU2V0TWluaW11bUxh
eW91dFNpemU6XSAiIDw8IG1pbmltdW1MYXlvdXRTaXplIDw8ICIgY29udGVudFpvb21TY2FsZSAi
IDw8IGNvbnRlbnRab29tU2NhbGUoc2VsZikpOworICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZp
Z3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSk7CiAgICAgX2xhc3RT
ZW50TWluaW11bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKIH0KIApAQCAtMjY0Miwx
MCArMjYxMCw4IEBAIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkCiAgICAgW19zY3JvbGxW
aWV3IHNldEZyYW1lOmJvdW5kc107CiAKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1v
ZGUgPT0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpIHsKLSAgICAgICAg
aWYgKCFfb3ZlcnJpZGVzTWluaW11bUxheW91dFNpemUpIHsKLSAgICAgICAgICAgIGF1dG8gc2l6
ZXMgPSBbc2VsZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZXM6c2VsZi5ib3VuZHNdOwotICAgICAg
ICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6c2l6ZXMubWluaW11bUxh
eW91dFNpemUgdmlld1NpemU6c2l6ZXMudmlld1NpemVdOwotICAgICAgICB9CisgICAgICAgIGlm
ICghX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplKQorICAgICAgICAgICAgW3NlbGYgX2Rpc3Bh
dGNoU2V0TWluaW11bUxheW91dFNpemU6W3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemU6c2Vs
Zi5ib3VuZHNdXTsKICAgICAgICAgaWYgKCFfb3ZlcnJpZGVzTWF4aW11bVVub2JzY3VyZWRTaXpl
KQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldl
YkNvcmU6OkZsb2F0U2l6ZShib3VuZHMuc2l6ZSldOwogCkBAIC01MDMxLDcgKzQ5OTcsNyBAQCAt
ICh2b2lkKV9zZXRNaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOihDR1NpemUpbWluaW11bUxheW91
dFNpemVPdmVycmlkZQogICAgIF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlID0gbWluaW11bUxh
eW91dFNpemVPdmVycmlkZTsKIAogICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSA9
PSBEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykKLSAgICAgICAgW3NlbGYg
X2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1M
YXlvdXRTaXplT3ZlcnJpZGUpIHZpZXdTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5
b3V0U2l6ZU92ZXJyaWRlKV07CisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlv
dXRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKV07CiAK
IH0KIApAQCAtNTEzOCwyMCArNTEwNCw2IEBAIC0gKHZvaWQpX3NldE1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlOihDR1NpemUpc2l6ZQogICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKHNpemUpXTsKIH0KIAotLSAodm9p
ZClfc2V0Rm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdDooQk9PTClmb3JjZUhvcml6
b250YWxWaWV3cG9ydFNocmlua1RvRml0Ci17Ci0gICAgaWYgKF9mb3JjZUhvcml6b250YWxWaWV3
cG9ydFNocmlua1RvRml0ID09IGZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0
ID0gZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdDsKLSAgICBbc2VsZiBfc2NoZWR1
bGVWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVdOwotfQotCi0tIChCT09MKV9mb3JjZUhvcml6b250
YWxWaWV3cG9ydFNocmlua1RvRml0Ci17Ci0gICAgcmV0dXJuIF9mb3JjZUhvcml6b250YWxWaWV3
cG9ydFNocmlua1RvRml0OwotfQotCiAtICh2b2lkKV9zZXRBbGxvd3NWaWV3cG9ydFNocmlua1Rv
Rml0OihCT09MKWFsbG93U2hyaW5rVG9GaXQKIHsKICAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtU
b0ZpdCA9IGFsbG93U2hyaW5rVG9GaXQ7CkBAIC01MTkzLDcgKzUxNDUsNyBAQCAtICh2b2lkKV9i
ZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2Nr
CiAKICAgICBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSA9IER5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGU6OlJlc2l6aW5nV2l0aEFuaW1hdGlvbjsKIAotICAgIGF1dG8gb2xkU2l6ZXMgPSBbc2Vs
ZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZXM6c2VsZi5ib3VuZHNdOworICAgIGF1dG8gb2xkTWlu
aW11bUxheW91dFNpemUgPSBbc2VsZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTpzZWxmLmJvdW5k
c107CiAgICAgYXV0byBvbGRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5v
YnNjdXJlZFNpemUoc2VsZiwgb2xkQm91bmRzKTsKICAgICBpbnQzMl90IG9sZE9yaWVudGF0aW9u
ID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAgICAgVUlFZGdlSW5zZXRzIG9sZE9ic2N1cmVk
SW5zZXRzID0gX29ic2N1cmVkSW5zZXRzOwpAQCAtNTIwMSwxOSArNTE1MywxOSBAQCAtICh2b2lk
KV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJs
b2NrCiAgICAgdXBkYXRlQmxvY2soKTsKIAogICAgIENHUmVjdCBuZXdCb3VuZHMgPSBzZWxmLmJv
dW5kczsKLSAgICBhdXRvIG5ld1NpemVzID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemVz
Om5ld0JvdW5kc107CisgICAgYXV0byBuZXdNaW5pbXVtTGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2
ZU1pbmltdW1MYXlvdXRTaXplOm5ld0JvdW5kc107CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsK
ICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAg
ICAgVUlFZGdlSW5zZXRzIG5ld09ic2N1cmVkSW5zZXRzID0gX29ic2N1cmVkSW5zZXRzOwogICAg
IENHUmVjdCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzID0gVUlFZGdlSW5z
ZXRzSW5zZXRSZWN0KG5ld0JvdW5kcywgX29ic2N1cmVkSW5zZXRzKTsKICAgICBDR1JlY3QgY29u
dGVudFZpZXdCb3VuZHMgPSBbX2NvbnRlbnRWaWV3IGJvdW5kc107CiAKLSAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCEoX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplICYmIG5ld1NpemVzLm1pbmlt
dW1MYXlvdXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQg
c2l6ZSBzaG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0byBtaW5pbWl6ZSBsYXlv
dXRzLiIpOwotICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykgfHwgbmV3U2l6ZXMubWlu
aW11bUxheW91dFNpemUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNjdXJl
ZFJlY3RJblNlbGZDb29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50Vmlld0JvdW5k
cykpIHsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCEoX292ZXJyaWRlc01pbmltdW1MYXlvdXRT
aXplICYmIG5ld01pbmltdW1MYXlvdXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xs
aW5nIHRoZSBsYXlvdXQgc2l6ZSBzaG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0
byBtaW5pbWl6ZSBsYXlvdXRzLiIpOworICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykg
fHwgbmV3TWluaW11bUxheW91dFNpemUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJl
VW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50
Vmlld0JvdW5kcykpIHsKICAgICAgICAgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPSBEeW5h
bWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZzsKICAgICAgICAgW3NlbGYgX2ZyYW1l
T3JCb3VuZHNDaGFuZ2VkXTsKICAgICAgICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6
ZSkKLSAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld1Np
emVzLm1pbmltdW1MYXlvdXRTaXplIHZpZXdTaXplOm5ld1NpemVzLnZpZXdTaXplXTsKKyAgICAg
ICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld01pbmltdW1MYXlv
dXRTaXplXTsKICAgICAgICAgaWYgKF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpCiAg
ICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29y
ZTo6RmxvYXRTaXplKG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgICAgICBpZiAoX292
ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uKQpAQCAtNTIyNCw3ICs1MTc2LDcgQEAgLSAodm9p
ZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVC
bG9jawogICAgIH0KIAogICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChvbGRCb3VuZHMsIG5ld0Jv
dW5kcykKLSAgICAgICAgJiYgb2xkU2l6ZXMubWluaW11bUxheW91dFNpemUgPT0gbmV3U2l6ZXMu
bWluaW11bUxheW91dFNpemUKKyAgICAgICAgJiYgb2xkTWluaW11bUxheW91dFNpemUgPT0gbmV3
TWluaW11bUxheW91dFNpemUKICAgICAgICAgJiYgb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID09
IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZQogICAgICAgICAmJiBvbGRPcmllbnRhdGlvbiA9PSBu
ZXdPcmllbnRhdGlvbgogICAgICAgICAmJiBVSUVkZ2VJbnNldHNFcXVhbFRvRWRnZUluc2V0cyhv
bGRPYnNjdXJlZEluc2V0cywgbmV3T2JzY3VyZWRJbnNldHMpKSB7CkBAIC01MjQ0LDEzICs1MTk2
LDEzIEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXiko
dm9pZCkpdXBkYXRlQmxvY2sKICAgICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgYWRkU3Vidmlldzpb
X2NvbnRlbnRWaWV3IHVuc2NhbGVkVmlld11dOwogCiAgICAgQ0dTaXplIGNvbnRlbnRTaXplSW5D
b250ZW50Vmlld0Nvb3JkaW5hdGVzID0gY29udGVudFZpZXdCb3VuZHMuc2l6ZTsKLSAgICBbX3Nj
cm9sbFZpZXcgc2V0TWluaW11bVpvb21TY2FsZTpzdGQ6Om1pbihuZXdTaXplcy5taW5pbXVtTGF5
b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMud2lk
dGgsIFtfc2Nyb2xsVmlldyBtaW5pbXVtWm9vbVNjYWxlXSldOwotICAgIFtfc2Nyb2xsVmlldyBz
ZXRNYXhpbXVtWm9vbVNjYWxlOnN0ZDo6bWF4KG5ld1NpemVzLm1pbmltdW1MYXlvdXRTaXplLndp
ZHRoKCkgLyBjb250ZW50U2l6ZUluQ29udGVudFZpZXdDb29yZGluYXRlcy53aWR0aCwgW19zY3Jv
bGxWaWV3IG1heGltdW1ab29tU2NhbGVdKV07CisgICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1a
b29tU2NhbGU6c3RkOjptaW4obmV3TWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIGNvbnRlbnRT
aXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBbX3Njcm9sbFZpZXcgbWluaW11bVpv
b21TY2FsZV0pXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0TWF4aW11bVpvb21TY2FsZTpzdGQ6Om1h
eChuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3
Q29vcmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xsVmlldyBtYXhpbXVtWm9vbVNjYWxlXSldOwogCiAg
ICAgLy8gQ29tcHV0ZSB0aGUgbmV3IHNjYWxlIHRvIGtlZXAgdGhlIGN1cnJlbnQgY29udGVudCB3
aWR0aCBpbiB0aGUgc2Nyb2xsdmlldy4KICAgICBDR0Zsb2F0IG9sZFdlYlZpZXdXaWR0aEluQ29u
dGVudFZpZXdDb29yZGluYXRlcyA9IG9sZFVub2JzY3VyZWRDb250ZW50UmVjdC53aWR0aCgpOwog
ICAgIENHRmxvYXQgdmlzaWJsZUNvbnRlbnRWaWV3V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlcyA9
IHN0ZDo6bWluKGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBvbGRX
ZWJWaWV3V2lkdGhJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMpOwotICAgIENHRmxvYXQgdGFyZ2V0
U2NhbGUgPSBuZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gdmlzaWJsZUNvbnRl
bnRWaWV3V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlczsKKyAgICBDR0Zsb2F0IHRhcmdldFNjYWxl
ID0gbmV3TWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIHZpc2libGVDb250ZW50Vmlld1dpZHRo
SW5Db250ZW50Q29vcmRpbmF0ZXM7CiAgICAgQ0dGbG9hdCByZXNpemVBbmltYXRpb25WaWV3QW5p
bWF0aW9uU2NhbGUgPSB0YXJnZXRTY2FsZSAvIGNvbnRlbnRab29tU2NhbGUoc2VsZik7CiAgICAg
W19yZXNpemVBbmltYXRpb25WaWV3IHNldFRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybU1ha2VT
Y2FsZShyZXNpemVBbmltYXRpb25WaWV3QW5pbWF0aW9uU2NhbGUsIHJlc2l6ZUFuaW1hdGlvblZp
ZXdBbmltYXRpb25TY2FsZSldOwogCkBAIC01MjkwLDExICs1MjQyLDExIEBAIC0gKHZvaWQpX2Jl
Z2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sK
ICAgICBVSUVkZ2VJbnNldHMgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzID0gW3NlbGYgX2NvbXB1
dGVkVW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRdOwogICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCh1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMu
dG9wLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMucmlnaHQsIHVub2JzY3VyZWRTYWZlQXJlYUlu
c2V0cy5ib3R0b20sIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5sZWZ0KTsKIAotICAgIF9sYXN0
U2VudE1pbmltdW1MYXlvdXRTaXplID0gbmV3U2l6ZXMubWluaW11bUxheW91dFNpemU7CisgICAg
X2xhc3RTZW50TWluaW11bUxheW91dFNpemUgPSBuZXdNaW5pbXVtTGF5b3V0U2l6ZTsKICAgICBf
bGFzdFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemU7
CiAgICAgX2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAotICAg
IF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld1NpemVzLm1pbmltdW1MYXlvdXRT
aXplLCBuZXdTaXplcy52aWV3U2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxl
UmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5h
dGVzLCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHNFeHRlbnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbik7CisgICAgX3Bh
Z2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobmV3TWluaW11bUxheW91dFNpemUsIG5ld01h
eGltdW1Vbm9ic2N1cmVkU2l6ZSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgdW5v
YnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNl
bGZDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50LCB0YXJnZXRTY2Fs
ZSwgbmV3T3JpZW50YXRpb24pOwogICAgIGlmIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHkqIGRy
YXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVhLT5z
ZXRTaXplKFdlYkNvcmU6OkludFNpemUobmV3Qm91bmRzLnNpemUpKTsKIH0KQEAgLTUzNTksMTIg
KzUzMTEsMTIgQEAgLSAodm9pZClfZW5kQW5pbWF0ZWRSZXNpemUKICAgICBbc2VsZiBfc2NoZWR1
bGVWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVdOwogCiAgICAgQ0dSZWN0IG5ld0JvdW5kcyA9IHNl
bGYuYm91bmRzOwotICAgIGF1dG8gbmV3U2l6ZXMgPSBbc2VsZiBhY3RpdmVNaW5pbXVtTGF5b3V0
U2l6ZXM6bmV3Qm91bmRzXTsKKyAgICBhdXRvIG5ld01pbmltdW1MYXlvdXRTaXplID0gW3NlbGYg
YWN0aXZlTWluaW11bUxheW91dFNpemU6bmV3Qm91bmRzXTsKICAgICBhdXRvIG5ld01heGltdW1V
bm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6ZShzZWxmLCBuZXdCb3Vu
ZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVPcmllbnRhdGlvbihzZWxm
KTsKIAotICAgIGlmICghX2xhc3RTZW50TWluaW11bUxheW91dFNpemUgfHwgbmV3U2l6ZXMubWlu
aW11bUxheW91dFNpemUgIT0gX2xhc3RTZW50TWluaW11bUxheW91dFNpemUudmFsdWUoKSkKLSAg
ICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6bmV3U2l6ZXMubWluaW11
bUxheW91dFNpemUgdmlld1NpemU6bmV3U2l6ZXMudmlld1NpemVdOworICAgIGlmICghX2xhc3RT
ZW50TWluaW11bUxheW91dFNpemUgfHwgbmV3TWluaW11bUxheW91dFNpemUgIT0gX2xhc3RTZW50
TWluaW11bUxheW91dFNpemUudmFsdWUoKSkKKyAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWlu
aW11bUxheW91dFNpemU6bmV3TWluaW11bUxheW91dFNpemVdOwogICAgIGlmICghX2xhc3RTZW50
TWF4aW11bVVub2JzY3VyZWRTaXplIHx8IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSAhPSBfbGFz
dFNlbnRNYXhpbXVtVW5vYnNjdXJlZFNpemUudmFsdWUoKSkKICAgICAgICAgW3NlbGYgX2Rpc3Bh
dGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNYXhpbXVt
VW5vYnNjdXJlZFNpemUpXTsKICAgICBpZiAoIV9sYXN0U2VudERldmljZU9yaWVudGF0aW9uIHx8
IG5ld09yaWVudGF0aW9uICE9IF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uLnZhbHVlKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCA4ZjI5M2Y4MzcyMDk5ZTIxZjEzMTY5MGVhNzM2MmY0ZjJmYTEzNDEwLi43MDdk
ZjkyMTdiY2RmNDcxYjE4MDBjYTkxZWYzY2EzNjI2N2E4MDgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTIwNCw4
ICsyMDQsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludGVyZmFjZU9yaWVudGF0aW9uT3Zl
cnJpZGU6KSBVSUludGVyZmFjZU9yaWVudGF0aW9uIF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJy
aWRlOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NWaWV3cG9ydFNo
cmlua1RvRml0OikgQk9PTCBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdDsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6
KSBCT09MIF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0IFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1p
bmltdW1BbGxvd2VkTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtQWxsb3dlZExheW91dFdp
ZHRoIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gRklYTUU6IFJlbW92
ZSB0aGVzZSB0aHJlZSBwcm9wZXJ0aWVzIG9uY2Ugd2UgZXhwb3NlIFdLV2ViVmlld0NvbnRlbnRQ
cm92aWRlciBhcyBBUEkuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1f
aXNEaXNwbGF5aW5nUERGKSBCT09MIF9kaXNwbGF5aW5nUERGOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTYwYjg4Mzg1ODMwMGJhMjJkNjUzYTQ0MzJiOWIy
NmNiMDdlZTkzMy4uNDdiMWVkNjRmOTJmYzdkN2FhYjMzNTgyMjFhMjkyYjgwZGY0NGQyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MDU5LDcgKzYwNTks
NiBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJh
bWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLm1pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJvdmlk
ZXJzID0gbV9wYWdlQ2xpZW50Lm1pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJvdmlkZXJzKCk7
CiAgICAgcGFyYW1ldGVycy5pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyA9IG1fZm9yY2VBbHdh
eXNVc2VyU2NhbGFibGU7CiAgICAgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5p
bXVtTGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemU7
Ci0gICAgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZSA9IG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uVmlld1NpemU7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJl
ZFNpemUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGYxMjMyNWE2NmFmZGFiMWNjNmUzM2RlNjVmNjZh
MTRlMWMyZDZkNmYuLjgwNzAwNTAzNzMxYjAyNjdlMzc3NzMwOWM2ZGRiNDkyYzMyYmE1ZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NDUsMTAgKzU0NSwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpOwogICAg
IHZvaWQgb3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKTsKIAotICAgIHZvaWQgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQz
Ml90IGRldmljZU9yaWVudGF0aW9uKTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2Fs
ZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbik7CiAgICAgdm9pZCBzeW5jaHJvbml6ZUR5bmFt
aWNWaWV3cG9ydFVwZGF0ZSgpOwogCi0gICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25N
aW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHZpZXdTaXplKTsKKyAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlv
bk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQg
c2V0TWF4aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAg
IHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7CiAgICAgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0KQEAgLTIx
MzIsNyArMjEzMiw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5vZGVBc3Npc3Rh
bmNlQXJndW1lbnRzPiBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVudHM7CiAgICAgYm9v
bCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZTsKLSAgICBXZWJD
b3JlOjpGbG9hdFNpemUgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZTsKICAgICBXZWJD
b3JlOjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAwZmEwNzg4MWRj
YzIyYjIwOWNkMjMwYTNmMjQyZTJhYzU3YTM1ODQwLi5kMGNiZGUxYTlhZDk1OTY1NWQyZWQ0MTdh
OWY4ZjgzZDI3MmIwZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQpAQCAtNDAyLDcgKzQwMiw2IEBAIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJl
Y3Q6KENHUmVjdCl2aXNpYmxlQ29udGVudFJlY3QKICAgICAgICAgX3NpemVDaGFuZ2VkU2luY2VM
YXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLAogICAgICAgICBpc0NoYW5naW5nT2JzY3VyZWRJ
bnNldHNJbnRlcmFjdGl2ZWx5LAogICAgICAgICBfd2ViVmlldy5fYWxsb3dzVmlld3BvcnRTaHJp
bmtUb0ZpdCwKLSAgICAgICAgX3dlYlZpZXcuX2ZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5r
VG9GaXQsCiAgICAgICAgIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LAogICAgICAg
ICB0aW1lc3RhbXAsCiAgICAgICAgIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA0
OWU3YzQzNjdhOGE1ZTNhNWMwNzg4YWJlMGY5YTdlMDhkMDQ2NDFhLi5mNTBhYjJjMjYyNWVjODY1
ZmZiYzkxZGY4MTc3N2U2ODQ4MWU4MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6b3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKQogICAgIG1fcGFnZUNsaWVudC5vdmVy
Zmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBj
b25zdCBGbG9hdFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGlt
dW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRh
cmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0
U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRS
ZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBk
ZXZpY2VPcmllbnRhdGlvbikKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsCiAKICAgICBtX2R5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9yVGFyZ2V0ID0gdHJ1ZTsKICAgICBtX2R5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9yTGF5ZXJUcmVlQ29tbWl0ID0gdHJ1ZTsK
LSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGUobWluaW11bUxheW91dFNpemUsIHZpZXdTaXplLCBtYXhpbXVtVW5vYnNjdXJlZFNp
emUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cywgdGFyZ2V0U2NhbGUsIGRldmljZU9yaWVudGF0aW9uLCArK21fY3VycmVudER5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGVJRCksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobWluaW11bUxheW91
dFNpemUsIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCB0YXJnZXRTY2FsZSwgZGV2aWNlT3Jp
ZW50YXRpb24sICsrbV9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKSwgbV9wYWdl
SUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3luY2hyb25pemVEeW5hbWljVmlld3BvcnRV
cGRhdGUoKQpAQCAtMzU0LDEzICszNTQsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9u
aXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkKICAgICBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVXYWl0aW5nRm9yTGF5ZXJUcmVlQ29tbWl0ID0gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld1NpemUp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91
dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQogewogICAgIG1fdmlld3BvcnRD
b25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUgPSBzaXplOwotICAgIG1fdmlld3BvcnRDb25m
aWd1cmF0aW9uVmlld1NpemUgPSB2aWV3U2l6ZTsKIAogICAgIGlmIChpc1ZhbGlkKCkpCi0gICAg
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Vmlld3BvcnRDb25maWd1
cmF0aW9uTWluaW11bUxheW91dFNpemUoc2l6ZSwgdmlld1NpemUpLCBtX3BhZ2VJRCk7CisgICAg
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Vmlld3BvcnRDb25maWd1
cmF0aW9uTWluaW11bUxheW91dFNpemUoc2l6ZSksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhMGRh
NzEyYjU0ZDQ1ZmIwMjEwMTNiMGNmMDgzMjA1ZGNkYjU1YjNlLi5mYjQ0MDJhNGYyZjgzMWRkM2I2
N2IzN2E5YWZiNGY0YjIyZDMwMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWlu
dDY0X3QgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1p
bmltdW1MYXlvdXRTaXplKHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxh
eW91dFNpemUsIHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld1NpemUpOworICAg
IHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKHBhcmFtZXRlcnMudmll
d3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUpOwogICAgIHNldE1heGltdW1Vbm9i
c2N1cmVkU2l6ZShwYXJhbWV0ZXJzLm1heGltdW1Vbm9ic2N1cmVkU2l6ZSk7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiZjVmNjhj
MzgwNjI1ZWU5ZjFlZTk0OWMzMWIxZWJjZjM3M2E0NmVmLi5lYTY1MmZmNWYzMmE3YmU4ZTcxZDE2
MmU1ZTRlNTdhYTE3ZGY4OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC04NzUsMTAgKzg3NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVW
aXNpYmlsaXR5U3RhdGUoYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKIAogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRT
aXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
dmlld1NpemUpOworICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91
dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXREZXZp
Y2VPcmllbnRhdGlvbihpbnQzMl90KTsKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhp
bXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3Nl
ZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRS
ZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRV
bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmll
bnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKKyAgICB2b2lk
IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5p
bXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgdWlu
dDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKICAgICB2b2lkIHN5bmNocm9uaXpl
RHluYW1pY1ZpZXdwb3J0VXBkYXRlKGRvdWJsZSYgbmV3VGFyZ2V0U2NhbGUsIFdlYkNvcmU6OkZs
b2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCB1aW50NjRfdCYgbmV4dFZhbGlkTGF5ZXJUcmVl
VHJhbnNhY3Rpb25JRCk7CiAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc2NhbGVGcm9tVUlQcm9j
ZXNzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKSBjb25zdDsKICAgICB2b2lk
IHVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
SW5mbyYsIE1vbm90b25pY1RpbWUgb2xkZXN0VGltZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDZkZWYz
YjA1YWQxNTI1ZmFlZThkNmI0MjIzZTVjZWFlYWJmODliN2UuLmQyYzY4NGQ3ZjJmMGY5N2E3YjQx
ZTk4M2Q1YjJmNDVjZDBmOGJkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDEsMTAgKzQxLDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEtleUV2ZW50KFdlYktpdDo6V2Vi
S2V5Ym9hcmRFdmVudCBldmVudCkKICAgICBNb3VzZUV2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVu
dCBldmVudCkKICNpZiBQTEFURk9STShJT1MpCi0gICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
TWluaW11bUxheW91dFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUsIFdlYkNvcmU6OkZsb2F0
U2l6ZSB2aWV3U2l6ZSkKKyAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0
U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRNYXhpbXVtVW5vYnNjdXJlZFNp
emUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0RGV2aWNlT3JpZW50YXRpb24oaW50
MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKLSAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdl
YkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIHZp
ZXdTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3Jl
OjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qg
dGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRh
cmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCisgICAg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91
dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6
OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRS
ZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFy
Z2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNl
T3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKICAgICBT
eW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZSgpIC0+IChkb3VibGUgbmV3VGFyZ2V0U2Nh
bGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90IG5leHRW
YWxpZExheWVyVHJlZVRyYW5zYWN0aW9uSUQpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCA1Y2VkNDhiMGIzZjI1NjIwZTdlMGY3MDMwNjdkNWRhNmI1ZTU3OTI2Li5lNDc1ODRkNTc5ZDMx
ZTA4NDhkNjM2NzMyMmU3Yzc3MjQ3NGRjYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjQ1NCwxMCArMjQ1NCwxMCBA
QCB2b2lkIFdlYlBhZ2U6OmF1dG9maWxsTG9naW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIHVz
ZXJuYW1lLCBjb25zdCBTdHJpbmcmIHBhcwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNp
emUsIGNvbnN0IEZsb2F0U2l6ZSYgdmlld1NpemUpCit2b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0
Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIHsK
LSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBhZ2UgIiA8
PCBtX3BhZ2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXpl
ICIgPDwgc2l6ZSA8PCAiIHZpZXdTaXplICIgPDwgdmlld1NpemUpOwotICAgIGlmIChtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5zZXRNaW5pbXVtTGF5b3V0U2l6ZShzaXplLCB2aWV3U2l6ZSkpCisg
ICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwg
bV9wYWdlSUQgPDwgIiBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSAi
IDw8IHNpemUpOworICAgIGlmIChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRNaW5pbXVtTGF5
b3V0U2l6ZShzaXplKSkKICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwog
fQogCkBAIC0yNDkyLDEyICsyNDkyLDEyIEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRUZXh0QXV0b3Np
emluZygpCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2
aWV3U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJn
ZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZUlEKQordm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKIHsKICAgICBTZXRG
b3JTY29wZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0
ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3
aGVyZSB0aGUgY29udGVudCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwg
cG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0LgogICAgIC8vIFRvIGhhbmRsZSB0aG9zZSBjYXNlcywg
d2Ugd291bGQgbmVlZCB0byByZWRvIHRoaXMgY29tcHV0YXRpb24gb24gZXZlcnkgY2hhbmdlIHVu
dGlsIHRoZSBuZXh0IHZpc2libGUgY29udGVudCByZWN0IHVwZGF0ZS4KLSAgICBMT0dfV0lUSF9T
VFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIlxuV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZSAtIG1pbmltdW1MYXlvdXRTaXplICIgPDwgbWluaW11bUxheW91dFNpemUgPDwg
IiB2aWV3U2l6ZSAiIDw8IHZpZXdTaXplIDw8ICIgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgIiA8PCB0
YXJnZXRVbm9ic2N1cmVkUmVjdCA8PCAiIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCAiIDw8IHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCA8PCAiIHRhcmdldFNjYWxlICIgPDwgdGFyZ2V0U2NhbGUp
OworICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiXG5XZWJQYWdl
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIC0gbWluaW11bUxheW91dFNpemUgIiA8PCBtaW5p
bXVtTGF5b3V0U2l6ZSA8PCAiIHRhcmdldFVub2JzY3VyZWRSZWN0ICIgPDwgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgIiA8PCB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8IHRhcmdldFNjYWxlKTsKIAogICAgIEZy
YW1lVmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIElu
dFNpemUgb2xkQ29udGVudFNpemUgPSBmcmFtZVZpZXcuY29udGVudHNTaXplKCk7CkBAIC0yNTMw
LDcgKzI1MzAsNyBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29ucwogICAgIH0KIAogICAgIExPR19X
SVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZSBzZXR0aW5nIG1pbmltdW0gbGF5b3V0IHNpemUgdG8gIiA8PCBtaW5pbXVt
TGF5b3V0U2l6ZSk7Ci0gICAgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0TWluaW11bUxheW91
dFNpemUobWluaW11bUxheW91dFNpemUsIHZpZXdTaXplKTsKKyAgICBtX3ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5zZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSk7CiAgICAgSW50
U2l6ZSBuZXdMYXlvdXRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0U2l6ZSgp
OwogCiAgICAgaWYgKHNldEZpeGVkTGF5b3V0U2l6ZShuZXdMYXlvdXRTaXplKSkKQEAgLTI5MTIs
OSArMjkxMiw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25z
dCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAgICAgaWYgKHNjcm9sbFBvc2l0
aW9uICE9IGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICBtX2R5bmFtaWNTaXpl
VXBkYXRlSGlzdG9yeS5jbGVhcigpOwogCi0gICAgYm9vbCBkaWRVcGRhdGVGb3JjZUhvcml6b250
YWxTaHJpbmtUb0ZpdCA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldEZvcmNlSG9yaXpvbnRh
bFNocmlua1RvRml0KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZm9yY2VIb3Jpem9udGFs
U2hyaW5rVG9GaXQoKSk7Ci0gICAgYm9vbCBkaWRVcGRhdGVDYW5JZ25vcmVWaWV3cG9ydFNjYWxp
bmdDb25zdHJhaW50cyA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldENhbklnbm9yZVNjYWxp
bmdDb25zdHJhaW50cyhtX2lnbm9yZVZpZXdwb3J0U2NhbGluZ0NvbnN0cmFpbnRzICYmIHZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uYWxsb3dTaHJpbmtUb0ZpdCgpKTsKLSAgICBpZiAoZGlk
VXBkYXRlRm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgfHwgZGlkVXBkYXRlQ2FuSWdub3JlVmll
d3BvcnRTY2FsaW5nQ29uc3RyYWludHMpCisgICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9u
LnNldENhbklnbm9yZVNjYWxpbmdDb25zdHJhaW50cyhtX2lnbm9yZVZpZXdwb3J0U2NhbGluZ0Nv
bnN0cmFpbnRzICYmIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uYWxsb3dTaHJpbmtUb0Zp
dCgpKSkKICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogCiAgICAgZnJh
bWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50U2l6ZSh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLnVub2JzY3VyZWRDb250ZW50UmVjdCgpLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODc2YTMyY2ZhYWJhZGYyYjEwZGY2YjNi
MmIyM2Y2OTJiODczNTY3ZC4uNGFiYjA2NzU2NDVmOWIwNTEzMDNjYzM2Mzc1MjNiMTE1NTQxOWZm
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDE4LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBv
dmVycmlkZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhvcnRvbi4KKworICAgICAgICBSZW1vdmUgYSB0ZXN0IHRoYXQncyBubyBsb25nZXIgdXNlZnVs
LCBub3cgdGhhdCB0aGUgU1BJIGl0IHdhcyB0ZXN0aW5nIGlzIGdvbmUuIFRoaXMgZnVuY3Rpb25h
bGl0eSBpcyBub3cKKyAgICAgICAgdGVzdGVkIGJ5IHRoZSBsYXlvdXQgdGVzdCBhZGRlZCBpbiB0
aGlzIHBhdGNoLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
Vmlld3BvcnRTaXppbmdUZXN0cy5tbTogUmVtb3ZlZC4KKwogMjAxOC0wNC0yNSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbRXh0cmEgem9vbSBtb2Rl
XSBUaGUgc2VhcmNoIGZpZWxkIG9uIHd3dy5iaW5nLmNvbSBpcyBtaXNzaW5nIGxhYmVsIHRleHQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTM3NmUyNmJiOWQxNDQ2YmQwMzY5ZjAxNmRiZTQy
MTU2M2U2ZmM5MS4uODMyN2YxN2M2NjA0ZjYzNjA3OTYzZTQ3YjJhYjY1Y2RlNzVmZTEyMCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0LDcgKzk0LDYgQEAKIAkJMkUxNEE1MjkxRDNGRTk2
QjAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTE0QTUyODFEM0ZF
OEI4MDAxMEYzNUIgLyogYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9Owog
CQkyRTFCN0IwMDFENDFBQkE3MDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRp
bmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1l
bmRpbmcuaHRtbCAqLzsgfTsKIAkJMkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdlLXZp
ZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxQjdCMDExRDQxQjFCMzAw
NzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0
bWwgKi87IH07Ci0JCTJFMUI4ODFGMjA0MEVFNTMwMEZGRjZBOSAvKiBWaWV3cG9ydFNpemluZ1Rl
c3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUx
Qjg4MUUyMDQwRUU1MzAwRkZGNkE5IC8qIFZpZXdwb3J0U2l6aW5nVGVzdHMubW0gKi87IH07CiAJ
CTJFMURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
MURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICov
OyB9OwogCQkyRTFERkRFRjFENDJBNkYyMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8tYXV0b3BsYXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLzsgfTsKIAkJMkUxREZERjExRDQyRTFFNDAwNzE0QTAw
IC8qIGxhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmlu
Zy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLzsgfTsKQEAgLTEyNTQsNyArMTI1Myw2IEBA
CiAJCTJFMTRBNTI4MUQzRkU4QjgwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdBRkYx
RDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMUI3QjAxMUQ0MUIxQjMwMDc1
NThCNCAvKiBsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xz
LWFmdGVyLXNlZWstdG8tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RTFCODgxRTIwNDBFRTUzMDBGRkY2QTkgLyogVmlld3BvcnRTaXppbmdUZXN0cy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZpZXdwb3J0U2l6aW5nVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJFMURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0
aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy13
aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFERkRFRTFE
NDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRv
cGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxREZERjAxRDQyRTE0
NDAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVy
LWVuZGluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXNl
ZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNzQsNyArMjM3Miw2IEBACiAJCQkJRjRDODc5N0UyMDU5RDhE
MzAwOUNEMDBCIC8qIFNjcm9sbFZpZXdJbnNldFRlc3RzLm1tICovLAogCQkJCUY0NTAzM0Y0MjA2
QkVDOTUwMDkzNTFDRSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1tICovLAogCQkJCUY0Njg0OUJE
MUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAqLywKLQkJCQkyRTFCODgx
RTIwNDBFRTUzMDBGRkY2QTkgLyogVmlld3BvcnRTaXppbmdUZXN0cy5tbSAqLywKIAkJCQk1MTQ5
NThCRDFGNzQyN0FDMDBFODdCQUQgLyogV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbSAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gaW9zOwpAQCAtMzc2MCw3ICszNzU3LDYgQEAKIAkJCQk3QzgzRTAzQTFE
MEE2MDI3MDBGRUJDRjMgLyogVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QzgzRTBDNjFEMEE2NTRFMDBGRUJDRjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxMTVFQjM0MzFFRTBCQTAzMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9y
Vmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTJFMUI4ODFGMjA0MEVFNTMwMEZG
RjZBOSAvKiBWaWV3cG9ydFNpemluZ1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM1NkZC
MjIxRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTgzNzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxMzlFNzcxQTQyM0E1QjAwRjU5MEY1IC8qIFdlYWtPYmpDUHRy
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9WaWV3cG9ydFNpemluZ1Rlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvVmlld3BvcnRTaXppbmdUZXN0cy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTgwMGQzNzM2Mjc5YWNkNDdhNjJkYTVkZmExNjAzYTkxYjA5ODBlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9WaWV3cG9ydFNpemluZ1Rlc3RzLm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQg
JiYgUExBVEZPUk0oSU9TKQotCi0jaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7Ci0KLUBpbXBsZW1lbnRhdGlvbiBUZXN0
V0tXZWJWaWV3IChWaWV3cG9ydFRlc3RpbmdIZWxwZXJzKQotCi0tIChCT09MKXNjYWxlSXNBcHBy
b3hpbWF0ZWx5OihDR0Zsb2F0KWV4cGVjdGVkU2NhbGUKLXsKLSAgICBzdGF0aWMgY29uc3QgZG91
YmxlIG1heGltdW1FeHBlY3RlZFNjYWxlRGlmZmVyZW5jZSA9IDAuMDAxOwotICAgIHJldHVybiBB
QlMoc2VsZi5zY3JvbGxWaWV3Lnpvb21TY2FsZSAtIGV4cGVjdGVkU2NhbGUpIDwgbWF4aW11bUV4
cGVjdGVkU2NhbGVEaWZmZXJlbmNlOwotfQotCi0tICh2b2lkKWV4cGVjdFNjYWxlVG9CZWNvbWU6
KENHRmxvYXQpZXhwZWN0ZWRTY2FsZQotewotICAgIHdoaWxlICghW3NlbGYgc2NhbGVJc0FwcHJv
eGltYXRlbHk6ZXhwZWN0ZWRTY2FsZV0pCi0gICAgICAgIFtzZWxmIHdhaXRGb3JOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlXTsKLX0KLQotQGVuZAotCi1zdGF0aWMgTlNTdHJpbmcgKnZpZXdwb3J0VGVz
dFBhZ2VNYXJrdXAoTlNTdHJpbmcgKnZpZXdwb3J0TWV0YUNvbnRlbnQsIGludCBjb250ZW50V2lk
dGgsIGludCBjb250ZW50SGVpZ2h0KQotewotICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSclQCc+PGJvZHkgc3R5bGU9
J21hcmdpbjogMCc+PGRpdiBzdHlsZT0nd2lkdGg6ICVkcHg7IGhlaWdodDogJWRweDsgYmFja2dy
b3VuZC1jb2xvcjogcmVkJz48L2Rpdj4iLCB2aWV3cG9ydE1ldGFDb250ZW50LCBjb250ZW50V2lk
dGgsIGNvbnRlbnRIZWlnaHRdOwotfQotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRF
U1QoVmlld3BvcnRTaXppbmdUZXN0cywgRm9yY2VTaHJpbmtUb0ZpdFZpZXdwb3J0T3ZlcnJpZGVz
Vmlld3BvcnRQYXJhbWV0ZXJzKQotewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDAp
XSk7Ci0gICAgW3dlYlZpZXcgX3NldEFsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ6WUVTXTsKLSAg
ICBbd2ViVmlldyBfc2V0Rm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdDpOT107Ci0g
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOnZpZXdwb3J0VGVzdFBhZ2VN
YXJrdXAoQCJ3aWR0aD1kZXZpY2Utd2lkdGgsIHNocmluay10by1maXQ9bm8iLCA2MDAsIDEwMCld
OwotICAgIFt3ZWJWaWV3IGV4cGVjdFNjYWxlVG9CZWNvbWU6MV07Ci0KLSAgICBbd2ViVmlldyBf
c2V0Rm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdDpZRVNdOwotICAgIFt3ZWJWaWV3
IGV4cGVjdFNjYWxlVG9CZWNvbWU6MC42NjddOwotCi0gICAgW3dlYlZpZXcgX3NldEZvcmNlSG9y
aXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6Tk9dOwotICAgIFt3ZWJWaWV3IGV4cGVjdFNjYWxl
VG9CZWNvbWU6MV07Ci19Ci0KLVRFU1QoVmlld3BvcnRTaXppbmdUZXN0cywgU2hyaW5rVG9GaXRW
aWV3cG9ydFdpdGhNaW5pbXVtQWxsb3dlZExheW91dFdpZHRoKQotewotICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMjAwLCAyMDApXSk7Ci0gICAgW3dlYlZpZXcgX3NldEFsbG93c1ZpZXdwb3J0U2hy
aW5rVG9GaXQ6WUVTXTsKLSAgICBbd2ViVmlldyBfc2V0Rm9yY2VIb3Jpem9udGFsVmlld3BvcnRT
aHJpbmtUb0ZpdDpZRVNdOwotICAgIFt3ZWJWaWV3IF9zZXRNaW5pbXVtQWxsb3dlZExheW91dFdp
ZHRoOjBdOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzp2aWV3cG9y
dFRlc3RQYWdlTWFya3VwKEAid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLCA0
MDAsIDEwMCldOwotICAgIFt3ZWJWaWV3IGV4cGVjdFNjYWxlVG9CZWNvbWU6MC41XTsKLSAgICBF
WFBFQ1RfV0tfU1RSRVEoIjIwMCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIl0pOwotCi0gICAgW3dlYlZpZXcgX3NldE1p
bmltdW1BbGxvd2VkTGF5b3V0V2lkdGg6NDAwXTsKLSAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZV07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCI0MDAiLCBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCJd
KTsKLSAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBzY2FsZUlzQXBwcm94aW1hdGVseTowLjVdKTsK
LQotICAgIFt3ZWJWaWV3IF9zZXRNaW5pbXVtQWxsb3dlZExheW91dFdpZHRoOjEwMF07Ci0gICAg
W3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwotICAgIEVYUEVDVF9XS19T
VFJFUSgiMjAwIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LmJvZHkuY2xpZW50V2lkdGgiXSk7Ci0gICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgc2NhbGVJ
c0FwcHJveGltYXRlbHk6MC41XSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
LQotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYTg1
MTA0NjE1YTg1MmUzNzBmMmIxNzhjN2FiMjdhOGEyOGFlYjRlLi5hN2YzYjU5ZmEyMDAzZGViOWYw
YmY1NjkyOGNiY2Y2NzNjMGVhOGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDQtMjYg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJh
IHpvb20gbW9kZV0gQWRkIGEgbWVjaGFuaXNtIHRvIG92ZXJyaWRlIGRlZmF1bHQgdmlld3BvcnQg
YmVoYXZpb3JzIGluIGV4dHJhIHpvb20gbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTYy
NDAzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBh
IG5ldyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGF0OgorICAgICAgICDigKIgQnkgZGVmYXVsdCAo
d2l0aCBubyBgbWluLWRldmljZS13aWR0aGAgb3ZlcnJpZGUpLCBzaHJpbmstdG8tZml0IGFuZCBl
eHBhbmRlZCBtaW5pbXVtIGxheW91dCBzaXplcyB0YWtlcyBlZmZlY3QuCisgICAgICAgIOKAoiBg
bWluLWRldmljZS13aWR0aGAgY2FuIGJlIHVzZWQgdG8gYmFpbCBvdXQgb2Ygc2hyaW5rLXRvLWZp
dCBhbmQgdmlld3BvcnQgYmVoYXZpb3JzLgorICAgICAgICDigKIgQSBsYXJnZSBgbWluLWRldmlj
ZS13aWR0aGAgY2FuIGJlIHVzZWQgdG8gbWFrZSBleHRyYSB6b29tIG1vZGUgdmlld3BvcnQgaGV1
cmlzdGljcyBldmVuIG1vcmUgYWdncmVzc2l2ZS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogZmFzdC92aWV3cG9ydC9leHRyYXpvb20vdmlld3BvcnQtY2hhbmdlLW1p
bi1kZXZpY2Utd2lkdGguaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBl
ci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci56b29tU2NhbGUpOgorICAgICAgICAod2lu
ZG93LlVJSGVscGVyKToKKwogMjAxOC0wNC0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBUaGUgc2VhcmNoIGZpZWxk
IG9uIHd3dy5iaW5nLmNvbSBpcyBtaXNzaW5nIGxhYmVsIHRleHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGI1NjIzMjNhZDU2MGM4MTIzMGQyMzI2ZDkwM2QxY2MwNmY1NWM3OWUuLjY5ODg0ZGQxYzM3
YjUxOTllZGMxNGQ3ZjZmZjExZTgzYmQ4YWJiYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjEs
NiArMjEsNyBAQCB0aWxlZC1kcmF3aW5nIFsgU2tpcCBdCiBmYXN0L2Nzcy9leHRyYXpvb20gWyBT
a2lwIF0KIGZhc3QvZG9tL1dpbmRvdy9leHRyYXpvb20gWyBTa2lwIF0KIGZhc3QvZm9ybXMvZXh0
cmF6b29tIFsgU2tpcCBdCitmYXN0L3ZpZXdwb3J0L2V4dHJhem9vbSBbIFNraXAgXQogZmFzdC92
aXN1YWwtdmlld3BvcnQvZXh0cmF6b29tIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC90
aWxlZC1kcmF3aW5nIFsgU2tpcCBdCiBzd2lwZSBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC9leHRyYXpvb20vdmlld3BvcnQtY2hhbmdlLW1pbi1kZXZpY2Ut
d2lkdGguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvZXh0cmF6b29tL3ZpZXdwb3J0
LWNoYW5nZS1taW4tZGV2aWNlLXdpZHRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUzMWE5MjJhMGM2MTNj
MTE4MjExMjQ4YzI3YTUxNTY1YTNhNjFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvdmlld3BvcnQvZXh0cmF6b29tL3ZpZXdwb3J0LWNoYW5nZS1taW4tZGV2aWNlLXdpZHRo
Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBpZD0ibWV0YSI+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAg
ICAgIGJvZHksIGh0bWwgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
ICAgIGZ1bmN0aW9uIGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRl
bnQoY29udGVudCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29s
dmUgPT4geworICAgICAgICAgICAgICAgIG1ldGEuc2V0QXR0cmlidXRlKCJjb250ZW50IiwgY29u
dGVudCk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9u
VXBkYXRlKCk7CisgICAgICAgICAgICAgICAgZGVidWcoYFske21ldGEuZ2V0QXR0cmlidXRlKCJj
b250ZW50Iil9XSAoJHtpbm5lcldpZHRofSwgJHtpbm5lckhlaWdodH0pYCk7CisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJQbGVhc2UgdXNlIFdlYktpdFRl
c3RSdW5uZXIgdG8gcnVuIHRoaXMgdGVzdC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlYnVnKCIxLiBJbml0aWFsIG1pbi1kZXZpY2Ut
d2lkdGgiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRp
bmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPTE1MCIpOworICAgICAgICAgICAgYXdhaXQgbG9nV2lu
ZG93RGltZW5zaW9uc0FmdGVyU2V0dGluZ1ZpZXdwb3J0Q29udGVudCgid2lkdGg9ZGV2aWNlLXdp
ZHRoIik7CisgICAgICAgICAgICBzY2FsZUF0RGV2aWNlV2lkdGhGb3JJbml0aWFsTWluRGV2aWNl
V2lkdGggPSBwYXJzZUZsb2F0KGF3YWl0IFVJSGVscGVyLnpvb21TY2FsZSgpKS50b0ZpeGVkKDMp
OworICAgICAgICAgICAgYXdhaXQgbG9nV2luZG93RGltZW5zaW9uc0FmdGVyU2V0dGluZ1ZpZXdw
b3J0Q29udGVudCgid2lkdGg9NjAwIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJcbjIuIG1pbi1k
ZXZpY2Utd2lkdGg9MCIpOworICAgICAgICAgICAgYXdhaXQgbG9nV2luZG93RGltZW5zaW9uc0Fm
dGVyU2V0dGluZ1ZpZXdwb3J0Q29udGVudCgid2lkdGg9MTUwLCBtaW4tZGV2aWNlLXdpZHRoPTAi
KTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3
cG9ydENvbnRlbnQoIndpZHRoPWRldmljZS13aWR0aCwgbWluLWRldmljZS13aWR0aD0wIik7Cisg
ICAgICAgICAgICBzY2FsZUF0RGV2aWNlV2lkdGhGb3JNaW5EZXZpY2VXaWR0aDAgPSBwYXJzZUZs
b2F0KGF3YWl0IFVJSGVscGVyLnpvb21TY2FsZSgpKS50b0ZpeGVkKDMpOworICAgICAgICAgICAg
YXdhaXQgbG9nV2luZG93RGltZW5zaW9uc0FmdGVyU2V0dGluZ1ZpZXdwb3J0Q29udGVudCgid2lk
dGg9NjAwLCBtaW4tZGV2aWNlLXdpZHRoPTAiKTsKKworICAgICAgICAgICAgZGVidWcoIlxuMy4g
bWluLWRldmljZS13aWR0aD01MDAiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVu
c2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPTE1MCwgbWluLWRldmljZS13
aWR0aD01MDAiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNl
dHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPWRldmljZS13aWR0aCwgbWluLWRldmljZS13aWR0
aD01MDAiKTsKKyAgICAgICAgICAgIHNjYWxlQXREZXZpY2VXaWR0aEZvck1pbkRldmljZVdpZHRo
NTAwID0gcGFyc2VGbG9hdChhd2FpdCBVSUhlbHBlci56b29tU2NhbGUoKSkudG9GaXhlZCgzKTsK
KyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9y
dENvbnRlbnQoIndpZHRoPTYwMCwgbWluLWRldmljZS13aWR0aD01MDAiKTsKKworICAgICAgICAg
ICAgc2hvdWxkQmUoInNjYWxlQXREZXZpY2VXaWR0aEZvckluaXRpYWxNaW5EZXZpY2VXaWR0aCIs
ICInMC40ODgnIik7CisgICAgICAgICAgICBzaG91bGRCZSgic2NhbGVBdERldmljZVdpZHRoRm9y
TWluRGV2aWNlV2lkdGgwIiwgIicxLjAwMCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzY2Fs
ZUF0RGV2aWNlV2lkdGhGb3JNaW5EZXZpY2VXaWR0aDUwMCIsICInMC4zMTInIik7CisKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcwppbmRleCA0NDYzNTY3OWU3OTM4ZTY5NWQ1ZGYxNzc3YzU1YTNmMWY0
MzNkZjUwLi40MTU3OWIxY2E5NmJkMTdmNjIwOWJiYTliMGZkZTFlYzNlODYxMzAxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3Rz
L3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTIwOCw0ICsyMDgsMTMgQEAgd2luZG93LlVJSGVs
cGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOwogICAg
ICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgem9vbVNjYWxlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYCgoKSA9PiB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2Ny
aXB0Q29tcGxldGUodWlDb250cm9sbGVyLnpvb21TY2FsZSk7CisgICAgICAgICAgICB9KSgpYCwg
cmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338964</attachid>
            <date>2018-04-26 21:37:31 -0700</date>
            <delta_ts>2018-04-27 00:43:48 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-185050-20180426213730.patch</filename>
            <type>text/plain</type>
            <size>60117</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwZTM1ZmVmNWQ4YmFj
NmNjNDJlNjU4YzlmZTFmYTBlNmE0M2NlMy4uY2U2YWM4YjYzODNjMGRiN2U5NDJkZWY3NjI4ZmY5
MWEzNDg2ZTllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBtaW5p
bXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0U2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
OTYyNDAzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gTm8gY2hhbmdlIGlu
IGJlaGF2aW9yLgorCisgICAgICAgICogcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpWaWV3cG9ydENvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRWaWV3
TGF5b3V0U2l6ZSk6CisKKyAgICAgICAgUmVtb3ZlIGEgRklYTUUgY29tbWVudCB0aGF0IGlzIGFk
ZHJlc3NlZCBieSB0aGlzIHJlZmFjdG9yaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9y
dENvbmZpZ3VyYXRpb246OnNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lk
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjppbml0
aWFsU2NhbGVGcm9tU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZp
Z3VyYXRpb246Om1pbmltdW1TY2FsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9y
dENvbmZpZ3VyYXRpb246OnVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0TWluaW11bUxheW91dFNpemUpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdMYXlvdXRTaXplIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dmlld1NpemUgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDE4LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlk
ZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggN2JjNTA3MzMyMWZhNDcwOGEzZGVmMjFjMzgzZDJhNDY5YjMwZGViYi4uMmZiYjg5NTU1NGZm
MWFiZTJiZjgwYTBjOTYyOWE1NTU2NGUwNzBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NiBAQAor
MjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgbWluaW11bUxheW91dFNpemUgdG8gdmlld0xheW91dFNpemUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lcyBtaW5pbXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0
U2l6ZSwgc2luY2UgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUgaW4gVmlld3BvcnRDb25maWd1cmF0
aW9uIGlzIG5vdworICAgICAgICBkaWZmZXJlbnQgZnJvbSB0aGUgbWluaW11bSBsYXlvdXQgc2l6
ZSB0aGF0IGlzIGN1cnJlbnRseSBwdXNoZWQgZG93biBmcm9tIHRoZSBVSSBwcm9jZXNzIChlLmcu
IFdLV2ViVmlldyBTUEkpIGluCisgICAgICAgIHRoZSBjYXNlIHdoZXJlIGBtaW4tZGV2aWNlLXdp
ZHRoYCBpcyB1c2VkIHRvIG92ZXJyaWRlIHRoZSBtaW5pbXVtIGxheW91dCBzaXplLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc0RpZEV4
aXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjdGl2ZVZpZXdMYXlvdXRTaXplOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfZnJhbWVPckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
c2V0Vmlld0xheW91dFNpemVPdmVycmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdp
bkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5k
QW5pbWF0ZWRSZXNpemVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfY2xlYXJPdmVycmlkZUxheW91dFBhcmFtZXRl
cnNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtTGF5b3V0V2lkdGhdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldE1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGU6XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOm1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJOm1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOl0pOiBEZWxldGVkLgorCisgICAgICAgIFJlbW92ZSB1bnVzZWQg
U1BJIHRoYXQgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSBpT1MgOSwgaGFzIGEgc2ltcGxlIGRy
b3AtaW4gcmVwbGFjZW1lbnQsIGFuZCBubyBsb25nZXIgaGFzIGFueQorICAgICAgICBpbnRlcm5h
bCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xheW91dCBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eTo6dmlld0xheW91dFNpemVEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjptaW5pbXVtTGF5b3V0U2l6ZURpZENoYW5nZSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpzZXRWaWV3TGF5b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0TWluaW11bUxheW91dFNpemUpOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp2aWV3TGF5b3V0U2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bWluaW11bUxheW91dFNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Ojp2aWV3TGF5b3V0U2l6ZURpZENoYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdl
b21ldHJ5KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eTo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5
KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
bWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFn
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9y
Ojpjb2xsZWN0R2VvbWV0cnlGb3JTbWFydE1hZ25pZmljYXRpb25HZXN0dXJlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fY3Jl
ZGVudGlhbHNNZXNzZW5nZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRWaWV3TGF5
b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldE1pbmltdW1MYXlvdXRTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3TGF5b3V0U2l6ZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6Om1pbmltdW1MYXlvdXRTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6dXBkYXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRy
eSk6CisKIDIwMTgtMDQtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gQWRkIGEgbWVjaGFuaXNtIHRvIG92ZXJyaWRl
IGRlZmF1bHQgdmlld3BvcnQgYmVoYXZpb3JzIGluIGV4dHJhIHpvb20gbW9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDg4ZTE5ZTBhNjYz
ODkzYzQyOTA2ODUzNDllM2ZhNDY0NTM1MDkyNDMuLjBkMGE4OTU3YWQ1YTIwNzNiMTMyZjdhMGRk
ZDNiOTMxYjdjNjE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRD
b25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIGZsb2F0IGNvbXB1dGVkTWluRGV2
aWNlV2lkdGgoZmxvYXQgbWluRGV2aWNlV2lkdGgpCiAKIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6
Vmlld3BvcnRDb25maWd1cmF0aW9uKCkKICAgICA6IG1fbWluaW11bUxheW91dFNpemUoMTAyNCwg
NzY4KQotICAgICwgbV92aWV3U2l6ZSgxMDI0LCA3NjgpCisgICAgLCBtX3ZpZXdMYXlvdXRTaXpl
KDEwMjQsIDc2OCkKICAgICAsIG1fY2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKGZhbHNlKQog
ICAgICwgbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShmYWxzZSkKIHsKQEAgLTk1LDE0ICs5NSwx
MiBAQCBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0Q29udGVudHNTaXplKGNvbnN0IElu
dFNpemUmIGNvbnRlbnRTaXplKQogICAgIHJldHVybiB0cnVlOwogfQogCi0vLyBGSVhNRTogVmll
d3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZSBpcyBubyBsb25nZXIgYW4g
YWNjdXJhdGUgbmFtZSwgc2luY2UgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUKLS8vIGlzIG5vdCBu
ZWNlc3NhcmlseSB0aGUgc2l6ZSBvZiB0aGUgdmlldy4KLWJvb2wgVmlld3BvcnRDb25maWd1cmF0
aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRT
aXplKQorYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldFZpZXdMYXlvdXRTaXplKGNvbnN0
IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUpCiB7Ci0gICAgaWYgKG1fdmlld1NpemUgPT0gbWlu
aW11bUxheW91dFNpemUpCisgICAgaWYgKG1fdmlld0xheW91dFNpemUgPT0gdmlld0xheW91dFNp
emUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fdmlld1NpemUgPSBtaW5pbXVtTGF5
b3V0U2l6ZTsKKyAgICBtX3ZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAKICAgICB1
cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSgpOwogICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKQEAg
LTEzOSw3ICsxMzcsNyBAQCBJbnRTaXplIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bGF5b3V0U2l6
ZSgpIGNvbnN0CiAKIGJvb2wgVmlld3BvcnRDb25maWd1cmF0aW9uOjpzaG91bGRPdmVycmlkZURl
dmljZVdpZHRoV2l0aE1pbkRldmljZVdpZHRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWV3
U2l6ZS53aWR0aCgpIDwgY29tcHV0ZWRNaW5EZXZpY2VXaWR0aChtX3ZpZXdwb3J0QXJndW1lbnRz
Lm1pbkRldmljZVdpZHRoKTsKKyAgICByZXR1cm4gbV92aWV3TGF5b3V0U2l6ZS53aWR0aCgpIDwg
Y29tcHV0ZWRNaW5EZXZpY2VXaWR0aChtX3ZpZXdwb3J0QXJndW1lbnRzLm1pbkRldmljZVdpZHRo
KTsKIH0KIAogYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9yZUhvcml6b250
YWxTY2FsaW5nQ29uc3RyYWludHMoKSBjb25zdApAQCAtMjAxLDExICsxOTksMTEgQEAgZG91Ymxl
IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6aW5pdGlhbFNjYWxlRnJvbVNpemUoZG91YmxlIHdpZHRo
LCBkb3VibGUgaGVpZ2h0LAogICAgIC8vIFdlIHdhbnQgYSBzY2FsZSBzbWFsbCBlbm91Z2ggdG8g
Zml0IHRoZSBkb2N1bWVudCB3aWR0aC13aXNlLgogICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgPSAw
OwogICAgIGlmICh3aWR0aCA+IDAgJiYgIXNob3VsZElnbm9yZVZlcnRpY2FsU2NhbGluZ0NvbnN0
cmFpbnRzKCkpCi0gICAgICAgIGluaXRpYWxTY2FsZSA9IG1fdmlld1NpemUud2lkdGgoKSAvIHdp
ZHRoOworICAgICAgICBpbml0aWFsU2NhbGUgPSBtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkgLyB3
aWR0aDsKIAogICAgIC8vIFByZXZlbnQgdGhlIGluaXRpYWwgc2NhbGUgZnJvbSBzaHJpbmtpbmcg
dG8gYSBoZWlnaHQgc21hbGxlciB0aGFuIG91ciB2aWV3J3MgbWluaW11bSBoZWlnaHQuCi0gICAg
aWYgKGhlaWdodCA+IDAgJiYgaGVpZ2h0ICogaW5pdGlhbFNjYWxlIDwgbV92aWV3U2l6ZS5oZWln
aHQoKSAmJiAhc2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxpbmdDb25zdHJhaW50cygpKQotICAg
ICAgICBpbml0aWFsU2NhbGUgPSBtX3ZpZXdTaXplLmhlaWdodCgpIC8gaGVpZ2h0OworICAgIGlm
IChoZWlnaHQgPiAwICYmIGhlaWdodCAqIGluaXRpYWxTY2FsZSA8IG1fdmlld0xheW91dFNpemUu
aGVpZ2h0KCkgJiYgIXNob3VsZElnbm9yZUhvcml6b250YWxTY2FsaW5nQ29uc3RyYWludHMoKSkK
KyAgICAgICAgaW5pdGlhbFNjYWxlID0gbV92aWV3TGF5b3V0U2l6ZS5oZWlnaHQoKSAvIGhlaWdo
dDsKIAogICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heChpbml0aWFsU2NhbGUsIHNob3VsZEln
bm9yZVNjYWxpbmdDb25zdHJhaW50cyA/IG1fZGVmYXVsdENvbmZpZ3VyYXRpb24ubWluaW11bVNj
YWxlIDogbV9jb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSksIG1fY29uZmlndXJhdGlvbi5tYXhp
bXVtU2NhbGUpOwogfQpAQCAtMjMzLDEyICsyMzEsMTIgQEAgZG91YmxlIFZpZXdwb3J0Q29uZmln
dXJhdGlvbjo6bWluaW11bVNjYWxlKCkgY29uc3QKICAgICAgICAgbWluaW11bVNjYWxlID0gc3Rk
OjptaW4obWluaW11bVNjYWxlLCBmb3JjZUFsd2F5c1VzZXJTY2FsYWJsZU1pbmltdW1TY2FsZSk7
CiAKICAgICBkb3VibGUgY29udGVudFdpZHRoID0gbV9jb250ZW50U2l6ZS53aWR0aCgpOwotICAg
IGlmIChjb250ZW50V2lkdGggPiAwICYmIGNvbnRlbnRXaWR0aCAqIG1pbmltdW1TY2FsZSA8IG1f
dmlld1NpemUud2lkdGgoKSAmJiAhc2hvdWxkSWdub3JlVmVydGljYWxTY2FsaW5nQ29uc3RyYWlu
dHMoKSkKLSAgICAgICAgbWluaW11bVNjYWxlID0gbV92aWV3U2l6ZS53aWR0aCgpIC8gY29udGVu
dFdpZHRoOworICAgIGlmIChjb250ZW50V2lkdGggPiAwICYmIGNvbnRlbnRXaWR0aCAqIG1pbmlt
dW1TY2FsZSA8IG1fdmlld0xheW91dFNpemUud2lkdGgoKSAmJiAhc2hvdWxkSWdub3JlVmVydGlj
YWxTY2FsaW5nQ29uc3RyYWludHMoKSkKKyAgICAgICAgbWluaW11bVNjYWxlID0gbV92aWV3TGF5
b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFdpZHRoOwogCiAgICAgZG91YmxlIGNvbnRlbnRIZWln
aHQgPSBtX2NvbnRlbnRTaXplLmhlaWdodCgpOwotICAgIGlmIChjb250ZW50SGVpZ2h0ID4gMCAm
JiBjb250ZW50SGVpZ2h0ICogbWluaW11bVNjYWxlIDwgbV92aWV3U2l6ZS5oZWlnaHQoKSAmJiAh
c2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxpbmdDb25zdHJhaW50cygpKQotICAgICAgICBtaW5p
bXVtU2NhbGUgPSBtX3ZpZXdTaXplLmhlaWdodCgpIC8gY29udGVudEhlaWdodDsKKyAgICBpZiAo
Y29udGVudEhlaWdodCA+IDAgJiYgY29udGVudEhlaWdodCAqIG1pbmltdW1TY2FsZSA8IG1fdmll
d0xheW91dFNpemUuaGVpZ2h0KCkgJiYgIXNob3VsZElnbm9yZUhvcml6b250YWxTY2FsaW5nQ29u
c3RyYWludHMoKSkKKyAgICAgICAgbWluaW11bVNjYWxlID0gbV92aWV3TGF5b3V0U2l6ZS5oZWln
aHQoKSAvIGNvbnRlbnRIZWlnaHQ7CiAKICAgICBtaW5pbXVtU2NhbGUgPSBzdGQ6Om1pbihzdGQ6
Om1heChtaW5pbXVtU2NhbGUsIG1fY29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUpLCBtX2NvbmZp
Z3VyYXRpb24ubWF4aW11bVNjYWxlKTsKIApAQCAtMzgyLDEzICszODAsMTMgQEAgdm9pZCBWaWV3
cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFZpZXdwb3J0
Q29uZmlndXJhdGlvbjo6dXBkYXRlTWluaW11bUxheW91dFNpemUoKQogewotICAgIGlmICghbV92
aWV3U2l6ZS53aWR0aCgpIHx8ICFzaG91bGRPdmVycmlkZURldmljZVdpZHRoV2l0aE1pbkRldmlj
ZVdpZHRoKCkpIHsKLSAgICAgICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IG1fdmlld1NpemU7Cisg
ICAgaWYgKCFtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkgfHwgIXNob3VsZE92ZXJyaWRlRGV2aWNl
V2lkdGhXaXRoTWluRGV2aWNlV2lkdGgoKSkgeworICAgICAgICBtX21pbmltdW1MYXlvdXRTaXpl
ID0gbV92aWV3TGF5b3V0U2l6ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8g
bWluRGV2aWNlV2lkdGggPSBjb21wdXRlZE1pbkRldmljZVdpZHRoKG1fdmlld3BvcnRBcmd1bWVu
dHMubWluRGV2aWNlV2lkdGgpOwotICAgIGF1dG8gc2NhbGVkRGV2aWNlSGVpZ2h0ID0gc3RkOjpy
b3VuZChtX3ZpZXdTaXplLmhlaWdodCgpICogKG1pbkRldmljZVdpZHRoIC8gbV92aWV3U2l6ZS53
aWR0aCgpKSk7CisgICAgYXV0byBzY2FsZWREZXZpY2VIZWlnaHQgPSBzdGQ6OnJvdW5kKG1fdmll
d0xheW91dFNpemUuaGVpZ2h0KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX3ZpZXdMYXlvdXRTaXpl
LndpZHRoKCkpKTsKICAgICBtX21pbmltdW1MYXlvdXRTaXplID0gRmxvYXRTaXplKG1pbkRldmlj
ZVdpZHRoLCBzY2FsZWREZXZpY2VIZWlnaHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9W
aWV3cG9ydENvbmZpZ3VyYXRpb24uaAppbmRleCBkNmE1MGNhNDVjMTAwNjI5OTdkODJmNWI3NzQw
M2NhZWU3NGJlOTRjLi5iZmYxMDA3Njc3ZjIzNDVjOWE5NTE3YTUyNzY1YWJkMzcwYmFiZDFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKQEAgLTc0LDEw
ICs3NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmKTsKIAotICAgIEZsb2F0U2l6ZSB2aWV3U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld1NpemU7IH0KKyAgICBGbG9hdFNpemUgdmlld0xheW91dFNp
emUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdMYXlvdXRTaXplOyB9CiAKICAgICBjb25zdCBGbG9h
dFNpemUmIG1pbmltdW1MYXlvdXRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0
U2l6ZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0TWluaW11bUxheW91dFNpemUoY29u
c3QgRmxvYXRTaXplJik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRWaWV3TGF5b3V0U2l6
ZShjb25zdCBGbG9hdFNpemUmKTsKIAogICAgIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3
cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFZpZXdwb3J0
QXJndW1lbnRzJik7CkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBQYXJhbWV0ZXJz
IG1fZGVmYXVsdENvbmZpZ3VyYXRpb247CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRTaXplOwogICAg
IEZsb2F0U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplOwotICAgIEZsb2F0U2l6ZSBtX3ZpZXdTaXpl
OworICAgIEZsb2F0U2l6ZSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIFZpZXdwb3J0QXJndW1lbnRz
IG1fdmlld3BvcnRBcmd1bWVudHM7CiAKICAgICBib29sIG1fY2FuSWdub3JlU2NhbGluZ0NvbnN0
cmFpbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCAzY2ZlM2IyZTViMTQyNTkxY2E2NmE4MjI4YjkyMjkwMzdjMGUzMWRj
Li4zYjBiOGFhNTBmYWRhOTU2N2Q3YWNlOWEyYTU3M2EwMWEzMjViZGM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjQs
NyArNjQsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYVZvbHVtZTsKICAgICBl
bmNvZGVyIDw8IG11dGVkOwogICAgIGVuY29kZXIgPDwgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dzsKLSAgICBlbmNvZGVyIDw8IG1pbmltdW1MYXlvdXRTaXplOworICAgIGVuY29kZXIgPDwgdmll
d0xheW91dFNpemU7CiAgICAgZW5jb2RlciA8PCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0OwogICAgIGVuY29kZXIgPDwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsK
ICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKQEAgLTg5LDcg
Kzg5LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgb3ZlcnJpZGVTY3JlZW5TaXplOwog
ICAgIGVuY29kZXIgPDwgdGV4dEF1dG9zaXppbmdXaWR0aDsKICAgICBlbmNvZGVyIDw8IGlnbm9y
ZXNWaWV3cG9ydFNjYWxlTGltaXRzOwotICAgIGVuY29kZXIgPDwgdmlld3BvcnRDb25maWd1cmF0
aW9uTWluaW11bUxheW91dFNpemU7CisgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZTsKICAgICBlbmNvZGVyIDw8IHZpZXdwb3J0Q29uZmlndXJhdGlvblZp
ZXdTaXplOwogICAgIGVuY29kZXIgPDwgbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCkBA
IC0yMDMsNyArMjAzLDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1pbmltdW1MYXlvdXRTaXplKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0xheW91dFNpemUpKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5h
dXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKQEAgLTI1NCw3ICsyNTQsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmln
dXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUpKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy52aWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggNTczZTE3OTMyYmUyZmZiM2RjNzczMWU4YTEyNDVkMWMzYzc4OGNjYy4uMDZmN2FiNjIw
ODhiN2IzOGU4NTQxOWVjNzUyYjc2ZTZhNjVhZGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTEyLDcgKzExMiw3IEBAIHN0
cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbklu
V2luZG93OwogCi0gICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBX
ZWJDb3JlOjpJbnRTaXplIHZpZXdMYXlvdXRTaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+
IHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgCkBAIC0xNDYsNyArMTQ2LDcg
QEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBvdmVycmlkZVNjcmVlblNpemU7CiAgICAgZmxvYXQgdGV4dEF1dG9zaXppbmdXaWR0aDsK
ICAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzOwotICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSB2aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXplOwogICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDRhMTZlNmQzYmI3
YTAzNTQ1YzZhYzhkYmFkZTk0N2I4ZWYxOTNmZGYuLmI0NDM1MjRjMmRjMmIyMzhhOWM2NmYwZGJj
OTdlZDk5YjlmZWQ5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtMjc3LDkgKzI3Nyw5IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZp
ZXcgewogICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBfZnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXI7CiAjZW5kaWYKIAotICAgIEJPT0wgX292ZXJyaWRlc01pbmlt
dW1MYXlvdXRTaXplOwotICAgIENHU2l6ZSBfbWluaW11bUxheW91dFNpemVPdmVycmlkZTsKLSAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWluaW11bUxheW91
dFNpemU7CisgICAgQk9PTCBfb3ZlcnJpZGVzVmlld0xheW91dFNpemU7CisgICAgQ0dTaXplIF92
aWV3TGF5b3V0U2l6ZU92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRT
aXplPiBfbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZTsKICAgICBCT09MIF9vdmVycmlkZXNNYXhpbXVt
VW5vYnNjdXJlZFNpemU7CiAgICAgQ0dTaXplIF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWF4aW11
bVVub2JzY3VyZWRTaXplOwpAQCAtMTY4Myw3ICsxNjgzLDcgQEAgLSAodm9pZClfcHJvY2Vzc0Rp
ZEV4aXQKICAgICBfc2Nyb2xsVmlld0JhY2tncm91bmRDb2xvciA9IFdlYkNvcmU6OkNvbG9yKCk7
CiAgICAgX2RlbGF5VXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyA9IE5POwogICAgIF9oYWREZWxh
eWVkVXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyA9IE5POwotICAgIF9sYXN0U2VudE1pbmltdW1M
YXlvdXRTaXplID0gc3RkOjpudWxsb3B0OworICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0g
c3RkOjpudWxsb3B0OwogICAgIF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6
bnVsbG9wdDsKICAgICBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IHN0ZDo6bnVsbG9wdDsK
IApAQCAtMjU2NCwxMCArMjU2NCwxMCBAQCAtIChVSUVkZ2VJbnNldHMpX3Njcm9sbFZpZXdTeXN0
ZW1Db250ZW50SW5zZXQKICAgICByZXR1cm4gVUlFZGdlSW5zZXRzQWRkKFtfc2Nyb2xsVmlldyBf
Y29udGVudFNjcm9sbEluc2V0XSwgc2VsZi5zYWZlQXJlYUluc2V0cywgW19zY3JvbGxWaWV3IF9l
ZGdlc0FwcGx5aW5nU2FmZUFyZWFJbnNldHNUb0NvbnRlbnRJbnNldF0pOwogfQogCi0tIChXZWJD
b3JlOjpGbG9hdFNpemUpYWN0aXZlTWluaW11bUxheW91dFNpemU6KGNvbnN0IENHUmVjdCYpYm91
bmRzCistIChXZWJDb3JlOjpGbG9hdFNpemUpYWN0aXZlVmlld0xheW91dFNpemU6KGNvbnN0IENH
UmVjdCYpYm91bmRzCiB7Ci0gICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZShfbWluaW11bUxheW91dFNpemVPdmVycmlk
ZSk7CisgICAgaWYgKF9vdmVycmlkZXNWaWV3TGF5b3V0U2l6ZSkKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkZsb2F0U2l6ZShfdmlld0xheW91dFNpemVPdmVycmlkZSk7CiAKICNpZiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKICAgICByZXR1cm4gV2ViQ29yZTo6
RmxvYXRTaXplKFVJRWRnZUluc2V0c0luc2V0UmVjdChDR1JlY3RNYWtlKDAsIDAsIGJvdW5kcy5z
aXplLndpZHRoLCBib3VuZHMuc2l6ZS5oZWlnaHQpLCBzZWxmLl9zY3JvbGxWaWV3U3lzdGVtQ29u
dGVudEluc2V0KS5zaXplKTsKQEAgLTI1NzYsMTQgKzI1NzYsMTQgQEAgLSAoV2ViQ29yZTo6Rmxv
YXRTaXplKWFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOihjb25zdCBDR1JlY3QmKWJvdW5kcwogI2Vu
ZGlmCiB9CiAKLS0gKHZvaWQpX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6KFdlYkNvcmU6
OkZsb2F0U2l6ZSltaW5pbXVtTGF5b3V0U2l6ZQorLSAodm9pZClfZGlzcGF0Y2hTZXRWaWV3TGF5
b3V0U2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKXZpZXdMYXlvdXRTaXplCiB7Ci0gICAgaWYgKF9s
YXN0U2VudE1pbmltdW1MYXlvdXRTaXplICYmIENHU2l6ZUVxdWFsVG9TaXplKF9sYXN0U2VudE1p
bmltdW1MYXlvdXRTaXplLnZhbHVlKCksIG1pbmltdW1MYXlvdXRTaXplKSkKKyAgICBpZiAoX2xh
c3RTZW50Vmlld0xheW91dFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50Vmlld0xh
eW91dFNpemUudmFsdWUoKSwgdmlld0xheW91dFNpemUpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIg
PDwgX3BhZ2UtPnBhZ2VJRCgpIDw8ICIgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6XSAi
IDw8IG1pbmltdW1MYXlvdXRTaXplIDw8ICIgY29udGVudFpvb21TY2FsZSAiIDw8IGNvbnRlbnRa
b29tU2NhbGUoc2VsZikpOwotICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5p
bXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSk7Ci0gICAgX2xhc3RTZW50TWluaW11bUxh
eW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJs
ZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2UtPnBhZ2VJRCgpIDw8ICIg
X2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6XSAiIDw8IHZpZXdMYXlvdXRTaXplIDw8ICIgY29u
dGVudFpvb21TY2FsZSAiIDw8IGNvbnRlbnRab29tU2NhbGUoc2VsZikpOworICAgIF9wYWdlLT5z
ZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSh2aWV3TGF5b3V0U2l6ZSk7Cisg
ICAgX2xhc3RTZW50Vmlld0xheW91dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKIH0KIAogLSAodm9p
ZClfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSlt
YXhpbXVtVW5vYnNjdXJlZFNpemUKQEAgLTI2MTAsOCArMjYxMCw4IEBAIC0gKHZvaWQpX2ZyYW1l
T3JCb3VuZHNDaGFuZ2VkCiAgICAgW19zY3JvbGxWaWV3IHNldEZyYW1lOmJvdW5kc107CiAKICAg
ICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gRHluYW1pY1ZpZXdwb3J0VXBkYXRl
TW9kZTo6Tm90UmVzaXppbmcpIHsKLSAgICAgICAgaWYgKCFfb3ZlcnJpZGVzTWluaW11bUxheW91
dFNpemUpCi0gICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpb
c2VsZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTpzZWxmLmJvdW5kc11dOworICAgICAgICBpZiAo
IV9vdmVycmlkZXNWaWV3TGF5b3V0U2l6ZSkKKyAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNl
dFZpZXdMYXlvdXRTaXplOltzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXV07
CiAgICAgICAgIGlmICghX292ZXJyaWRlc01heGltdW1Vbm9ic2N1cmVkU2l6ZSkKICAgICAgICAg
ICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9h
dFNpemUoYm91bmRzLnNpemUpXTsKIApAQCAtNDk4NywxNyArNDk4NywxNyBAQCAtICh2b2lkKXJl
bW92ZUZyb21TdXBlcnZpZXcKIAogLSAoQ0dTaXplKV9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRl
CiB7Ci0gICAgQVNTRVJUKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSk7Ci0gICAgcmV0dXJu
IF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOworICAgIEFTU0VSVChfb3ZlcnJpZGVzVmlld0xh
eW91dFNpemUpOworICAgIHJldHVybiBfdmlld0xheW91dFNpemVPdmVycmlkZTsKIH0KIAotLSAo
dm9pZClfc2V0TWluaW11bUxheW91dFNpemVPdmVycmlkZTooQ0dTaXplKW1pbmltdW1MYXlvdXRT
aXplT3ZlcnJpZGUKKy0gKHZvaWQpX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJpZGU6KENHU2l6ZSl2
aWV3TGF5b3V0U2l6ZU92ZXJyaWRlCiB7Ci0gICAgX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXpl
ID0gWUVTOwotICAgIF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlID0gbWluaW11bUxheW91dFNp
emVPdmVycmlkZTsKKyAgICBfb3ZlcnJpZGVzVmlld0xheW91dFNpemUgPSBZRVM7CisgICAgX3Zp
ZXdMYXlvdXRTaXplT3ZlcnJpZGUgPSB2aWV3TGF5b3V0U2l6ZU92ZXJyaWRlOwogCiAgICAgaWYg
KF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6
Ok5vdFJlc2l6aW5nKQotICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6
ZTpXZWJDb3JlOjpGbG9hdFNpemUobWluaW11bUxheW91dFNpemVPdmVycmlkZSldOworICAgICAg
ICBbc2VsZiBfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUodmll
d0xheW91dFNpemVPdmVycmlkZSldOwogCiB9CiAKQEAgLTUxNDUsNyArNTE0NSw3IEBAIC0gKHZv
aWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRl
QmxvY2sKIAogICAgIF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID0gRHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZTo6UmVzaXppbmdXaXRoQW5pbWF0aW9uOwogCi0gICAgYXV0byBvbGRNaW5pbXVt
TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOnNlbGYuYm91bmRzXTsK
KyAgICBhdXRvIG9sZFZpZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6
c2VsZi5ib3VuZHNdOwogICAgIGF1dG8gb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZl
TWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgaW50MzJfdCBvbGRP
cmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogICAgIFVJRWRnZUluc2V0cyBv
bGRPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKQEAgLTUxNTMsMTkgKzUxNTMsMTkg
QEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lk
KSl1cGRhdGVCbG9jawogICAgIHVwZGF0ZUJsb2NrKCk7CiAKICAgICBDR1JlY3QgbmV3Qm91bmRz
ID0gc2VsZi5ib3VuZHM7Ci0gICAgYXV0byBuZXdNaW5pbXVtTGF5b3V0U2l6ZSA9IFtzZWxmIGFj
dGl2ZU1pbmltdW1MYXlvdXRTaXplOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdWaWV3TGF5b3V0
U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107CiAgICAgYXV0byBu
ZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2Vs
ZiwgbmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50
YXRpb24oc2VsZik7CiAgICAgVUlFZGdlSW5zZXRzIG5ld09ic2N1cmVkSW5zZXRzID0gX29ic2N1
cmVkSW5zZXRzOwogICAgIENHUmVjdCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5h
dGVzID0gVUlFZGdlSW5zZXRzSW5zZXRSZWN0KG5ld0JvdW5kcywgX29ic2N1cmVkSW5zZXRzKTsK
ICAgICBDR1JlY3QgY29udGVudFZpZXdCb3VuZHMgPSBbX2NvbnRlbnRWaWV3IGJvdW5kc107CiAK
LSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCEoX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplICYm
IG5ld01pbmltdW1MYXlvdXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xsaW5nIHRo
ZSBsYXlvdXQgc2l6ZSBzaG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0byBtaW5p
bWl6ZSBsYXlvdXRzLiIpOwotICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykgfHwgbmV3
TWluaW11bUxheW91dFNpemUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNj
dXJlZFJlY3RJblNlbGZDb29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50Vmlld0Jv
dW5kcykpIHsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCEoX292ZXJyaWRlc1ZpZXdMYXlvdXRT
aXplICYmIG5ld1ZpZXdMYXlvdXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xsaW5n
IHRoZSBsYXlvdXQgc2l6ZSBzaG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0byBt
aW5pbWl6ZSBsYXlvdXRzLiIpOworICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykgfHwg
bmV3Vmlld0xheW91dFNpemUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNj
dXJlZFJlY3RJblNlbGZDb29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50Vmlld0Jv
dW5kcykpIHsKICAgICAgICAgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPSBEeW5hbWljVmll
d3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZzsKICAgICAgICAgW3NlbGYgX2ZyYW1lT3JCb3Vu
ZHNDaGFuZ2VkXTsKLSAgICAgICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKLSAg
ICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld01pbmltdW1M
YXlvdXRTaXplXTsKKyAgICAgICAgaWYgKF9vdmVycmlkZXNWaWV3TGF5b3V0U2l6ZSkKKyAgICAg
ICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXpl
XTsKICAgICAgICAgaWYgKF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpCiAgICAgICAg
ICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6Rmxv
YXRTaXplKG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgICAgICBpZiAoX292ZXJyaWRl
c0ludGVyZmFjZU9yaWVudGF0aW9uKQpAQCAtNTE3Niw3ICs1MTc2LDcgQEAgLSAodm9pZClfYmVn
aW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawog
ICAgIH0KIAogICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChvbGRCb3VuZHMsIG5ld0JvdW5kcykK
LSAgICAgICAgJiYgb2xkTWluaW11bUxheW91dFNpemUgPT0gbmV3TWluaW11bUxheW91dFNpemUK
KyAgICAgICAgJiYgb2xkVmlld0xheW91dFNpemUgPT0gbmV3Vmlld0xheW91dFNpemUKICAgICAg
ICAgJiYgb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID09IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6
ZQogICAgICAgICAmJiBvbGRPcmllbnRhdGlvbiA9PSBuZXdPcmllbnRhdGlvbgogICAgICAgICAm
JiBVSUVkZ2VJbnNldHNFcXVhbFRvRWRnZUluc2V0cyhvbGRPYnNjdXJlZEluc2V0cywgbmV3T2Jz
Y3VyZWRJbnNldHMpKSB7CkBAIC01MTk2LDEzICs1MTk2LDEzIEBAIC0gKHZvaWQpX2JlZ2luQW5p
bWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBb
X3Jlc2l6ZUFuaW1hdGlvblZpZXcgYWRkU3VidmlldzpbX2NvbnRlbnRWaWV3IHVuc2NhbGVkVmll
d11dOwogCiAgICAgQ0dTaXplIGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzID0g
Y29udGVudFZpZXdCb3VuZHMuc2l6ZTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0TWluaW11bVpvb21T
Y2FsZTpzdGQ6Om1pbihuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJ
bkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xsVmlldyBtaW5pbXVtWm9vbVNj
YWxlXSldOwotICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOnN0ZDo6bWF4KG5l
d01pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBjb250ZW50U2l6ZUluQ29udGVudFZpZXdDb29y
ZGluYXRlcy53aWR0aCwgW19zY3JvbGxWaWV3IG1heGltdW1ab29tU2NhbGVdKV07CisgICAgW19z
Y3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6c3RkOjptaW4obmV3Vmlld0xheW91dFNpemUu
d2lkdGgoKSAvIGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBbX3Nj
cm9sbFZpZXcgbWluaW11bVpvb21TY2FsZV0pXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0TWF4aW11
bVpvb21TY2FsZTpzdGQ6Om1heChuZXdWaWV3TGF5b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNp
emVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xsVmlldyBtYXhpbXVtWm9v
bVNjYWxlXSldOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgbmV3IHNjYWxlIHRvIGtlZXAgdGhlIGN1
cnJlbnQgY29udGVudCB3aWR0aCBpbiB0aGUgc2Nyb2xsdmlldy4KICAgICBDR0Zsb2F0IG9sZFdl
YlZpZXdXaWR0aEluQ29udGVudFZpZXdDb29yZGluYXRlcyA9IG9sZFVub2JzY3VyZWRDb250ZW50
UmVjdC53aWR0aCgpOwogICAgIENHRmxvYXQgdmlzaWJsZUNvbnRlbnRWaWV3V2lkdGhJbkNvbnRl
bnRDb29yZGluYXRlcyA9IHN0ZDo6bWluKGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5h
dGVzLndpZHRoLCBvbGRXZWJWaWV3V2lkdGhJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMpOwotICAg
IENHRmxvYXQgdGFyZ2V0U2NhbGUgPSBuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gdmlz
aWJsZUNvbnRlbnRWaWV3V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlczsKKyAgICBDR0Zsb2F0IHRh
cmdldFNjYWxlID0gbmV3Vmlld0xheW91dFNpemUud2lkdGgoKSAvIHZpc2libGVDb250ZW50Vmll
d1dpZHRoSW5Db250ZW50Q29vcmRpbmF0ZXM7CiAgICAgQ0dGbG9hdCByZXNpemVBbmltYXRpb25W
aWV3QW5pbWF0aW9uU2NhbGUgPSB0YXJnZXRTY2FsZSAvIGNvbnRlbnRab29tU2NhbGUoc2VsZik7
CiAgICAgW19yZXNpemVBbmltYXRpb25WaWV3IHNldFRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9y
bU1ha2VTY2FsZShyZXNpemVBbmltYXRpb25WaWV3QW5pbWF0aW9uU2NhbGUsIHJlc2l6ZUFuaW1h
dGlvblZpZXdBbmltYXRpb25TY2FsZSldOwogCkBAIC01MjQyLDExICs1MjQyLDExIEBAIC0gKHZv
aWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRl
QmxvY2sKICAgICBVSUVkZ2VJbnNldHMgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzID0gW3NlbGYg
X2NvbXB1dGVkVW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRdOwogICAgIFdlYkNvcmU6OkZsb2F0Qm94
RXh0ZW50IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCh1bm9ic2N1cmVkU2FmZUFyZWFJ
bnNldHMudG9wLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMucmlnaHQsIHVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cy5ib3R0b20sIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5sZWZ0KTsKIAotICAg
IF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplID0gbmV3TWluaW11bUxheW91dFNpemU7CisgICAg
X2xhc3RTZW50Vmlld0xheW91dFNpemUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKICAgICBfbGFzdFNl
bnRNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAg
X2xhc3RTZW50RGV2aWNlT3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAotICAgIF9wYWdl
LT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld01pbmltdW1MYXlvdXRTaXplLCBuZXdNYXhp
bXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2Jz
Y3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxm
Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUs
IG5ld09yaWVudGF0aW9uKTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShu
ZXdWaWV3TGF5b3V0U2l6ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdElu
Q29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBm
dXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJ
bnNldHNFeHRlbnQsIHRhcmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbik7CiAgICAgaWYgKFdlYktp
dDo6RHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkK
ICAgICAgICAgZHJhd2luZ0FyZWEtPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3VuZHMu
c2l6ZSkpOwogfQpAQCAtNTMxMSwxMiArNTMxMSwxMiBAQCAtICh2b2lkKV9lbmRBbmltYXRlZFJl
c2l6ZQogICAgIFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07CiAKICAg
ICBDR1JlY3QgbmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7Ci0gICAgYXV0byBuZXdNaW5pbXVtTGF5
b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOm5ld0JvdW5kc107CisgICAg
YXV0byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm5ld0Jv
dW5kc107CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVt
VW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0
aW9uID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAKLSAgICBpZiAoIV9sYXN0U2VudE1pbmlt
dW1MYXlvdXRTaXplIHx8IG5ld01pbmltdW1MYXlvdXRTaXplICE9IF9sYXN0U2VudE1pbmltdW1M
YXlvdXRTaXplLnZhbHVlKCkpCi0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlv
dXRTaXplOm5ld01pbmltdW1MYXlvdXRTaXplXTsKKyAgICBpZiAoIV9sYXN0U2VudFZpZXdMYXlv
dXRTaXplIHx8IG5ld1ZpZXdMYXlvdXRTaXplICE9IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplLnZh
bHVlKCkpCisgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdM
YXlvdXRTaXplXTsKICAgICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBu
ZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXpl
LnZhbHVlKCkpCiAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6
ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgaWYg
KCFfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiB8fCBuZXdPcmllbnRhdGlvbiAhPSBfbGFzdFNl
bnREZXZpY2VPcmllbnRhdGlvbi52YWx1ZSgpKQpAQCAtNTQxNywyMiArNTQxNywxNiBAQCAtICh2
b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdl
T2ZXaWR0aDooQ0dGbG9hdClpbQogICAgIH0pOwogfQogCi0tICh2b2lkKV9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6
ZSBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXpl
Rm9yTWluaW1hbFVJIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUKLXsKLSAgICBVTlVTRURfUEFSQU0obWluaW11bUxheW91
dFNpemVGb3JNaW5pbWFsVUkpOwotICAgIFtzZWxmIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNX
aXRoTWluaW11bUxheW91dFNpemU6bWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwotfQotCiAtICh2b2lk
KV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSlt
aW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCiB7Ci0gICAgW3NlbGYgX3NldE1pbmltdW1MYXlv
dXRTaXplT3ZlcnJpZGU6bWluaW11bUxheW91dFNpemVdOworICAgIFtzZWxmIF9zZXRWaWV3TGF5
b3V0U2l6ZU92ZXJyaWRlOm1pbmltdW1MYXlvdXRTaXplXTsKICAgICBbc2VsZiBfc2V0TWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwog
fQogCiAtICh2b2lkKV9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycwogewotICAgIF9vdmVy
cmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSA9IE5POwotICAgIF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJy
aWRlID0gQ0dTaXplWmVybzsKKyAgICBfb3ZlcnJpZGVzVmlld0xheW91dFNpemUgPSBOTzsKKyAg
ICBfdmlld0xheW91dFNpemVPdmVycmlkZSA9IENHU2l6ZVplcm87CiAKICAgICBfb3ZlcnJpZGVz
TWF4aW11bVVub2JzY3VyZWRTaXplID0gTk87CiAgICAgX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlID0gQ0dTaXplWmVybzsKQEAgLTU2MjIsMTQgKzU2MTYsMTQgQEAgLSAoQk9PTClfYXV0
b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzCiAKIC0gKENHRmxvYXQpX21pbmltdW1MYXlv
dXRXaWR0aAogewotICAgIHJldHVybiBfcGFnZS0+bWluaW11bUxheW91dFNpemUoKS53aWR0aCgp
OworICAgIHJldHVybiBfcGFnZS0+dmlld0xheW91dFNpemUoKS53aWR0aCgpOwogfQogCiAtICh2
b2lkKV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KENHRmxvYXQpd2lkdGgKIHsKICAgICBCT09MIGV4
cGFuZHNUb0ZpdCA9IHdpZHRoID4gMDsKIAotICAgIF9wYWdlLT5zZXRNaW5pbXVtTGF5b3V0U2l6
ZShXZWJDb3JlOjpJbnRTaXplKHdpZHRoLCAwKSk7CisgICAgX3BhZ2UtPnNldFZpZXdMYXlvdXRT
aXplKFdlYkNvcmU6OkludFNpemUod2lkdGgsIDApKTsKICAgICBfcGFnZS0+c2V0TWFpbkZyYW1l
SXNTY3JvbGxhYmxlKCFleHBhbmRzVG9GaXQpOwogCiAgICAgX2ltcGwtPnNldENsaXBzVG9WaXNp
YmxlUmVjdChleHBhbmRzVG9GaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNzA3ZGY5MjE3YmNkZjQ3MWIxODAw
Y2E5MWVmM2NhMzYyNjdhODA4MC4uNGRjYjVkNmM5MTk1MzA2ZDUwMjE0NjdlNGM2MTYwNDU3NGI5
NTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCkBAIC0yMjUsMTAgKzIyNSw2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVj
dClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbWFnZVdp
ZHRoIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKENHSW1hZ2VSZWYpKWNvbXBsZXRpb25IYW5k
bGVyOwogCi0vLyBEZXByZWNhdGVkOiBVc2UgW19vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6XSBpbnN0ZWFk
LgotLy8gVGhpcyBmdW5jdGlvbiBpcyBrZXB0IGZvciBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRo
IGlPUyA4LjAsIGl0IGNhbiBiZSByZW1vdmVkIGFmdGVyIHRoZSBiaW5jb21wYXQgd2luZG93Lgot
LSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihD
R1NpemUpbWluaW11bUxheW91dFNpemUgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUk6KENH
U2l6ZSltaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1fb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg4LjAs
IDkuMCkpOwotCiAtICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDlfMCkpOwogCiAtICh2b2lkKV9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDFhYjRkMmI3ZTI2MDE4NTEzZTNhZjE1NGYxMzVk
OTQ3ZTk2OGM4NTYuLmIzZmQzNDYyZTNkN2RiYjRiM2I0ZWMzYTE4ZWY4NjM0N2U2ODY1MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xNzQ1
LDcgKzE3NDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQoQ0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkKIHsKICAgICBib29sIGV4cGFuZHNU
b0ZpdCA9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dC53aWR0aCA+IDA7CiAKLSAgICBtX3BhZ2Ut
PnNldE1pbmltdW1MYXlvdXRTaXplKFdlYkNvcmU6OkludFNpemUobWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KSk7CisgICAgbV9wYWdlLT5zZXRWaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXpl
KG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpOwogICAgIG1fcGFnZS0+c2V0TWFpbkZyYW1lSXNT
Y3JvbGxhYmxlKCFleHBhbmRzVG9GaXQpOwogCiAgICAgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4
cGFuZHNUb0ZpdCk7CkBAIC0xNzUzLDcgKzE3NTMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRN
aW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoQ0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkK
IAogQ0dTaXplIFdlYlZpZXdJbXBsOjptaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3BhZ2UtPm1pbmltdW1MYXlvdXRTaXplKCk7CisgICAgcmV0dXJuIG1f
cGFnZS0+dmlld0xheW91dFNpemUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQpCkBAIC0xNzczLDcgKzE3NzMsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUpCiAg
ICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1
cy4KIAogICAgIENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJs
ZVdpZHRoID0gaW50cmluc2ljQ29udGVudFNpemU7Ci0gICAgaWYgKGludHJpbnNpY0NvbnRlbnRT
aXplLndpZHRoIDwgbV9wYWdlLT5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkpCisgICAgaWYg
KGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9wYWdlLT52aWV3TGF5b3V0U2l6ZSgpLndp
ZHRoKCkpCiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxl
V2lkdGgud2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKIAogICAgIG1faW50cmluc2lj
Q29udGVudFNpemUgPSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdp
ZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDI4
NGM5OGNhYmE1YTM0MTcxY2Y3ZTNmZTIwNzgwYjA4NDIxNDVhYzcuLmFlYTk0OTUyYTgwZmNiNDI0
ODU3MDM3MjM4ZGQyNmYzYjkwYzJlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dGV4cHIgU2Vjb25kcyBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSB7IHJldHVy
biBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKDUwMCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBj
b2xvclNwYWNlRGlkQ2hhbmdlKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1pbmltdW1MYXlvdXRT
aXplRGlkQ2hhbmdlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZXdMYXlvdXRTaXplRGlkQ2hh
bmdlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUs
IFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2ll
bnRab29tKGRvdWJsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0N2IxZWQ2NGY5MmZjN2Q3YWFiMzM1ODIyMWEy
OTJiODBkZjQ0ZDJlLi5jYTkyNTAzYzQzOGQyN2NmNjM0MTEwMDIwYzMwNjc0OTEwYmEzOTk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYwMzEsNyArNjAz
MSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBh
cmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMubWVkaWFWb2x1bWUgPSBtX21lZGlhVm9sdW1lOwog
ICAgIHBhcmFtZXRlcnMubXV0ZWQgPSBtX211dGVkU3RhdGU7CiAgICAgcGFyYW1ldGVycy5tYXlT
dGFydE1lZGlhV2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwotICAg
IHBhcmFtZXRlcnMubWluaW11bUxheW91dFNpemUgPSBtX21pbmltdW1MYXlvdXRTaXplOworICAg
IHBhcmFtZXRlcnMudmlld0xheW91dFNpemUgPSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIHBhcmFt
ZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9IG1fYXV0b1NpemluZ1No
b3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMgPSBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAg
cGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Njcm9sbFBpbm5pbmdCZWhhdmlv
cjsKQEAgLTYwNTgsNyArNjA1OCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFn
ZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMudGV4dEF1dG9zaXpp
bmdXaWR0aCA9IHRleHRBdXRvc2l6aW5nV2lkdGgoKTsKICAgICBwYXJhbWV0ZXJzLm1pbWVUeXBl
c1dpdGhDdXN0b21Db250ZW50UHJvdmlkZXJzID0gbV9wYWdlQ2xpZW50Lm1pbWVUeXBlc1dpdGhD
dXN0b21Db250ZW50UHJvdmlkZXJzKCk7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVzVmlld3BvcnRT
Y2FsZUxpbWl0cyA9IG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7Ci0gICAgcGFyYW1ldGVycy52
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1
cmF0aW9uTWluaW11bUxheW91dFNpemU7CisgICAgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3Vy
YXRpb25WaWV3TGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNp
emU7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9i
c2N1cmVkU2l6ZTsKICNlbmRpZgogCkBAIC02NTQ4LDIxICs2NTQ4LDIxIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzYXZlUERGVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoU3RyaW5nJiYgc3VnZ2VzdGVk
RmlsZW5hbWUsIFVSCiAgICAgICAgIEFQSTo6RGF0YTo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0
YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6c2V0TWluaW11bUxheW91dFNpemUoY29uc3QgSW50U2l6ZSYgbWluaW11bUxheW91dFNpemUp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld0xheW91dFNpemUoY29uc3QgSW50U2l6ZSYgdmll
d0xheW91dFNpemUpCiB7Ci0gICAgaWYgKG1fbWluaW11bUxheW91dFNpemUgPT0gbWluaW11bUxh
eW91dFNpemUpCisgICAgaWYgKG1fdmlld0xheW91dFNpemUgPT0gdmlld0xheW91dFNpemUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0
U2l6ZTsKKyAgICBtX3ZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAKICAgICBpZiAo
IWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSksIG1f
cGFnZUlEKTsKLSAgICBtX2RyYXdpbmdBcmVhLT5taW5pbXVtTGF5b3V0U2l6ZURpZENoYW5nZSgp
OworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Vmlld0xheW91dFNp
emUodmlld0xheW91dFNpemUpLCBtX3BhZ2VJRCk7CisgICAgbV9kcmF3aW5nQXJlYS0+dmlld0xh
eW91dFNpemVEaWRDaGFuZ2UoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgaWYgKG1fbWluaW11
bUxheW91dFNpemUud2lkdGgoKSA8PSAwKQorICAgIGlmIChtX3ZpZXdMYXlvdXRTaXplLndpZHRo
KCkgPD0gMCkKICAgICAgICAgaW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoSW50U2l6ZSgt
MSwgLTEpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA4MDcwMDUwMzczMWIwMjY3ZTM3NzczMDljNmRkYjQ5MmMzMmJhNWYyLi5lMDkyYTViMDgw
YTI3YjFiNGIzNWI0MTZjMzMyYzlhZWZmZTBlY2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNTQ1LDEwICs1NDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgb3Zl
cmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlk
RW5kU2Nyb2xsKCk7CiAKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbik7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24pOwogICAgIHZvaWQgc3luY2hyb25pemVEeW5hbWljVmll
d3BvcnRVcGRhdGUoKTsKIAotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11
bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
KTsKICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmKTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0
aW9uOyB9CkBAIC0xMDc2LDggKzEwNzYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRDb2xvclBp
Y2tlcigpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1MYXlvdXRTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0U2l6ZTsgfQotICAgIHZvaWQgc2V0TWlu
aW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIFdlYkNvcmU6Oklu
dFNpemUgdmlld0xheW91dFNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdMYXlvdXRTaXplOyB9
CisgICAgdm9pZCBzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAK
ICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KICAgICB2b2lkIHNl
dEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCk7CkBAIC0yMDcyLDcgKzIw
NzIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
IHsgZmFsc2UgfTsKLSAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11bUxheW91dFNpemU7Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAg
ICAgLy8gVmlzdWFsIHZpZXdwb3J0cwpAQCAtMjEzMSw3ICsyMTMxLDcgQEAgcHJpdmF0ZToKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgc3RkOjp1bmlxdWVfcHRyPE5vZGVBc3Npc3RhbmNlQXJndW1l
bnRzPiBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVudHM7CiAgICAgYm9vbCBtX2ZvcmNl
QWx3YXlzVXNlclNjYWxhYmxlIHsgZmFsc2UgfTsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV92
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjUwYWIyYzI2
MjVlYzg2NWZmYmM5MWRmODE3NzdlNjg0ODFlODIwNi4uNzEzYjJmODVlMzg3NzNhZmFkOGZmYTUx
NTczODMyOGVjZDQ2MTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om92
ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBtX3BhZ2VDbGllbnQub3ZlcmZsb3dTY3Jv
bGxEaWRFbmRTY3JvbGwoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlv
bikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZs
b2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11
bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFy
Z2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFpc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlv
dXRTaXplLAogCiAgICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvclRhcmdl
dCA9IHRydWU7CiAgICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvckxheWVy
VHJlZUNvbW1pdCA9IHRydWU7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG1pbmltdW1MYXlvdXRTaXplLCBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIHVub2JzY3Vy
ZWRTYWZlQXJlYUluc2V0cywgdGFyZ2V0U2NhbGUsIGRldmljZU9yaWVudGF0aW9uLCArK21fY3Vy
cmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUodmll
d0xheW91dFNpemUsIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRS
ZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCB0YXJnZXRTY2FsZSwgZGV2
aWNlT3JpZW50YXRpb24sICsrbV9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKSwg
bV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3luY2hyb25pemVEeW5hbWljVmll
d3BvcnRVcGRhdGUoKQpAQCAtMzU0LDEyICszNTQsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN5
bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkKICAgICBtX2R5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGVXYWl0aW5nRm9yTGF5ZXJUcmVlQ29tbWl0ID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld3Bv
cnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBz
aXplKQogewotICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUgPSBz
aXplOworICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgPSBzaXplOwog
CiAgICAgaWYgKGlzVmFsaWQoKSkKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShzaXplKSwg
bV9wYWdlSUQpOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNl
dFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKHNpemUpLCBtX3BhZ2VJRCk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShib29sIHVz
ZXJTY2FsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDQwYjFjOWNi
MjAxYzJjNTVjYjRiNzYzOWMyNzY5YjI0ZmVhYjI4YzIuLjNjOTdjMGMwMmM2ZTA4NmUwNTRiOTk3
MTE4ZmY2ODUyYjdkMmU1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFu
Z2UoKSBvdmVycmlkZTsKICAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2
b2lkIGNvbG9yU3BhY2VEaWRDaGFuZ2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIG1pbmltdW1MYXlv
dXRTaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB2aWV3TGF5b3V0U2l6ZURpZENo
YW5nZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KSBvdmVycmlkZTsKICAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50
NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CkBA
IC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50
U2l6ZTsKIAogICAgIC8vIFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ugc2VudCB0byB0
aGUgd2ViIHByb2Nlc3MuCi0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50TWluaW11bUxh
eW91dFNpemU7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50Vmlld0xheW91dFNpemU7
CiAKICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lm1tCmluZGV4IDMyM2I1ZGNjYTQyMTFmZGM4NDQwZTE3MjM0ZjgyMWEwMzcyMTQx
ZDUuLjI1ZGY2NGU0ZDhlOTI2NmQ4YWVhOGU3ZjYxN2M0YzBmYzgxYzAwZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6Y29sb3JTcGFjZURpZENoYW5nZSgpCiAgICAgbV93
ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRDb2xv
clNwYWNlKG1fd2ViUGFnZVByb3h5LmNvbG9yU3BhY2UoKSksIG1fd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjptaW5p
bXVtTGF5b3V0U2l6ZURpZENoYW5nZSgpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHk6OnZpZXdMYXlvdXRTaXplRGlkQ2hhbmdlKCkKIHsKICAgICBpZiAoIW1fd2ViUGFn
ZVByb3h5LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEyLDExICsxMTIsMTEgQEAg
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRy
eSgpCiAKICAgICBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7CiAKLSAg
ICBJbnRTaXplIG1pbmltdW1MYXlvdXRTaXplID0gbV93ZWJQYWdlUHJveHkubWluaW11bUxheW91
dFNpemUoKTsKKyAgICBJbnRTaXplIHZpZXdMYXlvdXRTaXplID0gbV93ZWJQYWdlUHJveHkudmll
d0xheW91dFNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hpbGUg
d2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhlIHdl
YiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJlLgot
ICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1MYXlv
dXRTaXplICE9IG1pbmltdW1MYXlvdXRTaXplKQorICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBt
X3NpemUgfHwgbV9sYXN0U2VudFZpZXdMYXlvdXRTaXplICE9IHZpZXdMYXlvdXRTaXplKQogICAg
ICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIApAQCAtMTI4LDEzICsxMjgsMTMgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0
aXZpdHlTdGF0ZSgpCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgbmV3SW50cmluc2lj
Q29udGVudFNpemUpCiB7Ci0gICAgaWYgKG1fd2ViUGFnZVByb3h5Lm1pbmltdW1MYXlvdXRTaXpl
KCkud2lkdGgoKSA+IDApCisgICAgaWYgKG1fd2ViUGFnZVByb3h5LnZpZXdMYXlvdXRTaXplKCku
d2lkdGgoKSA+IDApCiAgICAgICAgIG1fd2ViUGFnZVByb3h5LmludHJpbnNpY0NvbnRlbnRTaXpl
RGlkQ2hhbmdlKG5ld0ludHJpbnNpY0NvbnRlbnRTaXplKTsKIH0KIAogdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KCkKIHsKLSAg
ICBtX2xhc3RTZW50TWluaW11bUxheW91dFNpemUgPSBtX3dlYlBhZ2VQcm94eS5taW5pbXVtTGF5
b3V0U2l6ZSgpOworICAgIG1fbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IG1fd2ViUGFnZVByb3h5
LnZpZXdMYXlvdXRTaXplKCk7CiAgICAgbV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9p
c1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCA3NTU4MDczNjdlZWFmYzFkMGMxOTdlMWIxNDc3MGFlZDY3M2Mw
NTdlLi4zMzhiNjk5MTRhODQ1MWJjODRiZGE3NmEyZWU5ZjBlYzM0Y2UyMjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0MjAsMTAgKzE0MjAsMTAgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAg
ICAgIHdlYlBhZ2UtPmZpeGVkTGF5b3V0U2l6ZSgpLCBmaXhlZFZpc2libGVDb250ZW50UmVjdCwg
c2hvdWxkVXNlRml4ZWRMYXlvdXQsCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJNb2RlLCBo
b3Jpem9udGFsTG9jaywgdmVydGljYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbExvY2spOwogCi0g
ICAgaWYgKGludCBtaW5pbXVtTGF5b3V0V2lkdGggPSB3ZWJQYWdlLT5taW5pbXVtTGF5b3V0U2l6
ZSgpLndpZHRoKCkpIHsKLSAgICAgICAgaW50IG1pbmltdW1MYXlvdXRIZWlnaHQgPSBzdGQ6Om1h
eCh3ZWJQYWdlLT5taW5pbXVtTGF5b3V0U2l6ZSgpLmhlaWdodCgpLCAxKTsKKyAgICBpZiAoaW50
IHZpZXdMYXlvdXRXaWR0aCA9IHdlYlBhZ2UtPnZpZXdMYXlvdXRTaXplKCkud2lkdGgoKSkgewor
ICAgICAgICBpbnQgdmlld0xheW91dEhlaWdodCA9IHN0ZDo6bWF4KHdlYlBhZ2UtPnZpZXdMYXlv
dXRTaXplKCkuaGVpZ2h0KCksIDEpOwogICAgICAgICBpbnQgbWF4aW11bVNpemUgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludD46Om1heCgpOwotICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+
dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgSW50U2l6ZShtaW5pbXVtTGF5b3V0V2lk
dGgsIG1pbmltdW1MYXlvdXRIZWlnaHQpLCBJbnRTaXplKG1heGltdW1TaXplLCBtYXhpbXVtU2l6
ZSkpOworICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5lbmFibGVBdXRvU2l6
ZU1vZGUodHJ1ZSwgSW50U2l6ZSh2aWV3TGF5b3V0V2lkdGgsIHZpZXdMYXlvdXRIZWlnaHQpLCBJ
bnRTaXplKG1heGltdW1TaXplLCBtYXhpbXVtU2l6ZSkpOwogCiAgICAgICAgIGlmICh3ZWJQYWdl
LT5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkpCiAgICAgICAgICAgICBtX2Zy
YW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCh3
ZWJQYWdlLT5zaXplKCkuaGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNw
cAppbmRleCBhNmRiMGU1YjI3NGNiZDVlOTM2Yjc0NTJlMGQxOGIyYTFlM2M4OTBkLi40ZTE3YThm
MmJhZTI3ODk2MGU0ZTcyZWQxZDIwMDE1MDAzZDYyYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5
Q29sbGVjdG9yLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvcjo6Y29sbGVjdEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShG
CiAgICAgICAgICAgICB0YXJnZXRTY2FsZSA9IHRleHRMZWdpYmlsaXR5U2NhbGVzLT5zZWNvbmQ7
CiAKICAgICAgICAgRmxvYXRSZWN0IHRhcmdldFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB7IG9y
aWdpbiwgRmxvYXRTaXplKCkgfTsKLSAgICAgICAgdGFyZ2V0UmVjdEluQ29udGVudENvb3JkaW5h
dGVzLmluZmxhdGUobV93ZWJQYWdlLnZpZXdwb3J0Q29uZmlndXJhdGlvbigpLnZpZXdTaXplKCkg
LyAoMiAqIHRhcmdldFNjYWxlKSk7CisgICAgICAgIHRhcmdldFJlY3RJbkNvbnRlbnRDb29yZGlu
YXRlcy5pbmZsYXRlKG1fd2ViUGFnZS52aWV3cG9ydENvbmZpZ3VyYXRpb24oKS52aWV3TGF5b3V0
U2l6ZSgpIC8gKDIgKiB0YXJnZXRTY2FsZSkpOwogCiAgICAgICAgIGRpc3BhdGNoRGlkQ29sbGVj
dEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShvcmlnaW4sIHRhcmdldFJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcywgdmlzaWJsZUNvbnRlbnRSZWN0LCB0cnVlLCB2aWV3cG9ydE1p
bmltdW1TY2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZiNDQwMmE0
ZjJmODMxZGQzYjY3YjM3YTlhZmI0ZjRiMjJkMzAwNTYuLjE2ZDg0NjA4ZTIzNDgzZWE4MjA4YWM1
N2JkZjFlMDBhODBiYzZmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC01MTAsNyArNTEwLDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAg
dXBkYXRlSXNJbldpbmRvdyh0cnVlKTsKIAotICAgIHNldE1pbmltdW1MYXlvdXRTaXplKHBhcmFt
ZXRlcnMubWluaW11bUxheW91dFNpemUpOworICAgIHNldFZpZXdMYXlvdXRTaXplKHBhcmFtZXRl
cnMudmlld0xheW91dFNpemUpOwogICAgIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdI
ZWlnaHQocGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KTsKICAg
ICBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHBhcmFtZXRlcnMudmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyk7CiAgICAgCkBAIC02MTIsNyArNjEyLDcgQEAgV2ViUGFn
ZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgc2V0Vmlld3BvcnRD
b25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZSk7CisgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmll
d0xheW91dFNpemUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6
ZSk7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKHBhcmFtZXRlcnMubWF4aW11bVVub2Jz
Y3VyZWRTaXplKTsKICNlbmRpZgogfQpAQCAtNDk5NywyMyArNDk5NywyMyBAQCB2b2lkIFdlYlBh
Z2U6OnNldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGlj
YWxTY3JvbGxlcikKICAgICB2aWV3LT5zZXRWZXJ0aWNhbFNjcm9sbGJhck1vZGUoYWx3YXlzU2hv
d3NWZXJ0aWNhbFNjcm9sbGVyID8gU2Nyb2xsYmFyQWx3YXlzT24gOiBtX21haW5GcmFtZUlzU2Ny
b2xsYWJsZSA/IFNjcm9sbGJhckF1dG8gOiBTY3JvbGxiYXJBbHdheXNPZmYsIGFsd2F5c1Nob3dz
VmVydGljYWxTY3JvbGxlciB8fCAhbV9tYWluRnJhbWVJc1Njcm9sbGFibGUpOwogfQogCi12b2lk
IFdlYlBhZ2U6OnNldE1pbmltdW1MYXlvdXRTaXplKGNvbnN0IEludFNpemUmIG1pbmltdW1MYXlv
dXRTaXplKQordm9pZCBXZWJQYWdlOjpzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiB2
aWV3TGF5b3V0U2l6ZSkKIHsKLSAgICBpZiAobV9taW5pbXVtTGF5b3V0U2l6ZSA9PSBtaW5pbXVt
TGF5b3V0U2l6ZSkKKyAgICBpZiAobV92aWV3TGF5b3V0U2l6ZSA9PSB2aWV3TGF5b3V0U2l6ZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IG1pbmltdW1MYXlv
dXRTaXplOwotICAgIGlmIChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIDw9IDApIHsKKyAgICBt
X3ZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CisgICAgaWYgKHZpZXdMYXlvdXRTaXpl
LndpZHRoKCkgPD0gMCkgewogICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCkt
PmVuYWJsZUF1dG9TaXplTW9kZShmYWxzZSwgSW50U2l6ZSgpLCBJbnRTaXplKCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG1pbmltdW1MYXlvdXRXaWR0aCA9IG1pbmltdW1M
YXlvdXRTaXplLndpZHRoKCk7Ci0gICAgaW50IG1pbmltdW1MYXlvdXRIZWlnaHQgPSBzdGQ6Om1h
eChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSwgMSk7CisgICAgaW50IHZpZXdMYXlvdXRXaWR0
aCA9IHZpZXdMYXlvdXRTaXplLndpZHRoKCk7CisgICAgaW50IHZpZXdMYXlvdXRIZWlnaHQgPSBz
dGQ6Om1heCh2aWV3TGF5b3V0U2l6ZS5oZWlnaHQoKSwgMSk7CiAKICAgICBpbnQgbWF4aW11bVNp
emUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpOwogCi0gICAgY29yZVBhZ2UoKS0+
bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgSW50U2l6ZShtaW5p
bXVtTGF5b3V0V2lkdGgsIG1pbmltdW1MYXlvdXRIZWlnaHQpLCBJbnRTaXplKG1heGltdW1TaXpl
LCBtYXhpbXVtU2l6ZSkpOworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5h
YmxlQXV0b1NpemVNb2RlKHRydWUsIEludFNpemUodmlld0xheW91dFdpZHRoLCB2aWV3TGF5b3V0
SGVpZ2h0KSwgSW50U2l6ZShtYXhpbXVtU2l6ZSwgbWF4aW11bVNpemUpKTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxk
RXhwYW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IGVhNjUyZmY1ZjMyYTdiZThlNzFkMTYyZTVlNGU1N2FhMTdkZjg4ZWYuLjk3ODBjZmM2YzVhZjg0
MGNiZGFmYjFkMDkzZWNhOGU0ZTJlZWYyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg3NSwxMCArODc1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwogCiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11
bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
KTsKICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmKTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwotICAgIHZv
aWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1p
bmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1
aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIHZvaWQgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXpl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIHZvaWQgc3luY2hyb25pemVEeW5hbWljVmlld3Bv
cnRVcGRhdGUoZG91YmxlJiBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3
U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90JiBuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklE
KTsKICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzY2FsZUZyb21VSVByb2Nlc3MoY29uc3QgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiwgTW9ub3Rv
bmljVGltZSBvbGRlc3RUaW1lc3RhbXApOwpAQCAtOTM5LDggKzkzOSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9h
bHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcjsgfTsKICAgICBib29sIGFsd2F5c1Nob3dzVmVy
dGljYWxTY3JvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9s
bGVyOyB9OwogCi0gICAgdm9pZCBzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWluaW11bUxheW91dFNpemU7IH0KKyAgICB2b2lkIHNldFZpZXdMYXlvdXRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdM
YXlvdXRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3TGF5b3V0U2l6ZTsgfQogCiAgICAgdm9p
ZCBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5k
KTsKICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSB7IHJldHVy
biBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KQEAgLTE1OTIsNyArMTU5
Miw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1fdHJhY2tlZE5l
dHdvcmtSZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyczsKIAotICAgIFdlYkNvcmU6OkludFNpemUg
bV9taW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld0xheW91dFNp
emU7CiAgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxz
ZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkMmM2ODRkN2YyZjBmOTdhN2I0MWU5
ODNkNWIyZjQ1Y2QwZjhiZGNkLi41ZDFjZjZmMTQyMjdkMzE3OTg2MWQ2ZmRkNDI5N2M4ZDdkMGI3
N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTQxLDEwICs0MSwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBLZXlFdmVudChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZl
bnQpCiAgICAgTW91c2VFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQorICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZp
ZXdMYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldE1heGltdW1Vbm9i
c2N1cmVkU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXREZXZpY2VPcmllbnRh
dGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQotICAgIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9h
dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhw
b3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3Qs
IFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRf
dCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCisgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2Vk
Q29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2Vi
Q29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5z
ZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKICAgICBTeW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9y
dFVwZGF0ZSgpIC0+IChkb3VibGUgbmV3VGFyZ2V0U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQg
bmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90IG5leHRWYWxpZExheWVyVHJlZVRyYW5zYWN0aW9u
SUQpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQpAQCAtNDA4LDcgKzQwOCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNj
cm9sbGVyKGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpCiAgICAgU2V0QWx3YXlz
U2hvd3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wgYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKQog
Ci0gICAgU2V0TWluaW11bUxheW91dFNpemUoV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0
U2l6ZSkKKyAgICBTZXRWaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplIHZpZXdMYXlvdXRT
aXplKQogICAgIFNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91
bGRFeHBhbmQpCiAKICAgICBTZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNDc1ODRk
NTc5ZDMxZTA4NDhkNjM2NzMyMmU3Yzc3MjQ3NGRjYzIxLi5mZjc3MGQ2Njc4NTBhZDBjNDQyOTRj
NzQ1YWE3M2MyY2E0ZmIzN2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjQ1NCwxMCArMjQ1NCwxMCBAQCB2b2lkIFdl
YlBhZ2U6OmF1dG9maWxsTG9naW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIHVzZXJuYW1lLCBj
b25zdCBTdHJpbmcmIHBhcwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRWaWV3cG9ydENv
bmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCit2b2lk
IFdlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJl
YW0gPDwgIldlYlBhZ2UgIiA8PCBtX3BhZ2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlv
bk1pbmltdW1MYXlvdXRTaXplICIgPDwgc2l6ZSk7Ci0gICAgaWYgKG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLnNldE1pbmltdW1MYXlvdXRTaXplKHNpemUpKQorICAgIExPR19XSVRIX1NUUkVBTShW
aXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmll
d3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgIiA8PCBzaXplKTsKKyAgICBpZiAobV92
aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Vmlld0xheW91dFNpemUoc2l6ZSkpCiAgICAgICAgIHZp
ZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIApAQCAtMjQ5MiwxMiArMjQ5MiwxMiBA
QCB2b2lkIFdlYlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmcoKQogICAgIH0KIH0KIAotdm9pZCBX
ZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11
bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRT
aXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUg
dGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBv
c2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3Vy
ZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVu
dGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgU2V0
Rm9yU2NvcGU8Ym9vbD4gZHluYW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRh
dGUsIHRydWUpOwogICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZXMg
d2hlcmUgdGhlIGNvbnRlbnQgd291bGQgY2hhbmdlIHRoZSBjb250ZW50IHNpemUgb3Igc2Nyb2xs
IHBvc2l0aW9uIGZyb20gSmF2YVNjcmlwdC4KICAgICAvLyBUbyBoYW5kbGUgdGhvc2UgY2FzZXMs
IHdlIHdvdWxkIG5lZWQgdG8gcmVkbyB0aGlzIGNvbXB1dGF0aW9uIG9uIGV2ZXJ5IGNoYW5nZSB1
bnRpbCB0aGUgbmV4dCB2aXNpYmxlIGNvbnRlbnQgcmVjdCB1cGRhdGUuCi0gICAgTE9HX1dJVEhf
U1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJcbldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUgLSBtaW5pbXVtTGF5b3V0U2l6ZSAiIDw8IG1pbmltdW1MYXlvdXRTaXplIDw8
ICIgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgIiA8PCB0YXJnZXRVbm9ic2N1cmVkUmVjdCA8PCAiIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCAiIDw8IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCA8PCAi
IHRhcmdldFNjYWxlICIgPDwgdGFyZ2V0U2NhbGUpOworICAgIExPR19XSVRIX1NUUkVBTShWaXNp
YmxlUmVjdHMsIHN0cmVhbSA8PCAiXG5XZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
IC0gdmlld0xheW91dFNpemUgIiA8PCB2aWV3TGF5b3V0U2l6ZSA8PCAiIHRhcmdldFVub2JzY3Vy
ZWRSZWN0ICIgPDwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVu
dFJlY3QgIiA8PCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8
IHRhcmdldFNjYWxlKTsKIAogICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFp
bkZyYW1lKCkudmlldygpOwogICAgIEludFNpemUgb2xkQ29udGVudFNpemUgPSBmcmFtZVZpZXcu
Y29udGVudHNTaXplKCk7CkBAIC0yNTI5LDggKzI1MjksOCBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwg
Y29ucwogICAgICAgICB9CiAgICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0
cywgc3RyZWFtIDw8ICJXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIHNldHRpbmcg
bWluaW11bSBsYXlvdXQgc2l6ZSB0byAiIDw8IG1pbmltdW1MYXlvdXRTaXplKTsKLSAgICBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6
ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdl
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIHNldHRpbmcgdmlldyBsYXlvdXQgc2l6ZSB0byAi
IDw8IHZpZXdMYXlvdXRTaXplKTsKKyAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3
TGF5b3V0U2l6ZSh2aWV3TGF5b3V0U2l6ZSk7CiAgICAgSW50U2l6ZSBuZXdMYXlvdXRTaXplID0g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0U2l6ZSgpOwogCiAgICAgaWYgKHNldEZpeGVk
TGF5b3V0U2l6ZShuZXdMYXlvdXRTaXplKSkKQEAgLTI2MTIsNyArMjYxMiw3IEBAIHZvaWQgV2Vi
UGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1M
YXlvdXRTaXplLCBjb25zCiAgICAgICAgICAgICAgICAgbmV3RXhwb3NlZENvbnRlbnRSZWN0LnNl
dFkoMCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGJvb2wgbGlrZWx5UmVzcG9uc2l2
ZURlc2lnblZpZXdwb3J0ID0gbmV3TGF5b3V0U2l6ZS53aWR0aCgpID09IG1pbmltdW1MYXlvdXRT
aXplLndpZHRoKCkgJiYgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoc2NhbGUsIDEpOworICAg
ICAgICAgICAgYm9vbCBsaWtlbHlSZXNwb25zaXZlRGVzaWduVmlld3BvcnQgPSBuZXdMYXlvdXRT
aXplLndpZHRoKCkgPT0gdmlld0xheW91dFNpemUud2lkdGgoKSAmJiBhcmVFc3NlbnRpYWxseUVx
dWFsQXNGbG9hdChzY2FsZSwgMSk7CiAgICAgICAgICAgICBib29sIGNvbnRlbnRCbGVlZHNPdXRz
aWRlTGF5b3V0V2lkdGggPSBuZXdDb250ZW50U2l6ZS53aWR0aCgpID4gbmV3TGF5b3V0U2l6ZS53
aWR0aCgpOwogICAgICAgICAgICAgYm9vbCBvcmlnaW5hbFNjcm9sbFBvc2l0aW9uV2FzT25UaGVM
ZWZ0RWRnZSA9IHRhcmdldFVub2JzY3VyZWRSZWN0LngoKSA8PSAwOwogICAgICAgICAgICAgaWYg
KGxpa2VseVJlc3BvbnNpdmVEZXNpZ25WaWV3cG9ydCAmJiBjb250ZW50QmxlZWRzT3V0c2lkZUxh
eW91dFdpZHRoICYmIG9yaWdpbmFsU2Nyb2xsUG9zaXRpb25XYXNPblRoZUxlZnRFZGdlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggZjIxMWVmZGNjMDk0
MDUwOWNmMjQwMzc4ZTg1MjhiNjY4MGE3ZTJmNy4uZDAyZWQ3MjFhN2IwYWEyYzlmMDBkZDhkMWI2
OTk1NTczZGJjMmQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJiBzCiAKIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZO
ZWVkZWQoKQogewotICAgIGlmICghbV93ZWJQYWdlLm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgo
KSkKKyAgICBpZiAoIW1fd2ViUGFnZS52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFt
ZVZpZXcoKTsKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAg
IEludFNpemUgc2l6ZSA9IHZpZXdTaXplOwogICAgIEludFNpemUgY29udGVudFNpemUgPSBJbnRT
aXplKC0xLCAtMSk7CiAKLSAgICBpZiAoIW1fd2ViUGFnZS5taW5pbXVtTGF5b3V0U2l6ZSgpLndp
ZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSkK
KyAgICBpZiAoIW1fd2ViUGFnZS52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkgfHwgbV93ZWJQYWdl
LmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSkKICAgICAgICAgbV93ZWJQYWdl
LnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5t
YWluRnJhbWVWaWV3KCk7CkBAIC01NjIsNyArNTYyLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJv
b2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFn
ZS5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkgJiYgZnJhbWVWaWV3KSB7CisgICAgaWYgKG1f
d2ViUGFnZS52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkgJiYgZnJhbWVWaWV3KSB7CiAgICAgICAg
IGNvbnRlbnRTaXplID0gZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50cmluc2ljQ29udGVudFNpemUo
KTsKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>
<flag name="review"
          id="357200"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338975</attachid>
            <date>2018-04-26 22:53:16 -0700</date>
            <delta_ts>2018-04-27 00:44:29 -0700</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-185050-20180426225315.patch</filename>
            <type>text/plain</type>
            <size>6071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U2YWM4YjYzODNjMGRi
N2U5NDJkZWY3NjI4ZmY5MWEzNDg2ZTllOS4uMWM0MTM0ZTExM2RiNzJlYWI4YTM0N2Y2YTI0YzUz
MWU0MzhmM2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2
aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE1p
bkRldmljZVdpZHRoRW5hYmxlZCBhcyBhIG5ldyBydW50aW1lLWVuYWJsZWQgZmVhdHVyZS4KKwor
ICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRWaWV3cG9ydEZlYXR1cmUpOgorCisgICAgICAgIEdhdGUgdGhlIHBhcnNpbmcgb2YgIm1pbi1k
ZXZpY2Utd2lkdGgiIG9uIHRoZSBydW50aW1lLWVuYWJsZWQgZmVhdHVyZSBiZWluZyBmbGlwcGVk
IG9uLgorCisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRNaW5EZXZpY2VXaWR0aEVuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6bWluRGV2aWNl
V2lkdGhFbmFibGVkIGNvbnN0KToKKwogMjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgbWluaW11bUxheW91dFNpemUgdG8g
dmlld0xheW91dFNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmZiYjg5NTU1NGZmMWFiZTJiZjgwYTBjOTYyOWE1
NTU2NGUwNzBiZC4uMmZkMTQyYWJlZTI2MTUzZjliZjQ4YzNkOGFlMTkzM2RhODI3MzQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBBZGQgYSBtZWNo
YW5pc20gdG8gb3ZlcnJpZGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMgaW4gZXh0cmEgem9v
bSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODUwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NjI0MDM4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBNaW5EZXZpY2VXaWR0aEVuYWJs
ZWQgYXMgYSBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIG9uIGJ5IGRlZmF1bHQgaW4gZXh0cmEg
em9vbSBtb2RlIGFuZCBvZmYgZWxzZXdoZXJlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oOgorCiAyMDE4LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmFtZSBtaW5pbXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0U2l6ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggNzFhM2M1ZGYwNDIz
MzdlN2M5NWFjYzVlZWY1Mjg0NDFhOGRiYzcyNi4uYTc3Yjk3OWNhODU4NmRhOTU3N2ZiYjIxZGQ4
ZTg4YzFhZmE0NTgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC00MjAsNyAr
NDIxLDcgQEAgdm9pZCBzZXRWaWV3cG9ydEZlYXR1cmUoVmlld3BvcnRBcmd1bWVudHMmIGFyZ3Vt
ZW50cywgRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJpbmcKICAgICAgICAgYXJndW1lbnRzLnNocmlu
a1RvRml0ID0gZmluZEJvb2xlYW5WYWx1ZShkb2N1bWVudCwga2V5LCB2YWx1ZSk7CiAgICAgZWxz
ZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoa2V5LCAidmlld3BvcnQtZml0Iikg
JiYgZG9jdW1lbnQuc2V0dGluZ3MoKS52aWV3cG9ydEZpdEVuYWJsZWQoKSkKICAgICAgICAgYXJn
dW1lbnRzLnZpZXdwb3J0Rml0ID0gcGFyc2VWaWV3cG9ydEZpdFZhbHVlKGRvY3VtZW50LCBrZXks
IHZhbHVlKTsKLSAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShrZXks
ICJtaW4tZGV2aWNlLXdpZHRoIikpCisgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoa2V5LCAibWluLWRldmljZS13aWR0aCIpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkubWluRGV2aWNlV2lkdGhFbmFibGVkKCkpCiAgICAgICAgIGFy
Z3VtZW50cy5taW5EZXZpY2VXaWR0aCA9IG51bWVyaWNQcmVmaXgoZG9jdW1lbnQsIGtleSwgdmFs
dWUpOwogICAgIGVsc2UKICAgICAgICAgcmVwb3J0Vmlld3BvcnRXYXJuaW5nKGRvY3VtZW50LCBV
bnJlY29nbml6ZWRWaWV3cG9ydEFyZ3VtZW50S2V5RXJyb3IsIGtleSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDM1YTNiOGYwNzJlOWNhYTg0
YTljODUyYjUyM2JkYmI5MjlkMGNkNDEuLjI5YzQ5ZDE0NGI5N2EyNzk4NTljOTY4ZjEwZDIzYjUx
MGRmNGEwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCkBAIC0yNTMsNiArMjUzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJvbU9yaWdpblJl
c3BvbnNlSGVhZGVyRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2Zyb21PcmlnaW5SZXNwb25z
ZUhlYWRlckVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGZyb21PcmlnaW5SZXNwb25z
ZUhlYWRlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Zyb21PcmlnaW5SZXNwb25zZUhlYWRl
ckVuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0TWluRGV2aWNlV2lkdGhFbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IG1fbWluRGV2aWNlV2lkdGhFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9v
bCBtaW5EZXZpY2VXaWR0aEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21pbkRldmljZVdpZHRo
RW5hYmxlZDsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMmIHNoYXJlZEZlYXR1cmVzKCk7CiAKIHByaXZhdGU6CkBAIC0zODksNiArMzkyLDggQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgbV9mcm9tT3JpZ2luUmVzcG9uc2VIZWFkZXJFbmFibGVkIHsg
ZmFsc2UgfTsKIAorICAgIGJvb2wgbV9taW5EZXZpY2VXaWR0aEVuYWJsZWQgeyBmYWxzZSB9Owor
CiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0
dXJlcz47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRl
eCBiNWY2MmM3MGNiN2QzZDJiMGUxZWFkMzE2YTZhNmU1MjI5MWU2NWUwLi5mNDRjN2Q3OGIzOTNk
Nzk0ZTBkNjkxOWIyYTIzMzJjOWExZWUwZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKQEAgLTc4MSw3ICs3ODEsNyBAQCBEYXRhVHJhbnNmZXJJdGVtc0VuYWJs
ZWQ6CiBDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVs
dFZhbHVlOiBkZWZhdWx0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkKLSAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJDdXN0b20gcGF0ZWJvYXJkIGRhdGEiCisgIGh1bWFuUmVhZGFibGVOYW1lOiAi
Q3VzdG9tIHBhc3RlYm9hcmQgZGF0YSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIGN1c3RvbSBjbGlwYm9hcmQgdHlwZXMgYW5kIGJldHRlciBzZWN1cml0eSBtb2RlbCBmb3Ig
Y2xpcGJvYXJkIEFQSS4iCiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
CiAKQEAgLTEyNDgsMyArMTI0OCwxMSBAQCBGcm9tT3JpZ2luUmVzcG9uc2VIZWFkZXJFbmFibGVk
OgogICAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN1cHBvcnQgZm9yIHRoZSBGcm9tLU9y
aWdpbiBSZXNwb25zZSBIZWFkZXIiCiAgICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICAgIHdl
YmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisKK01pbkRldmljZVdpZHRoRW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfTUlOX0RFVklDRV9X
SURUSF9FTkFCTEVECisgIGh1bWFuUmVhZGFibGVOYW1lOiAiTWluaW11bSBkZXZpY2Ugd2lkdGgi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSB0aGUgbWluLWRldmljZS13aWR0
aCB2aWV3cG9ydCBwYXJhbWV0ZXIiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgd2ViY29y
ZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKaW5kZXggZTc1ZjNkNGQzMzMzNDMw
NGUyNDQxOTliNzBkOWQ5YjExZDZkMDIwYi4uMTk0ZTAyNjQxM2I1NjIxMzRmYTUxMTMyZDBjNzc0
OWRhMjdkNjAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmgKQEAgLTE3Nyw2ICsxNzcsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9W
SVNVQUxfVklFV1BPUlRfSEVJR0hUX0VYUEFOU0lPTl9GQUNUT1IgMAogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorI2RlZmluZSBERUZBVUxUX01JTl9ERVZJQ0VfV0lEVEhf
RU5BQkxFRCAxCisjZWxzZQorI2RlZmluZSBERUZBVUxUX01JTl9ERVZJQ0VfV0lEVEhfRU5BQkxF
RCAwCisjZW5kaWYKKwogLy8gQ29jb2EgcG9ydHMgbXVzdCBkaXNhYmxlIGV4cGVyaW1lbnRhbCBm
ZWF0dXJlcyBvbiByZWxlYXNlIGJyYW5jaGVzIGZvciBub3cuCiAjaWYgRU5BQkxFKEVYUEVSSU1F
TlRBTF9GRUFUVVJFUykgfHwgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIERFRkFVTFRfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQgdHJ1ZQo=
</data>
<flag name="review"
          id="357208"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338987</attachid>
            <date>2018-04-27 07:51:44 -0700</date>
            <delta_ts>2018-04-27 08:35:55 -0700</delta_ts>
            <desc>Part 1 (patch for landing)</desc>
            <filename>bug-185050-20180427075143.patch</filename>
            <type>text/plain</type>
            <size>66046</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ0NTMyMTRhOTU5OGNj
MjU0ZTFkZTkwY2U2OTQ4YTJhODI5YTFhNy4uODkwZTM1ZmVmNWQ4YmFjNmNjNDJlNjU4YzlmZTFm
YTBlNmE0M2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2
aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDdXJyZW50bHks
IGluIGV4dHJhIHpvb20gbW9kZSwgdGhlcmUncyBubyB3YXkgZm9yIHdlYiBwYWdlcyB0byBvcHQg
b3V0IG9mIHRoZSBkZWZhdWx0IHZpZXdwb3J0IGJlaGF2aW9ycworICAgICAgICAobmFtZWx5LCBs
YXlpbmcgb3V0IGF0IGEgbGFyZ2VyIHdpZHRoIGFuZCBzaHJpbmtpbmcgdG8gZml0KSB3aGVuIHRo
ZSB3ZWIgdmlldyBpcyB2ZXJ5IHRhbGwgYW5kIG5hcnJvdy4gVGhpcworICAgICAgICBwYXRjaCBh
ZGRzIGEgbmV3IGV4cGVyaW1lbnRhbCB2aWV3cG9ydCBhdHRyaWJ1dGUsICJtaW4tZGV2aWNlLXdp
ZHRoIiwgdGhhdCBjYW4gYmUgdXNlZCB0byBwcmV2ZW50IFdlYktpdCBmcm9tCisgICAgICAgIGF1
dG9tYXRpY2FsbHkgY2xhbXBpbmcgdGhlIHdlYiB2aWV3IHdpZHRoIHRvIGEgZ3JlYXRlciB2YWx1
ZSBmb3IgdGhlIGRldmljZSB3aWR0aCBpbiB0aGlzIHNjZW5hcmlvLgorCisgICAgICAgIE5vdGUg
dGhhdCBhZnRlciB0aGlzIHBhdGNoLCBsb2dpYyB0aGF0IHBsdW1icyBhIG1pbmltdW1MYXlvdXRT
aXplIGZyb20gV0tXZWJWaWV3IHRvIHRoZSB2aWV3cG9ydCBjb25maWd1cmF0aW9uCisgICAgICAg
IHdpbGwgbmVlZCB0byBiZSByZW5hbWVkIHRvIHJlZmxlY3QgdGhhdCB0aGlzIHNpemUgaXMgbm8g
bG9uZ2VyIHRoZSBtaW5pbXVtIGxheW91dCBzaXplLCBidXQgcmF0aGVyLCB0aGUgdmlldworICAg
ICAgICBzaXplIHRoYXQgaXMgdXNlZCBmb3Igdmlld3BvcnQgZGV2aWNlIGRpbWVuc2lvbnMgYnkg
ZGVmYXVsdC4gVGhpcyByZWZhY3RvcmluZyB3aWxsIGJlIGRvbmUgaW4gYSBmb2xsb3d1cCBwYXJ0
LgorCisgICAgICAgIFNlZSBwZXItbWV0aG9kIGNvbW1lbnRzIGJlbG93IGZvciBtb3JlIGRldGFp
bC4KKworICAgICAgICBUZXN0OiBmYXN0L3ZpZXdwb3J0L2V4dHJhem9vbS92aWV3cG9ydC1jaGFu
Z2UtbWluLWRldmljZS13aWR0aC5odG1sCisKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Vmlld3BvcnRGZWF0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5o
OgorCisgICAgICAgIFJlbW92ZXMgYG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXRgIChtb3Jl
IGRldGFpbCBiZWxvdykuCisKKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlZE1pbkRldmljZVdpZHRoKToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1cmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0TWluaW11bUxheW91
dFNpemUpOgorCisgICAgICAgIEluc3RlYWQgb2YgZGlyZWN0bHkgc2V0dGluZyB0aGUgbWluaW11
bSBsYXlvdXQgc2l6ZSwgc2V0TWluaW11bUxheW91dFNpemUgbm93IGZpcnN0IHNldHMgdGhlIHZp
ZXcgc2l6ZSAoaS5lLiB0aGUKKyAgICAgICAgc2l6ZSB3ZSB1c2UgZm9yIGBkZXZpY2Utd2lkdGhg
IGluIHRoZSB2aWV3cG9ydCBtZXRhIHRhZyksIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIG1pbmltdW0g
bGF5b3V0IHNpemUuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6
c2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCBjb25zdCk6CisKKyAg
ICAgICAgUmVwbGFjZXMgYG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXRgLiBXaGV0aGVyIG9y
IG5vdCB3ZSBzaHJpbmsgdG8gZml0IGlzIG5vdyBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIgdGhlCisg
ICAgICAgIG1pbi1kZXZpY2Utd2lkdGggYXR0cmlidXRlIGlzIGFjdGl2ZWx5IGNsYW1waW5nIHRo
ZSB3aWR0aCBvZiB0aGUgdmlldy4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1
cmF0aW9uOjpzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlU2Nh
bGluZ0NvbnN0cmFpbnRzUmVnYXJkbGVzc09mQ29udGVudFNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSk6
CisKKyAgICAgICAgQ29tcHV0ZXMgYW5kIHNldHMgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUgdXNp
bmcgdGhlIHZpZXcgc2l6ZSwgdGFraW5nIHRoZSBtaW5pbXVtIGRldmljZSB3aWR0aCBpbnRvIGFj
Y291bnQgaWYKKyAgICAgICAgbmVlZGVkLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENv
bmZpZ3VyYXRpb246OmRlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6c2V0Rm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmg6CisKIDIwMTgtMDQtMjUg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUFNPTjogRG9uJ3Qg
Y3JlYXRlIGEgbmV3IHByb2Nlc3Mgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgYmxvYiBVUkwsIGRhdGEg
VVJMLCBhbmQgYWJvdXQ6YmxhbmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTI0YzY3MzIyMjcyMWEzZDJiODIzZjQ4
YzU2Y2QzNzg2ZWU1MmZmMC4uN2JjNTA3MzMyMWZhNDcwOGEzZGVmMjFjMzgzZDJhNDY5YjMwZGVi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBBZGQg
YSBtZWNoYW5pc20gdG8gb3ZlcnJpZGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMgaW4gZXh0
cmEgem9vbSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NjI0MDM4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmb3JjZUhvcml6
b250YWxWaWV3cG9ydFNocmlua1RvRml0IGFuZCBtaW5pbXVtQWxsb3dlZExheW91dFdpZHRoIFNQ
SSBob29rcyBmcm9tIFdlYktpdCwgYW5kCisgICAgICAgIGFkZGl0aW9uYWxseSByZW1vdmUgYWxs
IGxvZ2ljIGZvciBwbHVtYmluZyB2aWV3U2l6ZSB0byBXZWJDb3JlLiBTZWUgV2ViQ29yZS9DaGFu
Z2VMb2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9y
PDwpOgorICAgICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OlZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjphbGxvd1Nocmlua1RvRml0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6b3Bl
cmF0b3I9PSk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86
OmZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9p
bml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhY3Rp
dmVNaW5pbXVtTGF5b3V0U2l6ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNl
dE1pbmltdW1MYXlvdXRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ZyYW1lT3JCb3Vu
ZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUxheW91dFNpemVP
dmVycmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0
aFVwZGF0ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoXSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjdGl2ZU1pbmltdW1MYXlvdXRTaXpl
czpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNwYXRjaFNldE1pbmltdW1M
YXlvdXRTaXplOnZpZXdTaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLV2ViVmlldyBfZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdF0pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRz
OnVub2JzY3VyZWRTYWZlQXJlYUluc2V0czppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNj
YWxlOmluU3RhYmxlU3RhdGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTpl
bmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2NyZWRl
bnRpYWxzTWVzc2VuZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyk6CisK
IDIwMTgtMDQtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0V4dHJhIHpvb20gbW9kZV0gVGhlIHNlYXJjaCBmaWVsZCBvbiB3d3cuYmluZy5jb20g
aXMgbWlzc2luZyBsYWJlbCB0ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmll
d3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcAppbmRleCBlZTMyN2U1M2ZhNzQxMGMwYmM4ODZjNzM0ZTdhNWMxMTIzNjkzYzRkLi43MWEz
YzVkZjA0MjMzN2U3Yzk1YWNjNWVlZjUyODQ0MWE4ZGJjNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTQyMCw2ICs0MjAsOCBAQCB2b2lkIHNldFZpZXdw
b3J0RmVhdHVyZShWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzLCBEb2N1bWVudCYgZG9jdW1l
bnQsIFN0cmluZwogICAgICAgICBhcmd1bWVudHMuc2hyaW5rVG9GaXQgPSBmaW5kQm9vbGVhblZh
bHVlKGRvY3VtZW50LCBrZXksIHZhbHVlKTsKICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShrZXksICJ2aWV3cG9ydC1maXQiKSAmJiBkb2N1bWVudC5zZXR0aW5ncygp
LnZpZXdwb3J0Rml0RW5hYmxlZCgpKQogICAgICAgICBhcmd1bWVudHMudmlld3BvcnRGaXQgPSBw
YXJzZVZpZXdwb3J0Rml0VmFsdWUoZG9jdW1lbnQsIGtleSwgdmFsdWUpOworICAgIGVsc2UgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleSwgIm1pbi1kZXZpY2Utd2lkdGgiKSkK
KyAgICAgICAgYXJndW1lbnRzLm1pbkRldmljZVdpZHRoID0gbnVtZXJpY1ByZWZpeChkb2N1bWVu
dCwga2V5LCB2YWx1ZSk7CiAgICAgZWxzZQogICAgICAgICByZXBvcnRWaWV3cG9ydFdhcm5pbmco
ZG9jdW1lbnQsIFVucmVjb2duaXplZFZpZXdwb3J0QXJndW1lbnRLZXlFcnJvciwga2V5KTsKIH0K
QEAgLTQ3NSw3ICs0NzcsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudAogewogICAgIFRleHRT
dHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKIAotICAgIHRzIDw8ICJcbiIgPDwg
aW5kZW50IDw8ICIod2lkdGggIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA8PCAiLCBtaW5X
aWR0aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLm1pbldpZHRoIDw8ICIsIG1heFdpZHRoICIgPDwg
dmlld3BvcnRBcmd1bWVudHMubWF4V2lkdGggPDwgIikiOworICAgIHRzIDw8ICJcbiIgPDwgaW5k
ZW50IDw8ICIod2lkdGggIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA8PCAiLCBtaW5XaWR0
aCAiIDw8IHZpZXdwb3J0QXJndW1lbnRzLm1pbldpZHRoIDw8ICIsIG1heFdpZHRoICIgPDwgdmll
d3BvcnRBcmd1bWVudHMubWF4V2lkdGggPDwgIiwgbWluRGV2aWNlV2lkdGggIiA8PCB2aWV3cG9y
dEFyZ3VtZW50cy5taW5EZXZpY2VXaWR0aCA8PCAiKSI7CiAgICAgdHMgPDwgIlxuIiA8PCBpbmRl
bnQgPDwgIihoZWlnaHQgIiA8PCB2aWV3cG9ydEFyZ3VtZW50cy5oZWlnaHQgPDwgIiwgbWluSGVp
Z2h0ICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluSGVpZ2h0IDw8ICIsIG1heEhlaWdodCAiIDw8
IHZpZXdwb3J0QXJndW1lbnRzLm1heEhlaWdodCA8PCAiKSI7CiAgICAgdHMgPDwgIlxuIiA8PCBp
bmRlbnQgPDwgIih6b29tICIgPDwgdmlld3BvcnRBcmd1bWVudHMuem9vbSA8PCAiLCBtaW5ab29t
ICIgPDwgdmlld3BvcnRBcmd1bWVudHMubWluWm9vbSA8PCAiLCBtYXhab29tICIgPDwgdmlld3Bv
cnRBcmd1bWVudHMubWF4Wm9vbSA8PCAiKSI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmgKaW5kZXggNGYxYWZlYTM0MDAxYjhiYmQ5YzI2ZmEyMGIxYzE2N2RlNzk1ODJmYi4u
NGE4ZThjYmRmNDMzY2YzODg3MjQ4YTUyNGQ0NGFmMTIyYjE2N2FhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTkzLDYgKzkzLDcgQEAgc3RydWN0IFZpZXdwb3J0
QXJndW1lbnRzIHsKICAgICBmbG9hdCB3aWR0aCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IG1p
bldpZHRoIHsgVmFsdWVBdXRvIH07CiAgICAgZmxvYXQgbWF4V2lkdGggeyBWYWx1ZUF1dG8gfTsK
KyAgICBmbG9hdCBtaW5EZXZpY2VXaWR0aCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IGhlaWdo
dCB7IFZhbHVlQXV0byB9OwogICAgIGZsb2F0IG1pbkhlaWdodCB7IFZhbHVlQXV0byB9OwogICAg
IGZsb2F0IG1heEhlaWdodCB7IFZhbHVlQXV0byB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9W
aWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGU0ZGU3NmYwMDQ4MTQwOWVjNGVjMDEzMjg5
MDU5YWFkYmZkNTk0YTEuLmFkYzY4MWQ0MzVkMDEyMWZmODkwZmVmZDRkNTIxN2FiNjZlNWYzM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKQEAg
LTQ1LDExICs0NSwyMyBAQCBzdGF0aWMgYm9vbCBjb25zdHJhaW50c0FyZUFsbFJlbGF0aXZlKGNv
bnN0IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6UGFyYW1ldGVycyYgYwogfQogI2VuZGlmCiAKK3N0
YXRpYyBmbG9hdCBjb21wdXRlZE1pbkRldmljZVdpZHRoKGZsb2F0IG1pbkRldmljZVdpZHRoKQor
eworICAgIGlmIChtaW5EZXZpY2VXaWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
KQorICAgICAgICByZXR1cm4gbWluRGV2aWNlV2lkdGg7CisKKyNpZiBFTkFCTEUoRVhUUkFfWk9P
TV9NT0RFKQorICAgIHJldHVybiAzMjA7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9
CisKIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1cmF0aW9uKCkKICAgICA6
IG1fbWluaW11bUxheW91dFNpemUoMTAyNCwgNzY4KQorICAgICwgbV92aWV3U2l6ZSgxMDI0LCA3
NjgpCiAgICAgLCBtX2Nhbklnbm9yZVNjYWxpbmdDb25zdHJhaW50cyhmYWxzZSkKICAgICAsIG1f
Zm9yY2VBbHdheXNVc2VyU2NhbGFibGUoZmFsc2UpCi0gICAgLCBtX2ZvcmNlSG9yaXpvbnRhbFNo
cmlua1RvRml0KGZhbHNlKQogewogICAgIC8vIFNldHVwIGEgcmVhc29uYWJsZSBkZWZhdWx0IGNv
bmZpZ3VyYXRpb24gdG8gYXZvaWQgY29tcHV0aW5nIGluZmluaXRlIHNjYWxlL3NpemVzLgogICAg
IC8vIFRob3NlIGFyZSB0aGUgb3JpZ2luYWwgaVBob25lIGNvbmZpZ3VyYXRpb24uCkBAIC04Mywx
NCArOTUsMTYgQEAgYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldENvbnRlbnRzU2l6ZShj
b25zdCBJbnRTaXplJiBjb250ZW50U2l6ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBW
aWV3cG9ydENvbmZpZ3VyYXRpb246OnNldE1pbmltdW1MYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgdmlld1NpemUpCisvLyBGSVhN
RTogVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZSBpcyBubyBsb25n
ZXIgYW4gYWNjdXJhdGUgbmFtZSwgc2luY2UgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUKKy8vIGlz
IG5vdCBuZWNlc3NhcmlseSB0aGUgc2l6ZSBvZiB0aGUgdmlldy4KK2Jvb2wgVmlld3BvcnRDb25m
aWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1M
YXlvdXRTaXplKQogewotICAgIGlmIChtX21pbmltdW1MYXlvdXRTaXplID09IG1pbmltdW1MYXlv
dXRTaXplICYmIG1fdmlld1NpemUgPT0gdmlld1NpemUpCisgICAgaWYgKG1fdmlld1NpemUgPT0g
bWluaW11bUxheW91dFNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fbWluaW11
bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKLSAgICBtX3ZpZXdTaXplID0gdmlld1Np
emU7CisgICAgbV92aWV3U2l6ZSA9IG1pbmltdW1MYXlvdXRTaXplOwogCisgICAgdXBkYXRlTWlu
aW11bUxheW91dFNpemUoKTsKICAgICB1cGRhdGVDb25maWd1cmF0aW9uKCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0xMDIsMTYgKzExNiw5IEBAIGJvb2wgVmlld3BvcnRDb25maWd1cmF0aW9u
OjpzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvCiAK
ICAgICBMT0dfV0lUSF9TVFJFQU0oVmlld3BvcnRzLCBzdHJlYW0gPDwgIlZpZXdwb3J0Q29uZmln
dXJhdGlvbjo6c2V0Vmlld3BvcnRBcmd1bWVudHMgIiA8PCB2aWV3cG9ydEFyZ3VtZW50cyk7CiAg
ICAgbV92aWV3cG9ydEFyZ3VtZW50cyA9IHZpZXdwb3J0QXJndW1lbnRzOwotICAgIHVwZGF0ZUNv
bmZpZ3VyYXRpb24oKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBWaWV3cG9ydENvbmZp
Z3VyYXRpb246OnNldEZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KGJvb2wgZm9yY2VIb3Jpem9u
dGFsU2hyaW5rVG9GaXQpCi17Ci0gICAgaWYgKG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQg
PT0gZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQgPSBmb3JjZUhvcml6b250YWxTaHJpbmtU
b0ZpdDsKKyAgICB1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSgpOworICAgIHVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMwLDEyICsxMzcsMTcgQEAgSW50
U2l6ZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFNpemUoKSBjb25zdAogICAgIHJldHVy
biBJbnRTaXplKGxheW91dFdpZHRoKCksIGxheW91dEhlaWdodCgpKTsKIH0KIAorYm9vbCBWaWV3
cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNl
V2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZXdTaXplLndpZHRoKCkgPCBjb21wdXRl
ZE1pbkRldmljZVdpZHRoKG1fdmlld3BvcnRBcmd1bWVudHMubWluRGV2aWNlV2lkdGgpOworfQor
CiBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxp
bmdDb25zdHJhaW50cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Nhbklnbm9yZVNjYWxpbmdDb25z
dHJhaW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fZm9yY2VIb3Jpem9u
dGFsU2hyaW5rVG9GaXQpCisgICAgaWYgKHNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWlu
RGV2aWNlV2lkdGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIW1fY29uZmln
dXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCkKQEAgLTE3Myw3ICsxODUsNyBAQCBib29sIFZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKCkgY29uc3QK
IAogYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9yZVNjYWxpbmdDb25zdHJh
aW50c1JlZ2FyZGxlc3NPZkNvbnRlbnRTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYW5J
Z25vcmVTY2FsaW5nQ29uc3RyYWludHMgJiYgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdDsK
KyAgICByZXR1cm4gbV9jYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMgJiYgc2hvdWxkT3ZlcnJp
ZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpOwogfQogCiBkb3VibGUgVmlld3BvcnRD
b25maWd1cmF0aW9uOjppbml0aWFsU2NhbGVGcm9tU2l6ZShkb3VibGUgd2lkdGgsIGRvdWJsZSBo
ZWlnaHQsIGJvb2wgc2hvdWxkSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzKSBjb25zdApAQCAtMzYx
LDEzICszNzMsMjQgQEAgdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKQogICAgICAgICBtX2NvbmZpZ3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmcgPSBtX3Zp
ZXdwb3J0QXJndW1lbnRzLnVzZXJab29tICE9IDAuOwogCiAgICAgaWYgKGJvb2xlYW5WaWV3cG9y
dEFyZ3VtZW50SXNTZXQobV92aWV3cG9ydEFyZ3VtZW50cy5zaHJpbmtUb0ZpdCkpCi0gICAgICAg
IG1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCA9IG1fdmlld3BvcnRBcmd1bWVudHMu
c2hyaW5rVG9GaXQgIT0gMC47CisgICAgICAgIG1fY29uZmlndXJhdGlvbi5hbGxvd3NTaHJpbmtU
b0ZpdCA9IHNob3VsZE92ZXJyaWRlRGV2aWNlV2lkdGhXaXRoTWluRGV2aWNlV2lkdGgoKSB8fCBt
X3ZpZXdwb3J0QXJndW1lbnRzLnNocmlua1RvRml0ICE9IDAuOwogCiAgICAgbV9jb25maWd1cmF0
aW9uLmF2b2lkc1Vuc2FmZUFyZWEgPSBtX3ZpZXdwb3J0QXJndW1lbnRzLnZpZXdwb3J0Rml0ICE9
IFZpZXdwb3J0Rml0OjpDb3ZlcjsKIAogICAgIExPR19XSVRIX1NUUkVBTShWaWV3cG9ydHMsIHN0
cmVhbSA8PCAiVmlld3BvcnRDb25maWd1cmF0aW9uICIgPDwgdGhpcyA8PCAiIHVwZGF0ZUNvbmZp
Z3VyYXRpb24gIiA8PCAqdGhpcyA8PCAiIGdpdmVzIGluaXRpYWwgc2NhbGUgIiA8PCBpbml0aWFs
U2NhbGUoKSA8PCAiIGJhc2VkIG9uIGNvbnRlbnRTaXplICIgPDwgbV9jb250ZW50U2l6ZSA8PCAi
IGFuZCBsYXlvdXQgc2l6ZSAiIDw8IGxheW91dFdpZHRoKCkgPDwgIngiIDw8IGxheW91dEhlaWdo
dCgpKTsKIH0KIAordm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZU1pbmltdW1MYXlv
dXRTaXplKCkKK3sKKyAgICBpZiAoIW1fdmlld1NpemUud2lkdGgoKSB8fCAhc2hvdWxkT3ZlcnJp
ZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgpKSB7CisgICAgICAgIG1fbWluaW11bUxh
eW91dFNpemUgPSBtX3ZpZXdTaXplOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBtaW5EZXZpY2VXaWR0aCA9IGNvbXB1dGVkTWluRGV2aWNlV2lkdGgobV92aWV3cG9ydEFyZ3Vt
ZW50cy5taW5EZXZpY2VXaWR0aCk7CisgICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IEZsb2F0U2l6
ZShtaW5EZXZpY2VXaWR0aCwgc3RkOjpyb3VuZGYobV92aWV3U2l6ZS5oZWlnaHQoKSAqIChtaW5E
ZXZpY2VXaWR0aCAvIG1fdmlld1NpemUud2lkdGgoKSkpKTsKK30KKwogZG91YmxlIFZpZXdwb3J0
Q29uZmlndXJhdGlvbjo6dmlld3BvcnRBcmd1bWVudHNMZW5ndGgoZG91YmxlIGxlbmd0aCkgY29u
c3QKIHsKICAgICBpZiAobGVuZ3RoID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdp
ZHRoKQpAQCAtNTA5LDcgKzUzMiw2IEBAIFN0cmluZyBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmRl
c2NyaXB0aW9uKCkgY29uc3QKICAgICB0cy5kdW1wUHJvcGVydHkoImlnbm9yaW5nIGhvcml6b250
YWwgc2NhbGluZyBjb25zdHJhaW50cyIsIHNob3VsZElnbm9yZUhvcml6b250YWxTY2FsaW5nQ29u
c3RyYWludHMoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWdu
b3JpbmcgdmVydGljYWwgc2NhbGluZyBjb25zdHJhaW50cyIsIHNob3VsZElnbm9yZVZlcnRpY2Fs
U2NhbGluZ0NvbnN0cmFpbnRzKCkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICB0cy5kdW1wUHJv
cGVydHkoImF2b2lkcyB1bnNhZmUgYXJlYSIsIGF2b2lkc1Vuc2FmZUFyZWEoKSA/ICJ0cnVlIiA6
ICJmYWxzZSIpOwotICAgIHRzLmR1bXBQcm9wZXJ0eSgiZm9yY2UgaG9yaXpvbnRhbCBzaHJpbmsg
dG8gZml0IiwgbV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCA/ICJ0cnVlIiA6ICJmYWxzZSIp
OwogICAgIAogICAgIHRzLmVuZEdyb3VwKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5oCmluZGV4IDllYzY4OTNhNTJkZGZjYzJjZjFhOTM5MmI0YWEzZDEz
YjgxMTE2MmIuLmQ2YTUwY2E0NWMxMDA2Mjk5N2Q4MmY1Yjc3NDAzY2FlZTc0YmU5NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaApAQCAtNzcsMTIgKzc3
LDEyIEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgdmlld1NpemUoKSBjb25zdCB7IHJldHVybiBt
X3ZpZXdTaXplOyB9CiAKICAgICBjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0U2l6ZTsgfQotICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2V0TWluaW11bUxheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRT
aXplJiB2aWV3U2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRNaW5pbXVtTGF5b3V0
U2l6ZShjb25zdCBGbG9hdFNpemUmKTsKIAogICAgIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2
aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldEZvcmNlSG9yaXpv
bnRhbFNocmlua1RvRml0KGJvb2wpOworICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0
aFdpdGhNaW5EZXZpY2VXaWR0aCgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBz
ZXRDYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMoYm9vbCk7CiAgICAgdm9pZCBzZXRGb3JjZUFs
d2F5c1VzZXJTY2FsYWJsZShib29sIGZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKSB7IG1fZm9yY2VB
bHdheXNVc2VyU2NhbGFibGUgPSBmb3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsgfQpAQCAtMTIxLDYg
KzEyMSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRJZ25vcmVWZXJ0aWNhbFNjYWxpbmdD
b25zdHJhaW50cygpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSWdub3JlSG9yaXpvbnRhbFNjYWxp
bmdDb25zdHJhaW50cygpIGNvbnN0OwogCisgICAgdm9pZCB1cGRhdGVNaW5pbXVtTGF5b3V0U2l6
ZSgpOworCiAgICAgUGFyYW1ldGVycyBtX2NvbmZpZ3VyYXRpb247CiAgICAgUGFyYW1ldGVycyBt
X2RlZmF1bHRDb25maWd1cmF0aW9uOwogICAgIEludFNpemUgbV9jb250ZW50U2l6ZTsKQEAgLTEz
MCw3ICsxMzIsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Nhbklnbm9yZVNjYWxpbmdDb25z
dHJhaW50czsKICAgICBib29sIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7Ci0gICAgYm9vbCBt
X2ZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0OwogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6UGFy
YW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmNwcAppbmRleCA4MTg1YmNhNGQyMGRkZDk2NjhiYTY4ZDNhYmFiNjgy
NTNkY2JjZTVhLi4wNDE1MGMxYzA4ODkxMmIzNTI4YmU1Nzk3NzNjMmQ5NTMxZjk1MTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmNwcApAQCAtNTMsNyArNTMsNiBAQCB2b2lkIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm86OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBt
X2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZTsKICAgICBlbmNvZGVyIDw8IG1faXNDaGFuZ2lu
Z09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTsKICAgICBlbmNvZGVyIDw8IG1fYWxsb3dTaHJp
bmtUb0ZpdDsKLSAgICBlbmNvZGVyIDw8IG1fZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQ7CiAg
ICAgZW5jb2RlciA8PCBtX2VuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3OwogfQogCkBA
IC05Myw4ICs5Miw2IEBAIGJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgVmlzaWJsZUNvbnRlbnRSCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2FsbG93U2hyaW5rVG9GaXQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2VuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMzQsNyArMTMxLDYgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyYgaW5mbykKIAogICAgIHRzLmR1bXBQcm9wZXJ0eSgidGltZXN0YW1wIiwg
aW5mby50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwogICAgIHRzLmR1
bXBQcm9wZXJ0eSgiYWxsb3dTaHJpbmtUb0ZpdCIsIGluZm8uYWxsb3dTaHJpbmtUb0ZpdCgpKTsK
LSAgICB0cy5kdW1wUHJvcGVydHkoImZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0IiwgaW5mby5m
b3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdCgpKTsKICAgICBpZiAoaW5mby5ob3Jpem9udGFsVmVs
b2NpdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsVmVsb2NpdHkiLCBp
bmZvLmhvcml6b250YWxWZWxvY2l0eSgpKTsKICAgICBpZiAoaW5mby52ZXJ0aWNhbFZlbG9jaXR5
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmgKaW5kZXggZDIyYWJhYWY4MzAxNjE1NjVkYzcxMzQ5ZWRhNTJkNDE0M2IxYjIxMi4u
NWYwN2MyYjhhODU5NzBjNmMyZWFkNTQyYWViOWM4NzA0NDdlZWZhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAtNDUs
NyArNDUsNyBAQCBjbGFzcyBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHsKIHB1YmxpYzoK
ICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKCkgPSBkZWZhdWx0OwogCi0gICAgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYg
b2JzY3VyZWRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlz
Rmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJ
bnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGJvb2wgZm9yY2VIb3Jpem9udGFs
U2hyaW5rVG9GaXQsIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVy
dGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgdWludDY0X3QgbGFzdExheWVy
VHJlZVRyYW5zYWN0aW9uSWQpCisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwg
Ym9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9v
bCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5r
VG9GaXQsIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsIE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxW
ZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRy
YW5zYWN0aW9uSWQpCiAgICAgICAgIDogbV9leHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRl
bnRSZWN0KQogICAgICAgICAsIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0KHVub2JzY3VyZWRDb250
ZW50UmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1
dFZpZXdCb3VuZHModW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5k
cykKQEAgLTYzLDcgKzYzLDYgQEAgcHVibGljOgogICAgICAgICAsIG1faXNGaXJzdFVwZGF0ZUZv
ck5ld1ZpZXdTaXplKGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSkKICAgICAgICAgLCBtX2lz
Q2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoaXNDaGFuZ2luZ09ic2N1cmVkSW5z
ZXRzSW50ZXJhY3RpdmVseSkKICAgICAgICAgLCBtX2FsbG93U2hyaW5rVG9GaXQoYWxsb3dTaHJp
bmtUb0ZpdCkKLSAgICAgICAgLCBtX2ZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KGZvcmNlSG9y
aXpvbnRhbFNocmlua1RvRml0KQogICAgICAgICAsIG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNl
c3RvclZpZXcoZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcpCiAgICAgewogICAgIH0K
QEAgLTgxLDcgKzgwLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1Zp
ZXdTaXplKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemU7IH0K
ICAgICBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoKSBjb25zdCB7
IHJldHVybiBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7IH0KICAgICBi
b29sIGFsbG93U2hyaW5rVG9GaXQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U2hyaW5rVG9GaXQ7
IH0KLSAgICBib29sIGZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0KCkgY29uc3QgeyByZXR1cm4g
bV9mb3JjZUhvcml6b250YWxTaHJpbmtUb0ZpdDsgfQogICAgIGJvb2wgZW5jbG9zZWRJblNjcm9s
bGFibGVBbmNlc3RvclZpZXcoKSBjb25zdCB7IHJldHVybiBtX2VuY2xvc2VkSW5TY3JvbGxhYmxl
QW5jZXN0b3JWaWV3OyB9CiAKICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCgpIGNvbnN0IHsg
cmV0dXJuIG1fdGltZXN0YW1wOyB9CkBAIC0xMTQsNyArMTEyLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2FsbG93U2hyaW5rVG9GaXQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9mb3JjZUhvcml6b250
YWxTaHJpbmtUb0ZpdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuY2xvc2VkSW5TY3JvbGxhYmxl
QW5jZXN0b3JWaWV3IHsgZmFsc2UgfTsKIH07CiAKQEAgLTEzMyw3ICsxMzAsNiBAQCBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNv
bnN0IFZpc2libGVDb250ZQogICAgICAgICAmJiBhLmluU3RhYmxlU3RhdGUoKSA9PSBiLmluU3Rh
YmxlU3RhdGUoKQogICAgICAgICAmJiBhLmlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSgpID09
IGIuaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplKCkKICAgICAgICAgJiYgYS5hbGxvd1Nocmlu
a1RvRml0KCkgPT0gYi5hbGxvd1Nocmlua1RvRml0KCkKLSAgICAgICAgJiYgYS5mb3JjZUhvcml6
b250YWxTaHJpbmtUb0ZpdCgpID09IGIuZm9yY2VIb3Jpem9udGFsU2hyaW5rVG9GaXQoKQogICAg
ICAgICAmJiBhLmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgPT0gYi5lbmNsb3Nl
ZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA4ZWE0MzdmYWZiY2VkZmE2NmExODMw
MTM3NTlmMmEwOTNmMDViZTNiLi40YTE2ZTZkM2JiN2EwMzU0NWM2YWM4ZGJhZGU5NDdiOGVmMTkz
ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KQEAgLTE4MSwxMSArMTgxLDYgQEAgZW51bSBjbGFzcyBEeW5hbWljVmlld3BvcnRVcGRhdGVN
b2RlIHsKICAgICBSZXNpemluZ1dpdGhEb2N1bWVudEhpZGRlbiwKIH07CiAKLXN0cnVjdCBBY3Rp
dmVWaWV3cG9ydExheW91dFNpemVzIHsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bUxh
eW91dFNpemU7Ci0gICAgV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdTaXplOwotfTsKLQogI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTMxMSw4ICszMDYsNiBA
QCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IHsKICAgICBzdGQ6Om9wdGlvbmFsPGludDMyX3Q+
IF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uOwogCiAgICAgQk9PTCBfYWxsb3dzVmlld3BvcnRT
aHJpbmtUb0ZpdDsKLSAgICBCT09MIF9mb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0
OwotICAgIENHRmxvYXQgX21pbmltdW1BbGxvd2VkTGF5b3V0V2lkdGg7CiAKICAgICBCT09MIF9o
YXNDb21taXR0ZWRMb2FkRm9yTWFpbkZyYW1lOwogICAgIEJPT0wgX25lZWRzUmVzZXRWaWV3U3Rh
dGVBZnRlckNvbW1pdExvYWRGb3JNYWluRnJhbWU7CkBAIC03MzQsMTMgKzcyNyw5IEBAIC0gKHZv
aWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24KICNpZiBQTEFURk9STShJT1MpCiAgICAgX2RyYWdJbnRlcmFjdGlvblBv
bGljeSA9IF9XS0RyYWdJbnRlcmFjdGlvblBvbGljeURlZmF1bHQ7CiAjaWYgRU5BQkxFKEVYVFJB
X1pPT01fTU9ERSkKLSAgICBfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCA9IDMyMDsKICAgICBf
YWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IFlFUzsKLSAgICBfZm9yY2VIb3Jpem9udGFsVmll
d3BvcnRTaHJpbmtUb0ZpdCA9IFlFUzsKICNlbHNlCi0gICAgX21pbmltdW1BbGxvd2VkTGF5b3V0
V2lkdGggPSAwOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gTk87Ci0gICAgX2Zv
cmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQgPSBOTzsKICNlbmRpZgogI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKIH0KQEAgLTI1NzUsNDYgKzI1NjQsMjUgQEAgLSAoVUlFZGdlSW5zZXRz
KV9zY3JvbGxWaWV3U3lzdGVtQ29udGVudEluc2V0CiAgICAgcmV0dXJuIFVJRWRnZUluc2V0c0Fk
ZChbX3Njcm9sbFZpZXcgX2NvbnRlbnRTY3JvbGxJbnNldF0sIHNlbGYuc2FmZUFyZWFJbnNldHMs
IFtfc2Nyb2xsVmlldyBfZWRnZXNBcHBseWluZ1NhZmVBcmVhSW5zZXRzVG9Db250ZW50SW5zZXRd
KTsKIH0KIAotLSAoQ0dGbG9hdClfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aAotewotICAgIHJl
dHVybiBfbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDsKLX0KLQotLSAodm9pZClfc2V0TWluaW11
bUFsbG93ZWRMYXlvdXRXaWR0aDooQ0dGbG9hdCltaW5pbXVtQWxsb3dlZExheW91dFdpZHRoCi17
Ci0gICAgaWYgKF9taW5pbXVtQWxsb3dlZExheW91dFdpZHRoID09IG1pbmltdW1BbGxvd2VkTGF5
b3V0V2lkdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9taW5pbXVtQWxsb3dlZExheW91dFdp
ZHRoID0gbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDsKLQotICAgIGF1dG8gc2l6ZXMgPSBbc2Vs
ZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZXM6c2VsZi5ib3VuZHNdOwotICAgIFtzZWxmIF9kaXNw
YXRjaFNldE1pbmltdW1MYXlvdXRTaXplOnNpemVzLm1pbmltdW1MYXlvdXRTaXplIHZpZXdTaXpl
OnNpemVzLnZpZXdTaXplXTsKLX0KLQotLSAoQWN0aXZlVmlld3BvcnRMYXlvdXRTaXplcylhY3Rp
dmVNaW5pbXVtTGF5b3V0U2l6ZXM6KGNvbnN0IENHUmVjdCYpYm91bmRzCistIChXZWJDb3JlOjpG
bG9hdFNpemUpYWN0aXZlTWluaW11bUxheW91dFNpemU6KGNvbnN0IENHUmVjdCYpYm91bmRzCiB7
CiAgICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKLSAgICAgICAgcmV0dXJuIHsg
V2ViQ29yZTo6RmxvYXRTaXplKF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKSwgV2ViQ29yZTo6
RmxvYXRTaXplKF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKSB9OworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RmxvYXRTaXplKF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKTsKIAotICAgIEFj
dGl2ZVZpZXdwb3J0TGF5b3V0U2l6ZXMgc2l6ZXM7CiAjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwCi0gICAgc2l6ZXMudmlld1NpemUgPSBXZWJDb3JlOjpGbG9h
dFNpemUoVUlFZGdlSW5zZXRzSW5zZXRSZWN0KENHUmVjdE1ha2UoMCwgMCwgYm91bmRzLnNpemUu
d2lkdGgsIGJvdW5kcy5zaXplLmhlaWdodCksIHNlbGYuX3Njcm9sbFZpZXdTeXN0ZW1Db250ZW50
SW5zZXQpLnNpemUpOworICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFNpemUoVUlFZGdlSW5zZXRz
SW5zZXRSZWN0KENHUmVjdE1ha2UoMCwgMCwgYm91bmRzLnNpemUud2lkdGgsIGJvdW5kcy5zaXpl
LmhlaWdodCksIHNlbGYuX3Njcm9sbFZpZXdTeXN0ZW1Db250ZW50SW5zZXQpLnNpemUpOwogI2Vs
c2UKLSAgICBzaXplcy52aWV3U2l6ZSA9IFdlYkNvcmU6OkZsb2F0U2l6ZSB7IGJvdW5kcy5zaXpl
IH07CisgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6ZSB7IGJvdW5kcy5zaXplIH07CiAjZW5k
aWYKLQotICAgIGF1dG8gbGF5b3V0V2lkdGggPSBzdGQ6Om1heDxmbG9hdD4oc2l6ZXMudmlld1Np
emUud2lkdGgoKSwgc2VsZi5fbWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCk7Ci0gICAgc2l6ZXMu
bWluaW11bUxheW91dFNpemUgPSB7IGxheW91dFdpZHRoLCBzaXplcy52aWV3U2l6ZS5oZWlnaHQo
KSAqIChsYXlvdXRXaWR0aCAvIHNpemVzLnZpZXdTaXplLndpZHRoKCkpIH07Ci0gICAgcmV0dXJu
IHNpemVzOwogfQogCi0tICh2b2lkKV9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOihXZWJD
b3JlOjpGbG9hdFNpemUpbWluaW11bUxheW91dFNpemUgdmlld1NpemU6KFdlYkNvcmU6OkZsb2F0
U2l6ZSl2aWV3U2l6ZQorLSAodm9pZClfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTooV2Vi
Q29yZTo6RmxvYXRTaXplKW1pbmltdW1MYXlvdXRTaXplCiB7CiAgICAgaWYgKF9sYXN0U2VudE1p
bmltdW1MYXlvdXRTaXplICYmIENHU2l6ZUVxdWFsVG9TaXplKF9sYXN0U2VudE1pbmltdW1MYXlv
dXRTaXplLnZhbHVlKCksIG1pbmltdW1MYXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLV2ViVmlldyAi
IDw8IF9wYWdlLT5wYWdlSUQoKSA8PCAiIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOl0g
IiA8PCBtaW5pbXVtTGF5b3V0U2l6ZSA8PCAiIHZpZXdTaXplICIgPDwgdmlld1NpemUgPDwgIiBj
b250ZW50Wm9vbVNjYWxlICIgPDwgY29udGVudFpvb21TY2FsZShzZWxmKSk7Ci0gICAgX3BhZ2Ut
PnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKG1pbmltdW1MYXlvdXRT
aXplLCB2aWV3U2l6ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFt
IDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5wYWdlSUQoKSA8PCAiIF9kaXNwYXRjaFNldE1p
bmltdW1MYXlvdXRTaXplOl0gIiA8PCBtaW5pbXVtTGF5b3V0U2l6ZSA8PCAiIGNvbnRlbnRab29t
U2NhbGUgIiA8PCBjb250ZW50Wm9vbVNjYWxlKHNlbGYpKTsKKyAgICBfcGFnZS0+c2V0Vmlld3Bv
cnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUobWluaW11bUxheW91dFNpemUpOwogICAg
IF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplID0gbWluaW11bUxheW91dFNpemU7CiB9CiAKQEAg
LTI2NDIsMTAgKzI2MTAsOCBAQCAtICh2b2lkKV9mcmFtZU9yQm91bmRzQ2hhbmdlZAogICAgIFtf
c2Nyb2xsVmlldyBzZXRGcmFtZTpib3VuZHNdOwogCiAgICAgaWYgKF9keW5hbWljVmlld3BvcnRV
cGRhdGVNb2RlID09IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSB7Ci0g
ICAgICAgIGlmICghX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplKSB7Ci0gICAgICAgICAgICBh
dXRvIHNpemVzID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemVzOnNlbGYuYm91bmRzXTsK
LSAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOnNpemVzLm1p
bmltdW1MYXlvdXRTaXplIHZpZXdTaXplOnNpemVzLnZpZXdTaXplXTsKLSAgICAgICAgfQorICAg
ICAgICBpZiAoIV9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKKyAgICAgICAgICAgIFtzZWxm
IF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOltzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRT
aXplOnNlbGYuYm91bmRzXV07CiAgICAgICAgIGlmICghX292ZXJyaWRlc01heGltdW1Vbm9ic2N1
cmVkU2l6ZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVk
U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoYm91bmRzLnNpemUpXTsKIApAQCAtNTAzMSw3ICs0OTk3
LDcgQEAgLSAodm9pZClfc2V0TWluaW11bUxheW91dFNpemVPdmVycmlkZTooQ0dTaXplKW1pbmlt
dW1MYXlvdXRTaXplT3ZlcnJpZGUKICAgICBfbWluaW11bUxheW91dFNpemVPdmVycmlkZSA9IG1p
bmltdW1MYXlvdXRTaXplT3ZlcnJpZGU7CiAKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGUgPT0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCi0gICAgICAg
IFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZSht
aW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKSB2aWV3U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobWlu
aW11bUxheW91dFNpemVPdmVycmlkZSldOworICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5p
bXVtTGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobWluaW11bUxheW91dFNpemVPdmVycmlk
ZSldOwogCiB9CiAKQEAgLTUxMzgsMjAgKzUxMDQsNiBAQCAtICh2b2lkKV9zZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKXNpemUKICAgICAgICAgW3NlbGYgX2Rpc3BhdGNo
U2V0TWF4aW11bVVub2JzY3VyZWRTaXplOldlYkNvcmU6OkZsb2F0U2l6ZShzaXplKV07CiB9CiAK
LS0gKHZvaWQpX3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6KEJPT0wpZm9y
Y2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdAotewotICAgIGlmIChfZm9yY2VIb3Jpem9u
dGFsVmlld3BvcnRTaHJpbmtUb0ZpdCA9PSBmb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1Rv
Rml0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJp
bmtUb0ZpdCA9IGZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci0gICAgW3NlbGYg
X3NjaGVkdWxlVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlXTsKLX0KLQotLSAoQk9PTClfZm9yY2VI
b3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdAotewotICAgIHJldHVybiBfZm9yY2VIb3Jpem9u
dGFsVmlld3BvcnRTaHJpbmtUb0ZpdDsKLX0KLQogLSAodm9pZClfc2V0QWxsb3dzVmlld3BvcnRT
aHJpbmtUb0ZpdDooQk9PTClhbGxvd1Nocmlua1RvRml0CiB7CiAgICAgX2FsbG93c1ZpZXdwb3J0
U2hyaW5rVG9GaXQgPSBhbGxvd1Nocmlua1RvRml0OwpAQCAtNTE5Myw3ICs1MTQ1LDcgQEAgLSAo
dm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRh
dGVCbG9jawogCiAgICAgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPSBEeW5hbWljVmlld3Bv
cnRVcGRhdGVNb2RlOjpSZXNpemluZ1dpdGhBbmltYXRpb247CiAKLSAgICBhdXRvIG9sZFNpemVz
ID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemVzOnNlbGYuYm91bmRzXTsKKyAgICBhdXRv
IG9sZE1pbmltdW1MYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlTWluaW11bUxheW91dFNpemU6c2Vs
Zi5ib3VuZHNdOwogICAgIGF1dG8gb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4
aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgaW50MzJfdCBvbGRPcmll
bnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogICAgIFVJRWRnZUluc2V0cyBvbGRP
YnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsKQEAgLTUyMDEsMTkgKzUxNTMsMTkgQEAg
LSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1
cGRhdGVCbG9jawogICAgIHVwZGF0ZUJsb2NrKCk7CiAKICAgICBDR1JlY3QgbmV3Qm91bmRzID0g
c2VsZi5ib3VuZHM7Ci0gICAgYXV0byBuZXdTaXplcyA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlv
dXRTaXplczpuZXdCb3VuZHNdOworICAgIGF1dG8gbmV3TWluaW11bUxheW91dFNpemUgPSBbc2Vs
ZiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZTpuZXdCb3VuZHNdOwogICAgIGF1dG8gbmV3TWF4aW11
bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG5ld0Jv
dW5kcyk7CiAgICAgaW50MzJfdCBuZXdPcmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNl
bGYpOwogICAgIFVJRWRnZUluc2V0cyBuZXdPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0
czsKICAgICBDR1JlY3QgZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRlcyA9IFVJ
RWRnZUluc2V0c0luc2V0UmVjdChuZXdCb3VuZHMsIF9vYnNjdXJlZEluc2V0cyk7CiAgICAgQ0dS
ZWN0IGNvbnRlbnRWaWV3Qm91bmRzID0gW19jb250ZW50VmlldyBib3VuZHNdOwogCi0gICAgQVNT
RVJUX1dJVEhfTUVTU0FHRSghKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSAmJiBuZXdTaXpl
cy5taW5pbXVtTGF5b3V0U2l6ZS5pc0VtcHR5KCkpLCAiQ2xpZW50cyBjb250cm9sbGluZyB0aGUg
bGF5b3V0IHNpemUgc2hvdWxkIG1haW50YWluIGEgdmFsaWQgbGF5b3V0IHNpemUgdG8gbWluaW1p
emUgbGF5b3V0cy4iKTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShuZXdCb3VuZHMpIHx8IG5ld1Np
emVzLm1pbmltdW1MYXlvdXRTaXplLmlzRW1wdHkoKSB8fCBDR1JlY3RJc0VtcHR5KGZ1dHVyZVVu
b2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMpIHx8IENHUmVjdElzRW1wdHkoY29udGVudFZp
ZXdCb3VuZHMpKSB7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghKF9vdmVycmlkZXNNaW5pbXVt
TGF5b3V0U2l6ZSAmJiBuZXdNaW5pbXVtTGF5b3V0U2l6ZS5pc0VtcHR5KCkpLCAiQ2xpZW50cyBj
b250cm9sbGluZyB0aGUgbGF5b3V0IHNpemUgc2hvdWxkIG1haW50YWluIGEgdmFsaWQgbGF5b3V0
IHNpemUgdG8gbWluaW1pemUgbGF5b3V0cy4iKTsKKyAgICBpZiAoQ0dSZWN0SXNFbXB0eShuZXdC
b3VuZHMpIHx8IG5ld01pbmltdW1MYXlvdXRTaXplLmlzRW1wdHkoKSB8fCBDR1JlY3RJc0VtcHR5
KGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMpIHx8IENHUmVjdElzRW1wdHko
Y29udGVudFZpZXdCb3VuZHMpKSB7CiAgICAgICAgIF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
ID0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmc7CiAgICAgICAgIFtzZWxm
IF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07CiAgICAgICAgIGlmIChfb3ZlcnJpZGVzTWluaW11bUxh
eW91dFNpemUpCi0gICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6
ZTpuZXdTaXplcy5taW5pbXVtTGF5b3V0U2l6ZSB2aWV3U2l6ZTpuZXdTaXplcy52aWV3U2l6ZV07
CisgICAgICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpuZXdNaW5p
bXVtTGF5b3V0U2l6ZV07CiAgICAgICAgIGlmIChfb3ZlcnJpZGVzTWF4aW11bVVub2JzY3VyZWRT
aXplKQogICAgICAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
OldlYkNvcmU6OkZsb2F0U2l6ZShuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUpXTsKICAgICAgICAg
aWYgKF9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRhdGlvbikKQEAgLTUyMjQsNyArNTE3Niw3IEBA
IC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkp
dXBkYXRlQmxvY2sKICAgICB9CiAKICAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qob2xkQm91bmRz
LCBuZXdCb3VuZHMpCi0gICAgICAgICYmIG9sZFNpemVzLm1pbmltdW1MYXlvdXRTaXplID09IG5l
d1NpemVzLm1pbmltdW1MYXlvdXRTaXplCisgICAgICAgICYmIG9sZE1pbmltdW1MYXlvdXRTaXpl
ID09IG5ld01pbmltdW1MYXlvdXRTaXplCiAgICAgICAgICYmIG9sZE1heGltdW1Vbm9ic2N1cmVk
U2l6ZSA9PSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUKICAgICAgICAgJiYgb2xkT3JpZW50YXRp
b24gPT0gbmV3T3JpZW50YXRpb24KICAgICAgICAgJiYgVUlFZGdlSW5zZXRzRXF1YWxUb0VkZ2VJ
bnNldHMob2xkT2JzY3VyZWRJbnNldHMsIG5ld09ic2N1cmVkSW5zZXRzKSkgewpAQCAtNTI0NCwx
MyArNTE5NiwxMyBAQCAtICh2b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZv
aWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiAgICAgW19yZXNpemVBbmltYXRpb25WaWV3IGFkZFN1
YnZpZXc6W19jb250ZW50VmlldyB1bnNjYWxlZFZpZXddXTsKIAogICAgIENHU2l6ZSBjb250ZW50
U2l6ZUluQ29udGVudFZpZXdDb29yZGluYXRlcyA9IGNvbnRlbnRWaWV3Qm91bmRzLnNpemU7Ci0g
ICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6c3RkOjptaW4obmV3U2l6ZXMubWlu
aW11bUxheW91dFNpemUud2lkdGgoKSAvIGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5h
dGVzLndpZHRoLCBbX3Njcm9sbFZpZXcgbWluaW11bVpvb21TY2FsZV0pXTsKLSAgICBbX3Njcm9s
bFZpZXcgc2V0TWF4aW11bVpvb21TY2FsZTpzdGQ6Om1heChuZXdTaXplcy5taW5pbXVtTGF5b3V0
U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMud2lkdGgs
IFtfc2Nyb2xsVmlldyBtYXhpbXVtWm9vbVNjYWxlXSldOworICAgIFtfc2Nyb2xsVmlldyBzZXRN
aW5pbXVtWm9vbVNjYWxlOnN0ZDo6bWluKG5ld01pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBj
b250ZW50U2l6ZUluQ29udGVudFZpZXdDb29yZGluYXRlcy53aWR0aCwgW19zY3JvbGxWaWV3IG1p
bmltdW1ab29tU2NhbGVdKV07CisgICAgW19zY3JvbGxWaWV3IHNldE1heGltdW1ab29tU2NhbGU6
c3RkOjptYXgobmV3TWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIGNvbnRlbnRTaXplSW5Db250
ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBbX3Njcm9sbFZpZXcgbWF4aW11bVpvb21TY2FsZV0p
XTsKIAogICAgIC8vIENvbXB1dGUgdGhlIG5ldyBzY2FsZSB0byBrZWVwIHRoZSBjdXJyZW50IGNv
bnRlbnQgd2lkdGggaW4gdGhlIHNjcm9sbHZpZXcuCiAgICAgQ0dGbG9hdCBvbGRXZWJWaWV3V2lk
dGhJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMgPSBvbGRVbm9ic2N1cmVkQ29udGVudFJlY3Qud2lk
dGgoKTsKICAgICBDR0Zsb2F0IHZpc2libGVDb250ZW50Vmlld1dpZHRoSW5Db250ZW50Q29vcmRp
bmF0ZXMgPSBzdGQ6Om1pbihjb250ZW50U2l6ZUluQ29udGVudFZpZXdDb29yZGluYXRlcy53aWR0
aCwgb2xkV2ViVmlld1dpZHRoSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzKTsKLSAgICBDR0Zsb2F0
IHRhcmdldFNjYWxlID0gbmV3U2l6ZXMubWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIHZpc2li
bGVDb250ZW50Vmlld1dpZHRoSW5Db250ZW50Q29vcmRpbmF0ZXM7CisgICAgQ0dGbG9hdCB0YXJn
ZXRTY2FsZSA9IG5ld01pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyB2aXNpYmxlQ29udGVudFZp
ZXdXaWR0aEluQ29udGVudENvb3JkaW5hdGVzOwogICAgIENHRmxvYXQgcmVzaXplQW5pbWF0aW9u
Vmlld0FuaW1hdGlvblNjYWxlID0gdGFyZ2V0U2NhbGUgLyBjb250ZW50Wm9vbVNjYWxlKHNlbGYp
OwogICAgIFtfcmVzaXplQW5pbWF0aW9uVmlldyBzZXRUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zv
cm1NYWtlU2NhbGUocmVzaXplQW5pbWF0aW9uVmlld0FuaW1hdGlvblNjYWxlLCByZXNpemVBbmlt
YXRpb25WaWV3QW5pbWF0aW9uU2NhbGUpXTsKIApAQCAtNTI5MCwxMSArNTI0MiwxMSBAQCAtICh2
b2lkKV9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0
ZUJsb2NrCiAgICAgVUlFZGdlSW5zZXRzIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyA9IFtzZWxm
IF9jb21wdXRlZFVub2JzY3VyZWRTYWZlQXJlYUluc2V0XTsKICAgICBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQodW5vYnNjdXJlZFNhZmVBcmVh
SW5zZXRzLnRvcCwgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLnJpZ2h0LCB1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMuYm90dG9tLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMubGVmdCk7CiAKLSAg
ICBfbGFzdFNlbnRNaW5pbXVtTGF5b3V0U2l6ZSA9IG5ld1NpemVzLm1pbmltdW1MYXlvdXRTaXpl
OworICAgIF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplID0gbmV3TWluaW11bUxheW91dFNpemU7
CiAgICAgX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplID0gbmV3TWF4aW11bVVub2JzY3Vy
ZWRTaXplOwogICAgIF9sYXN0U2VudERldmljZU9yaWVudGF0aW9uID0gbmV3T3JpZW50YXRpb247
CiAKLSAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdTaXplcy5taW5pbXVt
TGF5b3V0U2l6ZSwgbmV3U2l6ZXMudmlld1NpemUsIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
dmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcywgZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRlcywgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzRXh0ZW50LCB0YXJnZXRTY2FsZSwgbmV3T3JpZW50YXRpb24pOwor
ICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG5ld01pbmltdW1MYXlvdXRTaXpl
LCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0
ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRS
ZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFy
Z2V0U2NhbGUsIG5ld09yaWVudGF0aW9uKTsKICAgICBpZiAoV2ViS2l0OjpEcmF3aW5nQXJlYVBy
b3h5KiBkcmF3aW5nQXJlYSA9IF9wYWdlLT5kcmF3aW5nQXJlYSgpKQogICAgICAgICBkcmF3aW5n
QXJlYS0+c2V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKG5ld0JvdW5kcy5zaXplKSk7CiB9CkBAIC01
MzU5LDEyICs1MzExLDEyIEBAIC0gKHZvaWQpX2VuZEFuaW1hdGVkUmVzaXplCiAgICAgW3NlbGYg
X3NjaGVkdWxlVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlXTsKIAogICAgIENHUmVjdCBuZXdCb3Vu
ZHMgPSBzZWxmLmJvdW5kczsKLSAgICBhdXRvIG5ld1NpemVzID0gW3NlbGYgYWN0aXZlTWluaW11
bUxheW91dFNpemVzOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdNaW5pbXVtTGF5b3V0U2l6ZSA9
IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOm5ld0JvdW5kc107CiAgICAgYXV0byBuZXdN
YXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwg
bmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50YXRp
b24oc2VsZik7CiAKLSAgICBpZiAoIV9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplIHx8IG5ld1Np
emVzLm1pbmltdW1MYXlvdXRTaXplICE9IF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplLnZhbHVl
KCkpCi0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld1NpemVz
Lm1pbmltdW1MYXlvdXRTaXplIHZpZXdTaXplOm5ld1NpemVzLnZpZXdTaXplXTsKKyAgICBpZiAo
IV9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplIHx8IG5ld01pbmltdW1MYXlvdXRTaXplICE9IF9s
YXN0U2VudE1pbmltdW1MYXlvdXRTaXplLnZhbHVlKCkpCisgICAgICAgIFtzZWxmIF9kaXNwYXRj
aFNldE1pbmltdW1MYXlvdXRTaXplOm5ld01pbmltdW1MYXlvdXRTaXplXTsKICAgICBpZiAoIV9s
YXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUg
IT0gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCiAgICAgICAgIFtzZWxm
IF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUobmV3
TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgaWYgKCFfbGFzdFNlbnREZXZpY2VPcmllbnRh
dGlvbiB8fCBuZXdPcmllbnRhdGlvbiAhPSBfbGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbi52YWx1
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKaW5kZXggOGYyOTNmODM3MjA5OWUyMWYxMzE2OTBlYTczNjJmNGYyZmExMzQx
MC4uNzA3ZGY5MjE3YmNkZjQ3MWIxODAwY2E5MWVmM2NhMzYyNjdhODA4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBA
IC0yMDQsOCArMjA0LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RF
ZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnRlcmZhY2VPcmllbnRh
dGlvbk92ZXJyaWRlOikgVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBfaW50ZXJmYWNlT3JpZW50YXRp
b25PdmVycmlkZTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzVmll
d3BvcnRTaHJpbmtUb0ZpdDopIEJPT0wgX2FsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGb3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlu
a1RvRml0OikgQk9PTCBfZm9yY2VIb3Jpem9udGFsVmlld3BvcnRTaHJpbmtUb0ZpdCBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNaW5pbXVtQWxsb3dlZExheW91dFdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUFsbG93ZWRM
YXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIEZJWE1F
OiBSZW1vdmUgdGhlc2UgdGhyZWUgcHJvcGVydGllcyBvbmNlIHdlIGV4cG9zZSBXS1dlYlZpZXdD
b250ZW50UHJvdmlkZXIgYXMgQVBJLgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBn
ZXR0ZXI9X2lzRGlzcGxheWluZ1BERikgQk9PTCBfZGlzcGxheWluZ1BERjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDU2MGI4ODM4NTgzMDBiYTIyZDY1M2E0
NDMyYjliMjZjYjA3ZWU5MzMuLjQ3YjFlZDY0ZjkyZmM3ZDdhYWIzMzU4MjIxYTI5MmI4MGRmNDRk
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjA1OSw3
ICs2MDU5LDYgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0
aW9uUGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVycy5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVu
dFByb3ZpZGVycyA9IG1fcGFnZUNsaWVudC5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3Zp
ZGVycygpOwogICAgIHBhcmFtZXRlcnMuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgPSBtX2Zv
cmNlQWx3YXlzVXNlclNjYWxhYmxlOwogICAgIHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0
aW9uTWluaW11bUxheW91dFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlv
dXRTaXplOwotICAgIHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld1NpemUgPSBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXplOwogICAgIHBhcmFtZXRlcnMubWF4aW11bVVu
b2JzY3VyZWRTaXplID0gbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMTIzMjVhNjZhZmRhYjFjYzZlMzNk
ZTY1ZjY2YTE0ZTFjMmQ2ZDZmLi44MDcwMDUwMzczMWIwMjY3ZTM3NzczMDljNmRkYjQ5MmMzMmJh
NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTQ1LDEwICs1
NDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwo
KTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiAKLSAgICB2b2lkIGR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVt
TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2Fs
ZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbik7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFy
Z2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pOwogICAgIHZvaWQgc3luY2hyb25p
emVEeW5hbWljVmlld3BvcnRVcGRhdGUoKTsKIAotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1
cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB2aWV3U2l6ZSk7CisgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZp
Z3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAg
ICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
KTsKICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIGludDMyX3Qg
ZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uOyB9
CkBAIC0yMTMyLDcgKzIxMzIsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb2Rl
QXNzaXN0YW5jZUFyZ3VtZW50cz4gbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzOwog
ICAgIGJvb2wgbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSB7IGZhbHNlIH07CiAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIG1fdmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemU7Ci0g
ICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld1NpemU7CiAg
ICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMGZh
MDc4ODFkY2MyMmIyMDljZDIzMGEzZjI0MmUyYWM1N2EzNTg0MC4uZDBjYmRlMWE5YWQ5NTk2NTVk
MmVkNDE3YTlmOGY4M2QyNzJiMGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KQEAgLTQwMiw3ICs0MDIsNiBAQCAtICh2b2lkKWRpZFVwZGF0ZVZp
c2libGVSZWN0OihDR1JlY3QpdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIF9zaXplQ2hhbmdl
ZFNpbmNlTGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZSwKICAgICAgICAgaXNDaGFuZ2luZ09i
c2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwKICAgICAgICAgX3dlYlZpZXcuX2FsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQsCi0gICAgICAgIF93ZWJWaWV3Ll9mb3JjZUhvcml6b250YWxWaWV3cG9y
dFNocmlua1RvRml0LAogICAgICAgICBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywK
ICAgICAgICAgdGltZXN0YW1wLAogICAgICAgICB2ZWxvY2l0eURhdGEuaG9yaXpvbnRhbFZlbG9j
aXR5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggNDllN2M0MzY3YThhNWUzYTVjMDc4OGFiZTBmOWE3ZTA4ZDA0NjQxYS4uZjUwYWIyYzI2
MjVlYzg2NWZmYmM5MWRmODE3NzdlNjg0ODFlODIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6Om92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBtX3BhZ2VDbGll
bnQub3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENv
bnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRv
dWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11
bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRT
aXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLAogCiAg
ICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvclRhcmdldCA9IHRydWU7CiAg
ICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvckxheWVyVHJlZUNvbW1pdCA9
IHRydWU7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKG1pbmltdW1MYXlvdXRTaXplLCB2aWV3U2l6ZSwgbWF4aW11bVVub2Jz
Y3VyZWRTaXplLCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0
LCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB1bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMsIHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiwgKyttX2N1cnJl
bnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG1pbmlt
dW1MYXlvdXRTaXplLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50
UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgdGFyZ2V0U2NhbGUsIGRl
dmljZU9yaWVudGF0aW9uLCArK21fY3VycmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCks
IG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9uaXplRHluYW1pY1Zp
ZXdwb3J0VXBkYXRlKCkKQEAgLTM1NCwxMyArMzU0LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
eW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZSgpCiAgICAgbV9keW5hbWljVmlld3BvcnRT
aXplVXBkYXRlV2FpdGluZ0ZvckxheWVyVHJlZUNvbW1pdCA9IGZhbHNlOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZp
ZXdTaXplKQordm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmlt
dW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplID0gc2l6ZTsKLSAgICBtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvblZpZXdTaXplID0gdmlld1NpemU7CiAKICAgICBpZiAoaXNWYWxpZCgp
KQotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFZpZXdwb3J0
Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKHNpemUsIHZpZXdTaXplKSwgbV9wYWdlSUQp
OworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFZpZXdwb3J0
Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKHNpemUpLCBtX3BhZ2VJRCk7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShib29sIHVzZXJTY2Fs
YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggYTBkYTcxMmI1NGQ0NWZiMDIxMDEzYjBjZjA4MzIwNWRjZGI1NWIzZS4uZmI0NDAyYTRmMmY4
MzFkZDNiNjdiMzdhOWFmYjRmNGIyMmQzMDA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYxMiw3ICs2MTIsNyBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICBzZXRWaWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbk1p
bmltdW1MYXlvdXRTaXplLCBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXpl
KTsKKyAgICBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShwYXJhbWV0
ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKTsKICAgICBzZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemUocGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUpOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YmY1ZjY4YzM4MDYyNWVlOWYxZWU5NDljMzFiMWViY2YzNzNhNDZlZi4uZWE2NTJmZjVmMzJhN2Jl
OGU3MWQxNjJlNWU0ZTU3YWExN2RmODhlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtODc1LDEwICs4NzUsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlVmlzaWJpbGl0eVN0YXRlKGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7CiAKICNp
ZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVt
TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHZpZXdTaXplKTsKKyAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmlt
dW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0TWF4
aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQg
c2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7Ci0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYg
dGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2
aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7Cisg
ICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVu
b2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250
ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRp
b24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAgICAgdm9pZCBzeW5j
aHJvbml6ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZShkb3VibGUmIG5ld1RhcmdldFNjYWxlLCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QmIG5leHRWYWxpZExh
eWVyVHJlZVRyYW5zYWN0aW9uSUQpOwogICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNjYWxlRnJv
bVVJUHJvY2Vzcyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJikgY29uc3Q7CiAg
ICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8mLCBNb25vdG9uaWNUaW1lIG9sZGVzdFRpbWVzdGFtcCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA2ZGVmM2IwNWFkMTUyNWZhZWU4ZDZiNDIyM2U1Y2VhZWFiZjg5YjdlLi5kMmM2ODRkN2YyZjBm
OTdhN2I0MWU5ODNkNWIyZjQ1Y2QwZjhiZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQxLDEwICs0MSwxMCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBLZXlFdmVudChXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpCiAgICAgTW91c2VFdmVudChXZWJLaXQ6OldlYk1v
dXNlRXZlbnQgZXZlbnQpCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFNldFZpZXdwb3J0Q29uZmln
dXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplLCBXZWJDb3Jl
OjpGbG9hdFNpemUgdmlld1NpemUpCisgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11
bUxheW91dFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0TWF4aW11bVVub2Jz
Y3VyZWRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldERldmljZU9yaWVudGF0
aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCi0gICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0
U2l6ZSB2aWV3U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZs
b2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
KQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIG1pbmlt
dW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBX
ZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9h
dFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8Zmxv
YXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
CiAgICAgU3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoKSAtPiAoZG91YmxlIG5ld1Rh
cmdldFNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG5ld1Njcm9sbFBvc2l0aW9uLCB1aW50NjRf
dCBuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklEKQogCiAgICAgSGFuZGxlVGFwKFdlYkNv
cmU6OkludFBvaW50IHBvaW50LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggNWNlZDQ4YjBiM2YyNTYyMGU3ZTBmNzAzMDY3ZDVkYTZiNWU1NzkyNi4uZTQ3NTg0
ZDU3OWQzMWUwODQ4ZDYzNjczMjJlN2M3NzI0NzRkY2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI0NTQsMTAgKzI0
NTQsMTAgQEAgdm9pZCBXZWJQYWdlOjphdXRvZmlsbExvZ2luQ3JlZGVudGlhbHMoY29uc3QgU3Ry
aW5nJiB1c2VybmFtZSwgY29uc3QgU3RyaW5nJiBwYXMKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgRmxvYXRT
aXplJiBzaXplLCBjb25zdCBGbG9hdFNpemUmIHZpZXdTaXplKQordm9pZCBXZWJQYWdlOjpzZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNp
emUpCiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQ
YWdlICIgPDwgbV9wYWdlSUQgPDwgIiBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5
b3V0U2l6ZSAiIDw8IHNpemUgPDwgIiB2aWV3U2l6ZSAiIDw8IHZpZXdTaXplKTsKLSAgICBpZiAo
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0TWluaW11bUxheW91dFNpemUoc2l6ZSwgdmlld1Np
emUpKQorICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFn
ZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91
dFNpemUgIiA8PCBzaXplKTsKKyAgICBpZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0TWlu
aW11bUxheW91dFNpemUoc2l6ZSkpCiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKIH0KIApAQCAtMjQ5MiwxMiArMjQ5MiwxMiBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0VGV4
dEF1dG9zaXppbmcoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IEZsb2F0
U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3Vy
ZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3Vi
bGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZHluYW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1Np
emVVcGRhdGUsIHRydWUpOwogICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IGhhbmRsZSB0aGUg
Y2FzZXMgd2hlcmUgdGhlIGNvbnRlbnQgd291bGQgY2hhbmdlIHRoZSBjb250ZW50IHNpemUgb3Ig
c2Nyb2xsIHBvc2l0aW9uIGZyb20gSmF2YVNjcmlwdC4KICAgICAvLyBUbyBoYW5kbGUgdGhvc2Ug
Y2FzZXMsIHdlIHdvdWxkIG5lZWQgdG8gcmVkbyB0aGlzIGNvbXB1dGF0aW9uIG9uIGV2ZXJ5IGNo
YW5nZSB1bnRpbCB0aGUgbmV4dCB2aXNpYmxlIGNvbnRlbnQgcmVjdCB1cGRhdGUuCi0gICAgTE9H
X1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJcbldlYlBhZ2U6OmR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGUgLSBtaW5pbXVtTGF5b3V0U2l6ZSAiIDw8IG1pbmltdW1MYXlvdXRT
aXplIDw8ICIgdmlld1NpemUgIiA8PCB2aWV3U2l6ZSA8PCAiIHRhcmdldFVub2JzY3VyZWRSZWN0
ICIgPDwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3Qg
IiA8PCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8IHRhcmdl
dFNjYWxlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIlxu
V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSAtIG1pbmltdW1MYXlvdXRTaXplICIg
PDwgbWluaW11bUxheW91dFNpemUgPDwgIiB0YXJnZXRVbm9ic2N1cmVkUmVjdCAiIDw8IHRhcmdl
dFVub2JzY3VyZWRSZWN0IDw8ICIgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0ICIgPDwgdGFyZ2V0
RXhwb3NlZENvbnRlbnRSZWN0IDw8ICIgdGFyZ2V0U2NhbGUgIiA8PCB0YXJnZXRTY2FsZSk7CiAK
ICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9ICptX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsK
ICAgICBJbnRTaXplIG9sZENvbnRlbnRTaXplID0gZnJhbWVWaWV3LmNvbnRlbnRzU2l6ZSgpOwpA
QCAtMjUzMCw3ICsyNTMwLDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICB9CiAKICAg
ICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBhZ2U6OmR5bmFt
aWNWaWV3cG9ydFNpemVVcGRhdGUgc2V0dGluZyBtaW5pbXVtIGxheW91dCBzaXplIHRvICIgPDwg
bWluaW11bUxheW91dFNpemUpOwotICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmlt
dW1MYXlvdXRTaXplKG1pbmltdW1MYXlvdXRTaXplLCB2aWV3U2l6ZSk7CisgICAgbV92aWV3cG9y
dENvbmZpZ3VyYXRpb24uc2V0TWluaW11bUxheW91dFNpemUobWluaW11bUxheW91dFNpemUpOwog
ICAgIEludFNpemUgbmV3TGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmxheW91
dFNpemUoKTsKIAogICAgIGlmIChzZXRGaXhlZExheW91dFNpemUobmV3TGF5b3V0U2l6ZSkpCkBA
IC0yOTEyLDkgKzI5MTIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVj
dHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgIGlmIChzY3Jv
bGxQb3NpdGlvbiAhPSBmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgbV9keW5h
bWljU2l6ZVVwZGF0ZUhpc3RvcnkuY2xlYXIoKTsKIAotICAgIGJvb2wgZGlkVXBkYXRlRm9yY2VI
b3Jpem9udGFsU2hyaW5rVG9GaXQgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRGb3JjZUhv
cml6b250YWxTaHJpbmtUb0ZpdCh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmZvcmNlSG9y
aXpvbnRhbFNocmlua1RvRml0KCkpOwotICAgIGJvb2wgZGlkVXBkYXRlQ2FuSWdub3JlVmlld3Bv
cnRTY2FsaW5nQ29uc3RyYWludHMgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRDYW5JZ25v
cmVTY2FsaW5nQ29uc3RyYWludHMobV9pZ25vcmVWaWV3cG9ydFNjYWxpbmdDb25zdHJhaW50cyAm
JiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmFsbG93U2hyaW5rVG9GaXQoKSk7Ci0gICAg
aWYgKGRpZFVwZGF0ZUZvcmNlSG9yaXpvbnRhbFNocmlua1RvRml0IHx8IGRpZFVwZGF0ZUNhbkln
bm9yZVZpZXdwb3J0U2NhbGluZ0NvbnN0cmFpbnRzKQorICAgIGlmIChtX3ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5zZXRDYW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMobV9pZ25vcmVWaWV3cG9ydFNj
YWxpbmdDb25zdHJhaW50cyAmJiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmFsbG93U2hy
aW5rVG9GaXQoKSkpCiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAog
ICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1cmVkQ29udGVudFNpemUodmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3QoKS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3NmEzMmNmYWFiYWRmMmIx
MGRmNmIzYjJiMjNmNjkyYjg3MzU2N2QuLjRhYmIwNjc1NjQ1ZjliMDUxMzAzY2MzNjM3NTIzYjEx
NTU0MTlmZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBBZGQgYSBtZWNoYW5p
c20gdG8gb3ZlcnJpZGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMgaW4gZXh0cmEgem9vbSBt
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUw
NTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NjI0MDM4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIGEgdGVzdCB0aGF0J3Mgbm8gbG9uZ2Vy
IHVzZWZ1bCwgbm93IHRoYXQgdGhlIFNQSSBpdCB3YXMgdGVzdGluZyBpcyBnb25lLiBUaGlzIGZ1
bmN0aW9uYWxpdHkgaXMgbm93CisgICAgICAgIHRlc3RlZCBieSB0aGUgbGF5b3V0IHRlc3QgYWRk
ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL1ZpZXdwb3J0U2l6aW5nVGVzdHMubW06IFJlbW92ZWQuCisKIDIwMTgtMDQtMjUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0V4dHJhIHpv
b20gbW9kZV0gVGhlIHNlYXJjaCBmaWVsZCBvbiB3d3cuYmluZy5jb20gaXMgbWlzc2luZyBsYWJl
bCB0ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEzNzZlMjZiYjlkMTQ0NmJkMDM2OWYw
MTZkYmU0MjE1NjNlNmZjOTEuLjgzMjdmMTdjNjYwNGY2MzYwNzk2M2U0N2IyYWI2NWNkZTc1ZmUx
MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NCw3ICs5NCw2IEBACiAJCTJFMTRBNTI5
MUQzRkU5NkIwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxNEE1
MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAq
LzsgfTsKIAkJMkUxQjdCMDAxRDQxQUJBNzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0
ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWst
YWZ0ZXItZW5kaW5nLmh0bWwgKi87IH07CiAJCTJFMUI3QjAyMUQ0MUIxQjkwMDc1NThCNCAvKiBs
YXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMUI3QjAxMUQ0
MUIxQjMwMDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRv
LWVuZC5odG1sICovOyB9OwotCQkyRTFCODgxRjIwNDBFRTUzMDBGRkY2QTkgLyogVmlld3BvcnRT
aXppbmdUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFMUI4ODFFMjA0MEVFNTMwMEZGRjZBOSAvKiBWaWV3cG9ydFNpemluZ1Rlc3RzLm1tICov
OyB9OwogCQkyRTFERkRFRDFENDJBNTExMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8u
aHRtbCAqLzsgfTsKIAkJMkUxREZERUYxRDQyQTZGMjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13
aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZp
ZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgKi87IH07CiAJCTJFMURGREYxMUQ0MkUxRTQw
MDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1l
bmRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTFERkRGMDFENDJFMTQ0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1i
ZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgKi87IH07CkBAIC0xMjU0LDcgKzEy
NTMsNiBAQAogCQkyRTE0QTUyODFEM0ZFOEI4MDAxMEYzNUIgLyogYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1dG9wbGF5aW5n
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
MUI3QUZGMUQ0MUE5NUYwMDc1NThCNCAvKiBsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXNlZWstYWZ0ZXIt
ZW5kaW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFCN0IwMTFENDFC
MUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1l
bmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1oaWRlcy1j
b250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMkUxQjg4MUUyMDQwRUU1MzAwRkZGNkE5IC8qIFZpZXdwb3J0U2l6aW5nVGVzdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemluZ1Rlc3RzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAgLyogbGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12
aWRlb3Mtd2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUx
REZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8tYXV0b3BsYXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMURGREYw
MUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxh
eS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12
aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzc0LDcgKzIzNzIsNiBAQAogCQkJCUY0Qzg3OTdF
MjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSAqLywKIAkJCQlGNDUw
MzNGNDIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9zaXppbmdCb29zdC5tbSAqLywKIAkJCQlG
NDY4NDlCRDFFRUY1OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gKi8sCi0JCQkJ
MkUxQjg4MUUyMDQwRUU1MzAwRkZGNkE5IC8qIFZpZXdwb3J0U2l6aW5nVGVzdHMubW0gKi8sCiAJ
CQkJNTE0OTU4QkQxRjc0MjdBQzAwRTg3QkFEIC8qIFdLV2ViVmlld0F1dG9maWxsVGVzdHMubW0g
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKQEAgLTM3NjAsNyArMzc1Nyw2IEBACiAJCQkJN0M4
M0UwM0ExRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0M4M0UwQzYxRDBBNjU0RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTE1RUIzNDMxRUUwQkEwMzAwM0MyQzBBIC8qIFZpZXdwb3J0
U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLywKLQkJCQkyRTFCODgxRjIwNDBF
RTUzMDBGRkY2QTkgLyogVmlld3BvcnRTaXppbmdUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTYzNTZGQjIyMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQk4Mzc3OUMzODFGODJGRUNFMDA3Q0RBOEEgLyogVmlzaXRlZExpbmtTdG9y
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5RTc3MUE0MjNBNUIwMEY1OTBGNSAvKiBXZWFr
T2JqQ1B0ci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvVmlld3BvcnRTaXppbmdUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1ZpZXdwb3J0U2l6aW5nVGVzdHMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDk4MDBkMzczNjI3OWFjZDQ3YTYyZGE1ZGZhMTYwM2E5MWIwOTgwZTMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvVmlld3BvcnRTaXppbmdUZXN0cy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDk3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2lmIFdLX0FQSV9F
TkFCTEVEICYmIFBMQVRGT1JNKElPUykKLQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
LSNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2
YXRlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotCi1AaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoVmlld3BvcnRUZXN0aW5nSGVscGVycykKLQotLSAoQk9PTClzY2Fs
ZUlzQXBwcm94aW1hdGVseTooQ0dGbG9hdClleHBlY3RlZFNjYWxlCi17Ci0gICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBtYXhpbXVtRXhwZWN0ZWRTY2FsZURpZmZlcmVuY2UgPSAwLjAwMTsKLSAgICBy
ZXR1cm4gQUJTKHNlbGYuc2Nyb2xsVmlldy56b29tU2NhbGUgLSBleHBlY3RlZFNjYWxlKSA8IG1h
eGltdW1FeHBlY3RlZFNjYWxlRGlmZmVyZW5jZTsKLX0KLQotLSAodm9pZClleHBlY3RTY2FsZVRv
QmVjb21lOihDR0Zsb2F0KWV4cGVjdGVkU2NhbGUKLXsKLSAgICB3aGlsZSAoIVtzZWxmIHNjYWxl
SXNBcHByb3hpbWF0ZWx5OmV4cGVjdGVkU2NhbGVdKQotICAgICAgICBbc2VsZiB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07Ci19Ci0KLUBlbmQKLQotc3RhdGljIE5TU3RyaW5nICp2aWV3
cG9ydFRlc3RQYWdlTWFya3VwKE5TU3RyaW5nICp2aWV3cG9ydE1ldGFDb250ZW50LCBpbnQgY29u
dGVudFdpZHRoLCBpbnQgY29udGVudEhlaWdodCkKLXsKLSAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nJUAnPjxib2R5
IHN0eWxlPSdtYXJnaW46IDAnPjxkaXYgc3R5bGU9J3dpZHRoOiAlZHB4OyBoZWlnaHQ6ICVkcHg7
IGJhY2tncm91bmQtY29sb3I6IHJlZCc+PC9kaXY+Iiwgdmlld3BvcnRNZXRhQ29udGVudCwgY29u
dGVudFdpZHRoLCBjb250ZW50SGVpZ2h0XTsKLX0KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewotCi1URVNUKFZpZXdwb3J0U2l6aW5nVGVzdHMsIEZvcmNlU2hyaW5rVG9GaXRWaWV3cG9ydE92
ZXJyaWRlc1ZpZXdwb3J0UGFyYW1ldGVycykKLXsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQw
MCwgNDAwKV0pOwotICAgIFt3ZWJWaWV3IF9zZXRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0OllF
U107Ci0gICAgW3dlYlZpZXcgX3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6
Tk9dOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzp2aWV3cG9ydFRl
c3RQYWdlTWFya3VwKEAid2lkdGg9ZGV2aWNlLXdpZHRoLCBzaHJpbmstdG8tZml0PW5vIiwgNjAw
LCAxMDApXTsKLSAgICBbd2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjFdOwotCi0gICAgW3dl
YlZpZXcgX3NldEZvcmNlSG9yaXpvbnRhbFZpZXdwb3J0U2hyaW5rVG9GaXQ6WUVTXTsKLSAgICBb
d2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjAuNjY3XTsKLQotICAgIFt3ZWJWaWV3IF9zZXRG
b3JjZUhvcml6b250YWxWaWV3cG9ydFNocmlua1RvRml0Ok5PXTsKLSAgICBbd2ViVmlldyBleHBl
Y3RTY2FsZVRvQmVjb21lOjFdOwotfQotCi1URVNUKFZpZXdwb3J0U2l6aW5nVGVzdHMsIFNocmlu
a1RvRml0Vmlld3BvcnRXaXRoTWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aCkKLXsKLSAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKV0pOwotICAgIFt3ZWJWaWV3IF9zZXRBbGxvd3NWaWV3
cG9ydFNocmlua1RvRml0OllFU107Ci0gICAgW3dlYlZpZXcgX3NldEZvcmNlSG9yaXpvbnRhbFZp
ZXdwb3J0U2hyaW5rVG9GaXQ6WUVTXTsKLSAgICBbd2ViVmlldyBfc2V0TWluaW11bUFsbG93ZWRM
YXlvdXRXaWR0aDowXTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
dmlld3BvcnRUZXN0UGFnZU1hcmt1cChAIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xIiwgNDAwLCAxMDApXTsKLSAgICBbd2ViVmlldyBleHBlY3RTY2FsZVRvQmVjb21lOjAuNV07
Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCIyMDAiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCJdKTsKLQotICAgIFt3ZWJWaWV3
IF9zZXRNaW5pbXVtQWxsb3dlZExheW91dFdpZHRoOjQwMF07Ci0gICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwotICAgIEVYUEVDVF9XS19TVFJFUSgiNDAwIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuY2xpZW50
V2lkdGgiXSk7Ci0gICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgc2NhbGVJc0FwcHJveGltYXRlbHk6
MC41XSk7Ci0KLSAgICBbd2ViVmlldyBfc2V0TWluaW11bUFsbG93ZWRMYXlvdXRXaWR0aDoxMDBd
OwotICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKLSAgICBFWFBF
Q1RfV0tfU1RSRVEoIjIwMCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIl0pOwotICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHNjYWxlSXNBcHByb3hpbWF0ZWx5OjAuNV0pOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggY2E4NTEwNDYxNWE4NTJlMzcwZjJiMTc4YzdhYjI3YThhMjhhZWI0ZS4uYTdmM2I1OWZhMjAw
M2RlYjlmMGJmNTY5MjhjYmNmNjczYzBlYThmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4
LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtFeHRyYSB6b29tIG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IHZp
ZXdwb3J0IGJlaGF2aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBBZGQgYSBuZXcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdDoKKyAgICAgICAg4oCiIEJ5IGRl
ZmF1bHQgKHdpdGggbm8gYG1pbi1kZXZpY2Utd2lkdGhgIG92ZXJyaWRlKSwgc2hyaW5rLXRvLWZp
dCBhbmQgZXhwYW5kZWQgbWluaW11bSBsYXlvdXQgc2l6ZXMgdGFrZXMgZWZmZWN0LgorICAgICAg
ICDigKIgYG1pbi1kZXZpY2Utd2lkdGhgIGNhbiBiZSB1c2VkIHRvIGJhaWwgb3V0IG9mIHNocmlu
ay10by1maXQgYW5kIHZpZXdwb3J0IGJlaGF2aW9ycy4KKyAgICAgICAg4oCiIEEgbGFyZ2UgYG1p
bi1kZXZpY2Utd2lkdGhgIGNhbiBiZSB1c2VkIHRvIG1ha2UgZXh0cmEgem9vbSBtb2RlIHZpZXdw
b3J0IGhldXJpc3RpY3MgZXZlbiBtb3JlIGFnZ3Jlc3NpdmUuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIGZhc3Qvdmlld3BvcnQvZXh0cmF6b29tL3ZpZXdwb3J0LWNo
YW5nZS1taW4tZGV2aWNlLXdpZHRoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy91
aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuem9vbVNjYWxlKToKKyAgICAg
ICAgKHdpbmRvdy5VSUhlbHBlcik6CisKIDIwMTgtMDQtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gVGhlIHNlYXJj
aCBmaWVsZCBvbiB3d3cuYmluZy5jb20gaXMgbWlzc2luZyBsYWJlbCB0ZXh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBiNTYyMzIzYWQ1NjBjODEyMzBkMjMyNmQ5MDNkMWNjMDZmNTVjNzllLi42OTg4
NGRkMWMzN2I1MTk5ZWRjMTRkN2Y2ZmYxMWU4M2JkOGFiYmE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTIxLDYgKzIxLDcgQEAgdGlsZWQtZHJhd2luZyBbIFNraXAgXQogZmFzdC9jc3MvZXh0cmF6
b29tIFsgU2tpcCBdCiBmYXN0L2RvbS9XaW5kb3cvZXh0cmF6b29tIFsgU2tpcCBdCiBmYXN0L2Zv
cm1zL2V4dHJhem9vbSBbIFNraXAgXQorZmFzdC92aWV3cG9ydC9leHRyYXpvb20gWyBTa2lwIF0K
IGZhc3QvdmlzdWFsLXZpZXdwb3J0L2V4dHJhem9vbSBbIFNraXAgXQogZmFzdC92aXN1YWwtdmll
d3BvcnQvdGlsZWQtZHJhd2luZyBbIFNraXAgXQogc3dpcGUgWyBTa2lwIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvZXh0cmF6b29tL3ZpZXdwb3J0LWNoYW5nZS1taW4t
ZGV2aWNlLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2V4dHJhem9vbS92
aWV3cG9ydC1jaGFuZ2UtbWluLWRldmljZS13aWR0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1MzFhOTIy
YTBjNjEzYzExODIxMTI0OGMyN2E1MTU2NWEzYTYxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2V4dHJhem9vbS92aWV3cG9ydC1jaGFuZ2UtbWluLWRldmlj
ZS13aWR0aC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgaWQ9Im1ldGEiPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxl
PgorICAgICAgICBib2R5LCBodG1sIHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBmdW5jdGlvbiBsb2dXaW5kb3dEaW1lbnNpb25zQWZ0ZXJTZXR0aW5nVmlld3Bv
cnRDb250ZW50KGNvbnRlbnQpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3lu
YyByZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgICBtZXRhLnNldEF0dHJpYnV0ZSgiY29udGVu
dCIsIGNvbnRlbnQpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNl
bnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAgICAgIGRlYnVnKGBbJHttZXRhLmdldEF0dHJp
YnV0ZSgiY29udGVudCIpfV0gKCR7aW5uZXJXaWR0aH0sICR7aW5uZXJIZWlnaHR9KWApOworICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAg
ICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbigiUGxlYXNlIHVzZSBX
ZWJLaXRUZXN0UnVubmVyIHRvIHJ1biB0aGlzIHRlc3QuIik7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWJ1ZygiMS4gSW5pdGlhbCBtaW4t
ZGV2aWNlLXdpZHRoIik7CisgICAgICAgICAgICBhd2FpdCBsb2dXaW5kb3dEaW1lbnNpb25zQWZ0
ZXJTZXR0aW5nVmlld3BvcnRDb250ZW50KCJ3aWR0aD0xNTAiKTsKKyAgICAgICAgICAgIGF3YWl0
IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPWRl
dmljZS13aWR0aCIpOworICAgICAgICAgICAgc2NhbGVBdERldmljZVdpZHRoRm9ySW5pdGlhbE1p
bkRldmljZVdpZHRoID0gcGFyc2VGbG9hdChhd2FpdCBVSUhlbHBlci56b29tU2NhbGUoKSkudG9G
aXhlZCgzKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRp
bmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPTYwMCIpOworCisgICAgICAgICAgICBkZWJ1ZygiXG4y
LiBtaW4tZGV2aWNlLXdpZHRoPTAiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVu
c2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRlbnQoIndpZHRoPTE1MCwgbWluLWRldmljZS13
aWR0aD0wIik7CisgICAgICAgICAgICBhd2FpdCBsb2dXaW5kb3dEaW1lbnNpb25zQWZ0ZXJTZXR0
aW5nVmlld3BvcnRDb250ZW50KCJ3aWR0aD1kZXZpY2Utd2lkdGgsIG1pbi1kZXZpY2Utd2lkdGg9
MCIpOworICAgICAgICAgICAgc2NhbGVBdERldmljZVdpZHRoRm9yTWluRGV2aWNlV2lkdGgwID0g
cGFyc2VGbG9hdChhd2FpdCBVSUhlbHBlci56b29tU2NhbGUoKSkudG9GaXhlZCgzKTsKKyAgICAg
ICAgICAgIGF3YWl0IGxvZ1dpbmRvd0RpbWVuc2lvbnNBZnRlclNldHRpbmdWaWV3cG9ydENvbnRl
bnQoIndpZHRoPTYwMCwgbWluLWRldmljZS13aWR0aD0wIik7CisKKyAgICAgICAgICAgIGRlYnVn
KCJcbjMuIG1pbi1kZXZpY2Utd2lkdGg9NTAwIik7CisgICAgICAgICAgICBhd2FpdCBsb2dXaW5k
b3dEaW1lbnNpb25zQWZ0ZXJTZXR0aW5nVmlld3BvcnRDb250ZW50KCJ3aWR0aD0xNTAsIG1pbi1k
ZXZpY2Utd2lkdGg9NTAwIik7CisgICAgICAgICAgICBhd2FpdCBsb2dXaW5kb3dEaW1lbnNpb25z
QWZ0ZXJTZXR0aW5nVmlld3BvcnRDb250ZW50KCJ3aWR0aD1kZXZpY2Utd2lkdGgsIG1pbi1kZXZp
Y2Utd2lkdGg9NTAwIik7CisgICAgICAgICAgICBzY2FsZUF0RGV2aWNlV2lkdGhGb3JNaW5EZXZp
Y2VXaWR0aDUwMCA9IHBhcnNlRmxvYXQoYXdhaXQgVUlIZWxwZXIuem9vbVNjYWxlKCkpLnRvRml4
ZWQoMyk7CisgICAgICAgICAgICBhd2FpdCBsb2dXaW5kb3dEaW1lbnNpb25zQWZ0ZXJTZXR0aW5n
Vmlld3BvcnRDb250ZW50KCJ3aWR0aD02MDAsIG1pbi1kZXZpY2Utd2lkdGg9NTAwIik7CisKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJzY2FsZUF0RGV2aWNlV2lkdGhGb3JJbml0aWFsTWluRGV2aWNl
V2lkdGgiLCAiJzAuNDg4JyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInNjYWxlQXREZXZpY2VX
aWR0aEZvck1pbkRldmljZVdpZHRoMCIsICInMS4wMDAnIik7CisgICAgICAgICAgICBzaG91bGRC
ZSgic2NhbGVBdERldmljZVdpZHRoRm9yTWluRGV2aWNlV2lkdGg1MDAiLCAiJzAuMzEyJyIpOwor
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3Rz
L3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggNDQ2MzU2NzllNzkzOGU2OTVkNWRmMTc3N2M1
NWEzZjFmNDMzZGY1MC4uNDE1NzliMWNhOTZiZDE3ZjYyMDliYmE5YjBmZGUxZWMzZTg2MTMwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0yMDgsNCArMjA4LDEzIEBAIHdpbmRv
dy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgICAgIH0pKClgLCByZXNvbHZl
KTsKICAgICAgICAgfSk7CiAgICAgfQorCisgICAgc3RhdGljIHpvb21TY2FsZSgpCisgICAgewor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGAoKCkgPT4geworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKHVpQ29udHJvbGxlci56b29tU2NhbGUpOworICAgICAgICAgICAg
fSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338992</attachid>
            <date>2018-04-27 08:40:17 -0700</date>
            <delta_ts>2018-04-27 09:07:24 -0700</delta_ts>
            <desc>Part 2 (patch for landing)</desc>
            <filename>bug-185050-20180427084016.patch</filename>
            <type>text/plain</type>
            <size>60159</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ1N2Y0YTZmMmZmZjRi
MjI2NzRkNTViYjQxMjRkZTk4MjYyNmExNi4uZTNiM2NlMTYzMmIwZjZmYTM2YjU1NjU5NzczNWZh
MzUzY2JlMjMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBtaW5p
bXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0U2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
OTYyNDAzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFNl
ZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3JlIGluZm9ybWF0aW9uLiBObyBjaGFuZ2UgaW4gYmVo
YXZpb3IuCisKKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OlZpZXdwb3J0Q29uZmlndXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldFZpZXdMYXlv
dXRTaXplKToKKworICAgICAgICBSZW1vdmUgYSBGSVhNRSBjb21tZW50IHRoYXQgaXMgYWRkcmVz
c2VkIGJ5IHRoaXMgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6c2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OmluaXRpYWxT
Y2FsZUZyb21TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJh
dGlvbjo6bWluaW11bVNjYWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6dXBkYXRlTWluaW11bUxheW91dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dmlld0xheW91dFNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjp2aWV3U2l6ZSBjb25zdCk6IERlbGV0ZWQu
CisKIDIwMTgtMDQtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gQWRkIGEgbWVjaGFuaXNtIHRvIG92ZXJyaWRlIGRl
ZmF1bHQgdmlld3BvcnQgYmVoYXZpb3JzIGluIGV4dHJhIHpvb20gbW9kZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
YTcyMWU0OGY0ZGE5MDJiNjIwNjI5MjM0MjI1ZWEyNTA2ZWYzZGZjLi41MjM3OWI4M2EwNTRmNGQ4
NmY3OTYzZjNmN2NjOGM3ZDQ0ZTBiNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE4
LTA0LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSBtaW5pbXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0U2l6ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDUwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTYyNDAzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIFJlbmFtZXMgbWluaW11bUxheW91dFNpemUgdG8gdmlld0xheW91dFNpemUsIHNp
bmNlIHRoZSBtaW5pbXVtIGxheW91dCBzaXplIGluIFZpZXdwb3J0Q29uZmlndXJhdGlvbiBpcyBu
b3cKKyAgICAgICAgZGlmZmVyZW50IGZyb20gdGhlIG1pbmltdW0gbGF5b3V0IHNpemUgdGhhdCBp
cyBjdXJyZW50bHkgcHVzaGVkIGRvd24gZnJvbSB0aGUgVUkgcHJvY2VzcyAoZS5nLiBXS1dlYlZp
ZXcgU1BJKSBpbgorICAgICAgICB0aGUgY2FzZSB3aGVyZSBgbWluLWRldmljZS13aWR0aGAgaXMg
dXNlZCB0byBvdmVycmlkZSB0aGUgbWluaW11bSBsYXlvdXQgc2l6ZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NEaWRFeGl0XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOl0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfbWlu
aW11bUxheW91dFNpemVPdmVycmlkZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFZpZXdM
YXlvdXRTaXplT3ZlcnJpZGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRl
ZFJlc2l6ZVdpdGhVcGRhdGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2VuZEFuaW1hdGVk
UmVzaXplXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2NsZWFyT3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzXSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfbWluaW11bUxheW91dFdpZHRoXSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfc2V0TWluaW11bUxheW91dFdpZHRoOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
YWN0aXZlTWluaW11bUxheW91dFNpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2ViVmll
dyBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9zZXRNaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5
b3V0U2l6ZTptaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSTptYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTpdKTogRGVsZXRlZC4KKworICAgICAgICBSZW1vdmUgdW51c2VkIFNQSSB0aGF0
IGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgaU9TIDksIGhhcyBhIHNpbXBsZSBkcm9wLWluIHJl
cGxhY2VtZW50LCBhbmQgbm8gbG9uZ2VyIGhhcyBhbnkKKyAgICAgICAgaW50ZXJuYWwgY2xpZW50
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjptaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SW50cmluc2ljQ29udGVudFNpemUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRy
YXdpbmdBcmVhUHJveHk6OnZpZXdMYXlvdXRTaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWFQcm94eTo6bWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UpOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c2V0Vmlld0xheW91dFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldE1pbmltdW1MYXlvdXRTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0xh
eW91dFNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1pbmltdW1M
YXlvdXRTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eTo6dmlld0xheW91dFNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSk6
CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6Omlu
dHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSk6CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6Om1pbmltdW1M
YXlvdXRTaXplRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6Y29sbGVj
dEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2NyZWRlbnRpYWxz
TWVzc2VuZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Vmlld0xheW91dFNpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZSk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dmlld0xheW91dFNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjptaW5pbXVtTGF5b3V0U2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
S2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOgorCiAy
MDE4LTA0LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtFeHRyYSB6b29tIG1vZGVdIEFkZCBhIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0
IHZpZXdwb3J0IGJlaGF2aW9ycyBpbiBleHRyYSB6b29tIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcAppbmRleCBhZGM2ODFkNDM1ZDAxMjFmZjg5
MGZlZmQ0ZDUyMTdhYjY2ZTVmMzNiLi42NDhiOGQzMDdjNzUxN2Q2MDFhNzcwOTA1YjJmMGM4YzQy
NTg0MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24u
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBmbG9hdCBjb21wdXRlZE1pbkRldmljZVdpZHRo
KGZsb2F0IG1pbkRldmljZVdpZHRoKQogCiBWaWV3cG9ydENvbmZpZ3VyYXRpb246OlZpZXdwb3J0
Q29uZmlndXJhdGlvbigpCiAgICAgOiBtX21pbmltdW1MYXlvdXRTaXplKDEwMjQsIDc2OCkKLSAg
ICAsIG1fdmlld1NpemUoMTAyNCwgNzY4KQorICAgICwgbV92aWV3TGF5b3V0U2l6ZSgxMDI0LCA3
NjgpCiAgICAgLCBtX2Nhbklnbm9yZVNjYWxpbmdDb25zdHJhaW50cyhmYWxzZSkKICAgICAsIG1f
Zm9yY2VBbHdheXNVc2VyU2NhbGFibGUoZmFsc2UpCiB7CkBAIC05NSwxNCArOTUsMTIgQEAgYm9v
bCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBj
b250ZW50U2l6ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLy8gRklYTUU6IFZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6c2V0TWluaW11bUxheW91dFNpemUgaXMgbm8gbG9uZ2VyIGFuIGFjY3VyYXRl
IG5hbWUsIHNpbmNlIHRoZSBtaW5pbXVtIGxheW91dCBzaXplCi0vLyBpcyBub3QgbmVjZXNzYXJp
bHkgdGhlIHNpemUgb2YgdGhlIHZpZXcuCi1ib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0
TWluaW11bUxheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSkKK2Jv
b2wgVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNp
emUmIHZpZXdMYXlvdXRTaXplKQogewotICAgIGlmIChtX3ZpZXdTaXplID09IG1pbmltdW1MYXlv
dXRTaXplKQorICAgIGlmIChtX3ZpZXdMYXlvdXRTaXplID09IHZpZXdMYXlvdXRTaXplKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3ZpZXdTaXplID0gbWluaW11bUxheW91dFNpemU7
CisgICAgbV92aWV3TGF5b3V0U2l6ZSA9IHZpZXdMYXlvdXRTaXplOwogCiAgICAgdXBkYXRlTWlu
aW11bUxheW91dFNpemUoKTsKICAgICB1cGRhdGVDb25maWd1cmF0aW9uKCk7CkBAIC0xMzksNyAr
MTM3LDcgQEAgSW50U2l6ZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFNpemUoKSBjb25z
dAogCiBib29sIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0
aFdpdGhNaW5EZXZpY2VXaWR0aCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlld1NpemUud2lk
dGgoKSA8IGNvbXB1dGVkTWluRGV2aWNlV2lkdGgobV92aWV3cG9ydEFyZ3VtZW50cy5taW5EZXZp
Y2VXaWR0aCk7CisgICAgcmV0dXJuIG1fdmlld0xheW91dFNpemUud2lkdGgoKSA8IGNvbXB1dGVk
TWluRGV2aWNlV2lkdGgobV92aWV3cG9ydEFyZ3VtZW50cy5taW5EZXZpY2VXaWR0aCk7CiB9CiAK
IGJvb2wgVmlld3BvcnRDb25maWd1cmF0aW9uOjpzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGlu
Z0NvbnN0cmFpbnRzKCkgY29uc3QKQEAgLTIwMSwxMSArMTk5LDExIEBAIGRvdWJsZSBWaWV3cG9y
dENvbmZpZ3VyYXRpb246OmluaXRpYWxTY2FsZUZyb21TaXplKGRvdWJsZSB3aWR0aCwgZG91Ymxl
IGhlaWdodCwKICAgICAvLyBXZSB3YW50IGEgc2NhbGUgc21hbGwgZW5vdWdoIHRvIGZpdCB0aGUg
ZG9jdW1lbnQgd2lkdGgtd2lzZS4KICAgICBkb3VibGUgaW5pdGlhbFNjYWxlID0gMDsKICAgICBp
ZiAod2lkdGggPiAwICYmICFzaG91bGRJZ25vcmVWZXJ0aWNhbFNjYWxpbmdDb25zdHJhaW50cygp
KQotICAgICAgICBpbml0aWFsU2NhbGUgPSBtX3ZpZXdTaXplLndpZHRoKCkgLyB3aWR0aDsKKyAg
ICAgICAgaW5pdGlhbFNjYWxlID0gbV92aWV3TGF5b3V0U2l6ZS53aWR0aCgpIC8gd2lkdGg7CiAK
ICAgICAvLyBQcmV2ZW50IHRoZSBpbml0aWFsIHNjYWxlIGZyb20gc2hyaW5raW5nIHRvIGEgaGVp
Z2h0IHNtYWxsZXIgdGhhbiBvdXIgdmlldydzIG1pbmltdW0gaGVpZ2h0LgotICAgIGlmIChoZWln
aHQgPiAwICYmIGhlaWdodCAqIGluaXRpYWxTY2FsZSA8IG1fdmlld1NpemUuaGVpZ2h0KCkgJiYg
IXNob3VsZElnbm9yZUhvcml6b250YWxTY2FsaW5nQ29uc3RyYWludHMoKSkKLSAgICAgICAgaW5p
dGlhbFNjYWxlID0gbV92aWV3U2l6ZS5oZWlnaHQoKSAvIGhlaWdodDsKKyAgICBpZiAoaGVpZ2h0
ID4gMCAmJiBoZWlnaHQgKiBpbml0aWFsU2NhbGUgPCBtX3ZpZXdMYXlvdXRTaXplLmhlaWdodCgp
ICYmICFzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzKCkpCisgICAgICAg
IGluaXRpYWxTY2FsZSA9IG1fdmlld0xheW91dFNpemUuaGVpZ2h0KCkgLyBoZWlnaHQ7CiAKICAg
ICByZXR1cm4gc3RkOjptaW4oc3RkOjptYXgoaW5pdGlhbFNjYWxlLCBzaG91bGRJZ25vcmVTY2Fs
aW5nQ29uc3RyYWludHMgPyBtX2RlZmF1bHRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSA6IG1f
Y29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUpLCBtX2NvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxl
KTsKIH0KQEAgLTIzMywxMiArMjMxLDEyIEBAIGRvdWJsZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246
Om1pbmltdW1TY2FsZSgpIGNvbnN0CiAgICAgICAgIG1pbmltdW1TY2FsZSA9IHN0ZDo6bWluKG1p
bmltdW1TY2FsZSwgZm9yY2VBbHdheXNVc2VyU2NhbGFibGVNaW5pbXVtU2NhbGUpOwogCiAgICAg
ZG91YmxlIGNvbnRlbnRXaWR0aCA9IG1fY29udGVudFNpemUud2lkdGgoKTsKLSAgICBpZiAoY29u
dGVudFdpZHRoID4gMCAmJiBjb250ZW50V2lkdGggKiBtaW5pbXVtU2NhbGUgPCBtX3ZpZXdTaXpl
LndpZHRoKCkgJiYgIXNob3VsZElnbm9yZVZlcnRpY2FsU2NhbGluZ0NvbnN0cmFpbnRzKCkpCi0g
ICAgICAgIG1pbmltdW1TY2FsZSA9IG1fdmlld1NpemUud2lkdGgoKSAvIGNvbnRlbnRXaWR0aDsK
KyAgICBpZiAoY29udGVudFdpZHRoID4gMCAmJiBjb250ZW50V2lkdGggKiBtaW5pbXVtU2NhbGUg
PCBtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkgJiYgIXNob3VsZElnbm9yZVZlcnRpY2FsU2NhbGlu
Z0NvbnN0cmFpbnRzKCkpCisgICAgICAgIG1pbmltdW1TY2FsZSA9IG1fdmlld0xheW91dFNpemUu
d2lkdGgoKSAvIGNvbnRlbnRXaWR0aDsKIAogICAgIGRvdWJsZSBjb250ZW50SGVpZ2h0ID0gbV9j
b250ZW50U2l6ZS5oZWlnaHQoKTsKLSAgICBpZiAoY29udGVudEhlaWdodCA+IDAgJiYgY29udGVu
dEhlaWdodCAqIG1pbmltdW1TY2FsZSA8IG1fdmlld1NpemUuaGVpZ2h0KCkgJiYgIXNob3VsZEln
bm9yZUhvcml6b250YWxTY2FsaW5nQ29uc3RyYWludHMoKSkKLSAgICAgICAgbWluaW11bVNjYWxl
ID0gbV92aWV3U2l6ZS5oZWlnaHQoKSAvIGNvbnRlbnRIZWlnaHQ7CisgICAgaWYgKGNvbnRlbnRI
ZWlnaHQgPiAwICYmIGNvbnRlbnRIZWlnaHQgKiBtaW5pbXVtU2NhbGUgPCBtX3ZpZXdMYXlvdXRT
aXplLmhlaWdodCgpICYmICFzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRz
KCkpCisgICAgICAgIG1pbmltdW1TY2FsZSA9IG1fdmlld0xheW91dFNpemUuaGVpZ2h0KCkgLyBj
b250ZW50SGVpZ2h0OwogCiAgICAgbWluaW11bVNjYWxlID0gc3RkOjptaW4oc3RkOjptYXgobWlu
aW11bVNjYWxlLCBtX2NvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKSwgbV9jb25maWd1cmF0aW9u
Lm1heGltdW1TY2FsZSk7CiAKQEAgLTM4MiwxMyArMzgwLDEzIEBAIHZvaWQgVmlld3BvcnRDb25m
aWd1cmF0aW9uOjp1cGRhdGVDb25maWd1cmF0aW9uKCkKIAogdm9pZCBWaWV3cG9ydENvbmZpZ3Vy
YXRpb246OnVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKCkKIHsKLSAgICBpZiAoIW1fdmlld1NpemUu
d2lkdGgoKSB8fCAhc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aFdpdGhNaW5EZXZpY2VXaWR0aCgp
KSB7Ci0gICAgICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtX3ZpZXdTaXplOworICAgIGlmICgh
bV92aWV3TGF5b3V0U2l6ZS53aWR0aCgpIHx8ICFzaG91bGRPdmVycmlkZURldmljZVdpZHRoV2l0
aE1pbkRldmljZVdpZHRoKCkpIHsKKyAgICAgICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IG1fdmll
d0xheW91dFNpemU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIG1pbkRldmlj
ZVdpZHRoID0gY29tcHV0ZWRNaW5EZXZpY2VXaWR0aChtX3ZpZXdwb3J0QXJndW1lbnRzLm1pbkRl
dmljZVdpZHRoKTsKLSAgICBtX21pbmltdW1MYXlvdXRTaXplID0gRmxvYXRTaXplKG1pbkRldmlj
ZVdpZHRoLCBzdGQ6OnJvdW5kZihtX3ZpZXdTaXplLmhlaWdodCgpICogKG1pbkRldmljZVdpZHRo
IC8gbV92aWV3U2l6ZS53aWR0aCgpKSkpOworICAgIG1fbWluaW11bUxheW91dFNpemUgPSBGbG9h
dFNpemUobWluRGV2aWNlV2lkdGgsIHN0ZDo6cm91bmRmKG1fdmlld0xheW91dFNpemUuaGVpZ2h0
KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkpKSk7CiB9CiAK
IGRvdWJsZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdwb3J0QXJndW1lbnRzTGVuZ3RoKGRv
dWJsZSBsZW5ndGgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3Vy
YXRpb24uaAppbmRleCBkNmE1MGNhNDVjMTAwNjI5OTdkODJmNWI3NzQwM2NhZWU3NGJlOTRjLi5i
ZmYxMDA3Njc3ZjIzNDVjOWE5NTE3YTUyNzY1YWJkMzcwYmFiZDFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKQEAgLTc0LDEwICs3NCwxMCBAQCBwdWJs
aWM6CiAgICAgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZW50U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Q29udGVudHNTaXplKGNv
bnN0IEludFNpemUmKTsKIAotICAgIEZsb2F0U2l6ZSB2aWV3U2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmlld1NpemU7IH0KKyAgICBGbG9hdFNpemUgdmlld0xheW91dFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZXdMYXlvdXRTaXplOyB9CiAKICAgICBjb25zdCBGbG9hdFNpemUmIG1pbmltdW1M
YXlvdXRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0U2l6ZTsgfQotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2V0TWluaW11bUxheW91dFNpemUoY29uc3QgRmxvYXRTaXplJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNp
emUmKTsKIAogICAgIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJik7CkBA
IC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBQYXJhbWV0ZXJzIG1fZGVmYXVsdENvbmZp
Z3VyYXRpb247CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRTaXplOwogICAgIEZsb2F0U2l6ZSBtX21p
bmltdW1MYXlvdXRTaXplOwotICAgIEZsb2F0U2l6ZSBtX3ZpZXdTaXplOworICAgIEZsb2F0U2l6
ZSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIFZpZXdwb3J0QXJndW1lbnRzIG1fdmlld3BvcnRBcmd1
bWVudHM7CiAKICAgICBib29sIG1fY2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCAzY2ZlM2IyZTViMTQyNTkxY2E2NmE4MjI4YjkyMjkwMzdjMGUzMWRjLi4zYjBiOGFhNTBmYWRh
OTU2N2Q3YWNlOWEyYTU3M2EwMWEzMjViZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYVZvbHVtZTsKICAgICBlbmNvZGVyIDw8IG11dGVk
OwogICAgIGVuY29kZXIgPDwgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKLSAgICBlbmNvZGVy
IDw8IG1pbmltdW1MYXlvdXRTaXplOworICAgIGVuY29kZXIgPDwgdmlld0xheW91dFNpemU7CiAg
ICAgZW5jb2RlciA8PCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIGVu
Y29kZXIgPDwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBlbmNvZGVyLmVu
Y29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgb3ZlcnJpZGVTY3JlZW5TaXplOwogICAgIGVuY29kZXIgPDwg
dGV4dEF1dG9zaXppbmdXaWR0aDsKICAgICBlbmNvZGVyIDw8IGlnbm9yZXNWaWV3cG9ydFNjYWxl
TGltaXRzOwotICAgIGVuY29kZXIgPDwgdmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91
dFNpemU7CisgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6
ZTsKICAgICBlbmNvZGVyIDw8IHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXplOwogICAgIGVu
Y29kZXIgPDwgbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCkBAIC0yMDMsNyArMjAzLDcg
QEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLm1pbmltdW1MYXlvdXRTaXplKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudmlld0xheW91dFNpemUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTI1
NCw3ICsyNTQsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pZ25vcmVzVmll
d3BvcnRTY2FsZUxpbWl0cykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1M
YXlvdXRTaXplKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld3BvcnRD
b25maWd1cmF0aW9uVmlld0xheW91dFNpemUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3U2l6ZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTczZTE3OTMy
YmUyZmZiM2RjNzczMWU4YTEyNDVkMWMzYzc4OGNjYy4uMDZmN2FiNjIwODhiN2IzOGU4NTQxOWVj
NzUyYjc2ZTZhNjVhZGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTEyLDcgKzExMiw3IEBAIHN0cnVjdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MgbXV0ZWQ7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogCi0gICAg
V2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3JlOjpJbnRTaXpl
IHZpZXdMYXlvdXRTaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgCkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBvdmVycmlkZVNj
cmVlblNpemU7CiAgICAgZmxvYXQgdGV4dEF1dG9zaXppbmdXaWR0aDsKICAgICBib29sIGlnbm9y
ZXNWaWV3cG9ydFNjYWxlTGltaXRzOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9ydENv
bmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgdmll
d3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
YXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDRhMTZlNmQzYmI3YTAzNTQ1YzZhYzhkYmFk
ZTk0N2I4ZWYxOTNmZGYuLmI0NDM1MjRjMmRjMmIyMzhhOWM2NmYwZGJjOTdlZDk5YjlmZWQ5Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMjc3LDkgKzI3Nyw5IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXcgewogICAgIFJldGFp
blB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBfZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXI7CiAjZW5kaWYKIAotICAgIEJPT0wgX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplOwot
ICAgIENHU2l6ZSBfbWluaW11bUxheW91dFNpemVPdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWluaW11bUxheW91dFNpemU7CisgICAgQk9P
TCBfb3ZlcnJpZGVzVmlld0xheW91dFNpemU7CisgICAgQ0dTaXplIF92aWV3TGF5b3V0U2l6ZU92
ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBfbGFzdFNlbnRW
aWV3TGF5b3V0U2l6ZTsKICAgICBCT09MIF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemU7
CiAgICAgQ0dTaXplIF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXpl
OwpAQCAtMTY4Myw3ICsxNjgzLDcgQEAgLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKICAgICBfc2Ny
b2xsVmlld0JhY2tncm91bmRDb2xvciA9IFdlYkNvcmU6OkNvbG9yKCk7CiAgICAgX2RlbGF5VXBk
YXRlVmlzaWJsZUNvbnRlbnRSZWN0cyA9IE5POwogICAgIF9oYWREZWxheWVkVXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0cyA9IE5POwotICAgIF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplID0gc3Rk
OjpudWxsb3B0OworICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gc3RkOjpudWxsb3B0Owog
ICAgIF9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBf
bGFzdFNlbnREZXZpY2VPcmllbnRhdGlvbiA9IHN0ZDo6bnVsbG9wdDsKIApAQCAtMjU2NCwxMCAr
MjU2NCwxMCBAQCAtIChVSUVkZ2VJbnNldHMpX3Njcm9sbFZpZXdTeXN0ZW1Db250ZW50SW5zZXQK
ICAgICByZXR1cm4gVUlFZGdlSW5zZXRzQWRkKFtfc2Nyb2xsVmlldyBfY29udGVudFNjcm9sbElu
c2V0XSwgc2VsZi5zYWZlQXJlYUluc2V0cywgW19zY3JvbGxWaWV3IF9lZGdlc0FwcGx5aW5nU2Fm
ZUFyZWFJbnNldHNUb0NvbnRlbnRJbnNldF0pOwogfQogCi0tIChXZWJDb3JlOjpGbG9hdFNpemUp
YWN0aXZlTWluaW11bUxheW91dFNpemU6KGNvbnN0IENHUmVjdCYpYm91bmRzCistIChXZWJDb3Jl
OjpGbG9hdFNpemUpYWN0aXZlVmlld0xheW91dFNpemU6KGNvbnN0IENHUmVjdCYpYm91bmRzCiB7
Ci0gICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkZsb2F0U2l6ZShfbWluaW11bUxheW91dFNpemVPdmVycmlkZSk7CisgICAgaWYgKF9v
dmVycmlkZXNWaWV3TGF5b3V0U2l6ZSkKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0U2l6
ZShfdmlld0xheW91dFNpemVPdmVycmlkZSk7CiAKICNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDAKICAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRTaXplKFVJRWRn
ZUluc2V0c0luc2V0UmVjdChDR1JlY3RNYWtlKDAsIDAsIGJvdW5kcy5zaXplLndpZHRoLCBib3Vu
ZHMuc2l6ZS5oZWlnaHQpLCBzZWxmLl9zY3JvbGxWaWV3U3lzdGVtQ29udGVudEluc2V0KS5zaXpl
KTsKQEAgLTI1NzYsMTQgKzI1NzYsMTQgQEAgLSAoV2ViQ29yZTo6RmxvYXRTaXplKWFjdGl2ZU1p
bmltdW1MYXlvdXRTaXplOihjb25zdCBDR1JlY3QmKWJvdW5kcwogI2VuZGlmCiB9CiAKLS0gKHZv
aWQpX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltaW5p
bXVtTGF5b3V0U2l6ZQorLSAodm9pZClfZGlzcGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTooV2ViQ29y
ZTo6RmxvYXRTaXplKXZpZXdMYXlvdXRTaXplCiB7Ci0gICAgaWYgKF9sYXN0U2VudE1pbmltdW1M
YXlvdXRTaXplICYmIENHU2l6ZUVxdWFsVG9TaXplKF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXpl
LnZhbHVlKCksIG1pbmltdW1MYXlvdXRTaXplKSkKKyAgICBpZiAoX2xhc3RTZW50Vmlld0xheW91
dFNpemUgJiYgQ0dTaXplRXF1YWxUb1NpemUoX2xhc3RTZW50Vmlld0xheW91dFNpemUudmFsdWUo
KSwgdmlld0xheW91dFNpemUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0dfV0lUSF9TVFJF
QU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2UtPnBhZ2VJ
RCgpIDw8ICIgX2Rpc3BhdGNoU2V0TWluaW11bUxheW91dFNpemU6XSAiIDw8IG1pbmltdW1MYXlv
dXRTaXplIDw8ICIgY29udGVudFpvb21TY2FsZSAiIDw8IGNvbnRlbnRab29tU2NhbGUoc2VsZikp
OwotICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZSht
aW5pbXVtTGF5b3V0U2l6ZSk7Ci0gICAgX2xhc3RTZW50TWluaW11bUxheW91dFNpemUgPSBtaW5p
bXVtTGF5b3V0U2l6ZTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0g
PDwgIi1bV0tXZWJWaWV3ICIgPDwgX3BhZ2UtPnBhZ2VJRCgpIDw8ICIgX2Rpc3BhdGNoU2V0Vmll
d0xheW91dFNpemU6XSAiIDw8IHZpZXdMYXlvdXRTaXplIDw8ICIgY29udGVudFpvb21TY2FsZSAi
IDw8IGNvbnRlbnRab29tU2NhbGUoc2VsZikpOworICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZp
Z3VyYXRpb25WaWV3TGF5b3V0U2l6ZSh2aWV3TGF5b3V0U2l6ZSk7CisgICAgX2xhc3RTZW50Vmll
d0xheW91dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKIH0KIAogLSAodm9pZClfZGlzcGF0Y2hTZXRN
YXhpbXVtVW5vYnNjdXJlZFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSltYXhpbXVtVW5vYnNjdXJl
ZFNpemUKQEAgLTI2MTAsOCArMjYxMCw4IEBAIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2Vk
CiAgICAgW19zY3JvbGxWaWV3IHNldEZyYW1lOmJvdW5kc107CiAKICAgICBpZiAoX2R5bmFtaWNW
aWV3cG9ydFVwZGF0ZU1vZGUgPT0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXpp
bmcpIHsKLSAgICAgICAgaWYgKCFfb3ZlcnJpZGVzTWluaW11bUxheW91dFNpemUpCi0gICAgICAg
ICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpbc2VsZiBhY3RpdmVNaW5p
bXVtTGF5b3V0U2l6ZTpzZWxmLmJvdW5kc11dOworICAgICAgICBpZiAoIV9vdmVycmlkZXNWaWV3
TGF5b3V0U2l6ZSkKKyAgICAgICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXpl
OltzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXV07CiAgICAgICAgIGlmICgh
X292ZXJyaWRlc01heGltdW1Vbm9ic2N1cmVkU2l6ZSkKICAgICAgICAgICAgIFtzZWxmIF9kaXNw
YXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUoYm91bmRzLnNp
emUpXTsKIApAQCAtNDk4NywxNyArNDk4NywxNyBAQCAtICh2b2lkKXJlbW92ZUZyb21TdXBlcnZp
ZXcKIAogLSAoQ0dTaXplKV9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlCiB7Ci0gICAgQVNTRVJU
KF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSk7Ci0gICAgcmV0dXJuIF9taW5pbXVtTGF5b3V0
U2l6ZU92ZXJyaWRlOworICAgIEFTU0VSVChfb3ZlcnJpZGVzVmlld0xheW91dFNpemUpOworICAg
IHJldHVybiBfdmlld0xheW91dFNpemVPdmVycmlkZTsKIH0KIAotLSAodm9pZClfc2V0TWluaW11
bUxheW91dFNpemVPdmVycmlkZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUKKy0g
KHZvaWQpX3NldFZpZXdMYXlvdXRTaXplT3ZlcnJpZGU6KENHU2l6ZSl2aWV3TGF5b3V0U2l6ZU92
ZXJyaWRlCiB7Ci0gICAgX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplID0gWUVTOwotICAgIF9t
aW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlID0gbWluaW11bUxheW91dFNpemVPdmVycmlkZTsKKyAg
ICBfb3ZlcnJpZGVzVmlld0xheW91dFNpemUgPSBZRVM7CisgICAgX3ZpZXdMYXlvdXRTaXplT3Zl
cnJpZGUgPSB2aWV3TGF5b3V0U2l6ZU92ZXJyaWRlOwogCiAgICAgaWYgKF9keW5hbWljVmlld3Bv
cnRVcGRhdGVNb2RlID09IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQot
ICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRNaW5pbXVtTGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9h
dFNpemUobWluaW11bUxheW91dFNpemVPdmVycmlkZSldOworICAgICAgICBbc2VsZiBfZGlzcGF0
Y2hTZXRWaWV3TGF5b3V0U2l6ZTpXZWJDb3JlOjpGbG9hdFNpemUodmlld0xheW91dFNpemVPdmVy
cmlkZSldOwogCiB9CiAKQEAgLTUxNDUsNyArNTE0NSw3IEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0
ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKIAogICAgIF9k
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6UmVz
aXppbmdXaXRoQW5pbWF0aW9uOwogCi0gICAgYXV0byBvbGRNaW5pbXVtTGF5b3V0U2l6ZSA9IFtz
ZWxmIGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOnNlbGYuYm91bmRzXTsKKyAgICBhdXRvIG9sZFZp
ZXdMYXlvdXRTaXplID0gW3NlbGYgYWN0aXZlVmlld0xheW91dFNpemU6c2VsZi5ib3VuZHNdOwog
ICAgIGF1dG8gb2xkTWF4aW11bVVub2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3Vy
ZWRTaXplKHNlbGYsIG9sZEJvdW5kcyk7CiAgICAgaW50MzJfdCBvbGRPcmllbnRhdGlvbiA9IGFj
dGl2ZU9yaWVudGF0aW9uKHNlbGYpOwogICAgIFVJRWRnZUluc2V0cyBvbGRPYnNjdXJlZEluc2V0
cyA9IF9vYnNjdXJlZEluc2V0czsKQEAgLTUxNTMsMTkgKzUxNTMsMTkgQEAgLSAodm9pZClfYmVn
aW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawog
ICAgIHVwZGF0ZUJsb2NrKCk7CiAKICAgICBDR1JlY3QgbmV3Qm91bmRzID0gc2VsZi5ib3VuZHM7
Ci0gICAgYXV0byBuZXdNaW5pbXVtTGF5b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZU1pbmltdW1MYXlv
dXRTaXplOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdWaWV3TGF5b3V0U2l6ZSA9IFtzZWxmIGFj
dGl2ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107CiAgICAgYXV0byBuZXdNYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2VsZiwgbmV3Qm91bmRzKTsK
ICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3JpZW50YXRpb24oc2VsZik7CiAg
ICAgVUlFZGdlSW5zZXRzIG5ld09ic2N1cmVkSW5zZXRzID0gX29ic2N1cmVkSW5zZXRzOwogICAg
IENHUmVjdCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzID0gVUlFZGdlSW5z
ZXRzSW5zZXRSZWN0KG5ld0JvdW5kcywgX29ic2N1cmVkSW5zZXRzKTsKICAgICBDR1JlY3QgY29u
dGVudFZpZXdCb3VuZHMgPSBbX2NvbnRlbnRWaWV3IGJvdW5kc107CiAKLSAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCEoX292ZXJyaWRlc01pbmltdW1MYXlvdXRTaXplICYmIG5ld01pbmltdW1MYXlv
dXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQgc2l6ZSBz
aG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0byBtaW5pbWl6ZSBsYXlvdXRzLiIp
OwotICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykgfHwgbmV3TWluaW11bUxheW91dFNp
emUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZD
b29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50Vmlld0JvdW5kcykpIHsKKyAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCEoX292ZXJyaWRlc1ZpZXdMYXlvdXRTaXplICYmIG5ld1ZpZXdM
YXlvdXRTaXplLmlzRW1wdHkoKSksICJDbGllbnRzIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQgc2l6
ZSBzaG91bGQgbWFpbnRhaW4gYSB2YWxpZCBsYXlvdXQgc2l6ZSB0byBtaW5pbWl6ZSBsYXlvdXRz
LiIpOworICAgIGlmIChDR1JlY3RJc0VtcHR5KG5ld0JvdW5kcykgfHwgbmV3Vmlld0xheW91dFNp
emUuaXNFbXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZD
b29yZGluYXRlcykgfHwgQ0dSZWN0SXNFbXB0eShjb250ZW50Vmlld0JvdW5kcykpIHsKICAgICAg
ICAgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPSBEeW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
OjpOb3RSZXNpemluZzsKICAgICAgICAgW3NlbGYgX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXTsKLSAg
ICAgICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKLSAgICAgICAgICAgIFtzZWxm
IF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld01pbmltdW1MYXlvdXRTaXplXTsKKyAg
ICAgICAgaWYgKF9vdmVycmlkZXNWaWV3TGF5b3V0U2l6ZSkKKyAgICAgICAgICAgIFtzZWxmIF9k
aXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKICAgICAgICAgaWYg
KF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpCiAgICAgICAgICAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemU6V2ViQ29yZTo6RmxvYXRTaXplKG5ld01heGlt
dW1Vbm9ic2N1cmVkU2l6ZSldOwogICAgICAgICBpZiAoX292ZXJyaWRlc0ludGVyZmFjZU9yaWVu
dGF0aW9uKQpAQCAtNTE3Niw3ICs1MTc2LDcgQEAgLSAodm9pZClfYmVnaW5BbmltYXRlZFJlc2l6
ZVdpdGhVcGRhdGVzOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogICAgIH0KIAogICAgIGlm
IChDR1JlY3RFcXVhbFRvUmVjdChvbGRCb3VuZHMsIG5ld0JvdW5kcykKLSAgICAgICAgJiYgb2xk
TWluaW11bUxheW91dFNpemUgPT0gbmV3TWluaW11bUxheW91dFNpemUKKyAgICAgICAgJiYgb2xk
Vmlld0xheW91dFNpemUgPT0gbmV3Vmlld0xheW91dFNpemUKICAgICAgICAgJiYgb2xkTWF4aW11
bVVub2JzY3VyZWRTaXplID09IG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZQogICAgICAgICAmJiBv
bGRPcmllbnRhdGlvbiA9PSBuZXdPcmllbnRhdGlvbgogICAgICAgICAmJiBVSUVkZ2VJbnNldHNF
cXVhbFRvRWRnZUluc2V0cyhvbGRPYnNjdXJlZEluc2V0cywgbmV3T2JzY3VyZWRJbnNldHMpKSB7
CkBAIC01MTk2LDEzICs1MTk2LDEzIEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRo
VXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBbX3Jlc2l6ZUFuaW1hdGlv
blZpZXcgYWRkU3VidmlldzpbX2NvbnRlbnRWaWV3IHVuc2NhbGVkVmlld11dOwogCiAgICAgQ0dT
aXplIGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzID0gY29udGVudFZpZXdCb3Vu
ZHMuc2l6ZTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0TWluaW11bVpvb21TY2FsZTpzdGQ6Om1pbihu
ZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3Q29v
cmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xsVmlldyBtaW5pbXVtWm9vbVNjYWxlXSldOwotICAgIFtf
c2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOnN0ZDo6bWF4KG5ld01pbmltdW1MYXlvdXRT
aXplLndpZHRoKCkgLyBjb250ZW50U2l6ZUluQ29udGVudFZpZXdDb29yZGluYXRlcy53aWR0aCwg
W19zY3JvbGxWaWV3IG1heGltdW1ab29tU2NhbGVdKV07CisgICAgW19zY3JvbGxWaWV3IHNldE1p
bmltdW1ab29tU2NhbGU6c3RkOjptaW4obmV3Vmlld0xheW91dFNpemUud2lkdGgoKSAvIGNvbnRl
bnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBbX3Njcm9sbFZpZXcgbWluaW11
bVpvb21TY2FsZV0pXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0TWF4aW11bVpvb21TY2FsZTpzdGQ6
Om1heChuZXdWaWV3TGF5b3V0U2l6ZS53aWR0aCgpIC8gY29udGVudFNpemVJbkNvbnRlbnRWaWV3
Q29vcmRpbmF0ZXMud2lkdGgsIFtfc2Nyb2xsVmlldyBtYXhpbXVtWm9vbVNjYWxlXSldOwogCiAg
ICAgLy8gQ29tcHV0ZSB0aGUgbmV3IHNjYWxlIHRvIGtlZXAgdGhlIGN1cnJlbnQgY29udGVudCB3
aWR0aCBpbiB0aGUgc2Nyb2xsdmlldy4KICAgICBDR0Zsb2F0IG9sZFdlYlZpZXdXaWR0aEluQ29u
dGVudFZpZXdDb29yZGluYXRlcyA9IG9sZFVub2JzY3VyZWRDb250ZW50UmVjdC53aWR0aCgpOwog
ICAgIENHRmxvYXQgdmlzaWJsZUNvbnRlbnRWaWV3V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlcyA9
IHN0ZDo6bWluKGNvbnRlbnRTaXplSW5Db250ZW50Vmlld0Nvb3JkaW5hdGVzLndpZHRoLCBvbGRX
ZWJWaWV3V2lkdGhJbkNvbnRlbnRWaWV3Q29vcmRpbmF0ZXMpOwotICAgIENHRmxvYXQgdGFyZ2V0
U2NhbGUgPSBuZXdNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gdmlzaWJsZUNvbnRlbnRWaWV3
V2lkdGhJbkNvbnRlbnRDb29yZGluYXRlczsKKyAgICBDR0Zsb2F0IHRhcmdldFNjYWxlID0gbmV3
Vmlld0xheW91dFNpemUud2lkdGgoKSAvIHZpc2libGVDb250ZW50Vmlld1dpZHRoSW5Db250ZW50
Q29vcmRpbmF0ZXM7CiAgICAgQ0dGbG9hdCByZXNpemVBbmltYXRpb25WaWV3QW5pbWF0aW9uU2Nh
bGUgPSB0YXJnZXRTY2FsZSAvIGNvbnRlbnRab29tU2NhbGUoc2VsZik7CiAgICAgW19yZXNpemVB
bmltYXRpb25WaWV3IHNldFRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShyZXNp
emVBbmltYXRpb25WaWV3QW5pbWF0aW9uU2NhbGUsIHJlc2l6ZUFuaW1hdGlvblZpZXdBbmltYXRp
b25TY2FsZSldOwogCkBAIC01MjQyLDExICs1MjQyLDExIEBAIC0gKHZvaWQpX2JlZ2luQW5pbWF0
ZWRSZXNpemVXaXRoVXBkYXRlczoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKICAgICBVSUVk
Z2VJbnNldHMgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzID0gW3NlbGYgX2NvbXB1dGVkVW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRdOwogICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50IHVub2JzY3Vy
ZWRTYWZlQXJlYUluc2V0c0V4dGVudCh1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMudG9wLCB1bm9i
c2N1cmVkU2FmZUFyZWFJbnNldHMucmlnaHQsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5ib3R0
b20sIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cy5sZWZ0KTsKIAotICAgIF9sYXN0U2VudE1pbmlt
dW1MYXlvdXRTaXplID0gbmV3TWluaW11bUxheW91dFNpemU7CisgICAgX2xhc3RTZW50Vmlld0xh
eW91dFNpemUgPSBuZXdWaWV3TGF5b3V0U2l6ZTsKICAgICBfbGFzdFNlbnRNYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgX2xhc3RTZW50RGV2aWNl
T3JpZW50YXRpb24gPSBuZXdPcmllbnRhdGlvbjsKIAotICAgIF9wYWdlLT5keW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKG5ld01pbmltdW1MYXlvdXRTaXplLCBuZXdNYXhpbXVtVW5vYnNjdXJlZFNp
emUsIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250
ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0c0V4dGVudCwgdGFyZ2V0U2NhbGUsIG5ld09yaWVudGF0aW9u
KTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShuZXdWaWV3TGF5b3V0U2l6
ZSwgbmV3TWF4aW11bVVub2JzY3VyZWRTaXplLCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5h
dGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVk
UmVjdEluU2VsZkNvb3JkaW5hdGVzLCB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHNFeHRlbnQsIHRh
cmdldFNjYWxlLCBuZXdPcmllbnRhdGlvbik7CiAgICAgaWYgKFdlYktpdDo6RHJhd2luZ0FyZWFQ
cm94eSogZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAgZHJhd2lu
Z0FyZWEtPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShuZXdCb3VuZHMuc2l6ZSkpOwogfQpAQCAt
NTMxMSwxMiArNTMxMSwxMiBAQCAtICh2b2lkKV9lbmRBbmltYXRlZFJlc2l6ZQogICAgIFtzZWxm
IF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07CiAKICAgICBDR1JlY3QgbmV3Qm91
bmRzID0gc2VsZi5ib3VuZHM7Ci0gICAgYXV0byBuZXdNaW5pbXVtTGF5b3V0U2l6ZSA9IFtzZWxm
IGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplOm5ld0JvdW5kc107CisgICAgYXV0byBuZXdWaWV3TGF5
b3V0U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOm5ld0JvdW5kc107CiAgICAgYXV0
byBuZXdNYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBhY3RpdmVNYXhpbXVtVW5vYnNjdXJlZFNpemUo
c2VsZiwgbmV3Qm91bmRzKTsKICAgICBpbnQzMl90IG5ld09yaWVudGF0aW9uID0gYWN0aXZlT3Jp
ZW50YXRpb24oc2VsZik7CiAKLSAgICBpZiAoIV9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplIHx8
IG5ld01pbmltdW1MYXlvdXRTaXplICE9IF9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplLnZhbHVl
KCkpCi0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldE1pbmltdW1MYXlvdXRTaXplOm5ld01pbmlt
dW1MYXlvdXRTaXplXTsKKyAgICBpZiAoIV9sYXN0U2VudFZpZXdMYXlvdXRTaXplIHx8IG5ld1Zp
ZXdMYXlvdXRTaXplICE9IF9sYXN0U2VudFZpZXdMYXlvdXRTaXplLnZhbHVlKCkpCisgICAgICAg
IFtzZWxmIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOm5ld1ZpZXdMYXlvdXRTaXplXTsKICAg
ICBpZiAoIV9sYXN0U2VudE1heGltdW1Vbm9ic2N1cmVkU2l6ZSB8fCBuZXdNYXhpbXVtVW5vYnNj
dXJlZFNpemUgIT0gX2xhc3RTZW50TWF4aW11bVVub2JzY3VyZWRTaXplLnZhbHVlKCkpCiAgICAg
ICAgIFtzZWxmIF9kaXNwYXRjaFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZTpXZWJDb3JlOjpGbG9h
dFNpemUobmV3TWF4aW11bVVub2JzY3VyZWRTaXplKV07CiAgICAgaWYgKCFfbGFzdFNlbnREZXZp
Y2VPcmllbnRhdGlvbiB8fCBuZXdPcmllbnRhdGlvbiAhPSBfbGFzdFNlbnREZXZpY2VPcmllbnRh
dGlvbi52YWx1ZSgpKQpAQCAtNTQxNywyMiArNTQxNywxNiBAQCAtICh2b2lkKV9zbmFwc2hvdFJl
Y3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9h
dClpbQogICAgIH0pOwogfQogCi0tICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVtTGF5b3V0
U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUKLXsKLSAgICBVTlVTRURfUEFSQU0obWluaW11bUxheW91dFNpemVGb3JNaW5pbWFs
VUkpOwotICAgIFtzZWxmIF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91
dFNpemU6bWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6bWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwotfQotCiAtICh2b2lkKV9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6
ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlCiB7Ci0gICAgW3NlbGYgX3NldE1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGU6
bWluaW11bUxheW91dFNpemVdOworICAgIFtzZWxmIF9zZXRWaWV3TGF5b3V0U2l6ZU92ZXJyaWRl
Om1pbmltdW1MYXlvdXRTaXplXTsKICAgICBbc2VsZiBfc2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGVdOwogfQogCiAtICh2b2lkKV9j
bGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycwogewotICAgIF9vdmVycmlkZXNNaW5pbXVtTGF5
b3V0U2l6ZSA9IE5POwotICAgIF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlID0gQ0dTaXplWmVy
bzsKKyAgICBfb3ZlcnJpZGVzVmlld0xheW91dFNpemUgPSBOTzsKKyAgICBfdmlld0xheW91dFNp
emVPdmVycmlkZSA9IENHU2l6ZVplcm87CiAKICAgICBfb3ZlcnJpZGVzTWF4aW11bVVub2JzY3Vy
ZWRTaXplID0gTk87CiAgICAgX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlID0gQ0dTaXpl
WmVybzsKQEAgLTU2MjIsMTQgKzU2MTYsMTQgQEAgLSAoQk9PTClfYXV0b21hdGljYWxseUFkanVz
dHNDb250ZW50SW5zZXRzCiAKIC0gKENHRmxvYXQpX21pbmltdW1MYXlvdXRXaWR0aAogewotICAg
IHJldHVybiBfcGFnZS0+bWluaW11bUxheW91dFNpemUoKS53aWR0aCgpOworICAgIHJldHVybiBf
cGFnZS0+dmlld0xheW91dFNpemUoKS53aWR0aCgpOwogfQogCiAtICh2b2lkKV9zZXRNaW5pbXVt
TGF5b3V0V2lkdGg6KENHRmxvYXQpd2lkdGgKIHsKICAgICBCT09MIGV4cGFuZHNUb0ZpdCA9IHdp
ZHRoID4gMDsKIAotICAgIF9wYWdlLT5zZXRNaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRT
aXplKHdpZHRoLCAwKSk7CisgICAgX3BhZ2UtPnNldFZpZXdMYXlvdXRTaXplKFdlYkNvcmU6Oklu
dFNpemUod2lkdGgsIDApKTsKICAgICBfcGFnZS0+c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKCFl
eHBhbmRzVG9GaXQpOwogCiAgICAgX2ltcGwtPnNldENsaXBzVG9WaXNpYmxlUmVjdChleHBhbmRz
VG9GaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKaW5kZXggNzA3ZGY5MjE3YmNkZjQ3MWIxODAwY2E5MWVmM2NhMzYyNjdh
ODA4MC4uNGRjYjVkNmM5MTk1MzA2ZDUwMjE0NjdlNGM2MTYwNDU3NGI5NTRmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0yMjUsMTAgKzIyNSw2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tS
ZWN0RWRnZSkgewogCiAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29v
cmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbWFnZVdpZHRoIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKENHSW1hZ2VSZWYpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0vLyBEZXBy
ZWNhdGVkOiBVc2UgW19vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNp
emU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6XSBpbnN0ZWFkLgotLy8gVGhpcyBmdW5j
dGlvbiBpcyBrZXB0IGZvciBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIGlPUyA4LjAsIGl0IGNh
biBiZSByZW1vdmVkIGFmdGVyIHRoZSBiaW5jb21wYXQgd2luZG93LgotLSAodm9pZClfb3ZlcnJp
ZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxh
eW91dFNpemUgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUk6KENHU2l6ZSltaW5pbXVtTGF5
b3V0U2l6ZUZvck1pbmltYWxVSSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXpl
KW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIi1fb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
Om1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg4LjAsIDkuMCkpOwotCiAtICh2
b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6
ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXpl
KW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkp
OwogCiAtICh2b2lkKV9jbGVhck92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycyBXS19BUElfQVZBSUxB
QkxFKGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCmluZGV4IDFhYjRkMmI3ZTI2MDE4NTEzZTNhZjE1NGYxMzVkOTQ3ZTk2OGM4NTYuLmIz
ZmQzNDYyZTNkN2RiYjRiM2I0ZWMzYTE4ZWY4NjM0N2U2ODY1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoQ0dTaXplIG1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCkKIHsKICAgICBib29sIGV4cGFuZHNUb0ZpdCA9IG1pbmltdW1T
aXplRm9yQXV0b0xheW91dC53aWR0aCA+IDA7CiAKLSAgICBtX3BhZ2UtPnNldE1pbmltdW1MYXlv
dXRTaXplKFdlYkNvcmU6OkludFNpemUobWluaW11bVNpemVGb3JBdXRvTGF5b3V0KSk7CisgICAg
bV9wYWdlLT5zZXRWaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKG1pbmltdW1TaXplRm9y
QXV0b0xheW91dCkpOwogICAgIG1fcGFnZS0+c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKCFleHBh
bmRzVG9GaXQpOwogCiAgICAgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7CkBA
IC0xNzUzLDcgKzE3NTMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1
dG9MYXlvdXQoQ0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkKIAogQ0dTaXplIFdlYlZp
ZXdJbXBsOjptaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdAogewotICAgIHJldHVybiBt
X3BhZ2UtPm1pbmltdW1MYXlvdXRTaXplKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+dmlld0xheW91
dFNpemUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVp
Z2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlv
dXQpCkBAIC0xNzczLDcgKzE3NzMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWND
b250ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUpCiAgICAgLy8gc28gdGhhdCBh
dXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAogICAgIENHU2l6
ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoID0gaW50cmlu
c2ljQ29udGVudFNpemU7Ci0gICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9w
YWdlLT5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkpCisgICAgaWYgKGludHJpbnNpY0NvbnRl
bnRTaXplLndpZHRoIDwgbV9wYWdlLT52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkpCiAgICAgICAg
IGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGgud2lkdGggPSBO
U1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKIAogICAgIG1faW50cmluc2ljQ29udGVudFNpemUgPSBp
bnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDI4NGM5OGNhYmE1YTM0MTcx
Y2Y3ZTNmZTIwNzgwYjA4NDIxNDVhYzcuLmFlYTk0OTUyYTgwZmNiNDI0ODU3MDM3MjM4ZGQyNmYz
YjkwYzJlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSB7IHJldHVybiBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKDUwMCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNlRGlkQ2hh
bmdlKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1pbmltdW1MYXlvdXRTaXplRGlkQ2hhbmdlKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHZpZXdMYXlvdXRTaXplRGlkQ2hhbmdlKCkgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0
UG9pbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSwg
V2ViQ29yZTo6RmxvYXRQb2ludCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCA2YWNjY2UwZjlmMjBiMzM0MzVkOGNmMjU3MTdjZjE5MDFmZTFmOTdkLi5j
OWI0OGNiOGZhOTI5NDU2OGFkZWQ3YmU3MmZjMmEzYjBkMjEwNTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYwMzIsNyArNjAzMiw3IEBAIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAg
IHBhcmFtZXRlcnMubWVkaWFWb2x1bWUgPSBtX21lZGlhVm9sdW1lOwogICAgIHBhcmFtZXRlcnMu
bXV0ZWQgPSBtX211dGVkU3RhdGU7CiAgICAgcGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbklu
V2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwotICAgIHBhcmFtZXRlcnMubWlu
aW11bUxheW91dFNpemUgPSBtX21pbmltdW1MYXlvdXRTaXplOworICAgIHBhcmFtZXRlcnMudmll
d0xheW91dFNpemUgPSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIHBhcmFtZXRlcnMuYXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9IG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmll
d0hlaWdodDsKICAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMg
PSBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgcGFyYW1ldGVycy5zY3Jv
bGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKQEAgLTYwNTksNyAr
NjA1OSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMudGV4dEF1dG9zaXppbmdXaWR0aCA9IHRleHRB
dXRvc2l6aW5nV2lkdGgoKTsKICAgICBwYXJhbWV0ZXJzLm1pbWVUeXBlc1dpdGhDdXN0b21Db250
ZW50UHJvdmlkZXJzID0gbV9wYWdlQ2xpZW50Lm1pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJv
dmlkZXJzKCk7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyA9IG1f
Zm9yY2VBbHdheXNVc2VyU2NhbGFibGU7Ci0gICAgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxh
eW91dFNpemU7CisgICAgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0
U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CiAgICAgcGFyYW1l
dGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICNl
bmRpZgogCkBAIC02NTQ5LDIxICs2NTQ5LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUERG
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoU3RyaW5nJiYgc3VnZ2VzdGVkRmlsZW5hbWUsIFVSCiAg
ICAgICAgIEFQSTo6RGF0YTo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJl
bmNlLnNpemUoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11bUxh
eW91dFNpemUoY29uc3QgSW50U2l6ZSYgbWluaW11bUxheW91dFNpemUpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0Vmlld0xheW91dFNpemUoY29uc3QgSW50U2l6ZSYgdmlld0xheW91dFNpemUpCiB7
Ci0gICAgaWYgKG1fbWluaW11bUxheW91dFNpemUgPT0gbWluaW11bUxheW91dFNpemUpCisgICAg
aWYgKG1fdmlld0xheW91dFNpemUgPT0gdmlld0xheW91dFNpemUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBtX3Zp
ZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpT
ZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSksIG1fcGFnZUlEKTsKLSAgICBt
X2RyYXdpbmdBcmVhLT5taW5pbXVtTGF5b3V0U2l6ZURpZENoYW5nZSgpOworICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Vmlld0xheW91dFNpemUodmlld0xheW91dFNp
emUpLCBtX3BhZ2VJRCk7CisgICAgbV9kcmF3aW5nQXJlYS0+dmlld0xheW91dFNpemVEaWRDaGFu
Z2UoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgaWYgKG1fbWluaW11bUxheW91dFNpemUud2lk
dGgoKSA8PSAwKQorICAgIGlmIChtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkgPD0gMCkKICAgICAg
ICAgaW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoSW50U2l6ZSgtMSwgLTEpKTsKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5MTEyMTBlYTEw
YjBiYzBkNzhlYjI0ZGNiMzQ5NTk1OTEzYTlhOGQ4Li45Yzk0NDI5MDllYmJlMDY5ZWQwNDNkZDcx
ZWQ0NjRjYzU2Y2I0NWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNTQ1LDEwICs1NDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxs
U3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CiAK
LSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVt
VW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENv
bnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRh
dGlvbik7CisgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4
aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24pOwogICAgIHZvaWQgc3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoKTsK
IAotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNl
dE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2
b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIGludDMyX3QgZGV2aWNlT3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uOyB9CkBAIC0xMDc2
LDggKzEwNzYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRDb2xvclBpY2tlcigpOwogI2VuZGlm
CiAKLSAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1MYXlvdXRTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9taW5pbXVtTGF5b3V0U2l6ZTsgfQotICAgIHZvaWQgc2V0TWluaW11bUxheW91dFNpemUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIFdlYkNvcmU6OkludFNpemUgdmlld0xheW91
dFNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdMYXlvdXRTaXplOyB9CisgICAgdm9pZCBzZXRW
aWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAKICAgICBib29sIGF1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2F1dG9TaXpp
bmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCk7CkBAIC0yMDc1LDcgKzIwNzUsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0IHsgZmFsc2UgfTsKLSAg
ICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11bUxheW91dFNpemU7CisgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX3ZpZXdMYXlvdXRTaXplOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6
ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAgLy8gVmlzdWFsIHZp
ZXdwb3J0cwpAQCAtMjEzNCw3ICsyMTM0LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzPiBtX2RlZmVycmVk
Tm9kZUFzc2lzdGFuY2VBcmd1bWVudHM7CiAgICAgYm9vbCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxh
YmxlIHsgZmFsc2UgfTsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV92aWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV92aWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9t
YXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjUwYWIyYzI2MjVlYzg2NWZmYmM5MWRm
ODE3NzdlNjg0ODFlODIwNi4uNzEzYjJmODVlMzg3NzNhZmFkOGZmYTUxNTczODMyOGVjZDQ2MTYy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om92ZXJmbG93U2Nyb2xsRGlk
RW5kU2Nyb2xsKCkKICAgICBtX3BhZ2VDbGllbnQub3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwo
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENv
bnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRv
dWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xh
eW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4
dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLAogCiAgICAg
bV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvclRhcmdldCA9IHRydWU7CiAgICAg
bV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvckxheWVyVHJlZUNvbW1pdCA9IHRy
dWU7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKG1pbmltdW1MYXlvdXRTaXplLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdldFVub2Jz
Y3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0
cywgdGFyZ2V0U2NhbGUsIGRldmljZU9yaWVudGF0aW9uLCArK21fY3VycmVudER5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJRCksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUodmlld0xheW91dFNpemUsIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSwgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCB0YXJnZXRTY2FsZSwgZGV2aWNlT3JpZW50YXRpb24s
ICsrbV9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKSwgbV9wYWdlSUQpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoKQpA
QCAtMzU0LDEyICszNTQsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9uaXplRHluYW1p
Y1ZpZXdwb3J0VXBkYXRlKCkKICAgICBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5n
Rm9yTGF5ZXJUcmVlQ29tbWl0ID0gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHNpemUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
Vmlld0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQogewotICAgIG1f
dmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUgPSBzaXplOworICAgIG1fdmll
d3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgPSBzaXplOwogCiAgICAgaWYgKGlzVmFs
aWQoKSkKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShzaXplKSwgbV9wYWdlSUQpOworICAg
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFZpZXdwb3J0Q29uZmln
dXJhdGlvblZpZXdMYXlvdXRTaXplKHNpemUpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShib29sIHVzZXJTY2FsYWJsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDQwYjFjOWNiMjAxYzJjNTVjYjRiNzYz
OWMyNzY5YjI0ZmVhYjI4YzIuLjNjOTdjMGMwMmM2ZTA4NmUwNTRiOTk3MTE4ZmY2ODUyYjdkMmU1
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbG9yU3BhY2VE
aWRDaGFuZ2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIG1pbmltdW1MYXlvdXRTaXplRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB2aWV3TGF5b3V0U2l6ZURpZENoYW5nZSgpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CkBAIC03MSw3ICs3MSw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZTsKIAogICAgIC8v
IFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3Mu
Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50TWluaW11bUxheW91dFNpemU7CisgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50Vmlld0xheW91dFNpemU7CiAKICAgICBDYWxsYmFj
a01hcCBtX2NhbGxiYWNrczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmlu
ZGV4IDMyM2I1ZGNjYTQyMTFmZGM4NDQwZTE3MjM0ZjgyMWEwMzcyMTQxZDUuLjI1ZGY2NGU0ZDhl
OTI2NmQ4YWVhOGU3ZjYxN2M0YzBmYzgxYzAwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5Lm1tCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6Y29sb3JTcGFjZURpZENoYW5nZSgpCiAgICAgbV93ZWJQYWdlUHJveHkucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRDb2xvclNwYWNlKG1fd2ViUGFn
ZVByb3h5LmNvbG9yU3BhY2UoKSksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKIH0KIAotdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjptaW5pbXVtTGF5b3V0U2l6ZURp
ZENoYW5nZSgpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnZpZXdM
YXlvdXRTaXplRGlkQ2hhbmdlKCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEyLDExICsxMTIsMTEgQEAgdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSgpCiAKICAgICBtX2lz
V2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7CiAKLSAgICBJbnRTaXplIG1pbmlt
dW1MYXlvdXRTaXplID0gbV93ZWJQYWdlUHJveHkubWluaW11bUxheW91dFNpemUoKTsKKyAgICBJ
bnRTaXplIHZpZXdMYXlvdXRTaXplID0gbV93ZWJQYWdlUHJveHkudmlld0xheW91dFNpemUoKTsK
IAogICAgIC8vIElmIHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hpbGUgd2Ugd2VyZSB3YWl0aW5n
IGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhlIHdlYiBwcm9jZXNzLAogICAg
IC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJlLgotICAgIGlmIChtX2xhc3RT
ZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1MYXlvdXRTaXplICE9IG1pbmlt
dW1MYXlvdXRTaXplKQorICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0
U2VudFZpZXdMYXlvdXRTaXplICE9IHZpZXdMYXlvdXRTaXplKQogICAgICAgICBzZW5kVXBkYXRl
R2VvbWV0cnkoKTsKIH0KIApAQCAtMTI4LDEzICsxMjgsMTMgQEAgdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZSgpCiAK
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6aW50cmluc2ljQ29udGVu
dFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgbmV3SW50cmluc2ljQ29udGVudFNpemUpCiB7
Ci0gICAgaWYgKG1fd2ViUGFnZVByb3h5Lm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSA+IDAp
CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LnZpZXdMYXlvdXRTaXplKCkud2lkdGgoKSA+IDApCiAg
ICAgICAgIG1fd2ViUGFnZVByb3h5LmludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKG5ld0lu
dHJpbnNpY0NvbnRlbnRTaXplKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KCkKIHsKLSAgICBtX2xhc3RTZW50TWlu
aW11bUxheW91dFNpemUgPSBtX3dlYlBhZ2VQcm94eS5taW5pbXVtTGF5b3V0U2l6ZSgpOworICAg
IG1fbGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IG1fd2ViUGFnZVByb3h5LnZpZXdMYXlvdXRTaXpl
KCk7CiAgICAgbV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9pc1dhaXRpbmdGb3JEaWRV
cGRhdGVHZW9tZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA3NTU4MDczNjdlZWFmYzFkMGMxOTdlMWIxNDc3MGFlZDY3M2MwNTdlLi4zMzhiNjk5MTRh
ODQ1MWJjODRiZGE3NmEyZWU5ZjBlYzM0Y2UyMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTE0MjAsMTAgKzE0MjAsMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgICAgIHdlYlBhZ2UtPmZp
eGVkTGF5b3V0U2l6ZSgpLCBmaXhlZFZpc2libGVDb250ZW50UmVjdCwgc2hvdWxkVXNlRml4ZWRM
YXlvdXQsCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJNb2RlLCBob3Jpem9udGFsTG9jaywg
dmVydGljYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbExvY2spOwogCi0gICAgaWYgKGludCBtaW5p
bXVtTGF5b3V0V2lkdGggPSB3ZWJQYWdlLT5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkpIHsK
LSAgICAgICAgaW50IG1pbmltdW1MYXlvdXRIZWlnaHQgPSBzdGQ6Om1heCh3ZWJQYWdlLT5taW5p
bXVtTGF5b3V0U2l6ZSgpLmhlaWdodCgpLCAxKTsKKyAgICBpZiAoaW50IHZpZXdMYXlvdXRXaWR0
aCA9IHdlYlBhZ2UtPnZpZXdMYXlvdXRTaXplKCkud2lkdGgoKSkgeworICAgICAgICBpbnQgdmll
d0xheW91dEhlaWdodCA9IHN0ZDo6bWF4KHdlYlBhZ2UtPnZpZXdMYXlvdXRTaXplKCkuaGVpZ2h0
KCksIDEpOwogICAgICAgICBpbnQgbWF4aW11bVNpemUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dD46Om1heCgpOwotICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5lbmFibGVB
dXRvU2l6ZU1vZGUodHJ1ZSwgSW50U2l6ZShtaW5pbXVtTGF5b3V0V2lkdGgsIG1pbmltdW1MYXlv
dXRIZWlnaHQpLCBJbnRTaXplKG1heGltdW1TaXplLCBtYXhpbXVtU2l6ZSkpOworICAgICAgICBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgSW50
U2l6ZSh2aWV3TGF5b3V0V2lkdGgsIHZpZXdMYXlvdXRIZWlnaHQpLCBJbnRTaXplKG1heGltdW1T
aXplLCBtYXhpbXVtU2l6ZSkpOwogCiAgICAgICAgIGlmICh3ZWJQYWdlLT5hdXRvU2l6aW5nU2hv
dWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUo
KS0+dmlldygpLT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCh3ZWJQYWdlLT5zaXplKCku
aGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAppbmRleCBhNmRiMGU1
YjI3NGNiZDVlOTM2Yjc0NTJlMGQxOGIyYTFlM2M4OTBkLi40ZTE3YThmMmJhZTI3ODk2MGU0ZTcy
ZWQxZDIwMDE1MDAzZDYyYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcApA
QCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6Y29s
bGVjdEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShGCiAgICAgICAgICAgICB0
YXJnZXRTY2FsZSA9IHRleHRMZWdpYmlsaXR5U2NhbGVzLT5zZWNvbmQ7CiAKICAgICAgICAgRmxv
YXRSZWN0IHRhcmdldFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB7IG9yaWdpbiwgRmxvYXRTaXpl
KCkgfTsKLSAgICAgICAgdGFyZ2V0UmVjdEluQ29udGVudENvb3JkaW5hdGVzLmluZmxhdGUobV93
ZWJQYWdlLnZpZXdwb3J0Q29uZmlndXJhdGlvbigpLnZpZXdTaXplKCkgLyAoMiAqIHRhcmdldFNj
YWxlKSk7CisgICAgICAgIHRhcmdldFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcy5pbmZsYXRlKG1f
d2ViUGFnZS52aWV3cG9ydENvbmZpZ3VyYXRpb24oKS52aWV3TGF5b3V0U2l6ZSgpIC8gKDIgKiB0
YXJnZXRTY2FsZSkpOwogCiAgICAgICAgIGRpc3BhdGNoRGlkQ29sbGVjdEdlb21ldHJ5Rm9yU21h
cnRNYWduaWZpY2F0aW9uR2VzdHVyZShvcmlnaW4sIHRhcmdldFJlY3RJbkNvbnRlbnRDb29yZGlu
YXRlcywgdmlzaWJsZUNvbnRlbnRSZWN0LCB0cnVlLCB2aWV3cG9ydE1pbmltdW1TY2FsZSwgdmll
d3BvcnRNYXhpbXVtU2NhbGUpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBlYmMyMTU4NzI3YjVkYTdmMWFhMzc5
MjI4YTg4ZmJkNzQwZDlkMGQuLjY2OTlkZjA2YWY3ZmQ5MTA4M2ZlOWVlZDM2MmM5MmI2YWQxMzk5
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC01MTAsNyArNTEwLDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgdXBkYXRlSXNJbldpbmRv
dyh0cnVlKTsKIAotICAgIHNldE1pbmltdW1MYXlvdXRTaXplKHBhcmFtZXRlcnMubWluaW11bUxh
eW91dFNpemUpOworICAgIHNldFZpZXdMYXlvdXRTaXplKHBhcmFtZXRlcnMudmlld0xheW91dFNp
emUpOwogICAgIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQocGFyYW1ldGVy
cy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KTsKICAgICBzZXRWaWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKHBhcmFtZXRlcnMudmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0cyk7CiAgICAgCkBAIC02MTIsNyArNjEyLDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWlu
aW11bUxheW91dFNpemUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5
b3V0U2l6ZSk7CisgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUocGFy
YW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSk7CiAgICAgc2V0TWF4
aW11bVVub2JzY3VyZWRTaXplKHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplKTsKICNl
bmRpZgogfQpAQCAtNDk5NywyMyArNDk5NywyMyBAQCB2b2lkIFdlYlBhZ2U6OnNldEFsd2F5c1No
b3dzVmVydGljYWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKICAg
ICB2aWV3LT5zZXRWZXJ0aWNhbFNjcm9sbGJhck1vZGUoYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9s
bGVyID8gU2Nyb2xsYmFyQWx3YXlzT24gOiBtX21haW5GcmFtZUlzU2Nyb2xsYWJsZSA/IFNjcm9s
bGJhckF1dG8gOiBTY3JvbGxiYXJBbHdheXNPZmYsIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxl
ciB8fCAhbV9tYWluRnJhbWVJc1Njcm9sbGFibGUpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldE1p
bmltdW1MYXlvdXRTaXplKGNvbnN0IEludFNpemUmIG1pbmltdW1MYXlvdXRTaXplKQordm9pZCBX
ZWJQYWdlOjpzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiB2aWV3TGF5b3V0U2l6ZSkK
IHsKLSAgICBpZiAobV9taW5pbXVtTGF5b3V0U2l6ZSA9PSBtaW5pbXVtTGF5b3V0U2l6ZSkKKyAg
ICBpZiAobV92aWV3TGF5b3V0U2l6ZSA9PSB2aWV3TGF5b3V0U2l6ZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IG1pbmltdW1MYXlvdXRTaXplOwotICAgIGlm
IChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIDw9IDApIHsKKyAgICBtX3ZpZXdMYXlvdXRTaXpl
ID0gdmlld0xheW91dFNpemU7CisgICAgaWYgKHZpZXdMYXlvdXRTaXplLndpZHRoKCkgPD0gMCkg
ewogICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZUF1dG9TaXpl
TW9kZShmYWxzZSwgSW50U2l6ZSgpLCBJbnRTaXplKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaW50IG1pbmltdW1MYXlvdXRXaWR0aCA9IG1pbmltdW1MYXlvdXRTaXplLndpZHRo
KCk7Ci0gICAgaW50IG1pbmltdW1MYXlvdXRIZWlnaHQgPSBzdGQ6Om1heChtaW5pbXVtTGF5b3V0
U2l6ZS5oZWlnaHQoKSwgMSk7CisgICAgaW50IHZpZXdMYXlvdXRXaWR0aCA9IHZpZXdMYXlvdXRT
aXplLndpZHRoKCk7CisgICAgaW50IHZpZXdMYXlvdXRIZWlnaHQgPSBzdGQ6Om1heCh2aWV3TGF5
b3V0U2l6ZS5oZWlnaHQoKSwgMSk7CiAKICAgICBpbnQgbWF4aW11bVNpemUgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGludD46Om1heCgpOwogCi0gICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmll
dygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgSW50U2l6ZShtaW5pbXVtTGF5b3V0V2lkdGgs
IG1pbmltdW1MYXlvdXRIZWlnaHQpLCBJbnRTaXplKG1heGltdW1TaXplLCBtYXhpbXVtU2l6ZSkp
OworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlQXV0b1NpemVNb2Rl
KHRydWUsIEludFNpemUodmlld0xheW91dFdpZHRoLCB2aWV3TGF5b3V0SGVpZ2h0KSwgSW50U2l6
ZShtYXhpbXVtU2l6ZSwgbWF4aW11bVNpemUpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRBdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGVhNjUyZmY1ZjMyYTdi
ZThlNzFkMTYyZTVlNGU1N2FhMTdkZjg4ZWYuLjk3ODBjZmM2YzVhZjg0MGNiZGFmYjFkMDkzZWNh
OGU0ZTJlZWYyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTg3NSwxMCArODc1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZpc2liaWxp
dHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNl
dE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2
b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwotICAgIHZvaWQgZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXpl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBp
bnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlSUQpOwogICAgIHZvaWQgc3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoZG91Ymxl
JiBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24s
IHVpbnQ2NF90JiBuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklEKTsKICAgICBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBzY2FsZUZyb21VSVByb2Nlc3MoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbyYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhj
b25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiwgTW9ub3RvbmljVGltZSBvbGRlc3RU
aW1lc3RhbXApOwpAQCAtOTM5LDggKzkzOSw4IEBAIHB1YmxpYzoKICAgICBib29sIGFsd2F5c1No
b3dzSG9yaXpvbnRhbFNjcm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9hbHdheXNTaG93c0hvcml6
b250YWxTY3JvbGxlcjsgfTsKICAgICBib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcigp
IGNvbnN0IHsgcmV0dXJuIG1fYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOyB9OwogCi0gICAg
dm9pZCBzZXRNaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAg
V2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWlu
aW11bUxheW91dFNpemU7IH0KKyAgICB2b2lkIHNldFZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdMYXlvdXRTaXplKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3TGF5b3V0U2l6ZTsgfQogCiAgICAgdm9pZCBzZXRBdXRvU2l6aW5n
U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKTsKICAgICBib29sIGF1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSB7IHJldHVybiBtX2F1dG9TaXppbmdT
aG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KQEAgLTE1OTIsNyArMTU5Miw3IEBAIHByaXZhdGU6
CiAKICAgICBIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1fdHJhY2tlZE5ldHdvcmtSZXNvdXJjZVJl
cXVlc3RJZGVudGlmaWVyczsKIAotICAgIFdlYkNvcmU6OkludFNpemUgbV9taW5pbXVtTGF5b3V0
U2l6ZTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld0xheW91dFNpemU7CiAgICAgYm9vbCBt
X2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCBkMmM2ODRkN2YyZjBmOTdhN2I0MWU5ODNkNWIyZjQ1Y2QwZjhi
ZGNkLi41ZDFjZjZmMTQyMjdkMzE3OTg2MWQ2ZmRkNDI5N2M4ZDdkMGI3N2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTQxLDEwICs0MSwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBLZXlFdmVudChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpCiAgICAgTW91c2VF
dmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpCiAjaWYgUExBVEZPUk0oSU9TKQotICAg
IFNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0
U2l6ZSBzaXplKQorICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKFdl
YkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShXZWJD
b3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uKQotICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6
RmxvYXRTaXplIG1pbmltdW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVu
b2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0
UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3Jl
OjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91Ymxl
IHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlSUQpCisgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpG
bG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNj
dXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdl
YkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0
IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJl
Y3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2Nh
bGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGVJRCkKICAgICBTeW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZSgpIC0+IChk
b3VibGUgbmV3VGFyZ2V0U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbmV3U2Nyb2xsUG9zaXRp
b24sIHVpbnQ2NF90IG5leHRWYWxpZExheWVyVHJlZVRyYW5zYWN0aW9uSUQpCiAKICAgICBIYW5k
bGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFu
c2FjdGlvbklkKQpAQCAtNDA4LDcgKzQwOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKGJvb2wgYWx3
YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpCiAgICAgU2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNj
cm9sbGVyKGJvb2wgYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKQogCi0gICAgU2V0TWluaW11
bUxheW91dFNpemUoV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSkKKyAgICBTZXRW
aWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplIHZpZXdMYXlvdXRTaXplKQogICAgIFNldEF1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiAKICAg
ICBTZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNDc1ODRkNTc5ZDMxZTA4NDhkNjM2
NzMyMmU3Yzc3MjQ3NGRjYzIxLi5mZjc3MGQ2Njc4NTBhZDBjNDQyOTRjNzQ1YWE3M2MyY2E0ZmIz
N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQpAQCAtMjQ1NCwxMCArMjQ1NCwxMCBAQCB2b2lkIFdlYlBhZ2U6OmF1dG9maWxs
TG9naW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBTdHJpbmcmIHBh
cwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5p
bXVtTGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCit2b2lkIFdlYlBhZ2U6OnNldFZp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkK
IHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBhZ2Ug
IiA8PCBtX3BhZ2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRT
aXplICIgPDwgc2l6ZSk7Ci0gICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmlt
dW1MYXlvdXRTaXplKHNpemUpKQorICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0
cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0
aW9uVmlld0xheW91dFNpemUgIiA8PCBzaXplKTsKKyAgICBpZiAobV92aWV3cG9ydENvbmZpZ3Vy
YXRpb24uc2V0Vmlld0xheW91dFNpemUoc2l6ZSkpCiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJh
dGlvbkNoYW5nZWQoKTsKIH0KIApAQCAtMjQ5MiwxMiArMjQ5MiwxMiBAQCB2b2lkIFdlYlBhZ2U6
OnJlc2V0VGV4dEF1dG9zaXppbmcoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVJRCkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9h
dFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0
cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRf
dCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
ZHluYW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOwogICAg
IC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGNvbnRl
bnQgd291bGQgY2hhbmdlIHRoZSBjb250ZW50IHNpemUgb3Igc2Nyb2xsIHBvc2l0aW9uIGZyb20g
SmF2YVNjcmlwdC4KICAgICAvLyBUbyBoYW5kbGUgdGhvc2UgY2FzZXMsIHdlIHdvdWxkIG5lZWQg
dG8gcmVkbyB0aGlzIGNvbXB1dGF0aW9uIG9uIGV2ZXJ5IGNoYW5nZSB1bnRpbCB0aGUgbmV4dCB2
aXNpYmxlIGNvbnRlbnQgcmVjdCB1cGRhdGUuCi0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVS
ZWN0cywgc3RyZWFtIDw8ICJcbldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUgLSBt
aW5pbXVtTGF5b3V0U2l6ZSAiIDw8IG1pbmltdW1MYXlvdXRTaXplIDw8ICIgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QgIiA8PCB0YXJnZXRVbm9ic2N1cmVkUmVjdCA8PCAiIHRhcmdldEV4cG9zZWRDb250
ZW50UmVjdCAiIDw8IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCA8PCAiIHRhcmdldFNjYWxlICIg
PDwgdGFyZ2V0U2NhbGUpOworICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVh
bSA8PCAiXG5XZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIC0gdmlld0xheW91dFNp
emUgIiA8PCB2aWV3TGF5b3V0U2l6ZSA8PCAiIHRhcmdldFVub2JzY3VyZWRSZWN0ICIgPDwgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgIiA8PCB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8IHRhcmdldFNjYWxlKTsK
IAogICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygp
OwogICAgIEludFNpemUgb2xkQ29udGVudFNpemUgPSBmcmFtZVZpZXcuY29udGVudHNTaXplKCk7
CkBAIC0yNTI5LDggKzI1MjksOCBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29ucwogICAgICAgICB9
CiAgICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJX
ZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIHNldHRpbmcgbWluaW11bSBsYXlvdXQg
c2l6ZSB0byAiIDw8IG1pbmltdW1MYXlvdXRTaXplKTsKLSAgICBtX3ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5zZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSk7CisgICAgTE9HX1dJ
VEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlOjpkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlIHNldHRpbmcgdmlldyBsYXlvdXQgc2l6ZSB0byAiIDw8IHZpZXdMYXlvdXRT
aXplKTsKKyAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3TGF5b3V0U2l6ZSh2aWV3
TGF5b3V0U2l6ZSk7CiAgICAgSW50U2l6ZSBuZXdMYXlvdXRTaXplID0gbV92aWV3cG9ydENvbmZp
Z3VyYXRpb24ubGF5b3V0U2l6ZSgpOwogCiAgICAgaWYgKHNldEZpeGVkTGF5b3V0U2l6ZShuZXdM
YXlvdXRTaXplKSkKQEAgLTI2MTIsNyArMjYxMiw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25z
CiAgICAgICAgICAgICAgICAgbmV3RXhwb3NlZENvbnRlbnRSZWN0LnNldFkoMCk7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGJvb2wgbGlrZWx5UmVzcG9uc2l2ZURlc2lnblZpZXdwb3J0
ID0gbmV3TGF5b3V0U2l6ZS53aWR0aCgpID09IG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgJiYg
YXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoc2NhbGUsIDEpOworICAgICAgICAgICAgYm9vbCBs
aWtlbHlSZXNwb25zaXZlRGVzaWduVmlld3BvcnQgPSBuZXdMYXlvdXRTaXplLndpZHRoKCkgPT0g
dmlld0xheW91dFNpemUud2lkdGgoKSAmJiBhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdChzY2Fs
ZSwgMSk7CiAgICAgICAgICAgICBib29sIGNvbnRlbnRCbGVlZHNPdXRzaWRlTGF5b3V0V2lkdGgg
PSBuZXdDb250ZW50U2l6ZS53aWR0aCgpID4gbmV3TGF5b3V0U2l6ZS53aWR0aCgpOwogICAgICAg
ICAgICAgYm9vbCBvcmlnaW5hbFNjcm9sbFBvc2l0aW9uV2FzT25UaGVMZWZ0RWRnZSA9IHRhcmdl
dFVub2JzY3VyZWRSZWN0LngoKSA8PSAwOwogICAgICAgICAgICAgaWYgKGxpa2VseVJlc3BvbnNp
dmVEZXNpZ25WaWV3cG9ydCAmJiBjb250ZW50QmxlZWRzT3V0c2lkZUxheW91dFdpZHRoICYmIG9y
aWdpbmFsU2Nyb2xsUG9zaXRpb25XYXNPblRoZUxlZnRFZGdlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggZjIxMWVmZGNjMDk0MDUwOWNmMjQwMzc4ZTg1
MjhiNjY4MGE3ZTJmNy4uZDAyZWQ3MjFhN2IwYWEyYzlmMDBkZDhkMWI2OTk1NTczZGJjMmQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMjQ5LDcgKzI0
OSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJiBzCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoKQogewotICAg
IGlmICghbV93ZWJQYWdlLm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSkKKyAgICBpZiAoIW1f
d2ViUGFnZS52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKQEAgLTU1
Miw3ICs1NTIsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVH
ZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAgIEludFNpemUgc2l6ZSA9
IHZpZXdTaXplOwogICAgIEludFNpemUgY29udGVudFNpemUgPSBJbnRTaXplKC0xLCAtMSk7CiAK
LSAgICBpZiAoIW1fd2ViUGFnZS5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkgfHwgbV93ZWJQ
YWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSkKKyAgICBpZiAoIW1fd2Vi
UGFnZS52aWV3TGF5b3V0U2l6ZSgpLndpZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7
CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7
CkBAIC01NjIsNyArNTYyLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2Vi
UGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtTGF5b3V0
U2l6ZSgpLndpZHRoKCkgJiYgZnJhbWVWaWV3KSB7CisgICAgaWYgKG1fd2ViUGFnZS52aWV3TGF5
b3V0U2l6ZSgpLndpZHRoKCkgJiYgZnJhbWVWaWV3KSB7CiAgICAgICAgIGNvbnRlbnRTaXplID0g
ZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50cmluc2ljQ29udGVudFNpemUoKTsKICAgICAgICAgc2l6
ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338994</attachid>
            <date>2018-04-27 09:10:36 -0700</date>
            <delta_ts>2018-04-27 11:03:20 -0700</delta_ts>
            <desc>Part 3 (patch for landing)</desc>
            <filename>bug-185050-20180427091036.patch</filename>
            <type>text/plain</type>
            <size>6009</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhZjgxZWU5Y2FjZDIx
YzA5MzIyODkzNjNjOTMwOWM0OWI5NzgyOC4uMzZiOTU1MmM0MmQyYmQ5OTIxYjZmMTllNWNlZTM2
NjgzM2Y2OTc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleHBl
cmltZW50YWwgZmVhdHVyZSBmbGFnIGZvciB2aWV3cG9ydCAibWluLWRldmljZS13aWR0aCIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA1MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhvcnRvbi4KKworICAgICAgICBBZGQgTWluRGV2aWNlV2lkdGhFbmFibGVkIGFzIGEgbmV3IHJ1
bnRpbWUtZW5hYmxlZCBmZWF0dXJlLgorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldFZpZXdwb3J0RmVhdHVyZSk6CisKKyAgICAgICAg
R2F0ZSB0aGUgcGFyc2luZyBvZiAibWluLWRldmljZS13aWR0aCIgb24gdGhlIHJ1bnRpbWUtZW5h
YmxlZCBmZWF0dXJlIGJlaW5nIGZsaXBwZWQgb24uCisKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNldE1pbkRldmljZVdpZHRoRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjptaW5EZXZpY2VXaWR0aEVuYWJsZWQgY29uc3QpOgorCiAyMDE4LTA0
LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBtaW5pbXVtTGF5b3V0U2l6ZSB0byB2aWV3TGF5b3V0U2l6ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NjFh
OWE0NTkzMGJlNjM5N2MxMzgyYjhlZmZhMGM2MjBiNjI3ZGJlLi4zN2JiNGJjNmU3M2Q0ZTVkNGU4
NDY0Mzk5YjgwMzVkNDQ5YmVhMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA0
LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnIGZvciB2aWV3cG9ydCAibWluLWRldmljZS13
aWR0aCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk2MjQwMzg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgTWluRGV2aWNlV2lkdGhFbmFibGVkIGFz
IGEgbmV3IGV4cGVyaW1lbnRhbCBmZWF0dXJlLCBvbiBieSBkZWZhdWx0IGluIGV4dHJhIHpvb20g
bW9kZSBhbmQgb2ZmIGVsc2V3aGVyZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaDoK
KwogMjAxOC0wNC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW5hbWUgbWluaW11bUxheW91dFNpemUgdG8gdmlld0xheW91dFNpemUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IDcxYTNjNWRmMDQyMzM3ZTdj
OTVhY2M1ZWVmNTI4NDQxYThkYmM3MjYuLmE3N2I5NzljYTg1ODZkYTk1NzdmYmIyMWRkOGU4OGMx
YWZhNDU4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtNDIwLDcgKzQyMSw3
IEBAIHZvaWQgc2V0Vmlld3BvcnRGZWF0dXJlKFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMs
IERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nCiAgICAgICAgIGFyZ3VtZW50cy5zaHJpbmtUb0Zp
dCA9IGZpbmRCb29sZWFuVmFsdWUoZG9jdW1lbnQsIGtleSwgdmFsdWUpOwogICAgIGVsc2UgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleSwgInZpZXdwb3J0LWZpdCIpICYmIGRv
Y3VtZW50LnNldHRpbmdzKCkudmlld3BvcnRGaXRFbmFibGVkKCkpCiAgICAgICAgIGFyZ3VtZW50
cy52aWV3cG9ydEZpdCA9IHBhcnNlVmlld3BvcnRGaXRWYWx1ZShkb2N1bWVudCwga2V5LCB2YWx1
ZSk7Ci0gICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoa2V5LCAibWlu
LWRldmljZS13aWR0aCIpKQorICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGtleSwgIm1pbi1kZXZpY2Utd2lkdGgiKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLm1pbkRldmljZVdpZHRoRW5hYmxlZCgpKQogICAgICAgICBhcmd1bWVu
dHMubWluRGV2aWNlV2lkdGggPSBudW1lcmljUHJlZml4KGRvY3VtZW50LCBrZXksIHZhbHVlKTsK
ICAgICBlbHNlCiAgICAgICAgIHJlcG9ydFZpZXdwb3J0V2FybmluZyhkb2N1bWVudCwgVW5yZWNv
Z25pemVkVmlld3BvcnRBcmd1bWVudEtleUVycm9yLCBrZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAzNWEzYjhmMDcyZTljYWE4NGE5Yzg1
MmI1MjNiZGJiOTI5ZDBjZDQxLi4yOWM0OWQxNDRiOTdhMjc5ODU5Yzk2OGYxMGQyM2I1MTBkZjRh
MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApA
QCAtMjUzLDYgKzI1Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZyb21PcmlnaW5SZXNwb25z
ZUhlYWRlckVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9mcm9tT3JpZ2luUmVzcG9uc2VIZWFk
ZXJFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBmcm9tT3JpZ2luUmVzcG9uc2VIZWFk
ZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mcm9tT3JpZ2luUmVzcG9uc2VIZWFkZXJFbmFi
bGVkOyB9CiAKKyAgICB2b2lkIHNldE1pbkRldmljZVdpZHRoRW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX21pbkRldmljZVdpZHRoRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgbWlu
RGV2aWNlV2lkdGhFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9taW5EZXZpY2VXaWR0aEVuYWJs
ZWQ7IH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
JiBzaGFyZWRGZWF0dXJlcygpOwogCiBwcml2YXRlOgpAQCAtMzg5LDYgKzM5Miw4IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fZnJvbU9yaWdpblJlc3BvbnNlSGVhZGVyRW5hYmxlZCB7IGZhbHNl
IH07CiAKKyAgICBib29sIG1fbWluRGV2aWNlV2lkdGhFbmFibGVkIHsgZmFsc2UgfTsKKwogICAg
IGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM+
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggYjVm
NjJjNzBjYjdkM2QyYjBlMWVhZDMxNmE2YTZlNTIyOTFlNjVlMC4uZjQ0YzdkNzhiMzkzZDc5NGUw
ZDY5MTliMmEyMzMyYzlhMWVlMGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCkBAIC03ODEsNyArNzgxLDcgQEAgRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkOgog
Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1
ZTogZGVmYXVsdEN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpCi0gIGh1bWFuUmVhZGFibGVO
YW1lOiAiQ3VzdG9tIHBhdGVib2FyZCBkYXRhIgorICBodW1hblJlYWRhYmxlTmFtZTogIkN1c3Rv
bSBwYXN0ZWJvYXJkIGRhdGEiCiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBj
dXN0b20gY2xpcGJvYXJkIHR5cGVzIGFuZCBiZXR0ZXIgc2VjdXJpdHkgbW9kZWwgZm9yIGNsaXBi
b2FyZCBBUEkuIgogICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogCkBA
IC0xMjQ4LDMgKzEyNDgsMTEgQEAgRnJvbU9yaWdpblJlc3BvbnNlSGVhZGVyRW5hYmxlZDoKICAg
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJTdXBwb3J0IGZvciB0aGUgRnJvbS1PcmlnaW4g
UmVzcG9uc2UgSGVhZGVyIgogICAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKICAgICB3ZWJjb3Jl
QmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworCitNaW5EZXZpY2VXaWR0aEVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX01JTl9ERVZJQ0VfV0lEVEhf
RU5BQkxFRAorICBodW1hblJlYWRhYmxlTmFtZTogIk1pbmltdW0gZGV2aWNlIHdpZHRoIgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgdGhlIG1pbi1kZXZpY2Utd2lkdGggdmll
d3BvcnQgcGFyYW1ldGVyIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIHdlYmNvcmVCaW5k
aW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCmluZGV4IGU3NWYzZDRkMzMzMzQzMDRlMjQ0
MTk5YjcwZDlkOWIxMWQ2ZDAyMGIuLjE5NGUwMjY0MTNiNTYyMTM0ZmE1MTEzMmQwYzc3NDlkYTI3
ZDYwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oCkBAIC0xNzcsNiArMTc3LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfVklTVUFM
X1ZJRVdQT1JUX0hFSUdIVF9FWFBBTlNJT05fRkFDVE9SIDAKICNlbmRpZgogCisjaWYgRU5BQkxF
KEVYVFJBX1pPT01fTU9ERSkKKyNkZWZpbmUgREVGQVVMVF9NSU5fREVWSUNFX1dJRFRIX0VOQUJM
RUQgMQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9NSU5fREVWSUNFX1dJRFRIX0VOQUJMRUQgMAor
I2VuZGlmCisKIC8vIENvY29hIHBvcnRzIG11c3QgZGlzYWJsZSBleHBlcmltZW50YWwgZmVhdHVy
ZXMgb24gcmVsZWFzZSBicmFuY2hlcyBmb3Igbm93LgogI2lmIEVOQUJMRShFWFBFUklNRU5UQUxf
RkVBVFVSRVMpIHx8IFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBERUZBVUxUX0VYUEVSSU1FTlRB
TF9GRUFUVVJFU19FTkFCTEVEIHRydWUK
</data>

          </attachment>
      

    </bug>

</bugzilla>