<?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>218720</bug_id>
          
          <creation_ts>2020-11-09 11:57:18 -0800</creation_ts>
          <short_desc>Rename ImageBuffer::flushDisplayList to ImageBuffer::submitDisplayList</short_desc>
          <delta_ts>2020-11-09 15:12:04 -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>Images</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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218426</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705802</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 11:57:18 -0800</bug_when>
    <thetext>ImageBuffer&apos;s `flushDisplayList` method is currently only responsible for replaying the given display list into the image buffer&apos;s drawing context, and doesn&apos;t actually guarantee a context flush. A name like `renderDisplayList` seems more fitting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705807</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-09 12:09:24 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #0)
&gt; ImageBuffer&apos;s `flushDisplayList` method is currently only responsible for
&gt; replaying the given display list into the image buffer&apos;s drawing context,
&gt; and doesn&apos;t actually guarantee a context flush. A name like
&gt; `renderDisplayList` seems more fitting.

I think this statement is a little inaccurate. The &quot;flushDisplayList&quot; is responsible for replaying the given display list into the image buffer&apos;s &quot;backend context&quot;.

Using the &quot;drawing context&quot; is a little vague here because DisplayList::DrawingContext refers to the class that wraps the DisplayList::Recorder.

Regarding the new name &quot;renderDisplayList&quot;, I am not sure why it is better than flushDisplayList() especially when we deal with cross process operation and where WebP does not really renders the display list to the backend context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705812</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-09 12:15:59 -0800</bug_when>
    <thetext>flush() implies &quot;play this out until the end&quot;, and normally flush is used for a function that doesn&apos;t take arguments; it&apos;s &quot;flush out existing state&quot;.

So flush(DisplayList&amp;) is a bit ambiguous. Is there already some internal DisplayList that gets flushed out first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705824</commentid>
    <comment_count>3</comment_count>
      <attachid>413618</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 12:25:55 -0800</bug_when>
    <thetext>Created attachment 413618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705833</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-09 12:46:17 -0800</bug_when>
    <thetext>How about &quot;submit&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705835</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 12:48:59 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; How about &quot;submit&quot;?

&quot;submitDisplayList&quot; sounds fine to me (I think I actually prefer it to &quot;renderDisplayList&quot;, since &quot;submit&quot; is a more accurate word to describe what happens in RemoteImageBufferProxy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705836</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-09 12:49:19 -0800</bug_when>
    <thetext>For me, &apos;flush&apos; means &quot;When you empty something, you flush it.&quot; This means you just get rid of it and you do not have to know where it will end up.

And yes all, we only flush the internal DisplayList of the ImageBuffer to its remote backend. So we should only be flushing the ImageBuffer&apos;s existence state.

I think the problem is flushDisplayList() is used in both RemoteImageBufferProxy and RemoteImageBuffer. In RemoteImageBufferProxy, it is used to send the DisplayList to GPUP. But in RemoteImageBuffer, it is used to replay, apply or render the DisplayList into the backend.

My suggestion is:

Remove the virtual function ImageBuffer::flushDisplayList()
Remove RemoteImageBuffer::flushDisplayList() and inline it in RemoteRenderingBackend::applyDisplayList()
Make RemoteImageBufferProxy::flushDisplayList() private none virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705854</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 13:32:23 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #6)
&gt; For me, &apos;flush&apos; means &quot;When you empty something, you flush it.&quot; This means
&gt; you just get rid of it and you do not have to know where it will end up.
&gt; 
&gt; And yes all, we only flush the internal DisplayList of the ImageBuffer to
&gt; its remote backend. So we should only be flushing the ImageBuffer&apos;s
&gt; existence state.
&gt; 
&gt; I think the problem is flushDisplayList() is used in both
&gt; RemoteImageBufferProxy and RemoteImageBuffer. In RemoteImageBufferProxy, it
&gt; is used to send the DisplayList to GPUP. But in RemoteImageBuffer, it is
&gt; used to replay, apply or render the DisplayList into the backend.
&gt; 
&gt; My suggestion is:
&gt; 
&gt; Remove the virtual function ImageBuffer::flushDisplayList()
&gt; Remove RemoteImageBuffer::flushDisplayList() and inline it in
&gt; RemoteRenderingBackend::applyDisplayList()
&gt; Make RemoteImageBufferProxy::flushDisplayList() private none virtual.

(We chatted about this on Slack, and decided to use the name &quot;submitDisplayList&quot; for now to deal with the confusion around flushing, and then remove `ImageBuffer::flushDisplayList` later, which will require some additional refactoring around ConcreteImageBuffer)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705861</commentid>
    <comment_count>8</comment_count>
      <attachid>413625</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 13:41:41 -0800</bug_when>
    <thetext>Created attachment 413625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705866</commentid>
    <comment_count>9</comment_count>
      <attachid>413627</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-09 13:46:11 -0800</bug_when>
    <thetext>Created attachment 413627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705901</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-09 15:12:03 -0800</bug_when>
    <thetext>Committed r269606: &lt;https://trac.webkit.org/changeset/269606&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413627.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413618</attachid>
            <date>2020-11-09 12:25:55 -0800</date>
            <delta_ts>2020-11-09 13:30:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218720-20201109122554.patch</filename>
            <type>text/plain</type>
            <size>12109</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3MWE2MWQzNmQxN2Y0
ZDM3MmUyMmI1MWYyMDMyMmZhZWUwY2U5Yi4uMzViZTM0MDNlODgwNWJkM2EzNjY5YzFlNjkyZjlm
ODA2ZDI0MmRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUJ1ZmZlcjo6Zmx1c2hEaXNwbGF5TGlzdCB0byBJbWFnZUJ1ZmZlcjo6cmVuZGVyRGlzcGxheUxp
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZSBgZmx1c2hEaXNwbGF5TGlzdGAgdG8gYHJlbmRlckRpc3BsYXlMaXN0YCwgdG8gYmV0dGVyIGNh
cHR1cmUgdGhlIGZhY3QgdGhhdCBpdCdzIG9ubHkgcmVzcG9uc2libGUgZm9yCisgICAgICAgIGFw
cGx5aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0IHJhdGhlciB0aGFu
IHBlcmZvcm1pbmcgYSBjb250ZXh0IGZsdXNoLCBvciBhcHBseWluZyBhbmQgY2xlYXJpbmcKKyAg
ICAgICAgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0LgorCisgICAg
ICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cmVuZGVyRGlz
cGxheUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmZsdXNoRGlzcGxheUxp
c3QpOiBEZWxldGVkLgorCiAyMDIwLTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIHNvbWUgY29kZSBhZnRlciBpbmxpbmUgZGlz
cGxheSBsaXN0IHJlZmFjdG9yaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0ZTRhNzNlMTQxNjVmYTk1MmI3YzAz
NDZkYTYyNjdmYmYwNzZhYmIuLjUwODk1ZjU0ZDQxNjAzYjk5YjBmOTk0OGQ2Y2RjY2IwNWUxM2Yx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTEtMDkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVmZmVyOjpm
bHVzaERpc3BsYXlMaXN0IHRvIEltYWdlQnVmZmVyOjpyZW5kZXJEaXNwbGF5TGlzdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmFwcGx5RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZW5kZXJEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3QpOiBEZWxldGVkLgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSByZW5hbWUgYGZsdXNoRGlzcGxheUxpc3RgIG9uIGBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kYCwgc2luY2UgdGhpcyBJUEMgbWVzc2FnZSBkb2Vzbid0IGFjdHVhbGx5
CisgICAgICAgIHBlcmZvcm0gYSBjb250ZXh0IGZsdXNoLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbmRl
ckRpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaERpc3BsYXlMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKwogMjAyMC0xMS0wOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBT
ZXQgcHJlZmVyZW5jZSBmb3Igb3ZlcnJpZGRlbiBsYW5ndWFnZXMgaW4gdGhlIFdlYkNvbnRlbnQg
cHJvY2VzcyBhZnRlciBlbnRlcmluZyB0aGUgc2FuZGJveC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDkyMDRhZDEwYTgxMDY4MDZkZTky
NmYyZWVmZmMxNjM0Yzc3MDBlNmUuLmFkODE0ZWNhYTIzNzRkOTA0OWVlZmYwNGMyYjAyNTA1ZDYy
ZDNhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQ
cmVwYXJhdGlvbkZvckRpc3BsYXkoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEaXNwbGF5TGlz
dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVuZGVyRGlzcGxheUxpc3QoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgeyB9CiAK
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5k
ZXggNWQzM2Q4OGFlMzE0NGY2MGM1MWQ4NjA2MzY2MGI0NDRjN2I2YmFhOC4uNTBlNjc0OTRhNWU2
N2Y5YjQ2YmM0Y2QyZjQ4ZDI0OTEyM2ExYzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTY1LDcgKzY1LDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3Zl
cnJpZGUKKyAgICB2b2lkIHJlbmRlckRpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBp
ZiAoIWRpc3BsYXlMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgaW1h
Z2VCdWZmZXJzID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlc291cmNlQ2FjaGUo
KS5pbWFnZUJ1ZmZlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA2ZTFkNWNjOTUx
YWJkMThkN2U3MTBlNmI5ODA4YjFkZWM3Mjg2ZDdjLi4zOTM5NjA5Mjk1N2NhYWE2NmQxZDFkNDAz
NWZmYjkzNDM2NDJlMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xNDQsMTMgKzE0
NCwxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5RGlzcGxheUxpc3QoY29u
c3QgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUmIGhhbgogICAgIH0KIAogICAgIGRpc3BsYXlMaXN0
LT5zZXRJdGVtQnVmZmVyQ2xpZW50KHRoaXMpOwotICAgIGltYWdlQnVmZmVyLT5mbHVzaERpc3Bs
YXlMaXN0KCpkaXNwbGF5TGlzdCk7CisgICAgaW1hZ2VCdWZmZXItPnJlbmRlckRpc3BsYXlMaXN0
KCpkaXNwbGF5TGlzdCk7CiAKICAgICBpZiAoZmx1c2hDb250ZXh0ID09IFNob3VsZEZsdXNoQ29u
dGV4dDo6WWVzKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hDb250ZXh0KCk7CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChjb25zdCBTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZW5kZXJEaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSYgaGFuZGxlLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ewogICAgIGFwcGx5RGlzcGxheUxpc3QoaGFuZGxlLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFNob3VsZEZsdXNoQ29udGV4dDo6Tm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXgg
MzE5ZjRlODczNzBiYmZmYTg5MTVmYTRkYThmMzJhMTczYjRlNzFmZC4uMGFkMDM3NmNiODFkOTg5
NTUwYWQ5NmQyZTNiNTJmODkzMmM0NjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgog
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRs
ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW5k
ZXJEaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSYsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0QW5k
Q29tbWl0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlJiwgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURh
dGFSZWZlcmVuY2UmJik+JiYpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCmluZGV4IDE4Nzg1YWRjMGZkMWI2MjAzZTUxMTQyYTk0NjQ2NzVmYmE0
YTE3OTMuLjJjNDMyYjVjYzgwYzg3NDkwMGEyYWVmNzhhNTRlODI4YWU3OTg2ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAKIG1l
c3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCB7CiAgICAgQ3Jl
YXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIEZsdXNoRGlzcGxheUxpc3Qo
V2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAg
ICBSZW5kZXJEaXNwbGF5TGlzdChXZWJLaXQ6OlNoYXJlZERpc3BsYXlMaXN0SGFuZGxlIGRpc3Bs
YXlMaXN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogICAgIEZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoV2ViS2l0OjpT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZSBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VE
YXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURh
dGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIERpZENyZWF0ZVNoYXJlZEl0
ZW1EYXRhKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKaW5kZXggODJiZjUyMjAxZDQ1MmQwMjdjODgyNzM1MDBjYmM2Y2RhZjQ0
ZTlmNi4uYTQ0MDM1YjRhODYzNzkyYTg4YTk0N2VhOTE3ODdkZTZkODJiZWE0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGF1dG8mIG11dGFibGVUaGlzID0gY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
Jj4oKnRoaXMpOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG11dGFibGVUaGlzLm1fZHJh
d2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKICAgICAgICAgaWYgKCFkaXNwbGF5TGlzdC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIG11dGFibGVUaGlzLmZsdXNoRGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpOworICAgICAgICAgICAgbXV0YWJsZVRoaXMucmVuZGVyRGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpOwogICAgICAgICAgICAgbXV0YWJsZVRoaXMubV9pdGVtQ291bnRJbkN1cnJlbnREaXNw
bGF5TGlzdCA9IDA7CiAgICAgICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgICAgICB9
CkBAIC0xNTgsMTMgKzE1OCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGRpc3BsYXlMaXN0LmNs
ZWFyKCk7CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCisgICAgdm9p
ZCByZW5kZXJEaXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSB8fCBkaXNwbGF5TGlzdC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1vdGVJ
bWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kKTsKLSAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3Qs
IG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPnJlbmRlckRpc3BsYXlMaXN0KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbU9m
VHlwZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGUpIG92ZXJyaWRlCkBAIC0xNzUsNyAr
MTc1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1faXRl
bUNvdW50SW5DdXJyZW50RGlzcGxheUxpc3QgPSAwOwotICAgICAgICBmbHVzaERpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgcmVuZGVyRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwog
ICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGVlYzA1MjU0Njg4ZGYwZjk3ZjM3NzhlMWMwNWI1
ZmViMWU5ZWY4YjUuLjg5NzViYmY3YzNkMjY4NjI3ZDFmNzU0NGY3MWY4NTY2NThiYWQzOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTExNSw5ICsxMTUs
OSBAQCBSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aQogICAgIHJldHVybiBpbWFnZURhdGFSZWZlcmVu
Y2UuYnVmZmVyKCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3Qs
IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVuZGVyRGlzcGxheUxpc3QoY29u
c3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGbHVzaERpc3BsYXlMaXN0KHsgZGlzcGxh
eUxpc3QgfSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
UmVuZGVyRGlzcGxheUxpc3QoeyBkaXNwbGF5TGlzdCB9LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICBtX3NoYXJlZEl0ZW1C
dWZmZXJzLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
CmluZGV4IDIwY2U2ZGE0NTViMTlmZDc1MThmMDlkNWJhYmY4ZjAxZTRiZjY0ZTkuLjFiNGZhNWY1
NTU3NjNhM2U3MDVjODdiMzU5Mzg4NjE2MDlkYWY4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgc2VudC4KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CiAgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hE
aXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVuZGVyRGlzcGxh
eUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413625</attachid>
            <date>2020-11-09 13:41:41 -0800</date>
            <delta_ts>2020-11-09 13:45:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218720-20201109134140.patch</filename>
            <type>text/plain</type>
            <size>14217</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwNTQyYTAxMDRlMWM1
NGIwZTBmM2JjMTFiOTUzYzkxNzA5MTVlZS4uNzhlODBmMDMxNjJhMTQ5MjNjZjEwODJjYjY0OGMw
ODk5YTNiMDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUJ1ZmZlcjo6Zmx1c2hEaXNwbGF5TGlzdCB0byBJbWFnZUJ1ZmZlcjo6c3VibWl0RGlzcGxheUxp
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZSBgZmx1c2hEaXNwbGF5TGlzdGAgdG8gYHN1Ym1pdERpc3BsYXlMaXN0YCwgdG8gYmV0dGVyIGNh
cHR1cmUgdGhlIGZhY3QgdGhhdCBpdCdzIG9ubHkgcmVzcG9uc2libGUgZm9yCisgICAgICAgIGFw
cGx5aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0IHJhdGhlciB0aGFu
IHBlcmZvcm1pbmcgYSBjb250ZXh0IGZsdXNoLCBvciBhcHBseWluZyBhbmQgY2xlYXJpbmcKKyAg
ICAgICAgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0LgorCisgICAg
ICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6c3VibWl0RGlz
cGxheUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmZsdXNoRGlzcGxheUxp
c3QpOiBEZWxldGVkLgorCisyMDIwLTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgY29kZSBhZnRlciBpbmxpbmUgZGlz
cGxheSBsaXN0IHJlZmFjdG9yaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTg3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisKKyAgICAg
ICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgYGVuY29kZSgpYCBhbmQgYGRlY29kZSgp
YCBtZXRob2QgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlcGxheWVyOjpyZXBsYXkpOgorCisgICAgICAgIEFkZCBhIG1pc3NpbmcgYCsr
YCBmb3IgdGhpcyBjb3VudGVyIHZhcmlhYmxlLgorCiAyMDIwLTExLTA5ICBDaHJpcyBMb3JkICA8
Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9sbCBzcGVlZCBz
aG91bGQgYmUgY3VtdWxhdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NGU0YTczZTE0MTY1ZmE5NTJiN2MwMzQ2
ZGE2MjY3ZmJmMDc2YWJiLi5jZTZiZmU1MGY3MjI3MGUwMGUxZmIwODk4NTNiZDFhN2U2ZmY1NDM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTA5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFnZUJ1ZmZlcjo6Zmx1
c2hEaXNwbGF5TGlzdCB0byBJbWFnZUJ1ZmZlcjo6c3VibWl0RGlzcGxheUxpc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjphcHBseURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6c3VibWl0RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KTogRGVsZXRlZC4KKworICAg
ICAgICBBZGRpdGlvbmFsbHkgcmVuYW1lIGBmbHVzaERpc3BsYXlMaXN0YCBvbiBgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZGAsIHNpbmNlIHRoaXMgSVBDIG1lc3NhZ2UgZG9lc24ndCBhY3R1YWxseQor
ICAgICAgICBwZXJmb3JtIGEgY29udGV4dCBmbHVzaC4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpzdWJtaXRE
aXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hEaXNwbGF5TGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisKIDIwMjAtMTEtMDkgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0
IHByZWZlcmVuY2UgZm9yIG92ZXJyaWRkZW4gbGFuZ3VhZ2VzIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MgYWZ0ZXIgZW50ZXJpbmcgdGhlIHNhbmRib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5MjA0YWQxMGE4MTA2ODA2ZGU5MjZm
MmVlZmZjMTYzNGM3NzAwZTZlLi4wNGUyYWJjNzk1ZDg3NjQxZmE4NDk0MTY1NzRmNDQ1ZWQ2Mzhl
MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwcmVmZXJzUHJl
cGFyYXRpb25Gb3JEaXNwbGF5KCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHN1
Ym1pdERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpIHsgfQogCiAg
ICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIEludFNpemUgbG9naWNhbFNpemUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAppbmRleCBlZmQxYWUxNjExMjFkYjkxZjhmZWRkZWYzYmQwZDU2MzEz
NDExN2IwLi41M2RlZDA4OWFhZTRjNGJlNmVhNDVjOGI0NWVkMzcyOTI3ZWE4Yzg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTEyNTksOSArMTI1OSw2IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIm
KSBjb25zdDsKIAotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
UmVmPERyYXdJbWFnZUJ1ZmZlcj4+IGRlY29kZShEZWNvZGVyJik7Ci0KICAgICBOT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogCiAgICAg
T3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51
bGxvcHQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCBl
NDZlNTY4OTVkNGMzNWY3ZTIxMTRmODAyMTQ5NTY4MjI3YmRlOGE0Li41ZGYwZTAwNTcwMTk3ZDFj
NGEzYmRiYmVhMzc5NTJmMjhkYTkzMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVwbGF5ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlz
dD4gUmVwbGF5ZXI6OnJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIExPR19XSVRIX1NUUkVB
TShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiYXBwbHlpbmcgIiA8PCBpIDw8ICIgIiA8PCBpdGVt
KTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJhcHBs
eWluZyAiIDw8IGkrKyA8PCAiICIgPDwgaXRlbSk7CiAgICAgICAgIGFwcGx5SXRlbShpdGVtKTsK
IAogICAgICAgICBpZiAoVU5MSUtFTFkodHJhY2tSZXBsYXlMaXN0KSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRl
eCA1ZDMzZDg4YWUzMTQ0ZjYwYzUxZDg2MDYzNjYwYjQ0NGM3YjZiYWE4Li42NGIxZTZiZGFlNWVj
YmY2MzA4ZWI3MzU0YjMxNDM5ODkxMzcxMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVy
cmlkZQorICAgIHZvaWQgc3VibWl0RGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
ICghZGlzcGxheUxpc3QuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBpbWFn
ZUJ1ZmZlcnMgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVtb3RlUmVzb3VyY2VDYWNoZSgp
LmltYWdlQnVmZmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDZlMWQ1Y2M5NTFh
YmQxOGQ3ZTcxMGU2Yjk4MDhiMWRlYzcyODZkN2MuLmJlMTgwNjQ5MDdlNTVlZTFjNWFiNDA0ZjIx
YmY1ZjA3YjVkYzg1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTE0NCwxMyArMTQ0
LDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6YXBwbHlEaXNwbGF5TGlzdChjb25z
dCBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSYgaGFuCiAgICAgfQogCiAgICAgZGlzcGxheUxpc3Qt
PnNldEl0ZW1CdWZmZXJDbGllbnQodGhpcyk7Ci0gICAgaW1hZ2VCdWZmZXItPmZsdXNoRGlzcGxh
eUxpc3QoKmRpc3BsYXlMaXN0KTsKKyAgICBpbWFnZUJ1ZmZlci0+c3VibWl0RGlzcGxheUxpc3Qo
KmRpc3BsYXlMaXN0KTsKIAogICAgIGlmIChmbHVzaENvbnRleHQgPT0gU2hvdWxkRmx1c2hDb250
ZXh0OjpZZXMpCiAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0IFNoYXJlZERp
c3BsYXlMaXN0SGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN1
Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlJiBoYW5kbGUsIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7
CiAgICAgYXBwbHlEaXNwbGF5TGlzdChoYW5kbGUsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgU2hvdWxkRmx1c2hDb250ZXh0OjpObyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAz
MTlmNGU4NzM3MGJiZmZhODkxNWZhNGRhOGYzMmExNzNiNGU3MWZkLi4zZDAyZWI0ODZlZWMzZGYx
OWEyYTc2YjA5NjU5OGNiYjk2NzhhMWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTEwMCw3
ICsxMDAsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAg
ICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
Ci0gICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxl
JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN1Ym1p
dERpc3BsYXlMaXN0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlJiwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RBbmRD
b21taXQoY29uc3QgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUmLCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24g
b3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0
YVJlZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW4KaW5kZXggMTg3ODVhZGMwZmQxYjYyMDNlNTExNDJhOTQ2NDY3NWZiYTRh
MTc5My4uZjU1YjAyNmJkYjVlNjNhMTRjZjM2MjE0YTgzZThiYmU4ODYzMWExYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKIAogbWVz
c2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVh
dGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgRmx1c2hEaXNwbGF5TGlzdChX
ZWJLaXQ6OlNoYXJlZERpc3BsYXlMaXN0SGFuZGxlIGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAg
IFN1Ym1pdERpc3BsYXlMaXN0KFdlYktpdDo6U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUgZGlzcGxh
eUxpc3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCiAgICAgRmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChXZWJLaXQ6OlNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlIGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBHZXRJbWFnZURh
dGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9y
bWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0
YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5bmNocm9ub3VzCiAgICAgRGlkQ3JlYXRlU2hhcmVkSXRl
bURhdGEoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaAppbmRleCA4MmJmNTIyMDFkNDUyZDAyN2M4ODI3MzUwMGNiYzZjZGFmNDRl
OWY2Li41OTg1N2ZmMDdhNWFjMmY0YjMyYzU2NjMyNTE0YjQ1ZGUxMDE5N2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMTEyLDcgKzExMiw3IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgYXV0byYgbXV0YWJsZVRoaXMgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkm
PigqdGhpcyk7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbXV0YWJsZVRoaXMubV9kcmF3
aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwogICAgICAgICBpZiAoIWRpc3BsYXlMaXN0LmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgbXV0YWJsZVRoaXMuZmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5
TGlzdCk7CisgICAgICAgICAgICBtdXRhYmxlVGhpcy5zdWJtaXREaXNwbGF5TGlzdChkaXNwbGF5
TGlzdCk7CiAgICAgICAgICAgICBtdXRhYmxlVGhpcy5tX2l0ZW1Db3VudEluQ3VycmVudERpc3Bs
YXlMaXN0ID0gMDsKICAgICAgICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAgICAgICAgIH0K
QEAgLTE1OCwxMyArMTU4LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgZGlzcGxheUxpc3QuY2xl
YXIoKTsKICAgICB9CiAKLSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKKyAgICB2b2lk
IHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIW1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5IHx8IGRpc3BsYXlMaXN0LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUlt
YWdlQnVmZmVyU3RhcnQsIEZsdXNoUmVtb3RlSW1hZ2VCdWZmZXJFbmQpOwotICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCwg
bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+c3VibWl0RGlzcGxheUxpc3QoZGlzcGxheUxpc3QsIG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtT2ZU
eXBlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZSkgb3ZlcnJpZGUKQEAgLTE3NSw3ICsx
NzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9pdGVt
Q291bnRJbkN1cnJlbnREaXNwbGF5TGlzdCA9IDA7Ci0gICAgICAgIGZsdXNoRGlzcGxheUxpc3Qo
ZGlzcGxheUxpc3QpOworICAgICAgICBzdWJtaXREaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CiAg
ICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggZWVjMDUyNTQ2ODhkZjBmOTdmMzc3OGUxYzA1YjVm
ZWIxZTllZjhiNS4uOGQ4NjE1YjhhOTZjNzQ0NzBiMDk0MzdkOGNkN2M3YTE2NWJjNjVkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMTE1LDkgKzExNSw5
IEBAIFJlZlB0cjxJbWFnZURhdGE+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1h
Z2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpCiAgICAgcmV0dXJuIGltYWdlRGF0YVJlZmVyZW5j
ZS5idWZmZXIoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNo
RGlzcGxheUxpc3QoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpzdWJtaXREaXNwbGF5TGlzdChjb25z
dCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkZsdXNoRGlzcGxheUxpc3QoeyBkaXNwbGF5
TGlzdCB9LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpT
dWJtaXREaXNwbGF5TGlzdCh7IGRpc3BsYXlMaXN0IH0sIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIG1fc2hhcmVkSXRlbUJ1
ZmZlcnMuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
aW5kZXggMjBjZTZkYTQ1NWIxOWZkNzUxOGYwOWQ1YmFiZjhmMDFlNGJmNjRlOS4uYTU0MmM4MzM1
ZTBlNTMzZTA1MTNlNTc2NDI2MjQ1ZWJiNzY0MWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBNZXNzYWdl
cyB0byBiZSBzZW50LgogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKTsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3Qs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBmbHVzaERp
c3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdWJtaXREaXNwbGF5
TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpG
bHVzaElkZW50aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413627</attachid>
            <date>2020-11-09 13:46:11 -0800</date>
            <delta_ts>2020-11-09 15:12:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218720-20201109134610.patch</filename>
            <type>text/plain</type>
            <size>12109</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3MWE2MWQzNmQxN2Y0
ZDM3MmUyMmI1MWYyMDMyMmZhZWUwY2U5Yi4uNzhlODBmMDMxNjJhMTQ5MjNjZjEwODJjYjY0OGMw
ODk5YTNiMDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUJ1ZmZlcjo6Zmx1c2hEaXNwbGF5TGlzdCB0byBJbWFnZUJ1ZmZlcjo6c3VibWl0RGlzcGxheUxp
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZSBgZmx1c2hEaXNwbGF5TGlzdGAgdG8gYHN1Ym1pdERpc3BsYXlMaXN0YCwgdG8gYmV0dGVyIGNh
cHR1cmUgdGhlIGZhY3QgdGhhdCBpdCdzIG9ubHkgcmVzcG9uc2libGUgZm9yCisgICAgICAgIGFw
cGx5aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0IHJhdGhlciB0aGFu
IHBlcmZvcm1pbmcgYSBjb250ZXh0IGZsdXNoLCBvciBhcHBseWluZyBhbmQgY2xlYXJpbmcKKyAg
ICAgICAgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZGlzcGxheSBsaXN0LgorCisgICAg
ICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6c3VibWl0RGlz
cGxheUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmZsdXNoRGlzcGxheUxp
c3QpOiBEZWxldGVkLgorCiAyMDIwLTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIHNvbWUgY29kZSBhZnRlciBpbmxpbmUgZGlz
cGxheSBsaXN0IHJlZmFjdG9yaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0ZTRhNzNlMTQxNjVmYTk1MmI3YzAz
NDZkYTYyNjdmYmYwNzZhYmIuLmNlNmJmZTUwZjcyMjcwZTAwZTFmYjA4OTg1M2JkMWE3ZTZmZjU0
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTEtMDkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVmZmVyOjpm
bHVzaERpc3BsYXlMaXN0IHRvIEltYWdlQnVmZmVyOjpzdWJtaXREaXNwbGF5TGlzdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmFwcGx5RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpzdWJtaXREaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3QpOiBEZWxldGVkLgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSByZW5hbWUgYGZsdXNoRGlzcGxheUxpc3RgIG9uIGBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kYCwgc2luY2UgdGhpcyBJUEMgbWVzc2FnZSBkb2Vzbid0IGFjdHVhbGx5
CisgICAgICAgIHBlcmZvcm0gYSBjb250ZXh0IGZsdXNoLgorCisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN1Ym1p
dERpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaERpc3BsYXlMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKwogMjAyMC0xMS0wOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBT
ZXQgcHJlZmVyZW5jZSBmb3Igb3ZlcnJpZGRlbiBsYW5ndWFnZXMgaW4gdGhlIFdlYkNvbnRlbnQg
cHJvY2VzcyBhZnRlciBlbnRlcmluZyB0aGUgc2FuZGJveC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDkyMDRhZDEwYTgxMDY4MDZkZTky
NmYyZWVmZmMxNjM0Yzc3MDBlNmUuLjA0ZTJhYmM3OTVkODc2NDFmYTg0OTQxNjU3NGY0NDVlZDYz
OGUzNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQ
cmVwYXJhdGlvbkZvckRpc3BsYXkoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaERyYXdpbmdDb250ZXh0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEaXNwbGF5TGlz
dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c3VibWl0RGlzcGxheUxpc3QoY29uc3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgeyB9CiAK
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5k
ZXggNWQzM2Q4OGFlMzE0NGY2MGM1MWQ4NjA2MzY2MGI0NDRjN2I2YmFhOC4uNjRiMWU2YmRhZTVl
Y2JmNjMwOGViNzM1NGIzMTQzOTg5MTM3MTIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTY1LDcgKzY1LDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3Zl
cnJpZGUKKyAgICB2b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBp
ZiAoIWRpc3BsYXlMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgaW1h
Z2VCdWZmZXJzID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlc291cmNlQ2FjaGUo
KS5pbWFnZUJ1ZmZlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA2ZTFkNWNjOTUx
YWJkMThkN2U3MTBlNmI5ODA4YjFkZWM3Mjg2ZDdjLi5iZTE4MDY0OTA3ZTU1ZWUxYzVhYjQwNGYy
MWJmNWYwN2I1ZGM4NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xNDQsMTMgKzE0
NCwxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5RGlzcGxheUxpc3QoY29u
c3QgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUmIGhhbgogICAgIH0KIAogICAgIGRpc3BsYXlMaXN0
LT5zZXRJdGVtQnVmZmVyQ2xpZW50KHRoaXMpOwotICAgIGltYWdlQnVmZmVyLT5mbHVzaERpc3Bs
YXlMaXN0KCpkaXNwbGF5TGlzdCk7CisgICAgaW1hZ2VCdWZmZXItPnN1Ym1pdERpc3BsYXlMaXN0
KCpkaXNwbGF5TGlzdCk7CiAKICAgICBpZiAoZmx1c2hDb250ZXh0ID09IFNob3VsZEZsdXNoQ29u
dGV4dDo6WWVzKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hDb250ZXh0KCk7CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChjb25zdCBTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpz
dWJtaXREaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSYgaGFuZGxlLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ewogICAgIGFwcGx5RGlzcGxheUxpc3QoaGFuZGxlLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFNob3VsZEZsdXNoQ29udGV4dDo6Tm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXgg
MzE5ZjRlODczNzBiYmZmYTg5MTVmYTRkYThmMzJhMTczYjRlNzFmZC4uM2QwMmViNDg2ZWVjM2Rm
MTlhMmE3NmIwOTY1OThjYmI5Njc4YTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgog
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRs
ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdWJt
aXREaXNwbGF5TGlzdChjb25zdCBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSYsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0QW5k
Q29tbWl0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlJiwgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURh
dGFSZWZlcmVuY2UmJik+JiYpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCmluZGV4IDE4Nzg1YWRjMGZkMWI2MjAzZTUxMTQyYTk0NjQ2NzVmYmE0
YTE3OTMuLmY1NWIwMjZiZGI1ZTYzYTE0Y2YzNjIxNGE4M2U4YmJlODg2MzFhMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAKIG1l
c3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCB7CiAgICAgQ3Jl
YXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIEZsdXNoRGlzcGxheUxpc3Qo
V2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAg
ICBTdWJtaXREaXNwbGF5TGlzdChXZWJLaXQ6OlNoYXJlZERpc3BsYXlMaXN0SGFuZGxlIGRpc3Bs
YXlMaXN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogICAgIEZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoV2ViS2l0OjpT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZSBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VE
YXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURh
dGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIERpZENyZWF0ZVNoYXJlZEl0
ZW1EYXRhKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKaW5kZXggODJiZjUyMjAxZDQ1MmQwMjdjODgyNzM1MDBjYmM2Y2RhZjQ0
ZTlmNi4uNTk4NTdmZjA3YTVhYzJmNGIzMmM1NjYzMjUxNGI0NWRlMTAxOTdiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGF1dG8mIG11dGFibGVUaGlzID0gY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
Jj4oKnRoaXMpOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG11dGFibGVUaGlzLm1fZHJh
d2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKICAgICAgICAgaWYgKCFkaXNwbGF5TGlzdC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIG11dGFibGVUaGlzLmZsdXNoRGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpOworICAgICAgICAgICAgbXV0YWJsZVRoaXMuc3VibWl0RGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpOwogICAgICAgICAgICAgbXV0YWJsZVRoaXMubV9pdGVtQ291bnRJbkN1cnJlbnREaXNw
bGF5TGlzdCA9IDA7CiAgICAgICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgICAgICB9
CkBAIC0xNTgsMTMgKzE1OCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGRpc3BsYXlMaXN0LmNs
ZWFyKCk7CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCisgICAgdm9p
ZCBzdWJtaXREaXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSB8fCBkaXNwbGF5TGlzdC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1vdGVJ
bWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kKTsKLSAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3Qs
IG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPnN1Ym1pdERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbU9m
VHlwZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGUpIG92ZXJyaWRlCkBAIC0xNzUsNyAr
MTc1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1faXRl
bUNvdW50SW5DdXJyZW50RGlzcGxheUxpc3QgPSAwOwotICAgICAgICBmbHVzaERpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgc3VibWl0RGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwog
ICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGVlYzA1MjU0Njg4ZGYwZjk3ZjM3NzhlMWMwNWI1
ZmViMWU5ZWY4YjUuLjhkODYxNWI4YTk2Yzc0NDcwYjA5NDM3ZDhjZDdjN2ExNjViYzY1ZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTExNSw5ICsxMTUs
OSBAQCBSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aQogICAgIHJldHVybiBpbWFnZURhdGFSZWZlcmVu
Y2UuYnVmZmVyKCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3Qs
IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c3VibWl0RGlzcGxheUxpc3QoY29u
c3QgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGbHVzaERpc3BsYXlMaXN0KHsgZGlzcGxh
eUxpc3QgfSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
U3VibWl0RGlzcGxheUxpc3QoeyBkaXNwbGF5TGlzdCB9LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICBtX3NoYXJlZEl0ZW1C
dWZmZXJzLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
CmluZGV4IDIwY2U2ZGE0NTViMTlmZDc1MThmMDlkNWJhYmY4ZjAxZTRiZjY0ZTkuLmE1NDJjODMz
NWUwZTUzM2UwNTEzZTU3NjQyNjI0NWViYjc2NDFjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgc2VudC4KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CiAgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hE
aXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3VibWl0RGlzcGxh
eUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>