<?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>208375</bug_id>
          
          <creation_ts>2020-02-28 07:33:19 -0800</creation_ts>
          <short_desc>Add an internal setting to enable or disable canvas rendering in the GPU Process</short_desc>
          <delta_ts>2020-02-28 19:01:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</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>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623953</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-28 07:33:19 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623954</commentid>
    <comment_count>1</comment_count>
      <attachid>391978</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-28 07:36:47 -0800</bug_when>
    <thetext>Created attachment 391978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623965</commentid>
    <comment_count>2</comment_count>
      <attachid>391978</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-28 08:52:58 -0800</bug_when>
    <thetext>Comment on attachment 391978
Patch

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

&gt; Source/WebCore/page/Settings.yaml:726
&gt; +useRemoteDrawingForCanvas:
&gt; +  initial: false

This doesn&apos;t seem like something WebCore should know or care about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623969</commentid>
    <comment_count>3</comment_count>
      <attachid>391978</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-02-28 09:05:21 -0800</bug_when>
    <thetext>Comment on attachment 391978
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:899
&gt; +    bool usesRemoteDrawing = document().settings().useRemoteDrawingForCanvas();

Please remove the FIXME comment.

&gt;&gt; Source/WebCore/page/Settings.yaml:726
&gt;&gt; +  initial: false
&gt; 
&gt; This doesn&apos;t seem like something WebCore should know or care about.

Can you please be more explict?

The plan is to enable remote rendering for Canvas drawing only. How can we know outside the HTMLCanvasElement::create() that we want to create an ImageBuffer for remote drawing?

Should we add a function like this one:

    HostWindow::createImageBufferForCanvas(...)

And call it from HTMLCanvasElement::createImageBuffer()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623974</commentid>
    <comment_count>4</comment_count>
      <attachid>391978</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-28 09:21:22 -0800</bug_when>
    <thetext>Comment on attachment 391978
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:899
&gt;&gt; +    bool usesRemoteDrawing = document().settings().useRemoteDrawingForCanvas();
&gt; 
&gt; Please remove the FIXME comment.

Oops — good catch!

&gt;&gt;&gt; Source/WebCore/page/Settings.yaml:726
&gt;&gt;&gt; +  initial: false
&gt;&gt; 
&gt;&gt; This doesn&apos;t seem like something WebCore should know or care about.
&gt; 
&gt; Can you please be more explict?
&gt; 
&gt; The plan is to enable remote rendering for Canvas drawing only. How can we know outside the HTMLCanvasElement::create() that we want to create an ImageBuffer for remote drawing?
&gt; 
&gt; Should we add a function like this one:
&gt; 
&gt;     HostWindow::createImageBufferForCanvas(...)
&gt; 
&gt; And call it from HTMLCanvasElement::createImageBuffer()?

Interesting...my understanding was that the GPU Process was not something WebCore should care about, but that the notion of &quot;remote drawing&quot; was okay (hence, RemoteAccelerated on RenderingMode).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624116</commentid>
    <comment_count>5</comment_count>
      <attachid>391978</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-28 13:45:05 -0800</bug_when>
    <thetext>Comment on attachment 391978
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/page/Settings.yaml:726
&gt;&gt;&gt;&gt; +  initial: false
&gt;&gt;&gt; 
&gt;&gt;&gt; This doesn&apos;t seem like something WebCore should know or care about.
&gt;&gt; 
&gt;&gt; Can you please be more explict?
&gt;&gt; 
&gt;&gt; The plan is to enable remote rendering for Canvas drawing only. How can we know outside the HTMLCanvasElement::create() that we want to create an ImageBuffer for remote drawing?
&gt;&gt; 
&gt;&gt; Should we add a function like this one:
&gt;&gt; 
&gt;&gt;     HostWindow::createImageBufferForCanvas(...)
&gt;&gt; 
&gt;&gt; And call it from HTMLCanvasElement::createImageBuffer()?
&gt; 
&gt; Interesting...my understanding was that the GPU Process was not something WebCore should care about, but that the notion of &quot;remote drawing&quot; was okay (hence, RemoteAccelerated on RenderingMode).

I&apos;m with Sam, doesn&apos;t seem like we need to infect WebCore with this. Just hide it behind ChromeClient like everything else (see e.g.:

    // Allows ports to customize the type of graphics layers created by this page.
    virtual GraphicsLayerFactory* graphicsLayerFactory() const { return nullptr; }

)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624135</commentid>
    <comment_count>6</comment_count>
      <attachid>391978</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-28 14:32:06 -0800</bug_when>
    <thetext>Comment on attachment 391978
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/page/Settings.yaml:726
&gt;&gt;&gt;&gt;&gt; +  initial: false
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; This doesn&apos;t seem like something WebCore should know or care about.
&gt;&gt;&gt; 
&gt;&gt;&gt; Can you please be more explict?
&gt;&gt;&gt; 
&gt;&gt;&gt; The plan is to enable remote rendering for Canvas drawing only. How can we know outside the HTMLCanvasElement::create() that we want to create an ImageBuffer for remote drawing?
&gt;&gt;&gt; 
&gt;&gt;&gt; Should we add a function like this one:
&gt;&gt;&gt; 
&gt;&gt;&gt;     HostWindow::createImageBufferForCanvas(...)
&gt;&gt;&gt; 
&gt;&gt;&gt; And call it from HTMLCanvasElement::createImageBuffer()?
&gt;&gt; 
&gt;&gt; Interesting...my understanding was that the GPU Process was not something WebCore should care about, but that the notion of &quot;remote drawing&quot; was okay (hence, RemoteAccelerated on RenderingMode).
&gt; 
&gt; I&apos;m with Sam, doesn&apos;t seem like we need to infect WebCore with this. Just hide it behind ChromeClient like everything else (see e.g.:
&gt; 
&gt;     // Allows ports to customize the type of graphics layers created by this page.
&gt;     virtual GraphicsLayerFactory* graphicsLayerFactory() const { return nullptr; }
&gt; 
&gt; )

Okay, I see — it seems we should (at the very least) be asking the client layer for a RenderingMode, then, so it never needs to have a notion of Remote{Acclerated|Unaccelerated} at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624173</commentid>
    <comment_count>7</comment_count>
      <attachid>392030</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-28 16:17:27 -0800</bug_when>
    <thetext>Created attachment 392030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624215</commentid>
    <comment_count>8</comment_count>
      <attachid>392030</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 19:00:27 -0800</bug_when>
    <thetext>Comment on attachment 392030
Patch

Clearing flags on attachment: 392030

Committed r257677: &lt;https://trac.webkit.org/changeset/257677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624216</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 19:00:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624217</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-28 19:01:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59911910&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391978</attachid>
            <date>2020-02-28 07:36:47 -0800</date>
            <delta_ts>2020-02-28 16:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208375-20200228073646.patch</filename>
            <type>text/plain</type>
            <size>3725</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJhODlhYzg0MDE3YzFh
NWVhMGIzODJhZmM5MTlkYjFmYzg2YTYxOS4uNDI4YzBiODZkZjE1ZmU3NjE3MzE4YjZhOWUzYjdk
NDc2MjJjZWM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBpbnRl
cm5hbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIGNhbnZhcyByZW5kZXJpbmcgaW4gdGhl
IEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDgzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGhlIGNvcnJlc3BvbmRpbmcgV2ViQ29yZSBzZXR0aW5nIChuYW1lZCAidXNlUmVt
b3RlRHJhd2luZ0ZvckNhbnZhcyIgdG8gbWF0Y2ggZXhpc3RpbmcgY29kZSBpbiBXZWJDb3JlIHRo
YXQKKyAgICAgICAgb3B0cyBpbnRvIHRoZSByZW1vdGUgZHJhd2luZyBjb2RlcGF0aCBhbmQgcmVt
b3RlIGltYWdlIGJ1ZmZlcnMpLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAyMC0wMi0yOCAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNocmluay10by1m
aXQgRGlzcGxheTo6TGluZUJveC9EaXNwbGF5OjpSdW4gdmVjdG9ycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTEx
YTEwM2JkMGVkNzM2Y2ZhZjc4YTk1M2Q1OGJlY2QwY2VhNTAwNC4uZmY0YzQwMWQ4MGRkNWY3NGVh
NjU0NGFkMGJmOWNmMTIyOGViNzVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0w
Mi0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gaW50ZXJuYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSBjYW52YXMgcmVuZGVy
aW5nIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIHRoZSBuZXcgV2ViS2l0IGludGVybmFsIHByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0wMi0y
OCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVyc2lv
biBiZXR3ZWVuIE1lZGlhU2FtcGxlIGFuZCBSZW1vdGVWaWRlb1NhbXBsZSBzaG91bGQgcHJlc2Vy
dmUgdGhlIHJvdGF0aW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCmluZGV4IGM4MGFmMTk5ZTdlOTYxMTRlMjc2MjQ4NTUwODYyOGI2MzA5ZGE5
YmIuLmI3YmJmZDRlNGFlYmQ5NTdhNDEyZGRiMGZjYzIyYjk2YTRjNjhkOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04OTYsNyArODk2LDcgQEAgdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGJvb2wg
dXNlc0Rpc3BsYXlMaXN0RHJhd2luZyA9IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9y
KGRvY3VtZW50KCkuc2V0dGluZ3MoKS5kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpOwogCiAg
ICAgLy8gRklYTUU6IEFkZCBhIG5ldyBzZXR0aW5nIGZvciByZW1vdGUgZHJhd2luZyBvbiBjYW52
YXMuCi0gICAgYm9vbCB1c2VzUmVtb3RlRHJhd2luZyA9IGZhbHNlOworICAgIGJvb2wgdXNlc1Jl
bW90ZURyYXdpbmcgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNlUmVtb3RlRHJhd2luZ0ZvckNh
bnZhcygpOwogCiAgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlOwogICAgIGlmICh1c2Vz
UmVtb3RlRHJhd2luZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBhNmQzNDI4ZDdk
YTNkYmVkYWYwMTMwMjhhNDQ5MTI3NTE1NzRiNWI0Li41MTA2NzNmZmFmOTEyN2E2YzExZmVjNTY2
YjYyOWNkZThkNmU0ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC03MjIsNiAr
NzIyLDkgQEAgamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzOgogICBpbml0aWFsOiB0cnVlCiAgIGdl
dHRlcjogaXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMKIAordXNlUmVtb3RlRHJhd2luZ0ZvckNh
bnZhczoKKyAgaW5pdGlhbDogZmFsc2UKKwogIyBVbmxpa2UgdGhlIGltYWdlc0VuYWJsZWQgc2V0
dGluZywgdGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgogIyB0aGUgaW1h
Z2UgVVJMLiBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGlmIHJlcXVlc3Rl
ZC4KIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sCmluZGV4IDBhMmM4NGU3NjFiZjcwYzkyMjMyNDBhNGEwOTgzZTUzOGMzYThj
YzQuLjIzYmE0ZWNhY2I2OWEyMjA1YmY0YjIzN2E3Y2E0OTc1N2I4MzAwZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTc1MCw2ICsxNzUwLDE0IEBAIENh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBub25lCiAg
IGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorUmVuZGVyQ2FudmFzSW5HUFVQcm9j
ZXNzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFu
UmVhZGFibGVOYW1lOiAiUmVuZGVyIGNhbnZhcyBpbiBHUFUgUHJvY2VzcyIKKyAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGNhbnZhcyByZW5kZXJpbmcgaW4gR1BVIFByb2Nlc3Mi
CisgIGNhdGVnb3J5OiBpbnRlcm5hbAorICB3ZWJjb3JlTmFtZTogdXNlUmVtb3RlRHJhd2luZ0Zv
ckNhbnZhcworCiBSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzOgogICB0eXBlOiBib29sCiAg
IGRlZmF1bHRWYWx1ZTogdHJ1ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392030</attachid>
            <date>2020-02-28 16:17:27 -0800</date>
            <delta_ts>2020-02-28 19:00:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208375-20200228161726.patch</filename>
            <type>text/plain</type>
            <size>21132</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJhODlhYzg0MDE3YzFh
NWVhMGIzODJhZmM5MTlkYjFmYzg2YTYxOS4uMTIxYjM3MjI0MDVjZjgyODk2MDA2YWRlNWM5MDJi
OTE5NmU5MTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBpbnRl
cm5hbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIGNhbnZhcyByZW5kZXJpbmcgaW4gdGhl
IEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDgzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRzIGFuIGludGVybmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIEdQ
VSBwcm9jZXNzIHdoZW4gcmVuZGVyaW5nIGNhbnZhc2VzLiBUbyBkbyB0aGlzLCB3ZSBhZGQgYQor
ICAgICAgICBjb2RlcGF0aCBmb3IgY3JlYXRpbmcgYSBuZXcgSW1hZ2VCdWZmZXIsIGdpdmVuIGVu
dW0gdHlwZXMgdGhhdCBpbmRpY2F0ZSB3aGV0aGVyIHRvIHRyeSBhbmQgZW5hYmxlIGFjY2VsZXJh
dGlvbiwKKyAgICAgICAgYW5kIGFsc28gd2hldGhlciB0byB1c2UgZGlzcGxheSBsaXN0cy4KKwor
ICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKworICAgICAgICBV
c2UgdGhlIG5ldyBJbWFnZUJ1ZmZlcjo6Y3JlYXRlIG1ldGhvZC4KKworICAgICAgICAqIHBhZ2Uv
Q2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKToKKworICAgICAgICBBZGQgYSBuZXcgdmVyc2lvbiBvZiBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlIHRoYXQgZG9lcyBub3QgZGlyZWN0bHkgdGFrZSBhIFJlbmRlcmluZ01vZGUs
IGJ1dCBpbnN0ZWFkIHRha2VzIHRoZQorICAgICAgICBhIGZldyBwaWVjZXMgb2YgaW5mb3JtYXRp
b24gdGhhdCB0aGUgY2xpZW50IGxheWVyIHdpbGwgbmVlZCB0byBkZWNpZGUgd2hhdCBraW5kIG9m
IEltYWdlQnVmZmVyIGl0IHNob3VsZCBjcmVhdGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmlu
Z01vZGUuaDoKKworICAgICAgICBBZGQgc29tZSBuZXcgZW51bSB0eXBlcyB0byByZXByZXNlbnQg
aGludHMgcHJvdmlkZWQgYnkgV2ViQ29yZSB3aGVuIGl0IGFza3MgdGhlIGNsaWVudCBsYXllciBm
b3IgYSBuZXcKKyAgICAgICAgSW1hZ2VCdWZmZXIuCisKIDIwMjAtMDItMjggIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBTaHJpbmstdG8tZml0IERpc3BsYXk6
OkxpbmVCb3gvRGlzcGxheTo6UnVuIHZlY3RvcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExMWExMDNiZDBlZDcz
NmNmYWY3OGE5NTNkNThiZWNkMGNlYTUwMDQuLjFjMjAxZWM2OTEwNmQxM2U3OTZkYWQ1ZTJkODZh
M2QyYzYxNmQwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDItMjggIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFuIGludGVy
bmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgY2FudmFzIHJlbmRlcmluZyBpbiB0aGUg
R1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwODM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAgQ29uc3VsdCB0aGUgbmV3IGlu
dGVybmFsIGZlYXR1cmUgd2hlbiBjcmVhdGluZyBhIG5ldyB3ZWIgcHJvY2Vzcy4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCisgICAgICAgIEFkZCBhIG5ldyBpbnRl
cm5hbCBzZXR0aW5nIHRvIGVuYWJsZSB1c2luZyB0aGUgR1BVIHByb2Nlc3MgZm9yIHJlbmRlcmlu
ZyBjYW52YXNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0Zvcik6CisKKyAgICAgICAgQWRk
IGEgaGVscGVyIG1ldGhvZCB0aGF0IFdlYkNocm9tZUNsaWVudCBjYW4gdXNlIHRvIGRldGVybWlu
ZSB3aGV0aGVyIGl0IHNob3VsZCBvcHQgaW50byBlaXRoZXIKKyAgICAgICAgUmVtb3RlQWNjZWxl
cmF0ZWQgb3IgUmVtb3RlVW5hY2NlbGVyYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisKIDIwMjAtMDItMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIENvbnZlcnNpb24gYmV0d2VlbiBNZWRpYVNhbXBsZSBhbmQgUmVt
b3RlVmlkZW9TYW1wbGUgc2hvdWxkIHByZXNlcnZlIHRoZSByb3RhdGlvbiBpbmZvcm1hdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBjODBhZjE5OWU3
ZTk2MTE0ZTI3NjI0ODU1MDg2MjhiNjMwOWRhOWJiLi4zNTQ1NjE2NzE4YzI1YWEwOTk5MzY4ZDY4
ZTJhOTgxMDI3ZmYwOWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcApAQCAtODkyLDIxICs4OTIsMTAgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRl
SW1hZ2VCdWZmZXIoKSBjb25zdAogCiAgICAgYXV0byBob3N0V2luZG93ID0gKGRvY3VtZW50KCku
dmlldygpICYmIGRvY3VtZW50KCkudmlldygpLT5yb290KCkpID8gZG9jdW1lbnQoKS52aWV3KCkt
PnJvb3QoKS0+aG9zdFdpbmRvdygpIDogbnVsbHB0cjsKIAorICAgIGF1dG8gYWNjZWxlcmF0ZSA9
IHNob3VsZEFjY2VsZXJhdGUoc2l6ZSgpKSA/IFNob3VsZEFjY2VsZXJhdGU6OlllcyA6IFNob3Vs
ZEFjY2VsZXJhdGU6Ok5vOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBmb3IgRGlz
cGxheUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCi0gICAgYm9vbCB1c2VzRGlzcGxheUxpc3REcmF3
aW5nID0gbV91c2VzRGlzcGxheUxpc3REcmF3aW5nLnZhbHVlT3IoZG9jdW1lbnQoKS5zZXR0aW5n
cygpLmRpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQoKSk7Ci0KLSAgICAvLyBGSVhNRTogQWRkIGEg
bmV3IHNldHRpbmcgZm9yIHJlbW90ZSBkcmF3aW5nIG9uIGNhbnZhcy4KLSAgICBib29sIHVzZXNS
ZW1vdGVEcmF3aW5nID0gZmFsc2U7Ci0KLSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGU7
Ci0gICAgaWYgKHVzZXNSZW1vdGVEcmF3aW5nKQotICAgICAgICByZW5kZXJpbmdNb2RlID0gc2hv
dWxkQWNjZWxlcmF0ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQg
OiBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkOwotICAgIGVsc2UgaWYgKHVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpCi0gICAgICAgIHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVy
YXRlKHNpemUoKSkgPyBSZW5kZXJpbmdNb2RlOjpEaXNwbGF5TGlzdEFjY2VsZXJhdGVkIDogUmVu
ZGVyaW5nTW9kZTo6RGlzcGxheUxpc3RVbmFjY2VsZXJhdGVkOwotICAgIGVsc2UKLSAgICAgICAg
cmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoc2l6ZSgpKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKLQotICAgIHNldElt
YWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJpbmdNb2RlLCAxLCBD
b2xvclNwYWNlOjpTUkdCLCBob3N0V2luZG93KSk7CisgICAgYXV0byB1c2VEaXNwbGF5TGlzdCA9
IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5k
aXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6
IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKKyAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKHNpemUoKSwgYWNjZWxlcmF0ZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1
cnBvc2U6OkNhbnZhcywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgaG9zdFdpbmRvdykpOwogCiAgICAg
aWYgKGJ1ZmZlcigpICYmIGJ1ZmZlcigpLT5kcmF3aW5nQ29udGV4dCgpKQogICAgICAgICBidWZm
ZXIoKS0+ZHJhd2luZ0NvbnRleHQoKS0+c2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90cmFj
a3NEaXNwbGF5TGlzdFJlcGxheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMjcwMDllM2M4
ODBmY2U4MjZkODdhNjE0NTg4ODg5MDRiN2FlZDhkMC4uYTQzNTQwYzIxODg3MDRhZTAyZjRmMDQw
MGUyNTk1YTgyNGM3ZTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDk0LDYgKzQ5NCwx
MSBAQCB2b2lkIENocm9tZTo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlk
ZGVuVW50aWxNb3VzZU1vdmVzKQogICAgIG1fY2xpZW50LnNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3ZlcyhoaWRkZW5VbnRpbE1vdXNlTW92ZXMpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+IENocm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBTaG91bGRBY2NlbGVyYXRlIHNob3VsZEFjY2VsZXJhdGUsIFNob3VsZFVzZURpc3BsYXlMaXN0
IHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBjb25zdAoreworICAgIHJldHVy
biBtX2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCBzaG91bGRBY2NlbGVyYXRlLCBzaG91
bGRVc2VEaXNwbGF5TGlzdCwgcHVycG9zZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKTsK
K30KKwogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBDaHJvbWU6OmNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9jbGllbnQuY3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDM2MTA3
MmFlMzI3MTYwMDdlOTNkYjA2NTI4NjEyYWRhZGRhMGVmMzMuLjM4ZTljNzZkNGU2YzdhMDkwZmFj
YzFlZTA4NGY0NWVkZmQxODk5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtODMsNiArODMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgb3ZlcnJpZGU7CiAK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0
IEZsb2F0U2l6ZSYsIFNob3VsZEFjY2VsZXJhdGUsIFNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5k
ZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRp
b24oKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGRhNjZk
NjJlZTE1ZTlhYzI1MTE0YzUzMmMwNTU0NDVmYzE2ZDNiMjQuLjA3ODBhNDhkNzE2YjI2ZTk1NDVi
Njc0NzZiNTQyYmEzMjBjOWFjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MzA1LDYgKzMwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVz
aE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkg
Y29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwg
U2hvdWxkQWNjZWxlcmF0ZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2Us
IGZsb2F0LCBDb2xvclNwYWNlKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZs
b2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0LCBDb2xvclNwYWNlKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAKICAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBoaWNzTGF5ZXIg
dG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cu
aAppbmRleCBhODgzYWY0ZjQxZjMxMThiNGZkYWJkNmVjYjYyOWUxZjQxNGE2YjFiLi4wYjAxZTM3
M2MxZjQxOTU2NDk2NmRkY2Q5YTkyNDg1MTA3OTNkMDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
SG9zdFdpbmRvdy5oCkBAIC0zNCw2ICszNCw5IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiBlbnVt
IGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDog
dWludDhfdDsKK2VudW0gY2xhc3MgU2hvdWxkQWNjZWxlcmF0ZSA6IGJvb2w7CitlbnVtIGNsYXNz
IFNob3VsZFVzZURpc3BsYXlMaXN0IDogYm9vbDsKK2VudW0gY2xhc3MgUmVuZGVyaW5nUHVycG9z
ZSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIEhvc3RXaW5kb3cgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEhvc3RXaW5kb3cpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTU5LDYgKzYyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9v
dFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJv
b3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgU2hvdWxkQWNjZWxlcmF0ZSwgU2hvdWxkVXNlRGlzcGxheUxp
c3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBjcmVh
dGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpIGNvbnN0ID0gMDsKIAogICAgIC8vIE1ldGhvZCBmb3Ig
cmV0cmlldmluZyB0aGUgbmF0aXZlIGNsaWVudCBvZiB0aGUgcGFnZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCAxNDgwOGUwMjFj
ZGU4OWQ2MTAzNjI5OGRiYWIyNDVkNTM1Y2I2YzE5Li45MjU5MzNlODYzYjQ1OWFiYmYxOGQ2NGUy
NWVlMDcxMjRjMzg2MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuY3BwCkBAIC0zOCw2ICszOCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdGF0aWMgY29uc3QgZmxvYXQgTWF4Q2xhbXBlZExlbmd0aCA9IDQwOTY7CiBzdGF0aWMgY29u
c3QgZmxvYXQgTWF4Q2xhbXBlZEFyZWEgPSBNYXhDbGFtcGVkTGVuZ3RoICogTWF4Q2xhbXBlZExl
bmd0aDsKIAorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRl
LCBTaG91bGRVc2VEaXNwbGF5TGlzdCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVy
cG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3sKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOworICAgIGlmIChob3N0V2luZG93KQorICAgICAgICBp
bWFnZUJ1ZmZlciA9IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHNob3VsZEFj
Y2VsZXJhdGUsIHNob3VsZFVzZURpc3BsYXlMaXN0LCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UpOworCisgICAgaWYgKCFpbWFnZUJ1ZmZlcikgeworICAgICAgICBSZW5kZXJp
bmdNb2RlIG1vZGU7CisgICAgICAgIGlmIChzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBTaG91bGRV
c2VEaXNwbGF5TGlzdDo6WWVzKQorICAgICAgICAgICAgbW9kZSA9IHNob3VsZEFjY2VsZXJhdGUg
PT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVzID8gUmVuZGVyaW5nTW9kZTo6RGlzcGxheUxpc3RBY2Nl
bGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OkRpc3BsYXlMaXN0VW5hY2NlbGVyYXRlZDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbW9kZSA9IHNob3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNj
ZWxlcmF0ZTo6WWVzID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVh
dGUoc2l6ZSwgbW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsK
KyAgICB9CisKKyAgICByZXR1cm4gaW1hZ2VCdWZmZXI7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGFiZmJhM2U3MTA4MDYxYjU3
NWY1NmViNzkxM2M1YjgwY2NkM2U2NGQuLmY4NmU4Y2I4ODExNDQ4NmFmYTk5NjhlNjg4NTUwNWMx
NzNlMDhkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIGNsYXNzIElt
YWdlQnVmZmVyIHsKIHB1YmxpYzoKICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBv
biBhbGxvY2F0aW9uIGZhaWx1cmUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFNob3VsZEFjY2Vs
ZXJhdGUsIFNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQiwgY29uc3QgSG9z
dFdpbmRvdyogPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNS
R0IsIGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9SZW5kZXJpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5k
ZXJpbmdNb2RlLmgKaW5kZXggNTQzNzVhODgxZjBhMTZlNmRlMTY3YzQyODliMDllMDU1NWNlMjVj
Yi4uN2U5NmQwNjkwMjU2OTZjMTQ2NWI1YTAwNGI0ODA5YWRhZGQ3MDI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaApAQCAtMjcsNiAr
MjcsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIFJlbmRlcmluZ1B1
cnBvc2UgOiB1aW50OF90IHsKKyAgICBVbnNwZWNpZmllZCwKKyAgICBDYW52YXMKK307CisKK2Vu
dW0gY2xhc3MgU2hvdWxkQWNjZWxlcmF0ZSA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNz
IFNob3VsZFVzZURpc3BsYXlMaXN0IDogYm9vbCB7IE5vLCBZZXMgfTsKKwogZW51bSBjbGFzcyBS
ZW5kZXJpbmdNb2RlIDogdWludDhfdCB7CiAgICAgQWNjZWxlcmF0ZWQsCiAgICAgVW5hY2NlbGVy
YXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggMGUwYTE4ZDg2NDg0NDMyODI2YmE5NTNmZDk4ODc0ODIzYmU5YWJmMC4u
YTJjMWRhNDgyYmRhODJmMDAzOTE5MzVjYzkwNGEyOTBiNzhjM2E0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE0NSw2
ICsxNDUsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJlVmlkZW9J
blVJUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
czsKICAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7CisgICAg
ZW5jb2RlciA8PCBzaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3M7CiAKICNpZiBQTEFURk9S
TShHVEspCiAgICAgZW5jb2RlciA8PCB0aGVtZU5hbWU7CkBAIC00NjMsNiArNDY0LDkgQEAgT3B0
aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
c2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVy
Q2FudmFzSW5HUFVQcm9jZXNzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGhlbWVO
YW1lKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2MTY4ZDY0OWYwMDk5NWRi
ZmRmODQ1NWU1ZTZlMGE4N2QwYTAxZmEzLi5hMzE1ODA3Y2E0ZDYyOWY4NTY1YTE0MTQ1ZjllYWYz
Y2FlNjk0ZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC0yMTYsNiArMjE2LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MgeyBmYWxz
ZSB9OwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsK
ICAgICBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgeyBmYWxzZSB9OworICAg
IGJvb2wgc2hvdWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKIAogI2lmIFBM
QVRGT1JNKEdUSykKICAgICBTdHJpbmcgdGhlbWVOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMGEyYzg0ZTc2MWJmNzBjOTIyMzI0MGE0YTA5ODNlNTM4
YzNhOGNjNC4uNjFhNDhlMDBhNjA4NmRlMmEwMDA0OWY5Yzk5MzMzYWQ4Zjk5NDE0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xNzUwLDYgKzE3NTAsMTQg
QEAgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IG5v
bmUKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCitSZW5kZXJDYW52YXNJbkdQ
VVByb2Nlc3NFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJSZW5kZXIgY2FudmFzIGluIEdQVSBQcm9jZXNzIgorICBodW1h
blJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgY2FudmFzIHJlbmRlcmluZyBpbiBHUFUgUHJv
Y2VzcyIKKyAgY2F0ZWdvcnk6IGludGVybmFsCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisKIFJl
c3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3M6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVl
OiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4MjYz
YWFkNWY1NjYyN2VmMWQyZjAzYThiZGZlYjBmZDZmZGVlZTNhLi40ZTZmMzJlNDkwYTA0MTdmNDNi
MTU5NTMxZGI1ODYzY2JlNmY2NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTc3MzEsNiArNzczMSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMg
V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAg
ICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgPSBwcmVmZXJlbmNl
cygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKTsKICAgICBwYXJhbWV0ZXJzLnNo
b3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS5jYXB0dXJlVmlkZW9J
blVJUHJvY2Vzc0VuYWJsZWQoKTsKICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRlb0lu
R1BVUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxl
ZCgpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzID0gcHJl
ZmVyZW5jZXMoKS5yZW5kZXJDYW52YXNJbkdQVVByb2Nlc3NFbmFibGVkKCk7CiAgICAgcGFyYW1l
dGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLmNvbmZpZ3VyYXRpb24oKS5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKCk7
CiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGEwMTFlYjNl
YzY1ZGU4NzQ1N2QxY2YyN2YwNDE2ZTAxMzEyODA4MDUuLmQ0MmMyNGFjOTlmMzBjZTI3ODkzODA4
MGJmYzgyMzQ5MTEwYWE0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04OTAsMTMgKzg5
MCwyNyBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0ZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0
ZSgpOwogICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPmNyZWF0ZUltYWdlQnVm
ZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CiB9
Ci0jZW5kaWYKKworc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0
ZSBzaG91bGRBY2NlbGVyYXRlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCBzaG91bGRVc2VEaXNwbGF5
TGlzdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKK3sKKyAgICBSZW5kZXJpbmdNb2RlIG1vZGU7Cisg
ICAgaWYgKG1fcGFnZS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IocHVycG9zZSkpCisgICAg
ICAgIG1vZGUgPSBzaG91bGRBY2NlbGVyYXRlID09IFNob3VsZEFjY2VsZXJhdGU6OlllcyA/IFJl
bmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5h
Y2NlbGVyYXRlZDsKKyAgICBlbHNlIGlmIChzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBTaG91bGRV
c2VEaXNwbGF5TGlzdDo6WWVzKQorICAgICAgICBtb2RlID0gc2hvdWxkQWNjZWxlcmF0ZSA9PSBT
aG91bGRBY2NlbGVyYXRlOjpZZXMgPyBSZW5kZXJpbmdNb2RlOjpEaXNwbGF5TGlzdEFjY2VsZXJh
dGVkIDogUmVuZGVyaW5nTW9kZTo6RGlzcGxheUxpc3RVbmFjY2VsZXJhdGVkOworICAgIGVsc2UK
KyAgICAgICAgbW9kZSA9IHNob3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVz
ID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkOworICAgIHJldHVybiBjcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCBtb2RlLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQog
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBH
cmFwaGljc0xheWVyKiBsYXllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxZjMwNDQ2Mzcy
YTg5MzIyZmVkNjQ3NjcwYWQ2NmZkZjM3YjNhNGQxLi43YzZmMjRjYjk5NGRjZGQ4MzAzNmZlODI0
ZDIzMjZlZDU4OTllOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMzQsNiArMjM0LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6U2hvdWxkQWNjZWxlcmF0ZSwgV2ViQ29yZTo6U2hv
dWxkVXNlRGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSkgY29uc3QgZmluYWw7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTI0NTcw
NDNhNDhjODFlMTYzMGZiYTYwZDUyMWVjNDQwMGJiOTU2Ni4uMTYzMTAyNjc0ZTNkYzM2YjM0ZGFh
OGIyMzg5YzE1YTg5ODhkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTM5MSw2ICszOTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2Fsd2F5c1No
b3dzSG9yaXpvbnRhbFNjcm9sbGVyIHsgcGFyYW1ldGVycy5hbHdheXNTaG93c0hvcml6b250YWxT
Y3JvbGxlciB9CiAgICAgLCBtX2Fsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciB7IHBhcmFtZXRl
cnMuYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyIH0KKyAgICAsIG1fc2hvdWxkUmVuZGVyQ2Fu
dmFzSW5HUFVQcm9jZXNzIHsgcGFyYW1ldGVycy5zaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nl
c3MgfQogI2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCiAg
ICAgLCBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJldlYlBhZ2U6OmRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRp
bWVyRmlyZWQpCiAjZW5kaWYKQEAgLTcwMzcsNiArNzAzOCwyMSBAQCB2b2lkIFdlYlBhZ2U6OnNl
dElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4g
aXNOYXZpZwogICAgIG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW47CiB9CiAKK2Jvb2wgV2ViUGFnZTo6c2hvdWxkVXNlUmVtb3RlUmVu
ZGVyaW5nRm9yKFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisgICAgc3dpdGNoIChwdXJwb3NlKSB7CisgICAgY2FzZSBSZW5kZXJpbmdQdXJwb3Nl
OjpDYW52YXM6CisgICAgICAgIHJldHVybiBtX3Nob3VsZFJlbmRlckNhbnZhc0luR1BVUHJvY2Vz
czsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShwdXJwb3NlKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDI2MzRhNWY0MzM0MTVj
YmFiYWI3NWM5NmMwZWUwMDMxOTc0MmE0NC4uMDdhNmZhODRjODNlZWM5YjI5NzNlNDNmYzJjZjEx
YmEyZjc0OTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJ
RC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hh
cmVEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5o
PgpAQCAtMTI5Miw2ICsxMjkzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluKE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKICAgICBOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCkgY29u
c3QgeyByZXR1cm4gbV9pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOyB9CisKKyAgICBib29s
IHNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKQEAgLTE3NDIsNiArMTc0NSw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyIHsgZmFsc2UgfTsKIAorICAgIGJv
b2wgbV9zaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworCiAjaWYgRU5B
QkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKICAgICBib29sIG1fcmVh
ZHlUb0ZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
aWRGaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luIHsgZmFsc2UgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>